Merge branch 'main' into rp_dp_parallel
This commit is contained in:
commit
e326d7ca80
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@ -43,8 +43,6 @@ jobs:
|
||||
run: |
|
||||
gcc --version
|
||||
python3 --version
|
||||
- name: Translations
|
||||
run: make check-translate
|
||||
- name: New boards check
|
||||
run: python3 -u ci_new_boards_check.py
|
||||
working-directory: tools
|
||||
|
8
.github/workflows/pre-commit.yml
vendored
8
.github/workflows/pre-commit.yml
vendored
@ -7,7 +7,6 @@ name: pre-commit
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches: [main]
|
||||
|
||||
jobs:
|
||||
pre-commit:
|
||||
@ -16,10 +15,13 @@ jobs:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/setup-python@v1
|
||||
- name: Install deps
|
||||
run: sudo apt-get update && sudo apt-get install -y gettext
|
||||
run: |
|
||||
sudo apt-add-repository -y -u ppa:pybricks/ppa
|
||||
sudo apt-get install -y black gettext uncrustify
|
||||
pip3 install polib
|
||||
- name: Populate selected submodules
|
||||
run: git submodule update --init extmod/ulab
|
||||
- name: set PY
|
||||
- name: Set PY
|
||||
run: echo >>$GITHUB_ENV PY="$(python -c 'import hashlib, sys;print(hashlib.sha256(sys.version.encode()+sys.executable.encode()).hexdigest())')"
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
|
@ -11,3 +11,16 @@ repos:
|
||||
exclude: '^(tests/.*\.exp|tests/cmdline/.*|tests/.*/data/.*|ports/esp32s2/esp-idf-config/.*|ports/esp32s2/boards/.*/sdkconfig)'
|
||||
- id: trailing-whitespace
|
||||
exclude: '^(tests/.*\.exp|tests/cmdline/.*|tests/.*/data/.*)'
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: translations
|
||||
name: Translations
|
||||
entry: sh -c "if ! make check-translate; then make translate; fi"
|
||||
types: [c]
|
||||
pass_filenames: false
|
||||
language: system
|
||||
- id: formatting
|
||||
name: Formatting
|
||||
entry: sh -c "git diff --staged --name-only | xargs python3 tools/codeformat.py"
|
||||
types_or: [c, python]
|
||||
language: system
|
||||
|
@ -123,8 +123,7 @@ STATIC void send_error(uint16_t conn_handle, uint8_t opcode, uint16_t handle, ui
|
||||
.code = BT_ATT_OP_ERROR_RSP,
|
||||
}, {
|
||||
.request = opcode,
|
||||
}
|
||||
};
|
||||
}};
|
||||
|
||||
hci_send_acl_pkt(conn_handle, BT_L2CAP_CID_ATT, sizeof(rsp), (uint8_t *)&rsp);
|
||||
}
|
||||
@ -580,7 +579,7 @@ bool att_is_connected(void) {
|
||||
}
|
||||
|
||||
bool att_address_is_connected(bt_addr_le_t *addr) {
|
||||
return (att_conn_handle(addr) != 0xffff);
|
||||
return att_conn_handle(addr) != 0xffff;
|
||||
}
|
||||
|
||||
bool att_handle_is_connected(uint16_t handle) {
|
||||
@ -624,7 +623,7 @@ bool att_disconnect_all(void) {
|
||||
bleio_connections[i].mtu = BT_ATT_DEFAULT_LE_MTU;
|
||||
}
|
||||
|
||||
return (num_disconnects > 0);
|
||||
return num_disconnects > 0;
|
||||
}
|
||||
|
||||
bool att_notify(uint16_t handle, const uint8_t *value, int length) {
|
||||
@ -644,7 +643,8 @@ bool att_notify(uint16_t handle, const uint8_t* value, int length) {
|
||||
|
||||
uint8_t notify_bytes[sizeof(notify_t) + allowed_length];
|
||||
notify_t *notify = (notify_t *)notify_bytes;
|
||||
notify->hdr.code = BT_ATT_OP_NOTIFY;;
|
||||
notify->hdr.code = BT_ATT_OP_NOTIFY;
|
||||
;
|
||||
notify->ntf.handle = handle;
|
||||
memcpy(notify->ntf.value, value, allowed_length);
|
||||
hci_send_acl_pkt(bleio_connections[i].conn_handle, BT_L2CAP_CID_ATT,
|
||||
@ -653,7 +653,7 @@ bool att_notify(uint16_t handle, const uint8_t* value, int length) {
|
||||
num_notifications++;
|
||||
}
|
||||
|
||||
return (num_notifications > 0);
|
||||
return num_notifications > 0;
|
||||
}
|
||||
|
||||
bool att_indicate(uint16_t handle, const uint8_t *value, int length) {
|
||||
@ -673,7 +673,8 @@ bool att_indicate(uint16_t handle, const uint8_t* value, int length) {
|
||||
|
||||
uint8_t indicate_bytes[sizeof(indicate_t) + allowed_length];
|
||||
indicate_t *indicate = (indicate_t *)indicate_bytes;
|
||||
indicate->hdr.code = BT_ATT_OP_INDICATE;;
|
||||
indicate->hdr.code = BT_ATT_OP_INDICATE;
|
||||
;
|
||||
indicate->ind.handle = handle;
|
||||
memcpy(indicate->ind.value, value, allowed_length);
|
||||
|
||||
@ -694,7 +695,7 @@ bool att_indicate(uint16_t handle, const uint8_t* value, int length) {
|
||||
num_indications++;
|
||||
}
|
||||
|
||||
return (num_indications > 0);
|
||||
return num_indications > 0;
|
||||
}
|
||||
|
||||
STATIC void process_error(uint16_t conn_handle, uint8_t dlen, uint8_t data[]) {
|
||||
@ -741,8 +742,7 @@ STATIC void process_mtu_req(uint16_t conn_handle, uint8_t dlen, uint8_t data[])
|
||||
.code = BT_ATT_OP_MTU_RSP,
|
||||
}, {
|
||||
.mtu = mtu,
|
||||
}
|
||||
};
|
||||
}};
|
||||
|
||||
hci_send_acl_pkt(conn_handle, BT_L2CAP_CID_ATT, sizeof(rsp), (uint8_t *)&rsp);
|
||||
}
|
||||
@ -865,8 +865,7 @@ int att_find_info_req(uint16_t conn_handle, uint16_t start_handle, uint16_t end_
|
||||
}, {
|
||||
.start_handle = start_handle,
|
||||
.end_handle = end_handle,
|
||||
}
|
||||
};
|
||||
}};
|
||||
|
||||
return send_req_wait_for_rsp(conn_handle, sizeof(req), (uint8_t *)&req, response_buffer);
|
||||
}
|
||||
@ -1585,8 +1584,7 @@ int att_read_req(uint16_t conn_handle, uint16_t handle, uint8_t response_buffer[
|
||||
.code = BT_ATT_OP_READ_REQ,
|
||||
}, {
|
||||
.handle = handle,
|
||||
}
|
||||
};
|
||||
}};
|
||||
|
||||
return send_req_wait_for_rsp(conn_handle, sizeof(req), (uint8_t *)&req, response_buffer);
|
||||
}
|
||||
|
@ -167,8 +167,7 @@ STATIC void process_num_comp_pkts(uint16_t handle, uint16_t num_pkts) {
|
||||
}
|
||||
}
|
||||
|
||||
STATIC void process_evt_pkt(size_t pkt_len, uint8_t pkt_data[])
|
||||
{
|
||||
STATIC void process_evt_pkt(size_t pkt_len, uint8_t pkt_data[]) {
|
||||
h4_hci_evt_pkt_t *pkt = (h4_hci_evt_pkt_t *)pkt_data;
|
||||
|
||||
switch (pkt->evt) {
|
||||
|
@ -28,235 +28,449 @@
|
||||
|
||||
STATIC const char *att_opcode_name(uint16_t opcode) {
|
||||
switch (opcode) {
|
||||
case BT_ATT_OP_ERROR_RSP: return "ERROR_RSP";
|
||||
case BT_ATT_OP_MTU_REQ: return "MTU_REQ";
|
||||
case BT_ATT_OP_MTU_RSP: return "MTU_RSP";
|
||||
case BT_ATT_OP_FIND_INFO_REQ: return "FIND_INFO_REQ";
|
||||
case BT_ATT_OP_FIND_INFO_RSP: return "FIND_INFO_RSP";
|
||||
case BT_ATT_OP_FIND_TYPE_REQ: return "FIND_TYPE_REQ";
|
||||
case BT_ATT_OP_FIND_TYPE_RSP: return "FIND_TYPE_RSP";
|
||||
case BT_ATT_OP_READ_TYPE_REQ: return "READ_TYPE_REQ";
|
||||
case BT_ATT_OP_READ_TYPE_RSP: return "READ_TYPE_RSP";
|
||||
case BT_ATT_OP_READ_REQ: return "READ_REQ";
|
||||
case BT_ATT_OP_READ_RSP: return "READ_RSP";
|
||||
case BT_ATT_OP_READ_BLOB_REQ: return "READ_BLOB_REQ";
|
||||
case BT_ATT_OP_READ_BLOB_RSP: return "READ_BLOB_RSP";
|
||||
case BT_ATT_OP_READ_MULT_REQ: return "READ_MULT_REQ";
|
||||
case BT_ATT_OP_READ_MULT_RSP: return "READ_MULT_RSP";
|
||||
case BT_ATT_OP_READ_GROUP_REQ: return "READ_GROUP_REQ";
|
||||
case BT_ATT_OP_READ_GROUP_RSP: return "READ_GROUP_RSP";
|
||||
case BT_ATT_OP_WRITE_REQ: return "WRITE_REQ";
|
||||
case BT_ATT_OP_WRITE_RSP: return "WRITE_RSP";
|
||||
case BT_ATT_OP_PREPARE_WRITE_REQ: return "PREPARE_WRITE_REQ";
|
||||
case BT_ATT_OP_PREPARE_WRITE_RSP: return "PREPARE_WRITE_RSP";
|
||||
case BT_ATT_OP_EXEC_WRITE_REQ: return "EXEC_WRITE_REQ";
|
||||
case BT_ATT_OP_EXEC_WRITE_RSP: return "EXEC_WRITE_RSP";
|
||||
case BT_ATT_OP_NOTIFY: return "NOTIFY";
|
||||
case BT_ATT_OP_INDICATE: return "INDICATE";
|
||||
case BT_ATT_OP_CONFIRM: return "CONFIRM";
|
||||
case BT_ATT_OP_READ_MULT_VL_REQ: return "READ_MULT_VL_REQ";
|
||||
case BT_ATT_OP_READ_MULT_VL_RSP: return "READ_MULT_VL_RSP";
|
||||
case BT_ATT_OP_NOTIFY_MULT: return "NOTIFY_MULT";
|
||||
case BT_ATT_OP_WRITE_CMD: return "WRITE_CMD";
|
||||
case BT_ATT_OP_SIGNED_WRITE_CMD: return "SIGNED_WRITE_CMD";
|
||||
default: return "";
|
||||
case BT_ATT_OP_ERROR_RSP:
|
||||
return "ERROR_RSP";
|
||||
case BT_ATT_OP_MTU_REQ:
|
||||
return "MTU_REQ";
|
||||
case BT_ATT_OP_MTU_RSP:
|
||||
return "MTU_RSP";
|
||||
case BT_ATT_OP_FIND_INFO_REQ:
|
||||
return "FIND_INFO_REQ";
|
||||
case BT_ATT_OP_FIND_INFO_RSP:
|
||||
return "FIND_INFO_RSP";
|
||||
case BT_ATT_OP_FIND_TYPE_REQ:
|
||||
return "FIND_TYPE_REQ";
|
||||
case BT_ATT_OP_FIND_TYPE_RSP:
|
||||
return "FIND_TYPE_RSP";
|
||||
case BT_ATT_OP_READ_TYPE_REQ:
|
||||
return "READ_TYPE_REQ";
|
||||
case BT_ATT_OP_READ_TYPE_RSP:
|
||||
return "READ_TYPE_RSP";
|
||||
case BT_ATT_OP_READ_REQ:
|
||||
return "READ_REQ";
|
||||
case BT_ATT_OP_READ_RSP:
|
||||
return "READ_RSP";
|
||||
case BT_ATT_OP_READ_BLOB_REQ:
|
||||
return "READ_BLOB_REQ";
|
||||
case BT_ATT_OP_READ_BLOB_RSP:
|
||||
return "READ_BLOB_RSP";
|
||||
case BT_ATT_OP_READ_MULT_REQ:
|
||||
return "READ_MULT_REQ";
|
||||
case BT_ATT_OP_READ_MULT_RSP:
|
||||
return "READ_MULT_RSP";
|
||||
case BT_ATT_OP_READ_GROUP_REQ:
|
||||
return "READ_GROUP_REQ";
|
||||
case BT_ATT_OP_READ_GROUP_RSP:
|
||||
return "READ_GROUP_RSP";
|
||||
case BT_ATT_OP_WRITE_REQ:
|
||||
return "WRITE_REQ";
|
||||
case BT_ATT_OP_WRITE_RSP:
|
||||
return "WRITE_RSP";
|
||||
case BT_ATT_OP_PREPARE_WRITE_REQ:
|
||||
return "PREPARE_WRITE_REQ";
|
||||
case BT_ATT_OP_PREPARE_WRITE_RSP:
|
||||
return "PREPARE_WRITE_RSP";
|
||||
case BT_ATT_OP_EXEC_WRITE_REQ:
|
||||
return "EXEC_WRITE_REQ";
|
||||
case BT_ATT_OP_EXEC_WRITE_RSP:
|
||||
return "EXEC_WRITE_RSP";
|
||||
case BT_ATT_OP_NOTIFY:
|
||||
return "NOTIFY";
|
||||
case BT_ATT_OP_INDICATE:
|
||||
return "INDICATE";
|
||||
case BT_ATT_OP_CONFIRM:
|
||||
return "CONFIRM";
|
||||
case BT_ATT_OP_READ_MULT_VL_REQ:
|
||||
return "READ_MULT_VL_REQ";
|
||||
case BT_ATT_OP_READ_MULT_VL_RSP:
|
||||
return "READ_MULT_VL_RSP";
|
||||
case BT_ATT_OP_NOTIFY_MULT:
|
||||
return "NOTIFY_MULT";
|
||||
case BT_ATT_OP_WRITE_CMD:
|
||||
return "WRITE_CMD";
|
||||
case BT_ATT_OP_SIGNED_WRITE_CMD:
|
||||
return "SIGNED_WRITE_CMD";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
STATIC const char *hci_evt_name(uint8_t evt) {
|
||||
switch (evt) {
|
||||
case BT_HCI_EVT_UNKNOWN: return "UNKNOWN";
|
||||
case BT_HCI_EVT_VENDOR: return "VENDOR";
|
||||
case BT_HCI_EVT_INQUIRY_COMPLETE: return "INQUIRY_COMPLETE";
|
||||
case BT_HCI_EVT_CONN_COMPLETE: return "CONN_COMPLETE";
|
||||
case BT_HCI_EVT_CONN_REQUEST: return "CONN_REQUEST";
|
||||
case BT_HCI_EVT_DISCONN_COMPLETE: return "DISCONN_COMPLETE";
|
||||
case BT_HCI_EVT_AUTH_COMPLETE: return "AUTH_COMPLETE";
|
||||
case BT_HCI_EVT_REMOTE_NAME_REQ_COMPLETE: return "REMOTE_NAME_REQ_COMPLETE";
|
||||
case BT_HCI_EVT_ENCRYPT_CHANGE: return "ENCRYPT_CHANGE";
|
||||
case BT_HCI_EVT_REMOTE_FEATURES: return "REMOTE_FEATURES";
|
||||
case BT_HCI_EVT_REMOTE_VERSION_INFO: return "REMOTE_VERSION_INFO";
|
||||
case BT_HCI_EVT_CMD_COMPLETE: return "CMD_COMPLETE";
|
||||
case BT_HCI_EVT_CMD_STATUS: return "CMD_STATUS";
|
||||
case BT_HCI_EVT_ROLE_CHANGE: return "ROLE_CHANGE";
|
||||
case BT_HCI_EVT_NUM_COMPLETED_PACKETS: return "NUM_COMPLETED_PACKETS";
|
||||
case BT_HCI_EVT_PIN_CODE_REQ: return "PIN_CODE_REQ";
|
||||
case BT_HCI_EVT_LINK_KEY_REQ: return "LINK_KEY_REQ";
|
||||
case BT_HCI_EVT_LINK_KEY_NOTIFY: return "LINK_KEY_NOTIFY";
|
||||
case BT_HCI_EVT_DATA_BUF_OVERFLOW: return "DATA_BUF_OVERFLOW";
|
||||
case BT_HCI_EVT_INQUIRY_RESULT_WITH_RSSI: return "INQUIRY_RESULT_WITH_RSSI";
|
||||
case BT_HCI_EVT_REMOTE_EXT_FEATURES: return "REMOTE_EXT_FEATURES";
|
||||
case BT_HCI_EVT_SYNC_CONN_COMPLETE: return "SYNC_CONN_COMPLETE";
|
||||
case BT_HCI_EVT_EXTENDED_INQUIRY_RESULT: return "EXTENDED_INQUIRY_RESULT";
|
||||
case BT_HCI_EVT_ENCRYPT_KEY_REFRESH_COMPLETE: return "ENCRYPT_KEY_REFRESH_COMPLETE";
|
||||
case BT_HCI_EVT_IO_CAPA_REQ: return "IO_CAPA_REQ";
|
||||
case BT_HCI_EVT_IO_CAPA_RESP: return "IO_CAPA_RESP";
|
||||
case BT_HCI_EVT_USER_CONFIRM_REQ: return "USER_CONFIRM_REQ";
|
||||
case BT_HCI_EVT_USER_PASSKEY_REQ: return "USER_PASSKEY_REQ";
|
||||
case BT_HCI_EVT_SSP_COMPLETE: return "SSP_COMPLETE";
|
||||
case BT_HCI_EVT_USER_PASSKEY_NOTIFY: return "USER_PASSKEY_NOTIFY";
|
||||
case BT_HCI_EVT_LE_META_EVENT: return "LE_META_EVENT";
|
||||
case BT_HCI_EVT_AUTH_PAYLOAD_TIMEOUT_EXP: return "AUTH_PAYLOAD_TIMEOUT_EXP";
|
||||
default: return "";
|
||||
case BT_HCI_EVT_UNKNOWN:
|
||||
return "UNKNOWN";
|
||||
case BT_HCI_EVT_VENDOR:
|
||||
return "VENDOR";
|
||||
case BT_HCI_EVT_INQUIRY_COMPLETE:
|
||||
return "INQUIRY_COMPLETE";
|
||||
case BT_HCI_EVT_CONN_COMPLETE:
|
||||
return "CONN_COMPLETE";
|
||||
case BT_HCI_EVT_CONN_REQUEST:
|
||||
return "CONN_REQUEST";
|
||||
case BT_HCI_EVT_DISCONN_COMPLETE:
|
||||
return "DISCONN_COMPLETE";
|
||||
case BT_HCI_EVT_AUTH_COMPLETE:
|
||||
return "AUTH_COMPLETE";
|
||||
case BT_HCI_EVT_REMOTE_NAME_REQ_COMPLETE:
|
||||
return "REMOTE_NAME_REQ_COMPLETE";
|
||||
case BT_HCI_EVT_ENCRYPT_CHANGE:
|
||||
return "ENCRYPT_CHANGE";
|
||||
case BT_HCI_EVT_REMOTE_FEATURES:
|
||||
return "REMOTE_FEATURES";
|
||||
case BT_HCI_EVT_REMOTE_VERSION_INFO:
|
||||
return "REMOTE_VERSION_INFO";
|
||||
case BT_HCI_EVT_CMD_COMPLETE:
|
||||
return "CMD_COMPLETE";
|
||||
case BT_HCI_EVT_CMD_STATUS:
|
||||
return "CMD_STATUS";
|
||||
case BT_HCI_EVT_ROLE_CHANGE:
|
||||
return "ROLE_CHANGE";
|
||||
case BT_HCI_EVT_NUM_COMPLETED_PACKETS:
|
||||
return "NUM_COMPLETED_PACKETS";
|
||||
case BT_HCI_EVT_PIN_CODE_REQ:
|
||||
return "PIN_CODE_REQ";
|
||||
case BT_HCI_EVT_LINK_KEY_REQ:
|
||||
return "LINK_KEY_REQ";
|
||||
case BT_HCI_EVT_LINK_KEY_NOTIFY:
|
||||
return "LINK_KEY_NOTIFY";
|
||||
case BT_HCI_EVT_DATA_BUF_OVERFLOW:
|
||||
return "DATA_BUF_OVERFLOW";
|
||||
case BT_HCI_EVT_INQUIRY_RESULT_WITH_RSSI:
|
||||
return "INQUIRY_RESULT_WITH_RSSI";
|
||||
case BT_HCI_EVT_REMOTE_EXT_FEATURES:
|
||||
return "REMOTE_EXT_FEATURES";
|
||||
case BT_HCI_EVT_SYNC_CONN_COMPLETE:
|
||||
return "SYNC_CONN_COMPLETE";
|
||||
case BT_HCI_EVT_EXTENDED_INQUIRY_RESULT:
|
||||
return "EXTENDED_INQUIRY_RESULT";
|
||||
case BT_HCI_EVT_ENCRYPT_KEY_REFRESH_COMPLETE:
|
||||
return "ENCRYPT_KEY_REFRESH_COMPLETE";
|
||||
case BT_HCI_EVT_IO_CAPA_REQ:
|
||||
return "IO_CAPA_REQ";
|
||||
case BT_HCI_EVT_IO_CAPA_RESP:
|
||||
return "IO_CAPA_RESP";
|
||||
case BT_HCI_EVT_USER_CONFIRM_REQ:
|
||||
return "USER_CONFIRM_REQ";
|
||||
case BT_HCI_EVT_USER_PASSKEY_REQ:
|
||||
return "USER_PASSKEY_REQ";
|
||||
case BT_HCI_EVT_SSP_COMPLETE:
|
||||
return "SSP_COMPLETE";
|
||||
case BT_HCI_EVT_USER_PASSKEY_NOTIFY:
|
||||
return "USER_PASSKEY_NOTIFY";
|
||||
case BT_HCI_EVT_LE_META_EVENT:
|
||||
return "LE_META_EVENT";
|
||||
case BT_HCI_EVT_AUTH_PAYLOAD_TIMEOUT_EXP:
|
||||
return "AUTH_PAYLOAD_TIMEOUT_EXP";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
STATIC const char *hci_evt_le_name(uint8_t evt_le) {
|
||||
switch (evt_le) {
|
||||
case BT_HCI_EVT_LE_CONN_COMPLETE: return "LE_CONN_COMPLETE";
|
||||
case BT_HCI_EVT_LE_ADVERTISING_REPORT: return "LE_ADVERTISING_REPORT";
|
||||
case BT_HCI_EVT_LE_CONN_UPDATE_COMPLETE: return "LE_CONN_UPDATE_COMPLETE";
|
||||
case BT_HCI_EVT_LE_LTK_REQUEST: return "LE_LTK_REQUEST";
|
||||
case BT_HCI_EVT_LE_CONN_PARAM_REQ: return "LE_CONN_PARAM_REQ";
|
||||
case BT_HCI_EVT_LE_DATA_LEN_CHANGE: return "LE_DATA_LEN_CHANGE";
|
||||
case BT_HCI_EVT_LE_P256_PUBLIC_KEY_COMPLETE: return "LE_P256_PUBLIC_KEY_COMPLETE";
|
||||
case BT_HCI_EVT_LE_GENERATE_DHKEY_COMPLETE: return "LE_GENERATE_DHKEY_COMPLETE";
|
||||
case BT_HCI_EVT_LE_ENH_CONN_COMPLETE: return "LE_ENH_CONN_COMPLETE";
|
||||
case BT_HCI_EVT_LE_DIRECT_ADV_REPORT: return "LE_DIRECT_ADV_REPORT";
|
||||
case BT_HCI_EVT_LE_PHY_UPDATE_COMPLETE: return "LE_PHY_UPDATE_COMPLETE";
|
||||
case BT_HCI_EVT_LE_EXT_ADVERTISING_REPORT: return "LE_EXT_ADVERTISING_REPORT";
|
||||
case BT_HCI_EVT_LE_PER_ADV_SYNC_ESTABLISHED: return "LE_PER_ADV_SYNC_ESTABLISHED";
|
||||
case BT_HCI_EVT_LE_PER_ADVERTISING_REPORT: return "LE_PER_ADVERTISING_REPORT";
|
||||
case BT_HCI_EVT_LE_PER_ADV_SYNC_LOST: return "LE_PER_ADV_SYNC_LOST";
|
||||
case BT_HCI_EVT_LE_SCAN_TIMEOUT: return "LE_SCAN_TIMEOUT";
|
||||
case BT_HCI_EVT_LE_ADV_SET_TERMINATED: return "LE_ADV_SET_TERMINATED";
|
||||
case BT_HCI_EVT_LE_SCAN_REQ_RECEIVED: return "LE_SCAN_REQ_RECEIVED";
|
||||
case BT_HCI_EVT_LE_CHAN_SEL_ALGO: return "LE_CHAN_SEL_ALGO";
|
||||
default: return "";
|
||||
case BT_HCI_EVT_LE_CONN_COMPLETE:
|
||||
return "LE_CONN_COMPLETE";
|
||||
case BT_HCI_EVT_LE_ADVERTISING_REPORT:
|
||||
return "LE_ADVERTISING_REPORT";
|
||||
case BT_HCI_EVT_LE_CONN_UPDATE_COMPLETE:
|
||||
return "LE_CONN_UPDATE_COMPLETE";
|
||||
case BT_HCI_EVT_LE_LTK_REQUEST:
|
||||
return "LE_LTK_REQUEST";
|
||||
case BT_HCI_EVT_LE_CONN_PARAM_REQ:
|
||||
return "LE_CONN_PARAM_REQ";
|
||||
case BT_HCI_EVT_LE_DATA_LEN_CHANGE:
|
||||
return "LE_DATA_LEN_CHANGE";
|
||||
case BT_HCI_EVT_LE_P256_PUBLIC_KEY_COMPLETE:
|
||||
return "LE_P256_PUBLIC_KEY_COMPLETE";
|
||||
case BT_HCI_EVT_LE_GENERATE_DHKEY_COMPLETE:
|
||||
return "LE_GENERATE_DHKEY_COMPLETE";
|
||||
case BT_HCI_EVT_LE_ENH_CONN_COMPLETE:
|
||||
return "LE_ENH_CONN_COMPLETE";
|
||||
case BT_HCI_EVT_LE_DIRECT_ADV_REPORT:
|
||||
return "LE_DIRECT_ADV_REPORT";
|
||||
case BT_HCI_EVT_LE_PHY_UPDATE_COMPLETE:
|
||||
return "LE_PHY_UPDATE_COMPLETE";
|
||||
case BT_HCI_EVT_LE_EXT_ADVERTISING_REPORT:
|
||||
return "LE_EXT_ADVERTISING_REPORT";
|
||||
case BT_HCI_EVT_LE_PER_ADV_SYNC_ESTABLISHED:
|
||||
return "LE_PER_ADV_SYNC_ESTABLISHED";
|
||||
case BT_HCI_EVT_LE_PER_ADVERTISING_REPORT:
|
||||
return "LE_PER_ADVERTISING_REPORT";
|
||||
case BT_HCI_EVT_LE_PER_ADV_SYNC_LOST:
|
||||
return "LE_PER_ADV_SYNC_LOST";
|
||||
case BT_HCI_EVT_LE_SCAN_TIMEOUT:
|
||||
return "LE_SCAN_TIMEOUT";
|
||||
case BT_HCI_EVT_LE_ADV_SET_TERMINATED:
|
||||
return "LE_ADV_SET_TERMINATED";
|
||||
case BT_HCI_EVT_LE_SCAN_REQ_RECEIVED:
|
||||
return "LE_SCAN_REQ_RECEIVED";
|
||||
case BT_HCI_EVT_LE_CHAN_SEL_ALGO:
|
||||
return "LE_CHAN_SEL_ALGO";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
STATIC const char *hci_opcode_name(uint16_t opcode) {
|
||||
switch (opcode) {
|
||||
case BT_OP_NOP: return "NOP";
|
||||
case BT_HCI_OP_INQUIRY: return "INQUIRY";
|
||||
case BT_HCI_OP_INQUIRY_CANCEL: return "INQUIRY_CANCEL";
|
||||
case BT_HCI_OP_CONNECT: return "CONNECT";
|
||||
case BT_HCI_OP_DISCONNECT: return "DISCONNECT";
|
||||
case BT_HCI_OP_CONNECT_CANCEL: return "CONNECT_CANCEL";
|
||||
case BT_HCI_OP_ACCEPT_CONN_REQ: return "ACCEPT_CONN_REQ";
|
||||
case BT_HCI_OP_SETUP_SYNC_CONN: return "SETUP_SYNC_CONN";
|
||||
case BT_HCI_OP_ACCEPT_SYNC_CONN_REQ: return "ACCEPT_SYNC_CONN_REQ";
|
||||
case BT_HCI_OP_REJECT_CONN_REQ: return "REJECT_CONN_REQ";
|
||||
case BT_HCI_OP_LINK_KEY_REPLY: return "LINK_KEY_REPLY";
|
||||
case BT_HCI_OP_LINK_KEY_NEG_REPLY: return "LINK_KEY_NEG_REPLY";
|
||||
case BT_HCI_OP_PIN_CODE_REPLY: return "PIN_CODE_REPLY";
|
||||
case BT_HCI_OP_PIN_CODE_NEG_REPLY: return "PIN_CODE_NEG_REPLY";
|
||||
case BT_HCI_OP_AUTH_REQUESTED: return "AUTH_REQUESTED";
|
||||
case BT_HCI_OP_SET_CONN_ENCRYPT: return "SET_CONN_ENCRYPT";
|
||||
case BT_HCI_OP_REMOTE_NAME_REQUEST: return "REMOTE_NAME_REQUEST";
|
||||
case BT_HCI_OP_REMOTE_NAME_CANCEL: return "REMOTE_NAME_CANCEL";
|
||||
case BT_HCI_OP_READ_REMOTE_FEATURES: return "READ_REMOTE_FEATURES";
|
||||
case BT_HCI_OP_READ_REMOTE_EXT_FEATURES: return "READ_REMOTE_EXT_FEATURES";
|
||||
case BT_HCI_OP_READ_REMOTE_VERSION_INFO: return "READ_REMOTE_VERSION_INFO";
|
||||
case BT_HCI_OP_IO_CAPABILITY_REPLY: return "IO_CAPABILITY_REPLY";
|
||||
case BT_HCI_OP_USER_CONFIRM_REPLY: return "USER_CONFIRM_REPLY";
|
||||
case BT_HCI_OP_USER_CONFIRM_NEG_REPLY: return "USER_CONFIRM_NEG_REPLY";
|
||||
case BT_HCI_OP_USER_PASSKEY_REPLY: return "USER_PASSKEY_REPLY";
|
||||
case BT_HCI_OP_USER_PASSKEY_NEG_REPLY: return "USER_PASSKEY_NEG_REPLY";
|
||||
case BT_HCI_OP_IO_CAPABILITY_NEG_REPLY: return "IO_CAPABILITY_NEG_REPLY";
|
||||
case BT_HCI_OP_SET_EVENT_MASK: return "SET_EVENT_MASK";
|
||||
case BT_HCI_OP_RESET: return "RESET";
|
||||
case BT_HCI_OP_WRITE_LOCAL_NAME: return "WRITE_LOCAL_NAME";
|
||||
case BT_HCI_OP_WRITE_PAGE_TIMEOUT: return "WRITE_PAGE_TIMEOUT";
|
||||
case BT_HCI_OP_WRITE_SCAN_ENABLE: return "WRITE_SCAN_ENABLE";
|
||||
case BT_HCI_OP_READ_TX_POWER_LEVEL: return "READ_TX_POWER_LEVEL";
|
||||
case BT_HCI_OP_SET_CTL_TO_HOST_FLOW: return "SET_CTL_TO_HOST_FLOW";
|
||||
case BT_HCI_OP_HOST_BUFFER_SIZE: return "HOST_BUFFER_SIZE";
|
||||
case BT_HCI_OP_HOST_NUM_COMPLETED_PACKETS: return "HOST_NUM_COMPLETED_PACKETS";
|
||||
case BT_HCI_OP_WRITE_INQUIRY_MODE: return "WRITE_INQUIRY_MODE";
|
||||
case BT_HCI_OP_WRITE_SSP_MODE: return "WRITE_SSP_MODE";
|
||||
case BT_HCI_OP_SET_EVENT_MASK_PAGE_2: return "SET_EVENT_MASK_PAGE_2";
|
||||
case BT_HCI_OP_LE_WRITE_LE_HOST_SUPP: return "LE_WRITE_LE_HOST_SUPP";
|
||||
case BT_HCI_OP_WRITE_SC_HOST_SUPP: return "WRITE_SC_HOST_SUPP";
|
||||
case BT_HCI_OP_READ_AUTH_PAYLOAD_TIMEOUT: return "READ_AUTH_PAYLOAD_TIMEOUT";
|
||||
case BT_HCI_OP_WRITE_AUTH_PAYLOAD_TIMEOUT: return "WRITE_AUTH_PAYLOAD_TIMEOUT";
|
||||
case BT_HCI_OP_READ_LOCAL_VERSION_INFO: return "READ_LOCAL_VERSION_INFO";
|
||||
case BT_HCI_OP_READ_SUPPORTED_COMMANDS: return "READ_SUPPORTED_COMMANDS";
|
||||
case BT_HCI_OP_READ_LOCAL_EXT_FEATURES: return "READ_LOCAL_EXT_FEATURES";
|
||||
case BT_HCI_OP_READ_LOCAL_FEATURES: return "READ_LOCAL_FEATURES";
|
||||
case BT_HCI_OP_READ_BUFFER_SIZE: return "READ_BUFFER_SIZE";
|
||||
case BT_HCI_OP_READ_BD_ADDR: return "READ_BD_ADDR";
|
||||
case BT_HCI_OP_READ_RSSI: return "READ_RSSI";
|
||||
case BT_HCI_OP_READ_ENCRYPTION_KEY_SIZE: return "READ_ENCRYPTION_KEY_SIZE";
|
||||
case BT_HCI_OP_LE_SET_EVENT_MASK: return "LE_SET_EVENT_MASK";
|
||||
case BT_HCI_OP_LE_READ_BUFFER_SIZE: return "LE_READ_BUFFER_SIZE";
|
||||
case BT_HCI_OP_LE_READ_LOCAL_FEATURES: return "LE_READ_LOCAL_FEATURES";
|
||||
case BT_HCI_OP_LE_SET_RANDOM_ADDRESS: return "LE_SET_RANDOM_ADDRESS";
|
||||
case BT_HCI_OP_LE_SET_ADV_PARAM: return "LE_SET_ADV_PARAM";
|
||||
case BT_HCI_OP_LE_READ_ADV_CHAN_TX_POWER: return "LE_READ_ADV_CHAN_TX_POWER";
|
||||
case BT_HCI_OP_LE_SET_ADV_DATA: return "LE_SET_ADV_DATA";
|
||||
case BT_HCI_OP_LE_SET_SCAN_RSP_DATA: return "LE_SET_SCAN_RSP_DATA";
|
||||
case BT_HCI_OP_LE_SET_ADV_ENABLE: return "LE_SET_ADV_ENABLE";
|
||||
case BT_HCI_OP_LE_SET_SCAN_PARAM: return "LE_SET_SCAN_PARAM";
|
||||
case BT_HCI_OP_LE_SET_SCAN_ENABLE: return "LE_SET_SCAN_ENABLE";
|
||||
case BT_HCI_OP_LE_CREATE_CONN: return "LE_CREATE_CONN";
|
||||
case BT_HCI_OP_LE_CREATE_CONN_CANCEL: return "LE_CREATE_CONN_CANCEL";
|
||||
case BT_HCI_OP_LE_READ_WL_SIZE: return "LE_READ_WL_SIZE";
|
||||
case BT_HCI_OP_LE_CLEAR_WL: return "LE_CLEAR_WL";
|
||||
case BT_HCI_OP_LE_ADD_DEV_TO_WL: return "LE_ADD_DEV_TO_WL";
|
||||
case BT_HCI_OP_LE_REM_DEV_FROM_WL: return "LE_REM_DEV_FROM_WL";
|
||||
case BT_HCI_OP_LE_CONN_UPDATE: return "LE_CONN_UPDATE";
|
||||
case BT_HCI_OP_LE_SET_HOST_CHAN_CLASSIF: return "LE_SET_HOST_CHAN_CLASSIF";
|
||||
case BT_HCI_OP_LE_READ_CHAN_MAP: return "LE_READ_CHAN_MAP";
|
||||
case BT_HCI_OP_LE_READ_REMOTE_FEATURES: return "LE_READ_REMOTE_FEATURES";
|
||||
case BT_HCI_OP_LE_ENCRYPT: return "LE_ENCRYPT";
|
||||
case BT_HCI_OP_LE_RAND: return "LE_RAND";
|
||||
case BT_HCI_OP_LE_START_ENCRYPTION: return "LE_START_ENCRYPTION";
|
||||
case BT_HCI_OP_LE_LTK_REQ_REPLY: return "LE_LTK_REQ_REPLY";
|
||||
case BT_HCI_OP_LE_LTK_REQ_NEG_REPLY: return "LE_LTK_REQ_NEG_REPLY";
|
||||
case BT_HCI_OP_LE_READ_SUPP_STATES: return "LE_READ_SUPP_STATES";
|
||||
case BT_HCI_OP_LE_RX_TEST: return "LE_RX_TEST";
|
||||
case BT_HCI_OP_LE_TX_TEST: return "LE_TX_TEST";
|
||||
case BT_HCI_OP_LE_TEST_END: return "LE_TEST_END";
|
||||
case BT_HCI_OP_LE_CONN_PARAM_REQ_REPLY: return "LE_CONN_PARAM_REQ_REPLY";
|
||||
case BT_HCI_OP_LE_CONN_PARAM_REQ_NEG_REPLY: return "LE_CONN_PARAM_REQ_NEG_REPLY";
|
||||
case BT_HCI_OP_LE_SET_DATA_LEN: return "LE_SET_DATA_LEN";
|
||||
case BT_HCI_OP_LE_READ_DEFAULT_DATA_LEN: return "LE_READ_DEFAULT_DATA_LEN";
|
||||
case BT_HCI_OP_LE_WRITE_DEFAULT_DATA_LEN: return "LE_WRITE_DEFAULT_DATA_LEN";
|
||||
case BT_HCI_OP_LE_P256_PUBLIC_KEY: return "LE_P256_PUBLIC_KEY";
|
||||
case BT_HCI_OP_LE_GENERATE_DHKEY: return "LE_GENERATE_DHKEY";
|
||||
case BT_HCI_OP_LE_ADD_DEV_TO_RL: return "LE_ADD_DEV_TO_RL";
|
||||
case BT_HCI_OP_LE_REM_DEV_FROM_RL: return "LE_REM_DEV_FROM_RL";
|
||||
case BT_HCI_OP_LE_CLEAR_RL: return "LE_CLEAR_RL";
|
||||
case BT_HCI_OP_LE_READ_RL_SIZE: return "LE_READ_RL_SIZE";
|
||||
case BT_HCI_OP_LE_READ_PEER_RPA: return "LE_READ_PEER_RPA";
|
||||
case BT_HCI_OP_LE_READ_LOCAL_RPA: return "LE_READ_LOCAL_RPA";
|
||||
case BT_HCI_OP_LE_SET_ADDR_RES_ENABLE: return "LE_SET_ADDR_RES_ENABLE";
|
||||
case BT_HCI_OP_LE_SET_RPA_TIMEOUT: return "LE_SET_RPA_TIMEOUT";
|
||||
case BT_HCI_OP_LE_READ_MAX_DATA_LEN: return "LE_READ_MAX_DATA_LEN";
|
||||
case BT_HCI_OP_LE_READ_PHY: return "LE_READ_PHY";
|
||||
case BT_HCI_OP_LE_SET_DEFAULT_PHY: return "LE_SET_DEFAULT_PHY";
|
||||
case BT_HCI_OP_LE_SET_PHY: return "LE_SET_PHY";
|
||||
case BT_HCI_OP_LE_ENH_RX_TEST: return "LE_ENH_RX_TEST";
|
||||
case BT_HCI_OP_LE_ENH_TX_TEST: return "LE_ENH_TX_TEST";
|
||||
case BT_HCI_OP_LE_SET_ADV_SET_RANDOM_ADDR: return "LE_SET_ADV_SET_RANDOM_ADDR";
|
||||
case BT_HCI_OP_LE_SET_EXT_ADV_PARAM: return "LE_SET_EXT_ADV_PARAM";
|
||||
case BT_HCI_OP_LE_SET_EXT_ADV_DATA: return "LE_SET_EXT_ADV_DATA";
|
||||
case BT_HCI_OP_LE_SET_EXT_SCAN_RSP_DATA: return "LE_SET_EXT_SCAN_RSP_DATA";
|
||||
case BT_HCI_OP_LE_SET_EXT_ADV_ENABLE: return "LE_SET_EXT_ADV_ENABLE";
|
||||
case BT_HCI_OP_LE_READ_MAX_ADV_DATA_LEN: return "LE_READ_MAX_ADV_DATA_LEN";
|
||||
case BT_HCI_OP_LE_READ_NUM_ADV_SETS: return "LE_READ_NUM_ADV_SETS";
|
||||
case BT_HCI_OP_LE_REMOVE_ADV_SET: return "LE_REMOVE_ADV_SET";
|
||||
case BT_HCI_OP_CLEAR_ADV_SETS: return "CLEAR_ADV_SETS";
|
||||
case BT_HCI_OP_LE_SET_PER_ADV_PARAM: return "LE_SET_PER_ADV_PARAM";
|
||||
case BT_HCI_OP_LE_SET_PER_ADV_DATA: return "LE_SET_PER_ADV_DATA";
|
||||
case BT_HCI_OP_LE_SET_PER_ADV_ENABLE: return "LE_SET_PER_ADV_ENABLE";
|
||||
case BT_HCI_OP_LE_SET_EXT_SCAN_PARAM: return "LE_SET_EXT_SCAN_PARAM";
|
||||
case BT_HCI_OP_LE_SET_EXT_SCAN_ENABLE: return "LE_SET_EXT_SCAN_ENABLE";
|
||||
case BT_HCI_OP_LE_EXT_CREATE_CONN: return "LE_EXT_CREATE_CONN";
|
||||
case BT_HCI_OP_LE_PER_ADV_CREATE_SYNC: return "LE_PER_ADV_CREATE_SYNC";
|
||||
case BT_HCI_OP_LE_PER_ADV_CREATE_SYNC_CANCEL: return "LE_PER_ADV_CREATE_SYNC_CANCEL";
|
||||
case BT_HCI_OP_LE_PER_ADV_TERMINATE_SYNC: return "LE_PER_ADV_TERMINATE_SYNC";
|
||||
case BT_HCI_OP_LE_ADD_DEV_TO_PER_ADV_LIST: return "LE_ADD_DEV_TO_PER_ADV_LIST";
|
||||
case BT_HCI_OP_LE_REM_DEV_FROM_PER_ADV_LIST: return "LE_REM_DEV_FROM_PER_ADV_LIST";
|
||||
case BT_HCI_OP_LE_CLEAR_PER_ADV_LIST: return "LE_CLEAR_PER_ADV_LIST";
|
||||
case BT_HCI_OP_LE_READ_PER_ADV_LIST_SIZE: return "LE_READ_PER_ADV_LIST_SIZE";
|
||||
case BT_HCI_OP_LE_READ_TX_POWER: return "LE_READ_TX_POWER";
|
||||
case BT_HCI_OP_LE_READ_RF_PATH_COMP: return "LE_READ_RF_PATH_COMP";
|
||||
case BT_HCI_OP_LE_WRITE_RF_PATH_COMP: return "LE_WRITE_RF_PATH_COMP";
|
||||
case BT_HCI_OP_LE_SET_PRIVACY_MODE: return "LE_SET_PRIVACY_MODE";
|
||||
default: return "";
|
||||
case BT_OP_NOP:
|
||||
return "NOP";
|
||||
case BT_HCI_OP_INQUIRY:
|
||||
return "INQUIRY";
|
||||
case BT_HCI_OP_INQUIRY_CANCEL:
|
||||
return "INQUIRY_CANCEL";
|
||||
case BT_HCI_OP_CONNECT:
|
||||
return "CONNECT";
|
||||
case BT_HCI_OP_DISCONNECT:
|
||||
return "DISCONNECT";
|
||||
case BT_HCI_OP_CONNECT_CANCEL:
|
||||
return "CONNECT_CANCEL";
|
||||
case BT_HCI_OP_ACCEPT_CONN_REQ:
|
||||
return "ACCEPT_CONN_REQ";
|
||||
case BT_HCI_OP_SETUP_SYNC_CONN:
|
||||
return "SETUP_SYNC_CONN";
|
||||
case BT_HCI_OP_ACCEPT_SYNC_CONN_REQ:
|
||||
return "ACCEPT_SYNC_CONN_REQ";
|
||||
case BT_HCI_OP_REJECT_CONN_REQ:
|
||||
return "REJECT_CONN_REQ";
|
||||
case BT_HCI_OP_LINK_KEY_REPLY:
|
||||
return "LINK_KEY_REPLY";
|
||||
case BT_HCI_OP_LINK_KEY_NEG_REPLY:
|
||||
return "LINK_KEY_NEG_REPLY";
|
||||
case BT_HCI_OP_PIN_CODE_REPLY:
|
||||
return "PIN_CODE_REPLY";
|
||||
case BT_HCI_OP_PIN_CODE_NEG_REPLY:
|
||||
return "PIN_CODE_NEG_REPLY";
|
||||
case BT_HCI_OP_AUTH_REQUESTED:
|
||||
return "AUTH_REQUESTED";
|
||||
case BT_HCI_OP_SET_CONN_ENCRYPT:
|
||||
return "SET_CONN_ENCRYPT";
|
||||
case BT_HCI_OP_REMOTE_NAME_REQUEST:
|
||||
return "REMOTE_NAME_REQUEST";
|
||||
case BT_HCI_OP_REMOTE_NAME_CANCEL:
|
||||
return "REMOTE_NAME_CANCEL";
|
||||
case BT_HCI_OP_READ_REMOTE_FEATURES:
|
||||
return "READ_REMOTE_FEATURES";
|
||||
case BT_HCI_OP_READ_REMOTE_EXT_FEATURES:
|
||||
return "READ_REMOTE_EXT_FEATURES";
|
||||
case BT_HCI_OP_READ_REMOTE_VERSION_INFO:
|
||||
return "READ_REMOTE_VERSION_INFO";
|
||||
case BT_HCI_OP_IO_CAPABILITY_REPLY:
|
||||
return "IO_CAPABILITY_REPLY";
|
||||
case BT_HCI_OP_USER_CONFIRM_REPLY:
|
||||
return "USER_CONFIRM_REPLY";
|
||||
case BT_HCI_OP_USER_CONFIRM_NEG_REPLY:
|
||||
return "USER_CONFIRM_NEG_REPLY";
|
||||
case BT_HCI_OP_USER_PASSKEY_REPLY:
|
||||
return "USER_PASSKEY_REPLY";
|
||||
case BT_HCI_OP_USER_PASSKEY_NEG_REPLY:
|
||||
return "USER_PASSKEY_NEG_REPLY";
|
||||
case BT_HCI_OP_IO_CAPABILITY_NEG_REPLY:
|
||||
return "IO_CAPABILITY_NEG_REPLY";
|
||||
case BT_HCI_OP_SET_EVENT_MASK:
|
||||
return "SET_EVENT_MASK";
|
||||
case BT_HCI_OP_RESET:
|
||||
return "RESET";
|
||||
case BT_HCI_OP_WRITE_LOCAL_NAME:
|
||||
return "WRITE_LOCAL_NAME";
|
||||
case BT_HCI_OP_WRITE_PAGE_TIMEOUT:
|
||||
return "WRITE_PAGE_TIMEOUT";
|
||||
case BT_HCI_OP_WRITE_SCAN_ENABLE:
|
||||
return "WRITE_SCAN_ENABLE";
|
||||
case BT_HCI_OP_READ_TX_POWER_LEVEL:
|
||||
return "READ_TX_POWER_LEVEL";
|
||||
case BT_HCI_OP_SET_CTL_TO_HOST_FLOW:
|
||||
return "SET_CTL_TO_HOST_FLOW";
|
||||
case BT_HCI_OP_HOST_BUFFER_SIZE:
|
||||
return "HOST_BUFFER_SIZE";
|
||||
case BT_HCI_OP_HOST_NUM_COMPLETED_PACKETS:
|
||||
return "HOST_NUM_COMPLETED_PACKETS";
|
||||
case BT_HCI_OP_WRITE_INQUIRY_MODE:
|
||||
return "WRITE_INQUIRY_MODE";
|
||||
case BT_HCI_OP_WRITE_SSP_MODE:
|
||||
return "WRITE_SSP_MODE";
|
||||
case BT_HCI_OP_SET_EVENT_MASK_PAGE_2:
|
||||
return "SET_EVENT_MASK_PAGE_2";
|
||||
case BT_HCI_OP_LE_WRITE_LE_HOST_SUPP:
|
||||
return "LE_WRITE_LE_HOST_SUPP";
|
||||
case BT_HCI_OP_WRITE_SC_HOST_SUPP:
|
||||
return "WRITE_SC_HOST_SUPP";
|
||||
case BT_HCI_OP_READ_AUTH_PAYLOAD_TIMEOUT:
|
||||
return "READ_AUTH_PAYLOAD_TIMEOUT";
|
||||
case BT_HCI_OP_WRITE_AUTH_PAYLOAD_TIMEOUT:
|
||||
return "WRITE_AUTH_PAYLOAD_TIMEOUT";
|
||||
case BT_HCI_OP_READ_LOCAL_VERSION_INFO:
|
||||
return "READ_LOCAL_VERSION_INFO";
|
||||
case BT_HCI_OP_READ_SUPPORTED_COMMANDS:
|
||||
return "READ_SUPPORTED_COMMANDS";
|
||||
case BT_HCI_OP_READ_LOCAL_EXT_FEATURES:
|
||||
return "READ_LOCAL_EXT_FEATURES";
|
||||
case BT_HCI_OP_READ_LOCAL_FEATURES:
|
||||
return "READ_LOCAL_FEATURES";
|
||||
case BT_HCI_OP_READ_BUFFER_SIZE:
|
||||
return "READ_BUFFER_SIZE";
|
||||
case BT_HCI_OP_READ_BD_ADDR:
|
||||
return "READ_BD_ADDR";
|
||||
case BT_HCI_OP_READ_RSSI:
|
||||
return "READ_RSSI";
|
||||
case BT_HCI_OP_READ_ENCRYPTION_KEY_SIZE:
|
||||
return "READ_ENCRYPTION_KEY_SIZE";
|
||||
case BT_HCI_OP_LE_SET_EVENT_MASK:
|
||||
return "LE_SET_EVENT_MASK";
|
||||
case BT_HCI_OP_LE_READ_BUFFER_SIZE:
|
||||
return "LE_READ_BUFFER_SIZE";
|
||||
case BT_HCI_OP_LE_READ_LOCAL_FEATURES:
|
||||
return "LE_READ_LOCAL_FEATURES";
|
||||
case BT_HCI_OP_LE_SET_RANDOM_ADDRESS:
|
||||
return "LE_SET_RANDOM_ADDRESS";
|
||||
case BT_HCI_OP_LE_SET_ADV_PARAM:
|
||||
return "LE_SET_ADV_PARAM";
|
||||
case BT_HCI_OP_LE_READ_ADV_CHAN_TX_POWER:
|
||||
return "LE_READ_ADV_CHAN_TX_POWER";
|
||||
case BT_HCI_OP_LE_SET_ADV_DATA:
|
||||
return "LE_SET_ADV_DATA";
|
||||
case BT_HCI_OP_LE_SET_SCAN_RSP_DATA:
|
||||
return "LE_SET_SCAN_RSP_DATA";
|
||||
case BT_HCI_OP_LE_SET_ADV_ENABLE:
|
||||
return "LE_SET_ADV_ENABLE";
|
||||
case BT_HCI_OP_LE_SET_SCAN_PARAM:
|
||||
return "LE_SET_SCAN_PARAM";
|
||||
case BT_HCI_OP_LE_SET_SCAN_ENABLE:
|
||||
return "LE_SET_SCAN_ENABLE";
|
||||
case BT_HCI_OP_LE_CREATE_CONN:
|
||||
return "LE_CREATE_CONN";
|
||||
case BT_HCI_OP_LE_CREATE_CONN_CANCEL:
|
||||
return "LE_CREATE_CONN_CANCEL";
|
||||
case BT_HCI_OP_LE_READ_WL_SIZE:
|
||||
return "LE_READ_WL_SIZE";
|
||||
case BT_HCI_OP_LE_CLEAR_WL:
|
||||
return "LE_CLEAR_WL";
|
||||
case BT_HCI_OP_LE_ADD_DEV_TO_WL:
|
||||
return "LE_ADD_DEV_TO_WL";
|
||||
case BT_HCI_OP_LE_REM_DEV_FROM_WL:
|
||||
return "LE_REM_DEV_FROM_WL";
|
||||
case BT_HCI_OP_LE_CONN_UPDATE:
|
||||
return "LE_CONN_UPDATE";
|
||||
case BT_HCI_OP_LE_SET_HOST_CHAN_CLASSIF:
|
||||
return "LE_SET_HOST_CHAN_CLASSIF";
|
||||
case BT_HCI_OP_LE_READ_CHAN_MAP:
|
||||
return "LE_READ_CHAN_MAP";
|
||||
case BT_HCI_OP_LE_READ_REMOTE_FEATURES:
|
||||
return "LE_READ_REMOTE_FEATURES";
|
||||
case BT_HCI_OP_LE_ENCRYPT:
|
||||
return "LE_ENCRYPT";
|
||||
case BT_HCI_OP_LE_RAND:
|
||||
return "LE_RAND";
|
||||
case BT_HCI_OP_LE_START_ENCRYPTION:
|
||||
return "LE_START_ENCRYPTION";
|
||||
case BT_HCI_OP_LE_LTK_REQ_REPLY:
|
||||
return "LE_LTK_REQ_REPLY";
|
||||
case BT_HCI_OP_LE_LTK_REQ_NEG_REPLY:
|
||||
return "LE_LTK_REQ_NEG_REPLY";
|
||||
case BT_HCI_OP_LE_READ_SUPP_STATES:
|
||||
return "LE_READ_SUPP_STATES";
|
||||
case BT_HCI_OP_LE_RX_TEST:
|
||||
return "LE_RX_TEST";
|
||||
case BT_HCI_OP_LE_TX_TEST:
|
||||
return "LE_TX_TEST";
|
||||
case BT_HCI_OP_LE_TEST_END:
|
||||
return "LE_TEST_END";
|
||||
case BT_HCI_OP_LE_CONN_PARAM_REQ_REPLY:
|
||||
return "LE_CONN_PARAM_REQ_REPLY";
|
||||
case BT_HCI_OP_LE_CONN_PARAM_REQ_NEG_REPLY:
|
||||
return "LE_CONN_PARAM_REQ_NEG_REPLY";
|
||||
case BT_HCI_OP_LE_SET_DATA_LEN:
|
||||
return "LE_SET_DATA_LEN";
|
||||
case BT_HCI_OP_LE_READ_DEFAULT_DATA_LEN:
|
||||
return "LE_READ_DEFAULT_DATA_LEN";
|
||||
case BT_HCI_OP_LE_WRITE_DEFAULT_DATA_LEN:
|
||||
return "LE_WRITE_DEFAULT_DATA_LEN";
|
||||
case BT_HCI_OP_LE_P256_PUBLIC_KEY:
|
||||
return "LE_P256_PUBLIC_KEY";
|
||||
case BT_HCI_OP_LE_GENERATE_DHKEY:
|
||||
return "LE_GENERATE_DHKEY";
|
||||
case BT_HCI_OP_LE_ADD_DEV_TO_RL:
|
||||
return "LE_ADD_DEV_TO_RL";
|
||||
case BT_HCI_OP_LE_REM_DEV_FROM_RL:
|
||||
return "LE_REM_DEV_FROM_RL";
|
||||
case BT_HCI_OP_LE_CLEAR_RL:
|
||||
return "LE_CLEAR_RL";
|
||||
case BT_HCI_OP_LE_READ_RL_SIZE:
|
||||
return "LE_READ_RL_SIZE";
|
||||
case BT_HCI_OP_LE_READ_PEER_RPA:
|
||||
return "LE_READ_PEER_RPA";
|
||||
case BT_HCI_OP_LE_READ_LOCAL_RPA:
|
||||
return "LE_READ_LOCAL_RPA";
|
||||
case BT_HCI_OP_LE_SET_ADDR_RES_ENABLE:
|
||||
return "LE_SET_ADDR_RES_ENABLE";
|
||||
case BT_HCI_OP_LE_SET_RPA_TIMEOUT:
|
||||
return "LE_SET_RPA_TIMEOUT";
|
||||
case BT_HCI_OP_LE_READ_MAX_DATA_LEN:
|
||||
return "LE_READ_MAX_DATA_LEN";
|
||||
case BT_HCI_OP_LE_READ_PHY:
|
||||
return "LE_READ_PHY";
|
||||
case BT_HCI_OP_LE_SET_DEFAULT_PHY:
|
||||
return "LE_SET_DEFAULT_PHY";
|
||||
case BT_HCI_OP_LE_SET_PHY:
|
||||
return "LE_SET_PHY";
|
||||
case BT_HCI_OP_LE_ENH_RX_TEST:
|
||||
return "LE_ENH_RX_TEST";
|
||||
case BT_HCI_OP_LE_ENH_TX_TEST:
|
||||
return "LE_ENH_TX_TEST";
|
||||
case BT_HCI_OP_LE_SET_ADV_SET_RANDOM_ADDR:
|
||||
return "LE_SET_ADV_SET_RANDOM_ADDR";
|
||||
case BT_HCI_OP_LE_SET_EXT_ADV_PARAM:
|
||||
return "LE_SET_EXT_ADV_PARAM";
|
||||
case BT_HCI_OP_LE_SET_EXT_ADV_DATA:
|
||||
return "LE_SET_EXT_ADV_DATA";
|
||||
case BT_HCI_OP_LE_SET_EXT_SCAN_RSP_DATA:
|
||||
return "LE_SET_EXT_SCAN_RSP_DATA";
|
||||
case BT_HCI_OP_LE_SET_EXT_ADV_ENABLE:
|
||||
return "LE_SET_EXT_ADV_ENABLE";
|
||||
case BT_HCI_OP_LE_READ_MAX_ADV_DATA_LEN:
|
||||
return "LE_READ_MAX_ADV_DATA_LEN";
|
||||
case BT_HCI_OP_LE_READ_NUM_ADV_SETS:
|
||||
return "LE_READ_NUM_ADV_SETS";
|
||||
case BT_HCI_OP_LE_REMOVE_ADV_SET:
|
||||
return "LE_REMOVE_ADV_SET";
|
||||
case BT_HCI_OP_CLEAR_ADV_SETS:
|
||||
return "CLEAR_ADV_SETS";
|
||||
case BT_HCI_OP_LE_SET_PER_ADV_PARAM:
|
||||
return "LE_SET_PER_ADV_PARAM";
|
||||
case BT_HCI_OP_LE_SET_PER_ADV_DATA:
|
||||
return "LE_SET_PER_ADV_DATA";
|
||||
case BT_HCI_OP_LE_SET_PER_ADV_ENABLE:
|
||||
return "LE_SET_PER_ADV_ENABLE";
|
||||
case BT_HCI_OP_LE_SET_EXT_SCAN_PARAM:
|
||||
return "LE_SET_EXT_SCAN_PARAM";
|
||||
case BT_HCI_OP_LE_SET_EXT_SCAN_ENABLE:
|
||||
return "LE_SET_EXT_SCAN_ENABLE";
|
||||
case BT_HCI_OP_LE_EXT_CREATE_CONN:
|
||||
return "LE_EXT_CREATE_CONN";
|
||||
case BT_HCI_OP_LE_PER_ADV_CREATE_SYNC:
|
||||
return "LE_PER_ADV_CREATE_SYNC";
|
||||
case BT_HCI_OP_LE_PER_ADV_CREATE_SYNC_CANCEL:
|
||||
return "LE_PER_ADV_CREATE_SYNC_CANCEL";
|
||||
case BT_HCI_OP_LE_PER_ADV_TERMINATE_SYNC:
|
||||
return "LE_PER_ADV_TERMINATE_SYNC";
|
||||
case BT_HCI_OP_LE_ADD_DEV_TO_PER_ADV_LIST:
|
||||
return "LE_ADD_DEV_TO_PER_ADV_LIST";
|
||||
case BT_HCI_OP_LE_REM_DEV_FROM_PER_ADV_LIST:
|
||||
return "LE_REM_DEV_FROM_PER_ADV_LIST";
|
||||
case BT_HCI_OP_LE_CLEAR_PER_ADV_LIST:
|
||||
return "LE_CLEAR_PER_ADV_LIST";
|
||||
case BT_HCI_OP_LE_READ_PER_ADV_LIST_SIZE:
|
||||
return "LE_READ_PER_ADV_LIST_SIZE";
|
||||
case BT_HCI_OP_LE_READ_TX_POWER:
|
||||
return "LE_READ_TX_POWER";
|
||||
case BT_HCI_OP_LE_READ_RF_PATH_COMP:
|
||||
return "LE_READ_RF_PATH_COMP";
|
||||
case BT_HCI_OP_LE_WRITE_RF_PATH_COMP:
|
||||
return "LE_WRITE_RF_PATH_COMP";
|
||||
case BT_HCI_OP_LE_SET_PRIVACY_MODE:
|
||||
return "LE_SET_PRIVACY_MODE";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -45,23 +45,19 @@ typedef struct {
|
||||
#define BT_ADDR_LE_NONE ((bt_addr_le_t[]) { { 0, \
|
||||
{ { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } } } })
|
||||
|
||||
static inline int bt_addr_cmp(const bt_addr_t *a, const bt_addr_t *b)
|
||||
{
|
||||
static inline int bt_addr_cmp(const bt_addr_t *a, const bt_addr_t *b) {
|
||||
return memcmp(a, b, sizeof(*a));
|
||||
}
|
||||
|
||||
static inline int bt_addr_le_cmp(const bt_addr_le_t *a, const bt_addr_le_t *b)
|
||||
{
|
||||
static inline int bt_addr_le_cmp(const bt_addr_le_t *a, const bt_addr_le_t *b) {
|
||||
return memcmp(a, b, sizeof(*a));
|
||||
}
|
||||
|
||||
static inline void bt_addr_copy(bt_addr_t *dst, const bt_addr_t *src)
|
||||
{
|
||||
static inline void bt_addr_copy(bt_addr_t *dst, const bt_addr_t *src) {
|
||||
memcpy(dst, src, sizeof(*dst));
|
||||
}
|
||||
|
||||
static inline void bt_addr_le_copy(bt_addr_le_t *dst, const bt_addr_le_t *src)
|
||||
{
|
||||
static inline void bt_addr_le_copy(bt_addr_le_t *dst, const bt_addr_le_t *src) {
|
||||
memcpy(dst, src, sizeof(*dst));
|
||||
}
|
||||
|
||||
@ -76,8 +72,7 @@ static inline void bt_addr_le_copy(bt_addr_le_t *dst, const bt_addr_le_t *src)
|
||||
int bt_addr_le_create_nrpa(bt_addr_le_t *addr);
|
||||
int bt_addr_le_create_static(bt_addr_le_t *addr);
|
||||
|
||||
static inline bool bt_addr_le_is_rpa(const bt_addr_le_t *addr)
|
||||
{
|
||||
static inline bool bt_addr_le_is_rpa(const bt_addr_le_t *addr) {
|
||||
if (addr->type != BT_ADDR_LE_RANDOM) {
|
||||
return false;
|
||||
}
|
||||
@ -85,8 +80,7 @@ static inline bool bt_addr_le_is_rpa(const bt_addr_le_t *addr)
|
||||
return BT_ADDR_IS_RPA(&addr->a);
|
||||
}
|
||||
|
||||
static inline bool bt_addr_le_is_identity(const bt_addr_le_t *addr)
|
||||
{
|
||||
static inline bool bt_addr_le_is_identity(const bt_addr_le_t *addr) {
|
||||
if (addr->type == BT_ADDR_LE_PUBLIC) {
|
||||
return true;
|
||||
}
|
||||
|
@ -50,9 +50,15 @@ STATIC mp_obj_t machine_mem_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t va
|
||||
uintptr_t addr = MICROPY_MACHINE_MEM_GET_READ_ADDR(index, self->elem_size);
|
||||
uint32_t val;
|
||||
switch (self->elem_size) {
|
||||
case 1: val = (*(uint8_t*)addr); break;
|
||||
case 2: val = (*(uint16_t*)addr); break;
|
||||
default: val = (*(uint32_t*)addr); break;
|
||||
case 1:
|
||||
val = (*(uint8_t *)addr);
|
||||
break;
|
||||
case 2:
|
||||
val = (*(uint16_t *)addr);
|
||||
break;
|
||||
default:
|
||||
val = (*(uint32_t *)addr);
|
||||
break;
|
||||
}
|
||||
return mp_obj_new_int(val);
|
||||
} else {
|
||||
@ -60,9 +66,15 @@ STATIC mp_obj_t machine_mem_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t va
|
||||
uintptr_t addr = MICROPY_MACHINE_MEM_GET_WRITE_ADDR(index, self->elem_size);
|
||||
uint32_t val = mp_obj_get_int_truncated(value);
|
||||
switch (self->elem_size) {
|
||||
case 1: (*(uint8_t*)addr) = val; break;
|
||||
case 2: (*(uint16_t*)addr) = val; break;
|
||||
default: (*(uint32_t*)addr) = val; break;
|
||||
case 1:
|
||||
(*(uint8_t *)addr) = val;
|
||||
break;
|
||||
case 2:
|
||||
(*(uint16_t *)addr) = val;
|
||||
break;
|
||||
default:
|
||||
(*(uint32_t *)addr) = val;
|
||||
break;
|
||||
}
|
||||
return mp_const_none;
|
||||
}
|
||||
|
@ -64,8 +64,7 @@ STATIC mp_obj_t signal_make_new(const mp_obj_type_t *type, size_t n_args, const
|
||||
pin = MICROPY_PY_MACHINE_PIN_MAKE_NEW(NULL, n_args, n_kw, pin_args);
|
||||
|
||||
mp_local_free(pin_args);
|
||||
}
|
||||
else
|
||||
} else
|
||||
#endif
|
||||
// Otherwise there should be 1 or 2 args
|
||||
{
|
||||
|
@ -423,9 +423,15 @@ STATIC mp_obj_t framebuf_line(size_t n_args, const mp_obj_t *args) {
|
||||
bool steep;
|
||||
if (dy > dx) {
|
||||
mp_int_t temp;
|
||||
temp = x1; x1 = y1; y1 = temp;
|
||||
temp = dx; dx = dy; dy = temp;
|
||||
temp = sx; sx = sy; sy = temp;
|
||||
temp = x1;
|
||||
x1 = y1;
|
||||
y1 = temp;
|
||||
temp = dx;
|
||||
dx = dy;
|
||||
dy = temp;
|
||||
temp = sx;
|
||||
sx = sy;
|
||||
sy = temp;
|
||||
steep = true;
|
||||
} else {
|
||||
steep = false;
|
||||
|
@ -337,8 +337,7 @@ STATIC err_t _lwip_tcp_recv_unaccepted(void *arg, struct tcp_pcb *pcb, struct pb
|
||||
// "Poll" (idle) callback to be called ASAP after accept callback
|
||||
// to execute Python callback function, as it can't be executed
|
||||
// from accept callback itself.
|
||||
STATIC err_t _lwip_tcp_accept_finished(void *arg, struct tcp_pcb *pcb)
|
||||
{
|
||||
STATIC err_t _lwip_tcp_accept_finished(void *arg, struct tcp_pcb *pcb) {
|
||||
lwip_socket_obj_t *socket = (lwip_socket_obj_t *)arg;
|
||||
tcp_poll(pcb, NULL, 0);
|
||||
exec_user_callback(socket);
|
||||
@ -443,7 +442,9 @@ STATIC mp_uint_t lwip_udp_receive(lwip_socket_obj_t *socket, byte *buf, mp_uint_
|
||||
if (socket->timeout != -1) {
|
||||
for (mp_uint_t retries = socket->timeout / 100; retries--;) {
|
||||
mp_hal_delay_ms(100);
|
||||
if (socket->incoming.pbuf != NULL) break;
|
||||
if (socket->incoming.pbuf != NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (socket->incoming.pbuf == NULL) {
|
||||
*_errno = MP_ETIMEDOUT;
|
||||
@ -622,10 +623,15 @@ STATIC mp_obj_t lwip_socket_make_new(const mp_obj_type_t *type, size_t n_args, s
|
||||
}
|
||||
|
||||
switch (socket->type) {
|
||||
case MOD_NETWORK_SOCK_STREAM: socket->pcb.tcp = tcp_new(); break;
|
||||
case MOD_NETWORK_SOCK_DGRAM: socket->pcb.udp = udp_new(); break;
|
||||
case MOD_NETWORK_SOCK_STREAM:
|
||||
socket->pcb.tcp = tcp_new();
|
||||
break;
|
||||
case MOD_NETWORK_SOCK_DGRAM:
|
||||
socket->pcb.udp = udp_new();
|
||||
break;
|
||||
// case MOD_NETWORK_SOCK_RAW: socket->pcb.raw = raw_new(); break;
|
||||
default: mp_raise_OSError(MP_EINVAL);
|
||||
default:
|
||||
mp_raise_OSError(MP_EINVAL);
|
||||
}
|
||||
|
||||
if (socket->pcb.tcp == NULL) {
|
||||
@ -731,7 +737,9 @@ STATIC mp_obj_t lwip_socket_accept(mp_obj_t self_in) {
|
||||
} else if (socket->timeout != -1) {
|
||||
for (mp_uint_t retries = socket->timeout / 100; retries--;) {
|
||||
mp_hal_delay_ms(100);
|
||||
if (socket->incoming.connection != NULL) break;
|
||||
if (socket->incoming.connection != NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (socket->incoming.connection == NULL) {
|
||||
mp_raise_OSError(MP_ETIMEDOUT);
|
||||
@ -815,7 +823,9 @@ STATIC mp_obj_t lwip_socket_connect(mp_obj_t self_in, mp_obj_t addr_in) {
|
||||
if (socket->timeout != -1) {
|
||||
for (mp_uint_t retries = socket->timeout / 100; retries--;) {
|
||||
mp_hal_delay_ms(100);
|
||||
if (socket->state != STATE_CONNECTING) break;
|
||||
if (socket->state != STATE_CONNECTING) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (socket->state == STATE_CONNECTING) {
|
||||
mp_raise_OSError(MP_EINPROGRESS);
|
||||
@ -1192,7 +1202,9 @@ STATIC mp_uint_t lwip_socket_ioctl(mp_obj_t self_in, mp_uint_t request, uintptr_
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MOD_NETWORK_SOCK_DGRAM: udp_remove(socket->pcb.udp); break;
|
||||
case MOD_NETWORK_SOCK_DGRAM:
|
||||
udp_remove(socket->pcb.udp);
|
||||
break;
|
||||
// case MOD_NETWORK_SOCK_RAW: raw_remove(socket->pcb.raw); break;
|
||||
}
|
||||
socket->pcb.tcp = NULL;
|
||||
|
@ -175,8 +175,7 @@ mp_obj_t mod_binascii_b2a_base64(mp_obj_t data) {
|
||||
if (i == 2) {
|
||||
*out++ = (in[0] & 0x03) << 4 | (in[1] & 0xF0) >> 4;
|
||||
*out++ = (in[1] & 0x0F) << 2;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
*out++ = (in[0] & 0x03) << 4;
|
||||
*out++ = 64;
|
||||
}
|
||||
|
@ -125,8 +125,12 @@ STATIC void uctypes_struct_print(const mp_print_t *print, mp_obj_t self_in, mp_p
|
||||
mp_int_t offset = MP_OBJ_SMALL_INT_VALUE(t->items[0]);
|
||||
uint agg_type = GET_TYPE(offset, AGG_TYPE_BITS);
|
||||
switch (agg_type) {
|
||||
case PTR: typen = "PTR"; break;
|
||||
case ARRAY: typen = "ARRAY"; break;
|
||||
case PTR:
|
||||
typen = "PTR";
|
||||
break;
|
||||
case ARRAY:
|
||||
typen = "ARRAY";
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
typen = "ERROR";
|
||||
@ -289,11 +293,14 @@ static inline mp_uint_t get_aligned_basic(uint val_type, void *p) {
|
||||
static inline void set_aligned_basic(uint val_type, void *p, mp_uint_t v) {
|
||||
switch (val_type) {
|
||||
case UINT8:
|
||||
*(uint8_t*)p = (uint8_t)v; return;
|
||||
*(uint8_t *)p = (uint8_t)v;
|
||||
return;
|
||||
case UINT16:
|
||||
*(uint16_t*)p = (uint16_t)v; return;
|
||||
*(uint16_t *)p = (uint16_t)v;
|
||||
return;
|
||||
case UINT32:
|
||||
*(uint32_t*)p = (uint32_t)v; return;
|
||||
*(uint32_t *)p = (uint32_t)v;
|
||||
return;
|
||||
}
|
||||
assert(0);
|
||||
}
|
||||
@ -343,17 +350,23 @@ STATIC void set_aligned(uint val_type, void *p, mp_int_t index, mp_obj_t val) {
|
||||
mp_int_t v = mp_obj_get_int_truncated(val);
|
||||
switch (val_type) {
|
||||
case UINT8:
|
||||
((uint8_t*)p)[index] = (uint8_t)v; return;
|
||||
((uint8_t *)p)[index] = (uint8_t)v;
|
||||
return;
|
||||
case INT8:
|
||||
((int8_t*)p)[index] = (int8_t)v; return;
|
||||
((int8_t *)p)[index] = (int8_t)v;
|
||||
return;
|
||||
case UINT16:
|
||||
((uint16_t*)p)[index] = (uint16_t)v; return;
|
||||
((uint16_t *)p)[index] = (uint16_t)v;
|
||||
return;
|
||||
case INT16:
|
||||
((int16_t*)p)[index] = (int16_t)v; return;
|
||||
((int16_t *)p)[index] = (int16_t)v;
|
||||
return;
|
||||
case UINT32:
|
||||
((uint32_t*)p)[index] = (uint32_t)v; return;
|
||||
((uint32_t *)p)[index] = (uint32_t)v;
|
||||
return;
|
||||
case INT32:
|
||||
((int32_t*)p)[index] = (int32_t)v; return;
|
||||
((int32_t *)p)[index] = (int32_t)v;
|
||||
return;
|
||||
case INT64:
|
||||
case UINT64:
|
||||
if (sizeof(mp_int_t) == 8) {
|
||||
|
@ -186,11 +186,21 @@ STATIC mp_obj_t _mod_ujson_load(mp_obj_t stream_obj, bool return_first_json) {
|
||||
if (c == '\\') {
|
||||
c = S_NEXT(s);
|
||||
switch (c) {
|
||||
case 'b': c = 0x08; break;
|
||||
case 'f': c = 0x0c; break;
|
||||
case 'n': c = 0x0a; break;
|
||||
case 'r': c = 0x0d; break;
|
||||
case 't': c = 0x09; break;
|
||||
case 'b':
|
||||
c = 0x08;
|
||||
break;
|
||||
case 'f':
|
||||
c = 0x0c;
|
||||
break;
|
||||
case 'n':
|
||||
c = 0x0a;
|
||||
break;
|
||||
case 'r':
|
||||
c = 0x0d;
|
||||
break;
|
||||
case 't':
|
||||
c = 0x09;
|
||||
break;
|
||||
case 'u': {
|
||||
mp_uint_t num = 0;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
@ -216,7 +226,16 @@ STATIC mp_obj_t _mod_ujson_load(mp_obj_t stream_obj, bool return_first_json) {
|
||||
next = mp_obj_new_str(vstr.buf, vstr.len);
|
||||
break;
|
||||
case '-':
|
||||
case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': {
|
||||
case '0':
|
||||
case '1':
|
||||
case '2':
|
||||
case '3':
|
||||
case '4':
|
||||
case '5':
|
||||
case '6':
|
||||
case '7':
|
||||
case '8':
|
||||
case '9': {
|
||||
bool flt = false;
|
||||
vstr_reset(&vstr);
|
||||
for (;;) {
|
||||
|
@ -18,15 +18,14 @@
|
||||
STATIC uint32_t yasmarang_pad = 0xeda4baba, yasmarang_n = 69, yasmarang_d = 233;
|
||||
STATIC uint8_t yasmarang_dat = 0;
|
||||
|
||||
STATIC uint32_t yasmarang(void)
|
||||
{
|
||||
STATIC uint32_t yasmarang(void) {
|
||||
yasmarang_pad += yasmarang_dat + yasmarang_d * yasmarang_n;
|
||||
yasmarang_pad = (yasmarang_pad << 3) + (yasmarang_pad >> 29);
|
||||
yasmarang_n = yasmarang_pad | 2;
|
||||
yasmarang_d ^= (yasmarang_pad << 31) + (yasmarang_pad >> 1);
|
||||
yasmarang_dat ^= (char)yasmarang_pad ^ (yasmarang_d >> 8) ^ 1;
|
||||
|
||||
return (yasmarang_pad^(yasmarang_d<<5)^(yasmarang_pad>>18)^(yasmarang_dat<<1));
|
||||
return yasmarang_pad ^ (yasmarang_d << 5) ^ (yasmarang_pad >> 18) ^ (yasmarang_dat << 1);
|
||||
} /* yasmarang */
|
||||
|
||||
// End of Yasmarang
|
||||
@ -148,9 +147,11 @@ STATIC mp_float_t yasmarang_float(void) {
|
||||
union {
|
||||
mp_float_t f;
|
||||
#if MP_ENDIANNESS_LITTLE
|
||||
struct { mp_float_int_t frc:MP_FLOAT_FRAC_BITS, exp:MP_FLOAT_EXP_BITS, sgn:1; } p;
|
||||
struct { mp_float_int_t frc : MP_FLOAT_FRAC_BITS, exp : MP_FLOAT_EXP_BITS, sgn : 1;
|
||||
} p;
|
||||
#else
|
||||
struct { mp_float_int_t sgn:1, exp:MP_FLOAT_EXP_BITS, frc:MP_FLOAT_FRAC_BITS; } p;
|
||||
struct { mp_float_int_t sgn : 1, exp : MP_FLOAT_EXP_BITS, frc : MP_FLOAT_FRAC_BITS;
|
||||
} p;
|
||||
#endif
|
||||
} u;
|
||||
u.p.sgn = 0;
|
||||
|
@ -171,9 +171,12 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_utimeq_dump_obj, mod_utimeq_dump);
|
||||
STATIC mp_obj_t utimeq_unary_op(mp_unary_op_t op, mp_obj_t self_in) {
|
||||
mp_obj_utimeq_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
switch (op) {
|
||||
case MP_UNARY_OP_BOOL: return mp_obj_new_bool(self->len != 0);
|
||||
case MP_UNARY_OP_LEN: return MP_OBJ_NEW_SMALL_INT(self->len);
|
||||
default: return MP_OBJ_NULL; // op not supported
|
||||
case MP_UNARY_OP_BOOL:
|
||||
return mp_obj_new_bool(self->len != 0);
|
||||
case MP_UNARY_OP_LEN:
|
||||
return MP_OBJ_NEW_SMALL_INT(self->len);
|
||||
default:
|
||||
return MP_OBJ_NULL; // op not supported
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 2ecad9586d088ee66f1b208ff2204906eba9e987
|
||||
Subproject commit b64fa6d4c73287edef9ccf09cfd6ec5009f9628b
|
@ -34,12 +34,11 @@ STATIC fs_user_mount_t *disk_get_device(void *bdev) {
|
||||
/*-----------------------------------------------------------------------*/
|
||||
|
||||
DRESULT disk_read(
|
||||
bdev_t pdrv, /* Physical drive nmuber (0..) */
|
||||
bdev_t pdrv, /* Physical drive */
|
||||
BYTE *buff, /* Data buffer to store read data */
|
||||
DWORD sector, /* Sector address (LBA) */
|
||||
UINT count /* Number of sectors to read (1..128) */
|
||||
)
|
||||
{
|
||||
) {
|
||||
fs_user_mount_t *vfs = disk_get_device(pdrv);
|
||||
if (vfs == NULL) {
|
||||
return RES_PARERR;
|
||||
@ -75,12 +74,11 @@ DRESULT disk_read (
|
||||
/*-----------------------------------------------------------------------*/
|
||||
|
||||
DRESULT disk_write(
|
||||
bdev_t pdrv, /* Physical drive nmuber (0..) */
|
||||
bdev_t pdrv, /* Physical drive */
|
||||
const BYTE *buff, /* Data to be written */
|
||||
DWORD sector, /* Sector address (LBA) */
|
||||
UINT count /* Number of sectors to write (1..128) */
|
||||
)
|
||||
{
|
||||
) {
|
||||
fs_user_mount_t *vfs = disk_get_device(pdrv);
|
||||
if (vfs == NULL) {
|
||||
return RES_PARERR;
|
||||
@ -122,11 +120,10 @@ DRESULT disk_write (
|
||||
/*-----------------------------------------------------------------------*/
|
||||
|
||||
DRESULT disk_ioctl(
|
||||
bdev_t pdrv, /* Physical drive nmuber (0..) */
|
||||
bdev_t pdrv, /* Physical drive */
|
||||
BYTE cmd, /* Control code */
|
||||
void *buff /* Buffer to send/receive control data */
|
||||
)
|
||||
{
|
||||
) {
|
||||
fs_user_mount_t *vfs = disk_get_device(pdrv);
|
||||
if (vfs == NULL) {
|
||||
return RES_PARERR;
|
||||
|
0
lib/utils/pyexec.c
Executable file → Normal file
0
lib/utils/pyexec.c
Executable file → Normal file
@ -3695,7 +3695,7 @@ msgstr ""
|
||||
msgid "out of range of source"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr ""
|
||||
|
||||
|
@ -73,6 +73,7 @@ msgstr ""
|
||||
#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||
#: ports/cxd56/common-hal/pulseio/PulseIn.c
|
||||
#: ports/nrf/common-hal/pulseio/PulseIn.c
|
||||
#: ports/raspberrypi/common-hal/pulseio/PulseIn.c
|
||||
#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c
|
||||
#: py/objstrunicode.c
|
||||
msgid "%q index out of range"
|
||||
@ -962,6 +963,7 @@ msgstr ""
|
||||
#: ports/cxd56/common-hal/pulseio/PulseIn.c
|
||||
#: ports/esp32s2/common-hal/pulseio/PulseIn.c
|
||||
#: ports/nrf/common-hal/pulseio/PulseIn.c
|
||||
#: ports/raspberrypi/common-hal/pulseio/PulseIn.c
|
||||
#: ports/stm/common-hal/pulseio/PulseIn.c
|
||||
#, c-format
|
||||
msgid "Failed to allocate RX buffer of %d bytes"
|
||||
@ -1247,7 +1249,7 @@ msgstr ""
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||
msgid "Invalid frequency"
|
||||
msgstr ""
|
||||
|
||||
@ -2291,7 +2293,7 @@ msgstr ""
|
||||
msgid "Unsupported format"
|
||||
msgstr ""
|
||||
|
||||
#: py/moduerrno.c
|
||||
#: ports/raspberrypi/common-hal/pulseio/PulseOut.c py/moduerrno.c
|
||||
msgid "Unsupported operation"
|
||||
msgstr ""
|
||||
|
||||
@ -2849,6 +2851,10 @@ msgstr ""
|
||||
msgid "differentiation order out of range"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "dimensions do not match"
|
||||
msgstr ""
|
||||
|
||||
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
|
||||
#: shared-bindings/math/__init__.c
|
||||
msgid "division by zero"
|
||||
@ -3339,10 +3345,6 @@ msgstr ""
|
||||
msgid "math domain error"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "matrix dimensions do not match"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "matrix is not positive definite"
|
||||
msgstr ""
|
||||
@ -3643,7 +3645,7 @@ msgstr ""
|
||||
msgid "out of range of source"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr ""
|
||||
|
||||
@ -3699,6 +3701,7 @@ msgstr ""
|
||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||
#: ports/cxd56/common-hal/pulseio/PulseIn.c
|
||||
#: ports/nrf/common-hal/pulseio/PulseIn.c
|
||||
#: ports/raspberrypi/common-hal/pulseio/PulseIn.c
|
||||
#: ports/stm/common-hal/pulseio/PulseIn.c py/objdict.c py/objlist.c py/objset.c
|
||||
#: shared-bindings/ps2io/Ps2.c
|
||||
msgid "pop from empty %q"
|
||||
@ -3724,6 +3727,8 @@ msgstr ""
|
||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/franzininho_wifi_wroom/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/franzininho_wifi_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||
@ -4154,10 +4159,6 @@ msgstr ""
|
||||
msgid "value_count must be > 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "vectors must have same lengths"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
|
||||
msgid "wakeup conflict"
|
||||
msgstr ""
|
||||
|
@ -3646,7 +3646,7 @@ msgstr ""
|
||||
msgid "out of range of source"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3732,7 +3732,7 @@ msgstr ""
|
||||
msgid "out of range of source"
|
||||
msgstr "Außerhalb des Bereichs der Quelle"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr "Außerhalb des Bereichs des Ziels"
|
||||
|
||||
|
@ -3643,7 +3643,7 @@ msgstr ""
|
||||
msgid "out of range of source"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3642,7 +3642,7 @@ msgstr ""
|
||||
msgid "out of range of source"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr ""
|
||||
|
||||
|
19
locale/es.po
19
locale/es.po
@ -8,15 +8,15 @@ msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||
"PO-Revision-Date: 2021-03-07 15:50+0000\n"
|
||||
"Last-Translator: Jose David M <jquintana202020@gmail.com>\n"
|
||||
"PO-Revision-Date: 2021-03-12 02:03+0000\n"
|
||||
"Last-Translator: Alvaro Figueroa <alvaro@greencore.co.cr>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.5.1\n"
|
||||
"X-Generator: Weblate 4.5.2-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -1836,7 +1836,7 @@ msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rotaryio/IncrementalEncoder.c
|
||||
msgid "Pins must be sequential"
|
||||
msgstr ""
|
||||
msgstr "Los pines deben estar en orden secuencial"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Pins must share PWM slice"
|
||||
@ -2142,11 +2142,10 @@ msgid ""
|
||||
"enough power for the whole circuit and press reset (after ejecting "
|
||||
"CIRCUITPY).\n"
|
||||
msgstr ""
|
||||
"La alimentación del microntrolador cayó. Asegúrate que tu fuente de "
|
||||
"La alimentación del microntrolador bajó. Asegúrate que tu fuente de "
|
||||
"alimentación\n"
|
||||
"pueda aportar suficiente energía para todo el circuito y presiona reset "
|
||||
"(luego de\n"
|
||||
"expulsar CIRCUITPY)\n"
|
||||
"(luego de expulsar CIRCUITPY)\n"
|
||||
|
||||
#: shared-module/audiomixer/MixerVoice.c
|
||||
msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
@ -2818,7 +2817,7 @@ msgstr "circulo solo puede ser registrado con un pariente"
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr "El punto clip debe ser una tupla (x, y)"
|
||||
msgstr "El punto de recorte debe ser una tupla (x, y)"
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
@ -3740,7 +3739,7 @@ msgstr "ord() espera un carácter, pero encontró un string de longitud %d"
|
||||
msgid "out of range of source"
|
||||
msgstr "fuera de rango de fuente"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr "fuera de rango del objetivo"
|
||||
|
||||
@ -3842,7 +3841,7 @@ msgstr "presionando ambos botones al inicio.\n"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "pull masks conflict with direction masks"
|
||||
msgstr ""
|
||||
msgstr "máscara de pull en conflicto con máscara de dirección"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "pull_threshold must be between 1 and 32"
|
||||
|
@ -3691,7 +3691,7 @@ msgstr "ord() umaasa ng character pero string ng %d haba ang nakita"
|
||||
msgid "out of range of source"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr ""
|
||||
|
||||
|
@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: 0.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||
"PO-Revision-Date: 2021-02-21 22:27+0000\n"
|
||||
"PO-Revision-Date: 2021-03-14 23:02+0000\n"
|
||||
"Last-Translator: Hugo Dahl <hugo@code-jedi.com>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 4.5\n"
|
||||
"X-Generator: Weblate 4.5.2-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -358,7 +358,7 @@ msgstr "Tous les automates finis sont utilisés"
|
||||
|
||||
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
msgid "All sync event channels in use"
|
||||
msgstr "Tous les canaux d'événements sync (sync event channels) sont utilisés"
|
||||
msgstr "Tout canaux d'événements sync (sync event channels) sont utilisés"
|
||||
|
||||
#: shared-bindings/pwmio/PWMOut.c
|
||||
msgid "All timers for this pin are in use"
|
||||
@ -3760,7 +3760,7 @@ msgstr ""
|
||||
msgid "out of range of source"
|
||||
msgstr "dépassement des bornes de source"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr "dépassement des bornes de target"
|
||||
|
||||
|
@ -3643,7 +3643,7 @@ msgstr ""
|
||||
msgid "out of range of source"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3707,7 +3707,7 @@ msgstr ""
|
||||
msgid "out of range of source"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3671,7 +3671,7 @@ msgstr "ord()は1文字を要求しますが、長さ %d の文字列が与え
|
||||
msgid "out of range of source"
|
||||
msgstr "ソースが範囲外"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3647,7 +3647,7 @@ msgstr ""
|
||||
msgid "out of range of source"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3704,7 +3704,7 @@ msgstr "ord() verwacht een teken (char) maar vond een string van lengte %d"
|
||||
msgid "out of range of source"
|
||||
msgstr "buiten bereik van bron"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr "buiten bereik van doel"
|
||||
|
||||
|
@ -3664,7 +3664,7 @@ msgstr "ord() oczekuje znaku, a jest łańcuch od długości %d"
|
||||
msgid "out of range of source"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3749,7 +3749,7 @@ msgstr ""
|
||||
msgid "out of range of source"
|
||||
msgstr "fora do alcance da fonte"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr "fora do alcance do alvo"
|
||||
|
||||
|
@ -3707,7 +3707,7 @@ msgstr "ord() förväntade sig ett tecken, men en sträng med längden %d hittad
|
||||
msgid "out of range of source"
|
||||
msgstr "utanför räckvidd för source"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr "utanför räckvidd för target"
|
||||
|
||||
|
@ -3704,7 +3704,7 @@ msgstr "ord() yùqí zìfú, dàn chángdù zìfú chuàn %d"
|
||||
msgid "out of range of source"
|
||||
msgstr "yuán fàn wéi wài"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "out of range of target"
|
||||
msgstr "mù biāo fàn wéi wài"
|
||||
|
||||
|
@ -189,7 +189,8 @@ MP_NOINLINE int main_(int argc, char **argv) {
|
||||
MP_STATE_VM(mp_optimise_value) = argv[a][2] & 0xf;
|
||||
} else {
|
||||
MP_STATE_VM(mp_optimise_value) = 0;
|
||||
for (char *p = argv[a] + 1; *p && *p == 'O'; p++, MP_STATE_VM(mp_optimise_value)++);
|
||||
for (char *p = argv[a] + 1; *p && *p == 'O'; p++, MP_STATE_VM(mp_optimise_value)++) {;
|
||||
}
|
||||
}
|
||||
} else if (strcmp(argv[a], "-o") == 0) {
|
||||
if (a + 1 >= argc) {
|
||||
|
@ -64,14 +64,16 @@ void audio_dma_free_channel(uint8_t channel) {
|
||||
}
|
||||
|
||||
void audio_dma_disable_channel(uint8_t channel) {
|
||||
if (channel >= AUDIO_DMA_CHANNEL_COUNT)
|
||||
if (channel >= AUDIO_DMA_CHANNEL_COUNT) {
|
||||
return;
|
||||
}
|
||||
dma_disable_channel(channel);
|
||||
}
|
||||
|
||||
void audio_dma_enable_channel(uint8_t channel) {
|
||||
if (channel >= AUDIO_DMA_CHANNEL_COUNT)
|
||||
if (channel >= AUDIO_DMA_CHANNEL_COUNT) {
|
||||
return;
|
||||
}
|
||||
dma_enable_channel(channel);
|
||||
}
|
||||
|
||||
@ -375,13 +377,25 @@ void evsyshandler_common(void) {
|
||||
}
|
||||
|
||||
#ifdef SAM_D5X_E5X
|
||||
void EVSYS_0_Handler(void) { evsyshandler_common(); }
|
||||
void EVSYS_1_Handler(void) { evsyshandler_common(); }
|
||||
void EVSYS_2_Handler(void) { evsyshandler_common(); }
|
||||
void EVSYS_3_Handler(void) { evsyshandler_common(); }
|
||||
void EVSYS_4_Handler(void) { evsyshandler_common(); }
|
||||
void EVSYS_0_Handler(void) {
|
||||
evsyshandler_common();
|
||||
}
|
||||
void EVSYS_1_Handler(void) {
|
||||
evsyshandler_common();
|
||||
}
|
||||
void EVSYS_2_Handler(void) {
|
||||
evsyshandler_common();
|
||||
}
|
||||
void EVSYS_3_Handler(void) {
|
||||
evsyshandler_common();
|
||||
}
|
||||
void EVSYS_4_Handler(void) {
|
||||
evsyshandler_common();
|
||||
}
|
||||
#else
|
||||
void EVSYS_Handler(void) { evsyshandler_common(); }
|
||||
void EVSYS_Handler(void) {
|
||||
evsyshandler_common();
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -52,8 +52,11 @@ void port_finish_background_task(void) {
|
||||
REG_PORT_OUTCLR1 = (1 << 3);
|
||||
}
|
||||
#else
|
||||
void port_start_background_task(void) {}
|
||||
void port_finish_background_task(void) {}
|
||||
void port_start_background_task(void) {
|
||||
}
|
||||
void port_finish_background_task(void) {
|
||||
}
|
||||
#endif
|
||||
|
||||
void port_background_task(void) {}
|
||||
void port_background_task(void) {
|
||||
}
|
||||
|
@ -57,8 +57,7 @@ const mp_obj_property_t samd_clock_enabled_obj = {
|
||||
.base.type = &mp_type_property,
|
||||
.proxy = {(mp_obj_t)&samd_clock_get_enabled_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
},
|
||||
(mp_obj_t)&mp_const_none_obj,},
|
||||
};
|
||||
|
||||
//| parent: Union[Clock, None]
|
||||
@ -67,15 +66,17 @@ const mp_obj_property_t samd_clock_enabled_obj = {
|
||||
STATIC mp_obj_t samd_clock_get_parent(mp_obj_t self_in) {
|
||||
samd_clock_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
uint8_t p_type, p_index;
|
||||
if (!clock_get_parent(self->type, self->index, &p_type, &p_index))
|
||||
if (!clock_get_parent(self->type, self->index, &p_type, &p_index)) {
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
const mp_map_t *samd_map = &samd_clock_globals.map;
|
||||
for (uint8_t i = 0; i < samd_map->alloc; i++) {
|
||||
samd_clock_obj_t *iter = samd_map->table[i].value;
|
||||
if (iter->type == p_type && iter->index == p_index)
|
||||
if (iter->type == p_type && iter->index == p_index) {
|
||||
return iter;
|
||||
}
|
||||
}
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
@ -85,8 +86,7 @@ const mp_obj_property_t samd_clock_parent_obj = {
|
||||
.base.type = &mp_type_property,
|
||||
.proxy = {(mp_obj_t)&samd_clock_get_parent_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
},
|
||||
(mp_obj_t)&mp_const_none_obj,},
|
||||
};
|
||||
|
||||
//| frequency: int
|
||||
@ -103,8 +103,7 @@ const mp_obj_property_t samd_clock_frequency_obj = {
|
||||
.base.type = &mp_type_property,
|
||||
.proxy = {(mp_obj_t)&samd_clock_get_frequency_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
},
|
||||
(mp_obj_t)&mp_const_none_obj,},
|
||||
};
|
||||
|
||||
//| calibration: int
|
||||
@ -120,10 +119,12 @@ MP_DEFINE_CONST_FUN_OBJ_1(samd_clock_get_calibration_obj, samd_clock_get_calibra
|
||||
STATIC mp_obj_t samd_clock_set_calibration(mp_obj_t self_in, mp_obj_t calibration) {
|
||||
samd_clock_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
int ret = clock_set_calibration(self->type, self->index, mp_obj_get_int(calibration));
|
||||
if (ret == -2)
|
||||
if (ret == -2) {
|
||||
mp_raise_AttributeError(translate("calibration is read only"));
|
||||
if (ret == -1)
|
||||
}
|
||||
if (ret == -1) {
|
||||
mp_raise_ValueError(translate("calibration is out of range"));
|
||||
}
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
@ -133,8 +134,7 @@ const mp_obj_property_t samd_clock_calibration_obj = {
|
||||
.base.type = &mp_type_property,
|
||||
.proxy = {(mp_obj_t)&samd_clock_get_calibration_obj,
|
||||
(mp_obj_t)&samd_clock_set_calibration_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
},
|
||||
(mp_obj_t)&mp_const_none_obj,},
|
||||
};
|
||||
|
||||
STATIC const mp_rom_map_elem_t samd_clock_locals_dict_table[] = {
|
||||
|
@ -43,8 +43,7 @@ void board_init(void) {
|
||||
// GCLK_GENCTRL_DIVSEL |
|
||||
GCLK_GENCTRL_OE |
|
||||
GCLK_GENCTRL_GENEN;
|
||||
while ( GCLK->SYNCBUSY.reg & GCLK_SYNCBUSY_GENCTRL6)
|
||||
{
|
||||
while (GCLK->SYNCBUSY.reg & GCLK_SYNCBUSY_GENCTRL6) {
|
||||
// Wait for synchronization
|
||||
}
|
||||
}
|
||||
|
@ -28,8 +28,7 @@
|
||||
#include "mpconfigboard.h"
|
||||
#include "hal/include/hal_gpio.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -28,8 +28,7 @@
|
||||
#include "mpconfigboard.h"
|
||||
#include "hal/include/hal_gpio.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -28,8 +28,7 @@
|
||||
#include "mpconfigboard.h"
|
||||
#include "hal/include/hal_gpio.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -27,8 +27,7 @@
|
||||
#include "supervisor/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
// struct port_config pin_conf;
|
||||
// port_get_config_defaults(&pin_conf);
|
||||
//
|
||||
|
@ -27,8 +27,7 @@
|
||||
#include "supervisor/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
// struct port_config pin_conf;
|
||||
// port_get_config_defaults(&pin_conf);
|
||||
//
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
0
ports/atmel-samd/boards/circuitbrains_basic_m0/pins.c
Executable file → Normal file
0
ports/atmel-samd/boards/circuitbrains_basic_m0/pins.c
Executable file → Normal file
@ -31,8 +31,7 @@
|
||||
#include "supervisor/shared/board.h"
|
||||
#include "hal/include/hal_gpio.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
// Check the status of the two buttons on CircuitPlayground Express. If both are
|
||||
|
@ -31,8 +31,7 @@
|
||||
#include "hal/include/hal_gpio.h"
|
||||
#include "supervisor/shared/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
// Check the status of the two buttons on CircuitPlayground Express. If both are
|
||||
|
@ -31,8 +31,7 @@
|
||||
#include "hal/include/hal_gpio.h"
|
||||
#include "supervisor/shared/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
// Check the status of the two buttons on CircuitPlayground Express. If both are
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
3
ports/atmel-samd/boards/feather_radiofruit_zigbee/board.c
Executable file → Normal file
3
ports/atmel-samd/boards/feather_radiofruit_zigbee/board.c
Executable file → Normal file
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
0
ports/atmel-samd/boards/feather_radiofruit_zigbee/mpconfigboard.h
Executable file → Normal file
0
ports/atmel-samd/boards/feather_radiofruit_zigbee/mpconfigboard.h
Executable file → Normal file
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -27,8 +27,7 @@
|
||||
#include "supervisor/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
// struct port_config pin_conf;
|
||||
// port_get_config_defaults(&pin_conf);
|
||||
//
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -57,8 +57,9 @@ uint32_t lookupCfg(uint32_t key, uint32_t defl) {
|
||||
} else {
|
||||
ptr += 4;
|
||||
while (*ptr) {
|
||||
if (*ptr == key)
|
||||
if (*ptr == key) {
|
||||
return ptr[1];
|
||||
}
|
||||
ptr += 2;
|
||||
}
|
||||
}
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -68,5 +68,6 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj)},
|
||||
{MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display)}};
|
||||
{MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display)}
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
3
ports/atmel-samd/boards/sparkfun_lumidrive/board.c
Executable file → Normal file
3
ports/atmel-samd/boards/sparkfun_lumidrive/board.c
Executable file → Normal file
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
0
ports/atmel-samd/boards/sparkfun_lumidrive/mpconfigboard.h
Executable file → Normal file
0
ports/atmel-samd/boards/sparkfun_lumidrive/mpconfigboard.h
Executable file → Normal file
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
3
ports/atmel-samd/boards/sparkfun_redboard_turbo/board.c
Executable file → Normal file
3
ports/atmel-samd/boards/sparkfun_redboard_turbo/board.c
Executable file → Normal file
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
0
ports/atmel-samd/boards/sparkfun_redboard_turbo/mpconfigboard.h
Executable file → Normal file
0
ports/atmel-samd/boards/sparkfun_redboard_turbo/mpconfigboard.h
Executable file → Normal file
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -19,14 +19,18 @@ STATIC mp_obj_t _bhb_init_adc(void) {
|
||||
GCLK_CLKCTRL_ID_ADC;
|
||||
|
||||
/* Wait for bus synchronization. */
|
||||
while (GCLK->STATUS.bit.SYNCBUSY) {};
|
||||
while (GCLK->STATUS.bit.SYNCBUSY) {
|
||||
}
|
||||
;
|
||||
|
||||
uint32_t bias = (*((uint32_t *)ADC_FUSES_BIASCAL_ADDR) & ADC_FUSES_BIASCAL_Msk) >> ADC_FUSES_BIASCAL_Pos;
|
||||
uint32_t linearity = (*((uint32_t *)ADC_FUSES_LINEARITY_0_ADDR) & ADC_FUSES_LINEARITY_0_Msk) >> ADC_FUSES_LINEARITY_0_Pos;
|
||||
linearity |= ((*((uint32_t *)ADC_FUSES_LINEARITY_1_ADDR) & ADC_FUSES_LINEARITY_1_Msk) >> ADC_FUSES_LINEARITY_1_Pos) << 5;
|
||||
|
||||
/* Wait for bus synchronization. */
|
||||
while (ADC->STATUS.bit.SYNCBUSY) {};
|
||||
while (ADC->STATUS.bit.SYNCBUSY) {
|
||||
}
|
||||
;
|
||||
|
||||
/* Write the calibration data. */
|
||||
ADC->CALIB.reg = ADC_CALIB_BIAS_CAL(bias) | ADC_CALIB_LINEARITY_CAL(linearity);
|
||||
@ -70,7 +74,9 @@ STATIC mp_obj_t _bhb_init_adc(void) {
|
||||
PORT->Group[1].PMUX[4].reg |= PORT_PMUX_PMUXE_B;
|
||||
|
||||
/* Wait for bus synchronization. */
|
||||
while (ADC->STATUS.bit.SYNCBUSY) {};
|
||||
while (ADC->STATUS.bit.SYNCBUSY) {
|
||||
}
|
||||
;
|
||||
|
||||
/* Enable the ADC. */
|
||||
ADC->CTRLA.bit.ENABLE = true;
|
||||
@ -83,13 +89,17 @@ STATIC mp_obj_t _bhb_init_adc(void) {
|
||||
|
||||
STATIC mp_obj_t _bhb_read_adc(void) {
|
||||
/* Wait for bus synchronization. */
|
||||
while (ADC->STATUS.bit.SYNCBUSY) {};
|
||||
while (ADC->STATUS.bit.SYNCBUSY) {
|
||||
}
|
||||
;
|
||||
|
||||
/* Start the ADC using a software trigger. */
|
||||
ADC->SWTRIG.bit.START = true;
|
||||
|
||||
/* Wait for the result ready flag to be set. */
|
||||
while (ADC->INTFLAG.bit.RESRDY == 0);
|
||||
while (ADC->INTFLAG.bit.RESRDY == 0) {
|
||||
;
|
||||
}
|
||||
|
||||
/* Clear the flag. */
|
||||
ADC->INTFLAG.reg = ADC_INTFLAG_RESRDY;
|
||||
|
@ -28,8 +28,7 @@
|
||||
#include "mpconfigboard.h"
|
||||
#include "hal/include/hal_gpio.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -28,8 +28,7 @@
|
||||
#include "mpconfigboard.h"
|
||||
#include "hal/include/hal_gpio.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -41,7 +41,9 @@ void pew_tick(void) {
|
||||
digitalio_digitalinout_obj_t *pin;
|
||||
|
||||
pew_obj_t *pew = MP_STATE_VM(pew_singleton);
|
||||
if (!pew) { return; }
|
||||
if (!pew) {
|
||||
return;
|
||||
}
|
||||
|
||||
pin = MP_OBJ_TO_PTR(pew->cols[col]);
|
||||
++col;
|
||||
|
@ -159,10 +159,12 @@ void analogout_reset(void) {
|
||||
audioout_reset();
|
||||
#elif HAVE_ANALOGOUT
|
||||
#ifdef SAMD21
|
||||
while (DAC->STATUS.reg & DAC_STATUS_SYNCBUSY) {}
|
||||
while (DAC->STATUS.reg & DAC_STATUS_SYNCBUSY) {
|
||||
}
|
||||
#endif
|
||||
#ifdef SAM_D5X_E5X
|
||||
while (DAC->SYNCBUSY.reg & DAC_SYNCBUSY_SWRST) {}
|
||||
while (DAC->SYNCBUSY.reg & DAC_SYNCBUSY_SWRST) {
|
||||
}
|
||||
#endif
|
||||
DAC->CTRLA.reg |= DAC_CTRLA_SWRST;
|
||||
#endif
|
||||
|
@ -77,7 +77,8 @@ void i2sout_reset(void) {
|
||||
#endif
|
||||
if (I2S->CTRLA.bit.ENABLE == 1) {
|
||||
I2S->CTRLA.bit.ENABLE = 0;
|
||||
while (I2S->SYNCBUSY.bit.ENABLE == 1) {}
|
||||
while (I2S->SYNCBUSY.bit.ENABLE == 1) {
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure the I2S peripheral is running so we can see if the resources we need are free.
|
||||
@ -168,7 +169,8 @@ void common_hal_audiobusio_i2sout_construct(audiobusio_i2sout_obj_t* self,
|
||||
|
||||
if (I2S->CTRLA.bit.ENABLE == 0) {
|
||||
I2S->CTRLA.bit.SWRST = 1;
|
||||
while (I2S->CTRLA.bit.SWRST == 1) {}
|
||||
while (I2S->CTRLA.bit.SWRST == 1) {
|
||||
}
|
||||
} else {
|
||||
#ifdef SAMD21
|
||||
if ((I2S->CTRLA.vec.SEREN & (1 << serializer)) != 0) {
|
||||
@ -314,16 +316,19 @@ void common_hal_audiobusio_i2sout_play(audiobusio_i2sout_obj_t* self,
|
||||
I2S->INTFLAG.reg = I2S_INTFLAG_TXUR0 | I2S_INTFLAG_TXUR1;
|
||||
|
||||
I2S->CTRLA.vec.CKEN = 1 << self->clock_unit;
|
||||
while ((I2S->SYNCBUSY.vec.CKEN & (1 << self->clock_unit)) != 0) {}
|
||||
while ((I2S->SYNCBUSY.vec.CKEN & (1 << self->clock_unit)) != 0) {
|
||||
}
|
||||
|
||||
// Init the serializer after the clock. Otherwise, it will never enable because its unclocked.
|
||||
#ifdef SAMD21
|
||||
I2S->CTRLA.vec.SEREN = 1 << self->serializer;
|
||||
while ((I2S->SYNCBUSY.vec.SEREN & (1 << self->serializer)) != 0) {}
|
||||
while ((I2S->SYNCBUSY.vec.SEREN & (1 << self->serializer)) != 0) {
|
||||
}
|
||||
#endif
|
||||
#ifdef SAM_D5X_E5X
|
||||
I2S->CTRLA.bit.TXEN = 1;
|
||||
while (I2S->SYNCBUSY.bit.TXEN == 1) {}
|
||||
while (I2S->SYNCBUSY.bit.TXEN == 1) {
|
||||
}
|
||||
#endif
|
||||
|
||||
self->playing = true;
|
||||
@ -354,20 +359,24 @@ void common_hal_audiobusio_i2sout_stop(audiobusio_i2sout_obj_t* self) {
|
||||
|
||||
#ifdef SAMD21
|
||||
I2S->CTRLA.vec.SEREN &= ~(1 << self->serializer);
|
||||
while ((I2S->SYNCBUSY.vec.SEREN & (1 << self->serializer)) != 0) {}
|
||||
while ((I2S->SYNCBUSY.vec.SEREN & (1 << self->serializer)) != 0) {
|
||||
}
|
||||
#endif
|
||||
#ifdef SAM_D5X_E5X
|
||||
I2S->CTRLA.bit.TXEN = 0;
|
||||
while (I2S->SYNCBUSY.bit.TXEN == 1) {}
|
||||
while (I2S->SYNCBUSY.bit.TXEN == 1) {
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef SAMD21
|
||||
if (self->clock_unit == 0) {
|
||||
I2S->CTRLA.bit.CKEN0 = 0;
|
||||
while (I2S->SYNCBUSY.bit.CKEN0 == 1) {}
|
||||
while (I2S->SYNCBUSY.bit.CKEN0 == 1) {
|
||||
}
|
||||
} else {
|
||||
I2S->CTRLA.bit.CKEN1 = 0;
|
||||
while (I2S->SYNCBUSY.bit.CKEN1 == 1) {}
|
||||
while (I2S->SYNCBUSY.bit.CKEN1 == 1) {
|
||||
}
|
||||
}
|
||||
#endif
|
||||
disconnect_gclk_from_peripheral(self->gclk, I2S_GCLK_ID_0 + self->clock_unit);
|
||||
|
@ -1,7 +1,7 @@
|
||||
print('uPy')
|
||||
print('a long string that is not interned')
|
||||
print('a string that has unicode αβγ chars')
|
||||
print(b'bytes 1234\x01')
|
||||
print("uPy")
|
||||
print("a long string that is not interned")
|
||||
print("a string that has unicode αβγ chars")
|
||||
print(b"bytes 1234\x01")
|
||||
print(123456789)
|
||||
for i in range(4):
|
||||
print(i)
|
||||
|
@ -27,11 +27,47 @@
|
||||
import os
|
||||
import os.path
|
||||
|
||||
pins = ["PA00", "PA01", "PA02", "PA03", "PB08", "PB09", "PA04", "PA05", "PA06",
|
||||
"PA07", "PA08", "PA09", "PA10", "PA11", "PB10", "PB11", "PA12", "PA13",
|
||||
"PA14", "PA15", "PA16", "PA17", "PA18", "PA19", "PA20", "PA21", "PA22",
|
||||
"PA23", "PA24", "PA25", "PB22", "PB23", "PA27", "PA28", "PA29", "PA30",
|
||||
"PA31", "PB02", "PB03"]
|
||||
pins = [
|
||||
"PA00",
|
||||
"PA01",
|
||||
"PA02",
|
||||
"PA03",
|
||||
"PB08",
|
||||
"PB09",
|
||||
"PA04",
|
||||
"PA05",
|
||||
"PA06",
|
||||
"PA07",
|
||||
"PA08",
|
||||
"PA09",
|
||||
"PA10",
|
||||
"PA11",
|
||||
"PB10",
|
||||
"PB11",
|
||||
"PA12",
|
||||
"PA13",
|
||||
"PA14",
|
||||
"PA15",
|
||||
"PA16",
|
||||
"PA17",
|
||||
"PA18",
|
||||
"PA19",
|
||||
"PA20",
|
||||
"PA21",
|
||||
"PA22",
|
||||
"PA23",
|
||||
"PA24",
|
||||
"PA25",
|
||||
"PB22",
|
||||
"PB23",
|
||||
"PA27",
|
||||
"PA28",
|
||||
"PA29",
|
||||
"PA30",
|
||||
"PA31",
|
||||
"PB02",
|
||||
"PB03",
|
||||
]
|
||||
|
||||
# Dictionary keys: [board][pin] = list of pin names
|
||||
mapping = {}
|
||||
@ -109,60 +145,195 @@ ALL_BUT_USB.remove("PA25")
|
||||
# dictionary is [module][class] = [pins]
|
||||
capabilities = {
|
||||
"analogio": {
|
||||
"AnalogIn" : ["PA02", "PA03", "PB08", "PB09", "PA04", "PA05", "PA06",
|
||||
"PA07", "PA08", "PA09", "PA10", "PA11", "PB02", "PB03"],
|
||||
"AnalogOut": ["PA02"]
|
||||
},
|
||||
"audioio" : {
|
||||
"AudioOut": ["PA02"]
|
||||
},
|
||||
"bitbangio": {
|
||||
"I2C": ALL_BUT_USB,
|
||||
"OneWire": ALL_BUT_USB,
|
||||
"SPI": ALL_BUT_USB
|
||||
"AnalogIn": [
|
||||
"PA02",
|
||||
"PA03",
|
||||
"PB08",
|
||||
"PB09",
|
||||
"PA04",
|
||||
"PA05",
|
||||
"PA06",
|
||||
"PA07",
|
||||
"PA08",
|
||||
"PA09",
|
||||
"PA10",
|
||||
"PA11",
|
||||
"PB02",
|
||||
"PB03",
|
||||
],
|
||||
"AnalogOut": ["PA02"],
|
||||
},
|
||||
"audioio": {"AudioOut": ["PA02"]},
|
||||
"bitbangio": {"I2C": ALL_BUT_USB, "OneWire": ALL_BUT_USB, "SPI": ALL_BUT_USB},
|
||||
"busio": {
|
||||
"I2C - SDA": ["PA00", "PB08", "PA08", "PA12", "PA16", "PA22", "PB02"], # SERCOM pad 0
|
||||
"I2C - SCL": ["PA01", "PB09", "PA09", "PA13", "PA17", "PA23", "PB03"], # SERCOM pad 1
|
||||
"OneWire": ALL_BUT_USB,
|
||||
"SPI - MISO": ["PA00", "PA01", "PB08", "PB09", "PA04", "PA05", "PA06",
|
||||
"PA07", "PA08", "PA09", "PA10", "PA11", "PB10", "PB11",
|
||||
"PA12", "PA13", "PA14", "PA15", "PA16", "PA17", "PA18",
|
||||
"PA19", "PA20", "PA21", "PA22", "PA23", "PB22", "PB23",
|
||||
"PA30", "PA31", "PB02", "PB03"], # any SERCOM pad
|
||||
"SPI - MOSI": ["PA00", "PB08", "PA04", "PA06", "PA08", "PA10", "PA11",
|
||||
"PB10", "PB11", "PA14", "PA15", "PA16", "PA18", "PA19",
|
||||
"PA20", "PA21", "PA22", "PB22", "PB23", "PA30", "PA31",
|
||||
"PB02"], # any pad but 1
|
||||
"SPI - SCK": ["PA01", "PB09", "PA05", "PA07", "PA09", "PA11", "PB11",
|
||||
"PA13", "PA15", "PA17", "PA19", "PA21", "PA23", "PB23",
|
||||
"PA31", "PB03"], # 1 or 3
|
||||
"UART - RX": ["PA00", "PA01", "PB08", "PB09", "PA04", "PA05", "PA06",
|
||||
"PA07", "PA08", "PA09", "PA10", "PA11", "PB10", "PB11",
|
||||
"PA12", "PA13", "PA14", "PA15", "PA16", "PA17", "PA18",
|
||||
"PA19", "PA20", "PA21", "PA22", "PA23", "PB22", "PB23",
|
||||
"PA30", "PA31", "PB02", "PB03"], # any pad
|
||||
"UART - TX": ["PA00", "PB08", "PA04", "PA06", "PA08", "PA10", "PB10",
|
||||
"PA12", "PA14", "PA16", "PA18", "PA20", "PA22", "PB22",
|
||||
"PA30", "PB02"] # pad 0 or 2
|
||||
},
|
||||
"digitalio": {
|
||||
"DigitalInOut": ALL_BUT_USB
|
||||
"SPI - MISO": [
|
||||
"PA00",
|
||||
"PA01",
|
||||
"PB08",
|
||||
"PB09",
|
||||
"PA04",
|
||||
"PA05",
|
||||
"PA06",
|
||||
"PA07",
|
||||
"PA08",
|
||||
"PA09",
|
||||
"PA10",
|
||||
"PA11",
|
||||
"PB10",
|
||||
"PB11",
|
||||
"PA12",
|
||||
"PA13",
|
||||
"PA14",
|
||||
"PA15",
|
||||
"PA16",
|
||||
"PA17",
|
||||
"PA18",
|
||||
"PA19",
|
||||
"PA20",
|
||||
"PA21",
|
||||
"PA22",
|
||||
"PA23",
|
||||
"PB22",
|
||||
"PB23",
|
||||
"PA30",
|
||||
"PA31",
|
||||
"PB02",
|
||||
"PB03",
|
||||
], # any SERCOM pad
|
||||
"SPI - MOSI": [
|
||||
"PA00",
|
||||
"PB08",
|
||||
"PA04",
|
||||
"PA06",
|
||||
"PA08",
|
||||
"PA10",
|
||||
"PA11",
|
||||
"PB10",
|
||||
"PB11",
|
||||
"PA14",
|
||||
"PA15",
|
||||
"PA16",
|
||||
"PA18",
|
||||
"PA19",
|
||||
"PA20",
|
||||
"PA21",
|
||||
"PA22",
|
||||
"PB22",
|
||||
"PB23",
|
||||
"PA30",
|
||||
"PA31",
|
||||
"PB02",
|
||||
], # any pad but 1
|
||||
"SPI - SCK": [
|
||||
"PA01",
|
||||
"PB09",
|
||||
"PA05",
|
||||
"PA07",
|
||||
"PA09",
|
||||
"PA11",
|
||||
"PB11",
|
||||
"PA13",
|
||||
"PA15",
|
||||
"PA17",
|
||||
"PA19",
|
||||
"PA21",
|
||||
"PA23",
|
||||
"PB23",
|
||||
"PA31",
|
||||
"PB03",
|
||||
], # 1 or 3
|
||||
"UART - RX": [
|
||||
"PA00",
|
||||
"PA01",
|
||||
"PB08",
|
||||
"PB09",
|
||||
"PA04",
|
||||
"PA05",
|
||||
"PA06",
|
||||
"PA07",
|
||||
"PA08",
|
||||
"PA09",
|
||||
"PA10",
|
||||
"PA11",
|
||||
"PB10",
|
||||
"PB11",
|
||||
"PA12",
|
||||
"PA13",
|
||||
"PA14",
|
||||
"PA15",
|
||||
"PA16",
|
||||
"PA17",
|
||||
"PA18",
|
||||
"PA19",
|
||||
"PA20",
|
||||
"PA21",
|
||||
"PA22",
|
||||
"PA23",
|
||||
"PB22",
|
||||
"PB23",
|
||||
"PA30",
|
||||
"PA31",
|
||||
"PB02",
|
||||
"PB03",
|
||||
], # any pad
|
||||
"UART - TX": [
|
||||
"PA00",
|
||||
"PB08",
|
||||
"PA04",
|
||||
"PA06",
|
||||
"PA08",
|
||||
"PA10",
|
||||
"PB10",
|
||||
"PA12",
|
||||
"PA14",
|
||||
"PA16",
|
||||
"PA18",
|
||||
"PA20",
|
||||
"PA22",
|
||||
"PB22",
|
||||
"PA30",
|
||||
"PB02",
|
||||
], # pad 0 or 2
|
||||
},
|
||||
"digitalio": {"DigitalInOut": ALL_BUT_USB},
|
||||
"pulseio": {
|
||||
"PulseIn": ALL_BUT_USB,
|
||||
"PWMOut": ["PA01", "PB09", "PA04", "PA05", "PA06", "PA07", "PA08",
|
||||
"PA09", "PA10", "PA11", "PB10", "PB11", "PA12", "PA13",
|
||||
"PA14", "PA15", "PA16", "PA17", "PA18", "PA19", "PA20",
|
||||
"PA21", "PA22", "PA23", "PA30", "PA31"]
|
||||
},
|
||||
"ps2io": {
|
||||
"Ps2": ALL_BUT_USB,
|
||||
"PWMOut": [
|
||||
"PA01",
|
||||
"PB09",
|
||||
"PA04",
|
||||
"PA05",
|
||||
"PA06",
|
||||
"PA07",
|
||||
"PA08",
|
||||
"PA09",
|
||||
"PA10",
|
||||
"PA11",
|
||||
"PB10",
|
||||
"PB11",
|
||||
"PA12",
|
||||
"PA13",
|
||||
"PA14",
|
||||
"PA15",
|
||||
"PA16",
|
||||
"PA17",
|
||||
"PA18",
|
||||
"PA19",
|
||||
"PA20",
|
||||
"PA21",
|
||||
"PA22",
|
||||
"PA23",
|
||||
"PA30",
|
||||
"PA31",
|
||||
],
|
||||
},
|
||||
"ps2io": {"Ps2": ALL_BUT_USB},
|
||||
"touchio": {
|
||||
"TouchIn": ["PA02", "PA03", "PB08", "PB09", "PA04", "PA05", "PA06",
|
||||
"PA07", "PB02", "PB03"]
|
||||
}
|
||||
"TouchIn": ["PA02", "PA03", "PB08", "PB09", "PA04", "PA05", "PA06", "PA07", "PB02", "PB03"]
|
||||
},
|
||||
}
|
||||
|
||||
column_width = {}
|
||||
@ -178,7 +349,7 @@ for module in capabilities:
|
||||
module_width[module] -= 2
|
||||
|
||||
if module_width[module] < (len(module) + 2):
|
||||
column_width[module + c] += (len(module) + 2 - module_width[module])
|
||||
column_width[module + c] += len(module) + 2 - module_width[module]
|
||||
module_width[module] = len(module) + 2
|
||||
|
||||
first_column_width = len("`microcontroller.pin`")
|
||||
|
@ -1,22 +1,27 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
|
||||
def defines(name, suffix):
|
||||
print(f'mcu_pin_function_t {name} [] = {{')
|
||||
print(f"mcu_pin_function_t {name} [] = {{")
|
||||
for instance in (0, 1):
|
||||
for function in 'HI':
|
||||
for port in 'ABCD':
|
||||
for function in "HI":
|
||||
for port in "ABCD":
|
||||
for idx in range(32):
|
||||
pin = f'P{port}{idx:02d}'
|
||||
pinmux = f'PINMUX_{pin}{function}_CAN{instance}_{suffix}'
|
||||
print(f'''\
|
||||
pin = f"P{port}{idx:02d}"
|
||||
pinmux = f"PINMUX_{pin}{function}_CAN{instance}_{suffix}"
|
||||
print(
|
||||
f"""\
|
||||
#if defined({pinmux}) && ! defined(IGNORE_PIN_{pin})
|
||||
{{&pin_{pin}, {instance}, PIN_{pin}, {pinmux} & 0xffff}},
|
||||
#endif''')
|
||||
print(f'{{NULL, 0, 0}}')
|
||||
print(f'}};')
|
||||
#endif"""
|
||||
)
|
||||
print(f"{{NULL, 0, 0}}")
|
||||
print(f"}};")
|
||||
print()
|
||||
|
||||
print('''\
|
||||
|
||||
print(
|
||||
"""\
|
||||
#include <stdint.h>
|
||||
#include "py/obj.h"
|
||||
#include "sam.h"
|
||||
@ -25,7 +30,8 @@ print('''\
|
||||
#include "atmel_start_pins.h"
|
||||
#include "hal/include/hal_gpio.h"
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
''')
|
||||
"""
|
||||
)
|
||||
|
||||
defines('can_rx', 'RX')
|
||||
defines('can_tx', 'TX')
|
||||
defines("can_rx", "RX")
|
||||
defines("can_tx", "TX")
|
||||
|
@ -1,21 +1,26 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
|
||||
def defines(name, function):
|
||||
print(f'mcu_pin_function_t {name} [] = {{')
|
||||
print(f"mcu_pin_function_t {name} [] = {{")
|
||||
for instance in (0, 1):
|
||||
for port in 'ABCD':
|
||||
for port in "ABCD":
|
||||
for idx in range(32):
|
||||
pin = f'P{port}{idx:02d}'
|
||||
pinmux = f'PINMUX_{pin}I_SDHC{instance}_{function}'
|
||||
print(f'''\
|
||||
pin = f"P{port}{idx:02d}"
|
||||
pinmux = f"PINMUX_{pin}I_SDHC{instance}_{function}"
|
||||
print(
|
||||
f"""\
|
||||
#if defined({pinmux}) && ! defined(IGNORE_PIN_{pin})
|
||||
{{&pin_{pin}, {instance}, PIN_{pin}, {pinmux} & 0xffff}},
|
||||
#endif''')
|
||||
print(f'{{NULL, 0, 0}}')
|
||||
print(f'}};')
|
||||
#endif"""
|
||||
)
|
||||
print(f"{{NULL, 0, 0}}")
|
||||
print(f"}};")
|
||||
print()
|
||||
|
||||
print('''\
|
||||
|
||||
print(
|
||||
"""\
|
||||
#include <stdint.h>
|
||||
#include "py/obj.h"
|
||||
#include "sam.h"
|
||||
@ -25,11 +30,12 @@ print('''\
|
||||
#include "hal/include/hal_gpio.h"
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
''')
|
||||
"""
|
||||
)
|
||||
|
||||
defines('sdio_ck', 'SDCK')
|
||||
defines('sdio_cmd', 'SDCMD')
|
||||
defines('sdio_dat0', 'SDDAT0')
|
||||
defines('sdio_dat1', 'SDDAT1')
|
||||
defines('sdio_dat2', 'SDDAT2')
|
||||
defines('sdio_dat3', 'SDDAT3')
|
||||
defines("sdio_ck", "SDCK")
|
||||
defines("sdio_cmd", "SDCMD")
|
||||
defines("sdio_dat0", "SDDAT0")
|
||||
defines("sdio_dat1", "SDDAT1")
|
||||
defines("sdio_dat2", "SDDAT2")
|
||||
defines("sdio_dat3", "SDDAT3")
|
||||
|
@ -11,7 +11,11 @@ for chip in ["samd21", "samd51"]:
|
||||
if not os.path.isfile(filename):
|
||||
with open("tools/" + chip + ".json", "r") as project_json:
|
||||
headers = {"content-type": "text/plain"}
|
||||
r = requests.post("http://start.atmel.com/api/v1/generate/?format=atzip&compilers=[make]&file_name_base=My%20Project", headers=headers, data=project_json)
|
||||
r = requests.post(
|
||||
"http://start.atmel.com/api/v1/generate/?format=atzip&compilers=[make]&file_name_base=My%20Project",
|
||||
headers=headers,
|
||||
data=project_json,
|
||||
)
|
||||
if not r.ok:
|
||||
# Double check that the JSON is minified. If its not, you'll get a 404.
|
||||
print(r.text)
|
||||
@ -40,7 +44,9 @@ for chip in ["samd21", "samd51"]:
|
||||
for patch in os.listdir("asf4/patches/" + chip):
|
||||
patch = "patches/" + chip + "/" + patch
|
||||
print(patch)
|
||||
result = subprocess.run(["patch", "-l", "-F", "10", "-u", "-p", "1", "-d", tmp_dir, "-i", "../" + patch])
|
||||
result = subprocess.run(
|
||||
["patch", "-l", "-F", "10", "-u", "-p", "1", "-d", tmp_dir, "-i", "../" + patch]
|
||||
)
|
||||
ok = ok and result.returncode == 0
|
||||
print()
|
||||
|
||||
|
@ -26,8 +26,7 @@
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include <arch/chip/pin.h>
|
||||
#include <nuttx/i2c/i2c_master.h>
|
||||
#include <cxd56_i2c.h>
|
||||
#include <cxd56_pinconfig.h>
|
||||
|
||||
#include "py/runtime.h"
|
||||
|
||||
@ -49,6 +50,7 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self, const mcu_pin_obj_t *
|
||||
self->sda_pin = sda;
|
||||
self->frequency = frequency;
|
||||
self->i2c_dev = cxd56_i2cbus_initialize(0);
|
||||
CXD56_PIN_CONFIGS(PINCONFS_I2C0);
|
||||
}
|
||||
|
||||
void common_hal_busio_i2c_deinit(busio_i2c_obj_t *self) {
|
||||
|
@ -26,6 +26,7 @@
|
||||
|
||||
#include <arch/chip/pin.h>
|
||||
#include <cxd56_spi.h>
|
||||
#include <cxd56_pinconfig.h>
|
||||
|
||||
#include "py/runtime.h"
|
||||
|
||||
@ -39,10 +40,12 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self, const mcu_pin_obj_t *
|
||||
(mosi == NULL || mosi->number == PIN_SPI4_MOSI) &&
|
||||
(miso == NULL || miso->number == PIN_SPI4_MISO)) {
|
||||
port = 4;
|
||||
CXD56_PIN_CONFIGS(PINCONFS_SPI4);
|
||||
} else if (clock->number == PIN_EMMC_CLK &&
|
||||
(mosi == NULL || mosi->number == PIN_EMMC_DATA0) &&
|
||||
(miso == NULL || miso->number == PIN_EMMC_DATA1)) {
|
||||
port = 5;
|
||||
CXD56_PIN_CONFIGS(PINCONFS_EMMCA_SPI5);
|
||||
}
|
||||
|
||||
if (port < 0) {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user