diff --git a/README.md b/README.md
index 73b4e4c9a..fc73eae1d 100644
--- a/README.md
+++ b/README.md
@@ -24,6 +24,21 @@ but also GUI tools and documentation.
1. Run `make`;
1. Use [Flash Downloader](tools/README.md) to download programs.
+### The Mixed Way
+
+1. [Download](releases) setup file & install our SDK package;
+1. Fork/Clone this repository;
+1. Run [gen_files](tools/README.md) to prepare files;
+1. Edit _/path/to/sdk/wizard/cfg/settings.json_ while _Wizard_ is closed:
+ change _sdk_ to the path of the cloned repository:
+
+ ```json
+ {
+ "sdk": "path/to/cloned/repository",
+ }
+ ```
+1. Start _Wizard_.
+
## Branches
1. `master` is used for releases;
diff --git a/bundles/exp/ING9187xx/apis.json b/bundles/exp/ING9187xx/apis.json
index 574a2bdd5..52ba16e85 100644
--- a/bundles/exp/ING9187xx/apis.json
+++ b/bundles/exp/ING9187xx/apis.json
@@ -1,341 +1,338 @@
{
- "att_dispatch_client_can_send_now": "0x000059f5",
- "att_dispatch_client_request_can_send_now_event": "0x000059fb",
- "att_dispatch_register_client": "0x00005a01",
- "att_dispatch_register_server": "0x00005a15",
- "att_dispatch_server_can_send_now": "0x00005a29",
- "att_dispatch_server_request_can_send_now_event": "0x00005a2f",
- "att_emit_general_event": "0x00005ae1",
- "att_server_can_send_packet_now": "0x000061f5",
- "att_server_deferred_read_response": "0x000061f9",
- "att_server_get_mtu": "0x00006211",
- "att_server_indicate": "0x00006289",
- "att_server_init": "0x0000630d",
- "att_server_notify": "0x00006349",
- "att_server_register_packet_handler": "0x00006461",
- "att_server_request_can_send_now_event": "0x0000646d",
- "att_set_db": "0x00006489",
- "att_set_read_callback": "0x0000649d",
- "att_set_write_callback": "0x000064a9",
- "bd_addr_cmp": "0x00006619",
- "bd_addr_copy": "0x0000661f",
- "bd_addr_to_str": "0x00006629",
- "big_endian_read_16": "0x00006661",
- "big_endian_read_32": "0x00006669",
- "big_endian_store_16": "0x0000667d",
- "big_endian_store_32": "0x00006689",
- "btstack_config": "0x000067dd",
- "btstack_memory_pool_create": "0x0000691b",
- "btstack_memory_pool_free": "0x00006945",
- "btstack_memory_pool_get": "0x000069a5",
- "btstack_push_user_msg": "0x00006a0d",
- "btstack_push_user_runnable": "0x00006a19",
- "char_for_nibble": "0x00006ca1",
- "eTaskConfirmSleepModeStatus": "0x00006f71",
- "gap_add_dev_to_periodic_list": "0x00007591",
- "gap_add_whitelist": "0x000075a9",
- "gap_aes_encrypt": "0x000075bd",
- "gap_clear_white_lists": "0x00007601",
- "gap_clr_adv_set": "0x00007611",
- "gap_clr_periodic_adv_list": "0x00007621",
- "gap_create_connection_cancel": "0x00007631",
- "gap_disconnect": "0x00007641",
- "gap_disconnect_all": "0x0000766d",
- "gap_ext_create_connection": "0x000076ad",
- "gap_get_connection_parameter_range": "0x000077bd",
- "gap_le_read_channel_map": "0x000077f9",
- "gap_periodic_adv_create_sync": "0x0000786d",
- "gap_periodic_adv_create_sync_cancel": "0x00007891",
- "gap_periodic_adv_term_sync": "0x000078a1",
- "gap_read_local_tx_power_level": "0x00007945",
- "gap_read_periodic_adv_list_size": "0x00007959",
- "gap_read_phy": "0x00007969",
- "gap_read_remote_tx_power_level": "0x0000797d",
- "gap_read_remote_used_features": "0x00007991",
- "gap_read_remote_version": "0x000079a5",
- "gap_read_rssi": "0x000079b9",
- "gap_remove_whitelist": "0x000079cd",
- "gap_rmv_adv_set": "0x00007a51",
- "gap_rmv_dev_from_periodic_list": "0x00007a65",
- "gap_rx_test_v2": "0x00007a7d",
- "gap_set_adv_set_random_addr": "0x00007abd",
- "gap_set_connection_parameter_range": "0x00007b09",
- "gap_set_data_length": "0x00007b21",
- "gap_set_def_phy": "0x00007b3d",
- "gap_set_default_subrate": "0x00007b55",
- "gap_set_ext_adv_data": "0x00007b71",
- "gap_set_ext_adv_enable": "0x00007b89",
- "gap_set_ext_adv_para": "0x00007c05",
- "gap_set_ext_scan_enable": "0x00007ce5",
- "gap_set_ext_scan_para": "0x00007cfd",
- "gap_set_ext_scan_response_data": "0x00007da5",
- "gap_set_host_channel_classification": "0x00007dbd",
- "gap_set_path_loss_reporting_enable": "0x00007dd1",
- "gap_set_path_loss_reporting_param": "0x00007de5",
- "gap_set_periodic_adv_data": "0x00007e05",
- "gap_set_periodic_adv_enable": "0x00007e79",
- "gap_set_periodic_adv_para": "0x00007e8d",
- "gap_set_phy": "0x00007ea5",
- "gap_set_random_device_address": "0x00007ec1",
- "gap_set_tx_power_reporting_enable": "0x00007ee1",
- "gap_start_ccm": "0x00007f09",
- "gap_subrate_request": "0x00007f3d",
- "gap_test_end": "0x00007f5d",
- "gap_tx_test_v2": "0x00007f6d",
- "gap_tx_test_v4": "0x00007f85",
- "gap_update_connection_parameters": "0x00007fad",
- "gap_vendor_tx_continuous_wave": "0x00007ff1",
- "gatt_client_cancel_write": "0x00008519",
- "gatt_client_discover_characteristic_descriptors": "0x0000853f",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0000857f",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000085cf",
- "gatt_client_discover_characteristics_for_service": "0x0000861f",
- "gatt_client_discover_primary_services": "0x00008655",
- "gatt_client_discover_primary_services_by_uuid128": "0x00008687",
- "gatt_client_discover_primary_services_by_uuid16": "0x000086cb",
- "gatt_client_execute_write": "0x00008707",
- "gatt_client_find_included_services_for_service": "0x0000872d",
- "gatt_client_get_mtu": "0x0000875b",
- "gatt_client_is_ready": "0x000087fd",
- "gatt_client_listen_for_characteristic_value_updates": "0x00008813",
- "gatt_client_prepare_write": "0x00008835",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008871",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0000889b",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000088a1",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000088cf",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x000088d5",
- "gatt_client_read_multiple_characteristic_values": "0x00008903",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008933",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008961",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x000089ad",
- "gatt_client_register_handler": "0x000089f9",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x00008a05",
- "gatt_client_signed_write_without_response": "0x00008e35",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008ef9",
- "gatt_client_write_client_characteristic_configuration": "0x00008f33",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008f85",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008f95",
- "gatt_client_write_long_value_of_characteristic": "0x00008fd1",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008fe1",
- "gatt_client_write_value_of_characteristic": "0x0000901d",
- "gatt_client_write_value_of_characteristic_without_response": "0x00009053",
- "hci_add_event_handler": "0x0000a5dd",
- "hci_power_control": "0x0000ade5",
- "hci_register_acl_packet_handler": "0x0000af99",
- "kv_commit": "0x0000b50d",
- "kv_get": "0x0000b565",
- "kv_init": "0x0000b57d",
- "kv_put": "0x0000b5e5",
- "kv_remove": "0x0000b65d",
- "kv_remove_all": "0x0000b699",
- "kv_value_modified": "0x0000b6dd",
- "kv_visit": "0x0000b6e1",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000b7a1",
- "l2cap_can_send_packet_now": "0x0000b7a5",
- "l2cap_create_channel": "0x0000b95d",
- "l2cap_disconnect": "0x0000ba95",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000bcbd",
- "l2cap_init": "0x0000c0b5",
- "l2cap_le_send_flow_control_credit": "0x0000c0f5",
- "l2cap_max_le_mtu": "0x0000c3b1",
- "l2cap_max_mtu": "0x0000c3b5",
- "l2cap_register_fixed_channel": "0x0000c4c1",
- "l2cap_register_packet_handler": "0x0000c4dd",
- "l2cap_register_service": "0x0000c4e9",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c5cd",
- "l2cap_request_can_send_now_event": "0x0000c5f1",
- "l2cap_request_connection_parameter_update": "0x0000c60b",
- "l2cap_send": "0x0000c9a5",
- "l2cap_send_connectionless": "0x0000ca1d",
- "l2cap_send_connectionless3": "0x0000caad",
- "l2cap_send_echo_request": "0x0000cb45",
- "l2cap_unregister_service": "0x0000cc01",
- "le_device_db_add": "0x0000cc59",
- "le_device_db_find": "0x0000cd2d",
- "le_device_db_from_key": "0x0000cd59",
- "le_device_db_iter_cur": "0x0000cd61",
- "le_device_db_iter_cur_key": "0x0000cd65",
- "le_device_db_iter_init": "0x0000cd69",
- "le_device_db_iter_next": "0x0000cd71",
- "le_device_db_remove_key": "0x0000cd97",
- "ll_ackable_packet_alloc": "0x0000cdc3",
- "ll_ackable_packet_get_status": "0x0000cecb",
- "ll_ackable_packet_run": "0x0000cf3d",
- "ll_ackable_packet_set_tx_data": "0x0000cfe5",
- "ll_adjust_conn_peer_tx_power": "0x0000d001",
- "ll_dhkey_generated": "0x0000d249",
- "ll_free": "0x0000d279",
- "ll_hint_on_ce_len": "0x0000d285",
- "ll_install_ecc_engine": "0x0000d2bd",
- "ll_legacy_adv_set_interval": "0x0000d2c9",
- "ll_malloc": "0x0000d2d9",
- "ll_p256_key_pair_generated": "0x0000d2e1",
- "ll_raw_packet_alloc": "0x0000d491",
- "ll_raw_packet_free": "0x0000d565",
- "ll_raw_packet_get_bare_rx_data": "0x0000d58f",
- "ll_raw_packet_get_rx_data": "0x0000d655",
- "ll_raw_packet_recv": "0x0000d6f5",
- "ll_raw_packet_send": "0x0000d7b1",
- "ll_raw_packet_set_bare_data": "0x0000d899",
- "ll_raw_packet_set_bare_mode": "0x0000d8d7",
- "ll_raw_packet_set_param": "0x0000d9dd",
- "ll_raw_packet_set_tx_data": "0x0000da3b",
- "ll_scan_set_fixed_channel": "0x0000daf9",
- "ll_set_adv_access_address": "0x0000dc0d",
- "ll_set_adv_coded_scheme": "0x0000dc19",
- "ll_set_conn_coded_scheme": "0x0000dc49",
- "ll_set_conn_interval_unit": "0x0000dc75",
- "ll_set_conn_latency": "0x0000dc81",
- "ll_set_conn_tx_power": "0x0000dcb1",
- "ll_set_def_antenna": "0x0000dced",
- "ll_set_initiating_coded_scheme": "0x0000dd09",
- "ll_set_max_conn_number": "0x0000dd15",
- "ll_set_tx_power_range": "0x0000ddb1",
- "nibble_for_char": "0x0001f211",
- "platform_32k_rc_auto_tune": "0x0001f2c1",
- "platform_32k_rc_tune": "0x0001f33d",
- "platform_calibrate_32k": "0x0001f351",
- "platform_config": "0x0001f355",
- "platform_get_current_task": "0x0001f431",
- "platform_get_gen_os_driver": "0x0001f455",
- "platform_get_heap_status": "0x0001f45d",
- "platform_get_task_handle": "0x0001f475",
- "platform_get_us_time": "0x0001f495",
- "platform_get_version": "0x0001f499",
- "platform_hrng": "0x0001f4a1",
- "platform_install_isr_stack": "0x0001f4a9",
- "platform_install_task_stack": "0x0001f4b5",
- "platform_patch_rf_init_data": "0x0001f4ed",
- "platform_printf": "0x0001f4f9",
- "platform_raise_assertion": "0x0001f50d",
- "platform_rand": "0x0001f521",
- "platform_read_info": "0x0001f525",
- "platform_read_persistent_reg": "0x0001f555",
- "platform_reset": "0x0001f565",
- "platform_set_evt_callback": "0x0001f589",
- "platform_set_irq_callback": "0x0001f59d",
- "platform_set_rf_clk_source": "0x0001f5d5",
- "platform_set_rf_init_data": "0x0001f5e1",
- "platform_set_rf_power_mapping": "0x0001f5ed",
- "platform_set_timer": "0x0001f5f9",
- "platform_shutdown": "0x0001f5fd",
- "platform_switch_app": "0x0001f601",
- "platform_trace_raw": "0x0001f62d",
- "platform_write_persistent_reg": "0x0001f645",
- "printf_hexdump": "0x0001f7f9",
- "pvPortMalloc": "0x00020309",
- "pvTaskIncrementMutexHeldCount": "0x000203f1",
- "pvTimerGetTimerID": "0x00020409",
- "pxPortInitialiseStack": "0x00020435",
- "reverse_128": "0x000205dd",
- "reverse_24": "0x000205e3",
- "reverse_48": "0x000205e9",
- "reverse_56": "0x000205ef",
- "reverse_64": "0x000205f5",
- "reverse_bd_addr": "0x000205fb",
- "reverse_bytes": "0x00020601",
- "sm_add_event_handler": "0x0002078d",
- "sm_address_resolution_lookup": "0x000208e5",
- "sm_authenticated": "0x00020c3d",
- "sm_authorization_decline": "0x00020c4b",
- "sm_authorization_grant": "0x00020c6b",
- "sm_authorization_state": "0x00020c8b",
- "sm_bonding_decline": "0x00020ca5",
- "sm_config": "0x000210c5",
- "sm_config_conn": "0x000210dd",
- "sm_encryption_key_size": "0x00021293",
- "sm_just_works_confirm": "0x000217cd",
- "sm_le_device_key": "0x00021b09",
- "sm_passkey_input": "0x00021b9f",
- "sm_private_random_address_generation_get": "0x00021f4d",
- "sm_private_random_address_generation_get_mode": "0x00021f55",
- "sm_private_random_address_generation_set_mode": "0x00021f61",
- "sm_private_random_address_generation_set_update_period": "0x00021f89",
- "sm_register_oob_data_callback": "0x000220c5",
- "sm_request_pairing": "0x000220d1",
- "sm_send_security_request": "0x00022aef",
- "sm_set_accepted_stk_generation_methods": "0x00022b15",
- "sm_set_authentication_requirements": "0x00022b21",
- "sm_set_encryption_key_size_range": "0x00022b2d",
- "sscanf_bd_addr": "0x00022efd",
- "sysSetPublicDeviceAddr": "0x00023275",
- "uuid128_to_str": "0x00023879",
- "uuid_add_bluetooth_prefix": "0x000238d1",
- "uuid_has_bluetooth_prefix": "0x000238f1",
- "uxListRemove": "0x0002390d",
- "uxQueueMessagesWaiting": "0x00023935",
- "uxQueueMessagesWaitingFromISR": "0x0002395d",
- "uxQueueSpacesAvailable": "0x00023979",
- "uxTaskGetStackHighWaterMark": "0x000239a5",
- "uxTaskPriorityGet": "0x000239c5",
- "uxTaskPriorityGetFromISR": "0x000239e1",
- "vListInitialise": "0x00023a93",
- "vListInitialiseItem": "0x00023aa9",
- "vListInsert": "0x00023aaf",
- "vListInsertEnd": "0x00023adf",
- "vPortEndScheduler": "0x00023af9",
- "vPortEnterCritical": "0x00023b25",
- "vPortExitCritical": "0x00023b6d",
- "vPortFree": "0x00023ba1",
- "vPortSuppressTicksAndSleep": "0x00023c35",
- "vPortValidateInterruptPriority": "0x00023d3d",
- "vQueueDelete": "0x00023d99",
- "vQueueWaitForMessageRestricted": "0x00023dc5",
- "vTaskDelay": "0x00023e0d",
- "vTaskInternalSetTimeOutState": "0x00023e59",
- "vTaskMissedYield": "0x00023e69",
- "vTaskPlaceOnEventList": "0x00023e75",
- "vTaskPlaceOnEventListRestricted": "0x00023ead",
- "vTaskPriorityDisinheritAfterTimeout": "0x00023eed",
- "vTaskPrioritySet": "0x00023f99",
- "vTaskResume": "0x00024061",
- "vTaskStartScheduler": "0x000240e5",
- "vTaskStepTick": "0x00024175",
- "vTaskSuspend": "0x000241a5",
- "vTaskSuspendAll": "0x00024261",
- "vTaskSwitchContext": "0x00024271",
- "xPortStartScheduler": "0x00024319",
- "xQueueAddToSet": "0x000243dd",
- "xQueueCreateCountingSemaphore": "0x00024401",
- "xQueueCreateCountingSemaphoreStatic": "0x0002443d",
- "xQueueCreateMutex": "0x00024481",
- "xQueueCreateMutexStatic": "0x00024497",
- "xQueueCreateSet": "0x000244b1",
- "xQueueGenericCreate": "0x000244b9",
- "xQueueGenericCreateStatic": "0x00024505",
- "xQueueGenericReset": "0x0002456d",
- "xQueueGenericSend": "0x000245f9",
- "xQueueGenericSendFromISR": "0x00024765",
- "xQueueGiveFromISR": "0x00024825",
- "xQueueGiveMutexRecursive": "0x000248c9",
- "xQueueIsQueueEmptyFromISR": "0x00024909",
- "xQueueIsQueueFullFromISR": "0x0002492d",
- "xQueuePeek": "0x00024955",
- "xQueuePeekFromISR": "0x00024a7d",
- "xQueueReceive": "0x00024ae9",
- "xQueueReceiveFromISR": "0x00024c15",
- "xQueueRemoveFromSet": "0x00024ca9",
- "xQueueSelectFromSet": "0x00024ccb",
- "xQueueSelectFromSetFromISR": "0x00024cdd",
- "xQueueSemaphoreTake": "0x00024cf1",
- "xQueueTakeMutexRecursive": "0x00024e5d",
- "xTaskCheckForTimeOut": "0x00024ea1",
- "xTaskCreate": "0x00024f11",
- "xTaskCreateStatic": "0x00024f6d",
- "xTaskGetCurrentTaskHandle": "0x00024fdd",
- "xTaskGetSchedulerState": "0x00024fe9",
- "xTaskGetTickCount": "0x00025005",
- "xTaskGetTickCountFromISR": "0x00025011",
- "xTaskIncrementTick": "0x00025021",
- "xTaskPriorityDisinherit": "0x000250ed",
- "xTaskPriorityInherit": "0x00025181",
- "xTaskRemoveFromEventList": "0x00025215",
- "xTaskResumeAll": "0x00025295",
- "xTaskResumeFromISR": "0x0002535d",
- "xTimerCreate": "0x000253e9",
- "xTimerCreateStatic": "0x0002541d",
- "xTimerCreateTimerTask": "0x00025455",
- "xTimerGenericCommand": "0x000254c1",
- "xTimerGetExpiryTime": "0x00025531",
- "xTimerGetTimerDaemonTaskHandle": "0x00025551"
+ "att_dispatch_client_can_send_now": "0x00005759",
+ "att_dispatch_client_request_can_send_now_event": "0x0000575f",
+ "att_dispatch_register_client": "0x00005765",
+ "att_dispatch_register_server": "0x00005779",
+ "att_dispatch_server_can_send_now": "0x0000578d",
+ "att_dispatch_server_request_can_send_now_event": "0x00005793",
+ "att_emit_general_event": "0x00005845",
+ "att_server_can_send_packet_now": "0x00005f59",
+ "att_server_deferred_read_response": "0x00005f5d",
+ "att_server_get_mtu": "0x00005f75",
+ "att_server_indicate": "0x00005fed",
+ "att_server_init": "0x00006071",
+ "att_server_notify": "0x000060ad",
+ "att_server_register_packet_handler": "0x000061c5",
+ "att_server_request_can_send_now_event": "0x000061d1",
+ "att_set_db": "0x000061ed",
+ "att_set_read_callback": "0x00006201",
+ "att_set_write_callback": "0x0000620d",
+ "bd_addr_cmp": "0x0000637d",
+ "bd_addr_copy": "0x00006383",
+ "bd_addr_to_str": "0x0000638d",
+ "big_endian_read_16": "0x000063c5",
+ "big_endian_read_32": "0x000063cd",
+ "big_endian_store_16": "0x000063e1",
+ "big_endian_store_32": "0x000063ed",
+ "btstack_config": "0x00006541",
+ "btstack_memory_pool_create": "0x0000667f",
+ "btstack_memory_pool_free": "0x000066a9",
+ "btstack_memory_pool_get": "0x00006709",
+ "btstack_push_user_msg": "0x00006771",
+ "btstack_push_user_runnable": "0x0000677d",
+ "char_for_nibble": "0x00006a05",
+ "eTaskConfirmSleepModeStatus": "0x00006cd5",
+ "gap_add_dev_to_periodic_list": "0x000072f5",
+ "gap_add_whitelist": "0x0000730d",
+ "gap_aes_encrypt": "0x00007321",
+ "gap_clear_white_lists": "0x00007365",
+ "gap_clr_adv_set": "0x00007375",
+ "gap_clr_periodic_adv_list": "0x00007385",
+ "gap_create_connection_cancel": "0x00007395",
+ "gap_disconnect": "0x000073a5",
+ "gap_disconnect_all": "0x000073d1",
+ "gap_ext_create_connection": "0x00007411",
+ "gap_get_connection_parameter_range": "0x00007521",
+ "gap_le_read_channel_map": "0x0000755d",
+ "gap_periodic_adv_create_sync": "0x000075d1",
+ "gap_periodic_adv_create_sync_cancel": "0x000075f5",
+ "gap_periodic_adv_term_sync": "0x00007605",
+ "gap_read_local_tx_power_level": "0x000076a9",
+ "gap_read_periodic_adv_list_size": "0x000076bd",
+ "gap_read_phy": "0x000076cd",
+ "gap_read_remote_tx_power_level": "0x000076e1",
+ "gap_read_remote_used_features": "0x000076f5",
+ "gap_read_remote_version": "0x00007709",
+ "gap_read_rssi": "0x0000771d",
+ "gap_remove_whitelist": "0x00007731",
+ "gap_rmv_adv_set": "0x000077b5",
+ "gap_rmv_dev_from_periodic_list": "0x000077c9",
+ "gap_rx_test_v2": "0x000077e1",
+ "gap_set_adv_set_random_addr": "0x00007821",
+ "gap_set_connection_parameter_range": "0x0000786d",
+ "gap_set_data_length": "0x00007885",
+ "gap_set_def_phy": "0x000078a1",
+ "gap_set_default_subrate": "0x000078b9",
+ "gap_set_ext_adv_data": "0x000078d5",
+ "gap_set_ext_adv_enable": "0x000078ed",
+ "gap_set_ext_adv_para": "0x00007969",
+ "gap_set_ext_scan_enable": "0x00007a49",
+ "gap_set_ext_scan_para": "0x00007a61",
+ "gap_set_ext_scan_response_data": "0x00007b09",
+ "gap_set_host_channel_classification": "0x00007b21",
+ "gap_set_path_loss_reporting_enable": "0x00007b35",
+ "gap_set_path_loss_reporting_param": "0x00007b49",
+ "gap_set_periodic_adv_data": "0x00007b69",
+ "gap_set_periodic_adv_enable": "0x00007bdd",
+ "gap_set_periodic_adv_para": "0x00007bf1",
+ "gap_set_phy": "0x00007c09",
+ "gap_set_random_device_address": "0x00007c25",
+ "gap_set_tx_power_reporting_enable": "0x00007c45",
+ "gap_start_ccm": "0x00007c6d",
+ "gap_subrate_request": "0x00007ca1",
+ "gap_test_end": "0x00007cc1",
+ "gap_tx_test_v2": "0x00007cd1",
+ "gap_tx_test_v4": "0x00007ce9",
+ "gap_update_connection_parameters": "0x00007d11",
+ "gap_vendor_tx_continuous_wave": "0x00007d55",
+ "gatt_client_cancel_write": "0x0000827d",
+ "gatt_client_discover_characteristic_descriptors": "0x000082a3",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000082e3",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x00008333",
+ "gatt_client_discover_characteristics_for_service": "0x00008383",
+ "gatt_client_discover_primary_services": "0x000083b9",
+ "gatt_client_discover_primary_services_by_uuid128": "0x000083eb",
+ "gatt_client_discover_primary_services_by_uuid16": "0x0000842f",
+ "gatt_client_execute_write": "0x0000846b",
+ "gatt_client_find_included_services_for_service": "0x00008491",
+ "gatt_client_get_mtu": "0x000084bf",
+ "gatt_client_is_ready": "0x00008561",
+ "gatt_client_listen_for_characteristic_value_updates": "0x00008577",
+ "gatt_client_prepare_write": "0x00008599",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x000085d5",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000085ff",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008605",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008633",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008639",
+ "gatt_client_read_multiple_characteristic_values": "0x00008667",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008697",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x000086c5",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008711",
+ "gatt_client_register_handler": "0x0000875d",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x00008769",
+ "gatt_client_signed_write_without_response": "0x00008b99",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008c5d",
+ "gatt_client_write_client_characteristic_configuration": "0x00008c97",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008ce9",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008cf9",
+ "gatt_client_write_long_value_of_characteristic": "0x00008d35",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008d45",
+ "gatt_client_write_value_of_characteristic": "0x00008d81",
+ "gatt_client_write_value_of_characteristic_without_response": "0x00008db7",
+ "hci_add_event_handler": "0x0000a341",
+ "hci_power_control": "0x0000ab49",
+ "hci_register_acl_packet_handler": "0x0000acfd",
+ "kv_commit": "0x0000b271",
+ "kv_get": "0x0000b2c9",
+ "kv_init": "0x0000b2e1",
+ "kv_put": "0x0000b349",
+ "kv_remove": "0x0000b3c1",
+ "kv_remove_all": "0x0000b3fd",
+ "kv_value_modified": "0x0000b441",
+ "kv_visit": "0x0000b445",
+ "l2cap_add_event_handler": "0x0000b4f9",
+ "l2cap_can_send_packet_now": "0x0000b509",
+ "l2cap_create_le_credit_based_connection_request": "0x0000b6c5",
+ "l2cap_credit_based_send": "0x0000b809",
+ "l2cap_credit_based_send_continue": "0x0000b835",
+ "l2cap_disconnect": "0x0000b8b1",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000bb01",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000bb1d",
+ "l2cap_init": "0x0000bef1",
+ "l2cap_le_send_flow_control_credit": "0x0000bfe7",
+ "l2cap_max_le_mtu": "0x0000c2f1",
+ "l2cap_register_packet_handler": "0x0000c419",
+ "l2cap_register_service": "0x0000c425",
+ "l2cap_request_can_send_now_event": "0x0000c535",
+ "l2cap_request_connection_parameter_update": "0x0000c54f",
+ "l2cap_send_echo_request": "0x0000ca21",
+ "l2cap_unregister_service": "0x0000cae1",
+ "le_device_db_add": "0x0000cb39",
+ "le_device_db_find": "0x0000cc0d",
+ "le_device_db_from_key": "0x0000cc39",
+ "le_device_db_iter_cur": "0x0000cc41",
+ "le_device_db_iter_cur_key": "0x0000cc45",
+ "le_device_db_iter_init": "0x0000cc49",
+ "le_device_db_iter_next": "0x0000cc51",
+ "le_device_db_remove_key": "0x0000cc77",
+ "ll_ackable_packet_alloc": "0x0000cca3",
+ "ll_ackable_packet_get_status": "0x0000cdab",
+ "ll_ackable_packet_run": "0x0000ce1d",
+ "ll_ackable_packet_set_tx_data": "0x0000cec5",
+ "ll_adjust_conn_peer_tx_power": "0x0000cee1",
+ "ll_dhkey_generated": "0x0000d129",
+ "ll_free": "0x0000d159",
+ "ll_hint_on_ce_len": "0x0000d165",
+ "ll_install_ecc_engine": "0x0000d19d",
+ "ll_legacy_adv_set_interval": "0x0000d1a9",
+ "ll_malloc": "0x0000d1b9",
+ "ll_p256_key_pair_generated": "0x0000d1c1",
+ "ll_raw_packet_alloc": "0x0000d371",
+ "ll_raw_packet_free": "0x0000d445",
+ "ll_raw_packet_get_bare_rx_data": "0x0000d46f",
+ "ll_raw_packet_get_rx_data": "0x0000d535",
+ "ll_raw_packet_recv": "0x0000d5d5",
+ "ll_raw_packet_send": "0x0000d691",
+ "ll_raw_packet_set_bare_data": "0x0000d779",
+ "ll_raw_packet_set_bare_mode": "0x0000d7b7",
+ "ll_raw_packet_set_param": "0x0000d8bd",
+ "ll_raw_packet_set_tx_data": "0x0000d91b",
+ "ll_scan_set_fixed_channel": "0x0000d9d9",
+ "ll_set_adv_access_address": "0x0000daed",
+ "ll_set_adv_coded_scheme": "0x0000daf9",
+ "ll_set_conn_coded_scheme": "0x0000db29",
+ "ll_set_conn_interval_unit": "0x0000db55",
+ "ll_set_conn_latency": "0x0000db61",
+ "ll_set_conn_tx_power": "0x0000db91",
+ "ll_set_def_antenna": "0x0000dbcd",
+ "ll_set_initiating_coded_scheme": "0x0000dbe9",
+ "ll_set_max_conn_number": "0x0000dbf5",
+ "ll_set_tx_power_range": "0x0000dc91",
+ "nibble_for_char": "0x0001f0f5",
+ "platform_32k_rc_auto_tune": "0x0001f1a5",
+ "platform_32k_rc_tune": "0x0001f221",
+ "platform_calibrate_32k": "0x0001f235",
+ "platform_config": "0x0001f239",
+ "platform_get_current_task": "0x0001f315",
+ "platform_get_gen_os_driver": "0x0001f339",
+ "platform_get_heap_status": "0x0001f341",
+ "platform_get_task_handle": "0x0001f359",
+ "platform_get_us_time": "0x0001f379",
+ "platform_get_version": "0x0001f37d",
+ "platform_hrng": "0x0001f385",
+ "platform_install_isr_stack": "0x0001f38d",
+ "platform_install_task_stack": "0x0001f399",
+ "platform_patch_rf_init_data": "0x0001f3d1",
+ "platform_printf": "0x0001f3dd",
+ "platform_raise_assertion": "0x0001f3f1",
+ "platform_rand": "0x0001f405",
+ "platform_read_info": "0x0001f409",
+ "platform_read_persistent_reg": "0x0001f439",
+ "platform_reset": "0x0001f449",
+ "platform_set_evt_callback": "0x0001f46d",
+ "platform_set_irq_callback": "0x0001f481",
+ "platform_set_rf_clk_source": "0x0001f4b9",
+ "platform_set_rf_init_data": "0x0001f4c5",
+ "platform_set_rf_power_mapping": "0x0001f4d1",
+ "platform_set_timer": "0x0001f4dd",
+ "platform_shutdown": "0x0001f4e1",
+ "platform_switch_app": "0x0001f4e5",
+ "platform_trace_raw": "0x0001f511",
+ "platform_write_persistent_reg": "0x0001f529",
+ "printf_hexdump": "0x0001f6dd",
+ "pvPortMalloc": "0x000201ed",
+ "pvTaskIncrementMutexHeldCount": "0x000202d5",
+ "pvTimerGetTimerID": "0x000202ed",
+ "pxPortInitialiseStack": "0x00020319",
+ "reverse_128": "0x000204c1",
+ "reverse_24": "0x000204c7",
+ "reverse_48": "0x000204cd",
+ "reverse_56": "0x000204d3",
+ "reverse_64": "0x000204d9",
+ "reverse_bd_addr": "0x000204df",
+ "reverse_bytes": "0x000204e5",
+ "sm_add_event_handler": "0x00020671",
+ "sm_address_resolution_lookup": "0x000207c9",
+ "sm_authenticated": "0x00020b21",
+ "sm_authorization_decline": "0x00020b2f",
+ "sm_authorization_grant": "0x00020b4f",
+ "sm_authorization_state": "0x00020b6f",
+ "sm_bonding_decline": "0x00020b89",
+ "sm_config": "0x00020fa9",
+ "sm_config_conn": "0x00020fc1",
+ "sm_encryption_key_size": "0x00021177",
+ "sm_just_works_confirm": "0x000216b1",
+ "sm_le_device_key": "0x000219ed",
+ "sm_passkey_input": "0x00021a83",
+ "sm_private_random_address_generation_get": "0x00021e31",
+ "sm_private_random_address_generation_get_mode": "0x00021e39",
+ "sm_private_random_address_generation_set_mode": "0x00021e45",
+ "sm_private_random_address_generation_set_update_period": "0x00021e6d",
+ "sm_register_oob_data_callback": "0x00021fa9",
+ "sm_request_pairing": "0x00021fb5",
+ "sm_send_security_request": "0x000229d3",
+ "sm_set_accepted_stk_generation_methods": "0x000229f9",
+ "sm_set_authentication_requirements": "0x00022a05",
+ "sm_set_encryption_key_size_range": "0x00022a11",
+ "sscanf_bd_addr": "0x00022de1",
+ "sysSetPublicDeviceAddr": "0x00023159",
+ "uuid128_to_str": "0x0002375d",
+ "uuid_add_bluetooth_prefix": "0x000237b5",
+ "uuid_has_bluetooth_prefix": "0x000237d5",
+ "uxListRemove": "0x000237f1",
+ "uxQueueMessagesWaiting": "0x00023819",
+ "uxQueueMessagesWaitingFromISR": "0x00023841",
+ "uxQueueSpacesAvailable": "0x0002385d",
+ "uxTaskGetStackHighWaterMark": "0x00023889",
+ "uxTaskPriorityGet": "0x000238a9",
+ "uxTaskPriorityGetFromISR": "0x000238c5",
+ "vListInitialise": "0x00023977",
+ "vListInitialiseItem": "0x0002398d",
+ "vListInsert": "0x00023993",
+ "vListInsertEnd": "0x000239c3",
+ "vPortEndScheduler": "0x000239dd",
+ "vPortEnterCritical": "0x00023a09",
+ "vPortExitCritical": "0x00023a4d",
+ "vPortFree": "0x00023a81",
+ "vPortSuppressTicksAndSleep": "0x00023b15",
+ "vPortValidateInterruptPriority": "0x00023c1d",
+ "vQueueDelete": "0x00023c79",
+ "vQueueWaitForMessageRestricted": "0x00023ca5",
+ "vTaskDelay": "0x00023ced",
+ "vTaskInternalSetTimeOutState": "0x00023d39",
+ "vTaskMissedYield": "0x00023d49",
+ "vTaskPlaceOnEventList": "0x00023d55",
+ "vTaskPlaceOnEventListRestricted": "0x00023d8d",
+ "vTaskPriorityDisinheritAfterTimeout": "0x00023dcd",
+ "vTaskPrioritySet": "0x00023e79",
+ "vTaskResume": "0x00023f41",
+ "vTaskStartScheduler": "0x00023fc5",
+ "vTaskStepTick": "0x00024055",
+ "vTaskSuspend": "0x00024085",
+ "vTaskSuspendAll": "0x00024141",
+ "vTaskSwitchContext": "0x00024151",
+ "xPortStartScheduler": "0x000241f9",
+ "xQueueAddToSet": "0x000242bd",
+ "xQueueCreateCountingSemaphore": "0x000242e1",
+ "xQueueCreateCountingSemaphoreStatic": "0x0002431d",
+ "xQueueCreateMutex": "0x00024361",
+ "xQueueCreateMutexStatic": "0x00024377",
+ "xQueueCreateSet": "0x00024391",
+ "xQueueGenericCreate": "0x00024399",
+ "xQueueGenericCreateStatic": "0x000243e5",
+ "xQueueGenericReset": "0x0002444d",
+ "xQueueGenericSend": "0x000244d9",
+ "xQueueGenericSendFromISR": "0x00024645",
+ "xQueueGiveFromISR": "0x00024705",
+ "xQueueGiveMutexRecursive": "0x000247a9",
+ "xQueueIsQueueEmptyFromISR": "0x000247e9",
+ "xQueueIsQueueFullFromISR": "0x0002480d",
+ "xQueuePeek": "0x00024835",
+ "xQueuePeekFromISR": "0x0002495d",
+ "xQueueReceive": "0x000249c9",
+ "xQueueReceiveFromISR": "0x00024af5",
+ "xQueueRemoveFromSet": "0x00024b89",
+ "xQueueSelectFromSet": "0x00024bab",
+ "xQueueSelectFromSetFromISR": "0x00024bbd",
+ "xQueueSemaphoreTake": "0x00024bd1",
+ "xQueueTakeMutexRecursive": "0x00024d3d",
+ "xTaskCheckForTimeOut": "0x00024d81",
+ "xTaskCreate": "0x00024df1",
+ "xTaskCreateStatic": "0x00024e4d",
+ "xTaskGetCurrentTaskHandle": "0x00024ebd",
+ "xTaskGetSchedulerState": "0x00024ec9",
+ "xTaskGetTickCount": "0x00024ee5",
+ "xTaskGetTickCountFromISR": "0x00024ef1",
+ "xTaskIncrementTick": "0x00024f01",
+ "xTaskPriorityDisinherit": "0x00024fcd",
+ "xTaskPriorityInherit": "0x00025061",
+ "xTaskRemoveFromEventList": "0x000250f5",
+ "xTaskResumeAll": "0x00025175",
+ "xTaskResumeFromISR": "0x0002523d",
+ "xTimerCreate": "0x000252c9",
+ "xTimerCreateStatic": "0x000252fd",
+ "xTimerCreateTimerTask": "0x00025335",
+ "xTimerGenericCommand": "0x000253a1",
+ "xTimerGetExpiryTime": "0x00025411",
+ "xTimerGetTimerDaemonTaskHandle": "0x00025431"
}
\ No newline at end of file
diff --git a/bundles/exp/ING9187xx/meta.json b/bundles/exp/ING9187xx/meta.json
index a86a5afa1..feab86f1b 100644
--- a/bundles/exp/ING9187xx/meta.json
+++ b/bundles/exp/ING9187xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 31092
+ "size": 30084
},
"rom": {
"base": 16384,
- "size": 143512
+ "size": 143216
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/exp/ING9187xx/platform.bin b/bundles/exp/ING9187xx/platform.bin
index 7e8d950fe..071b609c6 100644
Binary files a/bundles/exp/ING9187xx/platform.bin and b/bundles/exp/ING9187xx/platform.bin differ
diff --git a/bundles/exp/ING9188xx/apis.json b/bundles/exp/ING9188xx/apis.json
index cf74ba3df..073c3e257 100644
--- a/bundles/exp/ING9188xx/apis.json
+++ b/bundles/exp/ING9188xx/apis.json
@@ -1,360 +1,357 @@
{
- "att_dispatch_client_can_send_now": "0x00005b19",
- "att_dispatch_client_request_can_send_now_event": "0x00005b1f",
- "att_dispatch_register_client": "0x00005b25",
- "att_dispatch_register_server": "0x00005b39",
- "att_dispatch_server_can_send_now": "0x00005b4d",
- "att_dispatch_server_request_can_send_now_event": "0x00005b53",
- "att_emit_general_event": "0x00005c05",
- "att_server_can_send_packet_now": "0x00006319",
- "att_server_deferred_read_response": "0x0000631d",
- "att_server_get_mtu": "0x00006335",
- "att_server_indicate": "0x000063ad",
- "att_server_init": "0x00006431",
- "att_server_notify": "0x0000646d",
- "att_server_register_packet_handler": "0x00006585",
- "att_server_request_can_send_now_event": "0x00006591",
- "att_set_db": "0x000065ad",
- "att_set_read_callback": "0x000065c1",
- "att_set_write_callback": "0x000065cd",
- "bd_addr_cmp": "0x0000673d",
- "bd_addr_copy": "0x00006743",
- "bd_addr_to_str": "0x0000674d",
- "big_endian_read_16": "0x00006785",
- "big_endian_read_32": "0x0000678d",
- "big_endian_store_16": "0x000067a1",
- "big_endian_store_32": "0x000067ad",
- "btstack_config": "0x00006901",
- "btstack_memory_pool_create": "0x00006a3f",
- "btstack_memory_pool_free": "0x00006a69",
- "btstack_memory_pool_get": "0x00006ac9",
- "btstack_push_user_msg": "0x00006b31",
- "btstack_push_user_runnable": "0x00006b3d",
- "char_for_nibble": "0x00006dc5",
- "eTaskConfirmSleepModeStatus": "0x00007095",
- "gap_add_dev_to_periodic_list": "0x00007725",
- "gap_add_whitelist": "0x0000773d",
- "gap_aes_encrypt": "0x00007751",
- "gap_clear_white_lists": "0x00007795",
- "gap_clr_adv_set": "0x000077a5",
- "gap_clr_periodic_adv_list": "0x000077b5",
- "gap_create_connection_cancel": "0x000077c5",
- "gap_default_periodic_adv_sync_transfer_param": "0x000077d5",
- "gap_disconnect": "0x000077ed",
- "gap_disconnect_all": "0x00007819",
- "gap_ext_create_connection": "0x00007859",
- "gap_get_connection_parameter_range": "0x00007969",
- "gap_le_read_channel_map": "0x000079a5",
- "gap_periodic_adv_create_sync": "0x00007a19",
- "gap_periodic_adv_create_sync_cancel": "0x00007a3d",
- "gap_periodic_adv_set_info_transfer": "0x00007a4d",
- "gap_periodic_adv_sync_transfer": "0x00007a65",
- "gap_periodic_adv_sync_transfer_param": "0x00007a7d",
- "gap_periodic_adv_term_sync": "0x00007a99",
- "gap_read_antenna_info": "0x00007b2d",
- "gap_read_local_tx_power_level": "0x00007b4d",
- "gap_read_periodic_adv_list_size": "0x00007b61",
- "gap_read_phy": "0x00007b71",
- "gap_read_remote_tx_power_level": "0x00007b85",
- "gap_read_remote_used_features": "0x00007b99",
- "gap_read_remote_version": "0x00007bad",
- "gap_read_rssi": "0x00007bc1",
- "gap_remove_whitelist": "0x00007bd5",
- "gap_rmv_adv_set": "0x00007c59",
- "gap_rmv_dev_from_periodic_list": "0x00007c6d",
- "gap_rx_test_v2": "0x00007c85",
- "gap_rx_test_v3": "0x00007c9d",
- "gap_set_adv_set_random_addr": "0x00007ced",
- "gap_set_connection_cte_request_enable": "0x00007d39",
- "gap_set_connection_cte_response_enable": "0x00007d55",
- "gap_set_connection_cte_rx_param": "0x00007d69",
- "gap_set_connection_cte_tx_param": "0x00007dc5",
- "gap_set_connection_parameter_range": "0x00007e19",
- "gap_set_connectionless_cte_tx_enable": "0x00007e31",
- "gap_set_connectionless_cte_tx_param": "0x00007e45",
- "gap_set_connectionless_iq_sampling_enable": "0x00007ea5",
- "gap_set_data_length": "0x00007f09",
- "gap_set_def_phy": "0x00007f25",
- "gap_set_default_subrate": "0x00007f3d",
- "gap_set_ext_adv_data": "0x00007f59",
- "gap_set_ext_adv_enable": "0x00007f71",
- "gap_set_ext_adv_para": "0x00007fed",
- "gap_set_ext_scan_enable": "0x000080cd",
- "gap_set_ext_scan_para": "0x000080e5",
- "gap_set_ext_scan_response_data": "0x0000818d",
- "gap_set_host_channel_classification": "0x000081a5",
- "gap_set_path_loss_reporting_enable": "0x000081b9",
- "gap_set_path_loss_reporting_param": "0x000081cd",
- "gap_set_periodic_adv_data": "0x000081ed",
- "gap_set_periodic_adv_enable": "0x00008261",
- "gap_set_periodic_adv_para": "0x00008275",
- "gap_set_periodic_adv_rx_enable": "0x0000828d",
- "gap_set_phy": "0x000082a1",
- "gap_set_random_device_address": "0x000082bd",
- "gap_set_tx_power_reporting_enable": "0x000082dd",
- "gap_start_ccm": "0x00008305",
- "gap_subrate_request": "0x00008339",
- "gap_test_end": "0x00008359",
- "gap_tx_test_v2": "0x00008369",
- "gap_tx_test_v4": "0x00008381",
- "gap_update_connection_parameters": "0x000083a9",
- "gap_vendor_tx_continuous_wave": "0x000083ed",
- "gatt_client_cancel_write": "0x00008915",
- "gatt_client_discover_characteristic_descriptors": "0x0000893b",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0000897b",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000089cb",
- "gatt_client_discover_characteristics_for_service": "0x00008a1b",
- "gatt_client_discover_primary_services": "0x00008a51",
- "gatt_client_discover_primary_services_by_uuid128": "0x00008a83",
- "gatt_client_discover_primary_services_by_uuid16": "0x00008ac7",
- "gatt_client_execute_write": "0x00008b03",
- "gatt_client_find_included_services_for_service": "0x00008b29",
- "gatt_client_get_mtu": "0x00008b57",
- "gatt_client_is_ready": "0x00008bf9",
- "gatt_client_listen_for_characteristic_value_updates": "0x00008c0f",
- "gatt_client_prepare_write": "0x00008c31",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008c6d",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008c97",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008c9d",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008ccb",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008cd1",
- "gatt_client_read_multiple_characteristic_values": "0x00008cff",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008d2f",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008d5d",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008da9",
- "gatt_client_register_handler": "0x00008df5",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x00008e01",
- "gatt_client_signed_write_without_response": "0x00009231",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x000092f5",
- "gatt_client_write_client_characteristic_configuration": "0x0000932f",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00009381",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00009391",
- "gatt_client_write_long_value_of_characteristic": "0x000093cd",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x000093dd",
- "gatt_client_write_value_of_characteristic": "0x00009419",
- "gatt_client_write_value_of_characteristic_without_response": "0x0000944f",
- "hci_add_event_handler": "0x0000a9f5",
- "hci_power_control": "0x0000b1fd",
- "hci_register_acl_packet_handler": "0x0000b3b1",
- "kv_commit": "0x0000b925",
- "kv_get": "0x0000b97d",
- "kv_init": "0x0000b995",
- "kv_put": "0x0000b9fd",
- "kv_remove": "0x0000ba75",
- "kv_remove_all": "0x0000bab1",
- "kv_value_modified": "0x0000baf5",
- "kv_visit": "0x0000baf9",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000bbb9",
- "l2cap_can_send_packet_now": "0x0000bbbd",
- "l2cap_create_channel": "0x0000bd75",
- "l2cap_disconnect": "0x0000bead",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000c0d5",
- "l2cap_init": "0x0000c4cd",
- "l2cap_le_send_flow_control_credit": "0x0000c50d",
- "l2cap_max_le_mtu": "0x0000c7c9",
- "l2cap_max_mtu": "0x0000c7cd",
- "l2cap_register_fixed_channel": "0x0000c8d9",
- "l2cap_register_packet_handler": "0x0000c8f5",
- "l2cap_register_service": "0x0000c901",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c9e5",
- "l2cap_request_can_send_now_event": "0x0000ca09",
- "l2cap_request_connection_parameter_update": "0x0000ca23",
- "l2cap_send": "0x0000cdbd",
- "l2cap_send_connectionless": "0x0000ce35",
- "l2cap_send_connectionless3": "0x0000cec5",
- "l2cap_send_echo_request": "0x0000cf5d",
- "l2cap_unregister_service": "0x0000d019",
- "le_device_db_add": "0x0000d071",
- "le_device_db_find": "0x0000d145",
- "le_device_db_from_key": "0x0000d171",
- "le_device_db_iter_cur": "0x0000d179",
- "le_device_db_iter_cur_key": "0x0000d17d",
- "le_device_db_iter_init": "0x0000d181",
- "le_device_db_iter_next": "0x0000d189",
- "le_device_db_remove_key": "0x0000d1af",
- "ll_ackable_packet_alloc": "0x0000d1db",
- "ll_ackable_packet_get_status": "0x0000d2e3",
- "ll_ackable_packet_run": "0x0000d355",
- "ll_ackable_packet_set_tx_data": "0x0000d3fd",
- "ll_adjust_conn_peer_tx_power": "0x0000d419",
- "ll_dhkey_generated": "0x0000d661",
- "ll_free": "0x0000d691",
- "ll_hint_on_ce_len": "0x0000d69d",
- "ll_install_ecc_engine": "0x0000d6d5",
- "ll_legacy_adv_set_interval": "0x0000d6e1",
- "ll_malloc": "0x0000d6f1",
- "ll_p256_key_pair_generated": "0x0000d6f9",
- "ll_raw_packet_alloc": "0x0000d8a9",
- "ll_raw_packet_free": "0x0000d97d",
- "ll_raw_packet_get_bare_rx_data": "0x0000d9a7",
- "ll_raw_packet_get_iq_samples": "0x0000da6d",
- "ll_raw_packet_get_rx_data": "0x0000db07",
- "ll_raw_packet_recv": "0x0000dba9",
- "ll_raw_packet_send": "0x0000dc65",
- "ll_raw_packet_set_bare_data": "0x0000dd4d",
- "ll_raw_packet_set_bare_mode": "0x0000dd8b",
- "ll_raw_packet_set_fake_cte_info": "0x0000de91",
- "ll_raw_packet_set_param": "0x0000deb3",
- "ll_raw_packet_set_rx_cte": "0x0000df11",
- "ll_raw_packet_set_tx_cte": "0x0000dfa7",
- "ll_raw_packet_set_tx_data": "0x0000dfe5",
- "ll_scan_set_fixed_channel": "0x0000e0a1",
- "ll_scanner_enable_iq_sampling": "0x0000e0ad",
- "ll_set_adv_access_address": "0x0000e25d",
- "ll_set_adv_coded_scheme": "0x0000e269",
- "ll_set_conn_coded_scheme": "0x0000e299",
- "ll_set_conn_interval_unit": "0x0000e2c5",
- "ll_set_conn_latency": "0x0000e2d1",
- "ll_set_conn_tx_power": "0x0000e301",
- "ll_set_def_antenna": "0x0000e33d",
- "ll_set_initiating_coded_scheme": "0x0000e359",
- "ll_set_max_conn_number": "0x0000e365",
- "ll_set_tx_power_range": "0x0000e401",
- "nibble_for_char": "0x0002086d",
- "platform_32k_rc_auto_tune": "0x0002091d",
- "platform_32k_rc_tune": "0x00020999",
- "platform_calibrate_32k": "0x000209ad",
- "platform_config": "0x000209b1",
- "platform_get_current_task": "0x00020a8d",
- "platform_get_gen_os_driver": "0x00020ab1",
- "platform_get_heap_status": "0x00020ab9",
- "platform_get_task_handle": "0x00020ad1",
- "platform_get_us_time": "0x00020af1",
- "platform_get_version": "0x00020af5",
- "platform_hrng": "0x00020afd",
- "platform_install_isr_stack": "0x00020b05",
- "platform_install_task_stack": "0x00020b11",
- "platform_patch_rf_init_data": "0x00020b49",
- "platform_printf": "0x00020b55",
- "platform_raise_assertion": "0x00020b69",
- "platform_rand": "0x00020b7d",
- "platform_read_info": "0x00020b81",
- "platform_read_persistent_reg": "0x00020bb1",
- "platform_reset": "0x00020bc1",
- "platform_set_evt_callback": "0x00020be5",
- "platform_set_irq_callback": "0x00020bf9",
- "platform_set_rf_clk_source": "0x00020c31",
- "platform_set_rf_init_data": "0x00020c3d",
- "platform_set_rf_power_mapping": "0x00020c49",
- "platform_set_timer": "0x00020c55",
- "platform_shutdown": "0x00020c59",
- "platform_switch_app": "0x00020c5d",
- "platform_trace_raw": "0x00020c89",
- "platform_write_persistent_reg": "0x00020ca1",
- "printf_hexdump": "0x00020e55",
- "pvPortMalloc": "0x00021965",
- "pvTaskIncrementMutexHeldCount": "0x00021a4d",
- "pvTimerGetTimerID": "0x00021a65",
- "pxPortInitialiseStack": "0x00021a91",
- "reverse_128": "0x00021c71",
- "reverse_24": "0x00021c77",
- "reverse_48": "0x00021c7d",
- "reverse_56": "0x00021c83",
- "reverse_64": "0x00021c89",
- "reverse_bd_addr": "0x00021c8f",
- "reverse_bytes": "0x00021c95",
- "sm_add_event_handler": "0x00021f75",
- "sm_address_resolution_lookup": "0x000220cd",
- "sm_authenticated": "0x00022425",
- "sm_authorization_decline": "0x00022433",
- "sm_authorization_grant": "0x00022453",
- "sm_authorization_state": "0x00022473",
- "sm_bonding_decline": "0x0002248d",
- "sm_config": "0x000228ad",
- "sm_config_conn": "0x000228c5",
- "sm_encryption_key_size": "0x00022a7b",
- "sm_just_works_confirm": "0x00022fb5",
- "sm_le_device_key": "0x000232f1",
- "sm_passkey_input": "0x00023387",
- "sm_private_random_address_generation_get": "0x00023735",
- "sm_private_random_address_generation_get_mode": "0x0002373d",
- "sm_private_random_address_generation_set_mode": "0x00023749",
- "sm_private_random_address_generation_set_update_period": "0x00023771",
- "sm_register_oob_data_callback": "0x000238ad",
- "sm_request_pairing": "0x000238b9",
- "sm_send_security_request": "0x000242d7",
- "sm_set_accepted_stk_generation_methods": "0x000242fd",
- "sm_set_authentication_requirements": "0x00024309",
- "sm_set_encryption_key_size_range": "0x00024315",
- "sscanf_bd_addr": "0x000246e5",
- "sysSetPublicDeviceAddr": "0x00024a5d",
- "uuid128_to_str": "0x000251f5",
- "uuid_add_bluetooth_prefix": "0x0002524d",
- "uuid_has_bluetooth_prefix": "0x0002526d",
- "uxListRemove": "0x00025289",
- "uxQueueMessagesWaiting": "0x000252b1",
- "uxQueueMessagesWaitingFromISR": "0x000252d9",
- "uxQueueSpacesAvailable": "0x000252f5",
- "uxTaskGetStackHighWaterMark": "0x00025321",
- "uxTaskPriorityGet": "0x00025341",
- "uxTaskPriorityGetFromISR": "0x0002535d",
- "vListInitialise": "0x0002540f",
- "vListInitialiseItem": "0x00025425",
- "vListInsert": "0x0002542b",
- "vListInsertEnd": "0x0002545b",
- "vPortEndScheduler": "0x00025475",
- "vPortEnterCritical": "0x000254a1",
- "vPortExitCritical": "0x000254e9",
- "vPortFree": "0x0002551d",
- "vPortSuppressTicksAndSleep": "0x000255b1",
- "vPortValidateInterruptPriority": "0x000256b9",
- "vQueueDelete": "0x00025715",
- "vQueueWaitForMessageRestricted": "0x00025741",
- "vTaskDelay": "0x00025789",
- "vTaskInternalSetTimeOutState": "0x000257d5",
- "vTaskMissedYield": "0x000257e5",
- "vTaskPlaceOnEventList": "0x000257f1",
- "vTaskPlaceOnEventListRestricted": "0x00025829",
- "vTaskPriorityDisinheritAfterTimeout": "0x00025869",
- "vTaskPrioritySet": "0x00025915",
- "vTaskResume": "0x000259dd",
- "vTaskStartScheduler": "0x00025a61",
- "vTaskStepTick": "0x00025af1",
- "vTaskSuspend": "0x00025b21",
- "vTaskSuspendAll": "0x00025bdd",
- "vTaskSwitchContext": "0x00025bed",
- "xPortStartScheduler": "0x00025c95",
- "xQueueAddToSet": "0x00025d59",
- "xQueueCreateCountingSemaphore": "0x00025d7d",
- "xQueueCreateCountingSemaphoreStatic": "0x00025db9",
- "xQueueCreateMutex": "0x00025dfd",
- "xQueueCreateMutexStatic": "0x00025e13",
- "xQueueCreateSet": "0x00025e2d",
- "xQueueGenericCreate": "0x00025e35",
- "xQueueGenericCreateStatic": "0x00025e81",
- "xQueueGenericReset": "0x00025ee9",
- "xQueueGenericSend": "0x00025f75",
- "xQueueGenericSendFromISR": "0x000260e1",
- "xQueueGiveFromISR": "0x000261a1",
- "xQueueGiveMutexRecursive": "0x00026245",
- "xQueueIsQueueEmptyFromISR": "0x00026285",
- "xQueueIsQueueFullFromISR": "0x000262a9",
- "xQueuePeek": "0x000262d1",
- "xQueuePeekFromISR": "0x000263f9",
- "xQueueReceive": "0x00026465",
- "xQueueReceiveFromISR": "0x00026591",
- "xQueueRemoveFromSet": "0x00026625",
- "xQueueSelectFromSet": "0x00026647",
- "xQueueSelectFromSetFromISR": "0x00026659",
- "xQueueSemaphoreTake": "0x0002666d",
- "xQueueTakeMutexRecursive": "0x000267d9",
- "xTaskCheckForTimeOut": "0x0002681d",
- "xTaskCreate": "0x0002688d",
- "xTaskCreateStatic": "0x000268e9",
- "xTaskGetCurrentTaskHandle": "0x00026959",
- "xTaskGetSchedulerState": "0x00026965",
- "xTaskGetTickCount": "0x00026981",
- "xTaskGetTickCountFromISR": "0x0002698d",
- "xTaskIncrementTick": "0x0002699d",
- "xTaskPriorityDisinherit": "0x00026a69",
- "xTaskPriorityInherit": "0x00026afd",
- "xTaskRemoveFromEventList": "0x00026b91",
- "xTaskResumeAll": "0x00026c11",
- "xTaskResumeFromISR": "0x00026cd9",
- "xTimerCreate": "0x00026d65",
- "xTimerCreateStatic": "0x00026d99",
- "xTimerCreateTimerTask": "0x00026dd1",
- "xTimerGenericCommand": "0x00026e3d",
- "xTimerGetExpiryTime": "0x00026ead",
- "xTimerGetTimerDaemonTaskHandle": "0x00026ecd"
+ "att_dispatch_client_can_send_now": "0x0000587d",
+ "att_dispatch_client_request_can_send_now_event": "0x00005883",
+ "att_dispatch_register_client": "0x00005889",
+ "att_dispatch_register_server": "0x0000589d",
+ "att_dispatch_server_can_send_now": "0x000058b1",
+ "att_dispatch_server_request_can_send_now_event": "0x000058b7",
+ "att_emit_general_event": "0x00005969",
+ "att_server_can_send_packet_now": "0x0000607d",
+ "att_server_deferred_read_response": "0x00006081",
+ "att_server_get_mtu": "0x00006099",
+ "att_server_indicate": "0x00006111",
+ "att_server_init": "0x00006195",
+ "att_server_notify": "0x000061d1",
+ "att_server_register_packet_handler": "0x000062e9",
+ "att_server_request_can_send_now_event": "0x000062f5",
+ "att_set_db": "0x00006311",
+ "att_set_read_callback": "0x00006325",
+ "att_set_write_callback": "0x00006331",
+ "bd_addr_cmp": "0x000064a1",
+ "bd_addr_copy": "0x000064a7",
+ "bd_addr_to_str": "0x000064b1",
+ "big_endian_read_16": "0x000064e9",
+ "big_endian_read_32": "0x000064f1",
+ "big_endian_store_16": "0x00006505",
+ "big_endian_store_32": "0x00006511",
+ "btstack_config": "0x00006665",
+ "btstack_memory_pool_create": "0x000067a3",
+ "btstack_memory_pool_free": "0x000067cd",
+ "btstack_memory_pool_get": "0x0000682d",
+ "btstack_push_user_msg": "0x00006895",
+ "btstack_push_user_runnable": "0x000068a1",
+ "char_for_nibble": "0x00006b29",
+ "eTaskConfirmSleepModeStatus": "0x00006df9",
+ "gap_add_dev_to_periodic_list": "0x00007489",
+ "gap_add_whitelist": "0x000074a1",
+ "gap_aes_encrypt": "0x000074b5",
+ "gap_clear_white_lists": "0x000074f9",
+ "gap_clr_adv_set": "0x00007509",
+ "gap_clr_periodic_adv_list": "0x00007519",
+ "gap_create_connection_cancel": "0x00007529",
+ "gap_default_periodic_adv_sync_transfer_param": "0x00007539",
+ "gap_disconnect": "0x00007551",
+ "gap_disconnect_all": "0x0000757d",
+ "gap_ext_create_connection": "0x000075bd",
+ "gap_get_connection_parameter_range": "0x000076cd",
+ "gap_le_read_channel_map": "0x00007709",
+ "gap_periodic_adv_create_sync": "0x0000777d",
+ "gap_periodic_adv_create_sync_cancel": "0x000077a1",
+ "gap_periodic_adv_set_info_transfer": "0x000077b1",
+ "gap_periodic_adv_sync_transfer": "0x000077c9",
+ "gap_periodic_adv_sync_transfer_param": "0x000077e1",
+ "gap_periodic_adv_term_sync": "0x000077fd",
+ "gap_read_antenna_info": "0x00007891",
+ "gap_read_local_tx_power_level": "0x000078b1",
+ "gap_read_periodic_adv_list_size": "0x000078c5",
+ "gap_read_phy": "0x000078d5",
+ "gap_read_remote_tx_power_level": "0x000078e9",
+ "gap_read_remote_used_features": "0x000078fd",
+ "gap_read_remote_version": "0x00007911",
+ "gap_read_rssi": "0x00007925",
+ "gap_remove_whitelist": "0x00007939",
+ "gap_rmv_adv_set": "0x000079bd",
+ "gap_rmv_dev_from_periodic_list": "0x000079d1",
+ "gap_rx_test_v2": "0x000079e9",
+ "gap_rx_test_v3": "0x00007a01",
+ "gap_set_adv_set_random_addr": "0x00007a51",
+ "gap_set_connection_cte_request_enable": "0x00007a9d",
+ "gap_set_connection_cte_response_enable": "0x00007ab9",
+ "gap_set_connection_cte_rx_param": "0x00007acd",
+ "gap_set_connection_cte_tx_param": "0x00007b29",
+ "gap_set_connection_parameter_range": "0x00007b7d",
+ "gap_set_connectionless_cte_tx_enable": "0x00007b95",
+ "gap_set_connectionless_cte_tx_param": "0x00007ba9",
+ "gap_set_connectionless_iq_sampling_enable": "0x00007c09",
+ "gap_set_data_length": "0x00007c6d",
+ "gap_set_def_phy": "0x00007c89",
+ "gap_set_default_subrate": "0x00007ca1",
+ "gap_set_ext_adv_data": "0x00007cbd",
+ "gap_set_ext_adv_enable": "0x00007cd5",
+ "gap_set_ext_adv_para": "0x00007d51",
+ "gap_set_ext_scan_enable": "0x00007e31",
+ "gap_set_ext_scan_para": "0x00007e49",
+ "gap_set_ext_scan_response_data": "0x00007ef1",
+ "gap_set_host_channel_classification": "0x00007f09",
+ "gap_set_path_loss_reporting_enable": "0x00007f1d",
+ "gap_set_path_loss_reporting_param": "0x00007f31",
+ "gap_set_periodic_adv_data": "0x00007f51",
+ "gap_set_periodic_adv_enable": "0x00007fc5",
+ "gap_set_periodic_adv_para": "0x00007fd9",
+ "gap_set_periodic_adv_rx_enable": "0x00007ff1",
+ "gap_set_phy": "0x00008005",
+ "gap_set_random_device_address": "0x00008021",
+ "gap_set_tx_power_reporting_enable": "0x00008041",
+ "gap_start_ccm": "0x00008069",
+ "gap_subrate_request": "0x0000809d",
+ "gap_test_end": "0x000080bd",
+ "gap_tx_test_v2": "0x000080cd",
+ "gap_tx_test_v4": "0x000080e5",
+ "gap_update_connection_parameters": "0x0000810d",
+ "gap_vendor_tx_continuous_wave": "0x00008151",
+ "gatt_client_cancel_write": "0x00008679",
+ "gatt_client_discover_characteristic_descriptors": "0x0000869f",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000086df",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0000872f",
+ "gatt_client_discover_characteristics_for_service": "0x0000877f",
+ "gatt_client_discover_primary_services": "0x000087b5",
+ "gatt_client_discover_primary_services_by_uuid128": "0x000087e7",
+ "gatt_client_discover_primary_services_by_uuid16": "0x0000882b",
+ "gatt_client_execute_write": "0x00008867",
+ "gatt_client_find_included_services_for_service": "0x0000888d",
+ "gatt_client_get_mtu": "0x000088bb",
+ "gatt_client_is_ready": "0x0000895d",
+ "gatt_client_listen_for_characteristic_value_updates": "0x00008973",
+ "gatt_client_prepare_write": "0x00008995",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x000089d1",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000089fb",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008a01",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008a2f",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008a35",
+ "gatt_client_read_multiple_characteristic_values": "0x00008a63",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008a93",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008ac1",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008b0d",
+ "gatt_client_register_handler": "0x00008b59",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x00008b65",
+ "gatt_client_signed_write_without_response": "0x00008f95",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00009059",
+ "gatt_client_write_client_characteristic_configuration": "0x00009093",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x000090e5",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000090f5",
+ "gatt_client_write_long_value_of_characteristic": "0x00009131",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00009141",
+ "gatt_client_write_value_of_characteristic": "0x0000917d",
+ "gatt_client_write_value_of_characteristic_without_response": "0x000091b3",
+ "hci_add_event_handler": "0x0000a759",
+ "hci_power_control": "0x0000af61",
+ "hci_register_acl_packet_handler": "0x0000b115",
+ "kv_commit": "0x0000b689",
+ "kv_get": "0x0000b6e1",
+ "kv_init": "0x0000b6f9",
+ "kv_put": "0x0000b761",
+ "kv_remove": "0x0000b7d9",
+ "kv_remove_all": "0x0000b815",
+ "kv_value_modified": "0x0000b859",
+ "kv_visit": "0x0000b85d",
+ "l2cap_add_event_handler": "0x0000b911",
+ "l2cap_can_send_packet_now": "0x0000b921",
+ "l2cap_create_le_credit_based_connection_request": "0x0000badd",
+ "l2cap_credit_based_send": "0x0000bc21",
+ "l2cap_credit_based_send_continue": "0x0000bc4d",
+ "l2cap_disconnect": "0x0000bcc9",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000bf19",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000bf35",
+ "l2cap_init": "0x0000c309",
+ "l2cap_le_send_flow_control_credit": "0x0000c3ff",
+ "l2cap_max_le_mtu": "0x0000c709",
+ "l2cap_register_packet_handler": "0x0000c831",
+ "l2cap_register_service": "0x0000c83d",
+ "l2cap_request_can_send_now_event": "0x0000c94d",
+ "l2cap_request_connection_parameter_update": "0x0000c967",
+ "l2cap_send_echo_request": "0x0000ce39",
+ "l2cap_unregister_service": "0x0000cef9",
+ "le_device_db_add": "0x0000cf51",
+ "le_device_db_find": "0x0000d025",
+ "le_device_db_from_key": "0x0000d051",
+ "le_device_db_iter_cur": "0x0000d059",
+ "le_device_db_iter_cur_key": "0x0000d05d",
+ "le_device_db_iter_init": "0x0000d061",
+ "le_device_db_iter_next": "0x0000d069",
+ "le_device_db_remove_key": "0x0000d08f",
+ "ll_ackable_packet_alloc": "0x0000d0bb",
+ "ll_ackable_packet_get_status": "0x0000d1c3",
+ "ll_ackable_packet_run": "0x0000d235",
+ "ll_ackable_packet_set_tx_data": "0x0000d2dd",
+ "ll_adjust_conn_peer_tx_power": "0x0000d2f9",
+ "ll_dhkey_generated": "0x0000d541",
+ "ll_free": "0x0000d571",
+ "ll_hint_on_ce_len": "0x0000d57d",
+ "ll_install_ecc_engine": "0x0000d5b5",
+ "ll_legacy_adv_set_interval": "0x0000d5c1",
+ "ll_malloc": "0x0000d5d1",
+ "ll_p256_key_pair_generated": "0x0000d5d9",
+ "ll_raw_packet_alloc": "0x0000d789",
+ "ll_raw_packet_free": "0x0000d85d",
+ "ll_raw_packet_get_bare_rx_data": "0x0000d887",
+ "ll_raw_packet_get_iq_samples": "0x0000d94d",
+ "ll_raw_packet_get_rx_data": "0x0000d9e7",
+ "ll_raw_packet_recv": "0x0000da89",
+ "ll_raw_packet_send": "0x0000db45",
+ "ll_raw_packet_set_bare_data": "0x0000dc2d",
+ "ll_raw_packet_set_bare_mode": "0x0000dc6b",
+ "ll_raw_packet_set_fake_cte_info": "0x0000dd71",
+ "ll_raw_packet_set_param": "0x0000dd93",
+ "ll_raw_packet_set_rx_cte": "0x0000ddf1",
+ "ll_raw_packet_set_tx_cte": "0x0000de87",
+ "ll_raw_packet_set_tx_data": "0x0000dec5",
+ "ll_scan_set_fixed_channel": "0x0000df81",
+ "ll_scanner_enable_iq_sampling": "0x0000df8d",
+ "ll_set_adv_access_address": "0x0000e13d",
+ "ll_set_adv_coded_scheme": "0x0000e149",
+ "ll_set_conn_coded_scheme": "0x0000e179",
+ "ll_set_conn_interval_unit": "0x0000e1a5",
+ "ll_set_conn_latency": "0x0000e1b1",
+ "ll_set_conn_tx_power": "0x0000e1e1",
+ "ll_set_def_antenna": "0x0000e21d",
+ "ll_set_initiating_coded_scheme": "0x0000e239",
+ "ll_set_max_conn_number": "0x0000e245",
+ "ll_set_tx_power_range": "0x0000e2e1",
+ "nibble_for_char": "0x00020751",
+ "platform_32k_rc_auto_tune": "0x00020801",
+ "platform_32k_rc_tune": "0x0002087d",
+ "platform_calibrate_32k": "0x00020891",
+ "platform_config": "0x00020895",
+ "platform_get_current_task": "0x00020971",
+ "platform_get_gen_os_driver": "0x00020995",
+ "platform_get_heap_status": "0x0002099d",
+ "platform_get_task_handle": "0x000209b5",
+ "platform_get_us_time": "0x000209d5",
+ "platform_get_version": "0x000209d9",
+ "platform_hrng": "0x000209e1",
+ "platform_install_isr_stack": "0x000209e9",
+ "platform_install_task_stack": "0x000209f5",
+ "platform_patch_rf_init_data": "0x00020a2d",
+ "platform_printf": "0x00020a39",
+ "platform_raise_assertion": "0x00020a4d",
+ "platform_rand": "0x00020a61",
+ "platform_read_info": "0x00020a65",
+ "platform_read_persistent_reg": "0x00020a95",
+ "platform_reset": "0x00020aa5",
+ "platform_set_evt_callback": "0x00020ac9",
+ "platform_set_irq_callback": "0x00020add",
+ "platform_set_rf_clk_source": "0x00020b15",
+ "platform_set_rf_init_data": "0x00020b21",
+ "platform_set_rf_power_mapping": "0x00020b2d",
+ "platform_set_timer": "0x00020b39",
+ "platform_shutdown": "0x00020b3d",
+ "platform_switch_app": "0x00020b41",
+ "platform_trace_raw": "0x00020b6d",
+ "platform_write_persistent_reg": "0x00020b85",
+ "printf_hexdump": "0x00020d39",
+ "pvPortMalloc": "0x00021849",
+ "pvTaskIncrementMutexHeldCount": "0x00021931",
+ "pvTimerGetTimerID": "0x00021949",
+ "pxPortInitialiseStack": "0x00021975",
+ "reverse_128": "0x00021b55",
+ "reverse_24": "0x00021b5b",
+ "reverse_48": "0x00021b61",
+ "reverse_56": "0x00021b67",
+ "reverse_64": "0x00021b6d",
+ "reverse_bd_addr": "0x00021b73",
+ "reverse_bytes": "0x00021b79",
+ "sm_add_event_handler": "0x00021e59",
+ "sm_address_resolution_lookup": "0x00021fb1",
+ "sm_authenticated": "0x00022309",
+ "sm_authorization_decline": "0x00022317",
+ "sm_authorization_grant": "0x00022337",
+ "sm_authorization_state": "0x00022357",
+ "sm_bonding_decline": "0x00022371",
+ "sm_config": "0x00022791",
+ "sm_config_conn": "0x000227a9",
+ "sm_encryption_key_size": "0x0002295f",
+ "sm_just_works_confirm": "0x00022e99",
+ "sm_le_device_key": "0x000231d5",
+ "sm_passkey_input": "0x0002326b",
+ "sm_private_random_address_generation_get": "0x00023619",
+ "sm_private_random_address_generation_get_mode": "0x00023621",
+ "sm_private_random_address_generation_set_mode": "0x0002362d",
+ "sm_private_random_address_generation_set_update_period": "0x00023655",
+ "sm_register_oob_data_callback": "0x00023791",
+ "sm_request_pairing": "0x0002379d",
+ "sm_send_security_request": "0x000241bb",
+ "sm_set_accepted_stk_generation_methods": "0x000241e1",
+ "sm_set_authentication_requirements": "0x000241ed",
+ "sm_set_encryption_key_size_range": "0x000241f9",
+ "sscanf_bd_addr": "0x000245c9",
+ "sysSetPublicDeviceAddr": "0x00024941",
+ "uuid128_to_str": "0x000250d9",
+ "uuid_add_bluetooth_prefix": "0x00025131",
+ "uuid_has_bluetooth_prefix": "0x00025151",
+ "uxListRemove": "0x0002516d",
+ "uxQueueMessagesWaiting": "0x00025195",
+ "uxQueueMessagesWaitingFromISR": "0x000251bd",
+ "uxQueueSpacesAvailable": "0x000251d9",
+ "uxTaskGetStackHighWaterMark": "0x00025205",
+ "uxTaskPriorityGet": "0x00025225",
+ "uxTaskPriorityGetFromISR": "0x00025241",
+ "vListInitialise": "0x000252f3",
+ "vListInitialiseItem": "0x00025309",
+ "vListInsert": "0x0002530f",
+ "vListInsertEnd": "0x0002533f",
+ "vPortEndScheduler": "0x00025359",
+ "vPortEnterCritical": "0x00025385",
+ "vPortExitCritical": "0x000253c9",
+ "vPortFree": "0x000253fd",
+ "vPortSuppressTicksAndSleep": "0x00025491",
+ "vPortValidateInterruptPriority": "0x00025599",
+ "vQueueDelete": "0x000255f5",
+ "vQueueWaitForMessageRestricted": "0x00025621",
+ "vTaskDelay": "0x00025669",
+ "vTaskInternalSetTimeOutState": "0x000256b5",
+ "vTaskMissedYield": "0x000256c5",
+ "vTaskPlaceOnEventList": "0x000256d1",
+ "vTaskPlaceOnEventListRestricted": "0x00025709",
+ "vTaskPriorityDisinheritAfterTimeout": "0x00025749",
+ "vTaskPrioritySet": "0x000257f5",
+ "vTaskResume": "0x000258bd",
+ "vTaskStartScheduler": "0x00025941",
+ "vTaskStepTick": "0x000259d1",
+ "vTaskSuspend": "0x00025a01",
+ "vTaskSuspendAll": "0x00025abd",
+ "vTaskSwitchContext": "0x00025acd",
+ "xPortStartScheduler": "0x00025b75",
+ "xQueueAddToSet": "0x00025c39",
+ "xQueueCreateCountingSemaphore": "0x00025c5d",
+ "xQueueCreateCountingSemaphoreStatic": "0x00025c99",
+ "xQueueCreateMutex": "0x00025cdd",
+ "xQueueCreateMutexStatic": "0x00025cf3",
+ "xQueueCreateSet": "0x00025d0d",
+ "xQueueGenericCreate": "0x00025d15",
+ "xQueueGenericCreateStatic": "0x00025d61",
+ "xQueueGenericReset": "0x00025dc9",
+ "xQueueGenericSend": "0x00025e55",
+ "xQueueGenericSendFromISR": "0x00025fc1",
+ "xQueueGiveFromISR": "0x00026081",
+ "xQueueGiveMutexRecursive": "0x00026125",
+ "xQueueIsQueueEmptyFromISR": "0x00026165",
+ "xQueueIsQueueFullFromISR": "0x00026189",
+ "xQueuePeek": "0x000261b1",
+ "xQueuePeekFromISR": "0x000262d9",
+ "xQueueReceive": "0x00026345",
+ "xQueueReceiveFromISR": "0x00026471",
+ "xQueueRemoveFromSet": "0x00026505",
+ "xQueueSelectFromSet": "0x00026527",
+ "xQueueSelectFromSetFromISR": "0x00026539",
+ "xQueueSemaphoreTake": "0x0002654d",
+ "xQueueTakeMutexRecursive": "0x000266b9",
+ "xTaskCheckForTimeOut": "0x000266fd",
+ "xTaskCreate": "0x0002676d",
+ "xTaskCreateStatic": "0x000267c9",
+ "xTaskGetCurrentTaskHandle": "0x00026839",
+ "xTaskGetSchedulerState": "0x00026845",
+ "xTaskGetTickCount": "0x00026861",
+ "xTaskGetTickCountFromISR": "0x0002686d",
+ "xTaskIncrementTick": "0x0002687d",
+ "xTaskPriorityDisinherit": "0x00026949",
+ "xTaskPriorityInherit": "0x000269dd",
+ "xTaskRemoveFromEventList": "0x00026a71",
+ "xTaskResumeAll": "0x00026af1",
+ "xTaskResumeFromISR": "0x00026bb9",
+ "xTimerCreate": "0x00026c45",
+ "xTimerCreateStatic": "0x00026c79",
+ "xTimerCreateTimerTask": "0x00026cb1",
+ "xTimerGenericCommand": "0x00026d1d",
+ "xTimerGetExpiryTime": "0x00026d8d",
+ "xTimerGetTimerDaemonTaskHandle": "0x00026dad"
}
\ No newline at end of file
diff --git a/bundles/exp/ING9188xx/meta.json b/bundles/exp/ING9188xx/meta.json
index 14eca53a7..8fd008eec 100644
--- a/bundles/exp/ING9188xx/meta.json
+++ b/bundles/exp/ING9188xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 31092
+ "size": 30084
},
"rom": {
"base": 16384,
- "size": 150488
+ "size": 150192
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/exp/ING9188xx/platform.bin b/bundles/exp/ING9188xx/platform.bin
index 89f203499..c6bfa38db 100644
Binary files a/bundles/exp/ING9188xx/platform.bin and b/bundles/exp/ING9188xx/platform.bin differ
diff --git a/bundles/exp/inc/att_db.h b/bundles/exp/inc/att_db.h
index 70ec3efa3..3e656c769 100644
--- a/bundles/exp/inc/att_db.h
+++ b/bundles/exp/inc/att_db.h
@@ -3,7 +3,7 @@
* @brief API for ATT server
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -28,10 +28,10 @@ extern "C" {
* @ingroup bluetooth_host
* @{
*/
-// custom BTstack error codes
+// custom btstack error codes
#define ATT_ERROR_HCI_DISCONNECT_RECEIVED 0x1f
-// custom BTstack ATT error coders
+// custom btstack ATT error coders
#define ATT_ERROR_DATA_MISMATCH 0x7e
#define ATT_ERROR_TIMEOUT 0x7F
diff --git a/bundles/exp/inc/att_dispatch.h b/bundles/exp/inc/att_dispatch.h
index 60f62817b..9dd2608d1 100644
--- a/bundles/exp/inc/att_dispatch.h
+++ b/bundles/exp/inc/att_dispatch.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/exp/inc/btstack_defines.h b/bundles/exp/inc/btstack_defines.h
index c2ab8d11a..a8d08006c 100644
--- a/bundles/exp/inc/btstack_defines.h
+++ b/bundles/exp/inc/btstack_defines.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -53,10 +53,15 @@
#define L2CAP_SERVICE_ALREADY_REGISTERED 0x69
#define L2CAP_DATA_LEN_EXCEEDS_REMOTE_MTU 0x6A
+#define L2CAP_SERVICE_NOT_REGISTERED 0x6B
+#define L2CAP_CONNECTION_INSUFFICIENT_SECURITY 0x6C
-#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS 0x90
+#define ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS 0x90
#define ATT_HANDLE_VALUE_INDICATION_TIMEOUT 0x91
+// compatibility for typo
+#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS
+
#define GATT_CLIENT_NOT_CONNECTED 0x93
#define GATT_CLIENT_BUSY 0x94
#define GATT_CLIENT_IN_WRONG_STATE 0x95
@@ -88,22 +93,14 @@
// L2CAP EVENTS
/**
- * @format 1BH222222
- * @param status
- * @param address
- * @param handle
- * @param psm
- * @param local_cid
- * @param remote_cid
- * @param local_mtu
- * @param remote_mtu
- * @param flush_timeout
+ * @brief an L2CAP channel is opened
+ * @ref `l2cap_event_channel_opened_t`
*/
#define L2CAP_EVENT_CHANNEL_OPENED 0x70
/*
- * @format 2
- * @param local_cid
+ * @brief an L2CAP channel is closed
+ * @ref `l2cap_event_channel_closed_t`
*/
#define L2CAP_EVENT_CHANNEL_CLOSED 0x71
@@ -153,6 +150,24 @@
*/
#define L2CAP_EVENT_COMMAND_REJECT_RESPONSE 0x79
+/**
+ * @brief LE credit channel : an SDU (complete package) event
+ *
+ * Use `decode_l2cap_event(l2cap_event_complete_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_complete_sdu_t`
+*/
+#define L2CAP_EVENT_COMPLETED_SDU_PACKET 0x7A
+
+/**
+ * @brief LE credit channel : a fragment (K-frame) of an SDU event
+ *
+ * Use `decode_l2cap_event(l2cap_event_fragment_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_fragment_sdu_t`
+*/
+#define L2CAP_EVENT_FRAGMENT_SDU_PACKET 0x7B
+
/**
* @format H1
* @param handle
diff --git a/bundles/exp/inc/btstack_event.h b/bundles/exp/inc/btstack_event.h
index 4c488f787..294fb813b 100644
--- a/bundles/exp/inc/btstack_event.h
+++ b/bundles/exp/inc/btstack_event.h
@@ -4,7 +4,7 @@
*
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -783,6 +783,43 @@ static __INLINE uint8_t gap_event_dedicated_bonding_completed_get_status(const u
return *decode_event_offset(event, uint8_t, 2);
}
+typedef struct l2cap_event_complete_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ const uint8_t *payload; // payload of this SDU
+} l2cap_event_complete_sdu_t;
+
+typedef struct l2cap_event_channel_opened
+{
+ uint8_t status;
+ bd_addr_t peer_addr;
+ hci_con_handle_t conn_handle;
+ uint16_t psm;
+ uint16_t local_cid;
+ uint16_t peer_cid;
+ uint16_t local_mtu;
+ uint16_t peer_mtu;
+ uint16_t local_mps;
+ uint16_t peer_mps;
+ uint16_t flush_timeout;
+ uint16_t local_credits;
+ uint16_t peer_credits;
+} l2cap_event_channel_opened_t;
+
+typedef struct l2cap_event_channel_closed
+{
+ uint16_t local_cid;
+ uint8_t reason;
+} l2cap_event_channel_closed_t;
+
+typedef struct l2cap_event_fragment_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ uint16_t offset; // offset of this fragment within a SDU
+ uint16_t length; // length of this fragment within a SDU
+ const uint8_t *payload; // payload of this fragment
+} l2cap_event_fragment_sdu_t;
+
typedef struct event_command_complete_return_param_read_rssi
{
uint8_t status;
@@ -1226,7 +1263,9 @@ typedef enum btstack_l2cap_msg_def
#define decode_hci_event_disconn_complete(packet) decode_event_offset(packet, event_disconn_complete_t, 2)
#define decode_hci_event_vendor_ccm_complete(packet) decode_event_offset(packet, event_vendor_ccm_complete_t, 5)
-#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+
+#define decode_l2cap_event(packet, T) decode_event_offset(packet, T, 2)
/* API_END */
diff --git a/bundles/exp/inc/btstack_util.h b/bundles/exp/inc/btstack_util.h
index 3f7232fc4..5e6d0d7ef 100644
--- a/bundles/exp/inc/btstack_util.h
+++ b/bundles/exp/inc/btstack_util.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/exp/inc/gap.h b/bundles/exp/inc/gap.h
index 4e6602e81..ee2894c56 100644
--- a/bundles/exp/inc/gap.h
+++ b/bundles/exp/inc/gap.h
@@ -1366,7 +1366,7 @@ void hci_add_event_handler(btstack_packet_callback_registration_t * callback_han
void hci_register_acl_packet_handler(btstack_packet_handler_t handler);
/**
- * @brief Requests the change of BTstack power mode.
+ * @brief Requests the change of btstack power mode.
*
* @param mode 0:HCI_POWER_OFF ,1:HCI_POWER_ON , 2:HCI_POWER_SLEEP
*
diff --git a/bundles/exp/inc/gatt_client.h b/bundles/exp/inc/gatt_client.h
index 910cdf251..9a036f6f6 100644
--- a/bundles/exp/inc/gatt_client.h
+++ b/bundles/exp/inc/gatt_client.h
@@ -3,7 +3,7 @@
* Copyright Message
*
* INGCHIPS confidential and proprietary.
- * COPYRIGHT (c) 2018 by INGCHIPS
+ * COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
diff --git a/bundles/exp/inc/l2cap.h b/bundles/exp/inc/l2cap.h
index f464836dc..52b0efb79 100644
--- a/bundles/exp/inc/l2cap.h
+++ b/bundles/exp/inc/l2cap.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -22,27 +22,6 @@
extern "C" {
#endif
-void l2cap_register_fixed_channel(btstack_packet_handler_t packet_handler, uint16_t channel_id);
-int l2cap_can_send_fixed_channel_packet_now(hci_con_handle_t con_handle, uint16_t channel_id);
-void l2cap_request_can_send_fix_channel_now_event(hci_con_handle_t con_handle, uint16_t channel_id);
-int l2cap_send_connectionless(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len);
-int l2cap_send_connectionless3(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len,
- const uint8_t *data3, uint16_t data3_len);
-
-int l2cap_le_send_flow_control_credit(hci_con_handle_t con_handle,uint8_t id ,uint16_t cid,uint16_t credits);
-
-// PTS Testing
-int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t len);
-
-// Used by RFCOMM - similar to l2cap_can-send_packet_now but does not check if outgoing buffer is reserved
-// int l2cap_can_send_prepared_packet_now(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
-
-
/* API_START */
/**
@@ -51,69 +30,152 @@ int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t
void l2cap_init(void);
/**
- * @brief Registers packet handler for LE Connection Parameter Update events
+ * @brief add event handler with packet type `L2CAP_EVENT_PACKET`
+ *
+ * Note: Event code includes:
+ * * L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE
+ *
+ * @param[in] callback_handler the handler to be chained together
*/
-void l2cap_register_packet_handler(btstack_packet_handler_t handler);
+void l2cap_add_event_handler(btstack_packet_callback_registration_t *callback_handler);
/**
- * @brief Get max MTU for Classic connections based on btstack configuration
+ * @brief Registers packet handler for LE Connection Parameter Update related events
+ *
+ * Note: Packet type `HCI_EVENT_PACKET`. Event code includes:
+ * * L2CAP_EVENT_COMMAND_REJECT_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST
+ *
+ * @param[in] handler the callback function
*/
-uint16_t l2cap_max_mtu(void);
+void l2cap_register_packet_handler(btstack_packet_handler_t handler);
/**
* @brief Get max MTU for LE connections based on btstack configuration
+ *
+ * @return max LE MTU
*/
uint16_t l2cap_max_le_mtu(void);
-/**
- * @brief Creates L2CAP channel to the PSM of a remote device with baseband address. A new baseband connection will be initiated if necessary.
- * @param packet_handler
- * @param address
- * @param psm
- * @param mtu
- * @param local_cid
- * @param status
- */
-uint8_t l2cap_create_channel(btstack_packet_handler_t packet_handler, bd_addr_t address, uint16_t psm, uint16_t mtu, uint16_t * out_local_cid);
+#define l2cap_max_mtu l2cap_max_le_mtu
/**
* @brief Disconnects L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] reason reason (ignored)
*/
void l2cap_disconnect(uint16_t local_cid, uint8_t reason);
/**
* @brief Queries the maximal transfer unit (MTU) for L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @return peer MTU
*/
-uint16_t l2cap_get_remote_mtu_for_local_cid(uint16_t local_cid);
+uint16_t l2cap_get_peer_mtu_for_local_cid(uint16_t local_cid);
/**
- * @brief Sends L2CAP data packet to the channel with given identifier.
+ * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ *
+ * Note: Before creating a connection with a SPSM, the service must be registered.
+ *
+ * @param[in] packet_handler packet handler
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] mtu MTU (23..max, max = l2cap_max_le_mtu())
+ * when mtu = 0, max LE MTU is used
+ * @param[in] security_level security level
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_ALREADY_REGISTERED
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-int l2cap_send(uint16_t local_cid, uint8_t *data, uint16_t len);
+uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu,
+ gap_security_level_t security_level);
/**
- * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ * @brief Unregisters L2CAP service with given PSM.
+ *
+ * @param[in] psm SPSM (LE_PSM)
*/
-uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu, gap_security_level_t security_level);
+void l2cap_unregister_service(uint16_t psm);
/**
- * @brief Unregisters L2CAP service with given PSM. On embedded systems, use NULL for connection parameter.
+ * @brief Create a credit based connection for SPSM
+ *
+ *
+ * @param[in] credits initial credits assigned to peer
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] handle connection handle
+ * @param[out] local_cid identifier of the newly create channel
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_NOT_REGISTERED
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ * * L2CAP_CONNECTION_INSUFFICIENT_SECURITY
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-void l2cap_unregister_service(uint16_t psm);
+uint8_t l2cap_create_le_credit_based_connection_request(uint16_t credits, uint16_t psm, uint16_t handle, uint16_t *local_cid);
/**
- * @brief Accepts incoming L2CAP connection.
+ * @brief Get credits information of a credit based connection
+ *
+ * `local_credits`: how many K-frames the peer is capable to receive,
+ * i.e. how many K-frames we (the _local_) can transmit;
+ *
+ * `peer_credits`: `local_credits` in the peer.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] peer_credits peer credits at present
+ * @param[in] local_credits local credits at present
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_accept_connection(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
+uint8_t l2cap_get_le_credit_based_connection_credits(uint16_t local_cid,
+ uint32_t *peer_credits, uint32_t *local_credits);
+/**
+ * @brief send an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data data of the SDU
+ * @param[in] len total length of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * (see `l2cap_credit_based_send_continue`)
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+int l2cap_credit_based_send(uint16_t local_cid, const uint8_t *data, uint16_t len);
/**
- * @brief Deny incoming L2CAP connection.
+ * @brief continue sending an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data remaining data of the SDU that has not been sent
+ * @param[in] len length of remaining data of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_decline_connection(uint16_t local_cid, uint8_t reason);
-// WARNING: ^^^ this API is not available in this release
+int l2cap_credit_based_send_continue(uint16_t local_cid, const uint8_t *data, uint16_t len);
+/**
+ * @brief add more credits to the peer of the specified channel, or rather notify
+ * the peer that _local_ are capable of receiving more K-frames.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] credits credits to be added to the peer
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+uint8_t l2cap_le_send_flow_control_credit(uint16_t local_cid, uint16_t credits);
/**
* @brief Check if outgoing buffer is available and that there's space on the Bluetooth module
@@ -124,42 +186,45 @@ int l2cap_can_send_packet_now(uint16_t local_cid);
* @brief Request emission of L2CAP_EVENT_CAN_SEND_NOW as soon as possible
* @note L2CAP_EVENT_CAN_SEND_NOW might be emitted during call to this function
* so packet handler should be ready to handle it
- * @param local_cid
+ * @param[in] local_cid local channel identifier
*/
void l2cap_request_can_send_now_event(uint16_t local_cid);
/**
* @brief Request an update of the connection parameter for a given LE connection
- * @param handle
- * @param conn_interval_min (unit: 1.25ms)
- * @param conn_interval_max (unit: 1.25ms)
- * @param conn_latency
- * @param supervision_timeout (unit: 10ms)
- * @returns 0 if ok
- */
-int l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
+ *
+ * Note: only Peripheral role can call this API.
+ *
+ * @param[in] handle connection handle
+ * @param[in] conn_interval_min (unit: 1.25ms)
+ * @param[in] conn_interval_max (unit: 1.25ms)
+ * @param[in] conn_latency slave latency
+ * @param[in] supervision_timeout (unit: 10ms)
+ * @returns 0 if successful else error occurs:
+ * * ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER
+ */
+uint8_t l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
uint16_t conn_interval_max, uint16_t conn_latency, uint16_t supervision_timeout);
-#ifdef CONNECTION_PARAMETER_DYNAMICALLY_ADJUST
-uint8_t l2cap_update_MTU_on_LL_link(l2cap_channel_t * channel);
-#endif
+/** @brief for PTS Testing
+ */
+uint8_t l2cap_send_echo_request(hci_con_handle_t con_handle, const uint8_t *data, uint16_t len);
/* API_END */
#ifdef __cplusplus
}
#endif
-/*to define the error result of the connection response*/
-#ifdef L2CAP_CREDIT_BASED_FLOW_CONTROL_MODE
-#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
-#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
-#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
-#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
-#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
-#endif
+
+/* Error result of the connection response */
+#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
+#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
+#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
+#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
+#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
#endif // __L2CAP_H
diff --git a/bundles/exp/inc/le_device_db.h b/bundles/exp/inc/le_device_db.h
index 03f8e550f..b81d04f5a 100644
--- a/bundles/exp/inc/le_device_db.h
+++ b/bundles/exp/inc/le_device_db.h
@@ -41,15 +41,9 @@ typedef struct le_device_memory_db {
#pragma pack (pop)
-typedef struct white_list
-{
- uint8_t addr_type;
- bd_addr_t addr;
-}white_list_t;
-
/**
- LE Device DB for pure LE Peripherals is only required for signed writes
+ LE Device DB is only required for signed writes
Per bonded device, it can store
- it stores the Identity Resolving Key (IRK) and its address to resolve private addresses
@@ -60,7 +54,6 @@ typedef struct white_list
*/
-
// LE Device db interface
/* API_START */
diff --git a/bundles/exp/inc/ll_api.h b/bundles/exp/inc/ll_api.h
index 551a93b84..5748f4785 100644
--- a/bundles/exp/inc/ll_api.h
+++ b/bundles/exp/inc/ll_api.h
@@ -245,14 +245,15 @@ int ll_raw_packet_set_param(struct ll_raw_packet *packet,
*
* @param[in] packet the packet object
* @param[in] header header sending before packet length
- * @param[in] freq_mhz freqency in MHz
+ * @param[in] freq_mhz frequency in MHz
* When 0: use the channel specified in `ll_raw_packet_set_param`)
* @return 0 if successful else error code
*
*
* Note: Only a subset of uint8_t are supported in `header`;
* When bare mode is used, CRC & whitening are all handled by apps;
- * When bare mode is used, `crc_init` is ignored.
+ * When bare mode is used, `crc_init` is ignored;
+ * When `freq_mhz` is not zero, BLE activities near this raw packets might be affected.
****************************************************************************************
*/
int ll_raw_packet_set_bare_mode(struct ll_raw_packet *packet,
diff --git a/bundles/exp/inc/sm.h b/bundles/exp/inc/sm.h
index 0213e5e3f..874e028a5 100644
--- a/bundles/exp/inc/sm.h
+++ b/bundles/exp/inc/sm.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/extension/ING9168xx/apis.json b/bundles/extension/ING9168xx/apis.json
index bd3704fd5..dd505d658 100644
--- a/bundles/extension/ING9168xx/apis.json
+++ b/bundles/extension/ING9168xx/apis.json
@@ -1,350 +1,347 @@
{
- "att_dispatch_client_can_send_now": "0x02004635",
- "att_dispatch_client_request_can_send_now_event": "0x0200463b",
- "att_dispatch_register_client": "0x02004641",
- "att_dispatch_register_server": "0x02004655",
- "att_dispatch_server_can_send_now": "0x02004669",
- "att_dispatch_server_request_can_send_now_event": "0x0200466f",
- "att_emit_general_event": "0x02004721",
- "att_server_can_send_packet_now": "0x02004e3d",
- "att_server_deferred_read_response": "0x02004e41",
- "att_server_get_mtu": "0x02004e59",
- "att_server_indicate": "0x02004ed1",
- "att_server_init": "0x02004f55",
- "att_server_notify": "0x02004f91",
- "att_server_register_packet_handler": "0x020050a9",
- "att_server_request_can_send_now_event": "0x020050b5",
- "att_set_db": "0x020050d1",
- "att_set_read_callback": "0x020050e5",
- "att_set_write_callback": "0x020050f1",
- "bd_addr_cmp": "0x020052d9",
- "bd_addr_copy": "0x020052df",
- "bd_addr_to_str": "0x020052e9",
- "big_endian_read_16": "0x02005321",
- "big_endian_read_32": "0x02005329",
- "big_endian_store_16": "0x0200533d",
- "big_endian_store_32": "0x02005349",
- "btstack_config": "0x020054c5",
- "btstack_memory_pool_create": "0x02005603",
- "btstack_memory_pool_free": "0x0200562d",
- "btstack_memory_pool_get": "0x0200568d",
- "btstack_push_user_msg": "0x020056f5",
- "btstack_push_user_runnable": "0x02005701",
- "char_for_nibble": "0x0200599f",
- "eTaskConfirmSleepModeStatus": "0x02005cc1",
- "gap_add_dev_to_periodic_list": "0x02006355",
- "gap_add_whitelist": "0x0200636d",
- "gap_aes_encrypt": "0x02006381",
- "gap_clear_white_lists": "0x020063c5",
- "gap_clr_adv_set": "0x020063d5",
- "gap_clr_periodic_adv_list": "0x020063e5",
- "gap_create_connection_cancel": "0x020063f5",
- "gap_default_periodic_adv_sync_transfer_param": "0x02006405",
- "gap_disconnect": "0x0200641d",
- "gap_disconnect_all": "0x02006449",
- "gap_ext_create_connection": "0x02006489",
- "gap_get_connection_parameter_range": "0x02006579",
- "gap_le_read_channel_map": "0x020065b5",
- "gap_periodic_adv_create_sync": "0x02006629",
- "gap_periodic_adv_create_sync_cancel": "0x0200664d",
- "gap_periodic_adv_set_info_transfer": "0x0200665d",
- "gap_periodic_adv_sync_transfer": "0x02006675",
- "gap_periodic_adv_sync_transfer_param": "0x0200668d",
- "gap_periodic_adv_term_sync": "0x020066a9",
- "gap_read_antenna_info": "0x0200673d",
- "gap_read_periodic_adv_list_size": "0x0200674d",
- "gap_read_phy": "0x0200675d",
- "gap_read_remote_used_features": "0x02006771",
- "gap_read_remote_version": "0x02006785",
- "gap_read_rssi": "0x02006799",
- "gap_remove_whitelist": "0x020067ad",
- "gap_rmv_adv_set": "0x02006831",
- "gap_rmv_dev_from_periodic_list": "0x02006845",
- "gap_rx_test_v2": "0x0200685d",
- "gap_rx_test_v3": "0x02006875",
- "gap_set_adv_set_random_addr": "0x020068c5",
- "gap_set_connection_cte_request_enable": "0x02006911",
- "gap_set_connection_cte_response_enable": "0x0200692d",
- "gap_set_connection_cte_rx_param": "0x02006941",
- "gap_set_connection_cte_tx_param": "0x0200699d",
- "gap_set_connection_parameter_range": "0x020069f1",
- "gap_set_connectionless_cte_tx_enable": "0x02006a09",
- "gap_set_connectionless_cte_tx_param": "0x02006a1d",
- "gap_set_connectionless_iq_sampling_enable": "0x02006a7d",
- "gap_set_data_length": "0x02006ae1",
- "gap_set_def_phy": "0x02006afd",
- "gap_set_ext_adv_data": "0x02006b15",
- "gap_set_ext_adv_enable": "0x02006b2d",
- "gap_set_ext_adv_para": "0x02006ba9",
- "gap_set_ext_scan_enable": "0x02006c81",
- "gap_set_ext_scan_para": "0x02006c99",
- "gap_set_ext_scan_response_data": "0x02006d41",
- "gap_set_host_channel_classification": "0x02006d59",
- "gap_set_periodic_adv_data": "0x02006d6d",
- "gap_set_periodic_adv_enable": "0x02006de1",
- "gap_set_periodic_adv_para": "0x02006df5",
- "gap_set_periodic_adv_rx_enable": "0x02006e0d",
- "gap_set_phy": "0x02006e21",
- "gap_set_random_device_address": "0x02006e3d",
- "gap_start_ccm": "0x02006e6d",
- "gap_test_end": "0x02006ea1",
- "gap_tx_test_v2": "0x02006eb1",
- "gap_tx_test_v4": "0x02006ec9",
- "gap_update_connection_parameters": "0x02006ef1",
- "gap_vendor_tx_continuous_wave": "0x02006f35",
- "gatt_client_cancel_write": "0x0200745d",
- "gatt_client_discover_characteristic_descriptors": "0x02007483",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020074c3",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x02007513",
- "gatt_client_discover_characteristics_for_service": "0x02007563",
- "gatt_client_discover_primary_services": "0x02007599",
- "gatt_client_discover_primary_services_by_uuid128": "0x020075cb",
- "gatt_client_discover_primary_services_by_uuid16": "0x0200760f",
- "gatt_client_execute_write": "0x0200764d",
- "gatt_client_find_included_services_for_service": "0x02007673",
- "gatt_client_get_mtu": "0x020076a1",
- "gatt_client_is_ready": "0x02007765",
- "gatt_client_listen_for_characteristic_value_updates": "0x0200777b",
- "gatt_client_prepare_write": "0x0200779d",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020077d9",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x02007803",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007809",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x02007837",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x0200783d",
- "gatt_client_read_multiple_characteristic_values": "0x0200786b",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x0200789b",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x020078c9",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x02007915",
- "gatt_client_register_handler": "0x02007961",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x0200796d",
- "gatt_client_signed_write_without_response": "0x02007da1",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007e65",
- "gatt_client_write_client_characteristic_configuration": "0x02007e9f",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007ef1",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007f01",
- "gatt_client_write_long_value_of_characteristic": "0x02007f3d",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007f4d",
- "gatt_client_write_value_of_characteristic": "0x02007f89",
- "gatt_client_write_value_of_characteristic_without_response": "0x02007fbf",
- "hci_add_event_handler": "0x020095b5",
- "hci_power_control": "0x02009db5",
- "hci_register_acl_packet_handler": "0x02009f69",
- "kv_commit": "0x0200a499",
- "kv_get": "0x0200a4f1",
- "kv_init": "0x0200a509",
- "kv_put": "0x0200a571",
- "kv_remove": "0x0200a5e9",
- "kv_remove_all": "0x0200a625",
- "kv_value_modified": "0x0200a669",
- "kv_visit": "0x0200a66d",
- "l2cap_can_send_fixed_channel_packet_now": "0x0200a72d",
- "l2cap_can_send_packet_now": "0x0200a731",
- "l2cap_create_channel": "0x0200a8e9",
- "l2cap_disconnect": "0x0200aa25",
- "l2cap_get_remote_mtu_for_local_cid": "0x0200abe9",
- "l2cap_init": "0x0200b04d",
- "l2cap_le_send_flow_control_credit": "0x0200b08d",
- "l2cap_max_le_mtu": "0x0200b34d",
- "l2cap_max_mtu": "0x0200b351",
- "l2cap_register_fixed_channel": "0x0200b45d",
- "l2cap_register_packet_handler": "0x0200b479",
- "l2cap_register_service": "0x0200b485",
- "l2cap_request_can_send_fix_channel_now_event": "0x0200b569",
- "l2cap_request_can_send_now_event": "0x0200b58d",
- "l2cap_request_connection_parameter_update": "0x0200b5a7",
- "l2cap_send": "0x0200b955",
- "l2cap_send_connectionless": "0x0200b9cd",
- "l2cap_send_connectionless3": "0x0200ba5d",
- "l2cap_send_echo_request": "0x0200baf5",
- "l2cap_unregister_service": "0x0200bbd1",
- "le_device_db_add": "0x0200bc29",
- "le_device_db_find": "0x0200bcfd",
- "le_device_db_from_key": "0x0200bd29",
- "le_device_db_iter_cur": "0x0200bd31",
- "le_device_db_iter_cur_key": "0x0200bd35",
- "le_device_db_iter_init": "0x0200bd39",
- "le_device_db_iter_next": "0x0200bd41",
- "le_device_db_remove_key": "0x0200bd67",
- "ll_ackable_packet_alloc": "0x0200bd93",
- "ll_ackable_packet_get_status": "0x0200be9f",
- "ll_ackable_packet_run": "0x0200bf0d",
- "ll_ackable_packet_set_tx_data": "0x0200bfd1",
- "ll_adjust_conn_peer_tx_power": "0x0200bfed",
- "ll_attach_cte_to_adv_set": "0x0200c019",
- "ll_free": "0x0200c1b1",
- "ll_hint_on_ce_len": "0x0200c1bd",
- "ll_legacy_adv_set_interval": "0x0200c1f5",
- "ll_malloc": "0x0200c205",
- "ll_raw_packet_alloc": "0x0200c31d",
- "ll_raw_packet_free": "0x0200c3f1",
- "ll_raw_packet_get_bare_rx_data": "0x0200c41b",
- "ll_raw_packet_get_iq_samples": "0x0200c4db",
- "ll_raw_packet_get_rx_data": "0x0200c575",
- "ll_raw_packet_recv": "0x0200c609",
- "ll_raw_packet_send": "0x0200c6dd",
- "ll_raw_packet_set_bare_data": "0x0200c7f9",
- "ll_raw_packet_set_bare_mode": "0x0200c837",
- "ll_raw_packet_set_param": "0x0200c93b",
- "ll_raw_packet_set_rx_cte": "0x0200c99d",
- "ll_raw_packet_set_tx_cte": "0x0200ca33",
- "ll_raw_packet_set_tx_data": "0x0200ca71",
- "ll_scan_set_fixed_channel": "0x0200cb29",
- "ll_scanner_enable_iq_sampling": "0x0200cb35",
- "ll_set_adv_access_address": "0x0200cce5",
- "ll_set_adv_coded_scheme": "0x0200ccf1",
- "ll_set_conn_coded_scheme": "0x0200cd29",
- "ll_set_conn_interval_unit": "0x0200cd55",
- "ll_set_conn_latency": "0x0200cd61",
- "ll_set_conn_tx_power": "0x0200cd91",
- "ll_set_def_antenna": "0x0200cdcd",
- "ll_set_initiating_coded_scheme": "0x0200cded",
- "ll_set_max_conn_number": "0x0200cdf9",
- "ll_set_tx_power_range": "0x0200ce95",
- "nibble_for_char": "0x0201f83d",
- "platform_32k_rc_auto_tune": "0x0201f8e9",
- "platform_32k_rc_tune": "0x0201f935",
- "platform_calibrate_32k": "0x0201f951",
- "platform_config": "0x0201f955",
- "platform_get_current_task": "0x0201fa25",
- "platform_get_gen_os_driver": "0x0201fa49",
- "platform_get_heap_status": "0x0201fa51",
- "platform_get_task_handle": "0x0201fa69",
- "platform_get_us_time": "0x0201fa89",
- "platform_get_version": "0x0201fa8d",
- "platform_hrng": "0x0201fa95",
- "platform_install_isr_stack": "0x0201fa9d",
- "platform_install_task_stack": "0x0201faa9",
- "platform_patch_rf_init_data": "0x0201fae1",
- "platform_printf": "0x0201faed",
- "platform_raise_assertion": "0x0201fb01",
- "platform_rand": "0x0201fb15",
- "platform_read_info": "0x0201fb19",
- "platform_read_persistent_reg": "0x0201fb49",
- "platform_reset": "0x0201fb55",
- "platform_set_evt_callback": "0x0201fb5d",
- "platform_set_irq_callback": "0x0201fb71",
- "platform_set_rf_clk_source": "0x0201fba9",
- "platform_set_rf_init_data": "0x0201fbb5",
- "platform_set_rf_power_mapping": "0x0201fbc1",
- "platform_set_timer": "0x0201fbcd",
- "platform_shutdown": "0x0201fbd1",
- "platform_switch_app": "0x0201fbd5",
- "platform_trace_raw": "0x0201fbf1",
- "platform_write_persistent_reg": "0x0201fc09",
- "printf_hexdump": "0x0201fdc1",
- "pvPortMalloc": "0x020208b5",
- "pvTaskIncrementMutexHeldCount": "0x0202099d",
- "pvTimerGetTimerID": "0x020209b5",
- "pxPortInitialiseStack": "0x020209e1",
- "reverse_128": "0x02020bc9",
- "reverse_24": "0x02020bcf",
- "reverse_48": "0x02020bd5",
- "reverse_56": "0x02020bdb",
- "reverse_64": "0x02020be1",
- "reverse_bd_addr": "0x02020be7",
- "reverse_bytes": "0x02020bed",
- "sm_add_event_handler": "0x02020f29",
- "sm_address_resolution_lookup": "0x02021081",
- "sm_authenticated": "0x020213d9",
- "sm_authorization_decline": "0x020213e7",
- "sm_authorization_grant": "0x02021407",
- "sm_authorization_state": "0x02021427",
- "sm_bonding_decline": "0x02021441",
- "sm_config": "0x02021859",
- "sm_config_conn": "0x02021871",
- "sm_encryption_key_size": "0x02021a27",
- "sm_just_works_confirm": "0x02021f61",
- "sm_le_device_key": "0x0202229d",
- "sm_passkey_input": "0x02022333",
- "sm_private_random_address_generation_get": "0x020226e1",
- "sm_private_random_address_generation_get_mode": "0x020226e9",
- "sm_private_random_address_generation_set_mode": "0x020226f5",
- "sm_private_random_address_generation_set_update_period": "0x0202271d",
- "sm_register_oob_data_callback": "0x02022859",
- "sm_request_pairing": "0x02022865",
- "sm_send_security_request": "0x0202328b",
- "sm_set_accepted_stk_generation_methods": "0x020232b1",
- "sm_set_authentication_requirements": "0x020232bd",
- "sm_set_encryption_key_size_range": "0x020232c9",
- "sscanf_bd_addr": "0x020236a1",
- "sysSetPublicDeviceAddr": "0x02023a69",
- "uuid128_to_str": "0x020241b1",
- "uuid_add_bluetooth_prefix": "0x02024209",
- "uuid_has_bluetooth_prefix": "0x02024229",
- "uxListRemove": "0x02024245",
- "uxQueueMessagesWaiting": "0x0202426d",
- "uxQueueMessagesWaitingFromISR": "0x02024295",
- "uxQueueSpacesAvailable": "0x020242b1",
- "uxTaskGetStackHighWaterMark": "0x020242dd",
- "uxTaskPriorityGet": "0x020242fd",
- "uxTaskPriorityGetFromISR": "0x02024319",
- "vListInitialise": "0x020243b7",
- "vListInitialiseItem": "0x020243cd",
- "vListInsert": "0x020243d3",
- "vListInsertEnd": "0x02024403",
- "vPortEndScheduler": "0x0202441d",
- "vPortEnterCritical": "0x02024449",
- "vPortExitCritical": "0x02024491",
- "vPortFree": "0x020244c5",
- "vPortSuppressTicksAndSleep": "0x02024569",
- "vPortValidateInterruptPriority": "0x02024671",
- "vQueueDelete": "0x020246cd",
- "vQueueWaitForMessageRestricted": "0x020246f9",
- "vTaskDelay": "0x0202473d",
- "vTaskInternalSetTimeOutState": "0x02024789",
- "vTaskMissedYield": "0x02024799",
- "vTaskPlaceOnEventList": "0x020247a5",
- "vTaskPlaceOnEventListRestricted": "0x020247dd",
- "vTaskPriorityDisinheritAfterTimeout": "0x0202481d",
- "vTaskPrioritySet": "0x020248c9",
- "vTaskResume": "0x02024991",
- "vTaskStartScheduler": "0x02024a15",
- "vTaskStepTick": "0x02024aa5",
- "vTaskSuspend": "0x02024ad5",
- "vTaskSuspendAll": "0x02024b91",
- "vTaskSwitchContext": "0x02024ba1",
- "xPortStartScheduler": "0x02024c49",
- "xQueueAddToSet": "0x02024d49",
- "xQueueCreateCountingSemaphore": "0x02024d6d",
- "xQueueCreateCountingSemaphoreStatic": "0x02024da9",
- "xQueueCreateMutex": "0x02024ded",
- "xQueueCreateMutexStatic": "0x02024e03",
- "xQueueCreateSet": "0x02024e1d",
- "xQueueGenericCreate": "0x02024e25",
- "xQueueGenericCreateStatic": "0x02024e71",
- "xQueueGenericReset": "0x02024ed9",
- "xQueueGenericSend": "0x02024f65",
- "xQueueGenericSendFromISR": "0x020250d1",
- "xQueueGiveFromISR": "0x02025191",
- "xQueueGiveMutexRecursive": "0x02025235",
- "xQueueIsQueueEmptyFromISR": "0x02025275",
- "xQueueIsQueueFullFromISR": "0x02025299",
- "xQueuePeek": "0x020252c1",
- "xQueuePeekFromISR": "0x020253e9",
- "xQueueReceive": "0x02025455",
- "xQueueReceiveFromISR": "0x02025581",
- "xQueueRemoveFromSet": "0x02025615",
- "xQueueSelectFromSet": "0x02025637",
- "xQueueSelectFromSetFromISR": "0x02025649",
- "xQueueSemaphoreTake": "0x0202565d",
- "xQueueTakeMutexRecursive": "0x020257c9",
- "xTaskCheckForTimeOut": "0x0202580d",
- "xTaskCreate": "0x0202587d",
- "xTaskCreateStatic": "0x020258d9",
- "xTaskGetCurrentTaskHandle": "0x02025949",
- "xTaskGetSchedulerState": "0x02025955",
- "xTaskGetTickCount": "0x02025971",
- "xTaskGetTickCountFromISR": "0x0202597d",
- "xTaskIncrementTick": "0x0202598d",
- "xTaskPriorityDisinherit": "0x02025a59",
- "xTaskPriorityInherit": "0x02025aed",
- "xTaskRemoveFromEventList": "0x02025b81",
- "xTaskResumeAll": "0x02025c01",
- "xTaskResumeFromISR": "0x02025cc9",
- "xTimerCreate": "0x02025d55",
- "xTimerCreateStatic": "0x02025d89",
- "xTimerCreateTimerTask": "0x02025dc1",
- "xTimerGenericCommand": "0x02025e2d",
- "xTimerGetExpiryTime": "0x02025e9d",
- "xTimerGetTimerDaemonTaskHandle": "0x02025ebd"
+ "att_dispatch_client_can_send_now": "0x02004379",
+ "att_dispatch_client_request_can_send_now_event": "0x0200437f",
+ "att_dispatch_register_client": "0x02004385",
+ "att_dispatch_register_server": "0x02004399",
+ "att_dispatch_server_can_send_now": "0x020043ad",
+ "att_dispatch_server_request_can_send_now_event": "0x020043b3",
+ "att_emit_general_event": "0x02004465",
+ "att_server_can_send_packet_now": "0x02004b81",
+ "att_server_deferred_read_response": "0x02004b85",
+ "att_server_get_mtu": "0x02004b9d",
+ "att_server_indicate": "0x02004c15",
+ "att_server_init": "0x02004c99",
+ "att_server_notify": "0x02004cd5",
+ "att_server_register_packet_handler": "0x02004ded",
+ "att_server_request_can_send_now_event": "0x02004df9",
+ "att_set_db": "0x02004e15",
+ "att_set_read_callback": "0x02004e29",
+ "att_set_write_callback": "0x02004e35",
+ "bd_addr_cmp": "0x0200501d",
+ "bd_addr_copy": "0x02005023",
+ "bd_addr_to_str": "0x0200502d",
+ "big_endian_read_16": "0x02005065",
+ "big_endian_read_32": "0x0200506d",
+ "big_endian_store_16": "0x02005081",
+ "big_endian_store_32": "0x0200508d",
+ "btstack_config": "0x02005209",
+ "btstack_memory_pool_create": "0x02005347",
+ "btstack_memory_pool_free": "0x02005371",
+ "btstack_memory_pool_get": "0x020053d1",
+ "btstack_push_user_msg": "0x02005439",
+ "btstack_push_user_runnable": "0x02005445",
+ "char_for_nibble": "0x020056e3",
+ "eTaskConfirmSleepModeStatus": "0x02005a2d",
+ "gap_add_dev_to_periodic_list": "0x020060c1",
+ "gap_add_whitelist": "0x020060d9",
+ "gap_aes_encrypt": "0x020060ed",
+ "gap_clear_white_lists": "0x02006131",
+ "gap_clr_adv_set": "0x02006141",
+ "gap_clr_periodic_adv_list": "0x02006151",
+ "gap_create_connection_cancel": "0x02006161",
+ "gap_default_periodic_adv_sync_transfer_param": "0x02006171",
+ "gap_disconnect": "0x02006189",
+ "gap_disconnect_all": "0x020061b5",
+ "gap_ext_create_connection": "0x020061f5",
+ "gap_get_connection_parameter_range": "0x020062e5",
+ "gap_le_read_channel_map": "0x02006321",
+ "gap_periodic_adv_create_sync": "0x02006395",
+ "gap_periodic_adv_create_sync_cancel": "0x020063b9",
+ "gap_periodic_adv_set_info_transfer": "0x020063c9",
+ "gap_periodic_adv_sync_transfer": "0x020063e1",
+ "gap_periodic_adv_sync_transfer_param": "0x020063f9",
+ "gap_periodic_adv_term_sync": "0x02006415",
+ "gap_read_antenna_info": "0x020064a9",
+ "gap_read_periodic_adv_list_size": "0x020064b9",
+ "gap_read_phy": "0x020064c9",
+ "gap_read_remote_used_features": "0x020064dd",
+ "gap_read_remote_version": "0x020064f1",
+ "gap_read_rssi": "0x02006505",
+ "gap_remove_whitelist": "0x02006519",
+ "gap_rmv_adv_set": "0x0200659d",
+ "gap_rmv_dev_from_periodic_list": "0x020065b1",
+ "gap_rx_test_v2": "0x020065c9",
+ "gap_rx_test_v3": "0x020065e1",
+ "gap_set_adv_set_random_addr": "0x02006631",
+ "gap_set_connection_cte_request_enable": "0x0200667d",
+ "gap_set_connection_cte_response_enable": "0x02006699",
+ "gap_set_connection_cte_rx_param": "0x020066ad",
+ "gap_set_connection_cte_tx_param": "0x02006709",
+ "gap_set_connection_parameter_range": "0x0200675d",
+ "gap_set_connectionless_cte_tx_enable": "0x02006775",
+ "gap_set_connectionless_cte_tx_param": "0x02006789",
+ "gap_set_connectionless_iq_sampling_enable": "0x020067e9",
+ "gap_set_data_length": "0x0200684d",
+ "gap_set_def_phy": "0x02006869",
+ "gap_set_ext_adv_data": "0x02006881",
+ "gap_set_ext_adv_enable": "0x02006899",
+ "gap_set_ext_adv_para": "0x02006915",
+ "gap_set_ext_scan_enable": "0x020069ed",
+ "gap_set_ext_scan_para": "0x02006a05",
+ "gap_set_ext_scan_response_data": "0x02006aad",
+ "gap_set_host_channel_classification": "0x02006ac5",
+ "gap_set_periodic_adv_data": "0x02006ad9",
+ "gap_set_periodic_adv_enable": "0x02006b4d",
+ "gap_set_periodic_adv_para": "0x02006b61",
+ "gap_set_periodic_adv_rx_enable": "0x02006b79",
+ "gap_set_phy": "0x02006b8d",
+ "gap_set_random_device_address": "0x02006ba9",
+ "gap_start_ccm": "0x02006bd9",
+ "gap_test_end": "0x02006c0d",
+ "gap_tx_test_v2": "0x02006c1d",
+ "gap_tx_test_v4": "0x02006c35",
+ "gap_update_connection_parameters": "0x02006c5d",
+ "gap_vendor_tx_continuous_wave": "0x02006ca1",
+ "gatt_client_cancel_write": "0x020071c9",
+ "gatt_client_discover_characteristic_descriptors": "0x020071ef",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0200722f",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200727f",
+ "gatt_client_discover_characteristics_for_service": "0x020072cf",
+ "gatt_client_discover_primary_services": "0x02007305",
+ "gatt_client_discover_primary_services_by_uuid128": "0x02007337",
+ "gatt_client_discover_primary_services_by_uuid16": "0x0200737b",
+ "gatt_client_execute_write": "0x020073b9",
+ "gatt_client_find_included_services_for_service": "0x020073df",
+ "gatt_client_get_mtu": "0x0200740d",
+ "gatt_client_is_ready": "0x020074d1",
+ "gatt_client_listen_for_characteristic_value_updates": "0x020074e7",
+ "gatt_client_prepare_write": "0x02007509",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007545",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200756f",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007575",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x020075a3",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020075a9",
+ "gatt_client_read_multiple_characteristic_values": "0x020075d7",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007607",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007635",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x02007681",
+ "gatt_client_register_handler": "0x020076cd",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x020076d9",
+ "gatt_client_signed_write_without_response": "0x02007b0d",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007bd1",
+ "gatt_client_write_client_characteristic_configuration": "0x02007c0b",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007c5d",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007c6d",
+ "gatt_client_write_long_value_of_characteristic": "0x02007ca9",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007cb9",
+ "gatt_client_write_value_of_characteristic": "0x02007cf5",
+ "gatt_client_write_value_of_characteristic_without_response": "0x02007d2b",
+ "hci_add_event_handler": "0x02009321",
+ "hci_power_control": "0x02009b21",
+ "hci_register_acl_packet_handler": "0x02009cd5",
+ "kv_commit": "0x0200a205",
+ "kv_get": "0x0200a25d",
+ "kv_init": "0x0200a275",
+ "kv_put": "0x0200a2dd",
+ "kv_remove": "0x0200a355",
+ "kv_remove_all": "0x0200a391",
+ "kv_value_modified": "0x0200a3d5",
+ "kv_visit": "0x0200a3d9",
+ "l2cap_add_event_handler": "0x0200a48d",
+ "l2cap_can_send_packet_now": "0x0200a49d",
+ "l2cap_create_le_credit_based_connection_request": "0x0200a661",
+ "l2cap_credit_based_send": "0x0200a7a9",
+ "l2cap_credit_based_send_continue": "0x0200a7d5",
+ "l2cap_disconnect": "0x0200a851",
+ "l2cap_get_le_credit_based_connection_credits": "0x0200aa3d",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0200aa59",
+ "l2cap_init": "0x0200ae99",
+ "l2cap_le_send_flow_control_credit": "0x0200af8f",
+ "l2cap_max_le_mtu": "0x0200b29d",
+ "l2cap_register_packet_handler": "0x0200b3c5",
+ "l2cap_register_service": "0x0200b3d1",
+ "l2cap_request_can_send_now_event": "0x0200b4e1",
+ "l2cap_request_connection_parameter_update": "0x0200b4fb",
+ "l2cap_send_echo_request": "0x0200b9dd",
+ "l2cap_unregister_service": "0x0200babd",
+ "le_device_db_add": "0x0200bb15",
+ "le_device_db_find": "0x0200bbe9",
+ "le_device_db_from_key": "0x0200bc15",
+ "le_device_db_iter_cur": "0x0200bc1d",
+ "le_device_db_iter_cur_key": "0x0200bc21",
+ "le_device_db_iter_init": "0x0200bc25",
+ "le_device_db_iter_next": "0x0200bc2d",
+ "le_device_db_remove_key": "0x0200bc53",
+ "ll_ackable_packet_alloc": "0x0200bc7f",
+ "ll_ackable_packet_get_status": "0x0200bd8b",
+ "ll_ackable_packet_run": "0x0200bdf9",
+ "ll_ackable_packet_set_tx_data": "0x0200bebd",
+ "ll_adjust_conn_peer_tx_power": "0x0200bed9",
+ "ll_attach_cte_to_adv_set": "0x0200bf05",
+ "ll_free": "0x0200c09d",
+ "ll_hint_on_ce_len": "0x0200c0a9",
+ "ll_legacy_adv_set_interval": "0x0200c0e1",
+ "ll_malloc": "0x0200c0f1",
+ "ll_raw_packet_alloc": "0x0200c209",
+ "ll_raw_packet_free": "0x0200c2dd",
+ "ll_raw_packet_get_bare_rx_data": "0x0200c307",
+ "ll_raw_packet_get_iq_samples": "0x0200c3c7",
+ "ll_raw_packet_get_rx_data": "0x0200c461",
+ "ll_raw_packet_recv": "0x0200c4f5",
+ "ll_raw_packet_send": "0x0200c5c9",
+ "ll_raw_packet_set_bare_data": "0x0200c6e5",
+ "ll_raw_packet_set_bare_mode": "0x0200c723",
+ "ll_raw_packet_set_param": "0x0200c827",
+ "ll_raw_packet_set_rx_cte": "0x0200c889",
+ "ll_raw_packet_set_tx_cte": "0x0200c91f",
+ "ll_raw_packet_set_tx_data": "0x0200c95d",
+ "ll_scan_set_fixed_channel": "0x0200ca15",
+ "ll_scanner_enable_iq_sampling": "0x0200ca21",
+ "ll_set_adv_access_address": "0x0200cbd1",
+ "ll_set_adv_coded_scheme": "0x0200cbdd",
+ "ll_set_conn_coded_scheme": "0x0200cc15",
+ "ll_set_conn_interval_unit": "0x0200cc41",
+ "ll_set_conn_latency": "0x0200cc4d",
+ "ll_set_conn_tx_power": "0x0200cc7d",
+ "ll_set_def_antenna": "0x0200ccb9",
+ "ll_set_initiating_coded_scheme": "0x0200ccd9",
+ "ll_set_max_conn_number": "0x0200cce5",
+ "ll_set_tx_power_range": "0x0200cd81",
+ "nibble_for_char": "0x0201f735",
+ "platform_32k_rc_auto_tune": "0x0201f7e1",
+ "platform_32k_rc_tune": "0x0201f82d",
+ "platform_calibrate_32k": "0x0201f849",
+ "platform_config": "0x0201f84d",
+ "platform_get_current_task": "0x0201f91d",
+ "platform_get_gen_os_driver": "0x0201f941",
+ "platform_get_heap_status": "0x0201f949",
+ "platform_get_task_handle": "0x0201f961",
+ "platform_get_us_time": "0x0201f981",
+ "platform_get_version": "0x0201f985",
+ "platform_hrng": "0x0201f98d",
+ "platform_install_isr_stack": "0x0201f995",
+ "platform_install_task_stack": "0x0201f9a1",
+ "platform_patch_rf_init_data": "0x0201f9d9",
+ "platform_printf": "0x0201f9e5",
+ "platform_raise_assertion": "0x0201f9f9",
+ "platform_rand": "0x0201fa0d",
+ "platform_read_info": "0x0201fa11",
+ "platform_read_persistent_reg": "0x0201fa41",
+ "platform_reset": "0x0201fa4d",
+ "platform_set_evt_callback": "0x0201fa61",
+ "platform_set_irq_callback": "0x0201fa75",
+ "platform_set_rf_clk_source": "0x0201faad",
+ "platform_set_rf_init_data": "0x0201fab9",
+ "platform_set_rf_power_mapping": "0x0201fac5",
+ "platform_set_timer": "0x0201fad1",
+ "platform_shutdown": "0x0201fad5",
+ "platform_switch_app": "0x0201fad9",
+ "platform_trace_raw": "0x0201faf1",
+ "platform_write_persistent_reg": "0x0201fb09",
+ "printf_hexdump": "0x0201fcc1",
+ "pvPortMalloc": "0x020207b5",
+ "pvTaskIncrementMutexHeldCount": "0x0202089d",
+ "pvTimerGetTimerID": "0x020208b5",
+ "pxPortInitialiseStack": "0x020208e1",
+ "reverse_128": "0x02020ac9",
+ "reverse_24": "0x02020acf",
+ "reverse_48": "0x02020ad5",
+ "reverse_56": "0x02020adb",
+ "reverse_64": "0x02020ae1",
+ "reverse_bd_addr": "0x02020ae7",
+ "reverse_bytes": "0x02020aed",
+ "sm_add_event_handler": "0x02020e29",
+ "sm_address_resolution_lookup": "0x02020f81",
+ "sm_authenticated": "0x020212d9",
+ "sm_authorization_decline": "0x020212e7",
+ "sm_authorization_grant": "0x02021307",
+ "sm_authorization_state": "0x02021327",
+ "sm_bonding_decline": "0x02021341",
+ "sm_config": "0x02021759",
+ "sm_config_conn": "0x02021771",
+ "sm_encryption_key_size": "0x02021927",
+ "sm_just_works_confirm": "0x02021e61",
+ "sm_le_device_key": "0x0202219d",
+ "sm_passkey_input": "0x02022233",
+ "sm_private_random_address_generation_get": "0x020225e1",
+ "sm_private_random_address_generation_get_mode": "0x020225e9",
+ "sm_private_random_address_generation_set_mode": "0x020225f5",
+ "sm_private_random_address_generation_set_update_period": "0x0202261d",
+ "sm_register_oob_data_callback": "0x02022759",
+ "sm_request_pairing": "0x02022765",
+ "sm_send_security_request": "0x0202318b",
+ "sm_set_accepted_stk_generation_methods": "0x020231b1",
+ "sm_set_authentication_requirements": "0x020231bd",
+ "sm_set_encryption_key_size_range": "0x020231c9",
+ "sscanf_bd_addr": "0x020235a1",
+ "sysSetPublicDeviceAddr": "0x02023969",
+ "uuid128_to_str": "0x020240ad",
+ "uuid_add_bluetooth_prefix": "0x02024105",
+ "uuid_has_bluetooth_prefix": "0x02024125",
+ "uxListRemove": "0x02024141",
+ "uxQueueMessagesWaiting": "0x02024169",
+ "uxQueueMessagesWaitingFromISR": "0x02024191",
+ "uxQueueSpacesAvailable": "0x020241ad",
+ "uxTaskGetStackHighWaterMark": "0x020241d9",
+ "uxTaskPriorityGet": "0x020241f9",
+ "uxTaskPriorityGetFromISR": "0x02024215",
+ "vListInitialise": "0x020242b3",
+ "vListInitialiseItem": "0x020242c9",
+ "vListInsert": "0x020242cf",
+ "vListInsertEnd": "0x020242ff",
+ "vPortEndScheduler": "0x02024319",
+ "vPortEnterCritical": "0x02024345",
+ "vPortExitCritical": "0x02024389",
+ "vPortFree": "0x020243bd",
+ "vPortSuppressTicksAndSleep": "0x02024461",
+ "vPortValidateInterruptPriority": "0x02024569",
+ "vQueueDelete": "0x020245c5",
+ "vQueueWaitForMessageRestricted": "0x020245f1",
+ "vTaskDelay": "0x02024635",
+ "vTaskInternalSetTimeOutState": "0x02024681",
+ "vTaskMissedYield": "0x02024691",
+ "vTaskPlaceOnEventList": "0x0202469d",
+ "vTaskPlaceOnEventListRestricted": "0x020246d5",
+ "vTaskPriorityDisinheritAfterTimeout": "0x02024715",
+ "vTaskPrioritySet": "0x020247c1",
+ "vTaskResume": "0x02024889",
+ "vTaskStartScheduler": "0x0202490d",
+ "vTaskStepTick": "0x0202499d",
+ "vTaskSuspend": "0x020249cd",
+ "vTaskSuspendAll": "0x02024a89",
+ "vTaskSwitchContext": "0x02024a99",
+ "xPortStartScheduler": "0x02024b41",
+ "xQueueAddToSet": "0x02024c41",
+ "xQueueCreateCountingSemaphore": "0x02024c65",
+ "xQueueCreateCountingSemaphoreStatic": "0x02024ca1",
+ "xQueueCreateMutex": "0x02024ce5",
+ "xQueueCreateMutexStatic": "0x02024cfb",
+ "xQueueCreateSet": "0x02024d15",
+ "xQueueGenericCreate": "0x02024d1d",
+ "xQueueGenericCreateStatic": "0x02024d69",
+ "xQueueGenericReset": "0x02024dd1",
+ "xQueueGenericSend": "0x02024e5d",
+ "xQueueGenericSendFromISR": "0x02024fc9",
+ "xQueueGiveFromISR": "0x02025089",
+ "xQueueGiveMutexRecursive": "0x0202512d",
+ "xQueueIsQueueEmptyFromISR": "0x0202516d",
+ "xQueueIsQueueFullFromISR": "0x02025191",
+ "xQueuePeek": "0x020251b9",
+ "xQueuePeekFromISR": "0x020252e1",
+ "xQueueReceive": "0x0202534d",
+ "xQueueReceiveFromISR": "0x02025479",
+ "xQueueRemoveFromSet": "0x0202550d",
+ "xQueueSelectFromSet": "0x0202552f",
+ "xQueueSelectFromSetFromISR": "0x02025541",
+ "xQueueSemaphoreTake": "0x02025555",
+ "xQueueTakeMutexRecursive": "0x020256c1",
+ "xTaskCheckForTimeOut": "0x02025705",
+ "xTaskCreate": "0x02025775",
+ "xTaskCreateStatic": "0x020257d1",
+ "xTaskGetCurrentTaskHandle": "0x02025841",
+ "xTaskGetSchedulerState": "0x0202584d",
+ "xTaskGetTickCount": "0x02025869",
+ "xTaskGetTickCountFromISR": "0x02025875",
+ "xTaskIncrementTick": "0x02025885",
+ "xTaskPriorityDisinherit": "0x02025951",
+ "xTaskPriorityInherit": "0x020259e5",
+ "xTaskRemoveFromEventList": "0x02025a79",
+ "xTaskResumeAll": "0x02025af9",
+ "xTaskResumeFromISR": "0x02025bc1",
+ "xTimerCreate": "0x02025c4d",
+ "xTimerCreateStatic": "0x02025c81",
+ "xTimerCreateTimerTask": "0x02025cb9",
+ "xTimerGenericCommand": "0x02025d25",
+ "xTimerGetExpiryTime": "0x02025d95",
+ "xTimerGetTimerDaemonTaskHandle": "0x02025db5"
}
\ No newline at end of file
diff --git a/bundles/extension/ING9168xx/meta.json b/bundles/extension/ING9168xx/meta.json
index bbc8f4508..f9037cc1b 100644
--- a/bundles/extension/ING9168xx/meta.json
+++ b/bundles/extension/ING9168xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 22804
+ "size": 21796
},
"rom": {
"base": 33562624,
- "size": 156332
+ "size": 156064
},
"version": [
2,
0,
- 20
+ 23
]
}
\ No newline at end of file
diff --git a/bundles/extension/ING9168xx/platform.bin b/bundles/extension/ING9168xx/platform.bin
index cdc274752..2950ea0b2 100644
Binary files a/bundles/extension/ING9168xx/platform.bin and b/bundles/extension/ING9168xx/platform.bin differ
diff --git a/bundles/extension/ING9187xx/apis.json b/bundles/extension/ING9187xx/apis.json
index 19eec8af0..ac820442e 100644
--- a/bundles/extension/ING9187xx/apis.json
+++ b/bundles/extension/ING9187xx/apis.json
@@ -1,330 +1,327 @@
{
- "att_dispatch_client_can_send_now": "0x000059f5",
- "att_dispatch_client_request_can_send_now_event": "0x000059fb",
- "att_dispatch_register_client": "0x00005a01",
- "att_dispatch_register_server": "0x00005a15",
- "att_dispatch_server_can_send_now": "0x00005a29",
- "att_dispatch_server_request_can_send_now_event": "0x00005a2f",
- "att_emit_general_event": "0x00005ae1",
- "att_server_can_send_packet_now": "0x000061f5",
- "att_server_deferred_read_response": "0x000061f9",
- "att_server_get_mtu": "0x00006211",
- "att_server_indicate": "0x00006289",
- "att_server_init": "0x0000630d",
- "att_server_notify": "0x00006349",
- "att_server_register_packet_handler": "0x00006461",
- "att_server_request_can_send_now_event": "0x0000646d",
- "att_set_db": "0x00006489",
- "att_set_read_callback": "0x0000649d",
- "att_set_write_callback": "0x000064a9",
- "bd_addr_cmp": "0x00006619",
- "bd_addr_copy": "0x0000661f",
- "bd_addr_to_str": "0x00006629",
- "big_endian_read_16": "0x00006661",
- "big_endian_read_32": "0x00006669",
- "big_endian_store_16": "0x0000667d",
- "big_endian_store_32": "0x00006689",
- "btstack_config": "0x000067dd",
- "btstack_memory_pool_create": "0x0000691b",
- "btstack_memory_pool_free": "0x00006945",
- "btstack_memory_pool_get": "0x000069a5",
- "btstack_push_user_msg": "0x00006a0d",
- "btstack_push_user_runnable": "0x00006a19",
- "char_for_nibble": "0x00006ca1",
- "eTaskConfirmSleepModeStatus": "0x00006f71",
- "gap_add_dev_to_periodic_list": "0x00007591",
- "gap_add_whitelist": "0x000075a9",
- "gap_aes_encrypt": "0x000075bd",
- "gap_clear_white_lists": "0x00007601",
- "gap_clr_adv_set": "0x00007611",
- "gap_clr_periodic_adv_list": "0x00007621",
- "gap_create_connection_cancel": "0x00007631",
- "gap_disconnect": "0x00007641",
- "gap_disconnect_all": "0x0000766d",
- "gap_ext_create_connection": "0x000076ad",
- "gap_get_connection_parameter_range": "0x0000779d",
- "gap_le_read_channel_map": "0x000077d9",
- "gap_periodic_adv_create_sync": "0x0000784d",
- "gap_periodic_adv_create_sync_cancel": "0x00007871",
- "gap_periodic_adv_term_sync": "0x00007881",
- "gap_read_periodic_adv_list_size": "0x00007915",
- "gap_read_phy": "0x00007925",
- "gap_read_remote_used_features": "0x00007939",
- "gap_read_remote_version": "0x0000794d",
- "gap_read_rssi": "0x00007961",
- "gap_remove_whitelist": "0x00007975",
- "gap_rmv_adv_set": "0x000079f9",
- "gap_rmv_dev_from_periodic_list": "0x00007a0d",
- "gap_rx_test_v2": "0x00007a25",
- "gap_set_adv_set_random_addr": "0x00007a65",
- "gap_set_connection_parameter_range": "0x00007ab1",
- "gap_set_data_length": "0x00007ac9",
- "gap_set_def_phy": "0x00007ae5",
- "gap_set_ext_adv_data": "0x00007afd",
- "gap_set_ext_adv_enable": "0x00007b15",
- "gap_set_ext_adv_para": "0x00007b91",
- "gap_set_ext_scan_enable": "0x00007c71",
- "gap_set_ext_scan_para": "0x00007c89",
- "gap_set_ext_scan_response_data": "0x00007d31",
- "gap_set_host_channel_classification": "0x00007d49",
- "gap_set_periodic_adv_data": "0x00007d5d",
- "gap_set_periodic_adv_enable": "0x00007dd1",
- "gap_set_periodic_adv_para": "0x00007de5",
- "gap_set_phy": "0x00007dfd",
- "gap_set_random_device_address": "0x00007e19",
- "gap_start_ccm": "0x00007e49",
- "gap_test_end": "0x00007e7d",
- "gap_tx_test_v2": "0x00007e8d",
- "gap_tx_test_v4": "0x00007ea5",
- "gap_update_connection_parameters": "0x00007ecd",
- "gap_vendor_tx_continuous_wave": "0x00007f11",
- "gatt_client_cancel_write": "0x00008439",
- "gatt_client_discover_characteristic_descriptors": "0x0000845f",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0000849f",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000084ef",
- "gatt_client_discover_characteristics_for_service": "0x0000853f",
- "gatt_client_discover_primary_services": "0x00008575",
- "gatt_client_discover_primary_services_by_uuid128": "0x000085a7",
- "gatt_client_discover_primary_services_by_uuid16": "0x000085eb",
- "gatt_client_execute_write": "0x00008627",
- "gatt_client_find_included_services_for_service": "0x0000864d",
- "gatt_client_get_mtu": "0x0000867b",
- "gatt_client_is_ready": "0x0000871d",
- "gatt_client_listen_for_characteristic_value_updates": "0x00008733",
- "gatt_client_prepare_write": "0x00008755",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008791",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000087bb",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000087c1",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000087ef",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x000087f5",
- "gatt_client_read_multiple_characteristic_values": "0x00008823",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008853",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008881",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x000088cd",
- "gatt_client_register_handler": "0x00008919",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x00008925",
- "gatt_client_signed_write_without_response": "0x00008d55",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008e19",
- "gatt_client_write_client_characteristic_configuration": "0x00008e53",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008ea5",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008eb5",
- "gatt_client_write_long_value_of_characteristic": "0x00008ef1",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008f01",
- "gatt_client_write_value_of_characteristic": "0x00008f3d",
- "gatt_client_write_value_of_characteristic_without_response": "0x00008f73",
- "hci_add_event_handler": "0x0000a499",
- "hci_power_control": "0x0000ac91",
- "hci_register_acl_packet_handler": "0x0000ae45",
- "kv_commit": "0x0000b3b9",
- "kv_get": "0x0000b411",
- "kv_init": "0x0000b429",
- "kv_put": "0x0000b491",
- "kv_remove": "0x0000b509",
- "kv_remove_all": "0x0000b545",
- "kv_value_modified": "0x0000b589",
- "kv_visit": "0x0000b58d",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000b64d",
- "l2cap_can_send_packet_now": "0x0000b651",
- "l2cap_create_channel": "0x0000b809",
- "l2cap_disconnect": "0x0000b941",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000bb69",
- "l2cap_init": "0x0000bf61",
- "l2cap_le_send_flow_control_credit": "0x0000bfa1",
- "l2cap_max_le_mtu": "0x0000c25d",
- "l2cap_max_mtu": "0x0000c261",
- "l2cap_register_fixed_channel": "0x0000c36d",
- "l2cap_register_packet_handler": "0x0000c389",
- "l2cap_register_service": "0x0000c395",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c479",
- "l2cap_request_can_send_now_event": "0x0000c49d",
- "l2cap_request_connection_parameter_update": "0x0000c4b7",
- "l2cap_send": "0x0000c851",
- "l2cap_send_connectionless": "0x0000c8c9",
- "l2cap_send_connectionless3": "0x0000c959",
- "l2cap_send_echo_request": "0x0000c9f1",
- "l2cap_unregister_service": "0x0000caad",
- "le_device_db_add": "0x0000cb05",
- "le_device_db_find": "0x0000cbd9",
- "le_device_db_from_key": "0x0000cc05",
- "le_device_db_iter_cur": "0x0000cc0d",
- "le_device_db_iter_cur_key": "0x0000cc11",
- "le_device_db_iter_init": "0x0000cc15",
- "le_device_db_iter_next": "0x0000cc1d",
- "le_device_db_remove_key": "0x0000cc43",
- "ll_ackable_packet_alloc": "0x0000cc6f",
- "ll_ackable_packet_get_status": "0x0000cd77",
- "ll_ackable_packet_run": "0x0000cde9",
- "ll_ackable_packet_set_tx_data": "0x0000ce91",
- "ll_free": "0x0000ceab",
- "ll_hint_on_ce_len": "0x0000ceb5",
- "ll_legacy_adv_set_interval": "0x0000ceed",
- "ll_malloc": "0x0000cefd",
- "ll_query_timing_info": "0x0000d035",
- "ll_raw_packet_alloc": "0x0000d081",
- "ll_raw_packet_free": "0x0000d155",
- "ll_raw_packet_get_bare_rx_data": "0x0000d17f",
- "ll_raw_packet_get_rx_data": "0x0000d245",
- "ll_raw_packet_recv": "0x0000d2e5",
- "ll_raw_packet_send": "0x0000d3a1",
- "ll_raw_packet_set_bare_data": "0x0000d489",
- "ll_raw_packet_set_bare_mode": "0x0000d4c7",
- "ll_raw_packet_set_param": "0x0000d5cd",
- "ll_raw_packet_set_tx_data": "0x0000d62b",
- "ll_scan_set_fixed_channel": "0x0000d6e9",
- "ll_set_adv_access_address": "0x0000d7fd",
- "ll_set_adv_coded_scheme": "0x0000d809",
- "ll_set_conn_coded_scheme": "0x0000d839",
- "ll_set_conn_interval_unit": "0x0000d865",
- "ll_set_conn_latency": "0x0000d871",
- "ll_set_conn_tx_power": "0x0000d8a1",
- "ll_set_def_antenna": "0x0000d8e9",
- "ll_set_initiating_coded_scheme": "0x0000d905",
- "ll_set_max_conn_number": "0x0000d911",
- "nibble_for_char": "0x0001d8c5",
- "platform_32k_rc_auto_tune": "0x0001d971",
- "platform_32k_rc_tune": "0x0001d9ed",
- "platform_calibrate_32k": "0x0001da01",
- "platform_config": "0x0001da05",
- "platform_get_current_task": "0x0001dae1",
- "platform_get_gen_os_driver": "0x0001db05",
- "platform_get_heap_status": "0x0001db0d",
- "platform_get_task_handle": "0x0001db25",
- "platform_get_us_time": "0x0001db45",
- "platform_get_version": "0x0001db49",
- "platform_hrng": "0x0001db51",
- "platform_install_isr_stack": "0x0001db59",
- "platform_install_task_stack": "0x0001db65",
- "platform_patch_rf_init_data": "0x0001db9d",
- "platform_printf": "0x0001dba9",
- "platform_raise_assertion": "0x0001dbbd",
- "platform_rand": "0x0001dbd1",
- "platform_read_info": "0x0001dbd5",
- "platform_read_persistent_reg": "0x0001dc05",
- "platform_reset": "0x0001dc15",
- "platform_set_evt_callback": "0x0001dc39",
- "platform_set_irq_callback": "0x0001dc4d",
- "platform_set_rf_clk_source": "0x0001dc85",
- "platform_set_rf_init_data": "0x0001dc91",
- "platform_set_rf_power_mapping": "0x0001dc9d",
- "platform_set_timer": "0x0001dca9",
- "platform_shutdown": "0x0001dcad",
- "platform_switch_app": "0x0001dcb1",
- "platform_trace_raw": "0x0001dcdd",
- "platform_write_persistent_reg": "0x0001dcf5",
- "printf_hexdump": "0x0001dea9",
- "pvPortMalloc": "0x0001e9b9",
- "pvTaskIncrementMutexHeldCount": "0x0001eaa1",
- "pvTimerGetTimerID": "0x0001eab9",
- "pxPortInitialiseStack": "0x0001eae5",
- "reverse_128": "0x0001ec8d",
- "reverse_24": "0x0001ec93",
- "reverse_48": "0x0001ec99",
- "reverse_56": "0x0001ec9f",
- "reverse_64": "0x0001eca5",
- "reverse_bd_addr": "0x0001ecab",
- "reverse_bytes": "0x0001ecb1",
- "sm_add_event_handler": "0x0001ee3d",
- "sm_address_resolution_lookup": "0x0001ef95",
- "sm_authenticated": "0x0001f2ed",
- "sm_authorization_decline": "0x0001f2fb",
- "sm_authorization_grant": "0x0001f31b",
- "sm_authorization_state": "0x0001f33b",
- "sm_bonding_decline": "0x0001f355",
- "sm_config": "0x0001f775",
- "sm_config_conn": "0x0001f78d",
- "sm_encryption_key_size": "0x0001f943",
- "sm_just_works_confirm": "0x0001fe7d",
- "sm_le_device_key": "0x000201b9",
- "sm_passkey_input": "0x0002024f",
- "sm_private_random_address_generation_get": "0x000205fd",
- "sm_private_random_address_generation_get_mode": "0x00020605",
- "sm_private_random_address_generation_set_mode": "0x00020611",
- "sm_private_random_address_generation_set_update_period": "0x00020639",
- "sm_register_oob_data_callback": "0x00020775",
- "sm_request_pairing": "0x00020781",
- "sm_send_security_request": "0x0002119f",
- "sm_set_accepted_stk_generation_methods": "0x000211c5",
- "sm_set_authentication_requirements": "0x000211d1",
- "sm_set_encryption_key_size_range": "0x000211dd",
- "sscanf_bd_addr": "0x000215ad",
- "sysSetPublicDeviceAddr": "0x00021925",
- "uuid128_to_str": "0x00021f01",
- "uuid_add_bluetooth_prefix": "0x00021f59",
- "uuid_has_bluetooth_prefix": "0x00021f79",
- "uxListRemove": "0x00021f95",
- "uxQueueMessagesWaiting": "0x00021fbd",
- "uxQueueMessagesWaitingFromISR": "0x00021fe5",
- "uxQueueSpacesAvailable": "0x00022001",
- "uxTaskGetStackHighWaterMark": "0x0002202d",
- "uxTaskPriorityGet": "0x0002204d",
- "uxTaskPriorityGetFromISR": "0x00022069",
- "vListInitialise": "0x0002211b",
- "vListInitialiseItem": "0x00022131",
- "vListInsert": "0x00022137",
- "vListInsertEnd": "0x00022167",
- "vPortEndScheduler": "0x00022181",
- "vPortEnterCritical": "0x000221ad",
- "vPortExitCritical": "0x000221f5",
- "vPortFree": "0x00022229",
- "vPortSuppressTicksAndSleep": "0x000222bd",
- "vPortValidateInterruptPriority": "0x000223c5",
- "vQueueDelete": "0x00022421",
- "vQueueWaitForMessageRestricted": "0x0002244d",
- "vTaskDelay": "0x00022495",
- "vTaskInternalSetTimeOutState": "0x000224e1",
- "vTaskMissedYield": "0x000224f1",
- "vTaskPlaceOnEventList": "0x000224fd",
- "vTaskPlaceOnEventListRestricted": "0x00022535",
- "vTaskPriorityDisinheritAfterTimeout": "0x00022575",
- "vTaskPrioritySet": "0x00022621",
- "vTaskResume": "0x000226e9",
- "vTaskStartScheduler": "0x0002276d",
- "vTaskStepTick": "0x000227fd",
- "vTaskSuspend": "0x0002282d",
- "vTaskSuspendAll": "0x000228e9",
- "vTaskSwitchContext": "0x000228f9",
- "xPortStartScheduler": "0x000229a1",
- "xQueueAddToSet": "0x00022a65",
- "xQueueCreateCountingSemaphore": "0x00022a89",
- "xQueueCreateCountingSemaphoreStatic": "0x00022ac5",
- "xQueueCreateMutex": "0x00022b09",
- "xQueueCreateMutexStatic": "0x00022b1f",
- "xQueueCreateSet": "0x00022b39",
- "xQueueGenericCreate": "0x00022b41",
- "xQueueGenericCreateStatic": "0x00022b8d",
- "xQueueGenericReset": "0x00022bf5",
- "xQueueGenericSend": "0x00022c81",
- "xQueueGenericSendFromISR": "0x00022ded",
- "xQueueGiveFromISR": "0x00022ead",
- "xQueueGiveMutexRecursive": "0x00022f51",
- "xQueueIsQueueEmptyFromISR": "0x00022f91",
- "xQueueIsQueueFullFromISR": "0x00022fb5",
- "xQueuePeek": "0x00022fdd",
- "xQueuePeekFromISR": "0x00023105",
- "xQueueReceive": "0x00023171",
- "xQueueReceiveFromISR": "0x0002329d",
- "xQueueRemoveFromSet": "0x00023331",
- "xQueueSelectFromSet": "0x00023353",
- "xQueueSelectFromSetFromISR": "0x00023365",
- "xQueueSemaphoreTake": "0x00023379",
- "xQueueTakeMutexRecursive": "0x000234e5",
- "xTaskCheckForTimeOut": "0x00023529",
- "xTaskCreate": "0x00023599",
- "xTaskCreateStatic": "0x000235f5",
- "xTaskGetCurrentTaskHandle": "0x00023665",
- "xTaskGetSchedulerState": "0x00023671",
- "xTaskGetTickCount": "0x0002368d",
- "xTaskGetTickCountFromISR": "0x00023699",
- "xTaskIncrementTick": "0x000236a9",
- "xTaskPriorityDisinherit": "0x00023775",
- "xTaskPriorityInherit": "0x00023809",
- "xTaskRemoveFromEventList": "0x0002389d",
- "xTaskResumeAll": "0x0002391d",
- "xTaskResumeFromISR": "0x000239e5",
- "xTimerCreate": "0x00023a71",
- "xTimerCreateStatic": "0x00023aa5",
- "xTimerCreateTimerTask": "0x00023add",
- "xTimerGenericCommand": "0x00023b49",
- "xTimerGetExpiryTime": "0x00023bb9",
- "xTimerGetTimerDaemonTaskHandle": "0x00023bd9"
+ "att_dispatch_client_can_send_now": "0x00005759",
+ "att_dispatch_client_request_can_send_now_event": "0x0000575f",
+ "att_dispatch_register_client": "0x00005765",
+ "att_dispatch_register_server": "0x00005779",
+ "att_dispatch_server_can_send_now": "0x0000578d",
+ "att_dispatch_server_request_can_send_now_event": "0x00005793",
+ "att_emit_general_event": "0x00005845",
+ "att_server_can_send_packet_now": "0x00005f59",
+ "att_server_deferred_read_response": "0x00005f5d",
+ "att_server_get_mtu": "0x00005f75",
+ "att_server_indicate": "0x00005fed",
+ "att_server_init": "0x00006071",
+ "att_server_notify": "0x000060ad",
+ "att_server_register_packet_handler": "0x000061c5",
+ "att_server_request_can_send_now_event": "0x000061d1",
+ "att_set_db": "0x000061ed",
+ "att_set_read_callback": "0x00006201",
+ "att_set_write_callback": "0x0000620d",
+ "bd_addr_cmp": "0x0000637d",
+ "bd_addr_copy": "0x00006383",
+ "bd_addr_to_str": "0x0000638d",
+ "big_endian_read_16": "0x000063c5",
+ "big_endian_read_32": "0x000063cd",
+ "big_endian_store_16": "0x000063e1",
+ "big_endian_store_32": "0x000063ed",
+ "btstack_config": "0x00006541",
+ "btstack_memory_pool_create": "0x0000667f",
+ "btstack_memory_pool_free": "0x000066a9",
+ "btstack_memory_pool_get": "0x00006709",
+ "btstack_push_user_msg": "0x00006771",
+ "btstack_push_user_runnable": "0x0000677d",
+ "char_for_nibble": "0x00006a05",
+ "eTaskConfirmSleepModeStatus": "0x00006cd5",
+ "gap_add_dev_to_periodic_list": "0x000072f5",
+ "gap_add_whitelist": "0x0000730d",
+ "gap_aes_encrypt": "0x00007321",
+ "gap_clear_white_lists": "0x00007365",
+ "gap_clr_adv_set": "0x00007375",
+ "gap_clr_periodic_adv_list": "0x00007385",
+ "gap_create_connection_cancel": "0x00007395",
+ "gap_disconnect": "0x000073a5",
+ "gap_disconnect_all": "0x000073d1",
+ "gap_ext_create_connection": "0x00007411",
+ "gap_get_connection_parameter_range": "0x00007501",
+ "gap_le_read_channel_map": "0x0000753d",
+ "gap_periodic_adv_create_sync": "0x000075b1",
+ "gap_periodic_adv_create_sync_cancel": "0x000075d5",
+ "gap_periodic_adv_term_sync": "0x000075e5",
+ "gap_read_periodic_adv_list_size": "0x00007679",
+ "gap_read_phy": "0x00007689",
+ "gap_read_remote_used_features": "0x0000769d",
+ "gap_read_remote_version": "0x000076b1",
+ "gap_read_rssi": "0x000076c5",
+ "gap_remove_whitelist": "0x000076d9",
+ "gap_rmv_adv_set": "0x0000775d",
+ "gap_rmv_dev_from_periodic_list": "0x00007771",
+ "gap_rx_test_v2": "0x00007789",
+ "gap_set_adv_set_random_addr": "0x000077c9",
+ "gap_set_connection_parameter_range": "0x00007815",
+ "gap_set_data_length": "0x0000782d",
+ "gap_set_def_phy": "0x00007849",
+ "gap_set_ext_adv_data": "0x00007861",
+ "gap_set_ext_adv_enable": "0x00007879",
+ "gap_set_ext_adv_para": "0x000078f5",
+ "gap_set_ext_scan_enable": "0x000079d5",
+ "gap_set_ext_scan_para": "0x000079ed",
+ "gap_set_ext_scan_response_data": "0x00007a95",
+ "gap_set_host_channel_classification": "0x00007aad",
+ "gap_set_periodic_adv_data": "0x00007ac1",
+ "gap_set_periodic_adv_enable": "0x00007b35",
+ "gap_set_periodic_adv_para": "0x00007b49",
+ "gap_set_phy": "0x00007b61",
+ "gap_set_random_device_address": "0x00007b7d",
+ "gap_start_ccm": "0x00007bad",
+ "gap_test_end": "0x00007be1",
+ "gap_tx_test_v2": "0x00007bf1",
+ "gap_tx_test_v4": "0x00007c09",
+ "gap_update_connection_parameters": "0x00007c31",
+ "gap_vendor_tx_continuous_wave": "0x00007c75",
+ "gatt_client_cancel_write": "0x0000819d",
+ "gatt_client_discover_characteristic_descriptors": "0x000081c3",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x00008203",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x00008253",
+ "gatt_client_discover_characteristics_for_service": "0x000082a3",
+ "gatt_client_discover_primary_services": "0x000082d9",
+ "gatt_client_discover_primary_services_by_uuid128": "0x0000830b",
+ "gatt_client_discover_primary_services_by_uuid16": "0x0000834f",
+ "gatt_client_execute_write": "0x0000838b",
+ "gatt_client_find_included_services_for_service": "0x000083b1",
+ "gatt_client_get_mtu": "0x000083df",
+ "gatt_client_is_ready": "0x00008481",
+ "gatt_client_listen_for_characteristic_value_updates": "0x00008497",
+ "gatt_client_prepare_write": "0x000084b9",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x000084f5",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0000851f",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008525",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008553",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008559",
+ "gatt_client_read_multiple_characteristic_values": "0x00008587",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x000085b7",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x000085e5",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008631",
+ "gatt_client_register_handler": "0x0000867d",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x00008689",
+ "gatt_client_signed_write_without_response": "0x00008ab9",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008b7d",
+ "gatt_client_write_client_characteristic_configuration": "0x00008bb7",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008c09",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008c19",
+ "gatt_client_write_long_value_of_characteristic": "0x00008c55",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008c65",
+ "gatt_client_write_value_of_characteristic": "0x00008ca1",
+ "gatt_client_write_value_of_characteristic_without_response": "0x00008cd7",
+ "hci_add_event_handler": "0x0000a1fd",
+ "hci_power_control": "0x0000a9f5",
+ "hci_register_acl_packet_handler": "0x0000aba9",
+ "kv_commit": "0x0000b11d",
+ "kv_get": "0x0000b175",
+ "kv_init": "0x0000b18d",
+ "kv_put": "0x0000b1f5",
+ "kv_remove": "0x0000b26d",
+ "kv_remove_all": "0x0000b2a9",
+ "kv_value_modified": "0x0000b2ed",
+ "kv_visit": "0x0000b2f1",
+ "l2cap_add_event_handler": "0x0000b3a5",
+ "l2cap_can_send_packet_now": "0x0000b3b5",
+ "l2cap_create_le_credit_based_connection_request": "0x0000b571",
+ "l2cap_credit_based_send": "0x0000b6b5",
+ "l2cap_credit_based_send_continue": "0x0000b6e1",
+ "l2cap_disconnect": "0x0000b75d",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000b9ad",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000b9c9",
+ "l2cap_init": "0x0000bd9d",
+ "l2cap_le_send_flow_control_credit": "0x0000be93",
+ "l2cap_max_le_mtu": "0x0000c19d",
+ "l2cap_register_packet_handler": "0x0000c2c5",
+ "l2cap_register_service": "0x0000c2d1",
+ "l2cap_request_can_send_now_event": "0x0000c3e1",
+ "l2cap_request_connection_parameter_update": "0x0000c3fb",
+ "l2cap_send_echo_request": "0x0000c8cd",
+ "l2cap_unregister_service": "0x0000c98d",
+ "le_device_db_add": "0x0000c9e5",
+ "le_device_db_find": "0x0000cab9",
+ "le_device_db_from_key": "0x0000cae5",
+ "le_device_db_iter_cur": "0x0000caed",
+ "le_device_db_iter_cur_key": "0x0000caf1",
+ "le_device_db_iter_init": "0x0000caf5",
+ "le_device_db_iter_next": "0x0000cafd",
+ "le_device_db_remove_key": "0x0000cb23",
+ "ll_ackable_packet_alloc": "0x0000cb4f",
+ "ll_ackable_packet_get_status": "0x0000cc57",
+ "ll_ackable_packet_run": "0x0000ccc9",
+ "ll_ackable_packet_set_tx_data": "0x0000cd71",
+ "ll_free": "0x0000cd8b",
+ "ll_hint_on_ce_len": "0x0000cd95",
+ "ll_legacy_adv_set_interval": "0x0000cdcd",
+ "ll_malloc": "0x0000cddd",
+ "ll_query_timing_info": "0x0000cf15",
+ "ll_raw_packet_alloc": "0x0000cf61",
+ "ll_raw_packet_free": "0x0000d035",
+ "ll_raw_packet_get_bare_rx_data": "0x0000d05f",
+ "ll_raw_packet_get_rx_data": "0x0000d125",
+ "ll_raw_packet_recv": "0x0000d1c5",
+ "ll_raw_packet_send": "0x0000d281",
+ "ll_raw_packet_set_bare_data": "0x0000d369",
+ "ll_raw_packet_set_bare_mode": "0x0000d3a7",
+ "ll_raw_packet_set_param": "0x0000d4ad",
+ "ll_raw_packet_set_tx_data": "0x0000d50b",
+ "ll_scan_set_fixed_channel": "0x0000d5c9",
+ "ll_set_adv_access_address": "0x0000d6dd",
+ "ll_set_adv_coded_scheme": "0x0000d6e9",
+ "ll_set_conn_coded_scheme": "0x0000d719",
+ "ll_set_conn_interval_unit": "0x0000d745",
+ "ll_set_conn_latency": "0x0000d751",
+ "ll_set_conn_tx_power": "0x0000d781",
+ "ll_set_def_antenna": "0x0000d7c9",
+ "ll_set_initiating_coded_scheme": "0x0000d7e5",
+ "ll_set_max_conn_number": "0x0000d7f1",
+ "nibble_for_char": "0x0001d7a9",
+ "platform_32k_rc_auto_tune": "0x0001d855",
+ "platform_32k_rc_tune": "0x0001d8d1",
+ "platform_calibrate_32k": "0x0001d8e5",
+ "platform_config": "0x0001d8e9",
+ "platform_get_current_task": "0x0001d9c5",
+ "platform_get_gen_os_driver": "0x0001d9e9",
+ "platform_get_heap_status": "0x0001d9f1",
+ "platform_get_task_handle": "0x0001da09",
+ "platform_get_us_time": "0x0001da29",
+ "platform_get_version": "0x0001da2d",
+ "platform_hrng": "0x0001da35",
+ "platform_install_isr_stack": "0x0001da3d",
+ "platform_install_task_stack": "0x0001da49",
+ "platform_patch_rf_init_data": "0x0001da81",
+ "platform_printf": "0x0001da8d",
+ "platform_raise_assertion": "0x0001daa1",
+ "platform_rand": "0x0001dab5",
+ "platform_read_info": "0x0001dab9",
+ "platform_read_persistent_reg": "0x0001dae9",
+ "platform_reset": "0x0001daf9",
+ "platform_set_evt_callback": "0x0001db1d",
+ "platform_set_irq_callback": "0x0001db31",
+ "platform_set_rf_clk_source": "0x0001db69",
+ "platform_set_rf_init_data": "0x0001db75",
+ "platform_set_rf_power_mapping": "0x0001db81",
+ "platform_set_timer": "0x0001db8d",
+ "platform_shutdown": "0x0001db91",
+ "platform_switch_app": "0x0001db95",
+ "platform_trace_raw": "0x0001dbc1",
+ "platform_write_persistent_reg": "0x0001dbd9",
+ "printf_hexdump": "0x0001dd8d",
+ "pvPortMalloc": "0x0001e89d",
+ "pvTaskIncrementMutexHeldCount": "0x0001e985",
+ "pvTimerGetTimerID": "0x0001e99d",
+ "pxPortInitialiseStack": "0x0001e9c9",
+ "reverse_128": "0x0001eb71",
+ "reverse_24": "0x0001eb77",
+ "reverse_48": "0x0001eb7d",
+ "reverse_56": "0x0001eb83",
+ "reverse_64": "0x0001eb89",
+ "reverse_bd_addr": "0x0001eb8f",
+ "reverse_bytes": "0x0001eb95",
+ "sm_add_event_handler": "0x0001ed21",
+ "sm_address_resolution_lookup": "0x0001ee79",
+ "sm_authenticated": "0x0001f1d1",
+ "sm_authorization_decline": "0x0001f1df",
+ "sm_authorization_grant": "0x0001f1ff",
+ "sm_authorization_state": "0x0001f21f",
+ "sm_bonding_decline": "0x0001f239",
+ "sm_config": "0x0001f659",
+ "sm_config_conn": "0x0001f671",
+ "sm_encryption_key_size": "0x0001f827",
+ "sm_just_works_confirm": "0x0001fd61",
+ "sm_le_device_key": "0x0002009d",
+ "sm_passkey_input": "0x00020133",
+ "sm_private_random_address_generation_get": "0x000204e1",
+ "sm_private_random_address_generation_get_mode": "0x000204e9",
+ "sm_private_random_address_generation_set_mode": "0x000204f5",
+ "sm_private_random_address_generation_set_update_period": "0x0002051d",
+ "sm_register_oob_data_callback": "0x00020659",
+ "sm_request_pairing": "0x00020665",
+ "sm_send_security_request": "0x00021083",
+ "sm_set_accepted_stk_generation_methods": "0x000210a9",
+ "sm_set_authentication_requirements": "0x000210b5",
+ "sm_set_encryption_key_size_range": "0x000210c1",
+ "sscanf_bd_addr": "0x00021491",
+ "sysSetPublicDeviceAddr": "0x00021809",
+ "uuid128_to_str": "0x00021de5",
+ "uuid_add_bluetooth_prefix": "0x00021e3d",
+ "uuid_has_bluetooth_prefix": "0x00021e5d",
+ "uxListRemove": "0x00021e79",
+ "uxQueueMessagesWaiting": "0x00021ea1",
+ "uxQueueMessagesWaitingFromISR": "0x00021ec9",
+ "uxQueueSpacesAvailable": "0x00021ee5",
+ "uxTaskGetStackHighWaterMark": "0x00021f11",
+ "uxTaskPriorityGet": "0x00021f31",
+ "uxTaskPriorityGetFromISR": "0x00021f4d",
+ "vListInitialise": "0x00021fff",
+ "vListInitialiseItem": "0x00022015",
+ "vListInsert": "0x0002201b",
+ "vListInsertEnd": "0x0002204b",
+ "vPortEndScheduler": "0x00022065",
+ "vPortEnterCritical": "0x00022091",
+ "vPortExitCritical": "0x000220d5",
+ "vPortFree": "0x00022109",
+ "vPortSuppressTicksAndSleep": "0x0002219d",
+ "vPortValidateInterruptPriority": "0x000222a5",
+ "vQueueDelete": "0x00022301",
+ "vQueueWaitForMessageRestricted": "0x0002232d",
+ "vTaskDelay": "0x00022375",
+ "vTaskInternalSetTimeOutState": "0x000223c1",
+ "vTaskMissedYield": "0x000223d1",
+ "vTaskPlaceOnEventList": "0x000223dd",
+ "vTaskPlaceOnEventListRestricted": "0x00022415",
+ "vTaskPriorityDisinheritAfterTimeout": "0x00022455",
+ "vTaskPrioritySet": "0x00022501",
+ "vTaskResume": "0x000225c9",
+ "vTaskStartScheduler": "0x0002264d",
+ "vTaskStepTick": "0x000226dd",
+ "vTaskSuspend": "0x0002270d",
+ "vTaskSuspendAll": "0x000227c9",
+ "vTaskSwitchContext": "0x000227d9",
+ "xPortStartScheduler": "0x00022881",
+ "xQueueAddToSet": "0x00022945",
+ "xQueueCreateCountingSemaphore": "0x00022969",
+ "xQueueCreateCountingSemaphoreStatic": "0x000229a5",
+ "xQueueCreateMutex": "0x000229e9",
+ "xQueueCreateMutexStatic": "0x000229ff",
+ "xQueueCreateSet": "0x00022a19",
+ "xQueueGenericCreate": "0x00022a21",
+ "xQueueGenericCreateStatic": "0x00022a6d",
+ "xQueueGenericReset": "0x00022ad5",
+ "xQueueGenericSend": "0x00022b61",
+ "xQueueGenericSendFromISR": "0x00022ccd",
+ "xQueueGiveFromISR": "0x00022d8d",
+ "xQueueGiveMutexRecursive": "0x00022e31",
+ "xQueueIsQueueEmptyFromISR": "0x00022e71",
+ "xQueueIsQueueFullFromISR": "0x00022e95",
+ "xQueuePeek": "0x00022ebd",
+ "xQueuePeekFromISR": "0x00022fe5",
+ "xQueueReceive": "0x00023051",
+ "xQueueReceiveFromISR": "0x0002317d",
+ "xQueueRemoveFromSet": "0x00023211",
+ "xQueueSelectFromSet": "0x00023233",
+ "xQueueSelectFromSetFromISR": "0x00023245",
+ "xQueueSemaphoreTake": "0x00023259",
+ "xQueueTakeMutexRecursive": "0x000233c5",
+ "xTaskCheckForTimeOut": "0x00023409",
+ "xTaskCreate": "0x00023479",
+ "xTaskCreateStatic": "0x000234d5",
+ "xTaskGetCurrentTaskHandle": "0x00023545",
+ "xTaskGetSchedulerState": "0x00023551",
+ "xTaskGetTickCount": "0x0002356d",
+ "xTaskGetTickCountFromISR": "0x00023579",
+ "xTaskIncrementTick": "0x00023589",
+ "xTaskPriorityDisinherit": "0x00023655",
+ "xTaskPriorityInherit": "0x000236e9",
+ "xTaskRemoveFromEventList": "0x0002377d",
+ "xTaskResumeAll": "0x000237fd",
+ "xTaskResumeFromISR": "0x000238c5",
+ "xTimerCreate": "0x00023951",
+ "xTimerCreateStatic": "0x00023985",
+ "xTimerCreateTimerTask": "0x000239bd",
+ "xTimerGenericCommand": "0x00023a29",
+ "xTimerGetExpiryTime": "0x00023a99",
+ "xTimerGetTimerDaemonTaskHandle": "0x00023ab9"
}
\ No newline at end of file
diff --git a/bundles/extension/ING9187xx/meta.json b/bundles/extension/ING9187xx/meta.json
index 12ff51343..e95db18a1 100644
--- a/bundles/extension/ING9187xx/meta.json
+++ b/bundles/extension/ING9187xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 30988
+ "size": 29980
},
"rom": {
"base": 16384,
- "size": 136292
+ "size": 136000
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/extension/ING9187xx/platform.bin b/bundles/extension/ING9187xx/platform.bin
index 6eb4f117e..ae45dbb1c 100644
Binary files a/bundles/extension/ING9187xx/platform.bin and b/bundles/extension/ING9187xx/platform.bin differ
diff --git a/bundles/extension/ING9188xx/apis.json b/bundles/extension/ING9188xx/apis.json
index a4f364c92..0c8134b14 100644
--- a/bundles/extension/ING9188xx/apis.json
+++ b/bundles/extension/ING9188xx/apis.json
@@ -1,350 +1,347 @@
{
- "att_dispatch_client_can_send_now": "0x00005b19",
- "att_dispatch_client_request_can_send_now_event": "0x00005b1f",
- "att_dispatch_register_client": "0x00005b25",
- "att_dispatch_register_server": "0x00005b39",
- "att_dispatch_server_can_send_now": "0x00005b4d",
- "att_dispatch_server_request_can_send_now_event": "0x00005b53",
- "att_emit_general_event": "0x00005c05",
- "att_server_can_send_packet_now": "0x00006319",
- "att_server_deferred_read_response": "0x0000631d",
- "att_server_get_mtu": "0x00006335",
- "att_server_indicate": "0x000063ad",
- "att_server_init": "0x00006431",
- "att_server_notify": "0x0000646d",
- "att_server_register_packet_handler": "0x00006585",
- "att_server_request_can_send_now_event": "0x00006591",
- "att_set_db": "0x000065ad",
- "att_set_read_callback": "0x000065c1",
- "att_set_write_callback": "0x000065cd",
- "bd_addr_cmp": "0x0000673d",
- "bd_addr_copy": "0x00006743",
- "bd_addr_to_str": "0x0000674d",
- "big_endian_read_16": "0x00006785",
- "big_endian_read_32": "0x0000678d",
- "big_endian_store_16": "0x000067a1",
- "big_endian_store_32": "0x000067ad",
- "btstack_config": "0x00006901",
- "btstack_memory_pool_create": "0x00006a3f",
- "btstack_memory_pool_free": "0x00006a69",
- "btstack_memory_pool_get": "0x00006ac9",
- "btstack_push_user_msg": "0x00006b31",
- "btstack_push_user_runnable": "0x00006b3d",
- "char_for_nibble": "0x00006dc5",
- "eTaskConfirmSleepModeStatus": "0x00007095",
- "gap_add_dev_to_periodic_list": "0x00007725",
- "gap_add_whitelist": "0x0000773d",
- "gap_aes_encrypt": "0x00007751",
- "gap_clear_white_lists": "0x00007795",
- "gap_clr_adv_set": "0x000077a5",
- "gap_clr_periodic_adv_list": "0x000077b5",
- "gap_create_connection_cancel": "0x000077c5",
- "gap_default_periodic_adv_sync_transfer_param": "0x000077d5",
- "gap_disconnect": "0x000077ed",
- "gap_disconnect_all": "0x00007819",
- "gap_ext_create_connection": "0x00007859",
- "gap_get_connection_parameter_range": "0x00007949",
- "gap_le_read_channel_map": "0x00007985",
- "gap_periodic_adv_create_sync": "0x000079f9",
- "gap_periodic_adv_create_sync_cancel": "0x00007a1d",
- "gap_periodic_adv_set_info_transfer": "0x00007a2d",
- "gap_periodic_adv_sync_transfer": "0x00007a45",
- "gap_periodic_adv_sync_transfer_param": "0x00007a5d",
- "gap_periodic_adv_term_sync": "0x00007a79",
- "gap_read_antenna_info": "0x00007b0d",
- "gap_read_periodic_adv_list_size": "0x00007b1d",
- "gap_read_phy": "0x00007b2d",
- "gap_read_remote_used_features": "0x00007b41",
- "gap_read_remote_version": "0x00007b55",
- "gap_read_rssi": "0x00007b69",
- "gap_remove_whitelist": "0x00007b7d",
- "gap_rmv_adv_set": "0x00007c01",
- "gap_rmv_dev_from_periodic_list": "0x00007c15",
- "gap_rx_test_v2": "0x00007c2d",
- "gap_rx_test_v3": "0x00007c45",
- "gap_set_adv_set_random_addr": "0x00007c95",
- "gap_set_connection_cte_request_enable": "0x00007ce1",
- "gap_set_connection_cte_response_enable": "0x00007cfd",
- "gap_set_connection_cte_rx_param": "0x00007d11",
- "gap_set_connection_cte_tx_param": "0x00007d6d",
- "gap_set_connection_parameter_range": "0x00007dc1",
- "gap_set_connectionless_cte_tx_enable": "0x00007dd9",
- "gap_set_connectionless_cte_tx_param": "0x00007ded",
- "gap_set_connectionless_iq_sampling_enable": "0x00007e4d",
- "gap_set_data_length": "0x00007eb1",
- "gap_set_def_phy": "0x00007ecd",
- "gap_set_ext_adv_data": "0x00007ee5",
- "gap_set_ext_adv_enable": "0x00007efd",
- "gap_set_ext_adv_para": "0x00007f79",
- "gap_set_ext_scan_enable": "0x00008059",
- "gap_set_ext_scan_para": "0x00008071",
- "gap_set_ext_scan_response_data": "0x00008119",
- "gap_set_host_channel_classification": "0x00008131",
- "gap_set_periodic_adv_data": "0x00008145",
- "gap_set_periodic_adv_enable": "0x000081b9",
- "gap_set_periodic_adv_para": "0x000081cd",
- "gap_set_periodic_adv_rx_enable": "0x000081e5",
- "gap_set_phy": "0x000081f9",
- "gap_set_random_device_address": "0x00008215",
- "gap_start_ccm": "0x00008245",
- "gap_test_end": "0x00008279",
- "gap_tx_test_v2": "0x00008289",
- "gap_tx_test_v4": "0x000082a1",
- "gap_update_connection_parameters": "0x000082c9",
- "gap_vendor_tx_continuous_wave": "0x0000830d",
- "gatt_client_cancel_write": "0x00008835",
- "gatt_client_discover_characteristic_descriptors": "0x0000885b",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0000889b",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000088eb",
- "gatt_client_discover_characteristics_for_service": "0x0000893b",
- "gatt_client_discover_primary_services": "0x00008971",
- "gatt_client_discover_primary_services_by_uuid128": "0x000089a3",
- "gatt_client_discover_primary_services_by_uuid16": "0x000089e7",
- "gatt_client_execute_write": "0x00008a23",
- "gatt_client_find_included_services_for_service": "0x00008a49",
- "gatt_client_get_mtu": "0x00008a77",
- "gatt_client_is_ready": "0x00008b19",
- "gatt_client_listen_for_characteristic_value_updates": "0x00008b2f",
- "gatt_client_prepare_write": "0x00008b51",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008b8d",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008bb7",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008bbd",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008beb",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008bf1",
- "gatt_client_read_multiple_characteristic_values": "0x00008c1f",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008c4f",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008c7d",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008cc9",
- "gatt_client_register_handler": "0x00008d15",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x00008d21",
- "gatt_client_signed_write_without_response": "0x00009151",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00009215",
- "gatt_client_write_client_characteristic_configuration": "0x0000924f",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x000092a1",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000092b1",
- "gatt_client_write_long_value_of_characteristic": "0x000092ed",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x000092fd",
- "gatt_client_write_value_of_characteristic": "0x00009339",
- "gatt_client_write_value_of_characteristic_without_response": "0x0000936f",
- "hci_add_event_handler": "0x0000a8b1",
- "hci_power_control": "0x0000b0a9",
- "hci_register_acl_packet_handler": "0x0000b25d",
- "kv_commit": "0x0000b7d1",
- "kv_get": "0x0000b829",
- "kv_init": "0x0000b841",
- "kv_put": "0x0000b8a9",
- "kv_remove": "0x0000b921",
- "kv_remove_all": "0x0000b95d",
- "kv_value_modified": "0x0000b9a1",
- "kv_visit": "0x0000b9a5",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000ba65",
- "l2cap_can_send_packet_now": "0x0000ba69",
- "l2cap_create_channel": "0x0000bc21",
- "l2cap_disconnect": "0x0000bd59",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000bf81",
- "l2cap_init": "0x0000c379",
- "l2cap_le_send_flow_control_credit": "0x0000c3b9",
- "l2cap_max_le_mtu": "0x0000c675",
- "l2cap_max_mtu": "0x0000c679",
- "l2cap_register_fixed_channel": "0x0000c785",
- "l2cap_register_packet_handler": "0x0000c7a1",
- "l2cap_register_service": "0x0000c7ad",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c891",
- "l2cap_request_can_send_now_event": "0x0000c8b5",
- "l2cap_request_connection_parameter_update": "0x0000c8cf",
- "l2cap_send": "0x0000cc69",
- "l2cap_send_connectionless": "0x0000cce1",
- "l2cap_send_connectionless3": "0x0000cd71",
- "l2cap_send_echo_request": "0x0000ce09",
- "l2cap_unregister_service": "0x0000cec5",
- "le_device_db_add": "0x0000cf1d",
- "le_device_db_find": "0x0000cff1",
- "le_device_db_from_key": "0x0000d01d",
- "le_device_db_iter_cur": "0x0000d025",
- "le_device_db_iter_cur_key": "0x0000d029",
- "le_device_db_iter_init": "0x0000d02d",
- "le_device_db_iter_next": "0x0000d035",
- "le_device_db_remove_key": "0x0000d05b",
- "ll_ackable_packet_alloc": "0x0000d087",
- "ll_ackable_packet_get_status": "0x0000d18f",
- "ll_ackable_packet_run": "0x0000d201",
- "ll_ackable_packet_set_tx_data": "0x0000d2a9",
- "ll_attach_cte_to_adv_set": "0x0000d2c5",
- "ll_free": "0x0000d45d",
- "ll_hint_on_ce_len": "0x0000d469",
- "ll_legacy_adv_set_interval": "0x0000d4a1",
- "ll_malloc": "0x0000d4b1",
- "ll_query_timing_info": "0x0000d5e9",
- "ll_raw_packet_alloc": "0x0000d635",
- "ll_raw_packet_free": "0x0000d709",
- "ll_raw_packet_get_bare_rx_data": "0x0000d733",
- "ll_raw_packet_get_iq_samples": "0x0000d7f9",
- "ll_raw_packet_get_rx_data": "0x0000d893",
- "ll_raw_packet_recv": "0x0000d935",
- "ll_raw_packet_send": "0x0000d9f1",
- "ll_raw_packet_set_bare_data": "0x0000dad9",
- "ll_raw_packet_set_bare_mode": "0x0000db17",
- "ll_raw_packet_set_fake_cte_info": "0x0000dc1d",
- "ll_raw_packet_set_param": "0x0000dc3f",
- "ll_raw_packet_set_rx_cte": "0x0000dc9d",
- "ll_raw_packet_set_tx_cte": "0x0000dd33",
- "ll_raw_packet_set_tx_data": "0x0000dd71",
- "ll_scan_set_fixed_channel": "0x0000de2d",
- "ll_scanner_enable_iq_sampling": "0x0000de39",
- "ll_set_adv_access_address": "0x0000dfe9",
- "ll_set_adv_coded_scheme": "0x0000dff5",
- "ll_set_conn_coded_scheme": "0x0000e025",
- "ll_set_conn_interval_unit": "0x0000e051",
- "ll_set_conn_latency": "0x0000e05d",
- "ll_set_conn_tx_power": "0x0000e08d",
- "ll_set_def_antenna": "0x0000e0d5",
- "ll_set_initiating_coded_scheme": "0x0000e0f1",
- "ll_set_max_conn_number": "0x0000e0fd",
- "nibble_for_char": "0x0001f091",
- "platform_32k_rc_auto_tune": "0x0001f13d",
- "platform_32k_rc_tune": "0x0001f1b9",
- "platform_calibrate_32k": "0x0001f1cd",
- "platform_config": "0x0001f1d1",
- "platform_get_current_task": "0x0001f2ad",
- "platform_get_gen_os_driver": "0x0001f2d1",
- "platform_get_heap_status": "0x0001f2d9",
- "platform_get_task_handle": "0x0001f2f1",
- "platform_get_us_time": "0x0001f311",
- "platform_get_version": "0x0001f315",
- "platform_hrng": "0x0001f31d",
- "platform_install_isr_stack": "0x0001f325",
- "platform_install_task_stack": "0x0001f331",
- "platform_patch_rf_init_data": "0x0001f369",
- "platform_printf": "0x0001f375",
- "platform_raise_assertion": "0x0001f389",
- "platform_rand": "0x0001f39d",
- "platform_read_info": "0x0001f3a1",
- "platform_read_persistent_reg": "0x0001f3d1",
- "platform_reset": "0x0001f3e1",
- "platform_set_evt_callback": "0x0001f405",
- "platform_set_irq_callback": "0x0001f419",
- "platform_set_rf_clk_source": "0x0001f451",
- "platform_set_rf_init_data": "0x0001f45d",
- "platform_set_rf_power_mapping": "0x0001f469",
- "platform_set_timer": "0x0001f475",
- "platform_shutdown": "0x0001f479",
- "platform_switch_app": "0x0001f47d",
- "platform_trace_raw": "0x0001f4a9",
- "platform_write_persistent_reg": "0x0001f4c1",
- "printf_hexdump": "0x0001f675",
- "pvPortMalloc": "0x00020185",
- "pvTaskIncrementMutexHeldCount": "0x0002026d",
- "pvTimerGetTimerID": "0x00020285",
- "pxPortInitialiseStack": "0x000202b1",
- "reverse_128": "0x00020491",
- "reverse_24": "0x00020497",
- "reverse_48": "0x0002049d",
- "reverse_56": "0x000204a3",
- "reverse_64": "0x000204a9",
- "reverse_bd_addr": "0x000204af",
- "reverse_bytes": "0x000204b5",
- "sm_add_event_handler": "0x00020795",
- "sm_address_resolution_lookup": "0x000208ed",
- "sm_authenticated": "0x00020c45",
- "sm_authorization_decline": "0x00020c53",
- "sm_authorization_grant": "0x00020c73",
- "sm_authorization_state": "0x00020c93",
- "sm_bonding_decline": "0x00020cad",
- "sm_config": "0x000210cd",
- "sm_config_conn": "0x000210e5",
- "sm_encryption_key_size": "0x0002129b",
- "sm_just_works_confirm": "0x000217d5",
- "sm_le_device_key": "0x00021b11",
- "sm_passkey_input": "0x00021ba7",
- "sm_private_random_address_generation_get": "0x00021f55",
- "sm_private_random_address_generation_get_mode": "0x00021f5d",
- "sm_private_random_address_generation_set_mode": "0x00021f69",
- "sm_private_random_address_generation_set_update_period": "0x00021f91",
- "sm_register_oob_data_callback": "0x000220cd",
- "sm_request_pairing": "0x000220d9",
- "sm_send_security_request": "0x00022af7",
- "sm_set_accepted_stk_generation_methods": "0x00022b1d",
- "sm_set_authentication_requirements": "0x00022b29",
- "sm_set_encryption_key_size_range": "0x00022b35",
- "sscanf_bd_addr": "0x00022f05",
- "sysSetPublicDeviceAddr": "0x0002327d",
- "uuid128_to_str": "0x000239ed",
- "uuid_add_bluetooth_prefix": "0x00023a45",
- "uuid_has_bluetooth_prefix": "0x00023a65",
- "uxListRemove": "0x00023a81",
- "uxQueueMessagesWaiting": "0x00023aa9",
- "uxQueueMessagesWaitingFromISR": "0x00023ad1",
- "uxQueueSpacesAvailable": "0x00023aed",
- "uxTaskGetStackHighWaterMark": "0x00023b19",
- "uxTaskPriorityGet": "0x00023b39",
- "uxTaskPriorityGetFromISR": "0x00023b55",
- "vListInitialise": "0x00023c07",
- "vListInitialiseItem": "0x00023c1d",
- "vListInsert": "0x00023c23",
- "vListInsertEnd": "0x00023c53",
- "vPortEndScheduler": "0x00023c6d",
- "vPortEnterCritical": "0x00023c99",
- "vPortExitCritical": "0x00023ce1",
- "vPortFree": "0x00023d15",
- "vPortSuppressTicksAndSleep": "0x00023da9",
- "vPortValidateInterruptPriority": "0x00023eb1",
- "vQueueDelete": "0x00023f0d",
- "vQueueWaitForMessageRestricted": "0x00023f39",
- "vTaskDelay": "0x00023f81",
- "vTaskInternalSetTimeOutState": "0x00023fcd",
- "vTaskMissedYield": "0x00023fdd",
- "vTaskPlaceOnEventList": "0x00023fe9",
- "vTaskPlaceOnEventListRestricted": "0x00024021",
- "vTaskPriorityDisinheritAfterTimeout": "0x00024061",
- "vTaskPrioritySet": "0x0002410d",
- "vTaskResume": "0x000241d5",
- "vTaskStartScheduler": "0x00024259",
- "vTaskStepTick": "0x000242e9",
- "vTaskSuspend": "0x00024319",
- "vTaskSuspendAll": "0x000243d5",
- "vTaskSwitchContext": "0x000243e5",
- "xPortStartScheduler": "0x0002448d",
- "xQueueAddToSet": "0x00024551",
- "xQueueCreateCountingSemaphore": "0x00024575",
- "xQueueCreateCountingSemaphoreStatic": "0x000245b1",
- "xQueueCreateMutex": "0x000245f5",
- "xQueueCreateMutexStatic": "0x0002460b",
- "xQueueCreateSet": "0x00024625",
- "xQueueGenericCreate": "0x0002462d",
- "xQueueGenericCreateStatic": "0x00024679",
- "xQueueGenericReset": "0x000246e1",
- "xQueueGenericSend": "0x0002476d",
- "xQueueGenericSendFromISR": "0x000248d9",
- "xQueueGiveFromISR": "0x00024999",
- "xQueueGiveMutexRecursive": "0x00024a3d",
- "xQueueIsQueueEmptyFromISR": "0x00024a7d",
- "xQueueIsQueueFullFromISR": "0x00024aa1",
- "xQueuePeek": "0x00024ac9",
- "xQueuePeekFromISR": "0x00024bf1",
- "xQueueReceive": "0x00024c5d",
- "xQueueReceiveFromISR": "0x00024d89",
- "xQueueRemoveFromSet": "0x00024e1d",
- "xQueueSelectFromSet": "0x00024e3f",
- "xQueueSelectFromSetFromISR": "0x00024e51",
- "xQueueSemaphoreTake": "0x00024e65",
- "xQueueTakeMutexRecursive": "0x00024fd1",
- "xTaskCheckForTimeOut": "0x00025015",
- "xTaskCreate": "0x00025085",
- "xTaskCreateStatic": "0x000250e1",
- "xTaskGetCurrentTaskHandle": "0x00025151",
- "xTaskGetSchedulerState": "0x0002515d",
- "xTaskGetTickCount": "0x00025179",
- "xTaskGetTickCountFromISR": "0x00025185",
- "xTaskIncrementTick": "0x00025195",
- "xTaskPriorityDisinherit": "0x00025261",
- "xTaskPriorityInherit": "0x000252f5",
- "xTaskRemoveFromEventList": "0x00025389",
- "xTaskResumeAll": "0x00025409",
- "xTaskResumeFromISR": "0x000254d1",
- "xTimerCreate": "0x0002555d",
- "xTimerCreateStatic": "0x00025591",
- "xTimerCreateTimerTask": "0x000255c9",
- "xTimerGenericCommand": "0x00025635",
- "xTimerGetExpiryTime": "0x000256a5",
- "xTimerGetTimerDaemonTaskHandle": "0x000256c5"
+ "att_dispatch_client_can_send_now": "0x0000587d",
+ "att_dispatch_client_request_can_send_now_event": "0x00005883",
+ "att_dispatch_register_client": "0x00005889",
+ "att_dispatch_register_server": "0x0000589d",
+ "att_dispatch_server_can_send_now": "0x000058b1",
+ "att_dispatch_server_request_can_send_now_event": "0x000058b7",
+ "att_emit_general_event": "0x00005969",
+ "att_server_can_send_packet_now": "0x0000607d",
+ "att_server_deferred_read_response": "0x00006081",
+ "att_server_get_mtu": "0x00006099",
+ "att_server_indicate": "0x00006111",
+ "att_server_init": "0x00006195",
+ "att_server_notify": "0x000061d1",
+ "att_server_register_packet_handler": "0x000062e9",
+ "att_server_request_can_send_now_event": "0x000062f5",
+ "att_set_db": "0x00006311",
+ "att_set_read_callback": "0x00006325",
+ "att_set_write_callback": "0x00006331",
+ "bd_addr_cmp": "0x000064a1",
+ "bd_addr_copy": "0x000064a7",
+ "bd_addr_to_str": "0x000064b1",
+ "big_endian_read_16": "0x000064e9",
+ "big_endian_read_32": "0x000064f1",
+ "big_endian_store_16": "0x00006505",
+ "big_endian_store_32": "0x00006511",
+ "btstack_config": "0x00006665",
+ "btstack_memory_pool_create": "0x000067a3",
+ "btstack_memory_pool_free": "0x000067cd",
+ "btstack_memory_pool_get": "0x0000682d",
+ "btstack_push_user_msg": "0x00006895",
+ "btstack_push_user_runnable": "0x000068a1",
+ "char_for_nibble": "0x00006b29",
+ "eTaskConfirmSleepModeStatus": "0x00006df9",
+ "gap_add_dev_to_periodic_list": "0x00007489",
+ "gap_add_whitelist": "0x000074a1",
+ "gap_aes_encrypt": "0x000074b5",
+ "gap_clear_white_lists": "0x000074f9",
+ "gap_clr_adv_set": "0x00007509",
+ "gap_clr_periodic_adv_list": "0x00007519",
+ "gap_create_connection_cancel": "0x00007529",
+ "gap_default_periodic_adv_sync_transfer_param": "0x00007539",
+ "gap_disconnect": "0x00007551",
+ "gap_disconnect_all": "0x0000757d",
+ "gap_ext_create_connection": "0x000075bd",
+ "gap_get_connection_parameter_range": "0x000076ad",
+ "gap_le_read_channel_map": "0x000076e9",
+ "gap_periodic_adv_create_sync": "0x0000775d",
+ "gap_periodic_adv_create_sync_cancel": "0x00007781",
+ "gap_periodic_adv_set_info_transfer": "0x00007791",
+ "gap_periodic_adv_sync_transfer": "0x000077a9",
+ "gap_periodic_adv_sync_transfer_param": "0x000077c1",
+ "gap_periodic_adv_term_sync": "0x000077dd",
+ "gap_read_antenna_info": "0x00007871",
+ "gap_read_periodic_adv_list_size": "0x00007881",
+ "gap_read_phy": "0x00007891",
+ "gap_read_remote_used_features": "0x000078a5",
+ "gap_read_remote_version": "0x000078b9",
+ "gap_read_rssi": "0x000078cd",
+ "gap_remove_whitelist": "0x000078e1",
+ "gap_rmv_adv_set": "0x00007965",
+ "gap_rmv_dev_from_periodic_list": "0x00007979",
+ "gap_rx_test_v2": "0x00007991",
+ "gap_rx_test_v3": "0x000079a9",
+ "gap_set_adv_set_random_addr": "0x000079f9",
+ "gap_set_connection_cte_request_enable": "0x00007a45",
+ "gap_set_connection_cte_response_enable": "0x00007a61",
+ "gap_set_connection_cte_rx_param": "0x00007a75",
+ "gap_set_connection_cte_tx_param": "0x00007ad1",
+ "gap_set_connection_parameter_range": "0x00007b25",
+ "gap_set_connectionless_cte_tx_enable": "0x00007b3d",
+ "gap_set_connectionless_cte_tx_param": "0x00007b51",
+ "gap_set_connectionless_iq_sampling_enable": "0x00007bb1",
+ "gap_set_data_length": "0x00007c15",
+ "gap_set_def_phy": "0x00007c31",
+ "gap_set_ext_adv_data": "0x00007c49",
+ "gap_set_ext_adv_enable": "0x00007c61",
+ "gap_set_ext_adv_para": "0x00007cdd",
+ "gap_set_ext_scan_enable": "0x00007dbd",
+ "gap_set_ext_scan_para": "0x00007dd5",
+ "gap_set_ext_scan_response_data": "0x00007e7d",
+ "gap_set_host_channel_classification": "0x00007e95",
+ "gap_set_periodic_adv_data": "0x00007ea9",
+ "gap_set_periodic_adv_enable": "0x00007f1d",
+ "gap_set_periodic_adv_para": "0x00007f31",
+ "gap_set_periodic_adv_rx_enable": "0x00007f49",
+ "gap_set_phy": "0x00007f5d",
+ "gap_set_random_device_address": "0x00007f79",
+ "gap_start_ccm": "0x00007fa9",
+ "gap_test_end": "0x00007fdd",
+ "gap_tx_test_v2": "0x00007fed",
+ "gap_tx_test_v4": "0x00008005",
+ "gap_update_connection_parameters": "0x0000802d",
+ "gap_vendor_tx_continuous_wave": "0x00008071",
+ "gatt_client_cancel_write": "0x00008599",
+ "gatt_client_discover_characteristic_descriptors": "0x000085bf",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000085ff",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0000864f",
+ "gatt_client_discover_characteristics_for_service": "0x0000869f",
+ "gatt_client_discover_primary_services": "0x000086d5",
+ "gatt_client_discover_primary_services_by_uuid128": "0x00008707",
+ "gatt_client_discover_primary_services_by_uuid16": "0x0000874b",
+ "gatt_client_execute_write": "0x00008787",
+ "gatt_client_find_included_services_for_service": "0x000087ad",
+ "gatt_client_get_mtu": "0x000087db",
+ "gatt_client_is_ready": "0x0000887d",
+ "gatt_client_listen_for_characteristic_value_updates": "0x00008893",
+ "gatt_client_prepare_write": "0x000088b5",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x000088f1",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0000891b",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008921",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0000894f",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008955",
+ "gatt_client_read_multiple_characteristic_values": "0x00008983",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x000089b3",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x000089e1",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008a2d",
+ "gatt_client_register_handler": "0x00008a79",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x00008a85",
+ "gatt_client_signed_write_without_response": "0x00008eb5",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008f79",
+ "gatt_client_write_client_characteristic_configuration": "0x00008fb3",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00009005",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00009015",
+ "gatt_client_write_long_value_of_characteristic": "0x00009051",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00009061",
+ "gatt_client_write_value_of_characteristic": "0x0000909d",
+ "gatt_client_write_value_of_characteristic_without_response": "0x000090d3",
+ "hci_add_event_handler": "0x0000a615",
+ "hci_power_control": "0x0000ae0d",
+ "hci_register_acl_packet_handler": "0x0000afc1",
+ "kv_commit": "0x0000b535",
+ "kv_get": "0x0000b58d",
+ "kv_init": "0x0000b5a5",
+ "kv_put": "0x0000b60d",
+ "kv_remove": "0x0000b685",
+ "kv_remove_all": "0x0000b6c1",
+ "kv_value_modified": "0x0000b705",
+ "kv_visit": "0x0000b709",
+ "l2cap_add_event_handler": "0x0000b7bd",
+ "l2cap_can_send_packet_now": "0x0000b7cd",
+ "l2cap_create_le_credit_based_connection_request": "0x0000b989",
+ "l2cap_credit_based_send": "0x0000bacd",
+ "l2cap_credit_based_send_continue": "0x0000baf9",
+ "l2cap_disconnect": "0x0000bb75",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000bdc5",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000bde1",
+ "l2cap_init": "0x0000c1b5",
+ "l2cap_le_send_flow_control_credit": "0x0000c2ab",
+ "l2cap_max_le_mtu": "0x0000c5b5",
+ "l2cap_register_packet_handler": "0x0000c6dd",
+ "l2cap_register_service": "0x0000c6e9",
+ "l2cap_request_can_send_now_event": "0x0000c7f9",
+ "l2cap_request_connection_parameter_update": "0x0000c813",
+ "l2cap_send_echo_request": "0x0000cce5",
+ "l2cap_unregister_service": "0x0000cda5",
+ "le_device_db_add": "0x0000cdfd",
+ "le_device_db_find": "0x0000ced1",
+ "le_device_db_from_key": "0x0000cefd",
+ "le_device_db_iter_cur": "0x0000cf05",
+ "le_device_db_iter_cur_key": "0x0000cf09",
+ "le_device_db_iter_init": "0x0000cf0d",
+ "le_device_db_iter_next": "0x0000cf15",
+ "le_device_db_remove_key": "0x0000cf3b",
+ "ll_ackable_packet_alloc": "0x0000cf67",
+ "ll_ackable_packet_get_status": "0x0000d06f",
+ "ll_ackable_packet_run": "0x0000d0e1",
+ "ll_ackable_packet_set_tx_data": "0x0000d189",
+ "ll_attach_cte_to_adv_set": "0x0000d1a5",
+ "ll_free": "0x0000d33d",
+ "ll_hint_on_ce_len": "0x0000d349",
+ "ll_legacy_adv_set_interval": "0x0000d381",
+ "ll_malloc": "0x0000d391",
+ "ll_query_timing_info": "0x0000d4c9",
+ "ll_raw_packet_alloc": "0x0000d515",
+ "ll_raw_packet_free": "0x0000d5e9",
+ "ll_raw_packet_get_bare_rx_data": "0x0000d613",
+ "ll_raw_packet_get_iq_samples": "0x0000d6d9",
+ "ll_raw_packet_get_rx_data": "0x0000d773",
+ "ll_raw_packet_recv": "0x0000d815",
+ "ll_raw_packet_send": "0x0000d8d1",
+ "ll_raw_packet_set_bare_data": "0x0000d9b9",
+ "ll_raw_packet_set_bare_mode": "0x0000d9f7",
+ "ll_raw_packet_set_fake_cte_info": "0x0000dafd",
+ "ll_raw_packet_set_param": "0x0000db1f",
+ "ll_raw_packet_set_rx_cte": "0x0000db7d",
+ "ll_raw_packet_set_tx_cte": "0x0000dc13",
+ "ll_raw_packet_set_tx_data": "0x0000dc51",
+ "ll_scan_set_fixed_channel": "0x0000dd0d",
+ "ll_scanner_enable_iq_sampling": "0x0000dd19",
+ "ll_set_adv_access_address": "0x0000dec9",
+ "ll_set_adv_coded_scheme": "0x0000ded5",
+ "ll_set_conn_coded_scheme": "0x0000df05",
+ "ll_set_conn_interval_unit": "0x0000df31",
+ "ll_set_conn_latency": "0x0000df3d",
+ "ll_set_conn_tx_power": "0x0000df6d",
+ "ll_set_def_antenna": "0x0000dfb5",
+ "ll_set_initiating_coded_scheme": "0x0000dfd1",
+ "ll_set_max_conn_number": "0x0000dfdd",
+ "nibble_for_char": "0x0001ef75",
+ "platform_32k_rc_auto_tune": "0x0001f021",
+ "platform_32k_rc_tune": "0x0001f09d",
+ "platform_calibrate_32k": "0x0001f0b1",
+ "platform_config": "0x0001f0b5",
+ "platform_get_current_task": "0x0001f191",
+ "platform_get_gen_os_driver": "0x0001f1b5",
+ "platform_get_heap_status": "0x0001f1bd",
+ "platform_get_task_handle": "0x0001f1d5",
+ "platform_get_us_time": "0x0001f1f5",
+ "platform_get_version": "0x0001f1f9",
+ "platform_hrng": "0x0001f201",
+ "platform_install_isr_stack": "0x0001f209",
+ "platform_install_task_stack": "0x0001f215",
+ "platform_patch_rf_init_data": "0x0001f24d",
+ "platform_printf": "0x0001f259",
+ "platform_raise_assertion": "0x0001f26d",
+ "platform_rand": "0x0001f281",
+ "platform_read_info": "0x0001f285",
+ "platform_read_persistent_reg": "0x0001f2b5",
+ "platform_reset": "0x0001f2c5",
+ "platform_set_evt_callback": "0x0001f2e9",
+ "platform_set_irq_callback": "0x0001f2fd",
+ "platform_set_rf_clk_source": "0x0001f335",
+ "platform_set_rf_init_data": "0x0001f341",
+ "platform_set_rf_power_mapping": "0x0001f34d",
+ "platform_set_timer": "0x0001f359",
+ "platform_shutdown": "0x0001f35d",
+ "platform_switch_app": "0x0001f361",
+ "platform_trace_raw": "0x0001f38d",
+ "platform_write_persistent_reg": "0x0001f3a5",
+ "printf_hexdump": "0x0001f559",
+ "pvPortMalloc": "0x00020069",
+ "pvTaskIncrementMutexHeldCount": "0x00020151",
+ "pvTimerGetTimerID": "0x00020169",
+ "pxPortInitialiseStack": "0x00020195",
+ "reverse_128": "0x00020375",
+ "reverse_24": "0x0002037b",
+ "reverse_48": "0x00020381",
+ "reverse_56": "0x00020387",
+ "reverse_64": "0x0002038d",
+ "reverse_bd_addr": "0x00020393",
+ "reverse_bytes": "0x00020399",
+ "sm_add_event_handler": "0x00020679",
+ "sm_address_resolution_lookup": "0x000207d1",
+ "sm_authenticated": "0x00020b29",
+ "sm_authorization_decline": "0x00020b37",
+ "sm_authorization_grant": "0x00020b57",
+ "sm_authorization_state": "0x00020b77",
+ "sm_bonding_decline": "0x00020b91",
+ "sm_config": "0x00020fb1",
+ "sm_config_conn": "0x00020fc9",
+ "sm_encryption_key_size": "0x0002117f",
+ "sm_just_works_confirm": "0x000216b9",
+ "sm_le_device_key": "0x000219f5",
+ "sm_passkey_input": "0x00021a8b",
+ "sm_private_random_address_generation_get": "0x00021e39",
+ "sm_private_random_address_generation_get_mode": "0x00021e41",
+ "sm_private_random_address_generation_set_mode": "0x00021e4d",
+ "sm_private_random_address_generation_set_update_period": "0x00021e75",
+ "sm_register_oob_data_callback": "0x00021fb1",
+ "sm_request_pairing": "0x00021fbd",
+ "sm_send_security_request": "0x000229db",
+ "sm_set_accepted_stk_generation_methods": "0x00022a01",
+ "sm_set_authentication_requirements": "0x00022a0d",
+ "sm_set_encryption_key_size_range": "0x00022a19",
+ "sscanf_bd_addr": "0x00022de9",
+ "sysSetPublicDeviceAddr": "0x00023161",
+ "uuid128_to_str": "0x000238d1",
+ "uuid_add_bluetooth_prefix": "0x00023929",
+ "uuid_has_bluetooth_prefix": "0x00023949",
+ "uxListRemove": "0x00023965",
+ "uxQueueMessagesWaiting": "0x0002398d",
+ "uxQueueMessagesWaitingFromISR": "0x000239b5",
+ "uxQueueSpacesAvailable": "0x000239d1",
+ "uxTaskGetStackHighWaterMark": "0x000239fd",
+ "uxTaskPriorityGet": "0x00023a1d",
+ "uxTaskPriorityGetFromISR": "0x00023a39",
+ "vListInitialise": "0x00023aeb",
+ "vListInitialiseItem": "0x00023b01",
+ "vListInsert": "0x00023b07",
+ "vListInsertEnd": "0x00023b37",
+ "vPortEndScheduler": "0x00023b51",
+ "vPortEnterCritical": "0x00023b7d",
+ "vPortExitCritical": "0x00023bc1",
+ "vPortFree": "0x00023bf5",
+ "vPortSuppressTicksAndSleep": "0x00023c89",
+ "vPortValidateInterruptPriority": "0x00023d91",
+ "vQueueDelete": "0x00023ded",
+ "vQueueWaitForMessageRestricted": "0x00023e19",
+ "vTaskDelay": "0x00023e61",
+ "vTaskInternalSetTimeOutState": "0x00023ead",
+ "vTaskMissedYield": "0x00023ebd",
+ "vTaskPlaceOnEventList": "0x00023ec9",
+ "vTaskPlaceOnEventListRestricted": "0x00023f01",
+ "vTaskPriorityDisinheritAfterTimeout": "0x00023f41",
+ "vTaskPrioritySet": "0x00023fed",
+ "vTaskResume": "0x000240b5",
+ "vTaskStartScheduler": "0x00024139",
+ "vTaskStepTick": "0x000241c9",
+ "vTaskSuspend": "0x000241f9",
+ "vTaskSuspendAll": "0x000242b5",
+ "vTaskSwitchContext": "0x000242c5",
+ "xPortStartScheduler": "0x0002436d",
+ "xQueueAddToSet": "0x00024431",
+ "xQueueCreateCountingSemaphore": "0x00024455",
+ "xQueueCreateCountingSemaphoreStatic": "0x00024491",
+ "xQueueCreateMutex": "0x000244d5",
+ "xQueueCreateMutexStatic": "0x000244eb",
+ "xQueueCreateSet": "0x00024505",
+ "xQueueGenericCreate": "0x0002450d",
+ "xQueueGenericCreateStatic": "0x00024559",
+ "xQueueGenericReset": "0x000245c1",
+ "xQueueGenericSend": "0x0002464d",
+ "xQueueGenericSendFromISR": "0x000247b9",
+ "xQueueGiveFromISR": "0x00024879",
+ "xQueueGiveMutexRecursive": "0x0002491d",
+ "xQueueIsQueueEmptyFromISR": "0x0002495d",
+ "xQueueIsQueueFullFromISR": "0x00024981",
+ "xQueuePeek": "0x000249a9",
+ "xQueuePeekFromISR": "0x00024ad1",
+ "xQueueReceive": "0x00024b3d",
+ "xQueueReceiveFromISR": "0x00024c69",
+ "xQueueRemoveFromSet": "0x00024cfd",
+ "xQueueSelectFromSet": "0x00024d1f",
+ "xQueueSelectFromSetFromISR": "0x00024d31",
+ "xQueueSemaphoreTake": "0x00024d45",
+ "xQueueTakeMutexRecursive": "0x00024eb1",
+ "xTaskCheckForTimeOut": "0x00024ef5",
+ "xTaskCreate": "0x00024f65",
+ "xTaskCreateStatic": "0x00024fc1",
+ "xTaskGetCurrentTaskHandle": "0x00025031",
+ "xTaskGetSchedulerState": "0x0002503d",
+ "xTaskGetTickCount": "0x00025059",
+ "xTaskGetTickCountFromISR": "0x00025065",
+ "xTaskIncrementTick": "0x00025075",
+ "xTaskPriorityDisinherit": "0x00025141",
+ "xTaskPriorityInherit": "0x000251d5",
+ "xTaskRemoveFromEventList": "0x00025269",
+ "xTaskResumeAll": "0x000252e9",
+ "xTaskResumeFromISR": "0x000253b1",
+ "xTimerCreate": "0x0002543d",
+ "xTimerCreateStatic": "0x00025471",
+ "xTimerCreateTimerTask": "0x000254a9",
+ "xTimerGenericCommand": "0x00025515",
+ "xTimerGetExpiryTime": "0x00025585",
+ "xTimerGetTimerDaemonTaskHandle": "0x000255a5"
}
\ No newline at end of file
diff --git a/bundles/extension/ING9188xx/meta.json b/bundles/extension/ING9188xx/meta.json
index 6fb505690..002c93187 100644
--- a/bundles/extension/ING9188xx/meta.json
+++ b/bundles/extension/ING9188xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 30988
+ "size": 29980
},
"rom": {
"base": 16384,
- "size": 143640
+ "size": 143348
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/extension/ING9188xx/platform.bin b/bundles/extension/ING9188xx/platform.bin
index 04514c90a..b75a174fa 100644
Binary files a/bundles/extension/ING9188xx/platform.bin and b/bundles/extension/ING9188xx/platform.bin differ
diff --git a/bundles/extension/inc/att_db.h b/bundles/extension/inc/att_db.h
index 70ec3efa3..3e656c769 100644
--- a/bundles/extension/inc/att_db.h
+++ b/bundles/extension/inc/att_db.h
@@ -3,7 +3,7 @@
* @brief API for ATT server
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -28,10 +28,10 @@ extern "C" {
* @ingroup bluetooth_host
* @{
*/
-// custom BTstack error codes
+// custom btstack error codes
#define ATT_ERROR_HCI_DISCONNECT_RECEIVED 0x1f
-// custom BTstack ATT error coders
+// custom btstack ATT error coders
#define ATT_ERROR_DATA_MISMATCH 0x7e
#define ATT_ERROR_TIMEOUT 0x7F
diff --git a/bundles/extension/inc/att_dispatch.h b/bundles/extension/inc/att_dispatch.h
index 60f62817b..9dd2608d1 100644
--- a/bundles/extension/inc/att_dispatch.h
+++ b/bundles/extension/inc/att_dispatch.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/extension/inc/btstack_defines.h b/bundles/extension/inc/btstack_defines.h
index c2ab8d11a..a8d08006c 100644
--- a/bundles/extension/inc/btstack_defines.h
+++ b/bundles/extension/inc/btstack_defines.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -53,10 +53,15 @@
#define L2CAP_SERVICE_ALREADY_REGISTERED 0x69
#define L2CAP_DATA_LEN_EXCEEDS_REMOTE_MTU 0x6A
+#define L2CAP_SERVICE_NOT_REGISTERED 0x6B
+#define L2CAP_CONNECTION_INSUFFICIENT_SECURITY 0x6C
-#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS 0x90
+#define ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS 0x90
#define ATT_HANDLE_VALUE_INDICATION_TIMEOUT 0x91
+// compatibility for typo
+#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS
+
#define GATT_CLIENT_NOT_CONNECTED 0x93
#define GATT_CLIENT_BUSY 0x94
#define GATT_CLIENT_IN_WRONG_STATE 0x95
@@ -88,22 +93,14 @@
// L2CAP EVENTS
/**
- * @format 1BH222222
- * @param status
- * @param address
- * @param handle
- * @param psm
- * @param local_cid
- * @param remote_cid
- * @param local_mtu
- * @param remote_mtu
- * @param flush_timeout
+ * @brief an L2CAP channel is opened
+ * @ref `l2cap_event_channel_opened_t`
*/
#define L2CAP_EVENT_CHANNEL_OPENED 0x70
/*
- * @format 2
- * @param local_cid
+ * @brief an L2CAP channel is closed
+ * @ref `l2cap_event_channel_closed_t`
*/
#define L2CAP_EVENT_CHANNEL_CLOSED 0x71
@@ -153,6 +150,24 @@
*/
#define L2CAP_EVENT_COMMAND_REJECT_RESPONSE 0x79
+/**
+ * @brief LE credit channel : an SDU (complete package) event
+ *
+ * Use `decode_l2cap_event(l2cap_event_complete_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_complete_sdu_t`
+*/
+#define L2CAP_EVENT_COMPLETED_SDU_PACKET 0x7A
+
+/**
+ * @brief LE credit channel : a fragment (K-frame) of an SDU event
+ *
+ * Use `decode_l2cap_event(l2cap_event_fragment_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_fragment_sdu_t`
+*/
+#define L2CAP_EVENT_FRAGMENT_SDU_PACKET 0x7B
+
/**
* @format H1
* @param handle
diff --git a/bundles/extension/inc/btstack_event.h b/bundles/extension/inc/btstack_event.h
index 4c488f787..294fb813b 100644
--- a/bundles/extension/inc/btstack_event.h
+++ b/bundles/extension/inc/btstack_event.h
@@ -4,7 +4,7 @@
*
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -783,6 +783,43 @@ static __INLINE uint8_t gap_event_dedicated_bonding_completed_get_status(const u
return *decode_event_offset(event, uint8_t, 2);
}
+typedef struct l2cap_event_complete_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ const uint8_t *payload; // payload of this SDU
+} l2cap_event_complete_sdu_t;
+
+typedef struct l2cap_event_channel_opened
+{
+ uint8_t status;
+ bd_addr_t peer_addr;
+ hci_con_handle_t conn_handle;
+ uint16_t psm;
+ uint16_t local_cid;
+ uint16_t peer_cid;
+ uint16_t local_mtu;
+ uint16_t peer_mtu;
+ uint16_t local_mps;
+ uint16_t peer_mps;
+ uint16_t flush_timeout;
+ uint16_t local_credits;
+ uint16_t peer_credits;
+} l2cap_event_channel_opened_t;
+
+typedef struct l2cap_event_channel_closed
+{
+ uint16_t local_cid;
+ uint8_t reason;
+} l2cap_event_channel_closed_t;
+
+typedef struct l2cap_event_fragment_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ uint16_t offset; // offset of this fragment within a SDU
+ uint16_t length; // length of this fragment within a SDU
+ const uint8_t *payload; // payload of this fragment
+} l2cap_event_fragment_sdu_t;
+
typedef struct event_command_complete_return_param_read_rssi
{
uint8_t status;
@@ -1226,7 +1263,9 @@ typedef enum btstack_l2cap_msg_def
#define decode_hci_event_disconn_complete(packet) decode_event_offset(packet, event_disconn_complete_t, 2)
#define decode_hci_event_vendor_ccm_complete(packet) decode_event_offset(packet, event_vendor_ccm_complete_t, 5)
-#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+
+#define decode_l2cap_event(packet, T) decode_event_offset(packet, T, 2)
/* API_END */
diff --git a/bundles/extension/inc/btstack_util.h b/bundles/extension/inc/btstack_util.h
index 3f7232fc4..5e6d0d7ef 100644
--- a/bundles/extension/inc/btstack_util.h
+++ b/bundles/extension/inc/btstack_util.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/extension/inc/gap.h b/bundles/extension/inc/gap.h
index bf5d8a140..413b9423a 100644
--- a/bundles/extension/inc/gap.h
+++ b/bundles/extension/inc/gap.h
@@ -1380,7 +1380,7 @@ void hci_add_event_handler(btstack_packet_callback_registration_t * callback_han
void hci_register_acl_packet_handler(btstack_packet_handler_t handler);
/**
- * @brief Requests the change of BTstack power mode.
+ * @brief Requests the change of btstack power mode.
*
* @param mode 0:HCI_POWER_OFF ,1:HCI_POWER_ON , 2:HCI_POWER_SLEEP
*
diff --git a/bundles/extension/inc/gatt_client.h b/bundles/extension/inc/gatt_client.h
index 910cdf251..9a036f6f6 100644
--- a/bundles/extension/inc/gatt_client.h
+++ b/bundles/extension/inc/gatt_client.h
@@ -3,7 +3,7 @@
* Copyright Message
*
* INGCHIPS confidential and proprietary.
- * COPYRIGHT (c) 2018 by INGCHIPS
+ * COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
diff --git a/bundles/extension/inc/l2cap.h b/bundles/extension/inc/l2cap.h
index f464836dc..52b0efb79 100644
--- a/bundles/extension/inc/l2cap.h
+++ b/bundles/extension/inc/l2cap.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -22,27 +22,6 @@
extern "C" {
#endif
-void l2cap_register_fixed_channel(btstack_packet_handler_t packet_handler, uint16_t channel_id);
-int l2cap_can_send_fixed_channel_packet_now(hci_con_handle_t con_handle, uint16_t channel_id);
-void l2cap_request_can_send_fix_channel_now_event(hci_con_handle_t con_handle, uint16_t channel_id);
-int l2cap_send_connectionless(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len);
-int l2cap_send_connectionless3(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len,
- const uint8_t *data3, uint16_t data3_len);
-
-int l2cap_le_send_flow_control_credit(hci_con_handle_t con_handle,uint8_t id ,uint16_t cid,uint16_t credits);
-
-// PTS Testing
-int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t len);
-
-// Used by RFCOMM - similar to l2cap_can-send_packet_now but does not check if outgoing buffer is reserved
-// int l2cap_can_send_prepared_packet_now(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
-
-
/* API_START */
/**
@@ -51,69 +30,152 @@ int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t
void l2cap_init(void);
/**
- * @brief Registers packet handler for LE Connection Parameter Update events
+ * @brief add event handler with packet type `L2CAP_EVENT_PACKET`
+ *
+ * Note: Event code includes:
+ * * L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE
+ *
+ * @param[in] callback_handler the handler to be chained together
*/
-void l2cap_register_packet_handler(btstack_packet_handler_t handler);
+void l2cap_add_event_handler(btstack_packet_callback_registration_t *callback_handler);
/**
- * @brief Get max MTU for Classic connections based on btstack configuration
+ * @brief Registers packet handler for LE Connection Parameter Update related events
+ *
+ * Note: Packet type `HCI_EVENT_PACKET`. Event code includes:
+ * * L2CAP_EVENT_COMMAND_REJECT_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST
+ *
+ * @param[in] handler the callback function
*/
-uint16_t l2cap_max_mtu(void);
+void l2cap_register_packet_handler(btstack_packet_handler_t handler);
/**
* @brief Get max MTU for LE connections based on btstack configuration
+ *
+ * @return max LE MTU
*/
uint16_t l2cap_max_le_mtu(void);
-/**
- * @brief Creates L2CAP channel to the PSM of a remote device with baseband address. A new baseband connection will be initiated if necessary.
- * @param packet_handler
- * @param address
- * @param psm
- * @param mtu
- * @param local_cid
- * @param status
- */
-uint8_t l2cap_create_channel(btstack_packet_handler_t packet_handler, bd_addr_t address, uint16_t psm, uint16_t mtu, uint16_t * out_local_cid);
+#define l2cap_max_mtu l2cap_max_le_mtu
/**
* @brief Disconnects L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] reason reason (ignored)
*/
void l2cap_disconnect(uint16_t local_cid, uint8_t reason);
/**
* @brief Queries the maximal transfer unit (MTU) for L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @return peer MTU
*/
-uint16_t l2cap_get_remote_mtu_for_local_cid(uint16_t local_cid);
+uint16_t l2cap_get_peer_mtu_for_local_cid(uint16_t local_cid);
/**
- * @brief Sends L2CAP data packet to the channel with given identifier.
+ * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ *
+ * Note: Before creating a connection with a SPSM, the service must be registered.
+ *
+ * @param[in] packet_handler packet handler
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] mtu MTU (23..max, max = l2cap_max_le_mtu())
+ * when mtu = 0, max LE MTU is used
+ * @param[in] security_level security level
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_ALREADY_REGISTERED
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-int l2cap_send(uint16_t local_cid, uint8_t *data, uint16_t len);
+uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu,
+ gap_security_level_t security_level);
/**
- * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ * @brief Unregisters L2CAP service with given PSM.
+ *
+ * @param[in] psm SPSM (LE_PSM)
*/
-uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu, gap_security_level_t security_level);
+void l2cap_unregister_service(uint16_t psm);
/**
- * @brief Unregisters L2CAP service with given PSM. On embedded systems, use NULL for connection parameter.
+ * @brief Create a credit based connection for SPSM
+ *
+ *
+ * @param[in] credits initial credits assigned to peer
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] handle connection handle
+ * @param[out] local_cid identifier of the newly create channel
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_NOT_REGISTERED
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ * * L2CAP_CONNECTION_INSUFFICIENT_SECURITY
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-void l2cap_unregister_service(uint16_t psm);
+uint8_t l2cap_create_le_credit_based_connection_request(uint16_t credits, uint16_t psm, uint16_t handle, uint16_t *local_cid);
/**
- * @brief Accepts incoming L2CAP connection.
+ * @brief Get credits information of a credit based connection
+ *
+ * `local_credits`: how many K-frames the peer is capable to receive,
+ * i.e. how many K-frames we (the _local_) can transmit;
+ *
+ * `peer_credits`: `local_credits` in the peer.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] peer_credits peer credits at present
+ * @param[in] local_credits local credits at present
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_accept_connection(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
+uint8_t l2cap_get_le_credit_based_connection_credits(uint16_t local_cid,
+ uint32_t *peer_credits, uint32_t *local_credits);
+/**
+ * @brief send an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data data of the SDU
+ * @param[in] len total length of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * (see `l2cap_credit_based_send_continue`)
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+int l2cap_credit_based_send(uint16_t local_cid, const uint8_t *data, uint16_t len);
/**
- * @brief Deny incoming L2CAP connection.
+ * @brief continue sending an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data remaining data of the SDU that has not been sent
+ * @param[in] len length of remaining data of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_decline_connection(uint16_t local_cid, uint8_t reason);
-// WARNING: ^^^ this API is not available in this release
+int l2cap_credit_based_send_continue(uint16_t local_cid, const uint8_t *data, uint16_t len);
+/**
+ * @brief add more credits to the peer of the specified channel, or rather notify
+ * the peer that _local_ are capable of receiving more K-frames.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] credits credits to be added to the peer
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+uint8_t l2cap_le_send_flow_control_credit(uint16_t local_cid, uint16_t credits);
/**
* @brief Check if outgoing buffer is available and that there's space on the Bluetooth module
@@ -124,42 +186,45 @@ int l2cap_can_send_packet_now(uint16_t local_cid);
* @brief Request emission of L2CAP_EVENT_CAN_SEND_NOW as soon as possible
* @note L2CAP_EVENT_CAN_SEND_NOW might be emitted during call to this function
* so packet handler should be ready to handle it
- * @param local_cid
+ * @param[in] local_cid local channel identifier
*/
void l2cap_request_can_send_now_event(uint16_t local_cid);
/**
* @brief Request an update of the connection parameter for a given LE connection
- * @param handle
- * @param conn_interval_min (unit: 1.25ms)
- * @param conn_interval_max (unit: 1.25ms)
- * @param conn_latency
- * @param supervision_timeout (unit: 10ms)
- * @returns 0 if ok
- */
-int l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
+ *
+ * Note: only Peripheral role can call this API.
+ *
+ * @param[in] handle connection handle
+ * @param[in] conn_interval_min (unit: 1.25ms)
+ * @param[in] conn_interval_max (unit: 1.25ms)
+ * @param[in] conn_latency slave latency
+ * @param[in] supervision_timeout (unit: 10ms)
+ * @returns 0 if successful else error occurs:
+ * * ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER
+ */
+uint8_t l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
uint16_t conn_interval_max, uint16_t conn_latency, uint16_t supervision_timeout);
-#ifdef CONNECTION_PARAMETER_DYNAMICALLY_ADJUST
-uint8_t l2cap_update_MTU_on_LL_link(l2cap_channel_t * channel);
-#endif
+/** @brief for PTS Testing
+ */
+uint8_t l2cap_send_echo_request(hci_con_handle_t con_handle, const uint8_t *data, uint16_t len);
/* API_END */
#ifdef __cplusplus
}
#endif
-/*to define the error result of the connection response*/
-#ifdef L2CAP_CREDIT_BASED_FLOW_CONTROL_MODE
-#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
-#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
-#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
-#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
-#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
-#endif
+
+/* Error result of the connection response */
+#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
+#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
+#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
+#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
+#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
#endif // __L2CAP_H
diff --git a/bundles/extension/inc/le_device_db.h b/bundles/extension/inc/le_device_db.h
index 03f8e550f..b81d04f5a 100644
--- a/bundles/extension/inc/le_device_db.h
+++ b/bundles/extension/inc/le_device_db.h
@@ -41,15 +41,9 @@ typedef struct le_device_memory_db {
#pragma pack (pop)
-typedef struct white_list
-{
- uint8_t addr_type;
- bd_addr_t addr;
-}white_list_t;
-
/**
- LE Device DB for pure LE Peripherals is only required for signed writes
+ LE Device DB is only required for signed writes
Per bonded device, it can store
- it stores the Identity Resolving Key (IRK) and its address to resolve private addresses
@@ -60,7 +54,6 @@ typedef struct white_list
*/
-
// LE Device db interface
/* API_START */
diff --git a/bundles/extension/inc/ll_api.h b/bundles/extension/inc/ll_api.h
index 79abe0c01..e62ab33dc 100644
--- a/bundles/extension/inc/ll_api.h
+++ b/bundles/extension/inc/ll_api.h
@@ -243,14 +243,15 @@ int ll_raw_packet_set_param(struct ll_raw_packet *packet,
*
* @param[in] packet the packet object
* @param[in] header header sending before packet length
- * @param[in] freq_mhz freqency in MHz
+ * @param[in] freq_mhz frequency in MHz
* When 0: use the channel specified in `ll_raw_packet_set_param`)
* @return 0 if successful else error code
*
*
* Note: Only a subset of uint8_t are supported in `header`;
* When bare mode is used, CRC & whitening are all handled by apps;
- * When bare mode is used, `crc_init` is ignored.
+ * When bare mode is used, `crc_init` is ignored;
+ * When `freq_mhz` is not zero, BLE activities near this raw packets might be affected.
****************************************************************************************
*/
int ll_raw_packet_set_bare_mode(struct ll_raw_packet *packet,
diff --git a/bundles/extension/inc/sm.h b/bundles/extension/inc/sm.h
index 0213e5e3f..874e028a5 100644
--- a/bundles/extension/inc/sm.h
+++ b/bundles/extension/inc/sm.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/mass_conn/ING9168xx/apis.json b/bundles/mass_conn/ING9168xx/apis.json
index 1edb3b549..d9ebfb1c6 100644
--- a/bundles/mass_conn/ING9168xx/apis.json
+++ b/bundles/mass_conn/ING9168xx/apis.json
@@ -1,330 +1,327 @@
{
- "att_dispatch_client_can_send_now": "0x02004635",
- "att_dispatch_client_request_can_send_now_event": "0x0200463b",
- "att_dispatch_register_client": "0x02004641",
- "att_dispatch_register_server": "0x02004655",
- "att_dispatch_server_can_send_now": "0x02004669",
- "att_dispatch_server_request_can_send_now_event": "0x0200466f",
- "att_emit_general_event": "0x02004721",
- "att_server_can_send_packet_now": "0x02004e3d",
- "att_server_deferred_read_response": "0x02004e41",
- "att_server_get_mtu": "0x02004e59",
- "att_server_indicate": "0x02004ed1",
- "att_server_init": "0x02004f55",
- "att_server_notify": "0x02004f91",
- "att_server_register_packet_handler": "0x020050a9",
- "att_server_request_can_send_now_event": "0x020050b5",
- "att_set_db": "0x020050d1",
- "att_set_read_callback": "0x020050e5",
- "att_set_write_callback": "0x020050f1",
- "bd_addr_cmp": "0x020052d9",
- "bd_addr_copy": "0x020052df",
- "bd_addr_to_str": "0x020052e9",
- "big_endian_read_16": "0x02005321",
- "big_endian_read_32": "0x02005329",
- "big_endian_store_16": "0x0200533d",
- "big_endian_store_32": "0x02005349",
- "btstack_config": "0x020054c5",
- "btstack_memory_pool_create": "0x02005603",
- "btstack_memory_pool_free": "0x0200562d",
- "btstack_memory_pool_get": "0x0200568d",
- "btstack_push_user_msg": "0x020056f5",
- "btstack_push_user_runnable": "0x02005701",
- "char_for_nibble": "0x0200599f",
- "eTaskConfirmSleepModeStatus": "0x02005cbd",
- "gap_add_dev_to_periodic_list": "0x02006351",
- "gap_add_whitelist": "0x02006369",
- "gap_aes_encrypt": "0x0200637d",
- "gap_clear_white_lists": "0x020063c1",
- "gap_clr_adv_set": "0x020063d1",
- "gap_clr_periodic_adv_list": "0x020063e1",
- "gap_create_connection_cancel": "0x020063f1",
- "gap_default_periodic_adv_sync_transfer_param": "0x02006401",
- "gap_disconnect": "0x02006419",
- "gap_disconnect_all": "0x02006445",
- "gap_ext_create_connection": "0x02006485",
- "gap_get_connection_parameter_range": "0x02006575",
- "gap_le_read_channel_map": "0x020065b1",
- "gap_periodic_adv_create_sync": "0x02006625",
- "gap_periodic_adv_create_sync_cancel": "0x02006649",
- "gap_periodic_adv_set_info_transfer": "0x02006659",
- "gap_periodic_adv_sync_transfer": "0x02006671",
- "gap_periodic_adv_sync_transfer_param": "0x02006689",
- "gap_periodic_adv_term_sync": "0x020066a5",
- "gap_read_antenna_info": "0x02006739",
- "gap_read_periodic_adv_list_size": "0x02006749",
- "gap_read_phy": "0x02006759",
- "gap_read_remote_used_features": "0x0200676d",
- "gap_read_remote_version": "0x02006781",
- "gap_read_rssi": "0x02006795",
- "gap_remove_whitelist": "0x020067a9",
- "gap_rmv_adv_set": "0x0200682d",
- "gap_rmv_dev_from_periodic_list": "0x02006841",
- "gap_rx_test_v2": "0x02006859",
- "gap_rx_test_v3": "0x02006871",
- "gap_set_adv_set_random_addr": "0x020068c1",
- "gap_set_connection_cte_request_enable": "0x0200690d",
- "gap_set_connection_cte_response_enable": "0x02006929",
- "gap_set_connection_cte_rx_param": "0x0200693d",
- "gap_set_connection_cte_tx_param": "0x02006999",
- "gap_set_connection_parameter_range": "0x020069ed",
- "gap_set_connectionless_cte_tx_enable": "0x02006a05",
- "gap_set_connectionless_cte_tx_param": "0x02006a19",
- "gap_set_connectionless_iq_sampling_enable": "0x02006a79",
- "gap_set_data_length": "0x02006add",
- "gap_set_def_phy": "0x02006af9",
- "gap_set_ext_adv_data": "0x02006b11",
- "gap_set_ext_adv_enable": "0x02006b29",
- "gap_set_ext_adv_para": "0x02006ba5",
- "gap_set_ext_scan_enable": "0x02006c7d",
- "gap_set_ext_scan_para": "0x02006c95",
- "gap_set_ext_scan_response_data": "0x02006d3d",
- "gap_set_host_channel_classification": "0x02006d55",
- "gap_set_periodic_adv_data": "0x02006d69",
- "gap_set_periodic_adv_enable": "0x02006ddd",
- "gap_set_periodic_adv_para": "0x02006df1",
- "gap_set_periodic_adv_rx_enable": "0x02006e09",
- "gap_set_phy": "0x02006e1d",
- "gap_set_random_device_address": "0x02006e39",
- "gap_start_ccm": "0x02006e69",
- "gap_test_end": "0x02006e9d",
- "gap_tx_test_v2": "0x02006ead",
- "gap_tx_test_v4": "0x02006ec5",
- "gap_update_connection_parameters": "0x02006eed",
- "gap_vendor_tx_continuous_wave": "0x02006f31",
- "gatt_client_cancel_write": "0x02007459",
- "gatt_client_discover_characteristic_descriptors": "0x0200747f",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020074bf",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200750f",
- "gatt_client_discover_characteristics_for_service": "0x0200755f",
- "gatt_client_discover_primary_services": "0x02007595",
- "gatt_client_discover_primary_services_by_uuid128": "0x020075c7",
- "gatt_client_discover_primary_services_by_uuid16": "0x0200760b",
- "gatt_client_execute_write": "0x02007649",
- "gatt_client_find_included_services_for_service": "0x0200766f",
- "gatt_client_get_mtu": "0x0200769d",
- "gatt_client_is_ready": "0x02007761",
- "gatt_client_listen_for_characteristic_value_updates": "0x02007777",
- "gatt_client_prepare_write": "0x02007799",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020077d5",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020077ff",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007805",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x02007833",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02007839",
- "gatt_client_read_multiple_characteristic_values": "0x02007867",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007897",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x020078c5",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x02007911",
- "gatt_client_register_handler": "0x0200795d",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x02007969",
- "gatt_client_signed_write_without_response": "0x02007d9d",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007e61",
- "gatt_client_write_client_characteristic_configuration": "0x02007e9b",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007eed",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007efd",
- "gatt_client_write_long_value_of_characteristic": "0x02007f39",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007f49",
- "gatt_client_write_value_of_characteristic": "0x02007f85",
- "gatt_client_write_value_of_characteristic_without_response": "0x02007fbb",
- "hci_add_event_handler": "0x020095b1",
- "hci_power_control": "0x02009db1",
- "hci_register_acl_packet_handler": "0x02009f65",
- "kv_commit": "0x0200a495",
- "kv_get": "0x0200a4ed",
- "kv_init": "0x0200a505",
- "kv_put": "0x0200a56d",
- "kv_remove": "0x0200a5e5",
- "kv_remove_all": "0x0200a621",
- "kv_value_modified": "0x0200a665",
- "kv_visit": "0x0200a669",
- "l2cap_can_send_fixed_channel_packet_now": "0x0200a729",
- "l2cap_can_send_packet_now": "0x0200a72d",
- "l2cap_create_channel": "0x0200a8e5",
- "l2cap_disconnect": "0x0200aa21",
- "l2cap_get_remote_mtu_for_local_cid": "0x0200abe5",
- "l2cap_init": "0x0200b049",
- "l2cap_le_send_flow_control_credit": "0x0200b089",
- "l2cap_max_le_mtu": "0x0200b349",
- "l2cap_max_mtu": "0x0200b34d",
- "l2cap_register_fixed_channel": "0x0200b459",
- "l2cap_register_packet_handler": "0x0200b475",
- "l2cap_register_service": "0x0200b481",
- "l2cap_request_can_send_fix_channel_now_event": "0x0200b565",
- "l2cap_request_can_send_now_event": "0x0200b589",
- "l2cap_request_connection_parameter_update": "0x0200b5a3",
- "l2cap_send": "0x0200b951",
- "l2cap_send_connectionless": "0x0200b9c9",
- "l2cap_send_connectionless3": "0x0200ba59",
- "l2cap_send_echo_request": "0x0200baf1",
- "l2cap_unregister_service": "0x0200bbcd",
- "le_device_db_add": "0x0200bc25",
- "le_device_db_find": "0x0200bcf9",
- "le_device_db_from_key": "0x0200bd25",
- "le_device_db_iter_cur": "0x0200bd2d",
- "le_device_db_iter_cur_key": "0x0200bd31",
- "le_device_db_iter_init": "0x0200bd35",
- "le_device_db_iter_next": "0x0200bd3d",
- "le_device_db_remove_key": "0x0200bd63",
- "ll_adjust_conn_peer_tx_power": "0x0200bd91",
- "ll_free": "0x0200bdbd",
- "ll_hint_on_ce_len": "0x0200bdc9",
- "ll_legacy_adv_set_interval": "0x0200be01",
- "ll_malloc": "0x0200be11",
- "ll_scan_set_fixed_channel": "0x0200bf81",
- "ll_set_adv_access_address": "0x0200c095",
- "ll_set_adv_coded_scheme": "0x0200c0a1",
- "ll_set_conn_coded_scheme": "0x0200c0d9",
- "ll_set_conn_latency": "0x0200c105",
- "ll_set_conn_tx_power": "0x0200c135",
- "ll_set_def_antenna": "0x0200c171",
- "ll_set_initiating_coded_scheme": "0x0200c191",
- "ll_set_max_conn_number": "0x0200c19d",
- "ll_set_tx_power_range": "0x0200c239",
- "nibble_for_char": "0x0201e989",
- "platform_32k_rc_auto_tune": "0x0201ea35",
- "platform_32k_rc_tune": "0x0201ea81",
- "platform_calibrate_32k": "0x0201ea9d",
- "platform_config": "0x0201eaa1",
- "platform_get_current_task": "0x0201eb71",
- "platform_get_gen_os_driver": "0x0201eb95",
- "platform_get_heap_status": "0x0201eb9d",
- "platform_get_task_handle": "0x0201ebb5",
- "platform_get_us_time": "0x0201ebd5",
- "platform_get_version": "0x0201ebd9",
- "platform_hrng": "0x0201ebe1",
- "platform_install_isr_stack": "0x0201ebe9",
- "platform_install_task_stack": "0x0201ebf5",
- "platform_patch_rf_init_data": "0x0201ec2d",
- "platform_printf": "0x0201ec39",
- "platform_raise_assertion": "0x0201ec4d",
- "platform_rand": "0x0201ec61",
- "platform_read_info": "0x0201ec65",
- "platform_read_persistent_reg": "0x0201ec95",
- "platform_reset": "0x0201eca1",
- "platform_set_evt_callback": "0x0201eca9",
- "platform_set_irq_callback": "0x0201ecbd",
- "platform_set_rf_clk_source": "0x0201ecf5",
- "platform_set_rf_init_data": "0x0201ed01",
- "platform_set_rf_power_mapping": "0x0201ed0d",
- "platform_set_timer": "0x0201ed19",
- "platform_shutdown": "0x0201ed1d",
- "platform_switch_app": "0x0201ed21",
- "platform_trace_raw": "0x0201ed3d",
- "platform_write_persistent_reg": "0x0201ed55",
- "printf_hexdump": "0x0201ef0d",
- "pvPortMalloc": "0x0201fa01",
- "pvTaskIncrementMutexHeldCount": "0x0201fae9",
- "pvTimerGetTimerID": "0x0201fb01",
- "pxPortInitialiseStack": "0x0201fb2d",
- "reverse_128": "0x0201fd15",
- "reverse_24": "0x0201fd1b",
- "reverse_48": "0x0201fd21",
- "reverse_56": "0x0201fd27",
- "reverse_64": "0x0201fd2d",
- "reverse_bd_addr": "0x0201fd33",
- "reverse_bytes": "0x0201fd39",
- "sm_add_event_handler": "0x02020055",
- "sm_address_resolution_lookup": "0x020201ad",
- "sm_authenticated": "0x02020505",
- "sm_authorization_decline": "0x02020513",
- "sm_authorization_grant": "0x02020533",
- "sm_authorization_state": "0x02020553",
- "sm_bonding_decline": "0x0202056d",
- "sm_config": "0x02020985",
- "sm_config_conn": "0x0202099d",
- "sm_encryption_key_size": "0x02020b53",
- "sm_just_works_confirm": "0x0202108d",
- "sm_le_device_key": "0x020213c9",
- "sm_passkey_input": "0x0202145f",
- "sm_private_random_address_generation_get": "0x0202180d",
- "sm_private_random_address_generation_get_mode": "0x02021815",
- "sm_private_random_address_generation_set_mode": "0x02021821",
- "sm_private_random_address_generation_set_update_period": "0x02021849",
- "sm_register_oob_data_callback": "0x02021985",
- "sm_request_pairing": "0x02021991",
- "sm_send_security_request": "0x020223b7",
- "sm_set_accepted_stk_generation_methods": "0x020223dd",
- "sm_set_authentication_requirements": "0x020223e9",
- "sm_set_encryption_key_size_range": "0x020223f5",
- "sscanf_bd_addr": "0x02022755",
- "sysSetPublicDeviceAddr": "0x02022b1d",
- "uuid128_to_str": "0x02023265",
- "uuid_add_bluetooth_prefix": "0x020232bd",
- "uuid_has_bluetooth_prefix": "0x020232dd",
- "uxListRemove": "0x020232f9",
- "uxQueueMessagesWaiting": "0x02023321",
- "uxQueueMessagesWaitingFromISR": "0x02023349",
- "uxQueueSpacesAvailable": "0x02023365",
- "uxTaskGetStackHighWaterMark": "0x02023391",
- "uxTaskPriorityGet": "0x020233b1",
- "uxTaskPriorityGetFromISR": "0x020233cd",
- "vListInitialise": "0x0202346b",
- "vListInitialiseItem": "0x02023481",
- "vListInsert": "0x02023487",
- "vListInsertEnd": "0x020234b7",
- "vPortEndScheduler": "0x020234d1",
- "vPortEnterCritical": "0x020234fd",
- "vPortExitCritical": "0x02023545",
- "vPortFree": "0x02023579",
- "vPortSuppressTicksAndSleep": "0x0202361d",
- "vPortValidateInterruptPriority": "0x02023725",
- "vQueueDelete": "0x02023781",
- "vQueueWaitForMessageRestricted": "0x020237ad",
- "vTaskDelay": "0x020237f1",
- "vTaskInternalSetTimeOutState": "0x0202383d",
- "vTaskMissedYield": "0x0202384d",
- "vTaskPlaceOnEventList": "0x02023859",
- "vTaskPlaceOnEventListRestricted": "0x02023891",
- "vTaskPriorityDisinheritAfterTimeout": "0x020238d1",
- "vTaskPrioritySet": "0x0202397d",
- "vTaskResume": "0x02023a45",
- "vTaskStartScheduler": "0x02023ac9",
- "vTaskStepTick": "0x02023b59",
- "vTaskSuspend": "0x02023b89",
- "vTaskSuspendAll": "0x02023c45",
- "vTaskSwitchContext": "0x02023c55",
- "xPortStartScheduler": "0x02023cfd",
- "xQueueAddToSet": "0x02023dfd",
- "xQueueCreateCountingSemaphore": "0x02023e21",
- "xQueueCreateCountingSemaphoreStatic": "0x02023e5d",
- "xQueueCreateMutex": "0x02023ea1",
- "xQueueCreateMutexStatic": "0x02023eb7",
- "xQueueCreateSet": "0x02023ed1",
- "xQueueGenericCreate": "0x02023ed9",
- "xQueueGenericCreateStatic": "0x02023f25",
- "xQueueGenericReset": "0x02023f8d",
- "xQueueGenericSend": "0x02024019",
- "xQueueGenericSendFromISR": "0x02024185",
- "xQueueGiveFromISR": "0x02024245",
- "xQueueGiveMutexRecursive": "0x020242e9",
- "xQueueIsQueueEmptyFromISR": "0x02024329",
- "xQueueIsQueueFullFromISR": "0x0202434d",
- "xQueuePeek": "0x02024375",
- "xQueuePeekFromISR": "0x0202449d",
- "xQueueReceive": "0x02024509",
- "xQueueReceiveFromISR": "0x02024635",
- "xQueueRemoveFromSet": "0x020246c9",
- "xQueueSelectFromSet": "0x020246eb",
- "xQueueSelectFromSetFromISR": "0x020246fd",
- "xQueueSemaphoreTake": "0x02024711",
- "xQueueTakeMutexRecursive": "0x0202487d",
- "xTaskCheckForTimeOut": "0x020248c1",
- "xTaskCreate": "0x02024931",
- "xTaskCreateStatic": "0x0202498d",
- "xTaskGetCurrentTaskHandle": "0x020249fd",
- "xTaskGetSchedulerState": "0x02024a09",
- "xTaskGetTickCount": "0x02024a25",
- "xTaskGetTickCountFromISR": "0x02024a31",
- "xTaskIncrementTick": "0x02024a41",
- "xTaskPriorityDisinherit": "0x02024b0d",
- "xTaskPriorityInherit": "0x02024ba1",
- "xTaskRemoveFromEventList": "0x02024c35",
- "xTaskResumeAll": "0x02024cb5",
- "xTaskResumeFromISR": "0x02024d7d",
- "xTimerCreate": "0x02024e09",
- "xTimerCreateStatic": "0x02024e3d",
- "xTimerCreateTimerTask": "0x02024e75",
- "xTimerGenericCommand": "0x02024ee1",
- "xTimerGetExpiryTime": "0x02024f51",
- "xTimerGetTimerDaemonTaskHandle": "0x02024f71"
+ "att_dispatch_client_can_send_now": "0x02004379",
+ "att_dispatch_client_request_can_send_now_event": "0x0200437f",
+ "att_dispatch_register_client": "0x02004385",
+ "att_dispatch_register_server": "0x02004399",
+ "att_dispatch_server_can_send_now": "0x020043ad",
+ "att_dispatch_server_request_can_send_now_event": "0x020043b3",
+ "att_emit_general_event": "0x02004465",
+ "att_server_can_send_packet_now": "0x02004b81",
+ "att_server_deferred_read_response": "0x02004b85",
+ "att_server_get_mtu": "0x02004b9d",
+ "att_server_indicate": "0x02004c15",
+ "att_server_init": "0x02004c99",
+ "att_server_notify": "0x02004cd5",
+ "att_server_register_packet_handler": "0x02004ded",
+ "att_server_request_can_send_now_event": "0x02004df9",
+ "att_set_db": "0x02004e15",
+ "att_set_read_callback": "0x02004e29",
+ "att_set_write_callback": "0x02004e35",
+ "bd_addr_cmp": "0x0200501d",
+ "bd_addr_copy": "0x02005023",
+ "bd_addr_to_str": "0x0200502d",
+ "big_endian_read_16": "0x02005065",
+ "big_endian_read_32": "0x0200506d",
+ "big_endian_store_16": "0x02005081",
+ "big_endian_store_32": "0x0200508d",
+ "btstack_config": "0x02005209",
+ "btstack_memory_pool_create": "0x02005347",
+ "btstack_memory_pool_free": "0x02005371",
+ "btstack_memory_pool_get": "0x020053d1",
+ "btstack_push_user_msg": "0x02005439",
+ "btstack_push_user_runnable": "0x02005445",
+ "char_for_nibble": "0x020056e3",
+ "eTaskConfirmSleepModeStatus": "0x02005a29",
+ "gap_add_dev_to_periodic_list": "0x020060bd",
+ "gap_add_whitelist": "0x020060d5",
+ "gap_aes_encrypt": "0x020060e9",
+ "gap_clear_white_lists": "0x0200612d",
+ "gap_clr_adv_set": "0x0200613d",
+ "gap_clr_periodic_adv_list": "0x0200614d",
+ "gap_create_connection_cancel": "0x0200615d",
+ "gap_default_periodic_adv_sync_transfer_param": "0x0200616d",
+ "gap_disconnect": "0x02006185",
+ "gap_disconnect_all": "0x020061b1",
+ "gap_ext_create_connection": "0x020061f1",
+ "gap_get_connection_parameter_range": "0x020062e1",
+ "gap_le_read_channel_map": "0x0200631d",
+ "gap_periodic_adv_create_sync": "0x02006391",
+ "gap_periodic_adv_create_sync_cancel": "0x020063b5",
+ "gap_periodic_adv_set_info_transfer": "0x020063c5",
+ "gap_periodic_adv_sync_transfer": "0x020063dd",
+ "gap_periodic_adv_sync_transfer_param": "0x020063f5",
+ "gap_periodic_adv_term_sync": "0x02006411",
+ "gap_read_antenna_info": "0x020064a5",
+ "gap_read_periodic_adv_list_size": "0x020064b5",
+ "gap_read_phy": "0x020064c5",
+ "gap_read_remote_used_features": "0x020064d9",
+ "gap_read_remote_version": "0x020064ed",
+ "gap_read_rssi": "0x02006501",
+ "gap_remove_whitelist": "0x02006515",
+ "gap_rmv_adv_set": "0x02006599",
+ "gap_rmv_dev_from_periodic_list": "0x020065ad",
+ "gap_rx_test_v2": "0x020065c5",
+ "gap_rx_test_v3": "0x020065dd",
+ "gap_set_adv_set_random_addr": "0x0200662d",
+ "gap_set_connection_cte_request_enable": "0x02006679",
+ "gap_set_connection_cte_response_enable": "0x02006695",
+ "gap_set_connection_cte_rx_param": "0x020066a9",
+ "gap_set_connection_cte_tx_param": "0x02006705",
+ "gap_set_connection_parameter_range": "0x02006759",
+ "gap_set_connectionless_cte_tx_enable": "0x02006771",
+ "gap_set_connectionless_cte_tx_param": "0x02006785",
+ "gap_set_connectionless_iq_sampling_enable": "0x020067e5",
+ "gap_set_data_length": "0x02006849",
+ "gap_set_def_phy": "0x02006865",
+ "gap_set_ext_adv_data": "0x0200687d",
+ "gap_set_ext_adv_enable": "0x02006895",
+ "gap_set_ext_adv_para": "0x02006911",
+ "gap_set_ext_scan_enable": "0x020069e9",
+ "gap_set_ext_scan_para": "0x02006a01",
+ "gap_set_ext_scan_response_data": "0x02006aa9",
+ "gap_set_host_channel_classification": "0x02006ac1",
+ "gap_set_periodic_adv_data": "0x02006ad5",
+ "gap_set_periodic_adv_enable": "0x02006b49",
+ "gap_set_periodic_adv_para": "0x02006b5d",
+ "gap_set_periodic_adv_rx_enable": "0x02006b75",
+ "gap_set_phy": "0x02006b89",
+ "gap_set_random_device_address": "0x02006ba5",
+ "gap_start_ccm": "0x02006bd5",
+ "gap_test_end": "0x02006c09",
+ "gap_tx_test_v2": "0x02006c19",
+ "gap_tx_test_v4": "0x02006c31",
+ "gap_update_connection_parameters": "0x02006c59",
+ "gap_vendor_tx_continuous_wave": "0x02006c9d",
+ "gatt_client_cancel_write": "0x020071c5",
+ "gatt_client_discover_characteristic_descriptors": "0x020071eb",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0200722b",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200727b",
+ "gatt_client_discover_characteristics_for_service": "0x020072cb",
+ "gatt_client_discover_primary_services": "0x02007301",
+ "gatt_client_discover_primary_services_by_uuid128": "0x02007333",
+ "gatt_client_discover_primary_services_by_uuid16": "0x02007377",
+ "gatt_client_execute_write": "0x020073b5",
+ "gatt_client_find_included_services_for_service": "0x020073db",
+ "gatt_client_get_mtu": "0x02007409",
+ "gatt_client_is_ready": "0x020074cd",
+ "gatt_client_listen_for_characteristic_value_updates": "0x020074e3",
+ "gatt_client_prepare_write": "0x02007505",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007541",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200756b",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007571",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0200759f",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020075a5",
+ "gatt_client_read_multiple_characteristic_values": "0x020075d3",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007603",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007631",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x0200767d",
+ "gatt_client_register_handler": "0x020076c9",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x020076d5",
+ "gatt_client_signed_write_without_response": "0x02007b09",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007bcd",
+ "gatt_client_write_client_characteristic_configuration": "0x02007c07",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007c59",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007c69",
+ "gatt_client_write_long_value_of_characteristic": "0x02007ca5",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007cb5",
+ "gatt_client_write_value_of_characteristic": "0x02007cf1",
+ "gatt_client_write_value_of_characteristic_without_response": "0x02007d27",
+ "hci_add_event_handler": "0x0200931d",
+ "hci_power_control": "0x02009b1d",
+ "hci_register_acl_packet_handler": "0x02009cd1",
+ "kv_commit": "0x0200a201",
+ "kv_get": "0x0200a259",
+ "kv_init": "0x0200a271",
+ "kv_put": "0x0200a2d9",
+ "kv_remove": "0x0200a351",
+ "kv_remove_all": "0x0200a38d",
+ "kv_value_modified": "0x0200a3d1",
+ "kv_visit": "0x0200a3d5",
+ "l2cap_add_event_handler": "0x0200a489",
+ "l2cap_can_send_packet_now": "0x0200a499",
+ "l2cap_create_le_credit_based_connection_request": "0x0200a65d",
+ "l2cap_credit_based_send": "0x0200a7a5",
+ "l2cap_credit_based_send_continue": "0x0200a7d1",
+ "l2cap_disconnect": "0x0200a84d",
+ "l2cap_get_le_credit_based_connection_credits": "0x0200aa39",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0200aa55",
+ "l2cap_init": "0x0200ae95",
+ "l2cap_le_send_flow_control_credit": "0x0200af8b",
+ "l2cap_max_le_mtu": "0x0200b299",
+ "l2cap_register_packet_handler": "0x0200b3c1",
+ "l2cap_register_service": "0x0200b3cd",
+ "l2cap_request_can_send_now_event": "0x0200b4dd",
+ "l2cap_request_connection_parameter_update": "0x0200b4f7",
+ "l2cap_send_echo_request": "0x0200b9d9",
+ "l2cap_unregister_service": "0x0200bab9",
+ "le_device_db_add": "0x0200bb11",
+ "le_device_db_find": "0x0200bbe5",
+ "le_device_db_from_key": "0x0200bc11",
+ "le_device_db_iter_cur": "0x0200bc19",
+ "le_device_db_iter_cur_key": "0x0200bc1d",
+ "le_device_db_iter_init": "0x0200bc21",
+ "le_device_db_iter_next": "0x0200bc29",
+ "le_device_db_remove_key": "0x0200bc4f",
+ "ll_adjust_conn_peer_tx_power": "0x0200bc7d",
+ "ll_free": "0x0200bca9",
+ "ll_hint_on_ce_len": "0x0200bcb5",
+ "ll_legacy_adv_set_interval": "0x0200bced",
+ "ll_malloc": "0x0200bcfd",
+ "ll_scan_set_fixed_channel": "0x0200be6d",
+ "ll_set_adv_access_address": "0x0200bf81",
+ "ll_set_adv_coded_scheme": "0x0200bf8d",
+ "ll_set_conn_coded_scheme": "0x0200bfc5",
+ "ll_set_conn_latency": "0x0200bff1",
+ "ll_set_conn_tx_power": "0x0200c021",
+ "ll_set_def_antenna": "0x0200c05d",
+ "ll_set_initiating_coded_scheme": "0x0200c07d",
+ "ll_set_max_conn_number": "0x0200c089",
+ "ll_set_tx_power_range": "0x0200c125",
+ "nibble_for_char": "0x0201e87d",
+ "platform_32k_rc_auto_tune": "0x0201e929",
+ "platform_32k_rc_tune": "0x0201e975",
+ "platform_calibrate_32k": "0x0201e991",
+ "platform_config": "0x0201e995",
+ "platform_get_current_task": "0x0201ea65",
+ "platform_get_gen_os_driver": "0x0201ea89",
+ "platform_get_heap_status": "0x0201ea91",
+ "platform_get_task_handle": "0x0201eaa9",
+ "platform_get_us_time": "0x0201eac9",
+ "platform_get_version": "0x0201eacd",
+ "platform_hrng": "0x0201ead5",
+ "platform_install_isr_stack": "0x0201eadd",
+ "platform_install_task_stack": "0x0201eae9",
+ "platform_patch_rf_init_data": "0x0201eb21",
+ "platform_printf": "0x0201eb2d",
+ "platform_raise_assertion": "0x0201eb41",
+ "platform_rand": "0x0201eb55",
+ "platform_read_info": "0x0201eb59",
+ "platform_read_persistent_reg": "0x0201eb89",
+ "platform_reset": "0x0201eb95",
+ "platform_set_evt_callback": "0x0201eba9",
+ "platform_set_irq_callback": "0x0201ebbd",
+ "platform_set_rf_clk_source": "0x0201ebf5",
+ "platform_set_rf_init_data": "0x0201ec01",
+ "platform_set_rf_power_mapping": "0x0201ec0d",
+ "platform_set_timer": "0x0201ec19",
+ "platform_shutdown": "0x0201ec1d",
+ "platform_switch_app": "0x0201ec21",
+ "platform_trace_raw": "0x0201ec39",
+ "platform_write_persistent_reg": "0x0201ec51",
+ "printf_hexdump": "0x0201ee09",
+ "pvPortMalloc": "0x0201f8fd",
+ "pvTaskIncrementMutexHeldCount": "0x0201f9e5",
+ "pvTimerGetTimerID": "0x0201f9fd",
+ "pxPortInitialiseStack": "0x0201fa29",
+ "reverse_128": "0x0201fc11",
+ "reverse_24": "0x0201fc17",
+ "reverse_48": "0x0201fc1d",
+ "reverse_56": "0x0201fc23",
+ "reverse_64": "0x0201fc29",
+ "reverse_bd_addr": "0x0201fc2f",
+ "reverse_bytes": "0x0201fc35",
+ "sm_add_event_handler": "0x0201ff51",
+ "sm_address_resolution_lookup": "0x020200a9",
+ "sm_authenticated": "0x02020401",
+ "sm_authorization_decline": "0x0202040f",
+ "sm_authorization_grant": "0x0202042f",
+ "sm_authorization_state": "0x0202044f",
+ "sm_bonding_decline": "0x02020469",
+ "sm_config": "0x02020881",
+ "sm_config_conn": "0x02020899",
+ "sm_encryption_key_size": "0x02020a4f",
+ "sm_just_works_confirm": "0x02020f89",
+ "sm_le_device_key": "0x020212c5",
+ "sm_passkey_input": "0x0202135b",
+ "sm_private_random_address_generation_get": "0x02021709",
+ "sm_private_random_address_generation_get_mode": "0x02021711",
+ "sm_private_random_address_generation_set_mode": "0x0202171d",
+ "sm_private_random_address_generation_set_update_period": "0x02021745",
+ "sm_register_oob_data_callback": "0x02021881",
+ "sm_request_pairing": "0x0202188d",
+ "sm_send_security_request": "0x020222b3",
+ "sm_set_accepted_stk_generation_methods": "0x020222d9",
+ "sm_set_authentication_requirements": "0x020222e5",
+ "sm_set_encryption_key_size_range": "0x020222f1",
+ "sscanf_bd_addr": "0x02022651",
+ "sysSetPublicDeviceAddr": "0x02022a19",
+ "uuid128_to_str": "0x0202315d",
+ "uuid_add_bluetooth_prefix": "0x020231b5",
+ "uuid_has_bluetooth_prefix": "0x020231d5",
+ "uxListRemove": "0x020231f1",
+ "uxQueueMessagesWaiting": "0x02023219",
+ "uxQueueMessagesWaitingFromISR": "0x02023241",
+ "uxQueueSpacesAvailable": "0x0202325d",
+ "uxTaskGetStackHighWaterMark": "0x02023289",
+ "uxTaskPriorityGet": "0x020232a9",
+ "uxTaskPriorityGetFromISR": "0x020232c5",
+ "vListInitialise": "0x02023363",
+ "vListInitialiseItem": "0x02023379",
+ "vListInsert": "0x0202337f",
+ "vListInsertEnd": "0x020233af",
+ "vPortEndScheduler": "0x020233c9",
+ "vPortEnterCritical": "0x020233f5",
+ "vPortExitCritical": "0x02023439",
+ "vPortFree": "0x0202346d",
+ "vPortSuppressTicksAndSleep": "0x02023511",
+ "vPortValidateInterruptPriority": "0x02023619",
+ "vQueueDelete": "0x02023675",
+ "vQueueWaitForMessageRestricted": "0x020236a1",
+ "vTaskDelay": "0x020236e5",
+ "vTaskInternalSetTimeOutState": "0x02023731",
+ "vTaskMissedYield": "0x02023741",
+ "vTaskPlaceOnEventList": "0x0202374d",
+ "vTaskPlaceOnEventListRestricted": "0x02023785",
+ "vTaskPriorityDisinheritAfterTimeout": "0x020237c5",
+ "vTaskPrioritySet": "0x02023871",
+ "vTaskResume": "0x02023939",
+ "vTaskStartScheduler": "0x020239bd",
+ "vTaskStepTick": "0x02023a4d",
+ "vTaskSuspend": "0x02023a7d",
+ "vTaskSuspendAll": "0x02023b39",
+ "vTaskSwitchContext": "0x02023b49",
+ "xPortStartScheduler": "0x02023bf1",
+ "xQueueAddToSet": "0x02023cf1",
+ "xQueueCreateCountingSemaphore": "0x02023d15",
+ "xQueueCreateCountingSemaphoreStatic": "0x02023d51",
+ "xQueueCreateMutex": "0x02023d95",
+ "xQueueCreateMutexStatic": "0x02023dab",
+ "xQueueCreateSet": "0x02023dc5",
+ "xQueueGenericCreate": "0x02023dcd",
+ "xQueueGenericCreateStatic": "0x02023e19",
+ "xQueueGenericReset": "0x02023e81",
+ "xQueueGenericSend": "0x02023f0d",
+ "xQueueGenericSendFromISR": "0x02024079",
+ "xQueueGiveFromISR": "0x02024139",
+ "xQueueGiveMutexRecursive": "0x020241dd",
+ "xQueueIsQueueEmptyFromISR": "0x0202421d",
+ "xQueueIsQueueFullFromISR": "0x02024241",
+ "xQueuePeek": "0x02024269",
+ "xQueuePeekFromISR": "0x02024391",
+ "xQueueReceive": "0x020243fd",
+ "xQueueReceiveFromISR": "0x02024529",
+ "xQueueRemoveFromSet": "0x020245bd",
+ "xQueueSelectFromSet": "0x020245df",
+ "xQueueSelectFromSetFromISR": "0x020245f1",
+ "xQueueSemaphoreTake": "0x02024605",
+ "xQueueTakeMutexRecursive": "0x02024771",
+ "xTaskCheckForTimeOut": "0x020247b5",
+ "xTaskCreate": "0x02024825",
+ "xTaskCreateStatic": "0x02024881",
+ "xTaskGetCurrentTaskHandle": "0x020248f1",
+ "xTaskGetSchedulerState": "0x020248fd",
+ "xTaskGetTickCount": "0x02024919",
+ "xTaskGetTickCountFromISR": "0x02024925",
+ "xTaskIncrementTick": "0x02024935",
+ "xTaskPriorityDisinherit": "0x02024a01",
+ "xTaskPriorityInherit": "0x02024a95",
+ "xTaskRemoveFromEventList": "0x02024b29",
+ "xTaskResumeAll": "0x02024ba9",
+ "xTaskResumeFromISR": "0x02024c71",
+ "xTimerCreate": "0x02024cfd",
+ "xTimerCreateStatic": "0x02024d31",
+ "xTimerCreateTimerTask": "0x02024d69",
+ "xTimerGenericCommand": "0x02024dd5",
+ "xTimerGetExpiryTime": "0x02024e45",
+ "xTimerGetTimerDaemonTaskHandle": "0x02024e65"
}
\ No newline at end of file
diff --git a/bundles/mass_conn/ING9168xx/meta.json b/bundles/mass_conn/ING9168xx/meta.json
index 55844c794..915234de1 100644
--- a/bundles/mass_conn/ING9168xx/meta.json
+++ b/bundles/mass_conn/ING9168xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 23324
+ "size": 22316
},
"rom": {
"base": 33562624,
- "size": 152332
+ "size": 152060
},
"version": [
2,
0,
- 20
+ 23
]
}
\ No newline at end of file
diff --git a/bundles/mass_conn/ING9168xx/platform.bin b/bundles/mass_conn/ING9168xx/platform.bin
index 6c9d7b6fd..0933e04ee 100644
Binary files a/bundles/mass_conn/ING9168xx/platform.bin and b/bundles/mass_conn/ING9168xx/platform.bin differ
diff --git a/bundles/mass_conn/ING9187xx/apis.json b/bundles/mass_conn/ING9187xx/apis.json
index 6e8d88749..20740748e 100644
--- a/bundles/mass_conn/ING9187xx/apis.json
+++ b/bundles/mass_conn/ING9187xx/apis.json
@@ -1,315 +1,312 @@
{
- "att_dispatch_client_can_send_now": "0x000059f5",
- "att_dispatch_client_request_can_send_now_event": "0x000059fb",
- "att_dispatch_register_client": "0x00005a01",
- "att_dispatch_register_server": "0x00005a15",
- "att_dispatch_server_can_send_now": "0x00005a29",
- "att_dispatch_server_request_can_send_now_event": "0x00005a2f",
- "att_emit_general_event": "0x00005ae1",
- "att_server_can_send_packet_now": "0x000061f5",
- "att_server_deferred_read_response": "0x000061f9",
- "att_server_get_mtu": "0x00006211",
- "att_server_indicate": "0x00006289",
- "att_server_init": "0x0000630d",
- "att_server_notify": "0x00006349",
- "att_server_register_packet_handler": "0x00006461",
- "att_server_request_can_send_now_event": "0x0000646d",
- "att_set_db": "0x00006489",
- "att_set_read_callback": "0x0000649d",
- "att_set_write_callback": "0x000064a9",
- "bd_addr_cmp": "0x00006619",
- "bd_addr_copy": "0x0000661f",
- "bd_addr_to_str": "0x00006629",
- "big_endian_read_16": "0x00006661",
- "big_endian_read_32": "0x00006669",
- "big_endian_store_16": "0x0000667d",
- "big_endian_store_32": "0x00006689",
- "btstack_config": "0x000067dd",
- "btstack_memory_pool_create": "0x0000691b",
- "btstack_memory_pool_free": "0x00006945",
- "btstack_memory_pool_get": "0x000069a5",
- "btstack_push_user_msg": "0x00006a0d",
- "btstack_push_user_runnable": "0x00006a19",
- "char_for_nibble": "0x00006ca1",
- "eTaskConfirmSleepModeStatus": "0x00006f6d",
- "gap_add_dev_to_periodic_list": "0x00007581",
- "gap_add_whitelist": "0x00007599",
- "gap_aes_encrypt": "0x000075ad",
- "gap_clear_white_lists": "0x000075f1",
- "gap_clr_adv_set": "0x00007601",
- "gap_clr_periodic_adv_list": "0x00007611",
- "gap_create_connection_cancel": "0x00007621",
- "gap_disconnect": "0x00007631",
- "gap_disconnect_all": "0x0000765d",
- "gap_ext_create_connection": "0x0000769d",
- "gap_get_connection_parameter_range": "0x0000778d",
- "gap_le_read_channel_map": "0x000077c5",
- "gap_periodic_adv_create_sync": "0x00007839",
- "gap_periodic_adv_create_sync_cancel": "0x0000785d",
- "gap_periodic_adv_term_sync": "0x0000786d",
- "gap_read_periodic_adv_list_size": "0x00007901",
- "gap_read_phy": "0x00007911",
- "gap_read_remote_used_features": "0x00007925",
- "gap_read_remote_version": "0x00007939",
- "gap_read_rssi": "0x0000794d",
- "gap_remove_whitelist": "0x00007961",
- "gap_rmv_adv_set": "0x000079e5",
- "gap_rmv_dev_from_periodic_list": "0x000079f9",
- "gap_rx_test_v2": "0x00007a11",
- "gap_set_adv_set_random_addr": "0x00007a51",
- "gap_set_connection_parameter_range": "0x00007aa1",
- "gap_set_data_length": "0x00007abd",
- "gap_set_def_phy": "0x00007ad9",
- "gap_set_ext_adv_data": "0x00007af1",
- "gap_set_ext_adv_enable": "0x00007b09",
- "gap_set_ext_adv_para": "0x00007b85",
- "gap_set_ext_scan_enable": "0x00007c65",
- "gap_set_ext_scan_para": "0x00007c7d",
- "gap_set_ext_scan_response_data": "0x00007d25",
- "gap_set_host_channel_classification": "0x00007d3d",
- "gap_set_periodic_adv_data": "0x00007d51",
- "gap_set_periodic_adv_enable": "0x00007dc5",
- "gap_set_periodic_adv_para": "0x00007dd9",
- "gap_set_phy": "0x00007df1",
- "gap_set_random_device_address": "0x00007e0d",
- "gap_start_ccm": "0x00007e3d",
- "gap_test_end": "0x00007e71",
- "gap_tx_test_v2": "0x00007e81",
- "gap_tx_test_v4": "0x00007e99",
- "gap_update_connection_parameters": "0x00007ec1",
- "gap_vendor_tx_continuous_wave": "0x00007f05",
- "gatt_client_cancel_write": "0x0000842d",
- "gatt_client_discover_characteristic_descriptors": "0x00008453",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x00008493",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000084e3",
- "gatt_client_discover_characteristics_for_service": "0x00008533",
- "gatt_client_discover_primary_services": "0x00008569",
- "gatt_client_discover_primary_services_by_uuid128": "0x0000859b",
- "gatt_client_discover_primary_services_by_uuid16": "0x000085df",
- "gatt_client_execute_write": "0x0000861b",
- "gatt_client_find_included_services_for_service": "0x00008641",
- "gatt_client_get_mtu": "0x0000866f",
- "gatt_client_is_ready": "0x00008711",
- "gatt_client_listen_for_characteristic_value_updates": "0x00008727",
- "gatt_client_prepare_write": "0x00008749",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008785",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000087af",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000087b5",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000087e3",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x000087e9",
- "gatt_client_read_multiple_characteristic_values": "0x00008817",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008847",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008875",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x000088c1",
- "gatt_client_register_handler": "0x0000890d",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x00008919",
- "gatt_client_signed_write_without_response": "0x00008d49",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008e0d",
- "gatt_client_write_client_characteristic_configuration": "0x00008e47",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008e99",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008ea9",
- "gatt_client_write_long_value_of_characteristic": "0x00008ee5",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008ef5",
- "gatt_client_write_value_of_characteristic": "0x00008f31",
- "gatt_client_write_value_of_characteristic_without_response": "0x00008f67",
- "hci_add_event_handler": "0x0000a48d",
- "hci_power_control": "0x0000ac29",
- "hci_register_acl_packet_handler": "0x0000addd",
- "kv_commit": "0x0000b3bd",
- "kv_get": "0x0000b415",
- "kv_init": "0x0000b42d",
- "kv_put": "0x0000b495",
- "kv_remove": "0x0000b50d",
- "kv_remove_all": "0x0000b549",
- "kv_value_modified": "0x0000b58d",
- "kv_visit": "0x0000b591",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000b651",
- "l2cap_can_send_packet_now": "0x0000b655",
- "l2cap_create_channel": "0x0000b80d",
- "l2cap_disconnect": "0x0000b945",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000bb6d",
- "l2cap_init": "0x0000bf65",
- "l2cap_le_send_flow_control_credit": "0x0000bfa5",
- "l2cap_max_le_mtu": "0x0000c261",
- "l2cap_max_mtu": "0x0000c265",
- "l2cap_register_fixed_channel": "0x0000c371",
- "l2cap_register_packet_handler": "0x0000c38d",
- "l2cap_register_service": "0x0000c399",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c47d",
- "l2cap_request_can_send_now_event": "0x0000c4a1",
- "l2cap_request_connection_parameter_update": "0x0000c4bb",
- "l2cap_send": "0x0000c855",
- "l2cap_send_connectionless": "0x0000c8cd",
- "l2cap_send_connectionless3": "0x0000c95d",
- "l2cap_send_echo_request": "0x0000c9f5",
- "l2cap_unregister_service": "0x0000cab1",
- "le_device_db_add": "0x0000cb09",
- "le_device_db_find": "0x0000cbdd",
- "le_device_db_from_key": "0x0000cc09",
- "le_device_db_iter_cur": "0x0000cc11",
- "le_device_db_iter_cur_key": "0x0000cc15",
- "le_device_db_iter_init": "0x0000cc19",
- "le_device_db_iter_next": "0x0000cc21",
- "le_device_db_remove_key": "0x0000cc47",
- "ll_free": "0x0000cc73",
- "ll_hint_on_ce_len": "0x0000cc7d",
- "ll_legacy_adv_set_interval": "0x0000ccb5",
- "ll_malloc": "0x0000ccc5",
- "ll_query_timing_info": "0x0000cdfd",
- "ll_scan_set_fixed_channel": "0x0000cea1",
- "ll_set_adv_access_address": "0x0000cfb5",
- "ll_set_adv_coded_scheme": "0x0000cfc1",
- "ll_set_conn_coded_scheme": "0x0000cff1",
- "ll_set_conn_latency": "0x0000d01d",
- "ll_set_conn_tx_power": "0x0000d04d",
- "ll_set_def_antenna": "0x0000d095",
- "ll_set_initiating_coded_scheme": "0x0000d0b1",
- "ll_set_max_conn_number": "0x0000d0bd",
- "nibble_for_char": "0x0001cf4d",
- "platform_32k_rc_auto_tune": "0x0001cff9",
- "platform_32k_rc_tune": "0x0001d075",
- "platform_calibrate_32k": "0x0001d089",
- "platform_config": "0x0001d08d",
- "platform_get_current_task": "0x0001d169",
- "platform_get_gen_os_driver": "0x0001d18d",
- "platform_get_heap_status": "0x0001d195",
- "platform_get_task_handle": "0x0001d1ad",
- "platform_get_us_time": "0x0001d1cd",
- "platform_get_version": "0x0001d1d1",
- "platform_hrng": "0x0001d1d9",
- "platform_install_isr_stack": "0x0001d1e1",
- "platform_install_task_stack": "0x0001d1ed",
- "platform_patch_rf_init_data": "0x0001d225",
- "platform_printf": "0x0001d231",
- "platform_raise_assertion": "0x0001d245",
- "platform_rand": "0x0001d259",
- "platform_read_info": "0x0001d25d",
- "platform_read_persistent_reg": "0x0001d28d",
- "platform_reset": "0x0001d29d",
- "platform_set_evt_callback": "0x0001d2c1",
- "platform_set_irq_callback": "0x0001d2d5",
- "platform_set_rf_clk_source": "0x0001d30d",
- "platform_set_rf_init_data": "0x0001d319",
- "platform_set_rf_power_mapping": "0x0001d325",
- "platform_set_timer": "0x0001d331",
- "platform_shutdown": "0x0001d335",
- "platform_switch_app": "0x0001d339",
- "platform_trace_raw": "0x0001d365",
- "platform_write_persistent_reg": "0x0001d37d",
- "printf_hexdump": "0x0001d531",
- "pvPortMalloc": "0x0001e041",
- "pvTaskIncrementMutexHeldCount": "0x0001e129",
- "pvTimerGetTimerID": "0x0001e141",
- "pxPortInitialiseStack": "0x0001e16d",
- "reverse_128": "0x0001e315",
- "reverse_24": "0x0001e31b",
- "reverse_48": "0x0001e321",
- "reverse_56": "0x0001e327",
- "reverse_64": "0x0001e32d",
- "reverse_bd_addr": "0x0001e333",
- "reverse_bytes": "0x0001e339",
- "sm_add_event_handler": "0x0001e4a5",
- "sm_address_resolution_lookup": "0x0001e5fd",
- "sm_authenticated": "0x0001e955",
- "sm_authorization_decline": "0x0001e963",
- "sm_authorization_grant": "0x0001e983",
- "sm_authorization_state": "0x0001e9a3",
- "sm_bonding_decline": "0x0001e9bd",
- "sm_config": "0x0001eddd",
- "sm_config_conn": "0x0001edf5",
- "sm_encryption_key_size": "0x0001efab",
- "sm_just_works_confirm": "0x0001f4e5",
- "sm_le_device_key": "0x0001f821",
- "sm_passkey_input": "0x0001f8b7",
- "sm_private_random_address_generation_get": "0x0001fc65",
- "sm_private_random_address_generation_get_mode": "0x0001fc6d",
- "sm_private_random_address_generation_set_mode": "0x0001fc79",
- "sm_private_random_address_generation_set_update_period": "0x0001fca1",
- "sm_register_oob_data_callback": "0x0001fddd",
- "sm_request_pairing": "0x0001fde9",
- "sm_send_security_request": "0x00020807",
- "sm_set_accepted_stk_generation_methods": "0x0002082d",
- "sm_set_authentication_requirements": "0x00020839",
- "sm_set_encryption_key_size_range": "0x00020845",
- "sscanf_bd_addr": "0x00020ba1",
- "sysSetPublicDeviceAddr": "0x00020f19",
- "uuid128_to_str": "0x000214f5",
- "uuid_add_bluetooth_prefix": "0x0002154d",
- "uuid_has_bluetooth_prefix": "0x0002156d",
- "uxListRemove": "0x00021589",
- "uxQueueMessagesWaiting": "0x000215b1",
- "uxQueueMessagesWaitingFromISR": "0x000215d9",
- "uxQueueSpacesAvailable": "0x000215f5",
- "uxTaskGetStackHighWaterMark": "0x00021621",
- "uxTaskPriorityGet": "0x00021641",
- "uxTaskPriorityGetFromISR": "0x0002165d",
- "vListInitialise": "0x0002170f",
- "vListInitialiseItem": "0x00021725",
- "vListInsert": "0x0002172b",
- "vListInsertEnd": "0x0002175b",
- "vPortEndScheduler": "0x00021775",
- "vPortEnterCritical": "0x000217a1",
- "vPortExitCritical": "0x000217e9",
- "vPortFree": "0x0002181d",
- "vPortSuppressTicksAndSleep": "0x000218b1",
- "vPortValidateInterruptPriority": "0x000219b9",
- "vQueueDelete": "0x00021a15",
- "vQueueWaitForMessageRestricted": "0x00021a41",
- "vTaskDelay": "0x00021a89",
- "vTaskInternalSetTimeOutState": "0x00021ad5",
- "vTaskMissedYield": "0x00021ae5",
- "vTaskPlaceOnEventList": "0x00021af1",
- "vTaskPlaceOnEventListRestricted": "0x00021b29",
- "vTaskPriorityDisinheritAfterTimeout": "0x00021b69",
- "vTaskPrioritySet": "0x00021c15",
- "vTaskResume": "0x00021cdd",
- "vTaskStartScheduler": "0x00021d61",
- "vTaskStepTick": "0x00021df1",
- "vTaskSuspend": "0x00021e21",
- "vTaskSuspendAll": "0x00021edd",
- "vTaskSwitchContext": "0x00021eed",
- "xPortStartScheduler": "0x00021f95",
- "xQueueAddToSet": "0x00022059",
- "xQueueCreateCountingSemaphore": "0x0002207d",
- "xQueueCreateCountingSemaphoreStatic": "0x000220b9",
- "xQueueCreateMutex": "0x000220fd",
- "xQueueCreateMutexStatic": "0x00022113",
- "xQueueCreateSet": "0x0002212d",
- "xQueueGenericCreate": "0x00022135",
- "xQueueGenericCreateStatic": "0x00022181",
- "xQueueGenericReset": "0x000221e9",
- "xQueueGenericSend": "0x00022275",
- "xQueueGenericSendFromISR": "0x000223e1",
- "xQueueGiveFromISR": "0x000224a1",
- "xQueueGiveMutexRecursive": "0x00022545",
- "xQueueIsQueueEmptyFromISR": "0x00022585",
- "xQueueIsQueueFullFromISR": "0x000225a9",
- "xQueuePeek": "0x000225d1",
- "xQueuePeekFromISR": "0x000226f9",
- "xQueueReceive": "0x00022765",
- "xQueueReceiveFromISR": "0x00022891",
- "xQueueRemoveFromSet": "0x00022925",
- "xQueueSelectFromSet": "0x00022947",
- "xQueueSelectFromSetFromISR": "0x00022959",
- "xQueueSemaphoreTake": "0x0002296d",
- "xQueueTakeMutexRecursive": "0x00022ad9",
- "xTaskCheckForTimeOut": "0x00022b1d",
- "xTaskCreate": "0x00022b8d",
- "xTaskCreateStatic": "0x00022be9",
- "xTaskGetCurrentTaskHandle": "0x00022c59",
- "xTaskGetSchedulerState": "0x00022c65",
- "xTaskGetTickCount": "0x00022c81",
- "xTaskGetTickCountFromISR": "0x00022c8d",
- "xTaskIncrementTick": "0x00022c9d",
- "xTaskPriorityDisinherit": "0x00022d69",
- "xTaskPriorityInherit": "0x00022dfd",
- "xTaskRemoveFromEventList": "0x00022e91",
- "xTaskResumeAll": "0x00022f11",
- "xTaskResumeFromISR": "0x00022fd9",
- "xTimerCreate": "0x00023065",
- "xTimerCreateStatic": "0x00023099",
- "xTimerCreateTimerTask": "0x000230d1",
- "xTimerGenericCommand": "0x0002313d",
- "xTimerGetExpiryTime": "0x000231ad",
- "xTimerGetTimerDaemonTaskHandle": "0x000231cd"
+ "att_dispatch_client_can_send_now": "0x00005759",
+ "att_dispatch_client_request_can_send_now_event": "0x0000575f",
+ "att_dispatch_register_client": "0x00005765",
+ "att_dispatch_register_server": "0x00005779",
+ "att_dispatch_server_can_send_now": "0x0000578d",
+ "att_dispatch_server_request_can_send_now_event": "0x00005793",
+ "att_emit_general_event": "0x00005845",
+ "att_server_can_send_packet_now": "0x00005f59",
+ "att_server_deferred_read_response": "0x00005f5d",
+ "att_server_get_mtu": "0x00005f75",
+ "att_server_indicate": "0x00005fed",
+ "att_server_init": "0x00006071",
+ "att_server_notify": "0x000060ad",
+ "att_server_register_packet_handler": "0x000061c5",
+ "att_server_request_can_send_now_event": "0x000061d1",
+ "att_set_db": "0x000061ed",
+ "att_set_read_callback": "0x00006201",
+ "att_set_write_callback": "0x0000620d",
+ "bd_addr_cmp": "0x0000637d",
+ "bd_addr_copy": "0x00006383",
+ "bd_addr_to_str": "0x0000638d",
+ "big_endian_read_16": "0x000063c5",
+ "big_endian_read_32": "0x000063cd",
+ "big_endian_store_16": "0x000063e1",
+ "big_endian_store_32": "0x000063ed",
+ "btstack_config": "0x00006541",
+ "btstack_memory_pool_create": "0x0000667f",
+ "btstack_memory_pool_free": "0x000066a9",
+ "btstack_memory_pool_get": "0x00006709",
+ "btstack_push_user_msg": "0x00006771",
+ "btstack_push_user_runnable": "0x0000677d",
+ "char_for_nibble": "0x00006a05",
+ "eTaskConfirmSleepModeStatus": "0x00006cd1",
+ "gap_add_dev_to_periodic_list": "0x000072e5",
+ "gap_add_whitelist": "0x000072fd",
+ "gap_aes_encrypt": "0x00007311",
+ "gap_clear_white_lists": "0x00007355",
+ "gap_clr_adv_set": "0x00007365",
+ "gap_clr_periodic_adv_list": "0x00007375",
+ "gap_create_connection_cancel": "0x00007385",
+ "gap_disconnect": "0x00007395",
+ "gap_disconnect_all": "0x000073c1",
+ "gap_ext_create_connection": "0x00007401",
+ "gap_get_connection_parameter_range": "0x000074f1",
+ "gap_le_read_channel_map": "0x00007529",
+ "gap_periodic_adv_create_sync": "0x0000759d",
+ "gap_periodic_adv_create_sync_cancel": "0x000075c1",
+ "gap_periodic_adv_term_sync": "0x000075d1",
+ "gap_read_periodic_adv_list_size": "0x00007665",
+ "gap_read_phy": "0x00007675",
+ "gap_read_remote_used_features": "0x00007689",
+ "gap_read_remote_version": "0x0000769d",
+ "gap_read_rssi": "0x000076b1",
+ "gap_remove_whitelist": "0x000076c5",
+ "gap_rmv_adv_set": "0x00007749",
+ "gap_rmv_dev_from_periodic_list": "0x0000775d",
+ "gap_rx_test_v2": "0x00007775",
+ "gap_set_adv_set_random_addr": "0x000077b5",
+ "gap_set_connection_parameter_range": "0x00007805",
+ "gap_set_data_length": "0x00007821",
+ "gap_set_def_phy": "0x0000783d",
+ "gap_set_ext_adv_data": "0x00007855",
+ "gap_set_ext_adv_enable": "0x0000786d",
+ "gap_set_ext_adv_para": "0x000078e9",
+ "gap_set_ext_scan_enable": "0x000079c9",
+ "gap_set_ext_scan_para": "0x000079e1",
+ "gap_set_ext_scan_response_data": "0x00007a89",
+ "gap_set_host_channel_classification": "0x00007aa1",
+ "gap_set_periodic_adv_data": "0x00007ab5",
+ "gap_set_periodic_adv_enable": "0x00007b29",
+ "gap_set_periodic_adv_para": "0x00007b3d",
+ "gap_set_phy": "0x00007b55",
+ "gap_set_random_device_address": "0x00007b71",
+ "gap_start_ccm": "0x00007ba1",
+ "gap_test_end": "0x00007bd5",
+ "gap_tx_test_v2": "0x00007be5",
+ "gap_tx_test_v4": "0x00007bfd",
+ "gap_update_connection_parameters": "0x00007c25",
+ "gap_vendor_tx_continuous_wave": "0x00007c69",
+ "gatt_client_cancel_write": "0x00008191",
+ "gatt_client_discover_characteristic_descriptors": "0x000081b7",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000081f7",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x00008247",
+ "gatt_client_discover_characteristics_for_service": "0x00008297",
+ "gatt_client_discover_primary_services": "0x000082cd",
+ "gatt_client_discover_primary_services_by_uuid128": "0x000082ff",
+ "gatt_client_discover_primary_services_by_uuid16": "0x00008343",
+ "gatt_client_execute_write": "0x0000837f",
+ "gatt_client_find_included_services_for_service": "0x000083a5",
+ "gatt_client_get_mtu": "0x000083d3",
+ "gatt_client_is_ready": "0x00008475",
+ "gatt_client_listen_for_characteristic_value_updates": "0x0000848b",
+ "gatt_client_prepare_write": "0x000084ad",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x000084e9",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008513",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008519",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008547",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x0000854d",
+ "gatt_client_read_multiple_characteristic_values": "0x0000857b",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x000085ab",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x000085d9",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008625",
+ "gatt_client_register_handler": "0x00008671",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x0000867d",
+ "gatt_client_signed_write_without_response": "0x00008aad",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008b71",
+ "gatt_client_write_client_characteristic_configuration": "0x00008bab",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008bfd",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008c0d",
+ "gatt_client_write_long_value_of_characteristic": "0x00008c49",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008c59",
+ "gatt_client_write_value_of_characteristic": "0x00008c95",
+ "gatt_client_write_value_of_characteristic_without_response": "0x00008ccb",
+ "hci_add_event_handler": "0x0000a1f1",
+ "hci_power_control": "0x0000a98d",
+ "hci_register_acl_packet_handler": "0x0000ab41",
+ "kv_commit": "0x0000b121",
+ "kv_get": "0x0000b179",
+ "kv_init": "0x0000b191",
+ "kv_put": "0x0000b1f9",
+ "kv_remove": "0x0000b271",
+ "kv_remove_all": "0x0000b2ad",
+ "kv_value_modified": "0x0000b2f1",
+ "kv_visit": "0x0000b2f5",
+ "l2cap_add_event_handler": "0x0000b3a9",
+ "l2cap_can_send_packet_now": "0x0000b3b9",
+ "l2cap_create_le_credit_based_connection_request": "0x0000b575",
+ "l2cap_credit_based_send": "0x0000b6b9",
+ "l2cap_credit_based_send_continue": "0x0000b6e5",
+ "l2cap_disconnect": "0x0000b761",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000b9b1",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000b9cd",
+ "l2cap_init": "0x0000bda1",
+ "l2cap_le_send_flow_control_credit": "0x0000be97",
+ "l2cap_max_le_mtu": "0x0000c1a1",
+ "l2cap_register_packet_handler": "0x0000c2c9",
+ "l2cap_register_service": "0x0000c2d5",
+ "l2cap_request_can_send_now_event": "0x0000c3e5",
+ "l2cap_request_connection_parameter_update": "0x0000c3ff",
+ "l2cap_send_echo_request": "0x0000c8d1",
+ "l2cap_unregister_service": "0x0000c991",
+ "le_device_db_add": "0x0000c9e9",
+ "le_device_db_find": "0x0000cabd",
+ "le_device_db_from_key": "0x0000cae9",
+ "le_device_db_iter_cur": "0x0000caf1",
+ "le_device_db_iter_cur_key": "0x0000caf5",
+ "le_device_db_iter_init": "0x0000caf9",
+ "le_device_db_iter_next": "0x0000cb01",
+ "le_device_db_remove_key": "0x0000cb27",
+ "ll_free": "0x0000cb53",
+ "ll_hint_on_ce_len": "0x0000cb5d",
+ "ll_legacy_adv_set_interval": "0x0000cb95",
+ "ll_malloc": "0x0000cba5",
+ "ll_query_timing_info": "0x0000ccdd",
+ "ll_scan_set_fixed_channel": "0x0000cd81",
+ "ll_set_adv_access_address": "0x0000ce95",
+ "ll_set_adv_coded_scheme": "0x0000cea1",
+ "ll_set_conn_coded_scheme": "0x0000ced1",
+ "ll_set_conn_latency": "0x0000cefd",
+ "ll_set_conn_tx_power": "0x0000cf2d",
+ "ll_set_def_antenna": "0x0000cf75",
+ "ll_set_initiating_coded_scheme": "0x0000cf91",
+ "ll_set_max_conn_number": "0x0000cf9d",
+ "nibble_for_char": "0x0001ce2d",
+ "platform_32k_rc_auto_tune": "0x0001ced9",
+ "platform_32k_rc_tune": "0x0001cf55",
+ "platform_calibrate_32k": "0x0001cf69",
+ "platform_config": "0x0001cf6d",
+ "platform_get_current_task": "0x0001d049",
+ "platform_get_gen_os_driver": "0x0001d06d",
+ "platform_get_heap_status": "0x0001d075",
+ "platform_get_task_handle": "0x0001d08d",
+ "platform_get_us_time": "0x0001d0ad",
+ "platform_get_version": "0x0001d0b1",
+ "platform_hrng": "0x0001d0b9",
+ "platform_install_isr_stack": "0x0001d0c1",
+ "platform_install_task_stack": "0x0001d0cd",
+ "platform_patch_rf_init_data": "0x0001d105",
+ "platform_printf": "0x0001d111",
+ "platform_raise_assertion": "0x0001d125",
+ "platform_rand": "0x0001d139",
+ "platform_read_info": "0x0001d13d",
+ "platform_read_persistent_reg": "0x0001d16d",
+ "platform_reset": "0x0001d17d",
+ "platform_set_evt_callback": "0x0001d1a1",
+ "platform_set_irq_callback": "0x0001d1b5",
+ "platform_set_rf_clk_source": "0x0001d1ed",
+ "platform_set_rf_init_data": "0x0001d1f9",
+ "platform_set_rf_power_mapping": "0x0001d205",
+ "platform_set_timer": "0x0001d211",
+ "platform_shutdown": "0x0001d215",
+ "platform_switch_app": "0x0001d219",
+ "platform_trace_raw": "0x0001d245",
+ "platform_write_persistent_reg": "0x0001d25d",
+ "printf_hexdump": "0x0001d411",
+ "pvPortMalloc": "0x0001df21",
+ "pvTaskIncrementMutexHeldCount": "0x0001e009",
+ "pvTimerGetTimerID": "0x0001e021",
+ "pxPortInitialiseStack": "0x0001e04d",
+ "reverse_128": "0x0001e1f5",
+ "reverse_24": "0x0001e1fb",
+ "reverse_48": "0x0001e201",
+ "reverse_56": "0x0001e207",
+ "reverse_64": "0x0001e20d",
+ "reverse_bd_addr": "0x0001e213",
+ "reverse_bytes": "0x0001e219",
+ "sm_add_event_handler": "0x0001e385",
+ "sm_address_resolution_lookup": "0x0001e4dd",
+ "sm_authenticated": "0x0001e835",
+ "sm_authorization_decline": "0x0001e843",
+ "sm_authorization_grant": "0x0001e863",
+ "sm_authorization_state": "0x0001e883",
+ "sm_bonding_decline": "0x0001e89d",
+ "sm_config": "0x0001ecbd",
+ "sm_config_conn": "0x0001ecd5",
+ "sm_encryption_key_size": "0x0001ee8b",
+ "sm_just_works_confirm": "0x0001f3c5",
+ "sm_le_device_key": "0x0001f701",
+ "sm_passkey_input": "0x0001f797",
+ "sm_private_random_address_generation_get": "0x0001fb45",
+ "sm_private_random_address_generation_get_mode": "0x0001fb4d",
+ "sm_private_random_address_generation_set_mode": "0x0001fb59",
+ "sm_private_random_address_generation_set_update_period": "0x0001fb81",
+ "sm_register_oob_data_callback": "0x0001fcbd",
+ "sm_request_pairing": "0x0001fcc9",
+ "sm_send_security_request": "0x000206e7",
+ "sm_set_accepted_stk_generation_methods": "0x0002070d",
+ "sm_set_authentication_requirements": "0x00020719",
+ "sm_set_encryption_key_size_range": "0x00020725",
+ "sscanf_bd_addr": "0x00020a81",
+ "sysSetPublicDeviceAddr": "0x00020df9",
+ "uuid128_to_str": "0x000213d5",
+ "uuid_add_bluetooth_prefix": "0x0002142d",
+ "uuid_has_bluetooth_prefix": "0x0002144d",
+ "uxListRemove": "0x00021469",
+ "uxQueueMessagesWaiting": "0x00021491",
+ "uxQueueMessagesWaitingFromISR": "0x000214b9",
+ "uxQueueSpacesAvailable": "0x000214d5",
+ "uxTaskGetStackHighWaterMark": "0x00021501",
+ "uxTaskPriorityGet": "0x00021521",
+ "uxTaskPriorityGetFromISR": "0x0002153d",
+ "vListInitialise": "0x000215ef",
+ "vListInitialiseItem": "0x00021605",
+ "vListInsert": "0x0002160b",
+ "vListInsertEnd": "0x0002163b",
+ "vPortEndScheduler": "0x00021655",
+ "vPortEnterCritical": "0x00021681",
+ "vPortExitCritical": "0x000216c5",
+ "vPortFree": "0x000216f9",
+ "vPortSuppressTicksAndSleep": "0x0002178d",
+ "vPortValidateInterruptPriority": "0x00021895",
+ "vQueueDelete": "0x000218f1",
+ "vQueueWaitForMessageRestricted": "0x0002191d",
+ "vTaskDelay": "0x00021965",
+ "vTaskInternalSetTimeOutState": "0x000219b1",
+ "vTaskMissedYield": "0x000219c1",
+ "vTaskPlaceOnEventList": "0x000219cd",
+ "vTaskPlaceOnEventListRestricted": "0x00021a05",
+ "vTaskPriorityDisinheritAfterTimeout": "0x00021a45",
+ "vTaskPrioritySet": "0x00021af1",
+ "vTaskResume": "0x00021bb9",
+ "vTaskStartScheduler": "0x00021c3d",
+ "vTaskStepTick": "0x00021ccd",
+ "vTaskSuspend": "0x00021cfd",
+ "vTaskSuspendAll": "0x00021db9",
+ "vTaskSwitchContext": "0x00021dc9",
+ "xPortStartScheduler": "0x00021e71",
+ "xQueueAddToSet": "0x00021f35",
+ "xQueueCreateCountingSemaphore": "0x00021f59",
+ "xQueueCreateCountingSemaphoreStatic": "0x00021f95",
+ "xQueueCreateMutex": "0x00021fd9",
+ "xQueueCreateMutexStatic": "0x00021fef",
+ "xQueueCreateSet": "0x00022009",
+ "xQueueGenericCreate": "0x00022011",
+ "xQueueGenericCreateStatic": "0x0002205d",
+ "xQueueGenericReset": "0x000220c5",
+ "xQueueGenericSend": "0x00022151",
+ "xQueueGenericSendFromISR": "0x000222bd",
+ "xQueueGiveFromISR": "0x0002237d",
+ "xQueueGiveMutexRecursive": "0x00022421",
+ "xQueueIsQueueEmptyFromISR": "0x00022461",
+ "xQueueIsQueueFullFromISR": "0x00022485",
+ "xQueuePeek": "0x000224ad",
+ "xQueuePeekFromISR": "0x000225d5",
+ "xQueueReceive": "0x00022641",
+ "xQueueReceiveFromISR": "0x0002276d",
+ "xQueueRemoveFromSet": "0x00022801",
+ "xQueueSelectFromSet": "0x00022823",
+ "xQueueSelectFromSetFromISR": "0x00022835",
+ "xQueueSemaphoreTake": "0x00022849",
+ "xQueueTakeMutexRecursive": "0x000229b5",
+ "xTaskCheckForTimeOut": "0x000229f9",
+ "xTaskCreate": "0x00022a69",
+ "xTaskCreateStatic": "0x00022ac5",
+ "xTaskGetCurrentTaskHandle": "0x00022b35",
+ "xTaskGetSchedulerState": "0x00022b41",
+ "xTaskGetTickCount": "0x00022b5d",
+ "xTaskGetTickCountFromISR": "0x00022b69",
+ "xTaskIncrementTick": "0x00022b79",
+ "xTaskPriorityDisinherit": "0x00022c45",
+ "xTaskPriorityInherit": "0x00022cd9",
+ "xTaskRemoveFromEventList": "0x00022d6d",
+ "xTaskResumeAll": "0x00022ded",
+ "xTaskResumeFromISR": "0x00022eb5",
+ "xTimerCreate": "0x00022f41",
+ "xTimerCreateStatic": "0x00022f75",
+ "xTimerCreateTimerTask": "0x00022fad",
+ "xTimerGenericCommand": "0x00023019",
+ "xTimerGetExpiryTime": "0x00023089",
+ "xTimerGetTimerDaemonTaskHandle": "0x000230a9"
}
\ No newline at end of file
diff --git a/bundles/mass_conn/ING9187xx/meta.json b/bundles/mass_conn/ING9187xx/meta.json
index b920e7b63..27940414d 100644
--- a/bundles/mass_conn/ING9187xx/meta.json
+++ b/bundles/mass_conn/ING9187xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 34200
+ "size": 33200
},
"rom": {
"base": 16384,
- "size": 133640
+ "size": 133344
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/mass_conn/ING9187xx/platform.bin b/bundles/mass_conn/ING9187xx/platform.bin
index ff5a2cd5e..5a58180aa 100644
Binary files a/bundles/mass_conn/ING9187xx/platform.bin and b/bundles/mass_conn/ING9187xx/platform.bin differ
diff --git a/bundles/mass_conn/ING9188xx/apis.json b/bundles/mass_conn/ING9188xx/apis.json
index 107798b51..91ae11a0b 100644
--- a/bundles/mass_conn/ING9188xx/apis.json
+++ b/bundles/mass_conn/ING9188xx/apis.json
@@ -1,329 +1,326 @@
{
- "att_dispatch_client_can_send_now": "0x00005b19",
- "att_dispatch_client_request_can_send_now_event": "0x00005b1f",
- "att_dispatch_register_client": "0x00005b25",
- "att_dispatch_register_server": "0x00005b39",
- "att_dispatch_server_can_send_now": "0x00005b4d",
- "att_dispatch_server_request_can_send_now_event": "0x00005b53",
- "att_emit_general_event": "0x00005c05",
- "att_server_can_send_packet_now": "0x00006319",
- "att_server_deferred_read_response": "0x0000631d",
- "att_server_get_mtu": "0x00006335",
- "att_server_indicate": "0x000063ad",
- "att_server_init": "0x00006431",
- "att_server_notify": "0x0000646d",
- "att_server_register_packet_handler": "0x00006585",
- "att_server_request_can_send_now_event": "0x00006591",
- "att_set_db": "0x000065ad",
- "att_set_read_callback": "0x000065c1",
- "att_set_write_callback": "0x000065cd",
- "bd_addr_cmp": "0x0000673d",
- "bd_addr_copy": "0x00006743",
- "bd_addr_to_str": "0x0000674d",
- "big_endian_read_16": "0x00006785",
- "big_endian_read_32": "0x0000678d",
- "big_endian_store_16": "0x000067a1",
- "big_endian_store_32": "0x000067ad",
- "btstack_config": "0x00006901",
- "btstack_memory_pool_create": "0x00006a3f",
- "btstack_memory_pool_free": "0x00006a69",
- "btstack_memory_pool_get": "0x00006ac9",
- "btstack_push_user_msg": "0x00006b31",
- "btstack_push_user_runnable": "0x00006b3d",
- "char_for_nibble": "0x00006dc5",
- "eTaskConfirmSleepModeStatus": "0x00007091",
- "gap_add_dev_to_periodic_list": "0x00007715",
- "gap_add_whitelist": "0x0000772d",
- "gap_aes_encrypt": "0x00007741",
- "gap_clear_white_lists": "0x00007785",
- "gap_clr_adv_set": "0x00007795",
- "gap_clr_periodic_adv_list": "0x000077a5",
- "gap_create_connection_cancel": "0x000077b5",
- "gap_default_periodic_adv_sync_transfer_param": "0x000077c5",
- "gap_disconnect": "0x000077dd",
- "gap_disconnect_all": "0x00007809",
- "gap_ext_create_connection": "0x00007849",
- "gap_get_connection_parameter_range": "0x00007939",
- "gap_le_read_channel_map": "0x00007971",
- "gap_periodic_adv_create_sync": "0x000079e5",
- "gap_periodic_adv_create_sync_cancel": "0x00007a09",
- "gap_periodic_adv_set_info_transfer": "0x00007a19",
- "gap_periodic_adv_sync_transfer": "0x00007a31",
- "gap_periodic_adv_sync_transfer_param": "0x00007a49",
- "gap_periodic_adv_term_sync": "0x00007a65",
- "gap_read_antenna_info": "0x00007af9",
- "gap_read_periodic_adv_list_size": "0x00007b09",
- "gap_read_phy": "0x00007b19",
- "gap_read_remote_used_features": "0x00007b2d",
- "gap_read_remote_version": "0x00007b41",
- "gap_read_rssi": "0x00007b55",
- "gap_remove_whitelist": "0x00007b69",
- "gap_rmv_adv_set": "0x00007bed",
- "gap_rmv_dev_from_periodic_list": "0x00007c01",
- "gap_rx_test_v2": "0x00007c19",
- "gap_rx_test_v3": "0x00007c31",
- "gap_set_adv_set_random_addr": "0x00007c81",
- "gap_set_connection_cte_request_enable": "0x00007cd1",
- "gap_set_connection_cte_response_enable": "0x00007ced",
- "gap_set_connection_cte_rx_param": "0x00007d01",
- "gap_set_connection_cte_tx_param": "0x00007d5d",
- "gap_set_connection_parameter_range": "0x00007db1",
- "gap_set_connectionless_cte_tx_enable": "0x00007dcd",
- "gap_set_connectionless_cte_tx_param": "0x00007de1",
- "gap_set_connectionless_iq_sampling_enable": "0x00007e41",
- "gap_set_data_length": "0x00007ea5",
- "gap_set_def_phy": "0x00007ec1",
- "gap_set_ext_adv_data": "0x00007ed9",
- "gap_set_ext_adv_enable": "0x00007ef1",
- "gap_set_ext_adv_para": "0x00007f6d",
- "gap_set_ext_scan_enable": "0x0000804d",
- "gap_set_ext_scan_para": "0x00008065",
- "gap_set_ext_scan_response_data": "0x0000810d",
- "gap_set_host_channel_classification": "0x00008125",
- "gap_set_periodic_adv_data": "0x00008139",
- "gap_set_periodic_adv_enable": "0x000081ad",
- "gap_set_periodic_adv_para": "0x000081c1",
- "gap_set_periodic_adv_rx_enable": "0x000081d9",
- "gap_set_phy": "0x000081ed",
- "gap_set_random_device_address": "0x00008209",
- "gap_start_ccm": "0x00008239",
- "gap_test_end": "0x0000826d",
- "gap_tx_test_v2": "0x0000827d",
- "gap_tx_test_v4": "0x00008295",
- "gap_update_connection_parameters": "0x000082bd",
- "gap_vendor_tx_continuous_wave": "0x00008301",
- "gatt_client_cancel_write": "0x00008829",
- "gatt_client_discover_characteristic_descriptors": "0x0000884f",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0000888f",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000088df",
- "gatt_client_discover_characteristics_for_service": "0x0000892f",
- "gatt_client_discover_primary_services": "0x00008965",
- "gatt_client_discover_primary_services_by_uuid128": "0x00008997",
- "gatt_client_discover_primary_services_by_uuid16": "0x000089db",
- "gatt_client_execute_write": "0x00008a17",
- "gatt_client_find_included_services_for_service": "0x00008a3d",
- "gatt_client_get_mtu": "0x00008a6b",
- "gatt_client_is_ready": "0x00008b0d",
- "gatt_client_listen_for_characteristic_value_updates": "0x00008b23",
- "gatt_client_prepare_write": "0x00008b45",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008b81",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008bab",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008bb1",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008bdf",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008be5",
- "gatt_client_read_multiple_characteristic_values": "0x00008c13",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008c43",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008c71",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008cbd",
- "gatt_client_register_handler": "0x00008d09",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x00008d15",
- "gatt_client_signed_write_without_response": "0x00009145",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00009209",
- "gatt_client_write_client_characteristic_configuration": "0x00009243",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00009295",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000092a5",
- "gatt_client_write_long_value_of_characteristic": "0x000092e1",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x000092f1",
- "gatt_client_write_value_of_characteristic": "0x0000932d",
- "gatt_client_write_value_of_characteristic_without_response": "0x00009363",
- "hci_add_event_handler": "0x0000a8a5",
- "hci_power_control": "0x0000b041",
- "hci_register_acl_packet_handler": "0x0000b1f5",
- "kv_commit": "0x0000b7d5",
- "kv_get": "0x0000b82d",
- "kv_init": "0x0000b845",
- "kv_put": "0x0000b8ad",
- "kv_remove": "0x0000b925",
- "kv_remove_all": "0x0000b961",
- "kv_value_modified": "0x0000b9a5",
- "kv_visit": "0x0000b9a9",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000ba69",
- "l2cap_can_send_packet_now": "0x0000ba6d",
- "l2cap_create_channel": "0x0000bc25",
- "l2cap_disconnect": "0x0000bd5d",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000bf85",
- "l2cap_init": "0x0000c37d",
- "l2cap_le_send_flow_control_credit": "0x0000c3bd",
- "l2cap_max_le_mtu": "0x0000c679",
- "l2cap_max_mtu": "0x0000c67d",
- "l2cap_register_fixed_channel": "0x0000c789",
- "l2cap_register_packet_handler": "0x0000c7a5",
- "l2cap_register_service": "0x0000c7b1",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c895",
- "l2cap_request_can_send_now_event": "0x0000c8b9",
- "l2cap_request_connection_parameter_update": "0x0000c8d3",
- "l2cap_send": "0x0000cc6d",
- "l2cap_send_connectionless": "0x0000cce5",
- "l2cap_send_connectionless3": "0x0000cd75",
- "l2cap_send_echo_request": "0x0000ce0d",
- "l2cap_unregister_service": "0x0000cec9",
- "le_device_db_add": "0x0000cf21",
- "le_device_db_find": "0x0000cff5",
- "le_device_db_from_key": "0x0000d021",
- "le_device_db_iter_cur": "0x0000d029",
- "le_device_db_iter_cur_key": "0x0000d02d",
- "le_device_db_iter_init": "0x0000d031",
- "le_device_db_iter_next": "0x0000d039",
- "le_device_db_remove_key": "0x0000d05f",
- "ll_free": "0x0000d08b",
- "ll_hint_on_ce_len": "0x0000d095",
- "ll_legacy_adv_set_interval": "0x0000d0cd",
- "ll_malloc": "0x0000d0dd",
- "ll_query_timing_info": "0x0000d215",
- "ll_scan_set_fixed_channel": "0x0000d2b9",
- "ll_set_adv_access_address": "0x0000d3cd",
- "ll_set_adv_coded_scheme": "0x0000d3d9",
- "ll_set_conn_coded_scheme": "0x0000d409",
- "ll_set_conn_latency": "0x0000d435",
- "ll_set_conn_tx_power": "0x0000d465",
- "ll_set_def_antenna": "0x0000d4ad",
- "ll_set_initiating_coded_scheme": "0x0000d4c9",
- "ll_set_max_conn_number": "0x0000d4d5",
- "nibble_for_char": "0x0001e245",
- "platform_32k_rc_auto_tune": "0x0001e2f1",
- "platform_32k_rc_tune": "0x0001e36d",
- "platform_calibrate_32k": "0x0001e381",
- "platform_config": "0x0001e385",
- "platform_get_current_task": "0x0001e461",
- "platform_get_gen_os_driver": "0x0001e485",
- "platform_get_heap_status": "0x0001e48d",
- "platform_get_task_handle": "0x0001e4a5",
- "platform_get_us_time": "0x0001e4c5",
- "platform_get_version": "0x0001e4c9",
- "platform_hrng": "0x0001e4d1",
- "platform_install_isr_stack": "0x0001e4d9",
- "platform_install_task_stack": "0x0001e4e5",
- "platform_patch_rf_init_data": "0x0001e51d",
- "platform_printf": "0x0001e529",
- "platform_raise_assertion": "0x0001e53d",
- "platform_rand": "0x0001e551",
- "platform_read_info": "0x0001e555",
- "platform_read_persistent_reg": "0x0001e585",
- "platform_reset": "0x0001e595",
- "platform_set_evt_callback": "0x0001e5b9",
- "platform_set_irq_callback": "0x0001e5cd",
- "platform_set_rf_clk_source": "0x0001e605",
- "platform_set_rf_init_data": "0x0001e611",
- "platform_set_rf_power_mapping": "0x0001e61d",
- "platform_set_timer": "0x0001e629",
- "platform_shutdown": "0x0001e62d",
- "platform_switch_app": "0x0001e631",
- "platform_trace_raw": "0x0001e65d",
- "platform_write_persistent_reg": "0x0001e675",
- "printf_hexdump": "0x0001e829",
- "pvPortMalloc": "0x0001f339",
- "pvTaskIncrementMutexHeldCount": "0x0001f421",
- "pvTimerGetTimerID": "0x0001f439",
- "pxPortInitialiseStack": "0x0001f465",
- "reverse_128": "0x0001f645",
- "reverse_24": "0x0001f64b",
- "reverse_48": "0x0001f651",
- "reverse_56": "0x0001f657",
- "reverse_64": "0x0001f65d",
- "reverse_bd_addr": "0x0001f663",
- "reverse_bytes": "0x0001f669",
- "sm_add_event_handler": "0x0001f929",
- "sm_address_resolution_lookup": "0x0001fa81",
- "sm_authenticated": "0x0001fdd9",
- "sm_authorization_decline": "0x0001fde7",
- "sm_authorization_grant": "0x0001fe07",
- "sm_authorization_state": "0x0001fe27",
- "sm_bonding_decline": "0x0001fe41",
- "sm_config": "0x00020261",
- "sm_config_conn": "0x00020279",
- "sm_encryption_key_size": "0x0002042f",
- "sm_just_works_confirm": "0x00020969",
- "sm_le_device_key": "0x00020ca5",
- "sm_passkey_input": "0x00020d3b",
- "sm_private_random_address_generation_get": "0x000210e9",
- "sm_private_random_address_generation_get_mode": "0x000210f1",
- "sm_private_random_address_generation_set_mode": "0x000210fd",
- "sm_private_random_address_generation_set_update_period": "0x00021125",
- "sm_register_oob_data_callback": "0x00021261",
- "sm_request_pairing": "0x0002126d",
- "sm_send_security_request": "0x00021c8b",
- "sm_set_accepted_stk_generation_methods": "0x00021cb1",
- "sm_set_authentication_requirements": "0x00021cbd",
- "sm_set_encryption_key_size_range": "0x00021cc9",
- "sscanf_bd_addr": "0x00022025",
- "sysSetPublicDeviceAddr": "0x0002239d",
- "uuid128_to_str": "0x00022b0d",
- "uuid_add_bluetooth_prefix": "0x00022b65",
- "uuid_has_bluetooth_prefix": "0x00022b85",
- "uxListRemove": "0x00022ba1",
- "uxQueueMessagesWaiting": "0x00022bc9",
- "uxQueueMessagesWaitingFromISR": "0x00022bf1",
- "uxQueueSpacesAvailable": "0x00022c0d",
- "uxTaskGetStackHighWaterMark": "0x00022c39",
- "uxTaskPriorityGet": "0x00022c59",
- "uxTaskPriorityGetFromISR": "0x00022c75",
- "vListInitialise": "0x00022d27",
- "vListInitialiseItem": "0x00022d3d",
- "vListInsert": "0x00022d43",
- "vListInsertEnd": "0x00022d73",
- "vPortEndScheduler": "0x00022d8d",
- "vPortEnterCritical": "0x00022db9",
- "vPortExitCritical": "0x00022e01",
- "vPortFree": "0x00022e35",
- "vPortSuppressTicksAndSleep": "0x00022ec9",
- "vPortValidateInterruptPriority": "0x00022fd1",
- "vQueueDelete": "0x0002302d",
- "vQueueWaitForMessageRestricted": "0x00023059",
- "vTaskDelay": "0x000230a1",
- "vTaskInternalSetTimeOutState": "0x000230ed",
- "vTaskMissedYield": "0x000230fd",
- "vTaskPlaceOnEventList": "0x00023109",
- "vTaskPlaceOnEventListRestricted": "0x00023141",
- "vTaskPriorityDisinheritAfterTimeout": "0x00023181",
- "vTaskPrioritySet": "0x0002322d",
- "vTaskResume": "0x000232f5",
- "vTaskStartScheduler": "0x00023379",
- "vTaskStepTick": "0x00023409",
- "vTaskSuspend": "0x00023439",
- "vTaskSuspendAll": "0x000234f5",
- "vTaskSwitchContext": "0x00023505",
- "xPortStartScheduler": "0x000235ad",
- "xQueueAddToSet": "0x00023671",
- "xQueueCreateCountingSemaphore": "0x00023695",
- "xQueueCreateCountingSemaphoreStatic": "0x000236d1",
- "xQueueCreateMutex": "0x00023715",
- "xQueueCreateMutexStatic": "0x0002372b",
- "xQueueCreateSet": "0x00023745",
- "xQueueGenericCreate": "0x0002374d",
- "xQueueGenericCreateStatic": "0x00023799",
- "xQueueGenericReset": "0x00023801",
- "xQueueGenericSend": "0x0002388d",
- "xQueueGenericSendFromISR": "0x000239f9",
- "xQueueGiveFromISR": "0x00023ab9",
- "xQueueGiveMutexRecursive": "0x00023b5d",
- "xQueueIsQueueEmptyFromISR": "0x00023b9d",
- "xQueueIsQueueFullFromISR": "0x00023bc1",
- "xQueuePeek": "0x00023be9",
- "xQueuePeekFromISR": "0x00023d11",
- "xQueueReceive": "0x00023d7d",
- "xQueueReceiveFromISR": "0x00023ea9",
- "xQueueRemoveFromSet": "0x00023f3d",
- "xQueueSelectFromSet": "0x00023f5f",
- "xQueueSelectFromSetFromISR": "0x00023f71",
- "xQueueSemaphoreTake": "0x00023f85",
- "xQueueTakeMutexRecursive": "0x000240f1",
- "xTaskCheckForTimeOut": "0x00024135",
- "xTaskCreate": "0x000241a5",
- "xTaskCreateStatic": "0x00024201",
- "xTaskGetCurrentTaskHandle": "0x00024271",
- "xTaskGetSchedulerState": "0x0002427d",
- "xTaskGetTickCount": "0x00024299",
- "xTaskGetTickCountFromISR": "0x000242a5",
- "xTaskIncrementTick": "0x000242b5",
- "xTaskPriorityDisinherit": "0x00024381",
- "xTaskPriorityInherit": "0x00024415",
- "xTaskRemoveFromEventList": "0x000244a9",
- "xTaskResumeAll": "0x00024529",
- "xTaskResumeFromISR": "0x000245f1",
- "xTimerCreate": "0x0002467d",
- "xTimerCreateStatic": "0x000246b1",
- "xTimerCreateTimerTask": "0x000246e9",
- "xTimerGenericCommand": "0x00024755",
- "xTimerGetExpiryTime": "0x000247c5",
- "xTimerGetTimerDaemonTaskHandle": "0x000247e5"
+ "att_dispatch_client_can_send_now": "0x0000587d",
+ "att_dispatch_client_request_can_send_now_event": "0x00005883",
+ "att_dispatch_register_client": "0x00005889",
+ "att_dispatch_register_server": "0x0000589d",
+ "att_dispatch_server_can_send_now": "0x000058b1",
+ "att_dispatch_server_request_can_send_now_event": "0x000058b7",
+ "att_emit_general_event": "0x00005969",
+ "att_server_can_send_packet_now": "0x0000607d",
+ "att_server_deferred_read_response": "0x00006081",
+ "att_server_get_mtu": "0x00006099",
+ "att_server_indicate": "0x00006111",
+ "att_server_init": "0x00006195",
+ "att_server_notify": "0x000061d1",
+ "att_server_register_packet_handler": "0x000062e9",
+ "att_server_request_can_send_now_event": "0x000062f5",
+ "att_set_db": "0x00006311",
+ "att_set_read_callback": "0x00006325",
+ "att_set_write_callback": "0x00006331",
+ "bd_addr_cmp": "0x000064a1",
+ "bd_addr_copy": "0x000064a7",
+ "bd_addr_to_str": "0x000064b1",
+ "big_endian_read_16": "0x000064e9",
+ "big_endian_read_32": "0x000064f1",
+ "big_endian_store_16": "0x00006505",
+ "big_endian_store_32": "0x00006511",
+ "btstack_config": "0x00006665",
+ "btstack_memory_pool_create": "0x000067a3",
+ "btstack_memory_pool_free": "0x000067cd",
+ "btstack_memory_pool_get": "0x0000682d",
+ "btstack_push_user_msg": "0x00006895",
+ "btstack_push_user_runnable": "0x000068a1",
+ "char_for_nibble": "0x00006b29",
+ "eTaskConfirmSleepModeStatus": "0x00006df5",
+ "gap_add_dev_to_periodic_list": "0x00007479",
+ "gap_add_whitelist": "0x00007491",
+ "gap_aes_encrypt": "0x000074a5",
+ "gap_clear_white_lists": "0x000074e9",
+ "gap_clr_adv_set": "0x000074f9",
+ "gap_clr_periodic_adv_list": "0x00007509",
+ "gap_create_connection_cancel": "0x00007519",
+ "gap_default_periodic_adv_sync_transfer_param": "0x00007529",
+ "gap_disconnect": "0x00007541",
+ "gap_disconnect_all": "0x0000756d",
+ "gap_ext_create_connection": "0x000075ad",
+ "gap_get_connection_parameter_range": "0x0000769d",
+ "gap_le_read_channel_map": "0x000076d5",
+ "gap_periodic_adv_create_sync": "0x00007749",
+ "gap_periodic_adv_create_sync_cancel": "0x0000776d",
+ "gap_periodic_adv_set_info_transfer": "0x0000777d",
+ "gap_periodic_adv_sync_transfer": "0x00007795",
+ "gap_periodic_adv_sync_transfer_param": "0x000077ad",
+ "gap_periodic_adv_term_sync": "0x000077c9",
+ "gap_read_antenna_info": "0x0000785d",
+ "gap_read_periodic_adv_list_size": "0x0000786d",
+ "gap_read_phy": "0x0000787d",
+ "gap_read_remote_used_features": "0x00007891",
+ "gap_read_remote_version": "0x000078a5",
+ "gap_read_rssi": "0x000078b9",
+ "gap_remove_whitelist": "0x000078cd",
+ "gap_rmv_adv_set": "0x00007951",
+ "gap_rmv_dev_from_periodic_list": "0x00007965",
+ "gap_rx_test_v2": "0x0000797d",
+ "gap_rx_test_v3": "0x00007995",
+ "gap_set_adv_set_random_addr": "0x000079e5",
+ "gap_set_connection_cte_request_enable": "0x00007a35",
+ "gap_set_connection_cte_response_enable": "0x00007a51",
+ "gap_set_connection_cte_rx_param": "0x00007a65",
+ "gap_set_connection_cte_tx_param": "0x00007ac1",
+ "gap_set_connection_parameter_range": "0x00007b15",
+ "gap_set_connectionless_cte_tx_enable": "0x00007b31",
+ "gap_set_connectionless_cte_tx_param": "0x00007b45",
+ "gap_set_connectionless_iq_sampling_enable": "0x00007ba5",
+ "gap_set_data_length": "0x00007c09",
+ "gap_set_def_phy": "0x00007c25",
+ "gap_set_ext_adv_data": "0x00007c3d",
+ "gap_set_ext_adv_enable": "0x00007c55",
+ "gap_set_ext_adv_para": "0x00007cd1",
+ "gap_set_ext_scan_enable": "0x00007db1",
+ "gap_set_ext_scan_para": "0x00007dc9",
+ "gap_set_ext_scan_response_data": "0x00007e71",
+ "gap_set_host_channel_classification": "0x00007e89",
+ "gap_set_periodic_adv_data": "0x00007e9d",
+ "gap_set_periodic_adv_enable": "0x00007f11",
+ "gap_set_periodic_adv_para": "0x00007f25",
+ "gap_set_periodic_adv_rx_enable": "0x00007f3d",
+ "gap_set_phy": "0x00007f51",
+ "gap_set_random_device_address": "0x00007f6d",
+ "gap_start_ccm": "0x00007f9d",
+ "gap_test_end": "0x00007fd1",
+ "gap_tx_test_v2": "0x00007fe1",
+ "gap_tx_test_v4": "0x00007ff9",
+ "gap_update_connection_parameters": "0x00008021",
+ "gap_vendor_tx_continuous_wave": "0x00008065",
+ "gatt_client_cancel_write": "0x0000858d",
+ "gatt_client_discover_characteristic_descriptors": "0x000085b3",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000085f3",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x00008643",
+ "gatt_client_discover_characteristics_for_service": "0x00008693",
+ "gatt_client_discover_primary_services": "0x000086c9",
+ "gatt_client_discover_primary_services_by_uuid128": "0x000086fb",
+ "gatt_client_discover_primary_services_by_uuid16": "0x0000873f",
+ "gatt_client_execute_write": "0x0000877b",
+ "gatt_client_find_included_services_for_service": "0x000087a1",
+ "gatt_client_get_mtu": "0x000087cf",
+ "gatt_client_is_ready": "0x00008871",
+ "gatt_client_listen_for_characteristic_value_updates": "0x00008887",
+ "gatt_client_prepare_write": "0x000088a9",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x000088e5",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0000890f",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008915",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008943",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008949",
+ "gatt_client_read_multiple_characteristic_values": "0x00008977",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x000089a7",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x000089d5",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008a21",
+ "gatt_client_register_handler": "0x00008a6d",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x00008a79",
+ "gatt_client_signed_write_without_response": "0x00008ea9",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008f6d",
+ "gatt_client_write_client_characteristic_configuration": "0x00008fa7",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008ff9",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00009009",
+ "gatt_client_write_long_value_of_characteristic": "0x00009045",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00009055",
+ "gatt_client_write_value_of_characteristic": "0x00009091",
+ "gatt_client_write_value_of_characteristic_without_response": "0x000090c7",
+ "hci_add_event_handler": "0x0000a609",
+ "hci_power_control": "0x0000ada5",
+ "hci_register_acl_packet_handler": "0x0000af59",
+ "kv_commit": "0x0000b539",
+ "kv_get": "0x0000b591",
+ "kv_init": "0x0000b5a9",
+ "kv_put": "0x0000b611",
+ "kv_remove": "0x0000b689",
+ "kv_remove_all": "0x0000b6c5",
+ "kv_value_modified": "0x0000b709",
+ "kv_visit": "0x0000b70d",
+ "l2cap_add_event_handler": "0x0000b7c1",
+ "l2cap_can_send_packet_now": "0x0000b7d1",
+ "l2cap_create_le_credit_based_connection_request": "0x0000b98d",
+ "l2cap_credit_based_send": "0x0000bad1",
+ "l2cap_credit_based_send_continue": "0x0000bafd",
+ "l2cap_disconnect": "0x0000bb79",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000bdc9",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000bde5",
+ "l2cap_init": "0x0000c1b9",
+ "l2cap_le_send_flow_control_credit": "0x0000c2af",
+ "l2cap_max_le_mtu": "0x0000c5b9",
+ "l2cap_register_packet_handler": "0x0000c6e1",
+ "l2cap_register_service": "0x0000c6ed",
+ "l2cap_request_can_send_now_event": "0x0000c7fd",
+ "l2cap_request_connection_parameter_update": "0x0000c817",
+ "l2cap_send_echo_request": "0x0000cce9",
+ "l2cap_unregister_service": "0x0000cda9",
+ "le_device_db_add": "0x0000ce01",
+ "le_device_db_find": "0x0000ced5",
+ "le_device_db_from_key": "0x0000cf01",
+ "le_device_db_iter_cur": "0x0000cf09",
+ "le_device_db_iter_cur_key": "0x0000cf0d",
+ "le_device_db_iter_init": "0x0000cf11",
+ "le_device_db_iter_next": "0x0000cf19",
+ "le_device_db_remove_key": "0x0000cf3f",
+ "ll_free": "0x0000cf6b",
+ "ll_hint_on_ce_len": "0x0000cf75",
+ "ll_legacy_adv_set_interval": "0x0000cfad",
+ "ll_malloc": "0x0000cfbd",
+ "ll_query_timing_info": "0x0000d0f5",
+ "ll_scan_set_fixed_channel": "0x0000d199",
+ "ll_set_adv_access_address": "0x0000d2ad",
+ "ll_set_adv_coded_scheme": "0x0000d2b9",
+ "ll_set_conn_coded_scheme": "0x0000d2e9",
+ "ll_set_conn_latency": "0x0000d315",
+ "ll_set_conn_tx_power": "0x0000d345",
+ "ll_set_def_antenna": "0x0000d38d",
+ "ll_set_initiating_coded_scheme": "0x0000d3a9",
+ "ll_set_max_conn_number": "0x0000d3b5",
+ "nibble_for_char": "0x0001e125",
+ "platform_32k_rc_auto_tune": "0x0001e1d1",
+ "platform_32k_rc_tune": "0x0001e24d",
+ "platform_calibrate_32k": "0x0001e261",
+ "platform_config": "0x0001e265",
+ "platform_get_current_task": "0x0001e341",
+ "platform_get_gen_os_driver": "0x0001e365",
+ "platform_get_heap_status": "0x0001e36d",
+ "platform_get_task_handle": "0x0001e385",
+ "platform_get_us_time": "0x0001e3a5",
+ "platform_get_version": "0x0001e3a9",
+ "platform_hrng": "0x0001e3b1",
+ "platform_install_isr_stack": "0x0001e3b9",
+ "platform_install_task_stack": "0x0001e3c5",
+ "platform_patch_rf_init_data": "0x0001e3fd",
+ "platform_printf": "0x0001e409",
+ "platform_raise_assertion": "0x0001e41d",
+ "platform_rand": "0x0001e431",
+ "platform_read_info": "0x0001e435",
+ "platform_read_persistent_reg": "0x0001e465",
+ "platform_reset": "0x0001e475",
+ "platform_set_evt_callback": "0x0001e499",
+ "platform_set_irq_callback": "0x0001e4ad",
+ "platform_set_rf_clk_source": "0x0001e4e5",
+ "platform_set_rf_init_data": "0x0001e4f1",
+ "platform_set_rf_power_mapping": "0x0001e4fd",
+ "platform_set_timer": "0x0001e509",
+ "platform_shutdown": "0x0001e50d",
+ "platform_switch_app": "0x0001e511",
+ "platform_trace_raw": "0x0001e53d",
+ "platform_write_persistent_reg": "0x0001e555",
+ "printf_hexdump": "0x0001e709",
+ "pvPortMalloc": "0x0001f219",
+ "pvTaskIncrementMutexHeldCount": "0x0001f301",
+ "pvTimerGetTimerID": "0x0001f319",
+ "pxPortInitialiseStack": "0x0001f345",
+ "reverse_128": "0x0001f525",
+ "reverse_24": "0x0001f52b",
+ "reverse_48": "0x0001f531",
+ "reverse_56": "0x0001f537",
+ "reverse_64": "0x0001f53d",
+ "reverse_bd_addr": "0x0001f543",
+ "reverse_bytes": "0x0001f549",
+ "sm_add_event_handler": "0x0001f809",
+ "sm_address_resolution_lookup": "0x0001f961",
+ "sm_authenticated": "0x0001fcb9",
+ "sm_authorization_decline": "0x0001fcc7",
+ "sm_authorization_grant": "0x0001fce7",
+ "sm_authorization_state": "0x0001fd07",
+ "sm_bonding_decline": "0x0001fd21",
+ "sm_config": "0x00020141",
+ "sm_config_conn": "0x00020159",
+ "sm_encryption_key_size": "0x0002030f",
+ "sm_just_works_confirm": "0x00020849",
+ "sm_le_device_key": "0x00020b85",
+ "sm_passkey_input": "0x00020c1b",
+ "sm_private_random_address_generation_get": "0x00020fc9",
+ "sm_private_random_address_generation_get_mode": "0x00020fd1",
+ "sm_private_random_address_generation_set_mode": "0x00020fdd",
+ "sm_private_random_address_generation_set_update_period": "0x00021005",
+ "sm_register_oob_data_callback": "0x00021141",
+ "sm_request_pairing": "0x0002114d",
+ "sm_send_security_request": "0x00021b6b",
+ "sm_set_accepted_stk_generation_methods": "0x00021b91",
+ "sm_set_authentication_requirements": "0x00021b9d",
+ "sm_set_encryption_key_size_range": "0x00021ba9",
+ "sscanf_bd_addr": "0x00021f05",
+ "sysSetPublicDeviceAddr": "0x0002227d",
+ "uuid128_to_str": "0x000229ed",
+ "uuid_add_bluetooth_prefix": "0x00022a45",
+ "uuid_has_bluetooth_prefix": "0x00022a65",
+ "uxListRemove": "0x00022a81",
+ "uxQueueMessagesWaiting": "0x00022aa9",
+ "uxQueueMessagesWaitingFromISR": "0x00022ad1",
+ "uxQueueSpacesAvailable": "0x00022aed",
+ "uxTaskGetStackHighWaterMark": "0x00022b19",
+ "uxTaskPriorityGet": "0x00022b39",
+ "uxTaskPriorityGetFromISR": "0x00022b55",
+ "vListInitialise": "0x00022c07",
+ "vListInitialiseItem": "0x00022c1d",
+ "vListInsert": "0x00022c23",
+ "vListInsertEnd": "0x00022c53",
+ "vPortEndScheduler": "0x00022c6d",
+ "vPortEnterCritical": "0x00022c99",
+ "vPortExitCritical": "0x00022cdd",
+ "vPortFree": "0x00022d11",
+ "vPortSuppressTicksAndSleep": "0x00022da5",
+ "vPortValidateInterruptPriority": "0x00022ead",
+ "vQueueDelete": "0x00022f09",
+ "vQueueWaitForMessageRestricted": "0x00022f35",
+ "vTaskDelay": "0x00022f7d",
+ "vTaskInternalSetTimeOutState": "0x00022fc9",
+ "vTaskMissedYield": "0x00022fd9",
+ "vTaskPlaceOnEventList": "0x00022fe5",
+ "vTaskPlaceOnEventListRestricted": "0x0002301d",
+ "vTaskPriorityDisinheritAfterTimeout": "0x0002305d",
+ "vTaskPrioritySet": "0x00023109",
+ "vTaskResume": "0x000231d1",
+ "vTaskStartScheduler": "0x00023255",
+ "vTaskStepTick": "0x000232e5",
+ "vTaskSuspend": "0x00023315",
+ "vTaskSuspendAll": "0x000233d1",
+ "vTaskSwitchContext": "0x000233e1",
+ "xPortStartScheduler": "0x00023489",
+ "xQueueAddToSet": "0x0002354d",
+ "xQueueCreateCountingSemaphore": "0x00023571",
+ "xQueueCreateCountingSemaphoreStatic": "0x000235ad",
+ "xQueueCreateMutex": "0x000235f1",
+ "xQueueCreateMutexStatic": "0x00023607",
+ "xQueueCreateSet": "0x00023621",
+ "xQueueGenericCreate": "0x00023629",
+ "xQueueGenericCreateStatic": "0x00023675",
+ "xQueueGenericReset": "0x000236dd",
+ "xQueueGenericSend": "0x00023769",
+ "xQueueGenericSendFromISR": "0x000238d5",
+ "xQueueGiveFromISR": "0x00023995",
+ "xQueueGiveMutexRecursive": "0x00023a39",
+ "xQueueIsQueueEmptyFromISR": "0x00023a79",
+ "xQueueIsQueueFullFromISR": "0x00023a9d",
+ "xQueuePeek": "0x00023ac5",
+ "xQueuePeekFromISR": "0x00023bed",
+ "xQueueReceive": "0x00023c59",
+ "xQueueReceiveFromISR": "0x00023d85",
+ "xQueueRemoveFromSet": "0x00023e19",
+ "xQueueSelectFromSet": "0x00023e3b",
+ "xQueueSelectFromSetFromISR": "0x00023e4d",
+ "xQueueSemaphoreTake": "0x00023e61",
+ "xQueueTakeMutexRecursive": "0x00023fcd",
+ "xTaskCheckForTimeOut": "0x00024011",
+ "xTaskCreate": "0x00024081",
+ "xTaskCreateStatic": "0x000240dd",
+ "xTaskGetCurrentTaskHandle": "0x0002414d",
+ "xTaskGetSchedulerState": "0x00024159",
+ "xTaskGetTickCount": "0x00024175",
+ "xTaskGetTickCountFromISR": "0x00024181",
+ "xTaskIncrementTick": "0x00024191",
+ "xTaskPriorityDisinherit": "0x0002425d",
+ "xTaskPriorityInherit": "0x000242f1",
+ "xTaskRemoveFromEventList": "0x00024385",
+ "xTaskResumeAll": "0x00024405",
+ "xTaskResumeFromISR": "0x000244cd",
+ "xTimerCreate": "0x00024559",
+ "xTimerCreateStatic": "0x0002458d",
+ "xTimerCreateTimerTask": "0x000245c5",
+ "xTimerGenericCommand": "0x00024631",
+ "xTimerGetExpiryTime": "0x000246a1",
+ "xTimerGetTimerDaemonTaskHandle": "0x000246c1"
}
\ No newline at end of file
diff --git a/bundles/mass_conn/ING9188xx/meta.json b/bundles/mass_conn/ING9188xx/meta.json
index 25465c944..9cad760d7 100644
--- a/bundles/mass_conn/ING9188xx/meta.json
+++ b/bundles/mass_conn/ING9188xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 34200
+ "size": 33200
},
"rom": {
"base": 16384,
- "size": 139752
+ "size": 139456
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/mass_conn/ING9188xx/platform.bin b/bundles/mass_conn/ING9188xx/platform.bin
index 1ab07ccaf..54215a4d1 100644
Binary files a/bundles/mass_conn/ING9188xx/platform.bin and b/bundles/mass_conn/ING9188xx/platform.bin differ
diff --git a/bundles/mass_conn/inc/att_db.h b/bundles/mass_conn/inc/att_db.h
index 70ec3efa3..3e656c769 100644
--- a/bundles/mass_conn/inc/att_db.h
+++ b/bundles/mass_conn/inc/att_db.h
@@ -3,7 +3,7 @@
* @brief API for ATT server
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -28,10 +28,10 @@ extern "C" {
* @ingroup bluetooth_host
* @{
*/
-// custom BTstack error codes
+// custom btstack error codes
#define ATT_ERROR_HCI_DISCONNECT_RECEIVED 0x1f
-// custom BTstack ATT error coders
+// custom btstack ATT error coders
#define ATT_ERROR_DATA_MISMATCH 0x7e
#define ATT_ERROR_TIMEOUT 0x7F
diff --git a/bundles/mass_conn/inc/att_dispatch.h b/bundles/mass_conn/inc/att_dispatch.h
index 60f62817b..9dd2608d1 100644
--- a/bundles/mass_conn/inc/att_dispatch.h
+++ b/bundles/mass_conn/inc/att_dispatch.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/mass_conn/inc/btstack_defines.h b/bundles/mass_conn/inc/btstack_defines.h
index c2ab8d11a..a8d08006c 100644
--- a/bundles/mass_conn/inc/btstack_defines.h
+++ b/bundles/mass_conn/inc/btstack_defines.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -53,10 +53,15 @@
#define L2CAP_SERVICE_ALREADY_REGISTERED 0x69
#define L2CAP_DATA_LEN_EXCEEDS_REMOTE_MTU 0x6A
+#define L2CAP_SERVICE_NOT_REGISTERED 0x6B
+#define L2CAP_CONNECTION_INSUFFICIENT_SECURITY 0x6C
-#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS 0x90
+#define ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS 0x90
#define ATT_HANDLE_VALUE_INDICATION_TIMEOUT 0x91
+// compatibility for typo
+#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS
+
#define GATT_CLIENT_NOT_CONNECTED 0x93
#define GATT_CLIENT_BUSY 0x94
#define GATT_CLIENT_IN_WRONG_STATE 0x95
@@ -88,22 +93,14 @@
// L2CAP EVENTS
/**
- * @format 1BH222222
- * @param status
- * @param address
- * @param handle
- * @param psm
- * @param local_cid
- * @param remote_cid
- * @param local_mtu
- * @param remote_mtu
- * @param flush_timeout
+ * @brief an L2CAP channel is opened
+ * @ref `l2cap_event_channel_opened_t`
*/
#define L2CAP_EVENT_CHANNEL_OPENED 0x70
/*
- * @format 2
- * @param local_cid
+ * @brief an L2CAP channel is closed
+ * @ref `l2cap_event_channel_closed_t`
*/
#define L2CAP_EVENT_CHANNEL_CLOSED 0x71
@@ -153,6 +150,24 @@
*/
#define L2CAP_EVENT_COMMAND_REJECT_RESPONSE 0x79
+/**
+ * @brief LE credit channel : an SDU (complete package) event
+ *
+ * Use `decode_l2cap_event(l2cap_event_complete_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_complete_sdu_t`
+*/
+#define L2CAP_EVENT_COMPLETED_SDU_PACKET 0x7A
+
+/**
+ * @brief LE credit channel : a fragment (K-frame) of an SDU event
+ *
+ * Use `decode_l2cap_event(l2cap_event_fragment_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_fragment_sdu_t`
+*/
+#define L2CAP_EVENT_FRAGMENT_SDU_PACKET 0x7B
+
/**
* @format H1
* @param handle
diff --git a/bundles/mass_conn/inc/btstack_event.h b/bundles/mass_conn/inc/btstack_event.h
index 4c488f787..294fb813b 100644
--- a/bundles/mass_conn/inc/btstack_event.h
+++ b/bundles/mass_conn/inc/btstack_event.h
@@ -4,7 +4,7 @@
*
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -783,6 +783,43 @@ static __INLINE uint8_t gap_event_dedicated_bonding_completed_get_status(const u
return *decode_event_offset(event, uint8_t, 2);
}
+typedef struct l2cap_event_complete_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ const uint8_t *payload; // payload of this SDU
+} l2cap_event_complete_sdu_t;
+
+typedef struct l2cap_event_channel_opened
+{
+ uint8_t status;
+ bd_addr_t peer_addr;
+ hci_con_handle_t conn_handle;
+ uint16_t psm;
+ uint16_t local_cid;
+ uint16_t peer_cid;
+ uint16_t local_mtu;
+ uint16_t peer_mtu;
+ uint16_t local_mps;
+ uint16_t peer_mps;
+ uint16_t flush_timeout;
+ uint16_t local_credits;
+ uint16_t peer_credits;
+} l2cap_event_channel_opened_t;
+
+typedef struct l2cap_event_channel_closed
+{
+ uint16_t local_cid;
+ uint8_t reason;
+} l2cap_event_channel_closed_t;
+
+typedef struct l2cap_event_fragment_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ uint16_t offset; // offset of this fragment within a SDU
+ uint16_t length; // length of this fragment within a SDU
+ const uint8_t *payload; // payload of this fragment
+} l2cap_event_fragment_sdu_t;
+
typedef struct event_command_complete_return_param_read_rssi
{
uint8_t status;
@@ -1226,7 +1263,9 @@ typedef enum btstack_l2cap_msg_def
#define decode_hci_event_disconn_complete(packet) decode_event_offset(packet, event_disconn_complete_t, 2)
#define decode_hci_event_vendor_ccm_complete(packet) decode_event_offset(packet, event_vendor_ccm_complete_t, 5)
-#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+
+#define decode_l2cap_event(packet, T) decode_event_offset(packet, T, 2)
/* API_END */
diff --git a/bundles/mass_conn/inc/btstack_util.h b/bundles/mass_conn/inc/btstack_util.h
index 3f7232fc4..5e6d0d7ef 100644
--- a/bundles/mass_conn/inc/btstack_util.h
+++ b/bundles/mass_conn/inc/btstack_util.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/mass_conn/inc/gap.h b/bundles/mass_conn/inc/gap.h
index bf5d8a140..413b9423a 100644
--- a/bundles/mass_conn/inc/gap.h
+++ b/bundles/mass_conn/inc/gap.h
@@ -1380,7 +1380,7 @@ void hci_add_event_handler(btstack_packet_callback_registration_t * callback_han
void hci_register_acl_packet_handler(btstack_packet_handler_t handler);
/**
- * @brief Requests the change of BTstack power mode.
+ * @brief Requests the change of btstack power mode.
*
* @param mode 0:HCI_POWER_OFF ,1:HCI_POWER_ON , 2:HCI_POWER_SLEEP
*
diff --git a/bundles/mass_conn/inc/gatt_client.h b/bundles/mass_conn/inc/gatt_client.h
index 910cdf251..9a036f6f6 100644
--- a/bundles/mass_conn/inc/gatt_client.h
+++ b/bundles/mass_conn/inc/gatt_client.h
@@ -3,7 +3,7 @@
* Copyright Message
*
* INGCHIPS confidential and proprietary.
- * COPYRIGHT (c) 2018 by INGCHIPS
+ * COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
diff --git a/bundles/mass_conn/inc/l2cap.h b/bundles/mass_conn/inc/l2cap.h
index f464836dc..52b0efb79 100644
--- a/bundles/mass_conn/inc/l2cap.h
+++ b/bundles/mass_conn/inc/l2cap.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -22,27 +22,6 @@
extern "C" {
#endif
-void l2cap_register_fixed_channel(btstack_packet_handler_t packet_handler, uint16_t channel_id);
-int l2cap_can_send_fixed_channel_packet_now(hci_con_handle_t con_handle, uint16_t channel_id);
-void l2cap_request_can_send_fix_channel_now_event(hci_con_handle_t con_handle, uint16_t channel_id);
-int l2cap_send_connectionless(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len);
-int l2cap_send_connectionless3(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len,
- const uint8_t *data3, uint16_t data3_len);
-
-int l2cap_le_send_flow_control_credit(hci_con_handle_t con_handle,uint8_t id ,uint16_t cid,uint16_t credits);
-
-// PTS Testing
-int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t len);
-
-// Used by RFCOMM - similar to l2cap_can-send_packet_now but does not check if outgoing buffer is reserved
-// int l2cap_can_send_prepared_packet_now(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
-
-
/* API_START */
/**
@@ -51,69 +30,152 @@ int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t
void l2cap_init(void);
/**
- * @brief Registers packet handler for LE Connection Parameter Update events
+ * @brief add event handler with packet type `L2CAP_EVENT_PACKET`
+ *
+ * Note: Event code includes:
+ * * L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE
+ *
+ * @param[in] callback_handler the handler to be chained together
*/
-void l2cap_register_packet_handler(btstack_packet_handler_t handler);
+void l2cap_add_event_handler(btstack_packet_callback_registration_t *callback_handler);
/**
- * @brief Get max MTU for Classic connections based on btstack configuration
+ * @brief Registers packet handler for LE Connection Parameter Update related events
+ *
+ * Note: Packet type `HCI_EVENT_PACKET`. Event code includes:
+ * * L2CAP_EVENT_COMMAND_REJECT_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST
+ *
+ * @param[in] handler the callback function
*/
-uint16_t l2cap_max_mtu(void);
+void l2cap_register_packet_handler(btstack_packet_handler_t handler);
/**
* @brief Get max MTU for LE connections based on btstack configuration
+ *
+ * @return max LE MTU
*/
uint16_t l2cap_max_le_mtu(void);
-/**
- * @brief Creates L2CAP channel to the PSM of a remote device with baseband address. A new baseband connection will be initiated if necessary.
- * @param packet_handler
- * @param address
- * @param psm
- * @param mtu
- * @param local_cid
- * @param status
- */
-uint8_t l2cap_create_channel(btstack_packet_handler_t packet_handler, bd_addr_t address, uint16_t psm, uint16_t mtu, uint16_t * out_local_cid);
+#define l2cap_max_mtu l2cap_max_le_mtu
/**
* @brief Disconnects L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] reason reason (ignored)
*/
void l2cap_disconnect(uint16_t local_cid, uint8_t reason);
/**
* @brief Queries the maximal transfer unit (MTU) for L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @return peer MTU
*/
-uint16_t l2cap_get_remote_mtu_for_local_cid(uint16_t local_cid);
+uint16_t l2cap_get_peer_mtu_for_local_cid(uint16_t local_cid);
/**
- * @brief Sends L2CAP data packet to the channel with given identifier.
+ * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ *
+ * Note: Before creating a connection with a SPSM, the service must be registered.
+ *
+ * @param[in] packet_handler packet handler
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] mtu MTU (23..max, max = l2cap_max_le_mtu())
+ * when mtu = 0, max LE MTU is used
+ * @param[in] security_level security level
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_ALREADY_REGISTERED
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-int l2cap_send(uint16_t local_cid, uint8_t *data, uint16_t len);
+uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu,
+ gap_security_level_t security_level);
/**
- * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ * @brief Unregisters L2CAP service with given PSM.
+ *
+ * @param[in] psm SPSM (LE_PSM)
*/
-uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu, gap_security_level_t security_level);
+void l2cap_unregister_service(uint16_t psm);
/**
- * @brief Unregisters L2CAP service with given PSM. On embedded systems, use NULL for connection parameter.
+ * @brief Create a credit based connection for SPSM
+ *
+ *
+ * @param[in] credits initial credits assigned to peer
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] handle connection handle
+ * @param[out] local_cid identifier of the newly create channel
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_NOT_REGISTERED
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ * * L2CAP_CONNECTION_INSUFFICIENT_SECURITY
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-void l2cap_unregister_service(uint16_t psm);
+uint8_t l2cap_create_le_credit_based_connection_request(uint16_t credits, uint16_t psm, uint16_t handle, uint16_t *local_cid);
/**
- * @brief Accepts incoming L2CAP connection.
+ * @brief Get credits information of a credit based connection
+ *
+ * `local_credits`: how many K-frames the peer is capable to receive,
+ * i.e. how many K-frames we (the _local_) can transmit;
+ *
+ * `peer_credits`: `local_credits` in the peer.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] peer_credits peer credits at present
+ * @param[in] local_credits local credits at present
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_accept_connection(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
+uint8_t l2cap_get_le_credit_based_connection_credits(uint16_t local_cid,
+ uint32_t *peer_credits, uint32_t *local_credits);
+/**
+ * @brief send an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data data of the SDU
+ * @param[in] len total length of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * (see `l2cap_credit_based_send_continue`)
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+int l2cap_credit_based_send(uint16_t local_cid, const uint8_t *data, uint16_t len);
/**
- * @brief Deny incoming L2CAP connection.
+ * @brief continue sending an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data remaining data of the SDU that has not been sent
+ * @param[in] len length of remaining data of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_decline_connection(uint16_t local_cid, uint8_t reason);
-// WARNING: ^^^ this API is not available in this release
+int l2cap_credit_based_send_continue(uint16_t local_cid, const uint8_t *data, uint16_t len);
+/**
+ * @brief add more credits to the peer of the specified channel, or rather notify
+ * the peer that _local_ are capable of receiving more K-frames.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] credits credits to be added to the peer
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+uint8_t l2cap_le_send_flow_control_credit(uint16_t local_cid, uint16_t credits);
/**
* @brief Check if outgoing buffer is available and that there's space on the Bluetooth module
@@ -124,42 +186,45 @@ int l2cap_can_send_packet_now(uint16_t local_cid);
* @brief Request emission of L2CAP_EVENT_CAN_SEND_NOW as soon as possible
* @note L2CAP_EVENT_CAN_SEND_NOW might be emitted during call to this function
* so packet handler should be ready to handle it
- * @param local_cid
+ * @param[in] local_cid local channel identifier
*/
void l2cap_request_can_send_now_event(uint16_t local_cid);
/**
* @brief Request an update of the connection parameter for a given LE connection
- * @param handle
- * @param conn_interval_min (unit: 1.25ms)
- * @param conn_interval_max (unit: 1.25ms)
- * @param conn_latency
- * @param supervision_timeout (unit: 10ms)
- * @returns 0 if ok
- */
-int l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
+ *
+ * Note: only Peripheral role can call this API.
+ *
+ * @param[in] handle connection handle
+ * @param[in] conn_interval_min (unit: 1.25ms)
+ * @param[in] conn_interval_max (unit: 1.25ms)
+ * @param[in] conn_latency slave latency
+ * @param[in] supervision_timeout (unit: 10ms)
+ * @returns 0 if successful else error occurs:
+ * * ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER
+ */
+uint8_t l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
uint16_t conn_interval_max, uint16_t conn_latency, uint16_t supervision_timeout);
-#ifdef CONNECTION_PARAMETER_DYNAMICALLY_ADJUST
-uint8_t l2cap_update_MTU_on_LL_link(l2cap_channel_t * channel);
-#endif
+/** @brief for PTS Testing
+ */
+uint8_t l2cap_send_echo_request(hci_con_handle_t con_handle, const uint8_t *data, uint16_t len);
/* API_END */
#ifdef __cplusplus
}
#endif
-/*to define the error result of the connection response*/
-#ifdef L2CAP_CREDIT_BASED_FLOW_CONTROL_MODE
-#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
-#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
-#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
-#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
-#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
-#endif
+
+/* Error result of the connection response */
+#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
+#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
+#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
+#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
+#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
#endif // __L2CAP_H
diff --git a/bundles/mass_conn/inc/le_device_db.h b/bundles/mass_conn/inc/le_device_db.h
index 03f8e550f..b81d04f5a 100644
--- a/bundles/mass_conn/inc/le_device_db.h
+++ b/bundles/mass_conn/inc/le_device_db.h
@@ -41,15 +41,9 @@ typedef struct le_device_memory_db {
#pragma pack (pop)
-typedef struct white_list
-{
- uint8_t addr_type;
- bd_addr_t addr;
-}white_list_t;
-
/**
- LE Device DB for pure LE Peripherals is only required for signed writes
+ LE Device DB is only required for signed writes
Per bonded device, it can store
- it stores the Identity Resolving Key (IRK) and its address to resolve private addresses
@@ -60,7 +54,6 @@ typedef struct white_list
*/
-
// LE Device db interface
/* API_START */
diff --git a/bundles/mass_conn/inc/ll_api.h b/bundles/mass_conn/inc/ll_api.h
index e8b17ef4a..877a84328 100644
--- a/bundles/mass_conn/inc/ll_api.h
+++ b/bundles/mass_conn/inc/ll_api.h
@@ -253,14 +253,15 @@ typedef void (* f_ll_raw_packet_done)(struct ll_raw_packet *packet, void *user_d
*
* @param[in] packet the packet object
* @param[in] header header sending before packet length
- * @param[in] freq_mhz freqency in MHz
+ * @param[in] freq_mhz frequency in MHz
* When 0: use the channel specified in `ll_raw_packet_set_param`)
* @return 0 if successful else error code
*
*
* Note: Only a subset of uint8_t are supported in `header`;
* When bare mode is used, CRC & whitening are all handled by apps;
- * When bare mode is used, `crc_init` is ignored.
+ * When bare mode is used, `crc_init` is ignored;
+ * When `freq_mhz` is not zero, BLE activities near this raw packets might be affected.
****************************************************************************************
*/
// int ll_raw_packet_set_bare_mode(struct ll_raw_packet *packet,
diff --git a/bundles/mass_conn/inc/sm.h b/bundles/mass_conn/inc/sm.h
index 0213e5e3f..874e028a5 100644
--- a/bundles/mass_conn/inc/sm.h
+++ b/bundles/mass_conn/inc/sm.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_exp/ING9187xx/apis.json b/bundles/noos_exp/ING9187xx/apis.json
index 40a57df68..2e602e7e1 100644
--- a/bundles/noos_exp/ING9187xx/apis.json
+++ b/bundles/noos_exp/ING9187xx/apis.json
@@ -1,262 +1,259 @@
{
- "att_dispatch_client_can_send_now": "0x00005929",
- "att_dispatch_client_request_can_send_now_event": "0x0000592f",
- "att_dispatch_register_client": "0x00005935",
- "att_dispatch_register_server": "0x00005949",
- "att_dispatch_server_can_send_now": "0x0000595d",
- "att_dispatch_server_request_can_send_now_event": "0x00005963",
- "att_emit_general_event": "0x00005a15",
- "att_server_can_send_packet_now": "0x00006129",
- "att_server_deferred_read_response": "0x0000612d",
- "att_server_get_mtu": "0x00006145",
- "att_server_indicate": "0x000061bd",
- "att_server_init": "0x00006241",
- "att_server_notify": "0x0000627d",
- "att_server_register_packet_handler": "0x00006395",
- "att_server_request_can_send_now_event": "0x000063a1",
- "att_set_db": "0x000063bd",
- "att_set_read_callback": "0x000063d1",
- "att_set_write_callback": "0x000063dd",
- "bd_addr_cmp": "0x0000654d",
- "bd_addr_copy": "0x00006553",
- "bd_addr_to_str": "0x0000655d",
- "big_endian_read_16": "0x00006595",
- "big_endian_read_32": "0x0000659d",
- "big_endian_store_16": "0x000065b1",
- "big_endian_store_32": "0x000065bd",
- "btstack_config": "0x000066f5",
- "btstack_memory_pool_create": "0x00006843",
- "btstack_memory_pool_free": "0x0000686d",
- "btstack_memory_pool_get": "0x000068cd",
- "btstack_push_user_msg": "0x00006915",
- "btstack_push_user_runnable": "0x00006921",
- "char_for_nibble": "0x00006b91",
- "gap_add_dev_to_periodic_list": "0x00007449",
- "gap_add_whitelist": "0x00007461",
- "gap_aes_encrypt": "0x00007475",
- "gap_clear_white_lists": "0x000074b9",
- "gap_clr_adv_set": "0x000074c9",
- "gap_clr_periodic_adv_list": "0x000074d9",
- "gap_create_connection_cancel": "0x000074e9",
- "gap_disconnect": "0x000074f9",
- "gap_disconnect_all": "0x00007525",
- "gap_ext_create_connection": "0x00007565",
- "gap_get_connection_parameter_range": "0x00007675",
- "gap_le_read_channel_map": "0x000076b1",
- "gap_periodic_adv_create_sync": "0x00007725",
- "gap_periodic_adv_create_sync_cancel": "0x00007749",
- "gap_periodic_adv_term_sync": "0x00007759",
- "gap_read_local_tx_power_level": "0x000077fd",
- "gap_read_periodic_adv_list_size": "0x00007811",
- "gap_read_phy": "0x00007821",
- "gap_read_remote_tx_power_level": "0x00007835",
- "gap_read_remote_used_features": "0x00007849",
- "gap_read_remote_version": "0x0000785d",
- "gap_read_rssi": "0x00007871",
- "gap_remove_whitelist": "0x00007885",
- "gap_rmv_adv_set": "0x00007909",
- "gap_rmv_dev_from_periodic_list": "0x0000791d",
- "gap_rx_test_v2": "0x00007935",
- "gap_set_adv_set_random_addr": "0x00007975",
- "gap_set_connection_parameter_range": "0x000079c1",
- "gap_set_data_length": "0x000079d9",
- "gap_set_def_phy": "0x000079f5",
- "gap_set_default_subrate": "0x00007a0d",
- "gap_set_ext_adv_data": "0x00007a29",
- "gap_set_ext_adv_enable": "0x00007a41",
- "gap_set_ext_adv_para": "0x00007abd",
- "gap_set_ext_scan_enable": "0x00007b9d",
- "gap_set_ext_scan_para": "0x00007bb5",
- "gap_set_ext_scan_response_data": "0x00007c5d",
- "gap_set_host_channel_classification": "0x00007c75",
- "gap_set_path_loss_reporting_enable": "0x00007c89",
- "gap_set_path_loss_reporting_param": "0x00007c9d",
- "gap_set_periodic_adv_data": "0x00007cbd",
- "gap_set_periodic_adv_enable": "0x00007d31",
- "gap_set_periodic_adv_para": "0x00007d45",
- "gap_set_phy": "0x00007d5d",
- "gap_set_random_device_address": "0x00007d79",
- "gap_set_tx_power_reporting_enable": "0x00007d99",
- "gap_start_ccm": "0x00007dc1",
- "gap_subrate_request": "0x00007df5",
- "gap_test_end": "0x00007e15",
- "gap_tx_test_v2": "0x00007e25",
- "gap_tx_test_v4": "0x00007e3d",
- "gap_update_connection_parameters": "0x00007e65",
- "gap_vendor_tx_continuous_wave": "0x00007ea9",
- "gatt_client_cancel_write": "0x000083d1",
- "gatt_client_discover_characteristic_descriptors": "0x000083f7",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x00008437",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x00008487",
- "gatt_client_discover_characteristics_for_service": "0x000084d7",
- "gatt_client_discover_primary_services": "0x0000850d",
- "gatt_client_discover_primary_services_by_uuid128": "0x0000853f",
- "gatt_client_discover_primary_services_by_uuid16": "0x00008583",
- "gatt_client_execute_write": "0x000085bf",
- "gatt_client_find_included_services_for_service": "0x000085e5",
- "gatt_client_get_mtu": "0x00008613",
- "gatt_client_is_ready": "0x000086b5",
- "gatt_client_listen_for_characteristic_value_updates": "0x000086cb",
- "gatt_client_prepare_write": "0x000086ed",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008729",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008753",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008759",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008787",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x0000878d",
- "gatt_client_read_multiple_characteristic_values": "0x000087bb",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x000087eb",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008819",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008865",
- "gatt_client_register_handler": "0x000088b1",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x000088bd",
- "gatt_client_signed_write_without_response": "0x00008ced",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008db1",
- "gatt_client_write_client_characteristic_configuration": "0x00008deb",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008e3d",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008e4d",
- "gatt_client_write_long_value_of_characteristic": "0x00008e89",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008e99",
- "gatt_client_write_value_of_characteristic": "0x00008ed5",
- "gatt_client_write_value_of_characteristic_without_response": "0x00008f0b",
- "hci_add_event_handler": "0x0000a495",
- "hci_power_control": "0x0000ac9d",
- "hci_register_acl_packet_handler": "0x0000ae51",
- "kv_commit": "0x0000b3e9",
- "kv_get": "0x0000b441",
- "kv_init": "0x0000b459",
- "kv_put": "0x0000b4c1",
- "kv_remove": "0x0000b539",
- "kv_remove_all": "0x0000b575",
- "kv_value_modified": "0x0000b5b9",
- "kv_visit": "0x0000b5bd",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000b67d",
- "l2cap_can_send_packet_now": "0x0000b681",
- "l2cap_create_channel": "0x0000b839",
- "l2cap_disconnect": "0x0000b971",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000bb99",
- "l2cap_init": "0x0000bf91",
- "l2cap_le_send_flow_control_credit": "0x0000bfd1",
- "l2cap_max_le_mtu": "0x0000c28d",
- "l2cap_max_mtu": "0x0000c291",
- "l2cap_register_fixed_channel": "0x0000c39d",
- "l2cap_register_packet_handler": "0x0000c3b9",
- "l2cap_register_service": "0x0000c3c5",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c4a9",
- "l2cap_request_can_send_now_event": "0x0000c4cd",
- "l2cap_request_connection_parameter_update": "0x0000c4e7",
- "l2cap_send": "0x0000c881",
- "l2cap_send_connectionless": "0x0000c8f9",
- "l2cap_send_connectionless3": "0x0000c989",
- "l2cap_send_echo_request": "0x0000ca21",
- "l2cap_unregister_service": "0x0000cadd",
- "le_device_db_add": "0x0000cb35",
- "le_device_db_find": "0x0000cc09",
- "le_device_db_from_key": "0x0000cc35",
- "le_device_db_iter_cur": "0x0000cc3d",
- "le_device_db_iter_cur_key": "0x0000cc41",
- "le_device_db_iter_init": "0x0000cc45",
- "le_device_db_iter_next": "0x0000cc4d",
- "le_device_db_remove_key": "0x0000cc73",
- "ll_ackable_packet_alloc": "0x0000cc9f",
- "ll_ackable_packet_get_status": "0x0000cda7",
- "ll_ackable_packet_run": "0x0000ce19",
- "ll_ackable_packet_set_tx_data": "0x0000cec1",
- "ll_adjust_conn_peer_tx_power": "0x0000cedd",
- "ll_dhkey_generated": "0x0000d125",
- "ll_free": "0x0000d155",
- "ll_hint_on_ce_len": "0x0000d161",
- "ll_install_ecc_engine": "0x0000d199",
- "ll_legacy_adv_set_interval": "0x0000d1a5",
- "ll_malloc": "0x0000d1b5",
- "ll_p256_key_pair_generated": "0x0000d1bd",
- "ll_raw_packet_alloc": "0x0000d36d",
- "ll_raw_packet_free": "0x0000d441",
- "ll_raw_packet_get_bare_rx_data": "0x0000d46b",
- "ll_raw_packet_get_rx_data": "0x0000d531",
- "ll_raw_packet_recv": "0x0000d5d1",
- "ll_raw_packet_send": "0x0000d68d",
- "ll_raw_packet_set_bare_data": "0x0000d775",
- "ll_raw_packet_set_bare_mode": "0x0000d7b3",
- "ll_raw_packet_set_param": "0x0000d8b9",
- "ll_raw_packet_set_tx_data": "0x0000d917",
- "ll_scan_set_fixed_channel": "0x0000d9d5",
- "ll_set_adv_access_address": "0x0000dae9",
- "ll_set_adv_coded_scheme": "0x0000daf5",
- "ll_set_conn_coded_scheme": "0x0000db25",
- "ll_set_conn_interval_unit": "0x0000db51",
- "ll_set_conn_latency": "0x0000db5d",
- "ll_set_conn_tx_power": "0x0000db8d",
- "ll_set_def_antenna": "0x0000dbc9",
- "ll_set_initiating_coded_scheme": "0x0000dbe5",
- "ll_set_max_conn_number": "0x0000dbf1",
- "ll_set_tx_power_range": "0x0000dc8d",
- "nibble_for_char": "0x0001f0b1",
- "platform_32k_rc_auto_tune": "0x0001f14d",
- "platform_32k_rc_tune": "0x0001f1c9",
- "platform_calibrate_32k": "0x0001f1dd",
- "platform_config": "0x0001f1e1",
- "platform_controller_run": "0x0001f2b9",
- "platform_get_gen_os_driver": "0x0001f2f1",
- "platform_get_task_handle": "0x0001f2fd",
- "platform_get_us_time": "0x0001f315",
- "platform_get_version": "0x0001f319",
- "platform_hrng": "0x0001f321",
- "platform_init_controller": "0x0001f329",
- "platform_os_idle_resumed_hook": "0x0001f345",
- "platform_patch_rf_init_data": "0x0001f349",
- "platform_post_sleep_processing": "0x0001f355",
- "platform_pre_sleep_processing": "0x0001f35b",
- "platform_pre_suppress_ticks_and_sleep_processing": "0x0001f361",
- "platform_printf": "0x0001f365",
- "platform_raise_assertion": "0x0001f379",
- "platform_rand": "0x0001f38d",
- "platform_read_info": "0x0001f391",
- "platform_read_persistent_reg": "0x0001f3c1",
- "platform_reset": "0x0001f3d1",
- "platform_set_evt_callback": "0x0001f3f5",
- "platform_set_irq_callback": "0x0001f409",
- "platform_set_rf_clk_source": "0x0001f441",
- "platform_set_rf_init_data": "0x0001f44d",
- "platform_set_rf_power_mapping": "0x0001f459",
- "platform_set_timer": "0x0001f465",
- "platform_shutdown": "0x0001f469",
- "platform_switch_app": "0x0001f46d",
- "platform_trace_raw": "0x0001f499",
- "platform_write_persistent_reg": "0x0001f4b1",
- "printf_hexdump": "0x0001f4c1",
- "reverse_128": "0x0001f7fd",
- "reverse_24": "0x0001f803",
- "reverse_48": "0x0001f809",
- "reverse_56": "0x0001f80f",
- "reverse_64": "0x0001f815",
- "reverse_bd_addr": "0x0001f81b",
- "reverse_bytes": "0x0001f821",
- "sm_add_event_handler": "0x0001f9ad",
- "sm_address_resolution_lookup": "0x0001fb05",
- "sm_authenticated": "0x0001fe5d",
- "sm_authorization_decline": "0x0001fe6b",
- "sm_authorization_grant": "0x0001fe8b",
- "sm_authorization_state": "0x0001feab",
- "sm_bonding_decline": "0x0001fec5",
- "sm_config": "0x000202e5",
- "sm_config_conn": "0x000202fd",
- "sm_encryption_key_size": "0x000204b3",
- "sm_just_works_confirm": "0x000209ed",
- "sm_le_device_key": "0x00020d29",
- "sm_passkey_input": "0x00020dbf",
- "sm_private_random_address_generation_get": "0x0002116d",
- "sm_private_random_address_generation_get_mode": "0x00021175",
- "sm_private_random_address_generation_set_mode": "0x00021181",
- "sm_private_random_address_generation_set_update_period": "0x000211a9",
- "sm_register_oob_data_callback": "0x000212e5",
- "sm_request_pairing": "0x000212f1",
- "sm_send_security_request": "0x00021d0f",
- "sm_set_accepted_stk_generation_methods": "0x00021d35",
- "sm_set_authentication_requirements": "0x00021d41",
- "sm_set_encryption_key_size_range": "0x00021d4d",
- "sscanf_bd_addr": "0x0002211d",
- "sysSetPublicDeviceAddr": "0x00022495",
- "uuid128_to_str": "0x00022a9d",
- "uuid_add_bluetooth_prefix": "0x00022af5",
- "uuid_has_bluetooth_prefix": "0x00022b15"
+ "att_dispatch_client_can_send_now": "0x0000568d",
+ "att_dispatch_client_request_can_send_now_event": "0x00005693",
+ "att_dispatch_register_client": "0x00005699",
+ "att_dispatch_register_server": "0x000056ad",
+ "att_dispatch_server_can_send_now": "0x000056c1",
+ "att_dispatch_server_request_can_send_now_event": "0x000056c7",
+ "att_emit_general_event": "0x00005779",
+ "att_server_can_send_packet_now": "0x00005e8d",
+ "att_server_deferred_read_response": "0x00005e91",
+ "att_server_get_mtu": "0x00005ea9",
+ "att_server_indicate": "0x00005f21",
+ "att_server_init": "0x00005fa5",
+ "att_server_notify": "0x00005fe1",
+ "att_server_register_packet_handler": "0x000060f9",
+ "att_server_request_can_send_now_event": "0x00006105",
+ "att_set_db": "0x00006121",
+ "att_set_read_callback": "0x00006135",
+ "att_set_write_callback": "0x00006141",
+ "bd_addr_cmp": "0x000062b1",
+ "bd_addr_copy": "0x000062b7",
+ "bd_addr_to_str": "0x000062c1",
+ "big_endian_read_16": "0x000062f9",
+ "big_endian_read_32": "0x00006301",
+ "big_endian_store_16": "0x00006315",
+ "big_endian_store_32": "0x00006321",
+ "btstack_config": "0x00006459",
+ "btstack_memory_pool_create": "0x000065a7",
+ "btstack_memory_pool_free": "0x000065d1",
+ "btstack_memory_pool_get": "0x00006631",
+ "btstack_push_user_msg": "0x00006679",
+ "btstack_push_user_runnable": "0x00006685",
+ "char_for_nibble": "0x000068f5",
+ "gap_add_dev_to_periodic_list": "0x000071ad",
+ "gap_add_whitelist": "0x000071c5",
+ "gap_aes_encrypt": "0x000071d9",
+ "gap_clear_white_lists": "0x0000721d",
+ "gap_clr_adv_set": "0x0000722d",
+ "gap_clr_periodic_adv_list": "0x0000723d",
+ "gap_create_connection_cancel": "0x0000724d",
+ "gap_disconnect": "0x0000725d",
+ "gap_disconnect_all": "0x00007289",
+ "gap_ext_create_connection": "0x000072c9",
+ "gap_get_connection_parameter_range": "0x000073d9",
+ "gap_le_read_channel_map": "0x00007415",
+ "gap_periodic_adv_create_sync": "0x00007489",
+ "gap_periodic_adv_create_sync_cancel": "0x000074ad",
+ "gap_periodic_adv_term_sync": "0x000074bd",
+ "gap_read_local_tx_power_level": "0x00007561",
+ "gap_read_periodic_adv_list_size": "0x00007575",
+ "gap_read_phy": "0x00007585",
+ "gap_read_remote_tx_power_level": "0x00007599",
+ "gap_read_remote_used_features": "0x000075ad",
+ "gap_read_remote_version": "0x000075c1",
+ "gap_read_rssi": "0x000075d5",
+ "gap_remove_whitelist": "0x000075e9",
+ "gap_rmv_adv_set": "0x0000766d",
+ "gap_rmv_dev_from_periodic_list": "0x00007681",
+ "gap_rx_test_v2": "0x00007699",
+ "gap_set_adv_set_random_addr": "0x000076d9",
+ "gap_set_connection_parameter_range": "0x00007725",
+ "gap_set_data_length": "0x0000773d",
+ "gap_set_def_phy": "0x00007759",
+ "gap_set_default_subrate": "0x00007771",
+ "gap_set_ext_adv_data": "0x0000778d",
+ "gap_set_ext_adv_enable": "0x000077a5",
+ "gap_set_ext_adv_para": "0x00007821",
+ "gap_set_ext_scan_enable": "0x00007901",
+ "gap_set_ext_scan_para": "0x00007919",
+ "gap_set_ext_scan_response_data": "0x000079c1",
+ "gap_set_host_channel_classification": "0x000079d9",
+ "gap_set_path_loss_reporting_enable": "0x000079ed",
+ "gap_set_path_loss_reporting_param": "0x00007a01",
+ "gap_set_periodic_adv_data": "0x00007a21",
+ "gap_set_periodic_adv_enable": "0x00007a95",
+ "gap_set_periodic_adv_para": "0x00007aa9",
+ "gap_set_phy": "0x00007ac1",
+ "gap_set_random_device_address": "0x00007add",
+ "gap_set_tx_power_reporting_enable": "0x00007afd",
+ "gap_start_ccm": "0x00007b25",
+ "gap_subrate_request": "0x00007b59",
+ "gap_test_end": "0x00007b79",
+ "gap_tx_test_v2": "0x00007b89",
+ "gap_tx_test_v4": "0x00007ba1",
+ "gap_update_connection_parameters": "0x00007bc9",
+ "gap_vendor_tx_continuous_wave": "0x00007c0d",
+ "gatt_client_cancel_write": "0x00008135",
+ "gatt_client_discover_characteristic_descriptors": "0x0000815b",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0000819b",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000081eb",
+ "gatt_client_discover_characteristics_for_service": "0x0000823b",
+ "gatt_client_discover_primary_services": "0x00008271",
+ "gatt_client_discover_primary_services_by_uuid128": "0x000082a3",
+ "gatt_client_discover_primary_services_by_uuid16": "0x000082e7",
+ "gatt_client_execute_write": "0x00008323",
+ "gatt_client_find_included_services_for_service": "0x00008349",
+ "gatt_client_get_mtu": "0x00008377",
+ "gatt_client_is_ready": "0x00008419",
+ "gatt_client_listen_for_characteristic_value_updates": "0x0000842f",
+ "gatt_client_prepare_write": "0x00008451",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x0000848d",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000084b7",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000084bd",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000084eb",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x000084f1",
+ "gatt_client_read_multiple_characteristic_values": "0x0000851f",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x0000854f",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x0000857d",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x000085c9",
+ "gatt_client_register_handler": "0x00008615",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x00008621",
+ "gatt_client_signed_write_without_response": "0x00008a51",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008b15",
+ "gatt_client_write_client_characteristic_configuration": "0x00008b4f",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008ba1",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008bb1",
+ "gatt_client_write_long_value_of_characteristic": "0x00008bed",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008bfd",
+ "gatt_client_write_value_of_characteristic": "0x00008c39",
+ "gatt_client_write_value_of_characteristic_without_response": "0x00008c6f",
+ "hci_add_event_handler": "0x0000a1f9",
+ "hci_power_control": "0x0000aa01",
+ "hci_register_acl_packet_handler": "0x0000abb5",
+ "kv_commit": "0x0000b14d",
+ "kv_get": "0x0000b1a5",
+ "kv_init": "0x0000b1bd",
+ "kv_put": "0x0000b225",
+ "kv_remove": "0x0000b29d",
+ "kv_remove_all": "0x0000b2d9",
+ "kv_value_modified": "0x0000b31d",
+ "kv_visit": "0x0000b321",
+ "l2cap_add_event_handler": "0x0000b3d5",
+ "l2cap_can_send_packet_now": "0x0000b3e5",
+ "l2cap_create_le_credit_based_connection_request": "0x0000b5a1",
+ "l2cap_credit_based_send": "0x0000b6e5",
+ "l2cap_credit_based_send_continue": "0x0000b711",
+ "l2cap_disconnect": "0x0000b78d",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000b9dd",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000b9f9",
+ "l2cap_init": "0x0000bdcd",
+ "l2cap_le_send_flow_control_credit": "0x0000bec3",
+ "l2cap_max_le_mtu": "0x0000c1cd",
+ "l2cap_register_packet_handler": "0x0000c2f5",
+ "l2cap_register_service": "0x0000c301",
+ "l2cap_request_can_send_now_event": "0x0000c411",
+ "l2cap_request_connection_parameter_update": "0x0000c42b",
+ "l2cap_send_echo_request": "0x0000c8fd",
+ "l2cap_unregister_service": "0x0000c9bd",
+ "le_device_db_add": "0x0000ca15",
+ "le_device_db_find": "0x0000cae9",
+ "le_device_db_from_key": "0x0000cb15",
+ "le_device_db_iter_cur": "0x0000cb1d",
+ "le_device_db_iter_cur_key": "0x0000cb21",
+ "le_device_db_iter_init": "0x0000cb25",
+ "le_device_db_iter_next": "0x0000cb2d",
+ "le_device_db_remove_key": "0x0000cb53",
+ "ll_ackable_packet_alloc": "0x0000cb7f",
+ "ll_ackable_packet_get_status": "0x0000cc87",
+ "ll_ackable_packet_run": "0x0000ccf9",
+ "ll_ackable_packet_set_tx_data": "0x0000cda1",
+ "ll_adjust_conn_peer_tx_power": "0x0000cdbd",
+ "ll_dhkey_generated": "0x0000d005",
+ "ll_free": "0x0000d035",
+ "ll_hint_on_ce_len": "0x0000d041",
+ "ll_install_ecc_engine": "0x0000d079",
+ "ll_legacy_adv_set_interval": "0x0000d085",
+ "ll_malloc": "0x0000d095",
+ "ll_p256_key_pair_generated": "0x0000d09d",
+ "ll_raw_packet_alloc": "0x0000d24d",
+ "ll_raw_packet_free": "0x0000d321",
+ "ll_raw_packet_get_bare_rx_data": "0x0000d34b",
+ "ll_raw_packet_get_rx_data": "0x0000d411",
+ "ll_raw_packet_recv": "0x0000d4b1",
+ "ll_raw_packet_send": "0x0000d56d",
+ "ll_raw_packet_set_bare_data": "0x0000d655",
+ "ll_raw_packet_set_bare_mode": "0x0000d693",
+ "ll_raw_packet_set_param": "0x0000d799",
+ "ll_raw_packet_set_tx_data": "0x0000d7f7",
+ "ll_scan_set_fixed_channel": "0x0000d8b5",
+ "ll_set_adv_access_address": "0x0000d9c9",
+ "ll_set_adv_coded_scheme": "0x0000d9d5",
+ "ll_set_conn_coded_scheme": "0x0000da05",
+ "ll_set_conn_interval_unit": "0x0000da31",
+ "ll_set_conn_latency": "0x0000da3d",
+ "ll_set_conn_tx_power": "0x0000da6d",
+ "ll_set_def_antenna": "0x0000daa9",
+ "ll_set_initiating_coded_scheme": "0x0000dac5",
+ "ll_set_max_conn_number": "0x0000dad1",
+ "ll_set_tx_power_range": "0x0000db6d",
+ "nibble_for_char": "0x0001ef95",
+ "platform_32k_rc_auto_tune": "0x0001f031",
+ "platform_32k_rc_tune": "0x0001f0ad",
+ "platform_calibrate_32k": "0x0001f0c1",
+ "platform_config": "0x0001f0c5",
+ "platform_controller_run": "0x0001f19d",
+ "platform_get_gen_os_driver": "0x0001f1d5",
+ "platform_get_task_handle": "0x0001f1e1",
+ "platform_get_us_time": "0x0001f1f9",
+ "platform_get_version": "0x0001f1fd",
+ "platform_hrng": "0x0001f205",
+ "platform_init_controller": "0x0001f20d",
+ "platform_os_idle_resumed_hook": "0x0001f229",
+ "platform_patch_rf_init_data": "0x0001f22d",
+ "platform_post_sleep_processing": "0x0001f239",
+ "platform_pre_sleep_processing": "0x0001f23f",
+ "platform_pre_suppress_ticks_and_sleep_processing": "0x0001f245",
+ "platform_printf": "0x0001f249",
+ "platform_raise_assertion": "0x0001f25d",
+ "platform_rand": "0x0001f271",
+ "platform_read_info": "0x0001f275",
+ "platform_read_persistent_reg": "0x0001f2a5",
+ "platform_reset": "0x0001f2b5",
+ "platform_set_evt_callback": "0x0001f2d9",
+ "platform_set_irq_callback": "0x0001f2ed",
+ "platform_set_rf_clk_source": "0x0001f325",
+ "platform_set_rf_init_data": "0x0001f331",
+ "platform_set_rf_power_mapping": "0x0001f33d",
+ "platform_set_timer": "0x0001f349",
+ "platform_shutdown": "0x0001f34d",
+ "platform_switch_app": "0x0001f351",
+ "platform_trace_raw": "0x0001f37d",
+ "platform_write_persistent_reg": "0x0001f395",
+ "printf_hexdump": "0x0001f3a5",
+ "reverse_128": "0x0001f6e1",
+ "reverse_24": "0x0001f6e7",
+ "reverse_48": "0x0001f6ed",
+ "reverse_56": "0x0001f6f3",
+ "reverse_64": "0x0001f6f9",
+ "reverse_bd_addr": "0x0001f6ff",
+ "reverse_bytes": "0x0001f705",
+ "sm_add_event_handler": "0x0001f891",
+ "sm_address_resolution_lookup": "0x0001f9e9",
+ "sm_authenticated": "0x0001fd41",
+ "sm_authorization_decline": "0x0001fd4f",
+ "sm_authorization_grant": "0x0001fd6f",
+ "sm_authorization_state": "0x0001fd8f",
+ "sm_bonding_decline": "0x0001fda9",
+ "sm_config": "0x000201c9",
+ "sm_config_conn": "0x000201e1",
+ "sm_encryption_key_size": "0x00020397",
+ "sm_just_works_confirm": "0x000208d1",
+ "sm_le_device_key": "0x00020c0d",
+ "sm_passkey_input": "0x00020ca3",
+ "sm_private_random_address_generation_get": "0x00021051",
+ "sm_private_random_address_generation_get_mode": "0x00021059",
+ "sm_private_random_address_generation_set_mode": "0x00021065",
+ "sm_private_random_address_generation_set_update_period": "0x0002108d",
+ "sm_register_oob_data_callback": "0x000211c9",
+ "sm_request_pairing": "0x000211d5",
+ "sm_send_security_request": "0x00021bf3",
+ "sm_set_accepted_stk_generation_methods": "0x00021c19",
+ "sm_set_authentication_requirements": "0x00021c25",
+ "sm_set_encryption_key_size_range": "0x00021c31",
+ "sscanf_bd_addr": "0x00022001",
+ "sysSetPublicDeviceAddr": "0x00022379",
+ "uuid128_to_str": "0x00022981",
+ "uuid_add_bluetooth_prefix": "0x000229d9",
+ "uuid_has_bluetooth_prefix": "0x000229f9"
}
\ No newline at end of file
diff --git a/bundles/noos_exp/ING9187xx/meta.json b/bundles/noos_exp/ING9187xx/meta.json
index 94ebd1f3d..3b0d35d98 100644
--- a/bundles/noos_exp/ING9187xx/meta.json
+++ b/bundles/noos_exp/ING9187xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 5620
+ "size": 4612
},
"rom": {
"base": 16384,
- "size": 132764
+ "size": 132472
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/noos_exp/ING9187xx/platform.bin b/bundles/noos_exp/ING9187xx/platform.bin
index 24fcea222..3a2613ea8 100644
Binary files a/bundles/noos_exp/ING9187xx/platform.bin and b/bundles/noos_exp/ING9187xx/platform.bin differ
diff --git a/bundles/noos_exp/ING9188xx/apis.json b/bundles/noos_exp/ING9188xx/apis.json
index a85c75ec2..18ab6bc2e 100644
--- a/bundles/noos_exp/ING9188xx/apis.json
+++ b/bundles/noos_exp/ING9188xx/apis.json
@@ -1,281 +1,278 @@
{
- "att_dispatch_client_can_send_now": "0x00005a4d",
- "att_dispatch_client_request_can_send_now_event": "0x00005a53",
- "att_dispatch_register_client": "0x00005a59",
- "att_dispatch_register_server": "0x00005a6d",
- "att_dispatch_server_can_send_now": "0x00005a81",
- "att_dispatch_server_request_can_send_now_event": "0x00005a87",
- "att_emit_general_event": "0x00005b39",
- "att_server_can_send_packet_now": "0x0000624d",
- "att_server_deferred_read_response": "0x00006251",
- "att_server_get_mtu": "0x00006269",
- "att_server_indicate": "0x000062e1",
- "att_server_init": "0x00006365",
- "att_server_notify": "0x000063a1",
- "att_server_register_packet_handler": "0x000064b9",
- "att_server_request_can_send_now_event": "0x000064c5",
- "att_set_db": "0x000064e1",
- "att_set_read_callback": "0x000064f5",
- "att_set_write_callback": "0x00006501",
- "bd_addr_cmp": "0x00006671",
- "bd_addr_copy": "0x00006677",
- "bd_addr_to_str": "0x00006681",
- "big_endian_read_16": "0x000066b9",
- "big_endian_read_32": "0x000066c1",
- "big_endian_store_16": "0x000066d5",
- "big_endian_store_32": "0x000066e1",
- "btstack_config": "0x00006819",
- "btstack_memory_pool_create": "0x00006967",
- "btstack_memory_pool_free": "0x00006991",
- "btstack_memory_pool_get": "0x000069f1",
- "btstack_push_user_msg": "0x00006a39",
- "btstack_push_user_runnable": "0x00006a45",
- "char_for_nibble": "0x00006cb5",
- "gap_add_dev_to_periodic_list": "0x000075dd",
- "gap_add_whitelist": "0x000075f5",
- "gap_aes_encrypt": "0x00007609",
- "gap_clear_white_lists": "0x0000764d",
- "gap_clr_adv_set": "0x0000765d",
- "gap_clr_periodic_adv_list": "0x0000766d",
- "gap_create_connection_cancel": "0x0000767d",
- "gap_default_periodic_adv_sync_transfer_param": "0x0000768d",
- "gap_disconnect": "0x000076a5",
- "gap_disconnect_all": "0x000076d1",
- "gap_ext_create_connection": "0x00007711",
- "gap_get_connection_parameter_range": "0x00007821",
- "gap_le_read_channel_map": "0x0000785d",
- "gap_periodic_adv_create_sync": "0x000078d1",
- "gap_periodic_adv_create_sync_cancel": "0x000078f5",
- "gap_periodic_adv_set_info_transfer": "0x00007905",
- "gap_periodic_adv_sync_transfer": "0x0000791d",
- "gap_periodic_adv_sync_transfer_param": "0x00007935",
- "gap_periodic_adv_term_sync": "0x00007951",
- "gap_read_antenna_info": "0x000079e5",
- "gap_read_local_tx_power_level": "0x00007a05",
- "gap_read_periodic_adv_list_size": "0x00007a19",
- "gap_read_phy": "0x00007a29",
- "gap_read_remote_tx_power_level": "0x00007a3d",
- "gap_read_remote_used_features": "0x00007a51",
- "gap_read_remote_version": "0x00007a65",
- "gap_read_rssi": "0x00007a79",
- "gap_remove_whitelist": "0x00007a8d",
- "gap_rmv_adv_set": "0x00007b11",
- "gap_rmv_dev_from_periodic_list": "0x00007b25",
- "gap_rx_test_v2": "0x00007b3d",
- "gap_rx_test_v3": "0x00007b55",
- "gap_set_adv_set_random_addr": "0x00007ba5",
- "gap_set_connection_cte_request_enable": "0x00007bf1",
- "gap_set_connection_cte_response_enable": "0x00007c0d",
- "gap_set_connection_cte_rx_param": "0x00007c21",
- "gap_set_connection_cte_tx_param": "0x00007c7d",
- "gap_set_connection_parameter_range": "0x00007cd1",
- "gap_set_connectionless_cte_tx_enable": "0x00007ce9",
- "gap_set_connectionless_cte_tx_param": "0x00007cfd",
- "gap_set_connectionless_iq_sampling_enable": "0x00007d5d",
- "gap_set_data_length": "0x00007dc1",
- "gap_set_def_phy": "0x00007ddd",
- "gap_set_default_subrate": "0x00007df5",
- "gap_set_ext_adv_data": "0x00007e11",
- "gap_set_ext_adv_enable": "0x00007e29",
- "gap_set_ext_adv_para": "0x00007ea5",
- "gap_set_ext_scan_enable": "0x00007f85",
- "gap_set_ext_scan_para": "0x00007f9d",
- "gap_set_ext_scan_response_data": "0x00008045",
- "gap_set_host_channel_classification": "0x0000805d",
- "gap_set_path_loss_reporting_enable": "0x00008071",
- "gap_set_path_loss_reporting_param": "0x00008085",
- "gap_set_periodic_adv_data": "0x000080a5",
- "gap_set_periodic_adv_enable": "0x00008119",
- "gap_set_periodic_adv_para": "0x0000812d",
- "gap_set_periodic_adv_rx_enable": "0x00008145",
- "gap_set_phy": "0x00008159",
- "gap_set_random_device_address": "0x00008175",
- "gap_set_tx_power_reporting_enable": "0x00008195",
- "gap_start_ccm": "0x000081bd",
- "gap_subrate_request": "0x000081f1",
- "gap_test_end": "0x00008211",
- "gap_tx_test_v2": "0x00008221",
- "gap_tx_test_v4": "0x00008239",
- "gap_update_connection_parameters": "0x00008261",
- "gap_vendor_tx_continuous_wave": "0x000082a5",
- "gatt_client_cancel_write": "0x000087cd",
- "gatt_client_discover_characteristic_descriptors": "0x000087f3",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x00008833",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x00008883",
- "gatt_client_discover_characteristics_for_service": "0x000088d3",
- "gatt_client_discover_primary_services": "0x00008909",
- "gatt_client_discover_primary_services_by_uuid128": "0x0000893b",
- "gatt_client_discover_primary_services_by_uuid16": "0x0000897f",
- "gatt_client_execute_write": "0x000089bb",
- "gatt_client_find_included_services_for_service": "0x000089e1",
- "gatt_client_get_mtu": "0x00008a0f",
- "gatt_client_is_ready": "0x00008ab1",
- "gatt_client_listen_for_characteristic_value_updates": "0x00008ac7",
- "gatt_client_prepare_write": "0x00008ae9",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008b25",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008b4f",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008b55",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008b83",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008b89",
- "gatt_client_read_multiple_characteristic_values": "0x00008bb7",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008be7",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008c15",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008c61",
- "gatt_client_register_handler": "0x00008cad",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x00008cb9",
- "gatt_client_signed_write_without_response": "0x000090e9",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x000091ad",
- "gatt_client_write_client_characteristic_configuration": "0x000091e7",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00009239",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00009249",
- "gatt_client_write_long_value_of_characteristic": "0x00009285",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x00009295",
- "gatt_client_write_value_of_characteristic": "0x000092d1",
- "gatt_client_write_value_of_characteristic_without_response": "0x00009307",
- "hci_add_event_handler": "0x0000a8ad",
- "hci_power_control": "0x0000b0b5",
- "hci_register_acl_packet_handler": "0x0000b269",
- "kv_commit": "0x0000b801",
- "kv_get": "0x0000b859",
- "kv_init": "0x0000b871",
- "kv_put": "0x0000b8d9",
- "kv_remove": "0x0000b951",
- "kv_remove_all": "0x0000b98d",
- "kv_value_modified": "0x0000b9d1",
- "kv_visit": "0x0000b9d5",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000ba95",
- "l2cap_can_send_packet_now": "0x0000ba99",
- "l2cap_create_channel": "0x0000bc51",
- "l2cap_disconnect": "0x0000bd89",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000bfb1",
- "l2cap_init": "0x0000c3a9",
- "l2cap_le_send_flow_control_credit": "0x0000c3e9",
- "l2cap_max_le_mtu": "0x0000c6a5",
- "l2cap_max_mtu": "0x0000c6a9",
- "l2cap_register_fixed_channel": "0x0000c7b5",
- "l2cap_register_packet_handler": "0x0000c7d1",
- "l2cap_register_service": "0x0000c7dd",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c8c1",
- "l2cap_request_can_send_now_event": "0x0000c8e5",
- "l2cap_request_connection_parameter_update": "0x0000c8ff",
- "l2cap_send": "0x0000cc99",
- "l2cap_send_connectionless": "0x0000cd11",
- "l2cap_send_connectionless3": "0x0000cda1",
- "l2cap_send_echo_request": "0x0000ce39",
- "l2cap_unregister_service": "0x0000cef5",
- "le_device_db_add": "0x0000cf4d",
- "le_device_db_find": "0x0000d021",
- "le_device_db_from_key": "0x0000d04d",
- "le_device_db_iter_cur": "0x0000d055",
- "le_device_db_iter_cur_key": "0x0000d059",
- "le_device_db_iter_init": "0x0000d05d",
- "le_device_db_iter_next": "0x0000d065",
- "le_device_db_remove_key": "0x0000d08b",
- "ll_ackable_packet_alloc": "0x0000d0b7",
- "ll_ackable_packet_get_status": "0x0000d1bf",
- "ll_ackable_packet_run": "0x0000d231",
- "ll_ackable_packet_set_tx_data": "0x0000d2d9",
- "ll_adjust_conn_peer_tx_power": "0x0000d2f5",
- "ll_dhkey_generated": "0x0000d53d",
- "ll_free": "0x0000d56d",
- "ll_hint_on_ce_len": "0x0000d579",
- "ll_install_ecc_engine": "0x0000d5b1",
- "ll_legacy_adv_set_interval": "0x0000d5bd",
- "ll_malloc": "0x0000d5cd",
- "ll_p256_key_pair_generated": "0x0000d5d5",
- "ll_raw_packet_alloc": "0x0000d785",
- "ll_raw_packet_free": "0x0000d859",
- "ll_raw_packet_get_bare_rx_data": "0x0000d883",
- "ll_raw_packet_get_iq_samples": "0x0000d949",
- "ll_raw_packet_get_rx_data": "0x0000d9e3",
- "ll_raw_packet_recv": "0x0000da85",
- "ll_raw_packet_send": "0x0000db41",
- "ll_raw_packet_set_bare_data": "0x0000dc29",
- "ll_raw_packet_set_bare_mode": "0x0000dc67",
- "ll_raw_packet_set_fake_cte_info": "0x0000dd6d",
- "ll_raw_packet_set_param": "0x0000dd8f",
- "ll_raw_packet_set_rx_cte": "0x0000dded",
- "ll_raw_packet_set_tx_cte": "0x0000de83",
- "ll_raw_packet_set_tx_data": "0x0000dec1",
- "ll_scan_set_fixed_channel": "0x0000df7d",
- "ll_scanner_enable_iq_sampling": "0x0000df89",
- "ll_set_adv_access_address": "0x0000e139",
- "ll_set_adv_coded_scheme": "0x0000e145",
- "ll_set_conn_coded_scheme": "0x0000e175",
- "ll_set_conn_interval_unit": "0x0000e1a1",
- "ll_set_conn_latency": "0x0000e1ad",
- "ll_set_conn_tx_power": "0x0000e1dd",
- "ll_set_def_antenna": "0x0000e219",
- "ll_set_initiating_coded_scheme": "0x0000e235",
- "ll_set_max_conn_number": "0x0000e241",
- "ll_set_tx_power_range": "0x0000e2dd",
- "nibble_for_char": "0x0002070d",
- "platform_32k_rc_auto_tune": "0x000207a9",
- "platform_32k_rc_tune": "0x00020825",
- "platform_calibrate_32k": "0x00020839",
- "platform_config": "0x0002083d",
- "platform_controller_run": "0x00020915",
- "platform_get_gen_os_driver": "0x0002094d",
- "platform_get_task_handle": "0x00020959",
- "platform_get_us_time": "0x00020971",
- "platform_get_version": "0x00020975",
- "platform_hrng": "0x0002097d",
- "platform_init_controller": "0x00020985",
- "platform_os_idle_resumed_hook": "0x000209a1",
- "platform_patch_rf_init_data": "0x000209a5",
- "platform_post_sleep_processing": "0x000209b1",
- "platform_pre_sleep_processing": "0x000209b7",
- "platform_pre_suppress_ticks_and_sleep_processing": "0x000209bd",
- "platform_printf": "0x000209c1",
- "platform_raise_assertion": "0x000209d5",
- "platform_rand": "0x000209e9",
- "platform_read_info": "0x000209ed",
- "platform_read_persistent_reg": "0x00020a1d",
- "platform_reset": "0x00020a2d",
- "platform_set_evt_callback": "0x00020a51",
- "platform_set_irq_callback": "0x00020a65",
- "platform_set_rf_clk_source": "0x00020a9d",
- "platform_set_rf_init_data": "0x00020aa9",
- "platform_set_rf_power_mapping": "0x00020ab5",
- "platform_set_timer": "0x00020ac1",
- "platform_shutdown": "0x00020ac5",
- "platform_switch_app": "0x00020ac9",
- "platform_trace_raw": "0x00020af5",
- "platform_write_persistent_reg": "0x00020b0d",
- "printf_hexdump": "0x00020b1d",
- "reverse_128": "0x00020e91",
- "reverse_24": "0x00020e97",
- "reverse_48": "0x00020e9d",
- "reverse_56": "0x00020ea3",
- "reverse_64": "0x00020ea9",
- "reverse_bd_addr": "0x00020eaf",
- "reverse_bytes": "0x00020eb5",
- "sm_add_event_handler": "0x00021195",
- "sm_address_resolution_lookup": "0x000212ed",
- "sm_authenticated": "0x00021645",
- "sm_authorization_decline": "0x00021653",
- "sm_authorization_grant": "0x00021673",
- "sm_authorization_state": "0x00021693",
- "sm_bonding_decline": "0x000216ad",
- "sm_config": "0x00021acd",
- "sm_config_conn": "0x00021ae5",
- "sm_encryption_key_size": "0x00021c9b",
- "sm_just_works_confirm": "0x000221d5",
- "sm_le_device_key": "0x00022511",
- "sm_passkey_input": "0x000225a7",
- "sm_private_random_address_generation_get": "0x00022955",
- "sm_private_random_address_generation_get_mode": "0x0002295d",
- "sm_private_random_address_generation_set_mode": "0x00022969",
- "sm_private_random_address_generation_set_update_period": "0x00022991",
- "sm_register_oob_data_callback": "0x00022acd",
- "sm_request_pairing": "0x00022ad9",
- "sm_send_security_request": "0x000234f7",
- "sm_set_accepted_stk_generation_methods": "0x0002351d",
- "sm_set_authentication_requirements": "0x00023529",
- "sm_set_encryption_key_size_range": "0x00023535",
- "sscanf_bd_addr": "0x00023905",
- "sysSetPublicDeviceAddr": "0x00023c7d",
- "uuid128_to_str": "0x00024419",
- "uuid_add_bluetooth_prefix": "0x00024471",
- "uuid_has_bluetooth_prefix": "0x00024491"
+ "att_dispatch_client_can_send_now": "0x000057b1",
+ "att_dispatch_client_request_can_send_now_event": "0x000057b7",
+ "att_dispatch_register_client": "0x000057bd",
+ "att_dispatch_register_server": "0x000057d1",
+ "att_dispatch_server_can_send_now": "0x000057e5",
+ "att_dispatch_server_request_can_send_now_event": "0x000057eb",
+ "att_emit_general_event": "0x0000589d",
+ "att_server_can_send_packet_now": "0x00005fb1",
+ "att_server_deferred_read_response": "0x00005fb5",
+ "att_server_get_mtu": "0x00005fcd",
+ "att_server_indicate": "0x00006045",
+ "att_server_init": "0x000060c9",
+ "att_server_notify": "0x00006105",
+ "att_server_register_packet_handler": "0x0000621d",
+ "att_server_request_can_send_now_event": "0x00006229",
+ "att_set_db": "0x00006245",
+ "att_set_read_callback": "0x00006259",
+ "att_set_write_callback": "0x00006265",
+ "bd_addr_cmp": "0x000063d5",
+ "bd_addr_copy": "0x000063db",
+ "bd_addr_to_str": "0x000063e5",
+ "big_endian_read_16": "0x0000641d",
+ "big_endian_read_32": "0x00006425",
+ "big_endian_store_16": "0x00006439",
+ "big_endian_store_32": "0x00006445",
+ "btstack_config": "0x0000657d",
+ "btstack_memory_pool_create": "0x000066cb",
+ "btstack_memory_pool_free": "0x000066f5",
+ "btstack_memory_pool_get": "0x00006755",
+ "btstack_push_user_msg": "0x0000679d",
+ "btstack_push_user_runnable": "0x000067a9",
+ "char_for_nibble": "0x00006a19",
+ "gap_add_dev_to_periodic_list": "0x00007341",
+ "gap_add_whitelist": "0x00007359",
+ "gap_aes_encrypt": "0x0000736d",
+ "gap_clear_white_lists": "0x000073b1",
+ "gap_clr_adv_set": "0x000073c1",
+ "gap_clr_periodic_adv_list": "0x000073d1",
+ "gap_create_connection_cancel": "0x000073e1",
+ "gap_default_periodic_adv_sync_transfer_param": "0x000073f1",
+ "gap_disconnect": "0x00007409",
+ "gap_disconnect_all": "0x00007435",
+ "gap_ext_create_connection": "0x00007475",
+ "gap_get_connection_parameter_range": "0x00007585",
+ "gap_le_read_channel_map": "0x000075c1",
+ "gap_periodic_adv_create_sync": "0x00007635",
+ "gap_periodic_adv_create_sync_cancel": "0x00007659",
+ "gap_periodic_adv_set_info_transfer": "0x00007669",
+ "gap_periodic_adv_sync_transfer": "0x00007681",
+ "gap_periodic_adv_sync_transfer_param": "0x00007699",
+ "gap_periodic_adv_term_sync": "0x000076b5",
+ "gap_read_antenna_info": "0x00007749",
+ "gap_read_local_tx_power_level": "0x00007769",
+ "gap_read_periodic_adv_list_size": "0x0000777d",
+ "gap_read_phy": "0x0000778d",
+ "gap_read_remote_tx_power_level": "0x000077a1",
+ "gap_read_remote_used_features": "0x000077b5",
+ "gap_read_remote_version": "0x000077c9",
+ "gap_read_rssi": "0x000077dd",
+ "gap_remove_whitelist": "0x000077f1",
+ "gap_rmv_adv_set": "0x00007875",
+ "gap_rmv_dev_from_periodic_list": "0x00007889",
+ "gap_rx_test_v2": "0x000078a1",
+ "gap_rx_test_v3": "0x000078b9",
+ "gap_set_adv_set_random_addr": "0x00007909",
+ "gap_set_connection_cte_request_enable": "0x00007955",
+ "gap_set_connection_cte_response_enable": "0x00007971",
+ "gap_set_connection_cte_rx_param": "0x00007985",
+ "gap_set_connection_cte_tx_param": "0x000079e1",
+ "gap_set_connection_parameter_range": "0x00007a35",
+ "gap_set_connectionless_cte_tx_enable": "0x00007a4d",
+ "gap_set_connectionless_cte_tx_param": "0x00007a61",
+ "gap_set_connectionless_iq_sampling_enable": "0x00007ac1",
+ "gap_set_data_length": "0x00007b25",
+ "gap_set_def_phy": "0x00007b41",
+ "gap_set_default_subrate": "0x00007b59",
+ "gap_set_ext_adv_data": "0x00007b75",
+ "gap_set_ext_adv_enable": "0x00007b8d",
+ "gap_set_ext_adv_para": "0x00007c09",
+ "gap_set_ext_scan_enable": "0x00007ce9",
+ "gap_set_ext_scan_para": "0x00007d01",
+ "gap_set_ext_scan_response_data": "0x00007da9",
+ "gap_set_host_channel_classification": "0x00007dc1",
+ "gap_set_path_loss_reporting_enable": "0x00007dd5",
+ "gap_set_path_loss_reporting_param": "0x00007de9",
+ "gap_set_periodic_adv_data": "0x00007e09",
+ "gap_set_periodic_adv_enable": "0x00007e7d",
+ "gap_set_periodic_adv_para": "0x00007e91",
+ "gap_set_periodic_adv_rx_enable": "0x00007ea9",
+ "gap_set_phy": "0x00007ebd",
+ "gap_set_random_device_address": "0x00007ed9",
+ "gap_set_tx_power_reporting_enable": "0x00007ef9",
+ "gap_start_ccm": "0x00007f21",
+ "gap_subrate_request": "0x00007f55",
+ "gap_test_end": "0x00007f75",
+ "gap_tx_test_v2": "0x00007f85",
+ "gap_tx_test_v4": "0x00007f9d",
+ "gap_update_connection_parameters": "0x00007fc5",
+ "gap_vendor_tx_continuous_wave": "0x00008009",
+ "gatt_client_cancel_write": "0x00008531",
+ "gatt_client_discover_characteristic_descriptors": "0x00008557",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x00008597",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000085e7",
+ "gatt_client_discover_characteristics_for_service": "0x00008637",
+ "gatt_client_discover_primary_services": "0x0000866d",
+ "gatt_client_discover_primary_services_by_uuid128": "0x0000869f",
+ "gatt_client_discover_primary_services_by_uuid16": "0x000086e3",
+ "gatt_client_execute_write": "0x0000871f",
+ "gatt_client_find_included_services_for_service": "0x00008745",
+ "gatt_client_get_mtu": "0x00008773",
+ "gatt_client_is_ready": "0x00008815",
+ "gatt_client_listen_for_characteristic_value_updates": "0x0000882b",
+ "gatt_client_prepare_write": "0x0000884d",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008889",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000088b3",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000088b9",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000088e7",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x000088ed",
+ "gatt_client_read_multiple_characteristic_values": "0x0000891b",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x0000894b",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008979",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x000089c5",
+ "gatt_client_register_handler": "0x00008a11",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x00008a1d",
+ "gatt_client_signed_write_without_response": "0x00008e4d",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008f11",
+ "gatt_client_write_client_characteristic_configuration": "0x00008f4b",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008f9d",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008fad",
+ "gatt_client_write_long_value_of_characteristic": "0x00008fe9",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008ff9",
+ "gatt_client_write_value_of_characteristic": "0x00009035",
+ "gatt_client_write_value_of_characteristic_without_response": "0x0000906b",
+ "hci_add_event_handler": "0x0000a611",
+ "hci_power_control": "0x0000ae19",
+ "hci_register_acl_packet_handler": "0x0000afcd",
+ "kv_commit": "0x0000b565",
+ "kv_get": "0x0000b5bd",
+ "kv_init": "0x0000b5d5",
+ "kv_put": "0x0000b63d",
+ "kv_remove": "0x0000b6b5",
+ "kv_remove_all": "0x0000b6f1",
+ "kv_value_modified": "0x0000b735",
+ "kv_visit": "0x0000b739",
+ "l2cap_add_event_handler": "0x0000b7ed",
+ "l2cap_can_send_packet_now": "0x0000b7fd",
+ "l2cap_create_le_credit_based_connection_request": "0x0000b9b9",
+ "l2cap_credit_based_send": "0x0000bafd",
+ "l2cap_credit_based_send_continue": "0x0000bb29",
+ "l2cap_disconnect": "0x0000bba5",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000bdf5",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000be11",
+ "l2cap_init": "0x0000c1e5",
+ "l2cap_le_send_flow_control_credit": "0x0000c2db",
+ "l2cap_max_le_mtu": "0x0000c5e5",
+ "l2cap_register_packet_handler": "0x0000c70d",
+ "l2cap_register_service": "0x0000c719",
+ "l2cap_request_can_send_now_event": "0x0000c829",
+ "l2cap_request_connection_parameter_update": "0x0000c843",
+ "l2cap_send_echo_request": "0x0000cd15",
+ "l2cap_unregister_service": "0x0000cdd5",
+ "le_device_db_add": "0x0000ce2d",
+ "le_device_db_find": "0x0000cf01",
+ "le_device_db_from_key": "0x0000cf2d",
+ "le_device_db_iter_cur": "0x0000cf35",
+ "le_device_db_iter_cur_key": "0x0000cf39",
+ "le_device_db_iter_init": "0x0000cf3d",
+ "le_device_db_iter_next": "0x0000cf45",
+ "le_device_db_remove_key": "0x0000cf6b",
+ "ll_ackable_packet_alloc": "0x0000cf97",
+ "ll_ackable_packet_get_status": "0x0000d09f",
+ "ll_ackable_packet_run": "0x0000d111",
+ "ll_ackable_packet_set_tx_data": "0x0000d1b9",
+ "ll_adjust_conn_peer_tx_power": "0x0000d1d5",
+ "ll_dhkey_generated": "0x0000d41d",
+ "ll_free": "0x0000d44d",
+ "ll_hint_on_ce_len": "0x0000d459",
+ "ll_install_ecc_engine": "0x0000d491",
+ "ll_legacy_adv_set_interval": "0x0000d49d",
+ "ll_malloc": "0x0000d4ad",
+ "ll_p256_key_pair_generated": "0x0000d4b5",
+ "ll_raw_packet_alloc": "0x0000d665",
+ "ll_raw_packet_free": "0x0000d739",
+ "ll_raw_packet_get_bare_rx_data": "0x0000d763",
+ "ll_raw_packet_get_iq_samples": "0x0000d829",
+ "ll_raw_packet_get_rx_data": "0x0000d8c3",
+ "ll_raw_packet_recv": "0x0000d965",
+ "ll_raw_packet_send": "0x0000da21",
+ "ll_raw_packet_set_bare_data": "0x0000db09",
+ "ll_raw_packet_set_bare_mode": "0x0000db47",
+ "ll_raw_packet_set_fake_cte_info": "0x0000dc4d",
+ "ll_raw_packet_set_param": "0x0000dc6f",
+ "ll_raw_packet_set_rx_cte": "0x0000dccd",
+ "ll_raw_packet_set_tx_cte": "0x0000dd63",
+ "ll_raw_packet_set_tx_data": "0x0000dda1",
+ "ll_scan_set_fixed_channel": "0x0000de5d",
+ "ll_scanner_enable_iq_sampling": "0x0000de69",
+ "ll_set_adv_access_address": "0x0000e019",
+ "ll_set_adv_coded_scheme": "0x0000e025",
+ "ll_set_conn_coded_scheme": "0x0000e055",
+ "ll_set_conn_interval_unit": "0x0000e081",
+ "ll_set_conn_latency": "0x0000e08d",
+ "ll_set_conn_tx_power": "0x0000e0bd",
+ "ll_set_def_antenna": "0x0000e0f9",
+ "ll_set_initiating_coded_scheme": "0x0000e115",
+ "ll_set_max_conn_number": "0x0000e121",
+ "ll_set_tx_power_range": "0x0000e1bd",
+ "nibble_for_char": "0x000205f1",
+ "platform_32k_rc_auto_tune": "0x0002068d",
+ "platform_32k_rc_tune": "0x00020709",
+ "platform_calibrate_32k": "0x0002071d",
+ "platform_config": "0x00020721",
+ "platform_controller_run": "0x000207f9",
+ "platform_get_gen_os_driver": "0x00020831",
+ "platform_get_task_handle": "0x0002083d",
+ "platform_get_us_time": "0x00020855",
+ "platform_get_version": "0x00020859",
+ "platform_hrng": "0x00020861",
+ "platform_init_controller": "0x00020869",
+ "platform_os_idle_resumed_hook": "0x00020885",
+ "platform_patch_rf_init_data": "0x00020889",
+ "platform_post_sleep_processing": "0x00020895",
+ "platform_pre_sleep_processing": "0x0002089b",
+ "platform_pre_suppress_ticks_and_sleep_processing": "0x000208a1",
+ "platform_printf": "0x000208a5",
+ "platform_raise_assertion": "0x000208b9",
+ "platform_rand": "0x000208cd",
+ "platform_read_info": "0x000208d1",
+ "platform_read_persistent_reg": "0x00020901",
+ "platform_reset": "0x00020911",
+ "platform_set_evt_callback": "0x00020935",
+ "platform_set_irq_callback": "0x00020949",
+ "platform_set_rf_clk_source": "0x00020981",
+ "platform_set_rf_init_data": "0x0002098d",
+ "platform_set_rf_power_mapping": "0x00020999",
+ "platform_set_timer": "0x000209a5",
+ "platform_shutdown": "0x000209a9",
+ "platform_switch_app": "0x000209ad",
+ "platform_trace_raw": "0x000209d9",
+ "platform_write_persistent_reg": "0x000209f1",
+ "printf_hexdump": "0x00020a01",
+ "reverse_128": "0x00020d75",
+ "reverse_24": "0x00020d7b",
+ "reverse_48": "0x00020d81",
+ "reverse_56": "0x00020d87",
+ "reverse_64": "0x00020d8d",
+ "reverse_bd_addr": "0x00020d93",
+ "reverse_bytes": "0x00020d99",
+ "sm_add_event_handler": "0x00021079",
+ "sm_address_resolution_lookup": "0x000211d1",
+ "sm_authenticated": "0x00021529",
+ "sm_authorization_decline": "0x00021537",
+ "sm_authorization_grant": "0x00021557",
+ "sm_authorization_state": "0x00021577",
+ "sm_bonding_decline": "0x00021591",
+ "sm_config": "0x000219b1",
+ "sm_config_conn": "0x000219c9",
+ "sm_encryption_key_size": "0x00021b7f",
+ "sm_just_works_confirm": "0x000220b9",
+ "sm_le_device_key": "0x000223f5",
+ "sm_passkey_input": "0x0002248b",
+ "sm_private_random_address_generation_get": "0x00022839",
+ "sm_private_random_address_generation_get_mode": "0x00022841",
+ "sm_private_random_address_generation_set_mode": "0x0002284d",
+ "sm_private_random_address_generation_set_update_period": "0x00022875",
+ "sm_register_oob_data_callback": "0x000229b1",
+ "sm_request_pairing": "0x000229bd",
+ "sm_send_security_request": "0x000233db",
+ "sm_set_accepted_stk_generation_methods": "0x00023401",
+ "sm_set_authentication_requirements": "0x0002340d",
+ "sm_set_encryption_key_size_range": "0x00023419",
+ "sscanf_bd_addr": "0x000237e9",
+ "sysSetPublicDeviceAddr": "0x00023b61",
+ "uuid128_to_str": "0x000242fd",
+ "uuid_add_bluetooth_prefix": "0x00024355",
+ "uuid_has_bluetooth_prefix": "0x00024375"
}
\ No newline at end of file
diff --git a/bundles/noos_exp/ING9188xx/meta.json b/bundles/noos_exp/ING9188xx/meta.json
index 0d8410d8a..d12dfef47 100644
--- a/bundles/noos_exp/ING9188xx/meta.json
+++ b/bundles/noos_exp/ING9188xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 5620
+ "size": 4612
},
"rom": {
"base": 16384,
- "size": 139740
+ "size": 139448
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/noos_exp/ING9188xx/platform.bin b/bundles/noos_exp/ING9188xx/platform.bin
index aa6ee6e72..0e7f8dc20 100644
Binary files a/bundles/noos_exp/ING9188xx/platform.bin and b/bundles/noos_exp/ING9188xx/platform.bin differ
diff --git a/bundles/noos_exp/inc/att_db.h b/bundles/noos_exp/inc/att_db.h
index 70ec3efa3..3e656c769 100644
--- a/bundles/noos_exp/inc/att_db.h
+++ b/bundles/noos_exp/inc/att_db.h
@@ -3,7 +3,7 @@
* @brief API for ATT server
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -28,10 +28,10 @@ extern "C" {
* @ingroup bluetooth_host
* @{
*/
-// custom BTstack error codes
+// custom btstack error codes
#define ATT_ERROR_HCI_DISCONNECT_RECEIVED 0x1f
-// custom BTstack ATT error coders
+// custom btstack ATT error coders
#define ATT_ERROR_DATA_MISMATCH 0x7e
#define ATT_ERROR_TIMEOUT 0x7F
diff --git a/bundles/noos_exp/inc/att_dispatch.h b/bundles/noos_exp/inc/att_dispatch.h
index 60f62817b..9dd2608d1 100644
--- a/bundles/noos_exp/inc/att_dispatch.h
+++ b/bundles/noos_exp/inc/att_dispatch.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_exp/inc/btstack_defines.h b/bundles/noos_exp/inc/btstack_defines.h
index c2ab8d11a..a8d08006c 100644
--- a/bundles/noos_exp/inc/btstack_defines.h
+++ b/bundles/noos_exp/inc/btstack_defines.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -53,10 +53,15 @@
#define L2CAP_SERVICE_ALREADY_REGISTERED 0x69
#define L2CAP_DATA_LEN_EXCEEDS_REMOTE_MTU 0x6A
+#define L2CAP_SERVICE_NOT_REGISTERED 0x6B
+#define L2CAP_CONNECTION_INSUFFICIENT_SECURITY 0x6C
-#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS 0x90
+#define ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS 0x90
#define ATT_HANDLE_VALUE_INDICATION_TIMEOUT 0x91
+// compatibility for typo
+#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS
+
#define GATT_CLIENT_NOT_CONNECTED 0x93
#define GATT_CLIENT_BUSY 0x94
#define GATT_CLIENT_IN_WRONG_STATE 0x95
@@ -88,22 +93,14 @@
// L2CAP EVENTS
/**
- * @format 1BH222222
- * @param status
- * @param address
- * @param handle
- * @param psm
- * @param local_cid
- * @param remote_cid
- * @param local_mtu
- * @param remote_mtu
- * @param flush_timeout
+ * @brief an L2CAP channel is opened
+ * @ref `l2cap_event_channel_opened_t`
*/
#define L2CAP_EVENT_CHANNEL_OPENED 0x70
/*
- * @format 2
- * @param local_cid
+ * @brief an L2CAP channel is closed
+ * @ref `l2cap_event_channel_closed_t`
*/
#define L2CAP_EVENT_CHANNEL_CLOSED 0x71
@@ -153,6 +150,24 @@
*/
#define L2CAP_EVENT_COMMAND_REJECT_RESPONSE 0x79
+/**
+ * @brief LE credit channel : an SDU (complete package) event
+ *
+ * Use `decode_l2cap_event(l2cap_event_complete_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_complete_sdu_t`
+*/
+#define L2CAP_EVENT_COMPLETED_SDU_PACKET 0x7A
+
+/**
+ * @brief LE credit channel : a fragment (K-frame) of an SDU event
+ *
+ * Use `decode_l2cap_event(l2cap_event_fragment_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_fragment_sdu_t`
+*/
+#define L2CAP_EVENT_FRAGMENT_SDU_PACKET 0x7B
+
/**
* @format H1
* @param handle
diff --git a/bundles/noos_exp/inc/btstack_event.h b/bundles/noos_exp/inc/btstack_event.h
index 4c488f787..294fb813b 100644
--- a/bundles/noos_exp/inc/btstack_event.h
+++ b/bundles/noos_exp/inc/btstack_event.h
@@ -4,7 +4,7 @@
*
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -783,6 +783,43 @@ static __INLINE uint8_t gap_event_dedicated_bonding_completed_get_status(const u
return *decode_event_offset(event, uint8_t, 2);
}
+typedef struct l2cap_event_complete_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ const uint8_t *payload; // payload of this SDU
+} l2cap_event_complete_sdu_t;
+
+typedef struct l2cap_event_channel_opened
+{
+ uint8_t status;
+ bd_addr_t peer_addr;
+ hci_con_handle_t conn_handle;
+ uint16_t psm;
+ uint16_t local_cid;
+ uint16_t peer_cid;
+ uint16_t local_mtu;
+ uint16_t peer_mtu;
+ uint16_t local_mps;
+ uint16_t peer_mps;
+ uint16_t flush_timeout;
+ uint16_t local_credits;
+ uint16_t peer_credits;
+} l2cap_event_channel_opened_t;
+
+typedef struct l2cap_event_channel_closed
+{
+ uint16_t local_cid;
+ uint8_t reason;
+} l2cap_event_channel_closed_t;
+
+typedef struct l2cap_event_fragment_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ uint16_t offset; // offset of this fragment within a SDU
+ uint16_t length; // length of this fragment within a SDU
+ const uint8_t *payload; // payload of this fragment
+} l2cap_event_fragment_sdu_t;
+
typedef struct event_command_complete_return_param_read_rssi
{
uint8_t status;
@@ -1226,7 +1263,9 @@ typedef enum btstack_l2cap_msg_def
#define decode_hci_event_disconn_complete(packet) decode_event_offset(packet, event_disconn_complete_t, 2)
#define decode_hci_event_vendor_ccm_complete(packet) decode_event_offset(packet, event_vendor_ccm_complete_t, 5)
-#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+
+#define decode_l2cap_event(packet, T) decode_event_offset(packet, T, 2)
/* API_END */
diff --git a/bundles/noos_exp/inc/btstack_util.h b/bundles/noos_exp/inc/btstack_util.h
index 3f7232fc4..5e6d0d7ef 100644
--- a/bundles/noos_exp/inc/btstack_util.h
+++ b/bundles/noos_exp/inc/btstack_util.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_exp/inc/gap.h b/bundles/noos_exp/inc/gap.h
index 4e6602e81..ee2894c56 100644
--- a/bundles/noos_exp/inc/gap.h
+++ b/bundles/noos_exp/inc/gap.h
@@ -1366,7 +1366,7 @@ void hci_add_event_handler(btstack_packet_callback_registration_t * callback_han
void hci_register_acl_packet_handler(btstack_packet_handler_t handler);
/**
- * @brief Requests the change of BTstack power mode.
+ * @brief Requests the change of btstack power mode.
*
* @param mode 0:HCI_POWER_OFF ,1:HCI_POWER_ON , 2:HCI_POWER_SLEEP
*
diff --git a/bundles/noos_exp/inc/gatt_client.h b/bundles/noos_exp/inc/gatt_client.h
index 910cdf251..9a036f6f6 100644
--- a/bundles/noos_exp/inc/gatt_client.h
+++ b/bundles/noos_exp/inc/gatt_client.h
@@ -3,7 +3,7 @@
* Copyright Message
*
* INGCHIPS confidential and proprietary.
- * COPYRIGHT (c) 2018 by INGCHIPS
+ * COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_exp/inc/l2cap.h b/bundles/noos_exp/inc/l2cap.h
index f464836dc..52b0efb79 100644
--- a/bundles/noos_exp/inc/l2cap.h
+++ b/bundles/noos_exp/inc/l2cap.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -22,27 +22,6 @@
extern "C" {
#endif
-void l2cap_register_fixed_channel(btstack_packet_handler_t packet_handler, uint16_t channel_id);
-int l2cap_can_send_fixed_channel_packet_now(hci_con_handle_t con_handle, uint16_t channel_id);
-void l2cap_request_can_send_fix_channel_now_event(hci_con_handle_t con_handle, uint16_t channel_id);
-int l2cap_send_connectionless(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len);
-int l2cap_send_connectionless3(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len,
- const uint8_t *data3, uint16_t data3_len);
-
-int l2cap_le_send_flow_control_credit(hci_con_handle_t con_handle,uint8_t id ,uint16_t cid,uint16_t credits);
-
-// PTS Testing
-int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t len);
-
-// Used by RFCOMM - similar to l2cap_can-send_packet_now but does not check if outgoing buffer is reserved
-// int l2cap_can_send_prepared_packet_now(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
-
-
/* API_START */
/**
@@ -51,69 +30,152 @@ int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t
void l2cap_init(void);
/**
- * @brief Registers packet handler for LE Connection Parameter Update events
+ * @brief add event handler with packet type `L2CAP_EVENT_PACKET`
+ *
+ * Note: Event code includes:
+ * * L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE
+ *
+ * @param[in] callback_handler the handler to be chained together
*/
-void l2cap_register_packet_handler(btstack_packet_handler_t handler);
+void l2cap_add_event_handler(btstack_packet_callback_registration_t *callback_handler);
/**
- * @brief Get max MTU for Classic connections based on btstack configuration
+ * @brief Registers packet handler for LE Connection Parameter Update related events
+ *
+ * Note: Packet type `HCI_EVENT_PACKET`. Event code includes:
+ * * L2CAP_EVENT_COMMAND_REJECT_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST
+ *
+ * @param[in] handler the callback function
*/
-uint16_t l2cap_max_mtu(void);
+void l2cap_register_packet_handler(btstack_packet_handler_t handler);
/**
* @brief Get max MTU for LE connections based on btstack configuration
+ *
+ * @return max LE MTU
*/
uint16_t l2cap_max_le_mtu(void);
-/**
- * @brief Creates L2CAP channel to the PSM of a remote device with baseband address. A new baseband connection will be initiated if necessary.
- * @param packet_handler
- * @param address
- * @param psm
- * @param mtu
- * @param local_cid
- * @param status
- */
-uint8_t l2cap_create_channel(btstack_packet_handler_t packet_handler, bd_addr_t address, uint16_t psm, uint16_t mtu, uint16_t * out_local_cid);
+#define l2cap_max_mtu l2cap_max_le_mtu
/**
* @brief Disconnects L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] reason reason (ignored)
*/
void l2cap_disconnect(uint16_t local_cid, uint8_t reason);
/**
* @brief Queries the maximal transfer unit (MTU) for L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @return peer MTU
*/
-uint16_t l2cap_get_remote_mtu_for_local_cid(uint16_t local_cid);
+uint16_t l2cap_get_peer_mtu_for_local_cid(uint16_t local_cid);
/**
- * @brief Sends L2CAP data packet to the channel with given identifier.
+ * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ *
+ * Note: Before creating a connection with a SPSM, the service must be registered.
+ *
+ * @param[in] packet_handler packet handler
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] mtu MTU (23..max, max = l2cap_max_le_mtu())
+ * when mtu = 0, max LE MTU is used
+ * @param[in] security_level security level
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_ALREADY_REGISTERED
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-int l2cap_send(uint16_t local_cid, uint8_t *data, uint16_t len);
+uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu,
+ gap_security_level_t security_level);
/**
- * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ * @brief Unregisters L2CAP service with given PSM.
+ *
+ * @param[in] psm SPSM (LE_PSM)
*/
-uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu, gap_security_level_t security_level);
+void l2cap_unregister_service(uint16_t psm);
/**
- * @brief Unregisters L2CAP service with given PSM. On embedded systems, use NULL for connection parameter.
+ * @brief Create a credit based connection for SPSM
+ *
+ *
+ * @param[in] credits initial credits assigned to peer
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] handle connection handle
+ * @param[out] local_cid identifier of the newly create channel
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_NOT_REGISTERED
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ * * L2CAP_CONNECTION_INSUFFICIENT_SECURITY
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-void l2cap_unregister_service(uint16_t psm);
+uint8_t l2cap_create_le_credit_based_connection_request(uint16_t credits, uint16_t psm, uint16_t handle, uint16_t *local_cid);
/**
- * @brief Accepts incoming L2CAP connection.
+ * @brief Get credits information of a credit based connection
+ *
+ * `local_credits`: how many K-frames the peer is capable to receive,
+ * i.e. how many K-frames we (the _local_) can transmit;
+ *
+ * `peer_credits`: `local_credits` in the peer.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] peer_credits peer credits at present
+ * @param[in] local_credits local credits at present
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_accept_connection(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
+uint8_t l2cap_get_le_credit_based_connection_credits(uint16_t local_cid,
+ uint32_t *peer_credits, uint32_t *local_credits);
+/**
+ * @brief send an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data data of the SDU
+ * @param[in] len total length of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * (see `l2cap_credit_based_send_continue`)
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+int l2cap_credit_based_send(uint16_t local_cid, const uint8_t *data, uint16_t len);
/**
- * @brief Deny incoming L2CAP connection.
+ * @brief continue sending an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data remaining data of the SDU that has not been sent
+ * @param[in] len length of remaining data of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_decline_connection(uint16_t local_cid, uint8_t reason);
-// WARNING: ^^^ this API is not available in this release
+int l2cap_credit_based_send_continue(uint16_t local_cid, const uint8_t *data, uint16_t len);
+/**
+ * @brief add more credits to the peer of the specified channel, or rather notify
+ * the peer that _local_ are capable of receiving more K-frames.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] credits credits to be added to the peer
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+uint8_t l2cap_le_send_flow_control_credit(uint16_t local_cid, uint16_t credits);
/**
* @brief Check if outgoing buffer is available and that there's space on the Bluetooth module
@@ -124,42 +186,45 @@ int l2cap_can_send_packet_now(uint16_t local_cid);
* @brief Request emission of L2CAP_EVENT_CAN_SEND_NOW as soon as possible
* @note L2CAP_EVENT_CAN_SEND_NOW might be emitted during call to this function
* so packet handler should be ready to handle it
- * @param local_cid
+ * @param[in] local_cid local channel identifier
*/
void l2cap_request_can_send_now_event(uint16_t local_cid);
/**
* @brief Request an update of the connection parameter for a given LE connection
- * @param handle
- * @param conn_interval_min (unit: 1.25ms)
- * @param conn_interval_max (unit: 1.25ms)
- * @param conn_latency
- * @param supervision_timeout (unit: 10ms)
- * @returns 0 if ok
- */
-int l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
+ *
+ * Note: only Peripheral role can call this API.
+ *
+ * @param[in] handle connection handle
+ * @param[in] conn_interval_min (unit: 1.25ms)
+ * @param[in] conn_interval_max (unit: 1.25ms)
+ * @param[in] conn_latency slave latency
+ * @param[in] supervision_timeout (unit: 10ms)
+ * @returns 0 if successful else error occurs:
+ * * ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER
+ */
+uint8_t l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
uint16_t conn_interval_max, uint16_t conn_latency, uint16_t supervision_timeout);
-#ifdef CONNECTION_PARAMETER_DYNAMICALLY_ADJUST
-uint8_t l2cap_update_MTU_on_LL_link(l2cap_channel_t * channel);
-#endif
+/** @brief for PTS Testing
+ */
+uint8_t l2cap_send_echo_request(hci_con_handle_t con_handle, const uint8_t *data, uint16_t len);
/* API_END */
#ifdef __cplusplus
}
#endif
-/*to define the error result of the connection response*/
-#ifdef L2CAP_CREDIT_BASED_FLOW_CONTROL_MODE
-#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
-#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
-#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
-#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
-#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
-#endif
+
+/* Error result of the connection response */
+#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
+#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
+#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
+#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
+#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
#endif // __L2CAP_H
diff --git a/bundles/noos_exp/inc/le_device_db.h b/bundles/noos_exp/inc/le_device_db.h
index 03f8e550f..b81d04f5a 100644
--- a/bundles/noos_exp/inc/le_device_db.h
+++ b/bundles/noos_exp/inc/le_device_db.h
@@ -41,15 +41,9 @@ typedef struct le_device_memory_db {
#pragma pack (pop)
-typedef struct white_list
-{
- uint8_t addr_type;
- bd_addr_t addr;
-}white_list_t;
-
/**
- LE Device DB for pure LE Peripherals is only required for signed writes
+ LE Device DB is only required for signed writes
Per bonded device, it can store
- it stores the Identity Resolving Key (IRK) and its address to resolve private addresses
@@ -60,7 +54,6 @@ typedef struct white_list
*/
-
// LE Device db interface
/* API_START */
diff --git a/bundles/noos_exp/inc/ll_api.h b/bundles/noos_exp/inc/ll_api.h
index 551a93b84..5748f4785 100644
--- a/bundles/noos_exp/inc/ll_api.h
+++ b/bundles/noos_exp/inc/ll_api.h
@@ -245,14 +245,15 @@ int ll_raw_packet_set_param(struct ll_raw_packet *packet,
*
* @param[in] packet the packet object
* @param[in] header header sending before packet length
- * @param[in] freq_mhz freqency in MHz
+ * @param[in] freq_mhz frequency in MHz
* When 0: use the channel specified in `ll_raw_packet_set_param`)
* @return 0 if successful else error code
*
*
* Note: Only a subset of uint8_t are supported in `header`;
* When bare mode is used, CRC & whitening are all handled by apps;
- * When bare mode is used, `crc_init` is ignored.
+ * When bare mode is used, `crc_init` is ignored;
+ * When `freq_mhz` is not zero, BLE activities near this raw packets might be affected.
****************************************************************************************
*/
int ll_raw_packet_set_bare_mode(struct ll_raw_packet *packet,
diff --git a/bundles/noos_exp/inc/sm.h b/bundles/noos_exp/inc/sm.h
index 0213e5e3f..874e028a5 100644
--- a/bundles/noos_exp/inc/sm.h
+++ b/bundles/noos_exp/inc/sm.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_extension/ING9168xx/apis.json b/bundles/noos_extension/ING9168xx/apis.json
index aadb0a7d1..2cb03b4e3 100644
--- a/bundles/noos_extension/ING9168xx/apis.json
+++ b/bundles/noos_extension/ING9168xx/apis.json
@@ -1,271 +1,268 @@
{
- "att_dispatch_client_can_send_now": "0x02004541",
- "att_dispatch_client_request_can_send_now_event": "0x02004547",
- "att_dispatch_register_client": "0x0200454d",
- "att_dispatch_register_server": "0x02004561",
- "att_dispatch_server_can_send_now": "0x02004575",
- "att_dispatch_server_request_can_send_now_event": "0x0200457b",
- "att_emit_general_event": "0x0200462d",
- "att_server_can_send_packet_now": "0x02004d49",
- "att_server_deferred_read_response": "0x02004d4d",
- "att_server_get_mtu": "0x02004d65",
- "att_server_indicate": "0x02004ddd",
- "att_server_init": "0x02004e61",
- "att_server_notify": "0x02004e9d",
- "att_server_register_packet_handler": "0x02004fb5",
- "att_server_request_can_send_now_event": "0x02004fc1",
- "att_set_db": "0x02004fdd",
- "att_set_read_callback": "0x02004ff1",
- "att_set_write_callback": "0x02004ffd",
- "bd_addr_cmp": "0x020051e5",
- "bd_addr_copy": "0x020051eb",
- "bd_addr_to_str": "0x020051f5",
- "big_endian_read_16": "0x0200522d",
- "big_endian_read_32": "0x02005235",
- "big_endian_store_16": "0x02005249",
- "big_endian_store_32": "0x02005255",
- "btstack_config": "0x020053b5",
- "btstack_memory_pool_create": "0x02005503",
- "btstack_memory_pool_free": "0x0200552d",
- "btstack_memory_pool_get": "0x0200558d",
- "btstack_push_user_msg": "0x020055d5",
- "btstack_push_user_runnable": "0x020055e1",
- "char_for_nibble": "0x02005867",
- "gap_add_dev_to_periodic_list": "0x020061e5",
- "gap_add_whitelist": "0x020061fd",
- "gap_aes_encrypt": "0x02006211",
- "gap_clear_white_lists": "0x02006255",
- "gap_clr_adv_set": "0x02006265",
- "gap_clr_periodic_adv_list": "0x02006275",
- "gap_create_connection_cancel": "0x02006285",
- "gap_default_periodic_adv_sync_transfer_param": "0x02006295",
- "gap_disconnect": "0x020062ad",
- "gap_disconnect_all": "0x020062d9",
- "gap_ext_create_connection": "0x02006319",
- "gap_get_connection_parameter_range": "0x02006409",
- "gap_le_read_channel_map": "0x02006445",
- "gap_periodic_adv_create_sync": "0x020064b9",
- "gap_periodic_adv_create_sync_cancel": "0x020064dd",
- "gap_periodic_adv_set_info_transfer": "0x020064ed",
- "gap_periodic_adv_sync_transfer": "0x02006505",
- "gap_periodic_adv_sync_transfer_param": "0x0200651d",
- "gap_periodic_adv_term_sync": "0x02006539",
- "gap_read_antenna_info": "0x020065cd",
- "gap_read_periodic_adv_list_size": "0x020065dd",
- "gap_read_phy": "0x020065ed",
- "gap_read_remote_used_features": "0x02006601",
- "gap_read_remote_version": "0x02006615",
- "gap_read_rssi": "0x02006629",
- "gap_remove_whitelist": "0x0200663d",
- "gap_rmv_adv_set": "0x020066c1",
- "gap_rmv_dev_from_periodic_list": "0x020066d5",
- "gap_rx_test_v2": "0x020066ed",
- "gap_rx_test_v3": "0x02006705",
- "gap_set_adv_set_random_addr": "0x02006755",
- "gap_set_connection_cte_request_enable": "0x020067a1",
- "gap_set_connection_cte_response_enable": "0x020067bd",
- "gap_set_connection_cte_rx_param": "0x020067d1",
- "gap_set_connection_cte_tx_param": "0x0200682d",
- "gap_set_connection_parameter_range": "0x02006881",
- "gap_set_connectionless_cte_tx_enable": "0x02006899",
- "gap_set_connectionless_cte_tx_param": "0x020068ad",
- "gap_set_connectionless_iq_sampling_enable": "0x0200690d",
- "gap_set_data_length": "0x02006971",
- "gap_set_def_phy": "0x0200698d",
- "gap_set_ext_adv_data": "0x020069a5",
- "gap_set_ext_adv_enable": "0x020069bd",
- "gap_set_ext_adv_para": "0x02006a39",
- "gap_set_ext_scan_enable": "0x02006b11",
- "gap_set_ext_scan_para": "0x02006b29",
- "gap_set_ext_scan_response_data": "0x02006bd1",
- "gap_set_host_channel_classification": "0x02006be9",
- "gap_set_periodic_adv_data": "0x02006bfd",
- "gap_set_periodic_adv_enable": "0x02006c71",
- "gap_set_periodic_adv_para": "0x02006c85",
- "gap_set_periodic_adv_rx_enable": "0x02006c9d",
- "gap_set_phy": "0x02006cb1",
- "gap_set_random_device_address": "0x02006ccd",
- "gap_start_ccm": "0x02006cfd",
- "gap_test_end": "0x02006d31",
- "gap_tx_test_v2": "0x02006d41",
- "gap_tx_test_v4": "0x02006d59",
- "gap_update_connection_parameters": "0x02006d81",
- "gap_vendor_tx_continuous_wave": "0x02006dc5",
- "gatt_client_cancel_write": "0x020072ed",
- "gatt_client_discover_characteristic_descriptors": "0x02007313",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x02007353",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x020073a3",
- "gatt_client_discover_characteristics_for_service": "0x020073f3",
- "gatt_client_discover_primary_services": "0x02007429",
- "gatt_client_discover_primary_services_by_uuid128": "0x0200745b",
- "gatt_client_discover_primary_services_by_uuid16": "0x0200749f",
- "gatt_client_execute_write": "0x020074dd",
- "gatt_client_find_included_services_for_service": "0x02007503",
- "gatt_client_get_mtu": "0x02007531",
- "gatt_client_is_ready": "0x020075f5",
- "gatt_client_listen_for_characteristic_value_updates": "0x0200760b",
- "gatt_client_prepare_write": "0x0200762d",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007669",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x02007693",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007699",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x020076c7",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020076cd",
- "gatt_client_read_multiple_characteristic_values": "0x020076fb",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x0200772b",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007759",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x020077a5",
- "gatt_client_register_handler": "0x020077f1",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x020077fd",
- "gatt_client_signed_write_without_response": "0x02007c31",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007cf5",
- "gatt_client_write_client_characteristic_configuration": "0x02007d2f",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007d81",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007d91",
- "gatt_client_write_long_value_of_characteristic": "0x02007dcd",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007ddd",
- "gatt_client_write_value_of_characteristic": "0x02007e19",
- "gatt_client_write_value_of_characteristic_without_response": "0x02007e4f",
- "hci_add_event_handler": "0x02009445",
- "hci_power_control": "0x02009c45",
- "hci_register_acl_packet_handler": "0x02009df9",
- "kv_commit": "0x0200a34d",
- "kv_get": "0x0200a3a5",
- "kv_init": "0x0200a3bd",
- "kv_put": "0x0200a425",
- "kv_remove": "0x0200a49d",
- "kv_remove_all": "0x0200a4d9",
- "kv_value_modified": "0x0200a51d",
- "kv_visit": "0x0200a521",
- "l2cap_can_send_fixed_channel_packet_now": "0x0200a5e1",
- "l2cap_can_send_packet_now": "0x0200a5e5",
- "l2cap_create_channel": "0x0200a79d",
- "l2cap_disconnect": "0x0200a8d9",
- "l2cap_get_remote_mtu_for_local_cid": "0x0200aa9d",
- "l2cap_init": "0x0200af01",
- "l2cap_le_send_flow_control_credit": "0x0200af41",
- "l2cap_max_le_mtu": "0x0200b201",
- "l2cap_max_mtu": "0x0200b205",
- "l2cap_register_fixed_channel": "0x0200b311",
- "l2cap_register_packet_handler": "0x0200b32d",
- "l2cap_register_service": "0x0200b339",
- "l2cap_request_can_send_fix_channel_now_event": "0x0200b41d",
- "l2cap_request_can_send_now_event": "0x0200b441",
- "l2cap_request_connection_parameter_update": "0x0200b45b",
- "l2cap_send": "0x0200b809",
- "l2cap_send_connectionless": "0x0200b881",
- "l2cap_send_connectionless3": "0x0200b911",
- "l2cap_send_echo_request": "0x0200b9a9",
- "l2cap_unregister_service": "0x0200ba85",
- "le_device_db_add": "0x0200badd",
- "le_device_db_find": "0x0200bbb1",
- "le_device_db_from_key": "0x0200bbdd",
- "le_device_db_iter_cur": "0x0200bbe5",
- "le_device_db_iter_cur_key": "0x0200bbe9",
- "le_device_db_iter_init": "0x0200bbed",
- "le_device_db_iter_next": "0x0200bbf5",
- "le_device_db_remove_key": "0x0200bc1b",
- "ll_ackable_packet_alloc": "0x0200bc47",
- "ll_ackable_packet_get_status": "0x0200bd53",
- "ll_ackable_packet_run": "0x0200bdc1",
- "ll_ackable_packet_set_tx_data": "0x0200be85",
- "ll_adjust_conn_peer_tx_power": "0x0200bea1",
- "ll_attach_cte_to_adv_set": "0x0200becd",
- "ll_free": "0x0200c065",
- "ll_hint_on_ce_len": "0x0200c071",
- "ll_legacy_adv_set_interval": "0x0200c0a9",
- "ll_malloc": "0x0200c0b9",
- "ll_raw_packet_alloc": "0x0200c1d1",
- "ll_raw_packet_free": "0x0200c2a5",
- "ll_raw_packet_get_bare_rx_data": "0x0200c2cf",
- "ll_raw_packet_get_iq_samples": "0x0200c38f",
- "ll_raw_packet_get_rx_data": "0x0200c429",
- "ll_raw_packet_recv": "0x0200c4bd",
- "ll_raw_packet_send": "0x0200c591",
- "ll_raw_packet_set_bare_data": "0x0200c6ad",
- "ll_raw_packet_set_bare_mode": "0x0200c6eb",
- "ll_raw_packet_set_param": "0x0200c7ef",
- "ll_raw_packet_set_rx_cte": "0x0200c851",
- "ll_raw_packet_set_tx_cte": "0x0200c8e7",
- "ll_raw_packet_set_tx_data": "0x0200c925",
- "ll_scan_set_fixed_channel": "0x0200c9dd",
- "ll_scanner_enable_iq_sampling": "0x0200c9e9",
- "ll_set_adv_access_address": "0x0200cb99",
- "ll_set_adv_coded_scheme": "0x0200cba5",
- "ll_set_conn_coded_scheme": "0x0200cbdd",
- "ll_set_conn_interval_unit": "0x0200cc09",
- "ll_set_conn_latency": "0x0200cc15",
- "ll_set_conn_tx_power": "0x0200cc45",
- "ll_set_def_antenna": "0x0200cc81",
- "ll_set_initiating_coded_scheme": "0x0200cca1",
- "ll_set_max_conn_number": "0x0200ccad",
- "ll_set_tx_power_range": "0x0200cd49",
- "nibble_for_char": "0x0201f6b9",
- "platform_32k_rc_auto_tune": "0x0201f751",
- "platform_32k_rc_tune": "0x0201f79d",
- "platform_calibrate_32k": "0x0201f7b9",
- "platform_config": "0x0201f7bd",
- "platform_controller_run": "0x0201f889",
- "platform_get_gen_os_driver": "0x0201f8c1",
- "platform_get_task_handle": "0x0201f8cd",
- "platform_get_us_time": "0x0201f8e5",
- "platform_get_version": "0x0201f8e9",
- "platform_hrng": "0x0201f8f1",
- "platform_init_controller": "0x0201f8f9",
- "platform_os_idle_resumed_hook": "0x0201f915",
- "platform_patch_rf_init_data": "0x0201f919",
- "platform_post_sleep_processing": "0x0201f925",
- "platform_pre_sleep_processing": "0x0201f92b",
- "platform_pre_suppress_ticks_and_sleep_processing": "0x0201f931",
- "platform_printf": "0x0201f935",
- "platform_raise_assertion": "0x0201f949",
- "platform_rand": "0x0201f95d",
- "platform_read_info": "0x0201f961",
- "platform_read_persistent_reg": "0x0201f991",
- "platform_reset": "0x0201f99d",
- "platform_set_evt_callback": "0x0201f9a5",
- "platform_set_irq_callback": "0x0201f9b9",
- "platform_set_rf_clk_source": "0x0201f9f1",
- "platform_set_rf_init_data": "0x0201f9fd",
- "platform_set_rf_power_mapping": "0x0201fa09",
- "platform_set_timer": "0x0201fa15",
- "platform_shutdown": "0x0201fa19",
- "platform_switch_app": "0x0201fa1d",
- "platform_trace_raw": "0x0201fa39",
- "platform_write_persistent_reg": "0x0201fa51",
- "printf_hexdump": "0x0201fa65",
- "reverse_128": "0x0201fdd9",
- "reverse_24": "0x0201fddf",
- "reverse_48": "0x0201fde5",
- "reverse_56": "0x0201fdeb",
- "reverse_64": "0x0201fdf1",
- "reverse_bd_addr": "0x0201fdf7",
- "reverse_bytes": "0x0201fdfd",
- "sm_add_event_handler": "0x02020139",
- "sm_address_resolution_lookup": "0x02020291",
- "sm_authenticated": "0x020205e9",
- "sm_authorization_decline": "0x020205f7",
- "sm_authorization_grant": "0x02020617",
- "sm_authorization_state": "0x02020637",
- "sm_bonding_decline": "0x02020651",
- "sm_config": "0x02020a69",
- "sm_config_conn": "0x02020a81",
- "sm_encryption_key_size": "0x02020c37",
- "sm_just_works_confirm": "0x02021171",
- "sm_le_device_key": "0x020214ad",
- "sm_passkey_input": "0x02021543",
- "sm_private_random_address_generation_get": "0x020218f1",
- "sm_private_random_address_generation_get_mode": "0x020218f9",
- "sm_private_random_address_generation_set_mode": "0x02021905",
- "sm_private_random_address_generation_set_update_period": "0x0202192d",
- "sm_register_oob_data_callback": "0x02021a69",
- "sm_request_pairing": "0x02021a75",
- "sm_send_security_request": "0x0202249b",
- "sm_set_accepted_stk_generation_methods": "0x020224c1",
- "sm_set_authentication_requirements": "0x020224cd",
- "sm_set_encryption_key_size_range": "0x020224d9",
- "sscanf_bd_addr": "0x020228b1",
- "sysSetPublicDeviceAddr": "0x02022c79",
- "uuid128_to_str": "0x020233c5",
- "uuid_add_bluetooth_prefix": "0x0202341d",
- "uuid_has_bluetooth_prefix": "0x0202343d"
+ "att_dispatch_client_can_send_now": "0x02004285",
+ "att_dispatch_client_request_can_send_now_event": "0x0200428b",
+ "att_dispatch_register_client": "0x02004291",
+ "att_dispatch_register_server": "0x020042a5",
+ "att_dispatch_server_can_send_now": "0x020042b9",
+ "att_dispatch_server_request_can_send_now_event": "0x020042bf",
+ "att_emit_general_event": "0x02004371",
+ "att_server_can_send_packet_now": "0x02004a8d",
+ "att_server_deferred_read_response": "0x02004a91",
+ "att_server_get_mtu": "0x02004aa9",
+ "att_server_indicate": "0x02004b21",
+ "att_server_init": "0x02004ba5",
+ "att_server_notify": "0x02004be1",
+ "att_server_register_packet_handler": "0x02004cf9",
+ "att_server_request_can_send_now_event": "0x02004d05",
+ "att_set_db": "0x02004d21",
+ "att_set_read_callback": "0x02004d35",
+ "att_set_write_callback": "0x02004d41",
+ "bd_addr_cmp": "0x02004f29",
+ "bd_addr_copy": "0x02004f2f",
+ "bd_addr_to_str": "0x02004f39",
+ "big_endian_read_16": "0x02004f71",
+ "big_endian_read_32": "0x02004f79",
+ "big_endian_store_16": "0x02004f8d",
+ "big_endian_store_32": "0x02004f99",
+ "btstack_config": "0x020050f9",
+ "btstack_memory_pool_create": "0x02005247",
+ "btstack_memory_pool_free": "0x02005271",
+ "btstack_memory_pool_get": "0x020052d1",
+ "btstack_push_user_msg": "0x02005319",
+ "btstack_push_user_runnable": "0x02005325",
+ "char_for_nibble": "0x020055ab",
+ "gap_add_dev_to_periodic_list": "0x02005f51",
+ "gap_add_whitelist": "0x02005f69",
+ "gap_aes_encrypt": "0x02005f7d",
+ "gap_clear_white_lists": "0x02005fc1",
+ "gap_clr_adv_set": "0x02005fd1",
+ "gap_clr_periodic_adv_list": "0x02005fe1",
+ "gap_create_connection_cancel": "0x02005ff1",
+ "gap_default_periodic_adv_sync_transfer_param": "0x02006001",
+ "gap_disconnect": "0x02006019",
+ "gap_disconnect_all": "0x02006045",
+ "gap_ext_create_connection": "0x02006085",
+ "gap_get_connection_parameter_range": "0x02006175",
+ "gap_le_read_channel_map": "0x020061b1",
+ "gap_periodic_adv_create_sync": "0x02006225",
+ "gap_periodic_adv_create_sync_cancel": "0x02006249",
+ "gap_periodic_adv_set_info_transfer": "0x02006259",
+ "gap_periodic_adv_sync_transfer": "0x02006271",
+ "gap_periodic_adv_sync_transfer_param": "0x02006289",
+ "gap_periodic_adv_term_sync": "0x020062a5",
+ "gap_read_antenna_info": "0x02006339",
+ "gap_read_periodic_adv_list_size": "0x02006349",
+ "gap_read_phy": "0x02006359",
+ "gap_read_remote_used_features": "0x0200636d",
+ "gap_read_remote_version": "0x02006381",
+ "gap_read_rssi": "0x02006395",
+ "gap_remove_whitelist": "0x020063a9",
+ "gap_rmv_adv_set": "0x0200642d",
+ "gap_rmv_dev_from_periodic_list": "0x02006441",
+ "gap_rx_test_v2": "0x02006459",
+ "gap_rx_test_v3": "0x02006471",
+ "gap_set_adv_set_random_addr": "0x020064c1",
+ "gap_set_connection_cte_request_enable": "0x0200650d",
+ "gap_set_connection_cte_response_enable": "0x02006529",
+ "gap_set_connection_cte_rx_param": "0x0200653d",
+ "gap_set_connection_cte_tx_param": "0x02006599",
+ "gap_set_connection_parameter_range": "0x020065ed",
+ "gap_set_connectionless_cte_tx_enable": "0x02006605",
+ "gap_set_connectionless_cte_tx_param": "0x02006619",
+ "gap_set_connectionless_iq_sampling_enable": "0x02006679",
+ "gap_set_data_length": "0x020066dd",
+ "gap_set_def_phy": "0x020066f9",
+ "gap_set_ext_adv_data": "0x02006711",
+ "gap_set_ext_adv_enable": "0x02006729",
+ "gap_set_ext_adv_para": "0x020067a5",
+ "gap_set_ext_scan_enable": "0x0200687d",
+ "gap_set_ext_scan_para": "0x02006895",
+ "gap_set_ext_scan_response_data": "0x0200693d",
+ "gap_set_host_channel_classification": "0x02006955",
+ "gap_set_periodic_adv_data": "0x02006969",
+ "gap_set_periodic_adv_enable": "0x020069dd",
+ "gap_set_periodic_adv_para": "0x020069f1",
+ "gap_set_periodic_adv_rx_enable": "0x02006a09",
+ "gap_set_phy": "0x02006a1d",
+ "gap_set_random_device_address": "0x02006a39",
+ "gap_start_ccm": "0x02006a69",
+ "gap_test_end": "0x02006a9d",
+ "gap_tx_test_v2": "0x02006aad",
+ "gap_tx_test_v4": "0x02006ac5",
+ "gap_update_connection_parameters": "0x02006aed",
+ "gap_vendor_tx_continuous_wave": "0x02006b31",
+ "gatt_client_cancel_write": "0x02007059",
+ "gatt_client_discover_characteristic_descriptors": "0x0200707f",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020070bf",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200710f",
+ "gatt_client_discover_characteristics_for_service": "0x0200715f",
+ "gatt_client_discover_primary_services": "0x02007195",
+ "gatt_client_discover_primary_services_by_uuid128": "0x020071c7",
+ "gatt_client_discover_primary_services_by_uuid16": "0x0200720b",
+ "gatt_client_execute_write": "0x02007249",
+ "gatt_client_find_included_services_for_service": "0x0200726f",
+ "gatt_client_get_mtu": "0x0200729d",
+ "gatt_client_is_ready": "0x02007361",
+ "gatt_client_listen_for_characteristic_value_updates": "0x02007377",
+ "gatt_client_prepare_write": "0x02007399",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020073d5",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020073ff",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007405",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x02007433",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02007439",
+ "gatt_client_read_multiple_characteristic_values": "0x02007467",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007497",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x020074c5",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x02007511",
+ "gatt_client_register_handler": "0x0200755d",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x02007569",
+ "gatt_client_signed_write_without_response": "0x0200799d",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007a61",
+ "gatt_client_write_client_characteristic_configuration": "0x02007a9b",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007aed",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007afd",
+ "gatt_client_write_long_value_of_characteristic": "0x02007b39",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007b49",
+ "gatt_client_write_value_of_characteristic": "0x02007b85",
+ "gatt_client_write_value_of_characteristic_without_response": "0x02007bbb",
+ "hci_add_event_handler": "0x020091b1",
+ "hci_power_control": "0x020099b1",
+ "hci_register_acl_packet_handler": "0x02009b65",
+ "kv_commit": "0x0200a0b9",
+ "kv_get": "0x0200a111",
+ "kv_init": "0x0200a129",
+ "kv_put": "0x0200a191",
+ "kv_remove": "0x0200a209",
+ "kv_remove_all": "0x0200a245",
+ "kv_value_modified": "0x0200a289",
+ "kv_visit": "0x0200a28d",
+ "l2cap_add_event_handler": "0x0200a341",
+ "l2cap_can_send_packet_now": "0x0200a351",
+ "l2cap_create_le_credit_based_connection_request": "0x0200a515",
+ "l2cap_credit_based_send": "0x0200a65d",
+ "l2cap_credit_based_send_continue": "0x0200a689",
+ "l2cap_disconnect": "0x0200a705",
+ "l2cap_get_le_credit_based_connection_credits": "0x0200a8f1",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0200a90d",
+ "l2cap_init": "0x0200ad4d",
+ "l2cap_le_send_flow_control_credit": "0x0200ae43",
+ "l2cap_max_le_mtu": "0x0200b151",
+ "l2cap_register_packet_handler": "0x0200b279",
+ "l2cap_register_service": "0x0200b285",
+ "l2cap_request_can_send_now_event": "0x0200b395",
+ "l2cap_request_connection_parameter_update": "0x0200b3af",
+ "l2cap_send_echo_request": "0x0200b891",
+ "l2cap_unregister_service": "0x0200b971",
+ "le_device_db_add": "0x0200b9c9",
+ "le_device_db_find": "0x0200ba9d",
+ "le_device_db_from_key": "0x0200bac9",
+ "le_device_db_iter_cur": "0x0200bad1",
+ "le_device_db_iter_cur_key": "0x0200bad5",
+ "le_device_db_iter_init": "0x0200bad9",
+ "le_device_db_iter_next": "0x0200bae1",
+ "le_device_db_remove_key": "0x0200bb07",
+ "ll_ackable_packet_alloc": "0x0200bb33",
+ "ll_ackable_packet_get_status": "0x0200bc3f",
+ "ll_ackable_packet_run": "0x0200bcad",
+ "ll_ackable_packet_set_tx_data": "0x0200bd71",
+ "ll_adjust_conn_peer_tx_power": "0x0200bd8d",
+ "ll_attach_cte_to_adv_set": "0x0200bdb9",
+ "ll_free": "0x0200bf51",
+ "ll_hint_on_ce_len": "0x0200bf5d",
+ "ll_legacy_adv_set_interval": "0x0200bf95",
+ "ll_malloc": "0x0200bfa5",
+ "ll_raw_packet_alloc": "0x0200c0bd",
+ "ll_raw_packet_free": "0x0200c191",
+ "ll_raw_packet_get_bare_rx_data": "0x0200c1bb",
+ "ll_raw_packet_get_iq_samples": "0x0200c27b",
+ "ll_raw_packet_get_rx_data": "0x0200c315",
+ "ll_raw_packet_recv": "0x0200c3a9",
+ "ll_raw_packet_send": "0x0200c47d",
+ "ll_raw_packet_set_bare_data": "0x0200c599",
+ "ll_raw_packet_set_bare_mode": "0x0200c5d7",
+ "ll_raw_packet_set_param": "0x0200c6db",
+ "ll_raw_packet_set_rx_cte": "0x0200c73d",
+ "ll_raw_packet_set_tx_cte": "0x0200c7d3",
+ "ll_raw_packet_set_tx_data": "0x0200c811",
+ "ll_scan_set_fixed_channel": "0x0200c8c9",
+ "ll_scanner_enable_iq_sampling": "0x0200c8d5",
+ "ll_set_adv_access_address": "0x0200ca85",
+ "ll_set_adv_coded_scheme": "0x0200ca91",
+ "ll_set_conn_coded_scheme": "0x0200cac9",
+ "ll_set_conn_interval_unit": "0x0200caf5",
+ "ll_set_conn_latency": "0x0200cb01",
+ "ll_set_conn_tx_power": "0x0200cb31",
+ "ll_set_def_antenna": "0x0200cb6d",
+ "ll_set_initiating_coded_scheme": "0x0200cb8d",
+ "ll_set_max_conn_number": "0x0200cb99",
+ "ll_set_tx_power_range": "0x0200cc35",
+ "nibble_for_char": "0x0201f5b1",
+ "platform_32k_rc_auto_tune": "0x0201f649",
+ "platform_32k_rc_tune": "0x0201f695",
+ "platform_calibrate_32k": "0x0201f6b1",
+ "platform_config": "0x0201f6b5",
+ "platform_controller_run": "0x0201f781",
+ "platform_get_gen_os_driver": "0x0201f7b9",
+ "platform_get_task_handle": "0x0201f7c5",
+ "platform_get_us_time": "0x0201f7dd",
+ "platform_get_version": "0x0201f7e1",
+ "platform_hrng": "0x0201f7e9",
+ "platform_init_controller": "0x0201f7f1",
+ "platform_os_idle_resumed_hook": "0x0201f80d",
+ "platform_patch_rf_init_data": "0x0201f811",
+ "platform_post_sleep_processing": "0x0201f81d",
+ "platform_pre_sleep_processing": "0x0201f823",
+ "platform_pre_suppress_ticks_and_sleep_processing": "0x0201f829",
+ "platform_printf": "0x0201f82d",
+ "platform_raise_assertion": "0x0201f841",
+ "platform_rand": "0x0201f855",
+ "platform_read_info": "0x0201f859",
+ "platform_read_persistent_reg": "0x0201f889",
+ "platform_reset": "0x0201f895",
+ "platform_set_evt_callback": "0x0201f8a9",
+ "platform_set_irq_callback": "0x0201f8bd",
+ "platform_set_rf_clk_source": "0x0201f8f5",
+ "platform_set_rf_init_data": "0x0201f901",
+ "platform_set_rf_power_mapping": "0x0201f90d",
+ "platform_set_timer": "0x0201f919",
+ "platform_shutdown": "0x0201f91d",
+ "platform_switch_app": "0x0201f921",
+ "platform_trace_raw": "0x0201f939",
+ "platform_write_persistent_reg": "0x0201f951",
+ "printf_hexdump": "0x0201f965",
+ "reverse_128": "0x0201fcd9",
+ "reverse_24": "0x0201fcdf",
+ "reverse_48": "0x0201fce5",
+ "reverse_56": "0x0201fceb",
+ "reverse_64": "0x0201fcf1",
+ "reverse_bd_addr": "0x0201fcf7",
+ "reverse_bytes": "0x0201fcfd",
+ "sm_add_event_handler": "0x02020039",
+ "sm_address_resolution_lookup": "0x02020191",
+ "sm_authenticated": "0x020204e9",
+ "sm_authorization_decline": "0x020204f7",
+ "sm_authorization_grant": "0x02020517",
+ "sm_authorization_state": "0x02020537",
+ "sm_bonding_decline": "0x02020551",
+ "sm_config": "0x02020969",
+ "sm_config_conn": "0x02020981",
+ "sm_encryption_key_size": "0x02020b37",
+ "sm_just_works_confirm": "0x02021071",
+ "sm_le_device_key": "0x020213ad",
+ "sm_passkey_input": "0x02021443",
+ "sm_private_random_address_generation_get": "0x020217f1",
+ "sm_private_random_address_generation_get_mode": "0x020217f9",
+ "sm_private_random_address_generation_set_mode": "0x02021805",
+ "sm_private_random_address_generation_set_update_period": "0x0202182d",
+ "sm_register_oob_data_callback": "0x02021969",
+ "sm_request_pairing": "0x02021975",
+ "sm_send_security_request": "0x0202239b",
+ "sm_set_accepted_stk_generation_methods": "0x020223c1",
+ "sm_set_authentication_requirements": "0x020223cd",
+ "sm_set_encryption_key_size_range": "0x020223d9",
+ "sscanf_bd_addr": "0x020227b1",
+ "sysSetPublicDeviceAddr": "0x02022b79",
+ "uuid128_to_str": "0x020232c1",
+ "uuid_add_bluetooth_prefix": "0x02023319",
+ "uuid_has_bluetooth_prefix": "0x02023339"
}
\ No newline at end of file
diff --git a/bundles/noos_extension/ING9168xx/meta.json b/bundles/noos_extension/ING9168xx/meta.json
index 5e2ea52a3..a2ecf9f62 100644
--- a/bundles/noos_extension/ING9168xx/meta.json
+++ b/bundles/noos_extension/ING9168xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 5500
+ "size": 4500
},
"rom": {
"base": 33562624,
- "size": 145492
+ "size": 145228
},
"version": [
2,
0,
- 20
+ 23
]
}
\ No newline at end of file
diff --git a/bundles/noos_extension/ING9168xx/platform.bin b/bundles/noos_extension/ING9168xx/platform.bin
index 5970ec88f..2cf92bcd4 100644
Binary files a/bundles/noos_extension/ING9168xx/platform.bin and b/bundles/noos_extension/ING9168xx/platform.bin differ
diff --git a/bundles/noos_extension/ING9187xx/apis.json b/bundles/noos_extension/ING9187xx/apis.json
index 955b45eea..d5c2bb9f4 100644
--- a/bundles/noos_extension/ING9187xx/apis.json
+++ b/bundles/noos_extension/ING9187xx/apis.json
@@ -1,251 +1,248 @@
{
- "att_dispatch_client_can_send_now": "0x00005929",
- "att_dispatch_client_request_can_send_now_event": "0x0000592f",
- "att_dispatch_register_client": "0x00005935",
- "att_dispatch_register_server": "0x00005949",
- "att_dispatch_server_can_send_now": "0x0000595d",
- "att_dispatch_server_request_can_send_now_event": "0x00005963",
- "att_emit_general_event": "0x00005a15",
- "att_server_can_send_packet_now": "0x00006129",
- "att_server_deferred_read_response": "0x0000612d",
- "att_server_get_mtu": "0x00006145",
- "att_server_indicate": "0x000061bd",
- "att_server_init": "0x00006241",
- "att_server_notify": "0x0000627d",
- "att_server_register_packet_handler": "0x00006395",
- "att_server_request_can_send_now_event": "0x000063a1",
- "att_set_db": "0x000063bd",
- "att_set_read_callback": "0x000063d1",
- "att_set_write_callback": "0x000063dd",
- "bd_addr_cmp": "0x0000654d",
- "bd_addr_copy": "0x00006553",
- "bd_addr_to_str": "0x0000655d",
- "big_endian_read_16": "0x00006595",
- "big_endian_read_32": "0x0000659d",
- "big_endian_store_16": "0x000065b1",
- "big_endian_store_32": "0x000065bd",
- "btstack_config": "0x000066f5",
- "btstack_memory_pool_create": "0x00006843",
- "btstack_memory_pool_free": "0x0000686d",
- "btstack_memory_pool_get": "0x000068cd",
- "btstack_push_user_msg": "0x00006915",
- "btstack_push_user_runnable": "0x00006921",
- "char_for_nibble": "0x00006b91",
- "gap_add_dev_to_periodic_list": "0x00007449",
- "gap_add_whitelist": "0x00007461",
- "gap_aes_encrypt": "0x00007475",
- "gap_clear_white_lists": "0x000074b9",
- "gap_clr_adv_set": "0x000074c9",
- "gap_clr_periodic_adv_list": "0x000074d9",
- "gap_create_connection_cancel": "0x000074e9",
- "gap_disconnect": "0x000074f9",
- "gap_disconnect_all": "0x00007525",
- "gap_ext_create_connection": "0x00007565",
- "gap_get_connection_parameter_range": "0x00007655",
- "gap_le_read_channel_map": "0x00007691",
- "gap_periodic_adv_create_sync": "0x00007705",
- "gap_periodic_adv_create_sync_cancel": "0x00007729",
- "gap_periodic_adv_term_sync": "0x00007739",
- "gap_read_periodic_adv_list_size": "0x000077cd",
- "gap_read_phy": "0x000077dd",
- "gap_read_remote_used_features": "0x000077f1",
- "gap_read_remote_version": "0x00007805",
- "gap_read_rssi": "0x00007819",
- "gap_remove_whitelist": "0x0000782d",
- "gap_rmv_adv_set": "0x000078b1",
- "gap_rmv_dev_from_periodic_list": "0x000078c5",
- "gap_rx_test_v2": "0x000078dd",
- "gap_set_adv_set_random_addr": "0x0000791d",
- "gap_set_connection_parameter_range": "0x00007969",
- "gap_set_data_length": "0x00007981",
- "gap_set_def_phy": "0x0000799d",
- "gap_set_ext_adv_data": "0x000079b5",
- "gap_set_ext_adv_enable": "0x000079cd",
- "gap_set_ext_adv_para": "0x00007a49",
- "gap_set_ext_scan_enable": "0x00007b29",
- "gap_set_ext_scan_para": "0x00007b41",
- "gap_set_ext_scan_response_data": "0x00007be9",
- "gap_set_host_channel_classification": "0x00007c01",
- "gap_set_periodic_adv_data": "0x00007c15",
- "gap_set_periodic_adv_enable": "0x00007c89",
- "gap_set_periodic_adv_para": "0x00007c9d",
- "gap_set_phy": "0x00007cb5",
- "gap_set_random_device_address": "0x00007cd1",
- "gap_start_ccm": "0x00007d01",
- "gap_test_end": "0x00007d35",
- "gap_tx_test_v2": "0x00007d45",
- "gap_tx_test_v4": "0x00007d5d",
- "gap_update_connection_parameters": "0x00007d85",
- "gap_vendor_tx_continuous_wave": "0x00007dc9",
- "gatt_client_cancel_write": "0x000082f1",
- "gatt_client_discover_characteristic_descriptors": "0x00008317",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x00008357",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000083a7",
- "gatt_client_discover_characteristics_for_service": "0x000083f7",
- "gatt_client_discover_primary_services": "0x0000842d",
- "gatt_client_discover_primary_services_by_uuid128": "0x0000845f",
- "gatt_client_discover_primary_services_by_uuid16": "0x000084a3",
- "gatt_client_execute_write": "0x000084df",
- "gatt_client_find_included_services_for_service": "0x00008505",
- "gatt_client_get_mtu": "0x00008533",
- "gatt_client_is_ready": "0x000085d5",
- "gatt_client_listen_for_characteristic_value_updates": "0x000085eb",
- "gatt_client_prepare_write": "0x0000860d",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008649",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008673",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008679",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000086a7",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x000086ad",
- "gatt_client_read_multiple_characteristic_values": "0x000086db",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x0000870b",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008739",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008785",
- "gatt_client_register_handler": "0x000087d1",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x000087dd",
- "gatt_client_signed_write_without_response": "0x00008c0d",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008cd1",
- "gatt_client_write_client_characteristic_configuration": "0x00008d0b",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008d5d",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008d6d",
- "gatt_client_write_long_value_of_characteristic": "0x00008da9",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008db9",
- "gatt_client_write_value_of_characteristic": "0x00008df5",
- "gatt_client_write_value_of_characteristic_without_response": "0x00008e2b",
- "hci_add_event_handler": "0x0000a351",
- "hci_power_control": "0x0000ab49",
- "hci_register_acl_packet_handler": "0x0000acfd",
- "kv_commit": "0x0000b295",
- "kv_get": "0x0000b2ed",
- "kv_init": "0x0000b305",
- "kv_put": "0x0000b36d",
- "kv_remove": "0x0000b3e5",
- "kv_remove_all": "0x0000b421",
- "kv_value_modified": "0x0000b465",
- "kv_visit": "0x0000b469",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000b529",
- "l2cap_can_send_packet_now": "0x0000b52d",
- "l2cap_create_channel": "0x0000b6e5",
- "l2cap_disconnect": "0x0000b81d",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000ba45",
- "l2cap_init": "0x0000be3d",
- "l2cap_le_send_flow_control_credit": "0x0000be7d",
- "l2cap_max_le_mtu": "0x0000c139",
- "l2cap_max_mtu": "0x0000c13d",
- "l2cap_register_fixed_channel": "0x0000c249",
- "l2cap_register_packet_handler": "0x0000c265",
- "l2cap_register_service": "0x0000c271",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c355",
- "l2cap_request_can_send_now_event": "0x0000c379",
- "l2cap_request_connection_parameter_update": "0x0000c393",
- "l2cap_send": "0x0000c72d",
- "l2cap_send_connectionless": "0x0000c7a5",
- "l2cap_send_connectionless3": "0x0000c835",
- "l2cap_send_echo_request": "0x0000c8cd",
- "l2cap_unregister_service": "0x0000c989",
- "le_device_db_add": "0x0000c9e1",
- "le_device_db_find": "0x0000cab5",
- "le_device_db_from_key": "0x0000cae1",
- "le_device_db_iter_cur": "0x0000cae9",
- "le_device_db_iter_cur_key": "0x0000caed",
- "le_device_db_iter_init": "0x0000caf1",
- "le_device_db_iter_next": "0x0000caf9",
- "le_device_db_remove_key": "0x0000cb1f",
- "ll_ackable_packet_alloc": "0x0000cb4b",
- "ll_ackable_packet_get_status": "0x0000cc53",
- "ll_ackable_packet_run": "0x0000ccc5",
- "ll_ackable_packet_set_tx_data": "0x0000cd6d",
- "ll_free": "0x0000cd87",
- "ll_hint_on_ce_len": "0x0000cd91",
- "ll_legacy_adv_set_interval": "0x0000cdc9",
- "ll_malloc": "0x0000cdd9",
- "ll_query_timing_info": "0x0000cf11",
- "ll_raw_packet_alloc": "0x0000cf5d",
- "ll_raw_packet_free": "0x0000d031",
- "ll_raw_packet_get_bare_rx_data": "0x0000d05b",
- "ll_raw_packet_get_rx_data": "0x0000d121",
- "ll_raw_packet_recv": "0x0000d1c1",
- "ll_raw_packet_send": "0x0000d27d",
- "ll_raw_packet_set_bare_data": "0x0000d365",
- "ll_raw_packet_set_bare_mode": "0x0000d3a3",
- "ll_raw_packet_set_param": "0x0000d4a9",
- "ll_raw_packet_set_tx_data": "0x0000d507",
- "ll_scan_set_fixed_channel": "0x0000d5c5",
- "ll_set_adv_access_address": "0x0000d6d9",
- "ll_set_adv_coded_scheme": "0x0000d6e5",
- "ll_set_conn_coded_scheme": "0x0000d715",
- "ll_set_conn_interval_unit": "0x0000d741",
- "ll_set_conn_latency": "0x0000d74d",
- "ll_set_conn_tx_power": "0x0000d77d",
- "ll_set_def_antenna": "0x0000d7c5",
- "ll_set_initiating_coded_scheme": "0x0000d7e1",
- "ll_set_max_conn_number": "0x0000d7ed",
- "nibble_for_char": "0x0001d765",
- "platform_32k_rc_auto_tune": "0x0001d801",
- "platform_32k_rc_tune": "0x0001d87d",
- "platform_calibrate_32k": "0x0001d891",
- "platform_config": "0x0001d895",
- "platform_controller_run": "0x0001d96d",
- "platform_get_gen_os_driver": "0x0001d9a5",
- "platform_get_task_handle": "0x0001d9b1",
- "platform_get_us_time": "0x0001d9c9",
- "platform_get_version": "0x0001d9cd",
- "platform_hrng": "0x0001d9d5",
- "platform_init_controller": "0x0001d9dd",
- "platform_os_idle_resumed_hook": "0x0001d9f9",
- "platform_patch_rf_init_data": "0x0001d9fd",
- "platform_post_sleep_processing": "0x0001da09",
- "platform_pre_sleep_processing": "0x0001da0f",
- "platform_pre_suppress_ticks_and_sleep_processing": "0x0001da15",
- "platform_printf": "0x0001da19",
- "platform_raise_assertion": "0x0001da2d",
- "platform_rand": "0x0001da41",
- "platform_read_info": "0x0001da45",
- "platform_read_persistent_reg": "0x0001da75",
- "platform_reset": "0x0001da85",
- "platform_set_evt_callback": "0x0001daa9",
- "platform_set_irq_callback": "0x0001dabd",
- "platform_set_rf_clk_source": "0x0001daf5",
- "platform_set_rf_init_data": "0x0001db01",
- "platform_set_rf_power_mapping": "0x0001db0d",
- "platform_set_timer": "0x0001db19",
- "platform_shutdown": "0x0001db1d",
- "platform_switch_app": "0x0001db21",
- "platform_trace_raw": "0x0001db4d",
- "platform_write_persistent_reg": "0x0001db65",
- "printf_hexdump": "0x0001db75",
- "reverse_128": "0x0001deb1",
- "reverse_24": "0x0001deb7",
- "reverse_48": "0x0001debd",
- "reverse_56": "0x0001dec3",
- "reverse_64": "0x0001dec9",
- "reverse_bd_addr": "0x0001decf",
- "reverse_bytes": "0x0001ded5",
- "sm_add_event_handler": "0x0001e061",
- "sm_address_resolution_lookup": "0x0001e1b9",
- "sm_authenticated": "0x0001e511",
- "sm_authorization_decline": "0x0001e51f",
- "sm_authorization_grant": "0x0001e53f",
- "sm_authorization_state": "0x0001e55f",
- "sm_bonding_decline": "0x0001e579",
- "sm_config": "0x0001e999",
- "sm_config_conn": "0x0001e9b1",
- "sm_encryption_key_size": "0x0001eb67",
- "sm_just_works_confirm": "0x0001f0a1",
- "sm_le_device_key": "0x0001f3dd",
- "sm_passkey_input": "0x0001f473",
- "sm_private_random_address_generation_get": "0x0001f821",
- "sm_private_random_address_generation_get_mode": "0x0001f829",
- "sm_private_random_address_generation_set_mode": "0x0001f835",
- "sm_private_random_address_generation_set_update_period": "0x0001f85d",
- "sm_register_oob_data_callback": "0x0001f999",
- "sm_request_pairing": "0x0001f9a5",
- "sm_send_security_request": "0x000203c3",
- "sm_set_accepted_stk_generation_methods": "0x000203e9",
- "sm_set_authentication_requirements": "0x000203f5",
- "sm_set_encryption_key_size_range": "0x00020401",
- "sscanf_bd_addr": "0x000207d1",
- "sysSetPublicDeviceAddr": "0x00020b49",
- "uuid128_to_str": "0x00021129",
- "uuid_add_bluetooth_prefix": "0x00021181",
- "uuid_has_bluetooth_prefix": "0x000211a1"
+ "att_dispatch_client_can_send_now": "0x0000568d",
+ "att_dispatch_client_request_can_send_now_event": "0x00005693",
+ "att_dispatch_register_client": "0x00005699",
+ "att_dispatch_register_server": "0x000056ad",
+ "att_dispatch_server_can_send_now": "0x000056c1",
+ "att_dispatch_server_request_can_send_now_event": "0x000056c7",
+ "att_emit_general_event": "0x00005779",
+ "att_server_can_send_packet_now": "0x00005e8d",
+ "att_server_deferred_read_response": "0x00005e91",
+ "att_server_get_mtu": "0x00005ea9",
+ "att_server_indicate": "0x00005f21",
+ "att_server_init": "0x00005fa5",
+ "att_server_notify": "0x00005fe1",
+ "att_server_register_packet_handler": "0x000060f9",
+ "att_server_request_can_send_now_event": "0x00006105",
+ "att_set_db": "0x00006121",
+ "att_set_read_callback": "0x00006135",
+ "att_set_write_callback": "0x00006141",
+ "bd_addr_cmp": "0x000062b1",
+ "bd_addr_copy": "0x000062b7",
+ "bd_addr_to_str": "0x000062c1",
+ "big_endian_read_16": "0x000062f9",
+ "big_endian_read_32": "0x00006301",
+ "big_endian_store_16": "0x00006315",
+ "big_endian_store_32": "0x00006321",
+ "btstack_config": "0x00006459",
+ "btstack_memory_pool_create": "0x000065a7",
+ "btstack_memory_pool_free": "0x000065d1",
+ "btstack_memory_pool_get": "0x00006631",
+ "btstack_push_user_msg": "0x00006679",
+ "btstack_push_user_runnable": "0x00006685",
+ "char_for_nibble": "0x000068f5",
+ "gap_add_dev_to_periodic_list": "0x000071ad",
+ "gap_add_whitelist": "0x000071c5",
+ "gap_aes_encrypt": "0x000071d9",
+ "gap_clear_white_lists": "0x0000721d",
+ "gap_clr_adv_set": "0x0000722d",
+ "gap_clr_periodic_adv_list": "0x0000723d",
+ "gap_create_connection_cancel": "0x0000724d",
+ "gap_disconnect": "0x0000725d",
+ "gap_disconnect_all": "0x00007289",
+ "gap_ext_create_connection": "0x000072c9",
+ "gap_get_connection_parameter_range": "0x000073b9",
+ "gap_le_read_channel_map": "0x000073f5",
+ "gap_periodic_adv_create_sync": "0x00007469",
+ "gap_periodic_adv_create_sync_cancel": "0x0000748d",
+ "gap_periodic_adv_term_sync": "0x0000749d",
+ "gap_read_periodic_adv_list_size": "0x00007531",
+ "gap_read_phy": "0x00007541",
+ "gap_read_remote_used_features": "0x00007555",
+ "gap_read_remote_version": "0x00007569",
+ "gap_read_rssi": "0x0000757d",
+ "gap_remove_whitelist": "0x00007591",
+ "gap_rmv_adv_set": "0x00007615",
+ "gap_rmv_dev_from_periodic_list": "0x00007629",
+ "gap_rx_test_v2": "0x00007641",
+ "gap_set_adv_set_random_addr": "0x00007681",
+ "gap_set_connection_parameter_range": "0x000076cd",
+ "gap_set_data_length": "0x000076e5",
+ "gap_set_def_phy": "0x00007701",
+ "gap_set_ext_adv_data": "0x00007719",
+ "gap_set_ext_adv_enable": "0x00007731",
+ "gap_set_ext_adv_para": "0x000077ad",
+ "gap_set_ext_scan_enable": "0x0000788d",
+ "gap_set_ext_scan_para": "0x000078a5",
+ "gap_set_ext_scan_response_data": "0x0000794d",
+ "gap_set_host_channel_classification": "0x00007965",
+ "gap_set_periodic_adv_data": "0x00007979",
+ "gap_set_periodic_adv_enable": "0x000079ed",
+ "gap_set_periodic_adv_para": "0x00007a01",
+ "gap_set_phy": "0x00007a19",
+ "gap_set_random_device_address": "0x00007a35",
+ "gap_start_ccm": "0x00007a65",
+ "gap_test_end": "0x00007a99",
+ "gap_tx_test_v2": "0x00007aa9",
+ "gap_tx_test_v4": "0x00007ac1",
+ "gap_update_connection_parameters": "0x00007ae9",
+ "gap_vendor_tx_continuous_wave": "0x00007b2d",
+ "gatt_client_cancel_write": "0x00008055",
+ "gatt_client_discover_characteristic_descriptors": "0x0000807b",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000080bb",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0000810b",
+ "gatt_client_discover_characteristics_for_service": "0x0000815b",
+ "gatt_client_discover_primary_services": "0x00008191",
+ "gatt_client_discover_primary_services_by_uuid128": "0x000081c3",
+ "gatt_client_discover_primary_services_by_uuid16": "0x00008207",
+ "gatt_client_execute_write": "0x00008243",
+ "gatt_client_find_included_services_for_service": "0x00008269",
+ "gatt_client_get_mtu": "0x00008297",
+ "gatt_client_is_ready": "0x00008339",
+ "gatt_client_listen_for_characteristic_value_updates": "0x0000834f",
+ "gatt_client_prepare_write": "0x00008371",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x000083ad",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000083d7",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000083dd",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0000840b",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008411",
+ "gatt_client_read_multiple_characteristic_values": "0x0000843f",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x0000846f",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x0000849d",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x000084e9",
+ "gatt_client_register_handler": "0x00008535",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x00008541",
+ "gatt_client_signed_write_without_response": "0x00008971",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008a35",
+ "gatt_client_write_client_characteristic_configuration": "0x00008a6f",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008ac1",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008ad1",
+ "gatt_client_write_long_value_of_characteristic": "0x00008b0d",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008b1d",
+ "gatt_client_write_value_of_characteristic": "0x00008b59",
+ "gatt_client_write_value_of_characteristic_without_response": "0x00008b8f",
+ "hci_add_event_handler": "0x0000a0b5",
+ "hci_power_control": "0x0000a8ad",
+ "hci_register_acl_packet_handler": "0x0000aa61",
+ "kv_commit": "0x0000aff9",
+ "kv_get": "0x0000b051",
+ "kv_init": "0x0000b069",
+ "kv_put": "0x0000b0d1",
+ "kv_remove": "0x0000b149",
+ "kv_remove_all": "0x0000b185",
+ "kv_value_modified": "0x0000b1c9",
+ "kv_visit": "0x0000b1cd",
+ "l2cap_add_event_handler": "0x0000b281",
+ "l2cap_can_send_packet_now": "0x0000b291",
+ "l2cap_create_le_credit_based_connection_request": "0x0000b44d",
+ "l2cap_credit_based_send": "0x0000b591",
+ "l2cap_credit_based_send_continue": "0x0000b5bd",
+ "l2cap_disconnect": "0x0000b639",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000b889",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000b8a5",
+ "l2cap_init": "0x0000bc79",
+ "l2cap_le_send_flow_control_credit": "0x0000bd6f",
+ "l2cap_max_le_mtu": "0x0000c079",
+ "l2cap_register_packet_handler": "0x0000c1a1",
+ "l2cap_register_service": "0x0000c1ad",
+ "l2cap_request_can_send_now_event": "0x0000c2bd",
+ "l2cap_request_connection_parameter_update": "0x0000c2d7",
+ "l2cap_send_echo_request": "0x0000c7a9",
+ "l2cap_unregister_service": "0x0000c869",
+ "le_device_db_add": "0x0000c8c1",
+ "le_device_db_find": "0x0000c995",
+ "le_device_db_from_key": "0x0000c9c1",
+ "le_device_db_iter_cur": "0x0000c9c9",
+ "le_device_db_iter_cur_key": "0x0000c9cd",
+ "le_device_db_iter_init": "0x0000c9d1",
+ "le_device_db_iter_next": "0x0000c9d9",
+ "le_device_db_remove_key": "0x0000c9ff",
+ "ll_ackable_packet_alloc": "0x0000ca2b",
+ "ll_ackable_packet_get_status": "0x0000cb33",
+ "ll_ackable_packet_run": "0x0000cba5",
+ "ll_ackable_packet_set_tx_data": "0x0000cc4d",
+ "ll_free": "0x0000cc67",
+ "ll_hint_on_ce_len": "0x0000cc71",
+ "ll_legacy_adv_set_interval": "0x0000cca9",
+ "ll_malloc": "0x0000ccb9",
+ "ll_query_timing_info": "0x0000cdf1",
+ "ll_raw_packet_alloc": "0x0000ce3d",
+ "ll_raw_packet_free": "0x0000cf11",
+ "ll_raw_packet_get_bare_rx_data": "0x0000cf3b",
+ "ll_raw_packet_get_rx_data": "0x0000d001",
+ "ll_raw_packet_recv": "0x0000d0a1",
+ "ll_raw_packet_send": "0x0000d15d",
+ "ll_raw_packet_set_bare_data": "0x0000d245",
+ "ll_raw_packet_set_bare_mode": "0x0000d283",
+ "ll_raw_packet_set_param": "0x0000d389",
+ "ll_raw_packet_set_tx_data": "0x0000d3e7",
+ "ll_scan_set_fixed_channel": "0x0000d4a5",
+ "ll_set_adv_access_address": "0x0000d5b9",
+ "ll_set_adv_coded_scheme": "0x0000d5c5",
+ "ll_set_conn_coded_scheme": "0x0000d5f5",
+ "ll_set_conn_interval_unit": "0x0000d621",
+ "ll_set_conn_latency": "0x0000d62d",
+ "ll_set_conn_tx_power": "0x0000d65d",
+ "ll_set_def_antenna": "0x0000d6a5",
+ "ll_set_initiating_coded_scheme": "0x0000d6c1",
+ "ll_set_max_conn_number": "0x0000d6cd",
+ "nibble_for_char": "0x0001d649",
+ "platform_32k_rc_auto_tune": "0x0001d6e5",
+ "platform_32k_rc_tune": "0x0001d761",
+ "platform_calibrate_32k": "0x0001d775",
+ "platform_config": "0x0001d779",
+ "platform_controller_run": "0x0001d851",
+ "platform_get_gen_os_driver": "0x0001d889",
+ "platform_get_task_handle": "0x0001d895",
+ "platform_get_us_time": "0x0001d8ad",
+ "platform_get_version": "0x0001d8b1",
+ "platform_hrng": "0x0001d8b9",
+ "platform_init_controller": "0x0001d8c1",
+ "platform_os_idle_resumed_hook": "0x0001d8dd",
+ "platform_patch_rf_init_data": "0x0001d8e1",
+ "platform_post_sleep_processing": "0x0001d8ed",
+ "platform_pre_sleep_processing": "0x0001d8f3",
+ "platform_pre_suppress_ticks_and_sleep_processing": "0x0001d8f9",
+ "platform_printf": "0x0001d8fd",
+ "platform_raise_assertion": "0x0001d911",
+ "platform_rand": "0x0001d925",
+ "platform_read_info": "0x0001d929",
+ "platform_read_persistent_reg": "0x0001d959",
+ "platform_reset": "0x0001d969",
+ "platform_set_evt_callback": "0x0001d98d",
+ "platform_set_irq_callback": "0x0001d9a1",
+ "platform_set_rf_clk_source": "0x0001d9d9",
+ "platform_set_rf_init_data": "0x0001d9e5",
+ "platform_set_rf_power_mapping": "0x0001d9f1",
+ "platform_set_timer": "0x0001d9fd",
+ "platform_shutdown": "0x0001da01",
+ "platform_switch_app": "0x0001da05",
+ "platform_trace_raw": "0x0001da31",
+ "platform_write_persistent_reg": "0x0001da49",
+ "printf_hexdump": "0x0001da59",
+ "reverse_128": "0x0001dd95",
+ "reverse_24": "0x0001dd9b",
+ "reverse_48": "0x0001dda1",
+ "reverse_56": "0x0001dda7",
+ "reverse_64": "0x0001ddad",
+ "reverse_bd_addr": "0x0001ddb3",
+ "reverse_bytes": "0x0001ddb9",
+ "sm_add_event_handler": "0x0001df45",
+ "sm_address_resolution_lookup": "0x0001e09d",
+ "sm_authenticated": "0x0001e3f5",
+ "sm_authorization_decline": "0x0001e403",
+ "sm_authorization_grant": "0x0001e423",
+ "sm_authorization_state": "0x0001e443",
+ "sm_bonding_decline": "0x0001e45d",
+ "sm_config": "0x0001e87d",
+ "sm_config_conn": "0x0001e895",
+ "sm_encryption_key_size": "0x0001ea4b",
+ "sm_just_works_confirm": "0x0001ef85",
+ "sm_le_device_key": "0x0001f2c1",
+ "sm_passkey_input": "0x0001f357",
+ "sm_private_random_address_generation_get": "0x0001f705",
+ "sm_private_random_address_generation_get_mode": "0x0001f70d",
+ "sm_private_random_address_generation_set_mode": "0x0001f719",
+ "sm_private_random_address_generation_set_update_period": "0x0001f741",
+ "sm_register_oob_data_callback": "0x0001f87d",
+ "sm_request_pairing": "0x0001f889",
+ "sm_send_security_request": "0x000202a7",
+ "sm_set_accepted_stk_generation_methods": "0x000202cd",
+ "sm_set_authentication_requirements": "0x000202d9",
+ "sm_set_encryption_key_size_range": "0x000202e5",
+ "sscanf_bd_addr": "0x000206b5",
+ "sysSetPublicDeviceAddr": "0x00020a2d",
+ "uuid128_to_str": "0x0002100d",
+ "uuid_add_bluetooth_prefix": "0x00021065",
+ "uuid_has_bluetooth_prefix": "0x00021085"
}
\ No newline at end of file
diff --git a/bundles/noos_extension/ING9187xx/meta.json b/bundles/noos_extension/ING9187xx/meta.json
index ab1d3153c..6bf3aa2e1 100644
--- a/bundles/noos_extension/ING9187xx/meta.json
+++ b/bundles/noos_extension/ING9187xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 5516
+ "size": 4508
},
"rom": {
"base": 16384,
- "size": 125548
+ "size": 125260
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/noos_extension/ING9187xx/platform.bin b/bundles/noos_extension/ING9187xx/platform.bin
index b36408309..5b47b86d8 100644
Binary files a/bundles/noos_extension/ING9187xx/platform.bin and b/bundles/noos_extension/ING9187xx/platform.bin differ
diff --git a/bundles/noos_extension/ING9188xx/apis.json b/bundles/noos_extension/ING9188xx/apis.json
index b82366d75..290d19022 100644
--- a/bundles/noos_extension/ING9188xx/apis.json
+++ b/bundles/noos_extension/ING9188xx/apis.json
@@ -1,271 +1,268 @@
{
- "att_dispatch_client_can_send_now": "0x00005a4d",
- "att_dispatch_client_request_can_send_now_event": "0x00005a53",
- "att_dispatch_register_client": "0x00005a59",
- "att_dispatch_register_server": "0x00005a6d",
- "att_dispatch_server_can_send_now": "0x00005a81",
- "att_dispatch_server_request_can_send_now_event": "0x00005a87",
- "att_emit_general_event": "0x00005b39",
- "att_server_can_send_packet_now": "0x0000624d",
- "att_server_deferred_read_response": "0x00006251",
- "att_server_get_mtu": "0x00006269",
- "att_server_indicate": "0x000062e1",
- "att_server_init": "0x00006365",
- "att_server_notify": "0x000063a1",
- "att_server_register_packet_handler": "0x000064b9",
- "att_server_request_can_send_now_event": "0x000064c5",
- "att_set_db": "0x000064e1",
- "att_set_read_callback": "0x000064f5",
- "att_set_write_callback": "0x00006501",
- "bd_addr_cmp": "0x00006671",
- "bd_addr_copy": "0x00006677",
- "bd_addr_to_str": "0x00006681",
- "big_endian_read_16": "0x000066b9",
- "big_endian_read_32": "0x000066c1",
- "big_endian_store_16": "0x000066d5",
- "big_endian_store_32": "0x000066e1",
- "btstack_config": "0x00006819",
- "btstack_memory_pool_create": "0x00006967",
- "btstack_memory_pool_free": "0x00006991",
- "btstack_memory_pool_get": "0x000069f1",
- "btstack_push_user_msg": "0x00006a39",
- "btstack_push_user_runnable": "0x00006a45",
- "char_for_nibble": "0x00006cb5",
- "gap_add_dev_to_periodic_list": "0x000075dd",
- "gap_add_whitelist": "0x000075f5",
- "gap_aes_encrypt": "0x00007609",
- "gap_clear_white_lists": "0x0000764d",
- "gap_clr_adv_set": "0x0000765d",
- "gap_clr_periodic_adv_list": "0x0000766d",
- "gap_create_connection_cancel": "0x0000767d",
- "gap_default_periodic_adv_sync_transfer_param": "0x0000768d",
- "gap_disconnect": "0x000076a5",
- "gap_disconnect_all": "0x000076d1",
- "gap_ext_create_connection": "0x00007711",
- "gap_get_connection_parameter_range": "0x00007801",
- "gap_le_read_channel_map": "0x0000783d",
- "gap_periodic_adv_create_sync": "0x000078b1",
- "gap_periodic_adv_create_sync_cancel": "0x000078d5",
- "gap_periodic_adv_set_info_transfer": "0x000078e5",
- "gap_periodic_adv_sync_transfer": "0x000078fd",
- "gap_periodic_adv_sync_transfer_param": "0x00007915",
- "gap_periodic_adv_term_sync": "0x00007931",
- "gap_read_antenna_info": "0x000079c5",
- "gap_read_periodic_adv_list_size": "0x000079d5",
- "gap_read_phy": "0x000079e5",
- "gap_read_remote_used_features": "0x000079f9",
- "gap_read_remote_version": "0x00007a0d",
- "gap_read_rssi": "0x00007a21",
- "gap_remove_whitelist": "0x00007a35",
- "gap_rmv_adv_set": "0x00007ab9",
- "gap_rmv_dev_from_periodic_list": "0x00007acd",
- "gap_rx_test_v2": "0x00007ae5",
- "gap_rx_test_v3": "0x00007afd",
- "gap_set_adv_set_random_addr": "0x00007b4d",
- "gap_set_connection_cte_request_enable": "0x00007b99",
- "gap_set_connection_cte_response_enable": "0x00007bb5",
- "gap_set_connection_cte_rx_param": "0x00007bc9",
- "gap_set_connection_cte_tx_param": "0x00007c25",
- "gap_set_connection_parameter_range": "0x00007c79",
- "gap_set_connectionless_cte_tx_enable": "0x00007c91",
- "gap_set_connectionless_cte_tx_param": "0x00007ca5",
- "gap_set_connectionless_iq_sampling_enable": "0x00007d05",
- "gap_set_data_length": "0x00007d69",
- "gap_set_def_phy": "0x00007d85",
- "gap_set_ext_adv_data": "0x00007d9d",
- "gap_set_ext_adv_enable": "0x00007db5",
- "gap_set_ext_adv_para": "0x00007e31",
- "gap_set_ext_scan_enable": "0x00007f11",
- "gap_set_ext_scan_para": "0x00007f29",
- "gap_set_ext_scan_response_data": "0x00007fd1",
- "gap_set_host_channel_classification": "0x00007fe9",
- "gap_set_periodic_adv_data": "0x00007ffd",
- "gap_set_periodic_adv_enable": "0x00008071",
- "gap_set_periodic_adv_para": "0x00008085",
- "gap_set_periodic_adv_rx_enable": "0x0000809d",
- "gap_set_phy": "0x000080b1",
- "gap_set_random_device_address": "0x000080cd",
- "gap_start_ccm": "0x000080fd",
- "gap_test_end": "0x00008131",
- "gap_tx_test_v2": "0x00008141",
- "gap_tx_test_v4": "0x00008159",
- "gap_update_connection_parameters": "0x00008181",
- "gap_vendor_tx_continuous_wave": "0x000081c5",
- "gatt_client_cancel_write": "0x000086ed",
- "gatt_client_discover_characteristic_descriptors": "0x00008713",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x00008753",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000087a3",
- "gatt_client_discover_characteristics_for_service": "0x000087f3",
- "gatt_client_discover_primary_services": "0x00008829",
- "gatt_client_discover_primary_services_by_uuid128": "0x0000885b",
- "gatt_client_discover_primary_services_by_uuid16": "0x0000889f",
- "gatt_client_execute_write": "0x000088db",
- "gatt_client_find_included_services_for_service": "0x00008901",
- "gatt_client_get_mtu": "0x0000892f",
- "gatt_client_is_ready": "0x000089d1",
- "gatt_client_listen_for_characteristic_value_updates": "0x000089e7",
- "gatt_client_prepare_write": "0x00008a09",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008a45",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008a6f",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008a75",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008aa3",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008aa9",
- "gatt_client_read_multiple_characteristic_values": "0x00008ad7",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008b07",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008b35",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008b81",
- "gatt_client_register_handler": "0x00008bcd",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x00008bd9",
- "gatt_client_signed_write_without_response": "0x00009009",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x000090cd",
- "gatt_client_write_client_characteristic_configuration": "0x00009107",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00009159",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00009169",
- "gatt_client_write_long_value_of_characteristic": "0x000091a5",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x000091b5",
- "gatt_client_write_value_of_characteristic": "0x000091f1",
- "gatt_client_write_value_of_characteristic_without_response": "0x00009227",
- "hci_add_event_handler": "0x0000a769",
- "hci_power_control": "0x0000af61",
- "hci_register_acl_packet_handler": "0x0000b115",
- "kv_commit": "0x0000b6ad",
- "kv_get": "0x0000b705",
- "kv_init": "0x0000b71d",
- "kv_put": "0x0000b785",
- "kv_remove": "0x0000b7fd",
- "kv_remove_all": "0x0000b839",
- "kv_value_modified": "0x0000b87d",
- "kv_visit": "0x0000b881",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000b941",
- "l2cap_can_send_packet_now": "0x0000b945",
- "l2cap_create_channel": "0x0000bafd",
- "l2cap_disconnect": "0x0000bc35",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000be5d",
- "l2cap_init": "0x0000c255",
- "l2cap_le_send_flow_control_credit": "0x0000c295",
- "l2cap_max_le_mtu": "0x0000c551",
- "l2cap_max_mtu": "0x0000c555",
- "l2cap_register_fixed_channel": "0x0000c661",
- "l2cap_register_packet_handler": "0x0000c67d",
- "l2cap_register_service": "0x0000c689",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c76d",
- "l2cap_request_can_send_now_event": "0x0000c791",
- "l2cap_request_connection_parameter_update": "0x0000c7ab",
- "l2cap_send": "0x0000cb45",
- "l2cap_send_connectionless": "0x0000cbbd",
- "l2cap_send_connectionless3": "0x0000cc4d",
- "l2cap_send_echo_request": "0x0000cce5",
- "l2cap_unregister_service": "0x0000cda1",
- "le_device_db_add": "0x0000cdf9",
- "le_device_db_find": "0x0000cecd",
- "le_device_db_from_key": "0x0000cef9",
- "le_device_db_iter_cur": "0x0000cf01",
- "le_device_db_iter_cur_key": "0x0000cf05",
- "le_device_db_iter_init": "0x0000cf09",
- "le_device_db_iter_next": "0x0000cf11",
- "le_device_db_remove_key": "0x0000cf37",
- "ll_ackable_packet_alloc": "0x0000cf63",
- "ll_ackable_packet_get_status": "0x0000d06b",
- "ll_ackable_packet_run": "0x0000d0dd",
- "ll_ackable_packet_set_tx_data": "0x0000d185",
- "ll_attach_cte_to_adv_set": "0x0000d1a1",
- "ll_free": "0x0000d339",
- "ll_hint_on_ce_len": "0x0000d345",
- "ll_legacy_adv_set_interval": "0x0000d37d",
- "ll_malloc": "0x0000d38d",
- "ll_query_timing_info": "0x0000d4c5",
- "ll_raw_packet_alloc": "0x0000d511",
- "ll_raw_packet_free": "0x0000d5e5",
- "ll_raw_packet_get_bare_rx_data": "0x0000d60f",
- "ll_raw_packet_get_iq_samples": "0x0000d6d5",
- "ll_raw_packet_get_rx_data": "0x0000d76f",
- "ll_raw_packet_recv": "0x0000d811",
- "ll_raw_packet_send": "0x0000d8cd",
- "ll_raw_packet_set_bare_data": "0x0000d9b5",
- "ll_raw_packet_set_bare_mode": "0x0000d9f3",
- "ll_raw_packet_set_fake_cte_info": "0x0000daf9",
- "ll_raw_packet_set_param": "0x0000db1b",
- "ll_raw_packet_set_rx_cte": "0x0000db79",
- "ll_raw_packet_set_tx_cte": "0x0000dc0f",
- "ll_raw_packet_set_tx_data": "0x0000dc4d",
- "ll_scan_set_fixed_channel": "0x0000dd09",
- "ll_scanner_enable_iq_sampling": "0x0000dd15",
- "ll_set_adv_access_address": "0x0000dec5",
- "ll_set_adv_coded_scheme": "0x0000ded1",
- "ll_set_conn_coded_scheme": "0x0000df01",
- "ll_set_conn_interval_unit": "0x0000df2d",
- "ll_set_conn_latency": "0x0000df39",
- "ll_set_conn_tx_power": "0x0000df69",
- "ll_set_def_antenna": "0x0000dfb1",
- "ll_set_initiating_coded_scheme": "0x0000dfcd",
- "ll_set_max_conn_number": "0x0000dfd9",
- "nibble_for_char": "0x0001ef31",
- "platform_32k_rc_auto_tune": "0x0001efcd",
- "platform_32k_rc_tune": "0x0001f049",
- "platform_calibrate_32k": "0x0001f05d",
- "platform_config": "0x0001f061",
- "platform_controller_run": "0x0001f139",
- "platform_get_gen_os_driver": "0x0001f171",
- "platform_get_task_handle": "0x0001f17d",
- "platform_get_us_time": "0x0001f195",
- "platform_get_version": "0x0001f199",
- "platform_hrng": "0x0001f1a1",
- "platform_init_controller": "0x0001f1a9",
- "platform_os_idle_resumed_hook": "0x0001f1c5",
- "platform_patch_rf_init_data": "0x0001f1c9",
- "platform_post_sleep_processing": "0x0001f1d5",
- "platform_pre_sleep_processing": "0x0001f1db",
- "platform_pre_suppress_ticks_and_sleep_processing": "0x0001f1e1",
- "platform_printf": "0x0001f1e5",
- "platform_raise_assertion": "0x0001f1f9",
- "platform_rand": "0x0001f20d",
- "platform_read_info": "0x0001f211",
- "platform_read_persistent_reg": "0x0001f241",
- "platform_reset": "0x0001f251",
- "platform_set_evt_callback": "0x0001f275",
- "platform_set_irq_callback": "0x0001f289",
- "platform_set_rf_clk_source": "0x0001f2c1",
- "platform_set_rf_init_data": "0x0001f2cd",
- "platform_set_rf_power_mapping": "0x0001f2d9",
- "platform_set_timer": "0x0001f2e5",
- "platform_shutdown": "0x0001f2e9",
- "platform_switch_app": "0x0001f2ed",
- "platform_trace_raw": "0x0001f319",
- "platform_write_persistent_reg": "0x0001f331",
- "printf_hexdump": "0x0001f341",
- "reverse_128": "0x0001f6b5",
- "reverse_24": "0x0001f6bb",
- "reverse_48": "0x0001f6c1",
- "reverse_56": "0x0001f6c7",
- "reverse_64": "0x0001f6cd",
- "reverse_bd_addr": "0x0001f6d3",
- "reverse_bytes": "0x0001f6d9",
- "sm_add_event_handler": "0x0001f9b9",
- "sm_address_resolution_lookup": "0x0001fb11",
- "sm_authenticated": "0x0001fe69",
- "sm_authorization_decline": "0x0001fe77",
- "sm_authorization_grant": "0x0001fe97",
- "sm_authorization_state": "0x0001feb7",
- "sm_bonding_decline": "0x0001fed1",
- "sm_config": "0x000202f1",
- "sm_config_conn": "0x00020309",
- "sm_encryption_key_size": "0x000204bf",
- "sm_just_works_confirm": "0x000209f9",
- "sm_le_device_key": "0x00020d35",
- "sm_passkey_input": "0x00020dcb",
- "sm_private_random_address_generation_get": "0x00021179",
- "sm_private_random_address_generation_get_mode": "0x00021181",
- "sm_private_random_address_generation_set_mode": "0x0002118d",
- "sm_private_random_address_generation_set_update_period": "0x000211b5",
- "sm_register_oob_data_callback": "0x000212f1",
- "sm_request_pairing": "0x000212fd",
- "sm_send_security_request": "0x00021d1b",
- "sm_set_accepted_stk_generation_methods": "0x00021d41",
- "sm_set_authentication_requirements": "0x00021d4d",
- "sm_set_encryption_key_size_range": "0x00021d59",
- "sscanf_bd_addr": "0x00022129",
- "sysSetPublicDeviceAddr": "0x000224a1",
- "uuid128_to_str": "0x00022c15",
- "uuid_add_bluetooth_prefix": "0x00022c6d",
- "uuid_has_bluetooth_prefix": "0x00022c8d"
+ "att_dispatch_client_can_send_now": "0x000057b1",
+ "att_dispatch_client_request_can_send_now_event": "0x000057b7",
+ "att_dispatch_register_client": "0x000057bd",
+ "att_dispatch_register_server": "0x000057d1",
+ "att_dispatch_server_can_send_now": "0x000057e5",
+ "att_dispatch_server_request_can_send_now_event": "0x000057eb",
+ "att_emit_general_event": "0x0000589d",
+ "att_server_can_send_packet_now": "0x00005fb1",
+ "att_server_deferred_read_response": "0x00005fb5",
+ "att_server_get_mtu": "0x00005fcd",
+ "att_server_indicate": "0x00006045",
+ "att_server_init": "0x000060c9",
+ "att_server_notify": "0x00006105",
+ "att_server_register_packet_handler": "0x0000621d",
+ "att_server_request_can_send_now_event": "0x00006229",
+ "att_set_db": "0x00006245",
+ "att_set_read_callback": "0x00006259",
+ "att_set_write_callback": "0x00006265",
+ "bd_addr_cmp": "0x000063d5",
+ "bd_addr_copy": "0x000063db",
+ "bd_addr_to_str": "0x000063e5",
+ "big_endian_read_16": "0x0000641d",
+ "big_endian_read_32": "0x00006425",
+ "big_endian_store_16": "0x00006439",
+ "big_endian_store_32": "0x00006445",
+ "btstack_config": "0x0000657d",
+ "btstack_memory_pool_create": "0x000066cb",
+ "btstack_memory_pool_free": "0x000066f5",
+ "btstack_memory_pool_get": "0x00006755",
+ "btstack_push_user_msg": "0x0000679d",
+ "btstack_push_user_runnable": "0x000067a9",
+ "char_for_nibble": "0x00006a19",
+ "gap_add_dev_to_periodic_list": "0x00007341",
+ "gap_add_whitelist": "0x00007359",
+ "gap_aes_encrypt": "0x0000736d",
+ "gap_clear_white_lists": "0x000073b1",
+ "gap_clr_adv_set": "0x000073c1",
+ "gap_clr_periodic_adv_list": "0x000073d1",
+ "gap_create_connection_cancel": "0x000073e1",
+ "gap_default_periodic_adv_sync_transfer_param": "0x000073f1",
+ "gap_disconnect": "0x00007409",
+ "gap_disconnect_all": "0x00007435",
+ "gap_ext_create_connection": "0x00007475",
+ "gap_get_connection_parameter_range": "0x00007565",
+ "gap_le_read_channel_map": "0x000075a1",
+ "gap_periodic_adv_create_sync": "0x00007615",
+ "gap_periodic_adv_create_sync_cancel": "0x00007639",
+ "gap_periodic_adv_set_info_transfer": "0x00007649",
+ "gap_periodic_adv_sync_transfer": "0x00007661",
+ "gap_periodic_adv_sync_transfer_param": "0x00007679",
+ "gap_periodic_adv_term_sync": "0x00007695",
+ "gap_read_antenna_info": "0x00007729",
+ "gap_read_periodic_adv_list_size": "0x00007739",
+ "gap_read_phy": "0x00007749",
+ "gap_read_remote_used_features": "0x0000775d",
+ "gap_read_remote_version": "0x00007771",
+ "gap_read_rssi": "0x00007785",
+ "gap_remove_whitelist": "0x00007799",
+ "gap_rmv_adv_set": "0x0000781d",
+ "gap_rmv_dev_from_periodic_list": "0x00007831",
+ "gap_rx_test_v2": "0x00007849",
+ "gap_rx_test_v3": "0x00007861",
+ "gap_set_adv_set_random_addr": "0x000078b1",
+ "gap_set_connection_cte_request_enable": "0x000078fd",
+ "gap_set_connection_cte_response_enable": "0x00007919",
+ "gap_set_connection_cte_rx_param": "0x0000792d",
+ "gap_set_connection_cte_tx_param": "0x00007989",
+ "gap_set_connection_parameter_range": "0x000079dd",
+ "gap_set_connectionless_cte_tx_enable": "0x000079f5",
+ "gap_set_connectionless_cte_tx_param": "0x00007a09",
+ "gap_set_connectionless_iq_sampling_enable": "0x00007a69",
+ "gap_set_data_length": "0x00007acd",
+ "gap_set_def_phy": "0x00007ae9",
+ "gap_set_ext_adv_data": "0x00007b01",
+ "gap_set_ext_adv_enable": "0x00007b19",
+ "gap_set_ext_adv_para": "0x00007b95",
+ "gap_set_ext_scan_enable": "0x00007c75",
+ "gap_set_ext_scan_para": "0x00007c8d",
+ "gap_set_ext_scan_response_data": "0x00007d35",
+ "gap_set_host_channel_classification": "0x00007d4d",
+ "gap_set_periodic_adv_data": "0x00007d61",
+ "gap_set_periodic_adv_enable": "0x00007dd5",
+ "gap_set_periodic_adv_para": "0x00007de9",
+ "gap_set_periodic_adv_rx_enable": "0x00007e01",
+ "gap_set_phy": "0x00007e15",
+ "gap_set_random_device_address": "0x00007e31",
+ "gap_start_ccm": "0x00007e61",
+ "gap_test_end": "0x00007e95",
+ "gap_tx_test_v2": "0x00007ea5",
+ "gap_tx_test_v4": "0x00007ebd",
+ "gap_update_connection_parameters": "0x00007ee5",
+ "gap_vendor_tx_continuous_wave": "0x00007f29",
+ "gatt_client_cancel_write": "0x00008451",
+ "gatt_client_discover_characteristic_descriptors": "0x00008477",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000084b7",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x00008507",
+ "gatt_client_discover_characteristics_for_service": "0x00008557",
+ "gatt_client_discover_primary_services": "0x0000858d",
+ "gatt_client_discover_primary_services_by_uuid128": "0x000085bf",
+ "gatt_client_discover_primary_services_by_uuid16": "0x00008603",
+ "gatt_client_execute_write": "0x0000863f",
+ "gatt_client_find_included_services_for_service": "0x00008665",
+ "gatt_client_get_mtu": "0x00008693",
+ "gatt_client_is_ready": "0x00008735",
+ "gatt_client_listen_for_characteristic_value_updates": "0x0000874b",
+ "gatt_client_prepare_write": "0x0000876d",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x000087a9",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000087d3",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000087d9",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008807",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x0000880d",
+ "gatt_client_read_multiple_characteristic_values": "0x0000883b",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x0000886b",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008899",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x000088e5",
+ "gatt_client_register_handler": "0x00008931",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x0000893d",
+ "gatt_client_signed_write_without_response": "0x00008d6d",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008e31",
+ "gatt_client_write_client_characteristic_configuration": "0x00008e6b",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008ebd",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008ecd",
+ "gatt_client_write_long_value_of_characteristic": "0x00008f09",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008f19",
+ "gatt_client_write_value_of_characteristic": "0x00008f55",
+ "gatt_client_write_value_of_characteristic_without_response": "0x00008f8b",
+ "hci_add_event_handler": "0x0000a4cd",
+ "hci_power_control": "0x0000acc5",
+ "hci_register_acl_packet_handler": "0x0000ae79",
+ "kv_commit": "0x0000b411",
+ "kv_get": "0x0000b469",
+ "kv_init": "0x0000b481",
+ "kv_put": "0x0000b4e9",
+ "kv_remove": "0x0000b561",
+ "kv_remove_all": "0x0000b59d",
+ "kv_value_modified": "0x0000b5e1",
+ "kv_visit": "0x0000b5e5",
+ "l2cap_add_event_handler": "0x0000b699",
+ "l2cap_can_send_packet_now": "0x0000b6a9",
+ "l2cap_create_le_credit_based_connection_request": "0x0000b865",
+ "l2cap_credit_based_send": "0x0000b9a9",
+ "l2cap_credit_based_send_continue": "0x0000b9d5",
+ "l2cap_disconnect": "0x0000ba51",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000bca1",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000bcbd",
+ "l2cap_init": "0x0000c091",
+ "l2cap_le_send_flow_control_credit": "0x0000c187",
+ "l2cap_max_le_mtu": "0x0000c491",
+ "l2cap_register_packet_handler": "0x0000c5b9",
+ "l2cap_register_service": "0x0000c5c5",
+ "l2cap_request_can_send_now_event": "0x0000c6d5",
+ "l2cap_request_connection_parameter_update": "0x0000c6ef",
+ "l2cap_send_echo_request": "0x0000cbc1",
+ "l2cap_unregister_service": "0x0000cc81",
+ "le_device_db_add": "0x0000ccd9",
+ "le_device_db_find": "0x0000cdad",
+ "le_device_db_from_key": "0x0000cdd9",
+ "le_device_db_iter_cur": "0x0000cde1",
+ "le_device_db_iter_cur_key": "0x0000cde5",
+ "le_device_db_iter_init": "0x0000cde9",
+ "le_device_db_iter_next": "0x0000cdf1",
+ "le_device_db_remove_key": "0x0000ce17",
+ "ll_ackable_packet_alloc": "0x0000ce43",
+ "ll_ackable_packet_get_status": "0x0000cf4b",
+ "ll_ackable_packet_run": "0x0000cfbd",
+ "ll_ackable_packet_set_tx_data": "0x0000d065",
+ "ll_attach_cte_to_adv_set": "0x0000d081",
+ "ll_free": "0x0000d219",
+ "ll_hint_on_ce_len": "0x0000d225",
+ "ll_legacy_adv_set_interval": "0x0000d25d",
+ "ll_malloc": "0x0000d26d",
+ "ll_query_timing_info": "0x0000d3a5",
+ "ll_raw_packet_alloc": "0x0000d3f1",
+ "ll_raw_packet_free": "0x0000d4c5",
+ "ll_raw_packet_get_bare_rx_data": "0x0000d4ef",
+ "ll_raw_packet_get_iq_samples": "0x0000d5b5",
+ "ll_raw_packet_get_rx_data": "0x0000d64f",
+ "ll_raw_packet_recv": "0x0000d6f1",
+ "ll_raw_packet_send": "0x0000d7ad",
+ "ll_raw_packet_set_bare_data": "0x0000d895",
+ "ll_raw_packet_set_bare_mode": "0x0000d8d3",
+ "ll_raw_packet_set_fake_cte_info": "0x0000d9d9",
+ "ll_raw_packet_set_param": "0x0000d9fb",
+ "ll_raw_packet_set_rx_cte": "0x0000da59",
+ "ll_raw_packet_set_tx_cte": "0x0000daef",
+ "ll_raw_packet_set_tx_data": "0x0000db2d",
+ "ll_scan_set_fixed_channel": "0x0000dbe9",
+ "ll_scanner_enable_iq_sampling": "0x0000dbf5",
+ "ll_set_adv_access_address": "0x0000dda5",
+ "ll_set_adv_coded_scheme": "0x0000ddb1",
+ "ll_set_conn_coded_scheme": "0x0000dde1",
+ "ll_set_conn_interval_unit": "0x0000de0d",
+ "ll_set_conn_latency": "0x0000de19",
+ "ll_set_conn_tx_power": "0x0000de49",
+ "ll_set_def_antenna": "0x0000de91",
+ "ll_set_initiating_coded_scheme": "0x0000dead",
+ "ll_set_max_conn_number": "0x0000deb9",
+ "nibble_for_char": "0x0001ee15",
+ "platform_32k_rc_auto_tune": "0x0001eeb1",
+ "platform_32k_rc_tune": "0x0001ef2d",
+ "platform_calibrate_32k": "0x0001ef41",
+ "platform_config": "0x0001ef45",
+ "platform_controller_run": "0x0001f01d",
+ "platform_get_gen_os_driver": "0x0001f055",
+ "platform_get_task_handle": "0x0001f061",
+ "platform_get_us_time": "0x0001f079",
+ "platform_get_version": "0x0001f07d",
+ "platform_hrng": "0x0001f085",
+ "platform_init_controller": "0x0001f08d",
+ "platform_os_idle_resumed_hook": "0x0001f0a9",
+ "platform_patch_rf_init_data": "0x0001f0ad",
+ "platform_post_sleep_processing": "0x0001f0b9",
+ "platform_pre_sleep_processing": "0x0001f0bf",
+ "platform_pre_suppress_ticks_and_sleep_processing": "0x0001f0c5",
+ "platform_printf": "0x0001f0c9",
+ "platform_raise_assertion": "0x0001f0dd",
+ "platform_rand": "0x0001f0f1",
+ "platform_read_info": "0x0001f0f5",
+ "platform_read_persistent_reg": "0x0001f125",
+ "platform_reset": "0x0001f135",
+ "platform_set_evt_callback": "0x0001f159",
+ "platform_set_irq_callback": "0x0001f16d",
+ "platform_set_rf_clk_source": "0x0001f1a5",
+ "platform_set_rf_init_data": "0x0001f1b1",
+ "platform_set_rf_power_mapping": "0x0001f1bd",
+ "platform_set_timer": "0x0001f1c9",
+ "platform_shutdown": "0x0001f1cd",
+ "platform_switch_app": "0x0001f1d1",
+ "platform_trace_raw": "0x0001f1fd",
+ "platform_write_persistent_reg": "0x0001f215",
+ "printf_hexdump": "0x0001f225",
+ "reverse_128": "0x0001f599",
+ "reverse_24": "0x0001f59f",
+ "reverse_48": "0x0001f5a5",
+ "reverse_56": "0x0001f5ab",
+ "reverse_64": "0x0001f5b1",
+ "reverse_bd_addr": "0x0001f5b7",
+ "reverse_bytes": "0x0001f5bd",
+ "sm_add_event_handler": "0x0001f89d",
+ "sm_address_resolution_lookup": "0x0001f9f5",
+ "sm_authenticated": "0x0001fd4d",
+ "sm_authorization_decline": "0x0001fd5b",
+ "sm_authorization_grant": "0x0001fd7b",
+ "sm_authorization_state": "0x0001fd9b",
+ "sm_bonding_decline": "0x0001fdb5",
+ "sm_config": "0x000201d5",
+ "sm_config_conn": "0x000201ed",
+ "sm_encryption_key_size": "0x000203a3",
+ "sm_just_works_confirm": "0x000208dd",
+ "sm_le_device_key": "0x00020c19",
+ "sm_passkey_input": "0x00020caf",
+ "sm_private_random_address_generation_get": "0x0002105d",
+ "sm_private_random_address_generation_get_mode": "0x00021065",
+ "sm_private_random_address_generation_set_mode": "0x00021071",
+ "sm_private_random_address_generation_set_update_period": "0x00021099",
+ "sm_register_oob_data_callback": "0x000211d5",
+ "sm_request_pairing": "0x000211e1",
+ "sm_send_security_request": "0x00021bff",
+ "sm_set_accepted_stk_generation_methods": "0x00021c25",
+ "sm_set_authentication_requirements": "0x00021c31",
+ "sm_set_encryption_key_size_range": "0x00021c3d",
+ "sscanf_bd_addr": "0x0002200d",
+ "sysSetPublicDeviceAddr": "0x00022385",
+ "uuid128_to_str": "0x00022af9",
+ "uuid_add_bluetooth_prefix": "0x00022b51",
+ "uuid_has_bluetooth_prefix": "0x00022b71"
}
\ No newline at end of file
diff --git a/bundles/noos_extension/ING9188xx/meta.json b/bundles/noos_extension/ING9188xx/meta.json
index 2e65f5108..2d733edef 100644
--- a/bundles/noos_extension/ING9188xx/meta.json
+++ b/bundles/noos_extension/ING9188xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 5516
+ "size": 4508
},
"rom": {
"base": 16384,
- "size": 132896
+ "size": 132608
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/noos_extension/ING9188xx/platform.bin b/bundles/noos_extension/ING9188xx/platform.bin
index 50be36d3f..eed00fc7c 100644
Binary files a/bundles/noos_extension/ING9188xx/platform.bin and b/bundles/noos_extension/ING9188xx/platform.bin differ
diff --git a/bundles/noos_extension/inc/att_db.h b/bundles/noos_extension/inc/att_db.h
index 70ec3efa3..3e656c769 100644
--- a/bundles/noos_extension/inc/att_db.h
+++ b/bundles/noos_extension/inc/att_db.h
@@ -3,7 +3,7 @@
* @brief API for ATT server
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -28,10 +28,10 @@ extern "C" {
* @ingroup bluetooth_host
* @{
*/
-// custom BTstack error codes
+// custom btstack error codes
#define ATT_ERROR_HCI_DISCONNECT_RECEIVED 0x1f
-// custom BTstack ATT error coders
+// custom btstack ATT error coders
#define ATT_ERROR_DATA_MISMATCH 0x7e
#define ATT_ERROR_TIMEOUT 0x7F
diff --git a/bundles/noos_extension/inc/att_dispatch.h b/bundles/noos_extension/inc/att_dispatch.h
index 60f62817b..9dd2608d1 100644
--- a/bundles/noos_extension/inc/att_dispatch.h
+++ b/bundles/noos_extension/inc/att_dispatch.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_extension/inc/btstack_defines.h b/bundles/noos_extension/inc/btstack_defines.h
index c2ab8d11a..a8d08006c 100644
--- a/bundles/noos_extension/inc/btstack_defines.h
+++ b/bundles/noos_extension/inc/btstack_defines.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -53,10 +53,15 @@
#define L2CAP_SERVICE_ALREADY_REGISTERED 0x69
#define L2CAP_DATA_LEN_EXCEEDS_REMOTE_MTU 0x6A
+#define L2CAP_SERVICE_NOT_REGISTERED 0x6B
+#define L2CAP_CONNECTION_INSUFFICIENT_SECURITY 0x6C
-#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS 0x90
+#define ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS 0x90
#define ATT_HANDLE_VALUE_INDICATION_TIMEOUT 0x91
+// compatibility for typo
+#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS
+
#define GATT_CLIENT_NOT_CONNECTED 0x93
#define GATT_CLIENT_BUSY 0x94
#define GATT_CLIENT_IN_WRONG_STATE 0x95
@@ -88,22 +93,14 @@
// L2CAP EVENTS
/**
- * @format 1BH222222
- * @param status
- * @param address
- * @param handle
- * @param psm
- * @param local_cid
- * @param remote_cid
- * @param local_mtu
- * @param remote_mtu
- * @param flush_timeout
+ * @brief an L2CAP channel is opened
+ * @ref `l2cap_event_channel_opened_t`
*/
#define L2CAP_EVENT_CHANNEL_OPENED 0x70
/*
- * @format 2
- * @param local_cid
+ * @brief an L2CAP channel is closed
+ * @ref `l2cap_event_channel_closed_t`
*/
#define L2CAP_EVENT_CHANNEL_CLOSED 0x71
@@ -153,6 +150,24 @@
*/
#define L2CAP_EVENT_COMMAND_REJECT_RESPONSE 0x79
+/**
+ * @brief LE credit channel : an SDU (complete package) event
+ *
+ * Use `decode_l2cap_event(l2cap_event_complete_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_complete_sdu_t`
+*/
+#define L2CAP_EVENT_COMPLETED_SDU_PACKET 0x7A
+
+/**
+ * @brief LE credit channel : a fragment (K-frame) of an SDU event
+ *
+ * Use `decode_l2cap_event(l2cap_event_fragment_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_fragment_sdu_t`
+*/
+#define L2CAP_EVENT_FRAGMENT_SDU_PACKET 0x7B
+
/**
* @format H1
* @param handle
diff --git a/bundles/noos_extension/inc/btstack_event.h b/bundles/noos_extension/inc/btstack_event.h
index 4c488f787..294fb813b 100644
--- a/bundles/noos_extension/inc/btstack_event.h
+++ b/bundles/noos_extension/inc/btstack_event.h
@@ -4,7 +4,7 @@
*
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -783,6 +783,43 @@ static __INLINE uint8_t gap_event_dedicated_bonding_completed_get_status(const u
return *decode_event_offset(event, uint8_t, 2);
}
+typedef struct l2cap_event_complete_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ const uint8_t *payload; // payload of this SDU
+} l2cap_event_complete_sdu_t;
+
+typedef struct l2cap_event_channel_opened
+{
+ uint8_t status;
+ bd_addr_t peer_addr;
+ hci_con_handle_t conn_handle;
+ uint16_t psm;
+ uint16_t local_cid;
+ uint16_t peer_cid;
+ uint16_t local_mtu;
+ uint16_t peer_mtu;
+ uint16_t local_mps;
+ uint16_t peer_mps;
+ uint16_t flush_timeout;
+ uint16_t local_credits;
+ uint16_t peer_credits;
+} l2cap_event_channel_opened_t;
+
+typedef struct l2cap_event_channel_closed
+{
+ uint16_t local_cid;
+ uint8_t reason;
+} l2cap_event_channel_closed_t;
+
+typedef struct l2cap_event_fragment_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ uint16_t offset; // offset of this fragment within a SDU
+ uint16_t length; // length of this fragment within a SDU
+ const uint8_t *payload; // payload of this fragment
+} l2cap_event_fragment_sdu_t;
+
typedef struct event_command_complete_return_param_read_rssi
{
uint8_t status;
@@ -1226,7 +1263,9 @@ typedef enum btstack_l2cap_msg_def
#define decode_hci_event_disconn_complete(packet) decode_event_offset(packet, event_disconn_complete_t, 2)
#define decode_hci_event_vendor_ccm_complete(packet) decode_event_offset(packet, event_vendor_ccm_complete_t, 5)
-#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+
+#define decode_l2cap_event(packet, T) decode_event_offset(packet, T, 2)
/* API_END */
diff --git a/bundles/noos_extension/inc/btstack_util.h b/bundles/noos_extension/inc/btstack_util.h
index 3f7232fc4..5e6d0d7ef 100644
--- a/bundles/noos_extension/inc/btstack_util.h
+++ b/bundles/noos_extension/inc/btstack_util.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_extension/inc/gap.h b/bundles/noos_extension/inc/gap.h
index bf5d8a140..413b9423a 100644
--- a/bundles/noos_extension/inc/gap.h
+++ b/bundles/noos_extension/inc/gap.h
@@ -1380,7 +1380,7 @@ void hci_add_event_handler(btstack_packet_callback_registration_t * callback_han
void hci_register_acl_packet_handler(btstack_packet_handler_t handler);
/**
- * @brief Requests the change of BTstack power mode.
+ * @brief Requests the change of btstack power mode.
*
* @param mode 0:HCI_POWER_OFF ,1:HCI_POWER_ON , 2:HCI_POWER_SLEEP
*
diff --git a/bundles/noos_extension/inc/gatt_client.h b/bundles/noos_extension/inc/gatt_client.h
index 910cdf251..9a036f6f6 100644
--- a/bundles/noos_extension/inc/gatt_client.h
+++ b/bundles/noos_extension/inc/gatt_client.h
@@ -3,7 +3,7 @@
* Copyright Message
*
* INGCHIPS confidential and proprietary.
- * COPYRIGHT (c) 2018 by INGCHIPS
+ * COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_extension/inc/l2cap.h b/bundles/noos_extension/inc/l2cap.h
index f464836dc..52b0efb79 100644
--- a/bundles/noos_extension/inc/l2cap.h
+++ b/bundles/noos_extension/inc/l2cap.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -22,27 +22,6 @@
extern "C" {
#endif
-void l2cap_register_fixed_channel(btstack_packet_handler_t packet_handler, uint16_t channel_id);
-int l2cap_can_send_fixed_channel_packet_now(hci_con_handle_t con_handle, uint16_t channel_id);
-void l2cap_request_can_send_fix_channel_now_event(hci_con_handle_t con_handle, uint16_t channel_id);
-int l2cap_send_connectionless(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len);
-int l2cap_send_connectionless3(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len,
- const uint8_t *data3, uint16_t data3_len);
-
-int l2cap_le_send_flow_control_credit(hci_con_handle_t con_handle,uint8_t id ,uint16_t cid,uint16_t credits);
-
-// PTS Testing
-int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t len);
-
-// Used by RFCOMM - similar to l2cap_can-send_packet_now but does not check if outgoing buffer is reserved
-// int l2cap_can_send_prepared_packet_now(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
-
-
/* API_START */
/**
@@ -51,69 +30,152 @@ int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t
void l2cap_init(void);
/**
- * @brief Registers packet handler for LE Connection Parameter Update events
+ * @brief add event handler with packet type `L2CAP_EVENT_PACKET`
+ *
+ * Note: Event code includes:
+ * * L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE
+ *
+ * @param[in] callback_handler the handler to be chained together
*/
-void l2cap_register_packet_handler(btstack_packet_handler_t handler);
+void l2cap_add_event_handler(btstack_packet_callback_registration_t *callback_handler);
/**
- * @brief Get max MTU for Classic connections based on btstack configuration
+ * @brief Registers packet handler for LE Connection Parameter Update related events
+ *
+ * Note: Packet type `HCI_EVENT_PACKET`. Event code includes:
+ * * L2CAP_EVENT_COMMAND_REJECT_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST
+ *
+ * @param[in] handler the callback function
*/
-uint16_t l2cap_max_mtu(void);
+void l2cap_register_packet_handler(btstack_packet_handler_t handler);
/**
* @brief Get max MTU for LE connections based on btstack configuration
+ *
+ * @return max LE MTU
*/
uint16_t l2cap_max_le_mtu(void);
-/**
- * @brief Creates L2CAP channel to the PSM of a remote device with baseband address. A new baseband connection will be initiated if necessary.
- * @param packet_handler
- * @param address
- * @param psm
- * @param mtu
- * @param local_cid
- * @param status
- */
-uint8_t l2cap_create_channel(btstack_packet_handler_t packet_handler, bd_addr_t address, uint16_t psm, uint16_t mtu, uint16_t * out_local_cid);
+#define l2cap_max_mtu l2cap_max_le_mtu
/**
* @brief Disconnects L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] reason reason (ignored)
*/
void l2cap_disconnect(uint16_t local_cid, uint8_t reason);
/**
* @brief Queries the maximal transfer unit (MTU) for L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @return peer MTU
*/
-uint16_t l2cap_get_remote_mtu_for_local_cid(uint16_t local_cid);
+uint16_t l2cap_get_peer_mtu_for_local_cid(uint16_t local_cid);
/**
- * @brief Sends L2CAP data packet to the channel with given identifier.
+ * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ *
+ * Note: Before creating a connection with a SPSM, the service must be registered.
+ *
+ * @param[in] packet_handler packet handler
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] mtu MTU (23..max, max = l2cap_max_le_mtu())
+ * when mtu = 0, max LE MTU is used
+ * @param[in] security_level security level
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_ALREADY_REGISTERED
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-int l2cap_send(uint16_t local_cid, uint8_t *data, uint16_t len);
+uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu,
+ gap_security_level_t security_level);
/**
- * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ * @brief Unregisters L2CAP service with given PSM.
+ *
+ * @param[in] psm SPSM (LE_PSM)
*/
-uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu, gap_security_level_t security_level);
+void l2cap_unregister_service(uint16_t psm);
/**
- * @brief Unregisters L2CAP service with given PSM. On embedded systems, use NULL for connection parameter.
+ * @brief Create a credit based connection for SPSM
+ *
+ *
+ * @param[in] credits initial credits assigned to peer
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] handle connection handle
+ * @param[out] local_cid identifier of the newly create channel
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_NOT_REGISTERED
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ * * L2CAP_CONNECTION_INSUFFICIENT_SECURITY
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-void l2cap_unregister_service(uint16_t psm);
+uint8_t l2cap_create_le_credit_based_connection_request(uint16_t credits, uint16_t psm, uint16_t handle, uint16_t *local_cid);
/**
- * @brief Accepts incoming L2CAP connection.
+ * @brief Get credits information of a credit based connection
+ *
+ * `local_credits`: how many K-frames the peer is capable to receive,
+ * i.e. how many K-frames we (the _local_) can transmit;
+ *
+ * `peer_credits`: `local_credits` in the peer.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] peer_credits peer credits at present
+ * @param[in] local_credits local credits at present
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_accept_connection(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
+uint8_t l2cap_get_le_credit_based_connection_credits(uint16_t local_cid,
+ uint32_t *peer_credits, uint32_t *local_credits);
+/**
+ * @brief send an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data data of the SDU
+ * @param[in] len total length of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * (see `l2cap_credit_based_send_continue`)
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+int l2cap_credit_based_send(uint16_t local_cid, const uint8_t *data, uint16_t len);
/**
- * @brief Deny incoming L2CAP connection.
+ * @brief continue sending an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data remaining data of the SDU that has not been sent
+ * @param[in] len length of remaining data of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_decline_connection(uint16_t local_cid, uint8_t reason);
-// WARNING: ^^^ this API is not available in this release
+int l2cap_credit_based_send_continue(uint16_t local_cid, const uint8_t *data, uint16_t len);
+/**
+ * @brief add more credits to the peer of the specified channel, or rather notify
+ * the peer that _local_ are capable of receiving more K-frames.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] credits credits to be added to the peer
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+uint8_t l2cap_le_send_flow_control_credit(uint16_t local_cid, uint16_t credits);
/**
* @brief Check if outgoing buffer is available and that there's space on the Bluetooth module
@@ -124,42 +186,45 @@ int l2cap_can_send_packet_now(uint16_t local_cid);
* @brief Request emission of L2CAP_EVENT_CAN_SEND_NOW as soon as possible
* @note L2CAP_EVENT_CAN_SEND_NOW might be emitted during call to this function
* so packet handler should be ready to handle it
- * @param local_cid
+ * @param[in] local_cid local channel identifier
*/
void l2cap_request_can_send_now_event(uint16_t local_cid);
/**
* @brief Request an update of the connection parameter for a given LE connection
- * @param handle
- * @param conn_interval_min (unit: 1.25ms)
- * @param conn_interval_max (unit: 1.25ms)
- * @param conn_latency
- * @param supervision_timeout (unit: 10ms)
- * @returns 0 if ok
- */
-int l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
+ *
+ * Note: only Peripheral role can call this API.
+ *
+ * @param[in] handle connection handle
+ * @param[in] conn_interval_min (unit: 1.25ms)
+ * @param[in] conn_interval_max (unit: 1.25ms)
+ * @param[in] conn_latency slave latency
+ * @param[in] supervision_timeout (unit: 10ms)
+ * @returns 0 if successful else error occurs:
+ * * ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER
+ */
+uint8_t l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
uint16_t conn_interval_max, uint16_t conn_latency, uint16_t supervision_timeout);
-#ifdef CONNECTION_PARAMETER_DYNAMICALLY_ADJUST
-uint8_t l2cap_update_MTU_on_LL_link(l2cap_channel_t * channel);
-#endif
+/** @brief for PTS Testing
+ */
+uint8_t l2cap_send_echo_request(hci_con_handle_t con_handle, const uint8_t *data, uint16_t len);
/* API_END */
#ifdef __cplusplus
}
#endif
-/*to define the error result of the connection response*/
-#ifdef L2CAP_CREDIT_BASED_FLOW_CONTROL_MODE
-#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
-#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
-#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
-#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
-#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
-#endif
+
+/* Error result of the connection response */
+#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
+#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
+#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
+#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
+#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
#endif // __L2CAP_H
diff --git a/bundles/noos_extension/inc/le_device_db.h b/bundles/noos_extension/inc/le_device_db.h
index 03f8e550f..b81d04f5a 100644
--- a/bundles/noos_extension/inc/le_device_db.h
+++ b/bundles/noos_extension/inc/le_device_db.h
@@ -41,15 +41,9 @@ typedef struct le_device_memory_db {
#pragma pack (pop)
-typedef struct white_list
-{
- uint8_t addr_type;
- bd_addr_t addr;
-}white_list_t;
-
/**
- LE Device DB for pure LE Peripherals is only required for signed writes
+ LE Device DB is only required for signed writes
Per bonded device, it can store
- it stores the Identity Resolving Key (IRK) and its address to resolve private addresses
@@ -60,7 +54,6 @@ typedef struct white_list
*/
-
// LE Device db interface
/* API_START */
diff --git a/bundles/noos_extension/inc/ll_api.h b/bundles/noos_extension/inc/ll_api.h
index 79abe0c01..e62ab33dc 100644
--- a/bundles/noos_extension/inc/ll_api.h
+++ b/bundles/noos_extension/inc/ll_api.h
@@ -243,14 +243,15 @@ int ll_raw_packet_set_param(struct ll_raw_packet *packet,
*
* @param[in] packet the packet object
* @param[in] header header sending before packet length
- * @param[in] freq_mhz freqency in MHz
+ * @param[in] freq_mhz frequency in MHz
* When 0: use the channel specified in `ll_raw_packet_set_param`)
* @return 0 if successful else error code
*
*
* Note: Only a subset of uint8_t are supported in `header`;
* When bare mode is used, CRC & whitening are all handled by apps;
- * When bare mode is used, `crc_init` is ignored.
+ * When bare mode is used, `crc_init` is ignored;
+ * When `freq_mhz` is not zero, BLE activities near this raw packets might be affected.
****************************************************************************************
*/
int ll_raw_packet_set_bare_mode(struct ll_raw_packet *packet,
diff --git a/bundles/noos_extension/inc/sm.h b/bundles/noos_extension/inc/sm.h
index 0213e5e3f..874e028a5 100644
--- a/bundles/noos_extension/inc/sm.h
+++ b/bundles/noos_extension/inc/sm.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_mass_conn/ING9168xx/apis.json b/bundles/noos_mass_conn/ING9168xx/apis.json
index 33b601edf..f93f10cfc 100644
--- a/bundles/noos_mass_conn/ING9168xx/apis.json
+++ b/bundles/noos_mass_conn/ING9168xx/apis.json
@@ -1,251 +1,248 @@
{
- "att_dispatch_client_can_send_now": "0x02004541",
- "att_dispatch_client_request_can_send_now_event": "0x02004547",
- "att_dispatch_register_client": "0x0200454d",
- "att_dispatch_register_server": "0x02004561",
- "att_dispatch_server_can_send_now": "0x02004575",
- "att_dispatch_server_request_can_send_now_event": "0x0200457b",
- "att_emit_general_event": "0x0200462d",
- "att_server_can_send_packet_now": "0x02004d49",
- "att_server_deferred_read_response": "0x02004d4d",
- "att_server_get_mtu": "0x02004d65",
- "att_server_indicate": "0x02004ddd",
- "att_server_init": "0x02004e61",
- "att_server_notify": "0x02004e9d",
- "att_server_register_packet_handler": "0x02004fb5",
- "att_server_request_can_send_now_event": "0x02004fc1",
- "att_set_db": "0x02004fdd",
- "att_set_read_callback": "0x02004ff1",
- "att_set_write_callback": "0x02004ffd",
- "bd_addr_cmp": "0x020051e5",
- "bd_addr_copy": "0x020051eb",
- "bd_addr_to_str": "0x020051f5",
- "big_endian_read_16": "0x0200522d",
- "big_endian_read_32": "0x02005235",
- "big_endian_store_16": "0x02005249",
- "big_endian_store_32": "0x02005255",
- "btstack_config": "0x020053b5",
- "btstack_memory_pool_create": "0x02005503",
- "btstack_memory_pool_free": "0x0200552d",
- "btstack_memory_pool_get": "0x0200558d",
- "btstack_push_user_msg": "0x020055d5",
- "btstack_push_user_runnable": "0x020055e1",
- "char_for_nibble": "0x02005867",
- "gap_add_dev_to_periodic_list": "0x020061e1",
- "gap_add_whitelist": "0x020061f9",
- "gap_aes_encrypt": "0x0200620d",
- "gap_clear_white_lists": "0x02006251",
- "gap_clr_adv_set": "0x02006261",
- "gap_clr_periodic_adv_list": "0x02006271",
- "gap_create_connection_cancel": "0x02006281",
- "gap_default_periodic_adv_sync_transfer_param": "0x02006291",
- "gap_disconnect": "0x020062a9",
- "gap_disconnect_all": "0x020062d5",
- "gap_ext_create_connection": "0x02006315",
- "gap_get_connection_parameter_range": "0x02006405",
- "gap_le_read_channel_map": "0x02006441",
- "gap_periodic_adv_create_sync": "0x020064b5",
- "gap_periodic_adv_create_sync_cancel": "0x020064d9",
- "gap_periodic_adv_set_info_transfer": "0x020064e9",
- "gap_periodic_adv_sync_transfer": "0x02006501",
- "gap_periodic_adv_sync_transfer_param": "0x02006519",
- "gap_periodic_adv_term_sync": "0x02006535",
- "gap_read_antenna_info": "0x020065c9",
- "gap_read_periodic_adv_list_size": "0x020065d9",
- "gap_read_phy": "0x020065e9",
- "gap_read_remote_used_features": "0x020065fd",
- "gap_read_remote_version": "0x02006611",
- "gap_read_rssi": "0x02006625",
- "gap_remove_whitelist": "0x02006639",
- "gap_rmv_adv_set": "0x020066bd",
- "gap_rmv_dev_from_periodic_list": "0x020066d1",
- "gap_rx_test_v2": "0x020066e9",
- "gap_rx_test_v3": "0x02006701",
- "gap_set_adv_set_random_addr": "0x02006751",
- "gap_set_connection_cte_request_enable": "0x0200679d",
- "gap_set_connection_cte_response_enable": "0x020067b9",
- "gap_set_connection_cte_rx_param": "0x020067cd",
- "gap_set_connection_cte_tx_param": "0x02006829",
- "gap_set_connection_parameter_range": "0x0200687d",
- "gap_set_connectionless_cte_tx_enable": "0x02006895",
- "gap_set_connectionless_cte_tx_param": "0x020068a9",
- "gap_set_connectionless_iq_sampling_enable": "0x02006909",
- "gap_set_data_length": "0x0200696d",
- "gap_set_def_phy": "0x02006989",
- "gap_set_ext_adv_data": "0x020069a1",
- "gap_set_ext_adv_enable": "0x020069b9",
- "gap_set_ext_adv_para": "0x02006a35",
- "gap_set_ext_scan_enable": "0x02006b0d",
- "gap_set_ext_scan_para": "0x02006b25",
- "gap_set_ext_scan_response_data": "0x02006bcd",
- "gap_set_host_channel_classification": "0x02006be5",
- "gap_set_periodic_adv_data": "0x02006bf9",
- "gap_set_periodic_adv_enable": "0x02006c6d",
- "gap_set_periodic_adv_para": "0x02006c81",
- "gap_set_periodic_adv_rx_enable": "0x02006c99",
- "gap_set_phy": "0x02006cad",
- "gap_set_random_device_address": "0x02006cc9",
- "gap_start_ccm": "0x02006cf9",
- "gap_test_end": "0x02006d2d",
- "gap_tx_test_v2": "0x02006d3d",
- "gap_tx_test_v4": "0x02006d55",
- "gap_update_connection_parameters": "0x02006d7d",
- "gap_vendor_tx_continuous_wave": "0x02006dc1",
- "gatt_client_cancel_write": "0x020072e9",
- "gatt_client_discover_characteristic_descriptors": "0x0200730f",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0200734f",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200739f",
- "gatt_client_discover_characteristics_for_service": "0x020073ef",
- "gatt_client_discover_primary_services": "0x02007425",
- "gatt_client_discover_primary_services_by_uuid128": "0x02007457",
- "gatt_client_discover_primary_services_by_uuid16": "0x0200749b",
- "gatt_client_execute_write": "0x020074d9",
- "gatt_client_find_included_services_for_service": "0x020074ff",
- "gatt_client_get_mtu": "0x0200752d",
- "gatt_client_is_ready": "0x020075f1",
- "gatt_client_listen_for_characteristic_value_updates": "0x02007607",
- "gatt_client_prepare_write": "0x02007629",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007665",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200768f",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007695",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x020076c3",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020076c9",
- "gatt_client_read_multiple_characteristic_values": "0x020076f7",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007727",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007755",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x020077a1",
- "gatt_client_register_handler": "0x020077ed",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x020077f9",
- "gatt_client_signed_write_without_response": "0x02007c2d",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007cf1",
- "gatt_client_write_client_characteristic_configuration": "0x02007d2b",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007d7d",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007d8d",
- "gatt_client_write_long_value_of_characteristic": "0x02007dc9",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007dd9",
- "gatt_client_write_value_of_characteristic": "0x02007e15",
- "gatt_client_write_value_of_characteristic_without_response": "0x02007e4b",
- "hci_add_event_handler": "0x02009441",
- "hci_power_control": "0x02009c41",
- "hci_register_acl_packet_handler": "0x02009df5",
- "kv_commit": "0x0200a349",
- "kv_get": "0x0200a3a1",
- "kv_init": "0x0200a3b9",
- "kv_put": "0x0200a421",
- "kv_remove": "0x0200a499",
- "kv_remove_all": "0x0200a4d5",
- "kv_value_modified": "0x0200a519",
- "kv_visit": "0x0200a51d",
- "l2cap_can_send_fixed_channel_packet_now": "0x0200a5dd",
- "l2cap_can_send_packet_now": "0x0200a5e1",
- "l2cap_create_channel": "0x0200a799",
- "l2cap_disconnect": "0x0200a8d5",
- "l2cap_get_remote_mtu_for_local_cid": "0x0200aa99",
- "l2cap_init": "0x0200aefd",
- "l2cap_le_send_flow_control_credit": "0x0200af3d",
- "l2cap_max_le_mtu": "0x0200b1fd",
- "l2cap_max_mtu": "0x0200b201",
- "l2cap_register_fixed_channel": "0x0200b30d",
- "l2cap_register_packet_handler": "0x0200b329",
- "l2cap_register_service": "0x0200b335",
- "l2cap_request_can_send_fix_channel_now_event": "0x0200b419",
- "l2cap_request_can_send_now_event": "0x0200b43d",
- "l2cap_request_connection_parameter_update": "0x0200b457",
- "l2cap_send": "0x0200b805",
- "l2cap_send_connectionless": "0x0200b87d",
- "l2cap_send_connectionless3": "0x0200b90d",
- "l2cap_send_echo_request": "0x0200b9a5",
- "l2cap_unregister_service": "0x0200ba81",
- "le_device_db_add": "0x0200bad9",
- "le_device_db_find": "0x0200bbad",
- "le_device_db_from_key": "0x0200bbd9",
- "le_device_db_iter_cur": "0x0200bbe1",
- "le_device_db_iter_cur_key": "0x0200bbe5",
- "le_device_db_iter_init": "0x0200bbe9",
- "le_device_db_iter_next": "0x0200bbf1",
- "le_device_db_remove_key": "0x0200bc17",
- "ll_adjust_conn_peer_tx_power": "0x0200bc45",
- "ll_free": "0x0200bc71",
- "ll_hint_on_ce_len": "0x0200bc7d",
- "ll_legacy_adv_set_interval": "0x0200bcb5",
- "ll_malloc": "0x0200bcc5",
- "ll_scan_set_fixed_channel": "0x0200be35",
- "ll_set_adv_access_address": "0x0200bf49",
- "ll_set_adv_coded_scheme": "0x0200bf55",
- "ll_set_conn_coded_scheme": "0x0200bf8d",
- "ll_set_conn_latency": "0x0200bfb9",
- "ll_set_conn_tx_power": "0x0200bfe9",
- "ll_set_def_antenna": "0x0200c025",
- "ll_set_initiating_coded_scheme": "0x0200c045",
- "ll_set_max_conn_number": "0x0200c051",
- "ll_set_tx_power_range": "0x0200c0ed",
- "nibble_for_char": "0x0201e805",
- "platform_32k_rc_auto_tune": "0x0201e89d",
- "platform_32k_rc_tune": "0x0201e8e9",
- "platform_calibrate_32k": "0x0201e905",
- "platform_config": "0x0201e909",
- "platform_controller_run": "0x0201e9d5",
- "platform_get_gen_os_driver": "0x0201ea0d",
- "platform_get_task_handle": "0x0201ea19",
- "platform_get_us_time": "0x0201ea31",
- "platform_get_version": "0x0201ea35",
- "platform_hrng": "0x0201ea3d",
- "platform_init_controller": "0x0201ea45",
- "platform_os_idle_resumed_hook": "0x0201ea61",
- "platform_patch_rf_init_data": "0x0201ea65",
- "platform_post_sleep_processing": "0x0201ea71",
- "platform_pre_sleep_processing": "0x0201ea77",
- "platform_pre_suppress_ticks_and_sleep_processing": "0x0201ea7d",
- "platform_printf": "0x0201ea81",
- "platform_raise_assertion": "0x0201ea95",
- "platform_rand": "0x0201eaa9",
- "platform_read_info": "0x0201eaad",
- "platform_read_persistent_reg": "0x0201eadd",
- "platform_reset": "0x0201eae9",
- "platform_set_evt_callback": "0x0201eaf1",
- "platform_set_irq_callback": "0x0201eb05",
- "platform_set_rf_clk_source": "0x0201eb3d",
- "platform_set_rf_init_data": "0x0201eb49",
- "platform_set_rf_power_mapping": "0x0201eb55",
- "platform_set_timer": "0x0201eb61",
- "platform_shutdown": "0x0201eb65",
- "platform_switch_app": "0x0201eb69",
- "platform_trace_raw": "0x0201eb85",
- "platform_write_persistent_reg": "0x0201eb9d",
- "printf_hexdump": "0x0201ebb1",
- "reverse_128": "0x0201ef25",
- "reverse_24": "0x0201ef2b",
- "reverse_48": "0x0201ef31",
- "reverse_56": "0x0201ef37",
- "reverse_64": "0x0201ef3d",
- "reverse_bd_addr": "0x0201ef43",
- "reverse_bytes": "0x0201ef49",
- "sm_add_event_handler": "0x0201f265",
- "sm_address_resolution_lookup": "0x0201f3bd",
- "sm_authenticated": "0x0201f715",
- "sm_authorization_decline": "0x0201f723",
- "sm_authorization_grant": "0x0201f743",
- "sm_authorization_state": "0x0201f763",
- "sm_bonding_decline": "0x0201f77d",
- "sm_config": "0x0201fb95",
- "sm_config_conn": "0x0201fbad",
- "sm_encryption_key_size": "0x0201fd63",
- "sm_just_works_confirm": "0x0202029d",
- "sm_le_device_key": "0x020205d9",
- "sm_passkey_input": "0x0202066f",
- "sm_private_random_address_generation_get": "0x02020a1d",
- "sm_private_random_address_generation_get_mode": "0x02020a25",
- "sm_private_random_address_generation_set_mode": "0x02020a31",
- "sm_private_random_address_generation_set_update_period": "0x02020a59",
- "sm_register_oob_data_callback": "0x02020b95",
- "sm_request_pairing": "0x02020ba1",
- "sm_send_security_request": "0x020215c7",
- "sm_set_accepted_stk_generation_methods": "0x020215ed",
- "sm_set_authentication_requirements": "0x020215f9",
- "sm_set_encryption_key_size_range": "0x02021605",
- "sscanf_bd_addr": "0x02021965",
- "sysSetPublicDeviceAddr": "0x02021d2d",
- "uuid128_to_str": "0x02022479",
- "uuid_add_bluetooth_prefix": "0x020224d1",
- "uuid_has_bluetooth_prefix": "0x020224f1"
+ "att_dispatch_client_can_send_now": "0x02004285",
+ "att_dispatch_client_request_can_send_now_event": "0x0200428b",
+ "att_dispatch_register_client": "0x02004291",
+ "att_dispatch_register_server": "0x020042a5",
+ "att_dispatch_server_can_send_now": "0x020042b9",
+ "att_dispatch_server_request_can_send_now_event": "0x020042bf",
+ "att_emit_general_event": "0x02004371",
+ "att_server_can_send_packet_now": "0x02004a8d",
+ "att_server_deferred_read_response": "0x02004a91",
+ "att_server_get_mtu": "0x02004aa9",
+ "att_server_indicate": "0x02004b21",
+ "att_server_init": "0x02004ba5",
+ "att_server_notify": "0x02004be1",
+ "att_server_register_packet_handler": "0x02004cf9",
+ "att_server_request_can_send_now_event": "0x02004d05",
+ "att_set_db": "0x02004d21",
+ "att_set_read_callback": "0x02004d35",
+ "att_set_write_callback": "0x02004d41",
+ "bd_addr_cmp": "0x02004f29",
+ "bd_addr_copy": "0x02004f2f",
+ "bd_addr_to_str": "0x02004f39",
+ "big_endian_read_16": "0x02004f71",
+ "big_endian_read_32": "0x02004f79",
+ "big_endian_store_16": "0x02004f8d",
+ "big_endian_store_32": "0x02004f99",
+ "btstack_config": "0x020050f9",
+ "btstack_memory_pool_create": "0x02005247",
+ "btstack_memory_pool_free": "0x02005271",
+ "btstack_memory_pool_get": "0x020052d1",
+ "btstack_push_user_msg": "0x02005319",
+ "btstack_push_user_runnable": "0x02005325",
+ "char_for_nibble": "0x020055ab",
+ "gap_add_dev_to_periodic_list": "0x02005f4d",
+ "gap_add_whitelist": "0x02005f65",
+ "gap_aes_encrypt": "0x02005f79",
+ "gap_clear_white_lists": "0x02005fbd",
+ "gap_clr_adv_set": "0x02005fcd",
+ "gap_clr_periodic_adv_list": "0x02005fdd",
+ "gap_create_connection_cancel": "0x02005fed",
+ "gap_default_periodic_adv_sync_transfer_param": "0x02005ffd",
+ "gap_disconnect": "0x02006015",
+ "gap_disconnect_all": "0x02006041",
+ "gap_ext_create_connection": "0x02006081",
+ "gap_get_connection_parameter_range": "0x02006171",
+ "gap_le_read_channel_map": "0x020061ad",
+ "gap_periodic_adv_create_sync": "0x02006221",
+ "gap_periodic_adv_create_sync_cancel": "0x02006245",
+ "gap_periodic_adv_set_info_transfer": "0x02006255",
+ "gap_periodic_adv_sync_transfer": "0x0200626d",
+ "gap_periodic_adv_sync_transfer_param": "0x02006285",
+ "gap_periodic_adv_term_sync": "0x020062a1",
+ "gap_read_antenna_info": "0x02006335",
+ "gap_read_periodic_adv_list_size": "0x02006345",
+ "gap_read_phy": "0x02006355",
+ "gap_read_remote_used_features": "0x02006369",
+ "gap_read_remote_version": "0x0200637d",
+ "gap_read_rssi": "0x02006391",
+ "gap_remove_whitelist": "0x020063a5",
+ "gap_rmv_adv_set": "0x02006429",
+ "gap_rmv_dev_from_periodic_list": "0x0200643d",
+ "gap_rx_test_v2": "0x02006455",
+ "gap_rx_test_v3": "0x0200646d",
+ "gap_set_adv_set_random_addr": "0x020064bd",
+ "gap_set_connection_cte_request_enable": "0x02006509",
+ "gap_set_connection_cte_response_enable": "0x02006525",
+ "gap_set_connection_cte_rx_param": "0x02006539",
+ "gap_set_connection_cte_tx_param": "0x02006595",
+ "gap_set_connection_parameter_range": "0x020065e9",
+ "gap_set_connectionless_cte_tx_enable": "0x02006601",
+ "gap_set_connectionless_cte_tx_param": "0x02006615",
+ "gap_set_connectionless_iq_sampling_enable": "0x02006675",
+ "gap_set_data_length": "0x020066d9",
+ "gap_set_def_phy": "0x020066f5",
+ "gap_set_ext_adv_data": "0x0200670d",
+ "gap_set_ext_adv_enable": "0x02006725",
+ "gap_set_ext_adv_para": "0x020067a1",
+ "gap_set_ext_scan_enable": "0x02006879",
+ "gap_set_ext_scan_para": "0x02006891",
+ "gap_set_ext_scan_response_data": "0x02006939",
+ "gap_set_host_channel_classification": "0x02006951",
+ "gap_set_periodic_adv_data": "0x02006965",
+ "gap_set_periodic_adv_enable": "0x020069d9",
+ "gap_set_periodic_adv_para": "0x020069ed",
+ "gap_set_periodic_adv_rx_enable": "0x02006a05",
+ "gap_set_phy": "0x02006a19",
+ "gap_set_random_device_address": "0x02006a35",
+ "gap_start_ccm": "0x02006a65",
+ "gap_test_end": "0x02006a99",
+ "gap_tx_test_v2": "0x02006aa9",
+ "gap_tx_test_v4": "0x02006ac1",
+ "gap_update_connection_parameters": "0x02006ae9",
+ "gap_vendor_tx_continuous_wave": "0x02006b2d",
+ "gatt_client_cancel_write": "0x02007055",
+ "gatt_client_discover_characteristic_descriptors": "0x0200707b",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020070bb",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200710b",
+ "gatt_client_discover_characteristics_for_service": "0x0200715b",
+ "gatt_client_discover_primary_services": "0x02007191",
+ "gatt_client_discover_primary_services_by_uuid128": "0x020071c3",
+ "gatt_client_discover_primary_services_by_uuid16": "0x02007207",
+ "gatt_client_execute_write": "0x02007245",
+ "gatt_client_find_included_services_for_service": "0x0200726b",
+ "gatt_client_get_mtu": "0x02007299",
+ "gatt_client_is_ready": "0x0200735d",
+ "gatt_client_listen_for_characteristic_value_updates": "0x02007373",
+ "gatt_client_prepare_write": "0x02007395",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020073d1",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020073fb",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007401",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0200742f",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02007435",
+ "gatt_client_read_multiple_characteristic_values": "0x02007463",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007493",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x020074c1",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x0200750d",
+ "gatt_client_register_handler": "0x02007559",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x02007565",
+ "gatt_client_signed_write_without_response": "0x02007999",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007a5d",
+ "gatt_client_write_client_characteristic_configuration": "0x02007a97",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007ae9",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007af9",
+ "gatt_client_write_long_value_of_characteristic": "0x02007b35",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007b45",
+ "gatt_client_write_value_of_characteristic": "0x02007b81",
+ "gatt_client_write_value_of_characteristic_without_response": "0x02007bb7",
+ "hci_add_event_handler": "0x020091ad",
+ "hci_power_control": "0x020099ad",
+ "hci_register_acl_packet_handler": "0x02009b61",
+ "kv_commit": "0x0200a0b5",
+ "kv_get": "0x0200a10d",
+ "kv_init": "0x0200a125",
+ "kv_put": "0x0200a18d",
+ "kv_remove": "0x0200a205",
+ "kv_remove_all": "0x0200a241",
+ "kv_value_modified": "0x0200a285",
+ "kv_visit": "0x0200a289",
+ "l2cap_add_event_handler": "0x0200a33d",
+ "l2cap_can_send_packet_now": "0x0200a34d",
+ "l2cap_create_le_credit_based_connection_request": "0x0200a511",
+ "l2cap_credit_based_send": "0x0200a659",
+ "l2cap_credit_based_send_continue": "0x0200a685",
+ "l2cap_disconnect": "0x0200a701",
+ "l2cap_get_le_credit_based_connection_credits": "0x0200a8ed",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0200a909",
+ "l2cap_init": "0x0200ad49",
+ "l2cap_le_send_flow_control_credit": "0x0200ae3f",
+ "l2cap_max_le_mtu": "0x0200b14d",
+ "l2cap_register_packet_handler": "0x0200b275",
+ "l2cap_register_service": "0x0200b281",
+ "l2cap_request_can_send_now_event": "0x0200b391",
+ "l2cap_request_connection_parameter_update": "0x0200b3ab",
+ "l2cap_send_echo_request": "0x0200b88d",
+ "l2cap_unregister_service": "0x0200b96d",
+ "le_device_db_add": "0x0200b9c5",
+ "le_device_db_find": "0x0200ba99",
+ "le_device_db_from_key": "0x0200bac5",
+ "le_device_db_iter_cur": "0x0200bacd",
+ "le_device_db_iter_cur_key": "0x0200bad1",
+ "le_device_db_iter_init": "0x0200bad5",
+ "le_device_db_iter_next": "0x0200badd",
+ "le_device_db_remove_key": "0x0200bb03",
+ "ll_adjust_conn_peer_tx_power": "0x0200bb31",
+ "ll_free": "0x0200bb5d",
+ "ll_hint_on_ce_len": "0x0200bb69",
+ "ll_legacy_adv_set_interval": "0x0200bba1",
+ "ll_malloc": "0x0200bbb1",
+ "ll_scan_set_fixed_channel": "0x0200bd21",
+ "ll_set_adv_access_address": "0x0200be35",
+ "ll_set_adv_coded_scheme": "0x0200be41",
+ "ll_set_conn_coded_scheme": "0x0200be79",
+ "ll_set_conn_latency": "0x0200bea5",
+ "ll_set_conn_tx_power": "0x0200bed5",
+ "ll_set_def_antenna": "0x0200bf11",
+ "ll_set_initiating_coded_scheme": "0x0200bf31",
+ "ll_set_max_conn_number": "0x0200bf3d",
+ "ll_set_tx_power_range": "0x0200bfd9",
+ "nibble_for_char": "0x0201e6f9",
+ "platform_32k_rc_auto_tune": "0x0201e791",
+ "platform_32k_rc_tune": "0x0201e7dd",
+ "platform_calibrate_32k": "0x0201e7f9",
+ "platform_config": "0x0201e7fd",
+ "platform_controller_run": "0x0201e8c9",
+ "platform_get_gen_os_driver": "0x0201e901",
+ "platform_get_task_handle": "0x0201e90d",
+ "platform_get_us_time": "0x0201e925",
+ "platform_get_version": "0x0201e929",
+ "platform_hrng": "0x0201e931",
+ "platform_init_controller": "0x0201e939",
+ "platform_os_idle_resumed_hook": "0x0201e955",
+ "platform_patch_rf_init_data": "0x0201e959",
+ "platform_post_sleep_processing": "0x0201e965",
+ "platform_pre_sleep_processing": "0x0201e96b",
+ "platform_pre_suppress_ticks_and_sleep_processing": "0x0201e971",
+ "platform_printf": "0x0201e975",
+ "platform_raise_assertion": "0x0201e989",
+ "platform_rand": "0x0201e99d",
+ "platform_read_info": "0x0201e9a1",
+ "platform_read_persistent_reg": "0x0201e9d1",
+ "platform_reset": "0x0201e9dd",
+ "platform_set_evt_callback": "0x0201e9f1",
+ "platform_set_irq_callback": "0x0201ea05",
+ "platform_set_rf_clk_source": "0x0201ea3d",
+ "platform_set_rf_init_data": "0x0201ea49",
+ "platform_set_rf_power_mapping": "0x0201ea55",
+ "platform_set_timer": "0x0201ea61",
+ "platform_shutdown": "0x0201ea65",
+ "platform_switch_app": "0x0201ea69",
+ "platform_trace_raw": "0x0201ea81",
+ "platform_write_persistent_reg": "0x0201ea99",
+ "printf_hexdump": "0x0201eaad",
+ "reverse_128": "0x0201ee21",
+ "reverse_24": "0x0201ee27",
+ "reverse_48": "0x0201ee2d",
+ "reverse_56": "0x0201ee33",
+ "reverse_64": "0x0201ee39",
+ "reverse_bd_addr": "0x0201ee3f",
+ "reverse_bytes": "0x0201ee45",
+ "sm_add_event_handler": "0x0201f161",
+ "sm_address_resolution_lookup": "0x0201f2b9",
+ "sm_authenticated": "0x0201f611",
+ "sm_authorization_decline": "0x0201f61f",
+ "sm_authorization_grant": "0x0201f63f",
+ "sm_authorization_state": "0x0201f65f",
+ "sm_bonding_decline": "0x0201f679",
+ "sm_config": "0x0201fa91",
+ "sm_config_conn": "0x0201faa9",
+ "sm_encryption_key_size": "0x0201fc5f",
+ "sm_just_works_confirm": "0x02020199",
+ "sm_le_device_key": "0x020204d5",
+ "sm_passkey_input": "0x0202056b",
+ "sm_private_random_address_generation_get": "0x02020919",
+ "sm_private_random_address_generation_get_mode": "0x02020921",
+ "sm_private_random_address_generation_set_mode": "0x0202092d",
+ "sm_private_random_address_generation_set_update_period": "0x02020955",
+ "sm_register_oob_data_callback": "0x02020a91",
+ "sm_request_pairing": "0x02020a9d",
+ "sm_send_security_request": "0x020214c3",
+ "sm_set_accepted_stk_generation_methods": "0x020214e9",
+ "sm_set_authentication_requirements": "0x020214f5",
+ "sm_set_encryption_key_size_range": "0x02021501",
+ "sscanf_bd_addr": "0x02021861",
+ "sysSetPublicDeviceAddr": "0x02021c29",
+ "uuid128_to_str": "0x02022371",
+ "uuid_add_bluetooth_prefix": "0x020223c9",
+ "uuid_has_bluetooth_prefix": "0x020223e9"
}
\ No newline at end of file
diff --git a/bundles/noos_mass_conn/ING9168xx/meta.json b/bundles/noos_mass_conn/ING9168xx/meta.json
index 8b1006a1a..ea5a30887 100644
--- a/bundles/noos_mass_conn/ING9168xx/meta.json
+++ b/bundles/noos_mass_conn/ING9168xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 6020
+ "size": 5020
},
"rom": {
"base": 33562624,
- "size": 141496
+ "size": 141228
},
"version": [
2,
0,
- 20
+ 23
]
}
\ No newline at end of file
diff --git a/bundles/noos_mass_conn/ING9168xx/platform.bin b/bundles/noos_mass_conn/ING9168xx/platform.bin
index a8c532c92..9043f110e 100644
Binary files a/bundles/noos_mass_conn/ING9168xx/platform.bin and b/bundles/noos_mass_conn/ING9168xx/platform.bin differ
diff --git a/bundles/noos_mass_conn/ING9187xx/apis.json b/bundles/noos_mass_conn/ING9187xx/apis.json
index cb343271c..16df0e6f5 100644
--- a/bundles/noos_mass_conn/ING9187xx/apis.json
+++ b/bundles/noos_mass_conn/ING9187xx/apis.json
@@ -1,236 +1,233 @@
{
- "att_dispatch_client_can_send_now": "0x00005929",
- "att_dispatch_client_request_can_send_now_event": "0x0000592f",
- "att_dispatch_register_client": "0x00005935",
- "att_dispatch_register_server": "0x00005949",
- "att_dispatch_server_can_send_now": "0x0000595d",
- "att_dispatch_server_request_can_send_now_event": "0x00005963",
- "att_emit_general_event": "0x00005a15",
- "att_server_can_send_packet_now": "0x00006129",
- "att_server_deferred_read_response": "0x0000612d",
- "att_server_get_mtu": "0x00006145",
- "att_server_indicate": "0x000061bd",
- "att_server_init": "0x00006241",
- "att_server_notify": "0x0000627d",
- "att_server_register_packet_handler": "0x00006395",
- "att_server_request_can_send_now_event": "0x000063a1",
- "att_set_db": "0x000063bd",
- "att_set_read_callback": "0x000063d1",
- "att_set_write_callback": "0x000063dd",
- "bd_addr_cmp": "0x0000654d",
- "bd_addr_copy": "0x00006553",
- "bd_addr_to_str": "0x0000655d",
- "big_endian_read_16": "0x00006595",
- "big_endian_read_32": "0x0000659d",
- "big_endian_store_16": "0x000065b1",
- "big_endian_store_32": "0x000065bd",
- "btstack_config": "0x000066f5",
- "btstack_memory_pool_create": "0x00006843",
- "btstack_memory_pool_free": "0x0000686d",
- "btstack_memory_pool_get": "0x000068cd",
- "btstack_push_user_msg": "0x00006915",
- "btstack_push_user_runnable": "0x00006921",
- "char_for_nibble": "0x00006b91",
- "gap_add_dev_to_periodic_list": "0x00007439",
- "gap_add_whitelist": "0x00007451",
- "gap_aes_encrypt": "0x00007465",
- "gap_clear_white_lists": "0x000074a9",
- "gap_clr_adv_set": "0x000074b9",
- "gap_clr_periodic_adv_list": "0x000074c9",
- "gap_create_connection_cancel": "0x000074d9",
- "gap_disconnect": "0x000074e9",
- "gap_disconnect_all": "0x00007515",
- "gap_ext_create_connection": "0x00007555",
- "gap_get_connection_parameter_range": "0x00007645",
- "gap_le_read_channel_map": "0x0000767d",
- "gap_periodic_adv_create_sync": "0x000076f1",
- "gap_periodic_adv_create_sync_cancel": "0x00007715",
- "gap_periodic_adv_term_sync": "0x00007725",
- "gap_read_periodic_adv_list_size": "0x000077b9",
- "gap_read_phy": "0x000077c9",
- "gap_read_remote_used_features": "0x000077dd",
- "gap_read_remote_version": "0x000077f1",
- "gap_read_rssi": "0x00007805",
- "gap_remove_whitelist": "0x00007819",
- "gap_rmv_adv_set": "0x0000789d",
- "gap_rmv_dev_from_periodic_list": "0x000078b1",
- "gap_rx_test_v2": "0x000078c9",
- "gap_set_adv_set_random_addr": "0x00007909",
- "gap_set_connection_parameter_range": "0x00007959",
- "gap_set_data_length": "0x00007975",
- "gap_set_def_phy": "0x00007991",
- "gap_set_ext_adv_data": "0x000079a9",
- "gap_set_ext_adv_enable": "0x000079c1",
- "gap_set_ext_adv_para": "0x00007a3d",
- "gap_set_ext_scan_enable": "0x00007b1d",
- "gap_set_ext_scan_para": "0x00007b35",
- "gap_set_ext_scan_response_data": "0x00007bdd",
- "gap_set_host_channel_classification": "0x00007bf5",
- "gap_set_periodic_adv_data": "0x00007c09",
- "gap_set_periodic_adv_enable": "0x00007c7d",
- "gap_set_periodic_adv_para": "0x00007c91",
- "gap_set_phy": "0x00007ca9",
- "gap_set_random_device_address": "0x00007cc5",
- "gap_start_ccm": "0x00007cf5",
- "gap_test_end": "0x00007d29",
- "gap_tx_test_v2": "0x00007d39",
- "gap_tx_test_v4": "0x00007d51",
- "gap_update_connection_parameters": "0x00007d79",
- "gap_vendor_tx_continuous_wave": "0x00007dbd",
- "gatt_client_cancel_write": "0x000082e5",
- "gatt_client_discover_characteristic_descriptors": "0x0000830b",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0000834b",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0000839b",
- "gatt_client_discover_characteristics_for_service": "0x000083eb",
- "gatt_client_discover_primary_services": "0x00008421",
- "gatt_client_discover_primary_services_by_uuid128": "0x00008453",
- "gatt_client_discover_primary_services_by_uuid16": "0x00008497",
- "gatt_client_execute_write": "0x000084d3",
- "gatt_client_find_included_services_for_service": "0x000084f9",
- "gatt_client_get_mtu": "0x00008527",
- "gatt_client_is_ready": "0x000085c9",
- "gatt_client_listen_for_characteristic_value_updates": "0x000085df",
- "gatt_client_prepare_write": "0x00008601",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x0000863d",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008667",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x0000866d",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0000869b",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x000086a1",
- "gatt_client_read_multiple_characteristic_values": "0x000086cf",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x000086ff",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x0000872d",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008779",
- "gatt_client_register_handler": "0x000087c5",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x000087d1",
- "gatt_client_signed_write_without_response": "0x00008c01",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008cc5",
- "gatt_client_write_client_characteristic_configuration": "0x00008cff",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008d51",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008d61",
- "gatt_client_write_long_value_of_characteristic": "0x00008d9d",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008dad",
- "gatt_client_write_value_of_characteristic": "0x00008de9",
- "gatt_client_write_value_of_characteristic_without_response": "0x00008e1f",
- "hci_add_event_handler": "0x0000a345",
- "hci_power_control": "0x0000aae1",
- "hci_register_acl_packet_handler": "0x0000ac95",
- "kv_commit": "0x0000b299",
- "kv_get": "0x0000b2f1",
- "kv_init": "0x0000b309",
- "kv_put": "0x0000b371",
- "kv_remove": "0x0000b3e9",
- "kv_remove_all": "0x0000b425",
- "kv_value_modified": "0x0000b469",
- "kv_visit": "0x0000b46d",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000b52d",
- "l2cap_can_send_packet_now": "0x0000b531",
- "l2cap_create_channel": "0x0000b6e9",
- "l2cap_disconnect": "0x0000b821",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000ba49",
- "l2cap_init": "0x0000be41",
- "l2cap_le_send_flow_control_credit": "0x0000be81",
- "l2cap_max_le_mtu": "0x0000c13d",
- "l2cap_max_mtu": "0x0000c141",
- "l2cap_register_fixed_channel": "0x0000c24d",
- "l2cap_register_packet_handler": "0x0000c269",
- "l2cap_register_service": "0x0000c275",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c359",
- "l2cap_request_can_send_now_event": "0x0000c37d",
- "l2cap_request_connection_parameter_update": "0x0000c397",
- "l2cap_send": "0x0000c731",
- "l2cap_send_connectionless": "0x0000c7a9",
- "l2cap_send_connectionless3": "0x0000c839",
- "l2cap_send_echo_request": "0x0000c8d1",
- "l2cap_unregister_service": "0x0000c98d",
- "le_device_db_add": "0x0000c9e5",
- "le_device_db_find": "0x0000cab9",
- "le_device_db_from_key": "0x0000cae5",
- "le_device_db_iter_cur": "0x0000caed",
- "le_device_db_iter_cur_key": "0x0000caf1",
- "le_device_db_iter_init": "0x0000caf5",
- "le_device_db_iter_next": "0x0000cafd",
- "le_device_db_remove_key": "0x0000cb23",
- "ll_free": "0x0000cb4f",
- "ll_hint_on_ce_len": "0x0000cb59",
- "ll_legacy_adv_set_interval": "0x0000cb91",
- "ll_malloc": "0x0000cba1",
- "ll_query_timing_info": "0x0000ccd9",
- "ll_scan_set_fixed_channel": "0x0000cd7d",
- "ll_set_adv_access_address": "0x0000ce91",
- "ll_set_adv_coded_scheme": "0x0000ce9d",
- "ll_set_conn_coded_scheme": "0x0000cecd",
- "ll_set_conn_latency": "0x0000cef9",
- "ll_set_conn_tx_power": "0x0000cf29",
- "ll_set_def_antenna": "0x0000cf71",
- "ll_set_initiating_coded_scheme": "0x0000cf8d",
- "ll_set_max_conn_number": "0x0000cf99",
- "nibble_for_char": "0x0001cded",
- "platform_32k_rc_auto_tune": "0x0001ce89",
- "platform_32k_rc_tune": "0x0001cf05",
- "platform_calibrate_32k": "0x0001cf19",
- "platform_config": "0x0001cf1d",
- "platform_controller_run": "0x0001cff5",
- "platform_get_gen_os_driver": "0x0001d02d",
- "platform_get_task_handle": "0x0001d039",
- "platform_get_us_time": "0x0001d051",
- "platform_get_version": "0x0001d055",
- "platform_hrng": "0x0001d05d",
- "platform_init_controller": "0x0001d065",
- "platform_os_idle_resumed_hook": "0x0001d081",
- "platform_patch_rf_init_data": "0x0001d085",
- "platform_post_sleep_processing": "0x0001d091",
- "platform_pre_sleep_processing": "0x0001d097",
- "platform_pre_suppress_ticks_and_sleep_processing": "0x0001d09d",
- "platform_printf": "0x0001d0a1",
- "platform_raise_assertion": "0x0001d0b5",
- "platform_rand": "0x0001d0c9",
- "platform_read_info": "0x0001d0cd",
- "platform_read_persistent_reg": "0x0001d0fd",
- "platform_reset": "0x0001d10d",
- "platform_set_evt_callback": "0x0001d131",
- "platform_set_irq_callback": "0x0001d145",
- "platform_set_rf_clk_source": "0x0001d17d",
- "platform_set_rf_init_data": "0x0001d189",
- "platform_set_rf_power_mapping": "0x0001d195",
- "platform_set_timer": "0x0001d1a1",
- "platform_shutdown": "0x0001d1a5",
- "platform_switch_app": "0x0001d1a9",
- "platform_trace_raw": "0x0001d1d5",
- "platform_write_persistent_reg": "0x0001d1ed",
- "printf_hexdump": "0x0001d1fd",
- "reverse_128": "0x0001d539",
- "reverse_24": "0x0001d53f",
- "reverse_48": "0x0001d545",
- "reverse_56": "0x0001d54b",
- "reverse_64": "0x0001d551",
- "reverse_bd_addr": "0x0001d557",
- "reverse_bytes": "0x0001d55d",
- "sm_add_event_handler": "0x0001d6c9",
- "sm_address_resolution_lookup": "0x0001d821",
- "sm_authenticated": "0x0001db79",
- "sm_authorization_decline": "0x0001db87",
- "sm_authorization_grant": "0x0001dba7",
- "sm_authorization_state": "0x0001dbc7",
- "sm_bonding_decline": "0x0001dbe1",
- "sm_config": "0x0001e001",
- "sm_config_conn": "0x0001e019",
- "sm_encryption_key_size": "0x0001e1cf",
- "sm_just_works_confirm": "0x0001e709",
- "sm_le_device_key": "0x0001ea45",
- "sm_passkey_input": "0x0001eadb",
- "sm_private_random_address_generation_get": "0x0001ee89",
- "sm_private_random_address_generation_get_mode": "0x0001ee91",
- "sm_private_random_address_generation_set_mode": "0x0001ee9d",
- "sm_private_random_address_generation_set_update_period": "0x0001eec5",
- "sm_register_oob_data_callback": "0x0001f001",
- "sm_request_pairing": "0x0001f00d",
- "sm_send_security_request": "0x0001fa2b",
- "sm_set_accepted_stk_generation_methods": "0x0001fa51",
- "sm_set_authentication_requirements": "0x0001fa5d",
- "sm_set_encryption_key_size_range": "0x0001fa69",
- "sscanf_bd_addr": "0x0001fdc5",
- "sysSetPublicDeviceAddr": "0x0002013d",
- "uuid128_to_str": "0x0002071d",
- "uuid_add_bluetooth_prefix": "0x00020775",
- "uuid_has_bluetooth_prefix": "0x00020795"
+ "att_dispatch_client_can_send_now": "0x0000568d",
+ "att_dispatch_client_request_can_send_now_event": "0x00005693",
+ "att_dispatch_register_client": "0x00005699",
+ "att_dispatch_register_server": "0x000056ad",
+ "att_dispatch_server_can_send_now": "0x000056c1",
+ "att_dispatch_server_request_can_send_now_event": "0x000056c7",
+ "att_emit_general_event": "0x00005779",
+ "att_server_can_send_packet_now": "0x00005e8d",
+ "att_server_deferred_read_response": "0x00005e91",
+ "att_server_get_mtu": "0x00005ea9",
+ "att_server_indicate": "0x00005f21",
+ "att_server_init": "0x00005fa5",
+ "att_server_notify": "0x00005fe1",
+ "att_server_register_packet_handler": "0x000060f9",
+ "att_server_request_can_send_now_event": "0x00006105",
+ "att_set_db": "0x00006121",
+ "att_set_read_callback": "0x00006135",
+ "att_set_write_callback": "0x00006141",
+ "bd_addr_cmp": "0x000062b1",
+ "bd_addr_copy": "0x000062b7",
+ "bd_addr_to_str": "0x000062c1",
+ "big_endian_read_16": "0x000062f9",
+ "big_endian_read_32": "0x00006301",
+ "big_endian_store_16": "0x00006315",
+ "big_endian_store_32": "0x00006321",
+ "btstack_config": "0x00006459",
+ "btstack_memory_pool_create": "0x000065a7",
+ "btstack_memory_pool_free": "0x000065d1",
+ "btstack_memory_pool_get": "0x00006631",
+ "btstack_push_user_msg": "0x00006679",
+ "btstack_push_user_runnable": "0x00006685",
+ "char_for_nibble": "0x000068f5",
+ "gap_add_dev_to_periodic_list": "0x0000719d",
+ "gap_add_whitelist": "0x000071b5",
+ "gap_aes_encrypt": "0x000071c9",
+ "gap_clear_white_lists": "0x0000720d",
+ "gap_clr_adv_set": "0x0000721d",
+ "gap_clr_periodic_adv_list": "0x0000722d",
+ "gap_create_connection_cancel": "0x0000723d",
+ "gap_disconnect": "0x0000724d",
+ "gap_disconnect_all": "0x00007279",
+ "gap_ext_create_connection": "0x000072b9",
+ "gap_get_connection_parameter_range": "0x000073a9",
+ "gap_le_read_channel_map": "0x000073e1",
+ "gap_periodic_adv_create_sync": "0x00007455",
+ "gap_periodic_adv_create_sync_cancel": "0x00007479",
+ "gap_periodic_adv_term_sync": "0x00007489",
+ "gap_read_periodic_adv_list_size": "0x0000751d",
+ "gap_read_phy": "0x0000752d",
+ "gap_read_remote_used_features": "0x00007541",
+ "gap_read_remote_version": "0x00007555",
+ "gap_read_rssi": "0x00007569",
+ "gap_remove_whitelist": "0x0000757d",
+ "gap_rmv_adv_set": "0x00007601",
+ "gap_rmv_dev_from_periodic_list": "0x00007615",
+ "gap_rx_test_v2": "0x0000762d",
+ "gap_set_adv_set_random_addr": "0x0000766d",
+ "gap_set_connection_parameter_range": "0x000076bd",
+ "gap_set_data_length": "0x000076d9",
+ "gap_set_def_phy": "0x000076f5",
+ "gap_set_ext_adv_data": "0x0000770d",
+ "gap_set_ext_adv_enable": "0x00007725",
+ "gap_set_ext_adv_para": "0x000077a1",
+ "gap_set_ext_scan_enable": "0x00007881",
+ "gap_set_ext_scan_para": "0x00007899",
+ "gap_set_ext_scan_response_data": "0x00007941",
+ "gap_set_host_channel_classification": "0x00007959",
+ "gap_set_periodic_adv_data": "0x0000796d",
+ "gap_set_periodic_adv_enable": "0x000079e1",
+ "gap_set_periodic_adv_para": "0x000079f5",
+ "gap_set_phy": "0x00007a0d",
+ "gap_set_random_device_address": "0x00007a29",
+ "gap_start_ccm": "0x00007a59",
+ "gap_test_end": "0x00007a8d",
+ "gap_tx_test_v2": "0x00007a9d",
+ "gap_tx_test_v4": "0x00007ab5",
+ "gap_update_connection_parameters": "0x00007add",
+ "gap_vendor_tx_continuous_wave": "0x00007b21",
+ "gatt_client_cancel_write": "0x00008049",
+ "gatt_client_discover_characteristic_descriptors": "0x0000806f",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000080af",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000080ff",
+ "gatt_client_discover_characteristics_for_service": "0x0000814f",
+ "gatt_client_discover_primary_services": "0x00008185",
+ "gatt_client_discover_primary_services_by_uuid128": "0x000081b7",
+ "gatt_client_discover_primary_services_by_uuid16": "0x000081fb",
+ "gatt_client_execute_write": "0x00008237",
+ "gatt_client_find_included_services_for_service": "0x0000825d",
+ "gatt_client_get_mtu": "0x0000828b",
+ "gatt_client_is_ready": "0x0000832d",
+ "gatt_client_listen_for_characteristic_value_updates": "0x00008343",
+ "gatt_client_prepare_write": "0x00008365",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x000083a1",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000083cb",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000083d1",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000083ff",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008405",
+ "gatt_client_read_multiple_characteristic_values": "0x00008433",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008463",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008491",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x000084dd",
+ "gatt_client_register_handler": "0x00008529",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x00008535",
+ "gatt_client_signed_write_without_response": "0x00008965",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008a29",
+ "gatt_client_write_client_characteristic_configuration": "0x00008a63",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008ab5",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008ac5",
+ "gatt_client_write_long_value_of_characteristic": "0x00008b01",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008b11",
+ "gatt_client_write_value_of_characteristic": "0x00008b4d",
+ "gatt_client_write_value_of_characteristic_without_response": "0x00008b83",
+ "hci_add_event_handler": "0x0000a0a9",
+ "hci_power_control": "0x0000a845",
+ "hci_register_acl_packet_handler": "0x0000a9f9",
+ "kv_commit": "0x0000affd",
+ "kv_get": "0x0000b055",
+ "kv_init": "0x0000b06d",
+ "kv_put": "0x0000b0d5",
+ "kv_remove": "0x0000b14d",
+ "kv_remove_all": "0x0000b189",
+ "kv_value_modified": "0x0000b1cd",
+ "kv_visit": "0x0000b1d1",
+ "l2cap_add_event_handler": "0x0000b285",
+ "l2cap_can_send_packet_now": "0x0000b295",
+ "l2cap_create_le_credit_based_connection_request": "0x0000b451",
+ "l2cap_credit_based_send": "0x0000b595",
+ "l2cap_credit_based_send_continue": "0x0000b5c1",
+ "l2cap_disconnect": "0x0000b63d",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000b88d",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000b8a9",
+ "l2cap_init": "0x0000bc7d",
+ "l2cap_le_send_flow_control_credit": "0x0000bd73",
+ "l2cap_max_le_mtu": "0x0000c07d",
+ "l2cap_register_packet_handler": "0x0000c1a5",
+ "l2cap_register_service": "0x0000c1b1",
+ "l2cap_request_can_send_now_event": "0x0000c2c1",
+ "l2cap_request_connection_parameter_update": "0x0000c2db",
+ "l2cap_send_echo_request": "0x0000c7ad",
+ "l2cap_unregister_service": "0x0000c86d",
+ "le_device_db_add": "0x0000c8c5",
+ "le_device_db_find": "0x0000c999",
+ "le_device_db_from_key": "0x0000c9c5",
+ "le_device_db_iter_cur": "0x0000c9cd",
+ "le_device_db_iter_cur_key": "0x0000c9d1",
+ "le_device_db_iter_init": "0x0000c9d5",
+ "le_device_db_iter_next": "0x0000c9dd",
+ "le_device_db_remove_key": "0x0000ca03",
+ "ll_free": "0x0000ca2f",
+ "ll_hint_on_ce_len": "0x0000ca39",
+ "ll_legacy_adv_set_interval": "0x0000ca71",
+ "ll_malloc": "0x0000ca81",
+ "ll_query_timing_info": "0x0000cbb9",
+ "ll_scan_set_fixed_channel": "0x0000cc5d",
+ "ll_set_adv_access_address": "0x0000cd71",
+ "ll_set_adv_coded_scheme": "0x0000cd7d",
+ "ll_set_conn_coded_scheme": "0x0000cdad",
+ "ll_set_conn_latency": "0x0000cdd9",
+ "ll_set_conn_tx_power": "0x0000ce09",
+ "ll_set_def_antenna": "0x0000ce51",
+ "ll_set_initiating_coded_scheme": "0x0000ce6d",
+ "ll_set_max_conn_number": "0x0000ce79",
+ "nibble_for_char": "0x0001cccd",
+ "platform_32k_rc_auto_tune": "0x0001cd69",
+ "platform_32k_rc_tune": "0x0001cde5",
+ "platform_calibrate_32k": "0x0001cdf9",
+ "platform_config": "0x0001cdfd",
+ "platform_controller_run": "0x0001ced5",
+ "platform_get_gen_os_driver": "0x0001cf0d",
+ "platform_get_task_handle": "0x0001cf19",
+ "platform_get_us_time": "0x0001cf31",
+ "platform_get_version": "0x0001cf35",
+ "platform_hrng": "0x0001cf3d",
+ "platform_init_controller": "0x0001cf45",
+ "platform_os_idle_resumed_hook": "0x0001cf61",
+ "platform_patch_rf_init_data": "0x0001cf65",
+ "platform_post_sleep_processing": "0x0001cf71",
+ "platform_pre_sleep_processing": "0x0001cf77",
+ "platform_pre_suppress_ticks_and_sleep_processing": "0x0001cf7d",
+ "platform_printf": "0x0001cf81",
+ "platform_raise_assertion": "0x0001cf95",
+ "platform_rand": "0x0001cfa9",
+ "platform_read_info": "0x0001cfad",
+ "platform_read_persistent_reg": "0x0001cfdd",
+ "platform_reset": "0x0001cfed",
+ "platform_set_evt_callback": "0x0001d011",
+ "platform_set_irq_callback": "0x0001d025",
+ "platform_set_rf_clk_source": "0x0001d05d",
+ "platform_set_rf_init_data": "0x0001d069",
+ "platform_set_rf_power_mapping": "0x0001d075",
+ "platform_set_timer": "0x0001d081",
+ "platform_shutdown": "0x0001d085",
+ "platform_switch_app": "0x0001d089",
+ "platform_trace_raw": "0x0001d0b5",
+ "platform_write_persistent_reg": "0x0001d0cd",
+ "printf_hexdump": "0x0001d0dd",
+ "reverse_128": "0x0001d419",
+ "reverse_24": "0x0001d41f",
+ "reverse_48": "0x0001d425",
+ "reverse_56": "0x0001d42b",
+ "reverse_64": "0x0001d431",
+ "reverse_bd_addr": "0x0001d437",
+ "reverse_bytes": "0x0001d43d",
+ "sm_add_event_handler": "0x0001d5a9",
+ "sm_address_resolution_lookup": "0x0001d701",
+ "sm_authenticated": "0x0001da59",
+ "sm_authorization_decline": "0x0001da67",
+ "sm_authorization_grant": "0x0001da87",
+ "sm_authorization_state": "0x0001daa7",
+ "sm_bonding_decline": "0x0001dac1",
+ "sm_config": "0x0001dee1",
+ "sm_config_conn": "0x0001def9",
+ "sm_encryption_key_size": "0x0001e0af",
+ "sm_just_works_confirm": "0x0001e5e9",
+ "sm_le_device_key": "0x0001e925",
+ "sm_passkey_input": "0x0001e9bb",
+ "sm_private_random_address_generation_get": "0x0001ed69",
+ "sm_private_random_address_generation_get_mode": "0x0001ed71",
+ "sm_private_random_address_generation_set_mode": "0x0001ed7d",
+ "sm_private_random_address_generation_set_update_period": "0x0001eda5",
+ "sm_register_oob_data_callback": "0x0001eee1",
+ "sm_request_pairing": "0x0001eeed",
+ "sm_send_security_request": "0x0001f90b",
+ "sm_set_accepted_stk_generation_methods": "0x0001f931",
+ "sm_set_authentication_requirements": "0x0001f93d",
+ "sm_set_encryption_key_size_range": "0x0001f949",
+ "sscanf_bd_addr": "0x0001fca5",
+ "sysSetPublicDeviceAddr": "0x0002001d",
+ "uuid128_to_str": "0x000205fd",
+ "uuid_add_bluetooth_prefix": "0x00020655",
+ "uuid_has_bluetooth_prefix": "0x00020675"
}
\ No newline at end of file
diff --git a/bundles/noos_mass_conn/ING9187xx/meta.json b/bundles/noos_mass_conn/ING9187xx/meta.json
index 3a84e380e..39a6a14f6 100644
--- a/bundles/noos_mass_conn/ING9187xx/meta.json
+++ b/bundles/noos_mass_conn/ING9187xx/meta.json
@@ -1,18 +1,18 @@
{
"app": {
- "base": 147456
+ "base": 139264
},
"ram": {
"base": 536870912,
- "size": 6648
+ "size": 5648
},
"rom": {
"base": 16384,
- "size": 122896
+ "size": 122604
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/noos_mass_conn/ING9187xx/platform.bin b/bundles/noos_mass_conn/ING9187xx/platform.bin
index bba3b2f9a..9c5c59838 100644
Binary files a/bundles/noos_mass_conn/ING9187xx/platform.bin and b/bundles/noos_mass_conn/ING9187xx/platform.bin differ
diff --git a/bundles/noos_mass_conn/ING9188xx/apis.json b/bundles/noos_mass_conn/ING9188xx/apis.json
index ab668bb34..1c9ecd329 100644
--- a/bundles/noos_mass_conn/ING9188xx/apis.json
+++ b/bundles/noos_mass_conn/ING9188xx/apis.json
@@ -1,250 +1,247 @@
{
- "att_dispatch_client_can_send_now": "0x00005a4d",
- "att_dispatch_client_request_can_send_now_event": "0x00005a53",
- "att_dispatch_register_client": "0x00005a59",
- "att_dispatch_register_server": "0x00005a6d",
- "att_dispatch_server_can_send_now": "0x00005a81",
- "att_dispatch_server_request_can_send_now_event": "0x00005a87",
- "att_emit_general_event": "0x00005b39",
- "att_server_can_send_packet_now": "0x0000624d",
- "att_server_deferred_read_response": "0x00006251",
- "att_server_get_mtu": "0x00006269",
- "att_server_indicate": "0x000062e1",
- "att_server_init": "0x00006365",
- "att_server_notify": "0x000063a1",
- "att_server_register_packet_handler": "0x000064b9",
- "att_server_request_can_send_now_event": "0x000064c5",
- "att_set_db": "0x000064e1",
- "att_set_read_callback": "0x000064f5",
- "att_set_write_callback": "0x00006501",
- "bd_addr_cmp": "0x00006671",
- "bd_addr_copy": "0x00006677",
- "bd_addr_to_str": "0x00006681",
- "big_endian_read_16": "0x000066b9",
- "big_endian_read_32": "0x000066c1",
- "big_endian_store_16": "0x000066d5",
- "big_endian_store_32": "0x000066e1",
- "btstack_config": "0x00006819",
- "btstack_memory_pool_create": "0x00006967",
- "btstack_memory_pool_free": "0x00006991",
- "btstack_memory_pool_get": "0x000069f1",
- "btstack_push_user_msg": "0x00006a39",
- "btstack_push_user_runnable": "0x00006a45",
- "char_for_nibble": "0x00006cb5",
- "gap_add_dev_to_periodic_list": "0x000075cd",
- "gap_add_whitelist": "0x000075e5",
- "gap_aes_encrypt": "0x000075f9",
- "gap_clear_white_lists": "0x0000763d",
- "gap_clr_adv_set": "0x0000764d",
- "gap_clr_periodic_adv_list": "0x0000765d",
- "gap_create_connection_cancel": "0x0000766d",
- "gap_default_periodic_adv_sync_transfer_param": "0x0000767d",
- "gap_disconnect": "0x00007695",
- "gap_disconnect_all": "0x000076c1",
- "gap_ext_create_connection": "0x00007701",
- "gap_get_connection_parameter_range": "0x000077f1",
- "gap_le_read_channel_map": "0x00007829",
- "gap_periodic_adv_create_sync": "0x0000789d",
- "gap_periodic_adv_create_sync_cancel": "0x000078c1",
- "gap_periodic_adv_set_info_transfer": "0x000078d1",
- "gap_periodic_adv_sync_transfer": "0x000078e9",
- "gap_periodic_adv_sync_transfer_param": "0x00007901",
- "gap_periodic_adv_term_sync": "0x0000791d",
- "gap_read_antenna_info": "0x000079b1",
- "gap_read_periodic_adv_list_size": "0x000079c1",
- "gap_read_phy": "0x000079d1",
- "gap_read_remote_used_features": "0x000079e5",
- "gap_read_remote_version": "0x000079f9",
- "gap_read_rssi": "0x00007a0d",
- "gap_remove_whitelist": "0x00007a21",
- "gap_rmv_adv_set": "0x00007aa5",
- "gap_rmv_dev_from_periodic_list": "0x00007ab9",
- "gap_rx_test_v2": "0x00007ad1",
- "gap_rx_test_v3": "0x00007ae9",
- "gap_set_adv_set_random_addr": "0x00007b39",
- "gap_set_connection_cte_request_enable": "0x00007b89",
- "gap_set_connection_cte_response_enable": "0x00007ba5",
- "gap_set_connection_cte_rx_param": "0x00007bb9",
- "gap_set_connection_cte_tx_param": "0x00007c15",
- "gap_set_connection_parameter_range": "0x00007c69",
- "gap_set_connectionless_cte_tx_enable": "0x00007c85",
- "gap_set_connectionless_cte_tx_param": "0x00007c99",
- "gap_set_connectionless_iq_sampling_enable": "0x00007cf9",
- "gap_set_data_length": "0x00007d5d",
- "gap_set_def_phy": "0x00007d79",
- "gap_set_ext_adv_data": "0x00007d91",
- "gap_set_ext_adv_enable": "0x00007da9",
- "gap_set_ext_adv_para": "0x00007e25",
- "gap_set_ext_scan_enable": "0x00007f05",
- "gap_set_ext_scan_para": "0x00007f1d",
- "gap_set_ext_scan_response_data": "0x00007fc5",
- "gap_set_host_channel_classification": "0x00007fdd",
- "gap_set_periodic_adv_data": "0x00007ff1",
- "gap_set_periodic_adv_enable": "0x00008065",
- "gap_set_periodic_adv_para": "0x00008079",
- "gap_set_periodic_adv_rx_enable": "0x00008091",
- "gap_set_phy": "0x000080a5",
- "gap_set_random_device_address": "0x000080c1",
- "gap_start_ccm": "0x000080f1",
- "gap_test_end": "0x00008125",
- "gap_tx_test_v2": "0x00008135",
- "gap_tx_test_v4": "0x0000814d",
- "gap_update_connection_parameters": "0x00008175",
- "gap_vendor_tx_continuous_wave": "0x000081b9",
- "gatt_client_cancel_write": "0x000086e1",
- "gatt_client_discover_characteristic_descriptors": "0x00008707",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x00008747",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x00008797",
- "gatt_client_discover_characteristics_for_service": "0x000087e7",
- "gatt_client_discover_primary_services": "0x0000881d",
- "gatt_client_discover_primary_services_by_uuid128": "0x0000884f",
- "gatt_client_discover_primary_services_by_uuid16": "0x00008893",
- "gatt_client_execute_write": "0x000088cf",
- "gatt_client_find_included_services_for_service": "0x000088f5",
- "gatt_client_get_mtu": "0x00008923",
- "gatt_client_is_ready": "0x000089c5",
- "gatt_client_listen_for_characteristic_value_updates": "0x000089db",
- "gatt_client_prepare_write": "0x000089fd",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008a39",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008a63",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008a69",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008a97",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008a9d",
- "gatt_client_read_multiple_characteristic_values": "0x00008acb",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008afb",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008b29",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008b75",
- "gatt_client_register_handler": "0x00008bc1",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x00008bcd",
- "gatt_client_signed_write_without_response": "0x00008ffd",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x000090c1",
- "gatt_client_write_client_characteristic_configuration": "0x000090fb",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x0000914d",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x0000915d",
- "gatt_client_write_long_value_of_characteristic": "0x00009199",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x000091a9",
- "gatt_client_write_value_of_characteristic": "0x000091e5",
- "gatt_client_write_value_of_characteristic_without_response": "0x0000921b",
- "hci_add_event_handler": "0x0000a75d",
- "hci_power_control": "0x0000aef9",
- "hci_register_acl_packet_handler": "0x0000b0ad",
- "kv_commit": "0x0000b6b1",
- "kv_get": "0x0000b709",
- "kv_init": "0x0000b721",
- "kv_put": "0x0000b789",
- "kv_remove": "0x0000b801",
- "kv_remove_all": "0x0000b83d",
- "kv_value_modified": "0x0000b881",
- "kv_visit": "0x0000b885",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000b945",
- "l2cap_can_send_packet_now": "0x0000b949",
- "l2cap_create_channel": "0x0000bb01",
- "l2cap_disconnect": "0x0000bc39",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000be61",
- "l2cap_init": "0x0000c259",
- "l2cap_le_send_flow_control_credit": "0x0000c299",
- "l2cap_max_le_mtu": "0x0000c555",
- "l2cap_max_mtu": "0x0000c559",
- "l2cap_register_fixed_channel": "0x0000c665",
- "l2cap_register_packet_handler": "0x0000c681",
- "l2cap_register_service": "0x0000c68d",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c771",
- "l2cap_request_can_send_now_event": "0x0000c795",
- "l2cap_request_connection_parameter_update": "0x0000c7af",
- "l2cap_send": "0x0000cb49",
- "l2cap_send_connectionless": "0x0000cbc1",
- "l2cap_send_connectionless3": "0x0000cc51",
- "l2cap_send_echo_request": "0x0000cce9",
- "l2cap_unregister_service": "0x0000cda5",
- "le_device_db_add": "0x0000cdfd",
- "le_device_db_find": "0x0000ced1",
- "le_device_db_from_key": "0x0000cefd",
- "le_device_db_iter_cur": "0x0000cf05",
- "le_device_db_iter_cur_key": "0x0000cf09",
- "le_device_db_iter_init": "0x0000cf0d",
- "le_device_db_iter_next": "0x0000cf15",
- "le_device_db_remove_key": "0x0000cf3b",
- "ll_free": "0x0000cf67",
- "ll_hint_on_ce_len": "0x0000cf71",
- "ll_legacy_adv_set_interval": "0x0000cfa9",
- "ll_malloc": "0x0000cfb9",
- "ll_query_timing_info": "0x0000d0f1",
- "ll_scan_set_fixed_channel": "0x0000d195",
- "ll_set_adv_access_address": "0x0000d2a9",
- "ll_set_adv_coded_scheme": "0x0000d2b5",
- "ll_set_conn_coded_scheme": "0x0000d2e5",
- "ll_set_conn_latency": "0x0000d311",
- "ll_set_conn_tx_power": "0x0000d341",
- "ll_set_def_antenna": "0x0000d389",
- "ll_set_initiating_coded_scheme": "0x0000d3a5",
- "ll_set_max_conn_number": "0x0000d3b1",
- "nibble_for_char": "0x0001e0e5",
- "platform_32k_rc_auto_tune": "0x0001e181",
- "platform_32k_rc_tune": "0x0001e1fd",
- "platform_calibrate_32k": "0x0001e211",
- "platform_config": "0x0001e215",
- "platform_controller_run": "0x0001e2ed",
- "platform_get_gen_os_driver": "0x0001e325",
- "platform_get_task_handle": "0x0001e331",
- "platform_get_us_time": "0x0001e349",
- "platform_get_version": "0x0001e34d",
- "platform_hrng": "0x0001e355",
- "platform_init_controller": "0x0001e35d",
- "platform_os_idle_resumed_hook": "0x0001e379",
- "platform_patch_rf_init_data": "0x0001e37d",
- "platform_post_sleep_processing": "0x0001e389",
- "platform_pre_sleep_processing": "0x0001e38f",
- "platform_pre_suppress_ticks_and_sleep_processing": "0x0001e395",
- "platform_printf": "0x0001e399",
- "platform_raise_assertion": "0x0001e3ad",
- "platform_rand": "0x0001e3c1",
- "platform_read_info": "0x0001e3c5",
- "platform_read_persistent_reg": "0x0001e3f5",
- "platform_reset": "0x0001e405",
- "platform_set_evt_callback": "0x0001e429",
- "platform_set_irq_callback": "0x0001e43d",
- "platform_set_rf_clk_source": "0x0001e475",
- "platform_set_rf_init_data": "0x0001e481",
- "platform_set_rf_power_mapping": "0x0001e48d",
- "platform_set_timer": "0x0001e499",
- "platform_shutdown": "0x0001e49d",
- "platform_switch_app": "0x0001e4a1",
- "platform_trace_raw": "0x0001e4cd",
- "platform_write_persistent_reg": "0x0001e4e5",
- "printf_hexdump": "0x0001e4f5",
- "reverse_128": "0x0001e869",
- "reverse_24": "0x0001e86f",
- "reverse_48": "0x0001e875",
- "reverse_56": "0x0001e87b",
- "reverse_64": "0x0001e881",
- "reverse_bd_addr": "0x0001e887",
- "reverse_bytes": "0x0001e88d",
- "sm_add_event_handler": "0x0001eb4d",
- "sm_address_resolution_lookup": "0x0001eca5",
- "sm_authenticated": "0x0001effd",
- "sm_authorization_decline": "0x0001f00b",
- "sm_authorization_grant": "0x0001f02b",
- "sm_authorization_state": "0x0001f04b",
- "sm_bonding_decline": "0x0001f065",
- "sm_config": "0x0001f485",
- "sm_config_conn": "0x0001f49d",
- "sm_encryption_key_size": "0x0001f653",
- "sm_just_works_confirm": "0x0001fb8d",
- "sm_le_device_key": "0x0001fec9",
- "sm_passkey_input": "0x0001ff5f",
- "sm_private_random_address_generation_get": "0x0002030d",
- "sm_private_random_address_generation_get_mode": "0x00020315",
- "sm_private_random_address_generation_set_mode": "0x00020321",
- "sm_private_random_address_generation_set_update_period": "0x00020349",
- "sm_register_oob_data_callback": "0x00020485",
- "sm_request_pairing": "0x00020491",
- "sm_send_security_request": "0x00020eaf",
- "sm_set_accepted_stk_generation_methods": "0x00020ed5",
- "sm_set_authentication_requirements": "0x00020ee1",
- "sm_set_encryption_key_size_range": "0x00020eed",
- "sscanf_bd_addr": "0x00021249",
- "sysSetPublicDeviceAddr": "0x000215c1",
- "uuid128_to_str": "0x00021d35",
- "uuid_add_bluetooth_prefix": "0x00021d8d",
- "uuid_has_bluetooth_prefix": "0x00021dad"
+ "att_dispatch_client_can_send_now": "0x000057b1",
+ "att_dispatch_client_request_can_send_now_event": "0x000057b7",
+ "att_dispatch_register_client": "0x000057bd",
+ "att_dispatch_register_server": "0x000057d1",
+ "att_dispatch_server_can_send_now": "0x000057e5",
+ "att_dispatch_server_request_can_send_now_event": "0x000057eb",
+ "att_emit_general_event": "0x0000589d",
+ "att_server_can_send_packet_now": "0x00005fb1",
+ "att_server_deferred_read_response": "0x00005fb5",
+ "att_server_get_mtu": "0x00005fcd",
+ "att_server_indicate": "0x00006045",
+ "att_server_init": "0x000060c9",
+ "att_server_notify": "0x00006105",
+ "att_server_register_packet_handler": "0x0000621d",
+ "att_server_request_can_send_now_event": "0x00006229",
+ "att_set_db": "0x00006245",
+ "att_set_read_callback": "0x00006259",
+ "att_set_write_callback": "0x00006265",
+ "bd_addr_cmp": "0x000063d5",
+ "bd_addr_copy": "0x000063db",
+ "bd_addr_to_str": "0x000063e5",
+ "big_endian_read_16": "0x0000641d",
+ "big_endian_read_32": "0x00006425",
+ "big_endian_store_16": "0x00006439",
+ "big_endian_store_32": "0x00006445",
+ "btstack_config": "0x0000657d",
+ "btstack_memory_pool_create": "0x000066cb",
+ "btstack_memory_pool_free": "0x000066f5",
+ "btstack_memory_pool_get": "0x00006755",
+ "btstack_push_user_msg": "0x0000679d",
+ "btstack_push_user_runnable": "0x000067a9",
+ "char_for_nibble": "0x00006a19",
+ "gap_add_dev_to_periodic_list": "0x00007331",
+ "gap_add_whitelist": "0x00007349",
+ "gap_aes_encrypt": "0x0000735d",
+ "gap_clear_white_lists": "0x000073a1",
+ "gap_clr_adv_set": "0x000073b1",
+ "gap_clr_periodic_adv_list": "0x000073c1",
+ "gap_create_connection_cancel": "0x000073d1",
+ "gap_default_periodic_adv_sync_transfer_param": "0x000073e1",
+ "gap_disconnect": "0x000073f9",
+ "gap_disconnect_all": "0x00007425",
+ "gap_ext_create_connection": "0x00007465",
+ "gap_get_connection_parameter_range": "0x00007555",
+ "gap_le_read_channel_map": "0x0000758d",
+ "gap_periodic_adv_create_sync": "0x00007601",
+ "gap_periodic_adv_create_sync_cancel": "0x00007625",
+ "gap_periodic_adv_set_info_transfer": "0x00007635",
+ "gap_periodic_adv_sync_transfer": "0x0000764d",
+ "gap_periodic_adv_sync_transfer_param": "0x00007665",
+ "gap_periodic_adv_term_sync": "0x00007681",
+ "gap_read_antenna_info": "0x00007715",
+ "gap_read_periodic_adv_list_size": "0x00007725",
+ "gap_read_phy": "0x00007735",
+ "gap_read_remote_used_features": "0x00007749",
+ "gap_read_remote_version": "0x0000775d",
+ "gap_read_rssi": "0x00007771",
+ "gap_remove_whitelist": "0x00007785",
+ "gap_rmv_adv_set": "0x00007809",
+ "gap_rmv_dev_from_periodic_list": "0x0000781d",
+ "gap_rx_test_v2": "0x00007835",
+ "gap_rx_test_v3": "0x0000784d",
+ "gap_set_adv_set_random_addr": "0x0000789d",
+ "gap_set_connection_cte_request_enable": "0x000078ed",
+ "gap_set_connection_cte_response_enable": "0x00007909",
+ "gap_set_connection_cte_rx_param": "0x0000791d",
+ "gap_set_connection_cte_tx_param": "0x00007979",
+ "gap_set_connection_parameter_range": "0x000079cd",
+ "gap_set_connectionless_cte_tx_enable": "0x000079e9",
+ "gap_set_connectionless_cte_tx_param": "0x000079fd",
+ "gap_set_connectionless_iq_sampling_enable": "0x00007a5d",
+ "gap_set_data_length": "0x00007ac1",
+ "gap_set_def_phy": "0x00007add",
+ "gap_set_ext_adv_data": "0x00007af5",
+ "gap_set_ext_adv_enable": "0x00007b0d",
+ "gap_set_ext_adv_para": "0x00007b89",
+ "gap_set_ext_scan_enable": "0x00007c69",
+ "gap_set_ext_scan_para": "0x00007c81",
+ "gap_set_ext_scan_response_data": "0x00007d29",
+ "gap_set_host_channel_classification": "0x00007d41",
+ "gap_set_periodic_adv_data": "0x00007d55",
+ "gap_set_periodic_adv_enable": "0x00007dc9",
+ "gap_set_periodic_adv_para": "0x00007ddd",
+ "gap_set_periodic_adv_rx_enable": "0x00007df5",
+ "gap_set_phy": "0x00007e09",
+ "gap_set_random_device_address": "0x00007e25",
+ "gap_start_ccm": "0x00007e55",
+ "gap_test_end": "0x00007e89",
+ "gap_tx_test_v2": "0x00007e99",
+ "gap_tx_test_v4": "0x00007eb1",
+ "gap_update_connection_parameters": "0x00007ed9",
+ "gap_vendor_tx_continuous_wave": "0x00007f1d",
+ "gatt_client_cancel_write": "0x00008445",
+ "gatt_client_discover_characteristic_descriptors": "0x0000846b",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000084ab",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000084fb",
+ "gatt_client_discover_characteristics_for_service": "0x0000854b",
+ "gatt_client_discover_primary_services": "0x00008581",
+ "gatt_client_discover_primary_services_by_uuid128": "0x000085b3",
+ "gatt_client_discover_primary_services_by_uuid16": "0x000085f7",
+ "gatt_client_execute_write": "0x00008633",
+ "gatt_client_find_included_services_for_service": "0x00008659",
+ "gatt_client_get_mtu": "0x00008687",
+ "gatt_client_is_ready": "0x00008729",
+ "gatt_client_listen_for_characteristic_value_updates": "0x0000873f",
+ "gatt_client_prepare_write": "0x00008761",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x0000879d",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000087c7",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000087cd",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000087fb",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008801",
+ "gatt_client_read_multiple_characteristic_values": "0x0000882f",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x0000885f",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x0000888d",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x000088d9",
+ "gatt_client_register_handler": "0x00008925",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x00008931",
+ "gatt_client_signed_write_without_response": "0x00008d61",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008e25",
+ "gatt_client_write_client_characteristic_configuration": "0x00008e5f",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008eb1",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008ec1",
+ "gatt_client_write_long_value_of_characteristic": "0x00008efd",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008f0d",
+ "gatt_client_write_value_of_characteristic": "0x00008f49",
+ "gatt_client_write_value_of_characteristic_without_response": "0x00008f7f",
+ "hci_add_event_handler": "0x0000a4c1",
+ "hci_power_control": "0x0000ac5d",
+ "hci_register_acl_packet_handler": "0x0000ae11",
+ "kv_commit": "0x0000b415",
+ "kv_get": "0x0000b46d",
+ "kv_init": "0x0000b485",
+ "kv_put": "0x0000b4ed",
+ "kv_remove": "0x0000b565",
+ "kv_remove_all": "0x0000b5a1",
+ "kv_value_modified": "0x0000b5e5",
+ "kv_visit": "0x0000b5e9",
+ "l2cap_add_event_handler": "0x0000b69d",
+ "l2cap_can_send_packet_now": "0x0000b6ad",
+ "l2cap_create_le_credit_based_connection_request": "0x0000b869",
+ "l2cap_credit_based_send": "0x0000b9ad",
+ "l2cap_credit_based_send_continue": "0x0000b9d9",
+ "l2cap_disconnect": "0x0000ba55",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000bca5",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000bcc1",
+ "l2cap_init": "0x0000c095",
+ "l2cap_le_send_flow_control_credit": "0x0000c18b",
+ "l2cap_max_le_mtu": "0x0000c495",
+ "l2cap_register_packet_handler": "0x0000c5bd",
+ "l2cap_register_service": "0x0000c5c9",
+ "l2cap_request_can_send_now_event": "0x0000c6d9",
+ "l2cap_request_connection_parameter_update": "0x0000c6f3",
+ "l2cap_send_echo_request": "0x0000cbc5",
+ "l2cap_unregister_service": "0x0000cc85",
+ "le_device_db_add": "0x0000ccdd",
+ "le_device_db_find": "0x0000cdb1",
+ "le_device_db_from_key": "0x0000cddd",
+ "le_device_db_iter_cur": "0x0000cde5",
+ "le_device_db_iter_cur_key": "0x0000cde9",
+ "le_device_db_iter_init": "0x0000cded",
+ "le_device_db_iter_next": "0x0000cdf5",
+ "le_device_db_remove_key": "0x0000ce1b",
+ "ll_free": "0x0000ce47",
+ "ll_hint_on_ce_len": "0x0000ce51",
+ "ll_legacy_adv_set_interval": "0x0000ce89",
+ "ll_malloc": "0x0000ce99",
+ "ll_query_timing_info": "0x0000cfd1",
+ "ll_scan_set_fixed_channel": "0x0000d075",
+ "ll_set_adv_access_address": "0x0000d189",
+ "ll_set_adv_coded_scheme": "0x0000d195",
+ "ll_set_conn_coded_scheme": "0x0000d1c5",
+ "ll_set_conn_latency": "0x0000d1f1",
+ "ll_set_conn_tx_power": "0x0000d221",
+ "ll_set_def_antenna": "0x0000d269",
+ "ll_set_initiating_coded_scheme": "0x0000d285",
+ "ll_set_max_conn_number": "0x0000d291",
+ "nibble_for_char": "0x0001dfc5",
+ "platform_32k_rc_auto_tune": "0x0001e061",
+ "platform_32k_rc_tune": "0x0001e0dd",
+ "platform_calibrate_32k": "0x0001e0f1",
+ "platform_config": "0x0001e0f5",
+ "platform_controller_run": "0x0001e1cd",
+ "platform_get_gen_os_driver": "0x0001e205",
+ "platform_get_task_handle": "0x0001e211",
+ "platform_get_us_time": "0x0001e229",
+ "platform_get_version": "0x0001e22d",
+ "platform_hrng": "0x0001e235",
+ "platform_init_controller": "0x0001e23d",
+ "platform_os_idle_resumed_hook": "0x0001e259",
+ "platform_patch_rf_init_data": "0x0001e25d",
+ "platform_post_sleep_processing": "0x0001e269",
+ "platform_pre_sleep_processing": "0x0001e26f",
+ "platform_pre_suppress_ticks_and_sleep_processing": "0x0001e275",
+ "platform_printf": "0x0001e279",
+ "platform_raise_assertion": "0x0001e28d",
+ "platform_rand": "0x0001e2a1",
+ "platform_read_info": "0x0001e2a5",
+ "platform_read_persistent_reg": "0x0001e2d5",
+ "platform_reset": "0x0001e2e5",
+ "platform_set_evt_callback": "0x0001e309",
+ "platform_set_irq_callback": "0x0001e31d",
+ "platform_set_rf_clk_source": "0x0001e355",
+ "platform_set_rf_init_data": "0x0001e361",
+ "platform_set_rf_power_mapping": "0x0001e36d",
+ "platform_set_timer": "0x0001e379",
+ "platform_shutdown": "0x0001e37d",
+ "platform_switch_app": "0x0001e381",
+ "platform_trace_raw": "0x0001e3ad",
+ "platform_write_persistent_reg": "0x0001e3c5",
+ "printf_hexdump": "0x0001e3d5",
+ "reverse_128": "0x0001e749",
+ "reverse_24": "0x0001e74f",
+ "reverse_48": "0x0001e755",
+ "reverse_56": "0x0001e75b",
+ "reverse_64": "0x0001e761",
+ "reverse_bd_addr": "0x0001e767",
+ "reverse_bytes": "0x0001e76d",
+ "sm_add_event_handler": "0x0001ea2d",
+ "sm_address_resolution_lookup": "0x0001eb85",
+ "sm_authenticated": "0x0001eedd",
+ "sm_authorization_decline": "0x0001eeeb",
+ "sm_authorization_grant": "0x0001ef0b",
+ "sm_authorization_state": "0x0001ef2b",
+ "sm_bonding_decline": "0x0001ef45",
+ "sm_config": "0x0001f365",
+ "sm_config_conn": "0x0001f37d",
+ "sm_encryption_key_size": "0x0001f533",
+ "sm_just_works_confirm": "0x0001fa6d",
+ "sm_le_device_key": "0x0001fda9",
+ "sm_passkey_input": "0x0001fe3f",
+ "sm_private_random_address_generation_get": "0x000201ed",
+ "sm_private_random_address_generation_get_mode": "0x000201f5",
+ "sm_private_random_address_generation_set_mode": "0x00020201",
+ "sm_private_random_address_generation_set_update_period": "0x00020229",
+ "sm_register_oob_data_callback": "0x00020365",
+ "sm_request_pairing": "0x00020371",
+ "sm_send_security_request": "0x00020d8f",
+ "sm_set_accepted_stk_generation_methods": "0x00020db5",
+ "sm_set_authentication_requirements": "0x00020dc1",
+ "sm_set_encryption_key_size_range": "0x00020dcd",
+ "sscanf_bd_addr": "0x00021129",
+ "sysSetPublicDeviceAddr": "0x000214a1",
+ "uuid128_to_str": "0x00021c15",
+ "uuid_add_bluetooth_prefix": "0x00021c6d",
+ "uuid_has_bluetooth_prefix": "0x00021c8d"
}
\ No newline at end of file
diff --git a/bundles/noos_mass_conn/ING9188xx/meta.json b/bundles/noos_mass_conn/ING9188xx/meta.json
index b69a79360..45bdc6cfe 100644
--- a/bundles/noos_mass_conn/ING9188xx/meta.json
+++ b/bundles/noos_mass_conn/ING9188xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 6648
+ "size": 5648
},
"rom": {
"base": 16384,
- "size": 129008
+ "size": 128716
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/noos_mass_conn/ING9188xx/platform.bin b/bundles/noos_mass_conn/ING9188xx/platform.bin
index 0132931ad..bc04d4aaa 100644
Binary files a/bundles/noos_mass_conn/ING9188xx/platform.bin and b/bundles/noos_mass_conn/ING9188xx/platform.bin differ
diff --git a/bundles/noos_mass_conn/inc/att_db.h b/bundles/noos_mass_conn/inc/att_db.h
index 70ec3efa3..3e656c769 100644
--- a/bundles/noos_mass_conn/inc/att_db.h
+++ b/bundles/noos_mass_conn/inc/att_db.h
@@ -3,7 +3,7 @@
* @brief API for ATT server
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -28,10 +28,10 @@ extern "C" {
* @ingroup bluetooth_host
* @{
*/
-// custom BTstack error codes
+// custom btstack error codes
#define ATT_ERROR_HCI_DISCONNECT_RECEIVED 0x1f
-// custom BTstack ATT error coders
+// custom btstack ATT error coders
#define ATT_ERROR_DATA_MISMATCH 0x7e
#define ATT_ERROR_TIMEOUT 0x7F
diff --git a/bundles/noos_mass_conn/inc/att_dispatch.h b/bundles/noos_mass_conn/inc/att_dispatch.h
index 60f62817b..9dd2608d1 100644
--- a/bundles/noos_mass_conn/inc/att_dispatch.h
+++ b/bundles/noos_mass_conn/inc/att_dispatch.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_mass_conn/inc/btstack_defines.h b/bundles/noos_mass_conn/inc/btstack_defines.h
index c2ab8d11a..a8d08006c 100644
--- a/bundles/noos_mass_conn/inc/btstack_defines.h
+++ b/bundles/noos_mass_conn/inc/btstack_defines.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -53,10 +53,15 @@
#define L2CAP_SERVICE_ALREADY_REGISTERED 0x69
#define L2CAP_DATA_LEN_EXCEEDS_REMOTE_MTU 0x6A
+#define L2CAP_SERVICE_NOT_REGISTERED 0x6B
+#define L2CAP_CONNECTION_INSUFFICIENT_SECURITY 0x6C
-#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS 0x90
+#define ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS 0x90
#define ATT_HANDLE_VALUE_INDICATION_TIMEOUT 0x91
+// compatibility for typo
+#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS
+
#define GATT_CLIENT_NOT_CONNECTED 0x93
#define GATT_CLIENT_BUSY 0x94
#define GATT_CLIENT_IN_WRONG_STATE 0x95
@@ -88,22 +93,14 @@
// L2CAP EVENTS
/**
- * @format 1BH222222
- * @param status
- * @param address
- * @param handle
- * @param psm
- * @param local_cid
- * @param remote_cid
- * @param local_mtu
- * @param remote_mtu
- * @param flush_timeout
+ * @brief an L2CAP channel is opened
+ * @ref `l2cap_event_channel_opened_t`
*/
#define L2CAP_EVENT_CHANNEL_OPENED 0x70
/*
- * @format 2
- * @param local_cid
+ * @brief an L2CAP channel is closed
+ * @ref `l2cap_event_channel_closed_t`
*/
#define L2CAP_EVENT_CHANNEL_CLOSED 0x71
@@ -153,6 +150,24 @@
*/
#define L2CAP_EVENT_COMMAND_REJECT_RESPONSE 0x79
+/**
+ * @brief LE credit channel : an SDU (complete package) event
+ *
+ * Use `decode_l2cap_event(l2cap_event_complete_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_complete_sdu_t`
+*/
+#define L2CAP_EVENT_COMPLETED_SDU_PACKET 0x7A
+
+/**
+ * @brief LE credit channel : a fragment (K-frame) of an SDU event
+ *
+ * Use `decode_l2cap_event(l2cap_event_fragment_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_fragment_sdu_t`
+*/
+#define L2CAP_EVENT_FRAGMENT_SDU_PACKET 0x7B
+
/**
* @format H1
* @param handle
diff --git a/bundles/noos_mass_conn/inc/btstack_event.h b/bundles/noos_mass_conn/inc/btstack_event.h
index 4c488f787..294fb813b 100644
--- a/bundles/noos_mass_conn/inc/btstack_event.h
+++ b/bundles/noos_mass_conn/inc/btstack_event.h
@@ -4,7 +4,7 @@
*
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -783,6 +783,43 @@ static __INLINE uint8_t gap_event_dedicated_bonding_completed_get_status(const u
return *decode_event_offset(event, uint8_t, 2);
}
+typedef struct l2cap_event_complete_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ const uint8_t *payload; // payload of this SDU
+} l2cap_event_complete_sdu_t;
+
+typedef struct l2cap_event_channel_opened
+{
+ uint8_t status;
+ bd_addr_t peer_addr;
+ hci_con_handle_t conn_handle;
+ uint16_t psm;
+ uint16_t local_cid;
+ uint16_t peer_cid;
+ uint16_t local_mtu;
+ uint16_t peer_mtu;
+ uint16_t local_mps;
+ uint16_t peer_mps;
+ uint16_t flush_timeout;
+ uint16_t local_credits;
+ uint16_t peer_credits;
+} l2cap_event_channel_opened_t;
+
+typedef struct l2cap_event_channel_closed
+{
+ uint16_t local_cid;
+ uint8_t reason;
+} l2cap_event_channel_closed_t;
+
+typedef struct l2cap_event_fragment_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ uint16_t offset; // offset of this fragment within a SDU
+ uint16_t length; // length of this fragment within a SDU
+ const uint8_t *payload; // payload of this fragment
+} l2cap_event_fragment_sdu_t;
+
typedef struct event_command_complete_return_param_read_rssi
{
uint8_t status;
@@ -1226,7 +1263,9 @@ typedef enum btstack_l2cap_msg_def
#define decode_hci_event_disconn_complete(packet) decode_event_offset(packet, event_disconn_complete_t, 2)
#define decode_hci_event_vendor_ccm_complete(packet) decode_event_offset(packet, event_vendor_ccm_complete_t, 5)
-#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+
+#define decode_l2cap_event(packet, T) decode_event_offset(packet, T, 2)
/* API_END */
diff --git a/bundles/noos_mass_conn/inc/btstack_util.h b/bundles/noos_mass_conn/inc/btstack_util.h
index 3f7232fc4..5e6d0d7ef 100644
--- a/bundles/noos_mass_conn/inc/btstack_util.h
+++ b/bundles/noos_mass_conn/inc/btstack_util.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_mass_conn/inc/gap.h b/bundles/noos_mass_conn/inc/gap.h
index bf5d8a140..413b9423a 100644
--- a/bundles/noos_mass_conn/inc/gap.h
+++ b/bundles/noos_mass_conn/inc/gap.h
@@ -1380,7 +1380,7 @@ void hci_add_event_handler(btstack_packet_callback_registration_t * callback_han
void hci_register_acl_packet_handler(btstack_packet_handler_t handler);
/**
- * @brief Requests the change of BTstack power mode.
+ * @brief Requests the change of btstack power mode.
*
* @param mode 0:HCI_POWER_OFF ,1:HCI_POWER_ON , 2:HCI_POWER_SLEEP
*
diff --git a/bundles/noos_mass_conn/inc/gatt_client.h b/bundles/noos_mass_conn/inc/gatt_client.h
index 910cdf251..9a036f6f6 100644
--- a/bundles/noos_mass_conn/inc/gatt_client.h
+++ b/bundles/noos_mass_conn/inc/gatt_client.h
@@ -3,7 +3,7 @@
* Copyright Message
*
* INGCHIPS confidential and proprietary.
- * COPYRIGHT (c) 2018 by INGCHIPS
+ * COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_mass_conn/inc/l2cap.h b/bundles/noos_mass_conn/inc/l2cap.h
index f464836dc..52b0efb79 100644
--- a/bundles/noos_mass_conn/inc/l2cap.h
+++ b/bundles/noos_mass_conn/inc/l2cap.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -22,27 +22,6 @@
extern "C" {
#endif
-void l2cap_register_fixed_channel(btstack_packet_handler_t packet_handler, uint16_t channel_id);
-int l2cap_can_send_fixed_channel_packet_now(hci_con_handle_t con_handle, uint16_t channel_id);
-void l2cap_request_can_send_fix_channel_now_event(hci_con_handle_t con_handle, uint16_t channel_id);
-int l2cap_send_connectionless(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len);
-int l2cap_send_connectionless3(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len,
- const uint8_t *data3, uint16_t data3_len);
-
-int l2cap_le_send_flow_control_credit(hci_con_handle_t con_handle,uint8_t id ,uint16_t cid,uint16_t credits);
-
-// PTS Testing
-int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t len);
-
-// Used by RFCOMM - similar to l2cap_can-send_packet_now but does not check if outgoing buffer is reserved
-// int l2cap_can_send_prepared_packet_now(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
-
-
/* API_START */
/**
@@ -51,69 +30,152 @@ int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t
void l2cap_init(void);
/**
- * @brief Registers packet handler for LE Connection Parameter Update events
+ * @brief add event handler with packet type `L2CAP_EVENT_PACKET`
+ *
+ * Note: Event code includes:
+ * * L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE
+ *
+ * @param[in] callback_handler the handler to be chained together
*/
-void l2cap_register_packet_handler(btstack_packet_handler_t handler);
+void l2cap_add_event_handler(btstack_packet_callback_registration_t *callback_handler);
/**
- * @brief Get max MTU for Classic connections based on btstack configuration
+ * @brief Registers packet handler for LE Connection Parameter Update related events
+ *
+ * Note: Packet type `HCI_EVENT_PACKET`. Event code includes:
+ * * L2CAP_EVENT_COMMAND_REJECT_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST
+ *
+ * @param[in] handler the callback function
*/
-uint16_t l2cap_max_mtu(void);
+void l2cap_register_packet_handler(btstack_packet_handler_t handler);
/**
* @brief Get max MTU for LE connections based on btstack configuration
+ *
+ * @return max LE MTU
*/
uint16_t l2cap_max_le_mtu(void);
-/**
- * @brief Creates L2CAP channel to the PSM of a remote device with baseband address. A new baseband connection will be initiated if necessary.
- * @param packet_handler
- * @param address
- * @param psm
- * @param mtu
- * @param local_cid
- * @param status
- */
-uint8_t l2cap_create_channel(btstack_packet_handler_t packet_handler, bd_addr_t address, uint16_t psm, uint16_t mtu, uint16_t * out_local_cid);
+#define l2cap_max_mtu l2cap_max_le_mtu
/**
* @brief Disconnects L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] reason reason (ignored)
*/
void l2cap_disconnect(uint16_t local_cid, uint8_t reason);
/**
* @brief Queries the maximal transfer unit (MTU) for L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @return peer MTU
*/
-uint16_t l2cap_get_remote_mtu_for_local_cid(uint16_t local_cid);
+uint16_t l2cap_get_peer_mtu_for_local_cid(uint16_t local_cid);
/**
- * @brief Sends L2CAP data packet to the channel with given identifier.
+ * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ *
+ * Note: Before creating a connection with a SPSM, the service must be registered.
+ *
+ * @param[in] packet_handler packet handler
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] mtu MTU (23..max, max = l2cap_max_le_mtu())
+ * when mtu = 0, max LE MTU is used
+ * @param[in] security_level security level
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_ALREADY_REGISTERED
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-int l2cap_send(uint16_t local_cid, uint8_t *data, uint16_t len);
+uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu,
+ gap_security_level_t security_level);
/**
- * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ * @brief Unregisters L2CAP service with given PSM.
+ *
+ * @param[in] psm SPSM (LE_PSM)
*/
-uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu, gap_security_level_t security_level);
+void l2cap_unregister_service(uint16_t psm);
/**
- * @brief Unregisters L2CAP service with given PSM. On embedded systems, use NULL for connection parameter.
+ * @brief Create a credit based connection for SPSM
+ *
+ *
+ * @param[in] credits initial credits assigned to peer
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] handle connection handle
+ * @param[out] local_cid identifier of the newly create channel
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_NOT_REGISTERED
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ * * L2CAP_CONNECTION_INSUFFICIENT_SECURITY
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-void l2cap_unregister_service(uint16_t psm);
+uint8_t l2cap_create_le_credit_based_connection_request(uint16_t credits, uint16_t psm, uint16_t handle, uint16_t *local_cid);
/**
- * @brief Accepts incoming L2CAP connection.
+ * @brief Get credits information of a credit based connection
+ *
+ * `local_credits`: how many K-frames the peer is capable to receive,
+ * i.e. how many K-frames we (the _local_) can transmit;
+ *
+ * `peer_credits`: `local_credits` in the peer.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] peer_credits peer credits at present
+ * @param[in] local_credits local credits at present
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_accept_connection(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
+uint8_t l2cap_get_le_credit_based_connection_credits(uint16_t local_cid,
+ uint32_t *peer_credits, uint32_t *local_credits);
+/**
+ * @brief send an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data data of the SDU
+ * @param[in] len total length of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * (see `l2cap_credit_based_send_continue`)
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+int l2cap_credit_based_send(uint16_t local_cid, const uint8_t *data, uint16_t len);
/**
- * @brief Deny incoming L2CAP connection.
+ * @brief continue sending an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data remaining data of the SDU that has not been sent
+ * @param[in] len length of remaining data of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_decline_connection(uint16_t local_cid, uint8_t reason);
-// WARNING: ^^^ this API is not available in this release
+int l2cap_credit_based_send_continue(uint16_t local_cid, const uint8_t *data, uint16_t len);
+/**
+ * @brief add more credits to the peer of the specified channel, or rather notify
+ * the peer that _local_ are capable of receiving more K-frames.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] credits credits to be added to the peer
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+uint8_t l2cap_le_send_flow_control_credit(uint16_t local_cid, uint16_t credits);
/**
* @brief Check if outgoing buffer is available and that there's space on the Bluetooth module
@@ -124,42 +186,45 @@ int l2cap_can_send_packet_now(uint16_t local_cid);
* @brief Request emission of L2CAP_EVENT_CAN_SEND_NOW as soon as possible
* @note L2CAP_EVENT_CAN_SEND_NOW might be emitted during call to this function
* so packet handler should be ready to handle it
- * @param local_cid
+ * @param[in] local_cid local channel identifier
*/
void l2cap_request_can_send_now_event(uint16_t local_cid);
/**
* @brief Request an update of the connection parameter for a given LE connection
- * @param handle
- * @param conn_interval_min (unit: 1.25ms)
- * @param conn_interval_max (unit: 1.25ms)
- * @param conn_latency
- * @param supervision_timeout (unit: 10ms)
- * @returns 0 if ok
- */
-int l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
+ *
+ * Note: only Peripheral role can call this API.
+ *
+ * @param[in] handle connection handle
+ * @param[in] conn_interval_min (unit: 1.25ms)
+ * @param[in] conn_interval_max (unit: 1.25ms)
+ * @param[in] conn_latency slave latency
+ * @param[in] supervision_timeout (unit: 10ms)
+ * @returns 0 if successful else error occurs:
+ * * ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER
+ */
+uint8_t l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
uint16_t conn_interval_max, uint16_t conn_latency, uint16_t supervision_timeout);
-#ifdef CONNECTION_PARAMETER_DYNAMICALLY_ADJUST
-uint8_t l2cap_update_MTU_on_LL_link(l2cap_channel_t * channel);
-#endif
+/** @brief for PTS Testing
+ */
+uint8_t l2cap_send_echo_request(hci_con_handle_t con_handle, const uint8_t *data, uint16_t len);
/* API_END */
#ifdef __cplusplus
}
#endif
-/*to define the error result of the connection response*/
-#ifdef L2CAP_CREDIT_BASED_FLOW_CONTROL_MODE
-#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
-#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
-#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
-#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
-#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
-#endif
+
+/* Error result of the connection response */
+#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
+#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
+#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
+#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
+#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
#endif // __L2CAP_H
diff --git a/bundles/noos_mass_conn/inc/le_device_db.h b/bundles/noos_mass_conn/inc/le_device_db.h
index 03f8e550f..b81d04f5a 100644
--- a/bundles/noos_mass_conn/inc/le_device_db.h
+++ b/bundles/noos_mass_conn/inc/le_device_db.h
@@ -41,15 +41,9 @@ typedef struct le_device_memory_db {
#pragma pack (pop)
-typedef struct white_list
-{
- uint8_t addr_type;
- bd_addr_t addr;
-}white_list_t;
-
/**
- LE Device DB for pure LE Peripherals is only required for signed writes
+ LE Device DB is only required for signed writes
Per bonded device, it can store
- it stores the Identity Resolving Key (IRK) and its address to resolve private addresses
@@ -60,7 +54,6 @@ typedef struct white_list
*/
-
// LE Device db interface
/* API_START */
diff --git a/bundles/noos_mass_conn/inc/ll_api.h b/bundles/noos_mass_conn/inc/ll_api.h
index e8b17ef4a..877a84328 100644
--- a/bundles/noos_mass_conn/inc/ll_api.h
+++ b/bundles/noos_mass_conn/inc/ll_api.h
@@ -253,14 +253,15 @@ typedef void (* f_ll_raw_packet_done)(struct ll_raw_packet *packet, void *user_d
*
* @param[in] packet the packet object
* @param[in] header header sending before packet length
- * @param[in] freq_mhz freqency in MHz
+ * @param[in] freq_mhz frequency in MHz
* When 0: use the channel specified in `ll_raw_packet_set_param`)
* @return 0 if successful else error code
*
*
* Note: Only a subset of uint8_t are supported in `header`;
* When bare mode is used, CRC & whitening are all handled by apps;
- * When bare mode is used, `crc_init` is ignored.
+ * When bare mode is used, `crc_init` is ignored;
+ * When `freq_mhz` is not zero, BLE activities near this raw packets might be affected.
****************************************************************************************
*/
// int ll_raw_packet_set_bare_mode(struct ll_raw_packet *packet,
diff --git a/bundles/noos_mass_conn/inc/sm.h b/bundles/noos_mass_conn/inc/sm.h
index 0213e5e3f..874e028a5 100644
--- a/bundles/noos_mass_conn/inc/sm.h
+++ b/bundles/noos_mass_conn/inc/sm.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_typical/ING9168xx/apis.json b/bundles/noos_typical/ING9168xx/apis.json
index d8f070b00..8b8c56a99 100644
--- a/bundles/noos_typical/ING9168xx/apis.json
+++ b/bundles/noos_typical/ING9168xx/apis.json
@@ -1,251 +1,248 @@
{
- "att_dispatch_client_can_send_now": "0x02004541",
- "att_dispatch_client_request_can_send_now_event": "0x02004547",
- "att_dispatch_register_client": "0x0200454d",
- "att_dispatch_register_server": "0x02004561",
- "att_dispatch_server_can_send_now": "0x02004575",
- "att_dispatch_server_request_can_send_now_event": "0x0200457b",
- "att_emit_general_event": "0x0200462d",
- "att_server_can_send_packet_now": "0x02004d49",
- "att_server_deferred_read_response": "0x02004d4d",
- "att_server_get_mtu": "0x02004d65",
- "att_server_indicate": "0x02004ddd",
- "att_server_init": "0x02004e61",
- "att_server_notify": "0x02004e9d",
- "att_server_register_packet_handler": "0x02004fb5",
- "att_server_request_can_send_now_event": "0x02004fc1",
- "att_set_db": "0x02004fdd",
- "att_set_read_callback": "0x02004ff1",
- "att_set_write_callback": "0x02004ffd",
- "bd_addr_cmp": "0x020051e5",
- "bd_addr_copy": "0x020051eb",
- "bd_addr_to_str": "0x020051f5",
- "big_endian_read_16": "0x0200522d",
- "big_endian_read_32": "0x02005235",
- "big_endian_store_16": "0x02005249",
- "big_endian_store_32": "0x02005255",
- "btstack_config": "0x020053b5",
- "btstack_memory_pool_create": "0x02005503",
- "btstack_memory_pool_free": "0x0200552d",
- "btstack_memory_pool_get": "0x0200558d",
- "btstack_push_user_msg": "0x020055d5",
- "btstack_push_user_runnable": "0x020055e1",
- "char_for_nibble": "0x02005867",
- "gap_add_dev_to_periodic_list": "0x020061e1",
- "gap_add_whitelist": "0x020061f9",
- "gap_aes_encrypt": "0x0200620d",
- "gap_clear_white_lists": "0x02006251",
- "gap_clr_adv_set": "0x02006261",
- "gap_clr_periodic_adv_list": "0x02006271",
- "gap_create_connection_cancel": "0x02006281",
- "gap_default_periodic_adv_sync_transfer_param": "0x02006291",
- "gap_disconnect": "0x020062a9",
- "gap_disconnect_all": "0x020062d5",
- "gap_ext_create_connection": "0x02006315",
- "gap_get_connection_parameter_range": "0x02006405",
- "gap_le_read_channel_map": "0x02006441",
- "gap_periodic_adv_create_sync": "0x020064b5",
- "gap_periodic_adv_create_sync_cancel": "0x020064d9",
- "gap_periodic_adv_set_info_transfer": "0x020064e9",
- "gap_periodic_adv_sync_transfer": "0x02006501",
- "gap_periodic_adv_sync_transfer_param": "0x02006519",
- "gap_periodic_adv_term_sync": "0x02006535",
- "gap_read_antenna_info": "0x020065c9",
- "gap_read_periodic_adv_list_size": "0x020065d9",
- "gap_read_phy": "0x020065e9",
- "gap_read_remote_used_features": "0x020065fd",
- "gap_read_remote_version": "0x02006611",
- "gap_read_rssi": "0x02006625",
- "gap_remove_whitelist": "0x02006639",
- "gap_rmv_adv_set": "0x020066bd",
- "gap_rmv_dev_from_periodic_list": "0x020066d1",
- "gap_rx_test_v2": "0x020066e9",
- "gap_rx_test_v3": "0x02006701",
- "gap_set_adv_set_random_addr": "0x02006751",
- "gap_set_connection_cte_request_enable": "0x0200679d",
- "gap_set_connection_cte_response_enable": "0x020067b9",
- "gap_set_connection_cte_rx_param": "0x020067cd",
- "gap_set_connection_cte_tx_param": "0x02006829",
- "gap_set_connection_parameter_range": "0x0200687d",
- "gap_set_connectionless_cte_tx_enable": "0x02006895",
- "gap_set_connectionless_cte_tx_param": "0x020068a9",
- "gap_set_connectionless_iq_sampling_enable": "0x02006909",
- "gap_set_data_length": "0x0200696d",
- "gap_set_def_phy": "0x02006989",
- "gap_set_ext_adv_data": "0x020069a1",
- "gap_set_ext_adv_enable": "0x020069b9",
- "gap_set_ext_adv_para": "0x02006a35",
- "gap_set_ext_scan_enable": "0x02006b0d",
- "gap_set_ext_scan_para": "0x02006b25",
- "gap_set_ext_scan_response_data": "0x02006bcd",
- "gap_set_host_channel_classification": "0x02006be5",
- "gap_set_periodic_adv_data": "0x02006bf9",
- "gap_set_periodic_adv_enable": "0x02006c6d",
- "gap_set_periodic_adv_para": "0x02006c81",
- "gap_set_periodic_adv_rx_enable": "0x02006c99",
- "gap_set_phy": "0x02006cad",
- "gap_set_random_device_address": "0x02006cc9",
- "gap_start_ccm": "0x02006cf9",
- "gap_test_end": "0x02006d2d",
- "gap_tx_test_v2": "0x02006d3d",
- "gap_tx_test_v4": "0x02006d55",
- "gap_update_connection_parameters": "0x02006d7d",
- "gap_vendor_tx_continuous_wave": "0x02006dc1",
- "gatt_client_cancel_write": "0x020072e9",
- "gatt_client_discover_characteristic_descriptors": "0x0200730f",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0200734f",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200739f",
- "gatt_client_discover_characteristics_for_service": "0x020073ef",
- "gatt_client_discover_primary_services": "0x02007425",
- "gatt_client_discover_primary_services_by_uuid128": "0x02007457",
- "gatt_client_discover_primary_services_by_uuid16": "0x0200749b",
- "gatt_client_execute_write": "0x020074d9",
- "gatt_client_find_included_services_for_service": "0x020074ff",
- "gatt_client_get_mtu": "0x0200752d",
- "gatt_client_is_ready": "0x020075f1",
- "gatt_client_listen_for_characteristic_value_updates": "0x02007607",
- "gatt_client_prepare_write": "0x02007629",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007665",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200768f",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007695",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x020076c3",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020076c9",
- "gatt_client_read_multiple_characteristic_values": "0x020076f7",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007727",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007755",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x020077a1",
- "gatt_client_register_handler": "0x020077ed",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x020077f9",
- "gatt_client_signed_write_without_response": "0x02007c2d",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007cf1",
- "gatt_client_write_client_characteristic_configuration": "0x02007d2b",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007d7d",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007d8d",
- "gatt_client_write_long_value_of_characteristic": "0x02007dc9",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007dd9",
- "gatt_client_write_value_of_characteristic": "0x02007e15",
- "gatt_client_write_value_of_characteristic_without_response": "0x02007e4b",
- "hci_add_event_handler": "0x02009441",
- "hci_power_control": "0x02009c41",
- "hci_register_acl_packet_handler": "0x02009df5",
- "kv_commit": "0x0200a349",
- "kv_get": "0x0200a3a1",
- "kv_init": "0x0200a3b9",
- "kv_put": "0x0200a421",
- "kv_remove": "0x0200a499",
- "kv_remove_all": "0x0200a4d5",
- "kv_value_modified": "0x0200a519",
- "kv_visit": "0x0200a51d",
- "l2cap_can_send_fixed_channel_packet_now": "0x0200a5dd",
- "l2cap_can_send_packet_now": "0x0200a5e1",
- "l2cap_create_channel": "0x0200a799",
- "l2cap_disconnect": "0x0200a8d5",
- "l2cap_get_remote_mtu_for_local_cid": "0x0200aa99",
- "l2cap_init": "0x0200aefd",
- "l2cap_le_send_flow_control_credit": "0x0200af3d",
- "l2cap_max_le_mtu": "0x0200b1fd",
- "l2cap_max_mtu": "0x0200b201",
- "l2cap_register_fixed_channel": "0x0200b30d",
- "l2cap_register_packet_handler": "0x0200b329",
- "l2cap_register_service": "0x0200b335",
- "l2cap_request_can_send_fix_channel_now_event": "0x0200b419",
- "l2cap_request_can_send_now_event": "0x0200b43d",
- "l2cap_request_connection_parameter_update": "0x0200b457",
- "l2cap_send": "0x0200b805",
- "l2cap_send_connectionless": "0x0200b87d",
- "l2cap_send_connectionless3": "0x0200b90d",
- "l2cap_send_echo_request": "0x0200b9a5",
- "l2cap_unregister_service": "0x0200ba81",
- "le_device_db_add": "0x0200bad9",
- "le_device_db_find": "0x0200bbad",
- "le_device_db_from_key": "0x0200bbd9",
- "le_device_db_iter_cur": "0x0200bbe1",
- "le_device_db_iter_cur_key": "0x0200bbe5",
- "le_device_db_iter_init": "0x0200bbe9",
- "le_device_db_iter_next": "0x0200bbf1",
- "le_device_db_remove_key": "0x0200bc17",
- "ll_adjust_conn_peer_tx_power": "0x0200bc45",
- "ll_free": "0x0200bc71",
- "ll_hint_on_ce_len": "0x0200bc7d",
- "ll_legacy_adv_set_interval": "0x0200bcb5",
- "ll_malloc": "0x0200bcc5",
- "ll_scan_set_fixed_channel": "0x0200be35",
- "ll_set_adv_access_address": "0x0200bf49",
- "ll_set_adv_coded_scheme": "0x0200bf55",
- "ll_set_conn_coded_scheme": "0x0200bf8d",
- "ll_set_conn_latency": "0x0200bfb9",
- "ll_set_conn_tx_power": "0x0200bfe9",
- "ll_set_def_antenna": "0x0200c025",
- "ll_set_initiating_coded_scheme": "0x0200c045",
- "ll_set_max_conn_number": "0x0200c051",
- "ll_set_tx_power_range": "0x0200c0ed",
- "nibble_for_char": "0x0201e7ed",
- "platform_32k_rc_auto_tune": "0x0201e885",
- "platform_32k_rc_tune": "0x0201e8d1",
- "platform_calibrate_32k": "0x0201e8ed",
- "platform_config": "0x0201e8f1",
- "platform_controller_run": "0x0201e9bd",
- "platform_get_gen_os_driver": "0x0201e9f5",
- "platform_get_task_handle": "0x0201ea01",
- "platform_get_us_time": "0x0201ea19",
- "platform_get_version": "0x0201ea1d",
- "platform_hrng": "0x0201ea25",
- "platform_init_controller": "0x0201ea2d",
- "platform_os_idle_resumed_hook": "0x0201ea49",
- "platform_patch_rf_init_data": "0x0201ea4d",
- "platform_post_sleep_processing": "0x0201ea59",
- "platform_pre_sleep_processing": "0x0201ea5f",
- "platform_pre_suppress_ticks_and_sleep_processing": "0x0201ea65",
- "platform_printf": "0x0201ea69",
- "platform_raise_assertion": "0x0201ea7d",
- "platform_rand": "0x0201ea91",
- "platform_read_info": "0x0201ea95",
- "platform_read_persistent_reg": "0x0201eac5",
- "platform_reset": "0x0201ead1",
- "platform_set_evt_callback": "0x0201ead9",
- "platform_set_irq_callback": "0x0201eaed",
- "platform_set_rf_clk_source": "0x0201eb25",
- "platform_set_rf_init_data": "0x0201eb31",
- "platform_set_rf_power_mapping": "0x0201eb3d",
- "platform_set_timer": "0x0201eb49",
- "platform_shutdown": "0x0201eb4d",
- "platform_switch_app": "0x0201eb51",
- "platform_trace_raw": "0x0201eb6d",
- "platform_write_persistent_reg": "0x0201eb85",
- "printf_hexdump": "0x0201eb99",
- "reverse_128": "0x0201ef0d",
- "reverse_24": "0x0201ef13",
- "reverse_48": "0x0201ef19",
- "reverse_56": "0x0201ef1f",
- "reverse_64": "0x0201ef25",
- "reverse_bd_addr": "0x0201ef2b",
- "reverse_bytes": "0x0201ef31",
- "sm_add_event_handler": "0x0201f24d",
- "sm_address_resolution_lookup": "0x0201f3a5",
- "sm_authenticated": "0x0201f6fd",
- "sm_authorization_decline": "0x0201f70b",
- "sm_authorization_grant": "0x0201f72b",
- "sm_authorization_state": "0x0201f74b",
- "sm_bonding_decline": "0x0201f765",
- "sm_config": "0x0201fb7d",
- "sm_config_conn": "0x0201fb95",
- "sm_encryption_key_size": "0x0201fd4b",
- "sm_just_works_confirm": "0x02020285",
- "sm_le_device_key": "0x020205c1",
- "sm_passkey_input": "0x02020657",
- "sm_private_random_address_generation_get": "0x02020a05",
- "sm_private_random_address_generation_get_mode": "0x02020a0d",
- "sm_private_random_address_generation_set_mode": "0x02020a19",
- "sm_private_random_address_generation_set_update_period": "0x02020a41",
- "sm_register_oob_data_callback": "0x02020b7d",
- "sm_request_pairing": "0x02020b89",
- "sm_send_security_request": "0x020215af",
- "sm_set_accepted_stk_generation_methods": "0x020215d5",
- "sm_set_authentication_requirements": "0x020215e1",
- "sm_set_encryption_key_size_range": "0x020215ed",
- "sscanf_bd_addr": "0x0202194d",
- "sysSetPublicDeviceAddr": "0x02021d15",
- "uuid128_to_str": "0x02022461",
- "uuid_add_bluetooth_prefix": "0x020224b9",
- "uuid_has_bluetooth_prefix": "0x020224d9"
+ "att_dispatch_client_can_send_now": "0x02004285",
+ "att_dispatch_client_request_can_send_now_event": "0x0200428b",
+ "att_dispatch_register_client": "0x02004291",
+ "att_dispatch_register_server": "0x020042a5",
+ "att_dispatch_server_can_send_now": "0x020042b9",
+ "att_dispatch_server_request_can_send_now_event": "0x020042bf",
+ "att_emit_general_event": "0x02004371",
+ "att_server_can_send_packet_now": "0x02004a8d",
+ "att_server_deferred_read_response": "0x02004a91",
+ "att_server_get_mtu": "0x02004aa9",
+ "att_server_indicate": "0x02004b21",
+ "att_server_init": "0x02004ba5",
+ "att_server_notify": "0x02004be1",
+ "att_server_register_packet_handler": "0x02004cf9",
+ "att_server_request_can_send_now_event": "0x02004d05",
+ "att_set_db": "0x02004d21",
+ "att_set_read_callback": "0x02004d35",
+ "att_set_write_callback": "0x02004d41",
+ "bd_addr_cmp": "0x02004f29",
+ "bd_addr_copy": "0x02004f2f",
+ "bd_addr_to_str": "0x02004f39",
+ "big_endian_read_16": "0x02004f71",
+ "big_endian_read_32": "0x02004f79",
+ "big_endian_store_16": "0x02004f8d",
+ "big_endian_store_32": "0x02004f99",
+ "btstack_config": "0x020050f9",
+ "btstack_memory_pool_create": "0x02005247",
+ "btstack_memory_pool_free": "0x02005271",
+ "btstack_memory_pool_get": "0x020052d1",
+ "btstack_push_user_msg": "0x02005319",
+ "btstack_push_user_runnable": "0x02005325",
+ "char_for_nibble": "0x020055ab",
+ "gap_add_dev_to_periodic_list": "0x02005f4d",
+ "gap_add_whitelist": "0x02005f65",
+ "gap_aes_encrypt": "0x02005f79",
+ "gap_clear_white_lists": "0x02005fbd",
+ "gap_clr_adv_set": "0x02005fcd",
+ "gap_clr_periodic_adv_list": "0x02005fdd",
+ "gap_create_connection_cancel": "0x02005fed",
+ "gap_default_periodic_adv_sync_transfer_param": "0x02005ffd",
+ "gap_disconnect": "0x02006015",
+ "gap_disconnect_all": "0x02006041",
+ "gap_ext_create_connection": "0x02006081",
+ "gap_get_connection_parameter_range": "0x02006171",
+ "gap_le_read_channel_map": "0x020061ad",
+ "gap_periodic_adv_create_sync": "0x02006221",
+ "gap_periodic_adv_create_sync_cancel": "0x02006245",
+ "gap_periodic_adv_set_info_transfer": "0x02006255",
+ "gap_periodic_adv_sync_transfer": "0x0200626d",
+ "gap_periodic_adv_sync_transfer_param": "0x02006285",
+ "gap_periodic_adv_term_sync": "0x020062a1",
+ "gap_read_antenna_info": "0x02006335",
+ "gap_read_periodic_adv_list_size": "0x02006345",
+ "gap_read_phy": "0x02006355",
+ "gap_read_remote_used_features": "0x02006369",
+ "gap_read_remote_version": "0x0200637d",
+ "gap_read_rssi": "0x02006391",
+ "gap_remove_whitelist": "0x020063a5",
+ "gap_rmv_adv_set": "0x02006429",
+ "gap_rmv_dev_from_periodic_list": "0x0200643d",
+ "gap_rx_test_v2": "0x02006455",
+ "gap_rx_test_v3": "0x0200646d",
+ "gap_set_adv_set_random_addr": "0x020064bd",
+ "gap_set_connection_cte_request_enable": "0x02006509",
+ "gap_set_connection_cte_response_enable": "0x02006525",
+ "gap_set_connection_cte_rx_param": "0x02006539",
+ "gap_set_connection_cte_tx_param": "0x02006595",
+ "gap_set_connection_parameter_range": "0x020065e9",
+ "gap_set_connectionless_cte_tx_enable": "0x02006601",
+ "gap_set_connectionless_cte_tx_param": "0x02006615",
+ "gap_set_connectionless_iq_sampling_enable": "0x02006675",
+ "gap_set_data_length": "0x020066d9",
+ "gap_set_def_phy": "0x020066f5",
+ "gap_set_ext_adv_data": "0x0200670d",
+ "gap_set_ext_adv_enable": "0x02006725",
+ "gap_set_ext_adv_para": "0x020067a1",
+ "gap_set_ext_scan_enable": "0x02006879",
+ "gap_set_ext_scan_para": "0x02006891",
+ "gap_set_ext_scan_response_data": "0x02006939",
+ "gap_set_host_channel_classification": "0x02006951",
+ "gap_set_periodic_adv_data": "0x02006965",
+ "gap_set_periodic_adv_enable": "0x020069d9",
+ "gap_set_periodic_adv_para": "0x020069ed",
+ "gap_set_periodic_adv_rx_enable": "0x02006a05",
+ "gap_set_phy": "0x02006a19",
+ "gap_set_random_device_address": "0x02006a35",
+ "gap_start_ccm": "0x02006a65",
+ "gap_test_end": "0x02006a99",
+ "gap_tx_test_v2": "0x02006aa9",
+ "gap_tx_test_v4": "0x02006ac1",
+ "gap_update_connection_parameters": "0x02006ae9",
+ "gap_vendor_tx_continuous_wave": "0x02006b2d",
+ "gatt_client_cancel_write": "0x02007055",
+ "gatt_client_discover_characteristic_descriptors": "0x0200707b",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020070bb",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200710b",
+ "gatt_client_discover_characteristics_for_service": "0x0200715b",
+ "gatt_client_discover_primary_services": "0x02007191",
+ "gatt_client_discover_primary_services_by_uuid128": "0x020071c3",
+ "gatt_client_discover_primary_services_by_uuid16": "0x02007207",
+ "gatt_client_execute_write": "0x02007245",
+ "gatt_client_find_included_services_for_service": "0x0200726b",
+ "gatt_client_get_mtu": "0x02007299",
+ "gatt_client_is_ready": "0x0200735d",
+ "gatt_client_listen_for_characteristic_value_updates": "0x02007373",
+ "gatt_client_prepare_write": "0x02007395",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020073d1",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020073fb",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007401",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0200742f",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02007435",
+ "gatt_client_read_multiple_characteristic_values": "0x02007463",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007493",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x020074c1",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x0200750d",
+ "gatt_client_register_handler": "0x02007559",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x02007565",
+ "gatt_client_signed_write_without_response": "0x02007999",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007a5d",
+ "gatt_client_write_client_characteristic_configuration": "0x02007a97",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007ae9",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007af9",
+ "gatt_client_write_long_value_of_characteristic": "0x02007b35",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007b45",
+ "gatt_client_write_value_of_characteristic": "0x02007b81",
+ "gatt_client_write_value_of_characteristic_without_response": "0x02007bb7",
+ "hci_add_event_handler": "0x020091ad",
+ "hci_power_control": "0x020099ad",
+ "hci_register_acl_packet_handler": "0x02009b61",
+ "kv_commit": "0x0200a0b5",
+ "kv_get": "0x0200a10d",
+ "kv_init": "0x0200a125",
+ "kv_put": "0x0200a18d",
+ "kv_remove": "0x0200a205",
+ "kv_remove_all": "0x0200a241",
+ "kv_value_modified": "0x0200a285",
+ "kv_visit": "0x0200a289",
+ "l2cap_add_event_handler": "0x0200a33d",
+ "l2cap_can_send_packet_now": "0x0200a34d",
+ "l2cap_create_le_credit_based_connection_request": "0x0200a511",
+ "l2cap_credit_based_send": "0x0200a659",
+ "l2cap_credit_based_send_continue": "0x0200a685",
+ "l2cap_disconnect": "0x0200a701",
+ "l2cap_get_le_credit_based_connection_credits": "0x0200a8ed",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0200a909",
+ "l2cap_init": "0x0200ad49",
+ "l2cap_le_send_flow_control_credit": "0x0200ae3f",
+ "l2cap_max_le_mtu": "0x0200b14d",
+ "l2cap_register_packet_handler": "0x0200b275",
+ "l2cap_register_service": "0x0200b281",
+ "l2cap_request_can_send_now_event": "0x0200b391",
+ "l2cap_request_connection_parameter_update": "0x0200b3ab",
+ "l2cap_send_echo_request": "0x0200b88d",
+ "l2cap_unregister_service": "0x0200b96d",
+ "le_device_db_add": "0x0200b9c5",
+ "le_device_db_find": "0x0200ba99",
+ "le_device_db_from_key": "0x0200bac5",
+ "le_device_db_iter_cur": "0x0200bacd",
+ "le_device_db_iter_cur_key": "0x0200bad1",
+ "le_device_db_iter_init": "0x0200bad5",
+ "le_device_db_iter_next": "0x0200badd",
+ "le_device_db_remove_key": "0x0200bb03",
+ "ll_adjust_conn_peer_tx_power": "0x0200bb31",
+ "ll_free": "0x0200bb5d",
+ "ll_hint_on_ce_len": "0x0200bb69",
+ "ll_legacy_adv_set_interval": "0x0200bba1",
+ "ll_malloc": "0x0200bbb1",
+ "ll_scan_set_fixed_channel": "0x0200bd21",
+ "ll_set_adv_access_address": "0x0200be35",
+ "ll_set_adv_coded_scheme": "0x0200be41",
+ "ll_set_conn_coded_scheme": "0x0200be79",
+ "ll_set_conn_latency": "0x0200bea5",
+ "ll_set_conn_tx_power": "0x0200bed5",
+ "ll_set_def_antenna": "0x0200bf11",
+ "ll_set_initiating_coded_scheme": "0x0200bf31",
+ "ll_set_max_conn_number": "0x0200bf3d",
+ "ll_set_tx_power_range": "0x0200bfd9",
+ "nibble_for_char": "0x0201e6e1",
+ "platform_32k_rc_auto_tune": "0x0201e779",
+ "platform_32k_rc_tune": "0x0201e7c5",
+ "platform_calibrate_32k": "0x0201e7e1",
+ "platform_config": "0x0201e7e5",
+ "platform_controller_run": "0x0201e8b1",
+ "platform_get_gen_os_driver": "0x0201e8e9",
+ "platform_get_task_handle": "0x0201e8f5",
+ "platform_get_us_time": "0x0201e90d",
+ "platform_get_version": "0x0201e911",
+ "platform_hrng": "0x0201e919",
+ "platform_init_controller": "0x0201e921",
+ "platform_os_idle_resumed_hook": "0x0201e93d",
+ "platform_patch_rf_init_data": "0x0201e941",
+ "platform_post_sleep_processing": "0x0201e94d",
+ "platform_pre_sleep_processing": "0x0201e953",
+ "platform_pre_suppress_ticks_and_sleep_processing": "0x0201e959",
+ "platform_printf": "0x0201e95d",
+ "platform_raise_assertion": "0x0201e971",
+ "platform_rand": "0x0201e985",
+ "platform_read_info": "0x0201e989",
+ "platform_read_persistent_reg": "0x0201e9b9",
+ "platform_reset": "0x0201e9c5",
+ "platform_set_evt_callback": "0x0201e9d9",
+ "platform_set_irq_callback": "0x0201e9ed",
+ "platform_set_rf_clk_source": "0x0201ea25",
+ "platform_set_rf_init_data": "0x0201ea31",
+ "platform_set_rf_power_mapping": "0x0201ea3d",
+ "platform_set_timer": "0x0201ea49",
+ "platform_shutdown": "0x0201ea4d",
+ "platform_switch_app": "0x0201ea51",
+ "platform_trace_raw": "0x0201ea69",
+ "platform_write_persistent_reg": "0x0201ea81",
+ "printf_hexdump": "0x0201ea95",
+ "reverse_128": "0x0201ee09",
+ "reverse_24": "0x0201ee0f",
+ "reverse_48": "0x0201ee15",
+ "reverse_56": "0x0201ee1b",
+ "reverse_64": "0x0201ee21",
+ "reverse_bd_addr": "0x0201ee27",
+ "reverse_bytes": "0x0201ee2d",
+ "sm_add_event_handler": "0x0201f149",
+ "sm_address_resolution_lookup": "0x0201f2a1",
+ "sm_authenticated": "0x0201f5f9",
+ "sm_authorization_decline": "0x0201f607",
+ "sm_authorization_grant": "0x0201f627",
+ "sm_authorization_state": "0x0201f647",
+ "sm_bonding_decline": "0x0201f661",
+ "sm_config": "0x0201fa79",
+ "sm_config_conn": "0x0201fa91",
+ "sm_encryption_key_size": "0x0201fc47",
+ "sm_just_works_confirm": "0x02020181",
+ "sm_le_device_key": "0x020204bd",
+ "sm_passkey_input": "0x02020553",
+ "sm_private_random_address_generation_get": "0x02020901",
+ "sm_private_random_address_generation_get_mode": "0x02020909",
+ "sm_private_random_address_generation_set_mode": "0x02020915",
+ "sm_private_random_address_generation_set_update_period": "0x0202093d",
+ "sm_register_oob_data_callback": "0x02020a79",
+ "sm_request_pairing": "0x02020a85",
+ "sm_send_security_request": "0x020214ab",
+ "sm_set_accepted_stk_generation_methods": "0x020214d1",
+ "sm_set_authentication_requirements": "0x020214dd",
+ "sm_set_encryption_key_size_range": "0x020214e9",
+ "sscanf_bd_addr": "0x02021849",
+ "sysSetPublicDeviceAddr": "0x02021c11",
+ "uuid128_to_str": "0x02022359",
+ "uuid_add_bluetooth_prefix": "0x020223b1",
+ "uuid_has_bluetooth_prefix": "0x020223d1"
}
\ No newline at end of file
diff --git a/bundles/noos_typical/ING9168xx/meta.json b/bundles/noos_typical/ING9168xx/meta.json
index 7adf359d8..601d47dd3 100644
--- a/bundles/noos_typical/ING9168xx/meta.json
+++ b/bundles/noos_typical/ING9168xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 5492
+ "size": 4492
},
"rom": {
"base": 33562624,
- "size": 141472
+ "size": 141204
},
"version": [
2,
0,
- 20
+ 23
]
}
\ No newline at end of file
diff --git a/bundles/noos_typical/ING9168xx/platform.bin b/bundles/noos_typical/ING9168xx/platform.bin
index d3497c70e..e42be3917 100644
Binary files a/bundles/noos_typical/ING9168xx/platform.bin and b/bundles/noos_typical/ING9168xx/platform.bin differ
diff --git a/bundles/noos_typical/ING9187xx/apis.json b/bundles/noos_typical/ING9187xx/apis.json
index 10ae3a9ed..78e7b5a7c 100644
--- a/bundles/noos_typical/ING9187xx/apis.json
+++ b/bundles/noos_typical/ING9187xx/apis.json
@@ -1,236 +1,233 @@
{
- "att_dispatch_client_can_send_now": "0x00005929",
- "att_dispatch_client_request_can_send_now_event": "0x0000592f",
- "att_dispatch_register_client": "0x00005935",
- "att_dispatch_register_server": "0x00005949",
- "att_dispatch_server_can_send_now": "0x0000595d",
- "att_dispatch_server_request_can_send_now_event": "0x00005963",
- "att_emit_general_event": "0x00005a15",
- "att_server_can_send_packet_now": "0x00006129",
- "att_server_deferred_read_response": "0x0000612d",
- "att_server_get_mtu": "0x00006145",
- "att_server_indicate": "0x000061bd",
- "att_server_init": "0x00006241",
- "att_server_notify": "0x0000627d",
- "att_server_register_packet_handler": "0x00006395",
- "att_server_request_can_send_now_event": "0x000063a1",
- "att_set_db": "0x000063bd",
- "att_set_read_callback": "0x000063d1",
- "att_set_write_callback": "0x000063dd",
- "bd_addr_cmp": "0x0000654d",
- "bd_addr_copy": "0x00006553",
- "bd_addr_to_str": "0x0000655d",
- "big_endian_read_16": "0x00006595",
- "big_endian_read_32": "0x0000659d",
- "big_endian_store_16": "0x000065b1",
- "big_endian_store_32": "0x000065bd",
- "btstack_config": "0x000066f5",
- "btstack_memory_pool_create": "0x00006843",
- "btstack_memory_pool_free": "0x0000686d",
- "btstack_memory_pool_get": "0x000068cd",
- "btstack_push_user_msg": "0x00006915",
- "btstack_push_user_runnable": "0x00006921",
- "char_for_nibble": "0x00006b91",
- "gap_add_dev_to_periodic_list": "0x00007445",
- "gap_add_whitelist": "0x0000745d",
- "gap_aes_encrypt": "0x00007471",
- "gap_clear_white_lists": "0x000074b5",
- "gap_clr_adv_set": "0x000074c5",
- "gap_clr_periodic_adv_list": "0x000074d5",
- "gap_create_connection_cancel": "0x000074e5",
- "gap_disconnect": "0x000074f5",
- "gap_disconnect_all": "0x00007521",
- "gap_ext_create_connection": "0x00007561",
- "gap_get_connection_parameter_range": "0x00007651",
- "gap_le_read_channel_map": "0x0000768d",
- "gap_periodic_adv_create_sync": "0x00007701",
- "gap_periodic_adv_create_sync_cancel": "0x00007725",
- "gap_periodic_adv_term_sync": "0x00007735",
- "gap_read_periodic_adv_list_size": "0x000077c9",
- "gap_read_phy": "0x000077d9",
- "gap_read_remote_used_features": "0x000077ed",
- "gap_read_remote_version": "0x00007801",
- "gap_read_rssi": "0x00007815",
- "gap_remove_whitelist": "0x00007829",
- "gap_rmv_adv_set": "0x000078ad",
- "gap_rmv_dev_from_periodic_list": "0x000078c1",
- "gap_rx_test_v2": "0x000078d9",
- "gap_set_adv_set_random_addr": "0x00007919",
- "gap_set_connection_parameter_range": "0x00007965",
- "gap_set_data_length": "0x0000797d",
- "gap_set_def_phy": "0x00007999",
- "gap_set_ext_adv_data": "0x000079b1",
- "gap_set_ext_adv_enable": "0x000079c9",
- "gap_set_ext_adv_para": "0x00007a45",
- "gap_set_ext_scan_enable": "0x00007b25",
- "gap_set_ext_scan_para": "0x00007b3d",
- "gap_set_ext_scan_response_data": "0x00007be5",
- "gap_set_host_channel_classification": "0x00007bfd",
- "gap_set_periodic_adv_data": "0x00007c11",
- "gap_set_periodic_adv_enable": "0x00007c85",
- "gap_set_periodic_adv_para": "0x00007c99",
- "gap_set_phy": "0x00007cb1",
- "gap_set_random_device_address": "0x00007ccd",
- "gap_start_ccm": "0x00007cfd",
- "gap_test_end": "0x00007d31",
- "gap_tx_test_v2": "0x00007d41",
- "gap_tx_test_v4": "0x00007d59",
- "gap_update_connection_parameters": "0x00007d81",
- "gap_vendor_tx_continuous_wave": "0x00007dc5",
- "gatt_client_cancel_write": "0x000082ed",
- "gatt_client_discover_characteristic_descriptors": "0x00008313",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x00008353",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000083a3",
- "gatt_client_discover_characteristics_for_service": "0x000083f3",
- "gatt_client_discover_primary_services": "0x00008429",
- "gatt_client_discover_primary_services_by_uuid128": "0x0000845b",
- "gatt_client_discover_primary_services_by_uuid16": "0x0000849f",
- "gatt_client_execute_write": "0x000084db",
- "gatt_client_find_included_services_for_service": "0x00008501",
- "gatt_client_get_mtu": "0x0000852f",
- "gatt_client_is_ready": "0x000085d1",
- "gatt_client_listen_for_characteristic_value_updates": "0x000085e7",
- "gatt_client_prepare_write": "0x00008609",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008645",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0000866f",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008675",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000086a3",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x000086a9",
- "gatt_client_read_multiple_characteristic_values": "0x000086d7",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008707",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008735",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008781",
- "gatt_client_register_handler": "0x000087cd",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x000087d9",
- "gatt_client_signed_write_without_response": "0x00008c09",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008ccd",
- "gatt_client_write_client_characteristic_configuration": "0x00008d07",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008d59",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008d69",
- "gatt_client_write_long_value_of_characteristic": "0x00008da5",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008db5",
- "gatt_client_write_value_of_characteristic": "0x00008df1",
- "gatt_client_write_value_of_characteristic_without_response": "0x00008e27",
- "hci_add_event_handler": "0x0000a34d",
- "hci_power_control": "0x0000ab41",
- "hci_register_acl_packet_handler": "0x0000acf5",
- "kv_commit": "0x0000b28d",
- "kv_get": "0x0000b2e5",
- "kv_init": "0x0000b2fd",
- "kv_put": "0x0000b365",
- "kv_remove": "0x0000b3dd",
- "kv_remove_all": "0x0000b419",
- "kv_value_modified": "0x0000b45d",
- "kv_visit": "0x0000b461",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000b521",
- "l2cap_can_send_packet_now": "0x0000b525",
- "l2cap_create_channel": "0x0000b6dd",
- "l2cap_disconnect": "0x0000b815",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000ba3d",
- "l2cap_init": "0x0000be35",
- "l2cap_le_send_flow_control_credit": "0x0000be75",
- "l2cap_max_le_mtu": "0x0000c131",
- "l2cap_max_mtu": "0x0000c135",
- "l2cap_register_fixed_channel": "0x0000c241",
- "l2cap_register_packet_handler": "0x0000c25d",
- "l2cap_register_service": "0x0000c269",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c34d",
- "l2cap_request_can_send_now_event": "0x0000c371",
- "l2cap_request_connection_parameter_update": "0x0000c38b",
- "l2cap_send": "0x0000c725",
- "l2cap_send_connectionless": "0x0000c79d",
- "l2cap_send_connectionless3": "0x0000c82d",
- "l2cap_send_echo_request": "0x0000c8c5",
- "l2cap_unregister_service": "0x0000c981",
- "le_device_db_add": "0x0000c9d9",
- "le_device_db_find": "0x0000caad",
- "le_device_db_from_key": "0x0000cad9",
- "le_device_db_iter_cur": "0x0000cae1",
- "le_device_db_iter_cur_key": "0x0000cae5",
- "le_device_db_iter_init": "0x0000cae9",
- "le_device_db_iter_next": "0x0000caf1",
- "le_device_db_remove_key": "0x0000cb17",
- "ll_free": "0x0000cb43",
- "ll_hint_on_ce_len": "0x0000cb4d",
- "ll_legacy_adv_set_interval": "0x0000cb85",
- "ll_malloc": "0x0000cb95",
- "ll_query_timing_info": "0x0000cccd",
- "ll_scan_set_fixed_channel": "0x0000cd71",
- "ll_set_adv_access_address": "0x0000ce85",
- "ll_set_adv_coded_scheme": "0x0000ce91",
- "ll_set_conn_coded_scheme": "0x0000cec1",
- "ll_set_conn_latency": "0x0000ceed",
- "ll_set_conn_tx_power": "0x0000cf1d",
- "ll_set_def_antenna": "0x0000cf65",
- "ll_set_initiating_coded_scheme": "0x0000cf81",
- "ll_set_max_conn_number": "0x0000cf8d",
- "nibble_for_char": "0x0001cdb9",
- "platform_32k_rc_auto_tune": "0x0001ce55",
- "platform_32k_rc_tune": "0x0001ced1",
- "platform_calibrate_32k": "0x0001cee5",
- "platform_config": "0x0001cee9",
- "platform_controller_run": "0x0001cfc1",
- "platform_get_gen_os_driver": "0x0001cff9",
- "platform_get_task_handle": "0x0001d005",
- "platform_get_us_time": "0x0001d01d",
- "platform_get_version": "0x0001d021",
- "platform_hrng": "0x0001d029",
- "platform_init_controller": "0x0001d031",
- "platform_os_idle_resumed_hook": "0x0001d04d",
- "platform_patch_rf_init_data": "0x0001d051",
- "platform_post_sleep_processing": "0x0001d05d",
- "platform_pre_sleep_processing": "0x0001d063",
- "platform_pre_suppress_ticks_and_sleep_processing": "0x0001d069",
- "platform_printf": "0x0001d06d",
- "platform_raise_assertion": "0x0001d081",
- "platform_rand": "0x0001d095",
- "platform_read_info": "0x0001d099",
- "platform_read_persistent_reg": "0x0001d0c9",
- "platform_reset": "0x0001d0d9",
- "platform_set_evt_callback": "0x0001d0fd",
- "platform_set_irq_callback": "0x0001d111",
- "platform_set_rf_clk_source": "0x0001d149",
- "platform_set_rf_init_data": "0x0001d155",
- "platform_set_rf_power_mapping": "0x0001d161",
- "platform_set_timer": "0x0001d16d",
- "platform_shutdown": "0x0001d171",
- "platform_switch_app": "0x0001d175",
- "platform_trace_raw": "0x0001d1a1",
- "platform_write_persistent_reg": "0x0001d1b9",
- "printf_hexdump": "0x0001d1c9",
- "reverse_128": "0x0001d505",
- "reverse_24": "0x0001d50b",
- "reverse_48": "0x0001d511",
- "reverse_56": "0x0001d517",
- "reverse_64": "0x0001d51d",
- "reverse_bd_addr": "0x0001d523",
- "reverse_bytes": "0x0001d529",
- "sm_add_event_handler": "0x0001d695",
- "sm_address_resolution_lookup": "0x0001d7ed",
- "sm_authenticated": "0x0001db45",
- "sm_authorization_decline": "0x0001db53",
- "sm_authorization_grant": "0x0001db73",
- "sm_authorization_state": "0x0001db93",
- "sm_bonding_decline": "0x0001dbad",
- "sm_config": "0x0001dfcd",
- "sm_config_conn": "0x0001dfe5",
- "sm_encryption_key_size": "0x0001e19b",
- "sm_just_works_confirm": "0x0001e6d5",
- "sm_le_device_key": "0x0001ea11",
- "sm_passkey_input": "0x0001eaa7",
- "sm_private_random_address_generation_get": "0x0001ee55",
- "sm_private_random_address_generation_get_mode": "0x0001ee5d",
- "sm_private_random_address_generation_set_mode": "0x0001ee69",
- "sm_private_random_address_generation_set_update_period": "0x0001ee91",
- "sm_register_oob_data_callback": "0x0001efcd",
- "sm_request_pairing": "0x0001efd9",
- "sm_send_security_request": "0x0001f9f7",
- "sm_set_accepted_stk_generation_methods": "0x0001fa1d",
- "sm_set_authentication_requirements": "0x0001fa29",
- "sm_set_encryption_key_size_range": "0x0001fa35",
- "sscanf_bd_addr": "0x0001fd91",
- "sysSetPublicDeviceAddr": "0x00020109",
- "uuid128_to_str": "0x000206e9",
- "uuid_add_bluetooth_prefix": "0x00020741",
- "uuid_has_bluetooth_prefix": "0x00020761"
+ "att_dispatch_client_can_send_now": "0x0000568d",
+ "att_dispatch_client_request_can_send_now_event": "0x00005693",
+ "att_dispatch_register_client": "0x00005699",
+ "att_dispatch_register_server": "0x000056ad",
+ "att_dispatch_server_can_send_now": "0x000056c1",
+ "att_dispatch_server_request_can_send_now_event": "0x000056c7",
+ "att_emit_general_event": "0x00005779",
+ "att_server_can_send_packet_now": "0x00005e8d",
+ "att_server_deferred_read_response": "0x00005e91",
+ "att_server_get_mtu": "0x00005ea9",
+ "att_server_indicate": "0x00005f21",
+ "att_server_init": "0x00005fa5",
+ "att_server_notify": "0x00005fe1",
+ "att_server_register_packet_handler": "0x000060f9",
+ "att_server_request_can_send_now_event": "0x00006105",
+ "att_set_db": "0x00006121",
+ "att_set_read_callback": "0x00006135",
+ "att_set_write_callback": "0x00006141",
+ "bd_addr_cmp": "0x000062b1",
+ "bd_addr_copy": "0x000062b7",
+ "bd_addr_to_str": "0x000062c1",
+ "big_endian_read_16": "0x000062f9",
+ "big_endian_read_32": "0x00006301",
+ "big_endian_store_16": "0x00006315",
+ "big_endian_store_32": "0x00006321",
+ "btstack_config": "0x00006459",
+ "btstack_memory_pool_create": "0x000065a7",
+ "btstack_memory_pool_free": "0x000065d1",
+ "btstack_memory_pool_get": "0x00006631",
+ "btstack_push_user_msg": "0x00006679",
+ "btstack_push_user_runnable": "0x00006685",
+ "char_for_nibble": "0x000068f5",
+ "gap_add_dev_to_periodic_list": "0x000071a9",
+ "gap_add_whitelist": "0x000071c1",
+ "gap_aes_encrypt": "0x000071d5",
+ "gap_clear_white_lists": "0x00007219",
+ "gap_clr_adv_set": "0x00007229",
+ "gap_clr_periodic_adv_list": "0x00007239",
+ "gap_create_connection_cancel": "0x00007249",
+ "gap_disconnect": "0x00007259",
+ "gap_disconnect_all": "0x00007285",
+ "gap_ext_create_connection": "0x000072c5",
+ "gap_get_connection_parameter_range": "0x000073b5",
+ "gap_le_read_channel_map": "0x000073f1",
+ "gap_periodic_adv_create_sync": "0x00007465",
+ "gap_periodic_adv_create_sync_cancel": "0x00007489",
+ "gap_periodic_adv_term_sync": "0x00007499",
+ "gap_read_periodic_adv_list_size": "0x0000752d",
+ "gap_read_phy": "0x0000753d",
+ "gap_read_remote_used_features": "0x00007551",
+ "gap_read_remote_version": "0x00007565",
+ "gap_read_rssi": "0x00007579",
+ "gap_remove_whitelist": "0x0000758d",
+ "gap_rmv_adv_set": "0x00007611",
+ "gap_rmv_dev_from_periodic_list": "0x00007625",
+ "gap_rx_test_v2": "0x0000763d",
+ "gap_set_adv_set_random_addr": "0x0000767d",
+ "gap_set_connection_parameter_range": "0x000076c9",
+ "gap_set_data_length": "0x000076e1",
+ "gap_set_def_phy": "0x000076fd",
+ "gap_set_ext_adv_data": "0x00007715",
+ "gap_set_ext_adv_enable": "0x0000772d",
+ "gap_set_ext_adv_para": "0x000077a9",
+ "gap_set_ext_scan_enable": "0x00007889",
+ "gap_set_ext_scan_para": "0x000078a1",
+ "gap_set_ext_scan_response_data": "0x00007949",
+ "gap_set_host_channel_classification": "0x00007961",
+ "gap_set_periodic_adv_data": "0x00007975",
+ "gap_set_periodic_adv_enable": "0x000079e9",
+ "gap_set_periodic_adv_para": "0x000079fd",
+ "gap_set_phy": "0x00007a15",
+ "gap_set_random_device_address": "0x00007a31",
+ "gap_start_ccm": "0x00007a61",
+ "gap_test_end": "0x00007a95",
+ "gap_tx_test_v2": "0x00007aa5",
+ "gap_tx_test_v4": "0x00007abd",
+ "gap_update_connection_parameters": "0x00007ae5",
+ "gap_vendor_tx_continuous_wave": "0x00007b29",
+ "gatt_client_cancel_write": "0x00008051",
+ "gatt_client_discover_characteristic_descriptors": "0x00008077",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000080b7",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x00008107",
+ "gatt_client_discover_characteristics_for_service": "0x00008157",
+ "gatt_client_discover_primary_services": "0x0000818d",
+ "gatt_client_discover_primary_services_by_uuid128": "0x000081bf",
+ "gatt_client_discover_primary_services_by_uuid16": "0x00008203",
+ "gatt_client_execute_write": "0x0000823f",
+ "gatt_client_find_included_services_for_service": "0x00008265",
+ "gatt_client_get_mtu": "0x00008293",
+ "gatt_client_is_ready": "0x00008335",
+ "gatt_client_listen_for_characteristic_value_updates": "0x0000834b",
+ "gatt_client_prepare_write": "0x0000836d",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x000083a9",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000083d3",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000083d9",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008407",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x0000840d",
+ "gatt_client_read_multiple_characteristic_values": "0x0000843b",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x0000846b",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008499",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x000084e5",
+ "gatt_client_register_handler": "0x00008531",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x0000853d",
+ "gatt_client_signed_write_without_response": "0x0000896d",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008a31",
+ "gatt_client_write_client_characteristic_configuration": "0x00008a6b",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008abd",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008acd",
+ "gatt_client_write_long_value_of_characteristic": "0x00008b09",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008b19",
+ "gatt_client_write_value_of_characteristic": "0x00008b55",
+ "gatt_client_write_value_of_characteristic_without_response": "0x00008b8b",
+ "hci_add_event_handler": "0x0000a0b1",
+ "hci_power_control": "0x0000a8a5",
+ "hci_register_acl_packet_handler": "0x0000aa59",
+ "kv_commit": "0x0000aff1",
+ "kv_get": "0x0000b049",
+ "kv_init": "0x0000b061",
+ "kv_put": "0x0000b0c9",
+ "kv_remove": "0x0000b141",
+ "kv_remove_all": "0x0000b17d",
+ "kv_value_modified": "0x0000b1c1",
+ "kv_visit": "0x0000b1c5",
+ "l2cap_add_event_handler": "0x0000b279",
+ "l2cap_can_send_packet_now": "0x0000b289",
+ "l2cap_create_le_credit_based_connection_request": "0x0000b445",
+ "l2cap_credit_based_send": "0x0000b589",
+ "l2cap_credit_based_send_continue": "0x0000b5b5",
+ "l2cap_disconnect": "0x0000b631",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000b881",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000b89d",
+ "l2cap_init": "0x0000bc71",
+ "l2cap_le_send_flow_control_credit": "0x0000bd67",
+ "l2cap_max_le_mtu": "0x0000c071",
+ "l2cap_register_packet_handler": "0x0000c199",
+ "l2cap_register_service": "0x0000c1a5",
+ "l2cap_request_can_send_now_event": "0x0000c2b5",
+ "l2cap_request_connection_parameter_update": "0x0000c2cf",
+ "l2cap_send_echo_request": "0x0000c7a1",
+ "l2cap_unregister_service": "0x0000c861",
+ "le_device_db_add": "0x0000c8b9",
+ "le_device_db_find": "0x0000c98d",
+ "le_device_db_from_key": "0x0000c9b9",
+ "le_device_db_iter_cur": "0x0000c9c1",
+ "le_device_db_iter_cur_key": "0x0000c9c5",
+ "le_device_db_iter_init": "0x0000c9c9",
+ "le_device_db_iter_next": "0x0000c9d1",
+ "le_device_db_remove_key": "0x0000c9f7",
+ "ll_free": "0x0000ca23",
+ "ll_hint_on_ce_len": "0x0000ca2d",
+ "ll_legacy_adv_set_interval": "0x0000ca65",
+ "ll_malloc": "0x0000ca75",
+ "ll_query_timing_info": "0x0000cbad",
+ "ll_scan_set_fixed_channel": "0x0000cc51",
+ "ll_set_adv_access_address": "0x0000cd65",
+ "ll_set_adv_coded_scheme": "0x0000cd71",
+ "ll_set_conn_coded_scheme": "0x0000cda1",
+ "ll_set_conn_latency": "0x0000cdcd",
+ "ll_set_conn_tx_power": "0x0000cdfd",
+ "ll_set_def_antenna": "0x0000ce45",
+ "ll_set_initiating_coded_scheme": "0x0000ce61",
+ "ll_set_max_conn_number": "0x0000ce6d",
+ "nibble_for_char": "0x0001cc99",
+ "platform_32k_rc_auto_tune": "0x0001cd35",
+ "platform_32k_rc_tune": "0x0001cdb1",
+ "platform_calibrate_32k": "0x0001cdc5",
+ "platform_config": "0x0001cdc9",
+ "platform_controller_run": "0x0001cea1",
+ "platform_get_gen_os_driver": "0x0001ced9",
+ "platform_get_task_handle": "0x0001cee5",
+ "platform_get_us_time": "0x0001cefd",
+ "platform_get_version": "0x0001cf01",
+ "platform_hrng": "0x0001cf09",
+ "platform_init_controller": "0x0001cf11",
+ "platform_os_idle_resumed_hook": "0x0001cf2d",
+ "platform_patch_rf_init_data": "0x0001cf31",
+ "platform_post_sleep_processing": "0x0001cf3d",
+ "platform_pre_sleep_processing": "0x0001cf43",
+ "platform_pre_suppress_ticks_and_sleep_processing": "0x0001cf49",
+ "platform_printf": "0x0001cf4d",
+ "platform_raise_assertion": "0x0001cf61",
+ "platform_rand": "0x0001cf75",
+ "platform_read_info": "0x0001cf79",
+ "platform_read_persistent_reg": "0x0001cfa9",
+ "platform_reset": "0x0001cfb9",
+ "platform_set_evt_callback": "0x0001cfdd",
+ "platform_set_irq_callback": "0x0001cff1",
+ "platform_set_rf_clk_source": "0x0001d029",
+ "platform_set_rf_init_data": "0x0001d035",
+ "platform_set_rf_power_mapping": "0x0001d041",
+ "platform_set_timer": "0x0001d04d",
+ "platform_shutdown": "0x0001d051",
+ "platform_switch_app": "0x0001d055",
+ "platform_trace_raw": "0x0001d081",
+ "platform_write_persistent_reg": "0x0001d099",
+ "printf_hexdump": "0x0001d0a9",
+ "reverse_128": "0x0001d3e5",
+ "reverse_24": "0x0001d3eb",
+ "reverse_48": "0x0001d3f1",
+ "reverse_56": "0x0001d3f7",
+ "reverse_64": "0x0001d3fd",
+ "reverse_bd_addr": "0x0001d403",
+ "reverse_bytes": "0x0001d409",
+ "sm_add_event_handler": "0x0001d575",
+ "sm_address_resolution_lookup": "0x0001d6cd",
+ "sm_authenticated": "0x0001da25",
+ "sm_authorization_decline": "0x0001da33",
+ "sm_authorization_grant": "0x0001da53",
+ "sm_authorization_state": "0x0001da73",
+ "sm_bonding_decline": "0x0001da8d",
+ "sm_config": "0x0001dead",
+ "sm_config_conn": "0x0001dec5",
+ "sm_encryption_key_size": "0x0001e07b",
+ "sm_just_works_confirm": "0x0001e5b5",
+ "sm_le_device_key": "0x0001e8f1",
+ "sm_passkey_input": "0x0001e987",
+ "sm_private_random_address_generation_get": "0x0001ed35",
+ "sm_private_random_address_generation_get_mode": "0x0001ed3d",
+ "sm_private_random_address_generation_set_mode": "0x0001ed49",
+ "sm_private_random_address_generation_set_update_period": "0x0001ed71",
+ "sm_register_oob_data_callback": "0x0001eead",
+ "sm_request_pairing": "0x0001eeb9",
+ "sm_send_security_request": "0x0001f8d7",
+ "sm_set_accepted_stk_generation_methods": "0x0001f8fd",
+ "sm_set_authentication_requirements": "0x0001f909",
+ "sm_set_encryption_key_size_range": "0x0001f915",
+ "sscanf_bd_addr": "0x0001fc71",
+ "sysSetPublicDeviceAddr": "0x0001ffe9",
+ "uuid128_to_str": "0x000205c9",
+ "uuid_add_bluetooth_prefix": "0x00020621",
+ "uuid_has_bluetooth_prefix": "0x00020641"
}
\ No newline at end of file
diff --git a/bundles/noos_typical/ING9187xx/meta.json b/bundles/noos_typical/ING9187xx/meta.json
index 8e3104315..cee91f8fe 100644
--- a/bundles/noos_typical/ING9187xx/meta.json
+++ b/bundles/noos_typical/ING9187xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 5508
+ "size": 4508
},
"rom": {
"base": 16384,
- "size": 122840
+ "size": 122548
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/noos_typical/ING9187xx/platform.bin b/bundles/noos_typical/ING9187xx/platform.bin
index 60debde57..a5d07d49a 100644
Binary files a/bundles/noos_typical/ING9187xx/platform.bin and b/bundles/noos_typical/ING9187xx/platform.bin differ
diff --git a/bundles/noos_typical/ING9188xx/apis.json b/bundles/noos_typical/ING9188xx/apis.json
index 264b00b14..4ca67deaa 100644
--- a/bundles/noos_typical/ING9188xx/apis.json
+++ b/bundles/noos_typical/ING9188xx/apis.json
@@ -1,250 +1,247 @@
{
- "att_dispatch_client_can_send_now": "0x00005a4d",
- "att_dispatch_client_request_can_send_now_event": "0x00005a53",
- "att_dispatch_register_client": "0x00005a59",
- "att_dispatch_register_server": "0x00005a6d",
- "att_dispatch_server_can_send_now": "0x00005a81",
- "att_dispatch_server_request_can_send_now_event": "0x00005a87",
- "att_emit_general_event": "0x00005b39",
- "att_server_can_send_packet_now": "0x0000624d",
- "att_server_deferred_read_response": "0x00006251",
- "att_server_get_mtu": "0x00006269",
- "att_server_indicate": "0x000062e1",
- "att_server_init": "0x00006365",
- "att_server_notify": "0x000063a1",
- "att_server_register_packet_handler": "0x000064b9",
- "att_server_request_can_send_now_event": "0x000064c5",
- "att_set_db": "0x000064e1",
- "att_set_read_callback": "0x000064f5",
- "att_set_write_callback": "0x00006501",
- "bd_addr_cmp": "0x00006671",
- "bd_addr_copy": "0x00006677",
- "bd_addr_to_str": "0x00006681",
- "big_endian_read_16": "0x000066b9",
- "big_endian_read_32": "0x000066c1",
- "big_endian_store_16": "0x000066d5",
- "big_endian_store_32": "0x000066e1",
- "btstack_config": "0x00006819",
- "btstack_memory_pool_create": "0x00006967",
- "btstack_memory_pool_free": "0x00006991",
- "btstack_memory_pool_get": "0x000069f1",
- "btstack_push_user_msg": "0x00006a39",
- "btstack_push_user_runnable": "0x00006a45",
- "char_for_nibble": "0x00006cb5",
- "gap_add_dev_to_periodic_list": "0x000075d9",
- "gap_add_whitelist": "0x000075f1",
- "gap_aes_encrypt": "0x00007605",
- "gap_clear_white_lists": "0x00007649",
- "gap_clr_adv_set": "0x00007659",
- "gap_clr_periodic_adv_list": "0x00007669",
- "gap_create_connection_cancel": "0x00007679",
- "gap_default_periodic_adv_sync_transfer_param": "0x00007689",
- "gap_disconnect": "0x000076a1",
- "gap_disconnect_all": "0x000076cd",
- "gap_ext_create_connection": "0x0000770d",
- "gap_get_connection_parameter_range": "0x000077fd",
- "gap_le_read_channel_map": "0x00007839",
- "gap_periodic_adv_create_sync": "0x000078ad",
- "gap_periodic_adv_create_sync_cancel": "0x000078d1",
- "gap_periodic_adv_set_info_transfer": "0x000078e1",
- "gap_periodic_adv_sync_transfer": "0x000078f9",
- "gap_periodic_adv_sync_transfer_param": "0x00007911",
- "gap_periodic_adv_term_sync": "0x0000792d",
- "gap_read_antenna_info": "0x000079c1",
- "gap_read_periodic_adv_list_size": "0x000079d1",
- "gap_read_phy": "0x000079e1",
- "gap_read_remote_used_features": "0x000079f5",
- "gap_read_remote_version": "0x00007a09",
- "gap_read_rssi": "0x00007a1d",
- "gap_remove_whitelist": "0x00007a31",
- "gap_rmv_adv_set": "0x00007ab5",
- "gap_rmv_dev_from_periodic_list": "0x00007ac9",
- "gap_rx_test_v2": "0x00007ae1",
- "gap_rx_test_v3": "0x00007af9",
- "gap_set_adv_set_random_addr": "0x00007b49",
- "gap_set_connection_cte_request_enable": "0x00007b95",
- "gap_set_connection_cte_response_enable": "0x00007bb1",
- "gap_set_connection_cte_rx_param": "0x00007bc5",
- "gap_set_connection_cte_tx_param": "0x00007c21",
- "gap_set_connection_parameter_range": "0x00007c75",
- "gap_set_connectionless_cte_tx_enable": "0x00007c8d",
- "gap_set_connectionless_cte_tx_param": "0x00007ca1",
- "gap_set_connectionless_iq_sampling_enable": "0x00007d01",
- "gap_set_data_length": "0x00007d65",
- "gap_set_def_phy": "0x00007d81",
- "gap_set_ext_adv_data": "0x00007d99",
- "gap_set_ext_adv_enable": "0x00007db1",
- "gap_set_ext_adv_para": "0x00007e2d",
- "gap_set_ext_scan_enable": "0x00007f0d",
- "gap_set_ext_scan_para": "0x00007f25",
- "gap_set_ext_scan_response_data": "0x00007fcd",
- "gap_set_host_channel_classification": "0x00007fe5",
- "gap_set_periodic_adv_data": "0x00007ff9",
- "gap_set_periodic_adv_enable": "0x0000806d",
- "gap_set_periodic_adv_para": "0x00008081",
- "gap_set_periodic_adv_rx_enable": "0x00008099",
- "gap_set_phy": "0x000080ad",
- "gap_set_random_device_address": "0x000080c9",
- "gap_start_ccm": "0x000080f9",
- "gap_test_end": "0x0000812d",
- "gap_tx_test_v2": "0x0000813d",
- "gap_tx_test_v4": "0x00008155",
- "gap_update_connection_parameters": "0x0000817d",
- "gap_vendor_tx_continuous_wave": "0x000081c1",
- "gatt_client_cancel_write": "0x000086e9",
- "gatt_client_discover_characteristic_descriptors": "0x0000870f",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0000874f",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0000879f",
- "gatt_client_discover_characteristics_for_service": "0x000087ef",
- "gatt_client_discover_primary_services": "0x00008825",
- "gatt_client_discover_primary_services_by_uuid128": "0x00008857",
- "gatt_client_discover_primary_services_by_uuid16": "0x0000889b",
- "gatt_client_execute_write": "0x000088d7",
- "gatt_client_find_included_services_for_service": "0x000088fd",
- "gatt_client_get_mtu": "0x0000892b",
- "gatt_client_is_ready": "0x000089cd",
- "gatt_client_listen_for_characteristic_value_updates": "0x000089e3",
- "gatt_client_prepare_write": "0x00008a05",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008a41",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008a6b",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008a71",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008a9f",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008aa5",
- "gatt_client_read_multiple_characteristic_values": "0x00008ad3",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008b03",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008b31",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008b7d",
- "gatt_client_register_handler": "0x00008bc9",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x00008bd5",
- "gatt_client_signed_write_without_response": "0x00009005",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x000090c9",
- "gatt_client_write_client_characteristic_configuration": "0x00009103",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00009155",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00009165",
- "gatt_client_write_long_value_of_characteristic": "0x000091a1",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x000091b1",
- "gatt_client_write_value_of_characteristic": "0x000091ed",
- "gatt_client_write_value_of_characteristic_without_response": "0x00009223",
- "hci_add_event_handler": "0x0000a765",
- "hci_power_control": "0x0000af59",
- "hci_register_acl_packet_handler": "0x0000b10d",
- "kv_commit": "0x0000b6a5",
- "kv_get": "0x0000b6fd",
- "kv_init": "0x0000b715",
- "kv_put": "0x0000b77d",
- "kv_remove": "0x0000b7f5",
- "kv_remove_all": "0x0000b831",
- "kv_value_modified": "0x0000b875",
- "kv_visit": "0x0000b879",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000b939",
- "l2cap_can_send_packet_now": "0x0000b93d",
- "l2cap_create_channel": "0x0000baf5",
- "l2cap_disconnect": "0x0000bc2d",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000be55",
- "l2cap_init": "0x0000c24d",
- "l2cap_le_send_flow_control_credit": "0x0000c28d",
- "l2cap_max_le_mtu": "0x0000c549",
- "l2cap_max_mtu": "0x0000c54d",
- "l2cap_register_fixed_channel": "0x0000c659",
- "l2cap_register_packet_handler": "0x0000c675",
- "l2cap_register_service": "0x0000c681",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c765",
- "l2cap_request_can_send_now_event": "0x0000c789",
- "l2cap_request_connection_parameter_update": "0x0000c7a3",
- "l2cap_send": "0x0000cb3d",
- "l2cap_send_connectionless": "0x0000cbb5",
- "l2cap_send_connectionless3": "0x0000cc45",
- "l2cap_send_echo_request": "0x0000ccdd",
- "l2cap_unregister_service": "0x0000cd99",
- "le_device_db_add": "0x0000cdf1",
- "le_device_db_find": "0x0000cec5",
- "le_device_db_from_key": "0x0000cef1",
- "le_device_db_iter_cur": "0x0000cef9",
- "le_device_db_iter_cur_key": "0x0000cefd",
- "le_device_db_iter_init": "0x0000cf01",
- "le_device_db_iter_next": "0x0000cf09",
- "le_device_db_remove_key": "0x0000cf2f",
- "ll_free": "0x0000cf5b",
- "ll_hint_on_ce_len": "0x0000cf65",
- "ll_legacy_adv_set_interval": "0x0000cf9d",
- "ll_malloc": "0x0000cfad",
- "ll_query_timing_info": "0x0000d0e5",
- "ll_scan_set_fixed_channel": "0x0000d189",
- "ll_set_adv_access_address": "0x0000d29d",
- "ll_set_adv_coded_scheme": "0x0000d2a9",
- "ll_set_conn_coded_scheme": "0x0000d2d9",
- "ll_set_conn_latency": "0x0000d305",
- "ll_set_conn_tx_power": "0x0000d335",
- "ll_set_def_antenna": "0x0000d37d",
- "ll_set_initiating_coded_scheme": "0x0000d399",
- "ll_set_max_conn_number": "0x0000d3a5",
- "nibble_for_char": "0x0001e0b1",
- "platform_32k_rc_auto_tune": "0x0001e14d",
- "platform_32k_rc_tune": "0x0001e1c9",
- "platform_calibrate_32k": "0x0001e1dd",
- "platform_config": "0x0001e1e1",
- "platform_controller_run": "0x0001e2b9",
- "platform_get_gen_os_driver": "0x0001e2f1",
- "platform_get_task_handle": "0x0001e2fd",
- "platform_get_us_time": "0x0001e315",
- "platform_get_version": "0x0001e319",
- "platform_hrng": "0x0001e321",
- "platform_init_controller": "0x0001e329",
- "platform_os_idle_resumed_hook": "0x0001e345",
- "platform_patch_rf_init_data": "0x0001e349",
- "platform_post_sleep_processing": "0x0001e355",
- "platform_pre_sleep_processing": "0x0001e35b",
- "platform_pre_suppress_ticks_and_sleep_processing": "0x0001e361",
- "platform_printf": "0x0001e365",
- "platform_raise_assertion": "0x0001e379",
- "platform_rand": "0x0001e38d",
- "platform_read_info": "0x0001e391",
- "platform_read_persistent_reg": "0x0001e3c1",
- "platform_reset": "0x0001e3d1",
- "platform_set_evt_callback": "0x0001e3f5",
- "platform_set_irq_callback": "0x0001e409",
- "platform_set_rf_clk_source": "0x0001e441",
- "platform_set_rf_init_data": "0x0001e44d",
- "platform_set_rf_power_mapping": "0x0001e459",
- "platform_set_timer": "0x0001e465",
- "platform_shutdown": "0x0001e469",
- "platform_switch_app": "0x0001e46d",
- "platform_trace_raw": "0x0001e499",
- "platform_write_persistent_reg": "0x0001e4b1",
- "printf_hexdump": "0x0001e4c1",
- "reverse_128": "0x0001e835",
- "reverse_24": "0x0001e83b",
- "reverse_48": "0x0001e841",
- "reverse_56": "0x0001e847",
- "reverse_64": "0x0001e84d",
- "reverse_bd_addr": "0x0001e853",
- "reverse_bytes": "0x0001e859",
- "sm_add_event_handler": "0x0001eb19",
- "sm_address_resolution_lookup": "0x0001ec71",
- "sm_authenticated": "0x0001efc9",
- "sm_authorization_decline": "0x0001efd7",
- "sm_authorization_grant": "0x0001eff7",
- "sm_authorization_state": "0x0001f017",
- "sm_bonding_decline": "0x0001f031",
- "sm_config": "0x0001f451",
- "sm_config_conn": "0x0001f469",
- "sm_encryption_key_size": "0x0001f61f",
- "sm_just_works_confirm": "0x0001fb59",
- "sm_le_device_key": "0x0001fe95",
- "sm_passkey_input": "0x0001ff2b",
- "sm_private_random_address_generation_get": "0x000202d9",
- "sm_private_random_address_generation_get_mode": "0x000202e1",
- "sm_private_random_address_generation_set_mode": "0x000202ed",
- "sm_private_random_address_generation_set_update_period": "0x00020315",
- "sm_register_oob_data_callback": "0x00020451",
- "sm_request_pairing": "0x0002045d",
- "sm_send_security_request": "0x00020e7b",
- "sm_set_accepted_stk_generation_methods": "0x00020ea1",
- "sm_set_authentication_requirements": "0x00020ead",
- "sm_set_encryption_key_size_range": "0x00020eb9",
- "sscanf_bd_addr": "0x00021215",
- "sysSetPublicDeviceAddr": "0x0002158d",
- "uuid128_to_str": "0x00021d01",
- "uuid_add_bluetooth_prefix": "0x00021d59",
- "uuid_has_bluetooth_prefix": "0x00021d79"
+ "att_dispatch_client_can_send_now": "0x000057b1",
+ "att_dispatch_client_request_can_send_now_event": "0x000057b7",
+ "att_dispatch_register_client": "0x000057bd",
+ "att_dispatch_register_server": "0x000057d1",
+ "att_dispatch_server_can_send_now": "0x000057e5",
+ "att_dispatch_server_request_can_send_now_event": "0x000057eb",
+ "att_emit_general_event": "0x0000589d",
+ "att_server_can_send_packet_now": "0x00005fb1",
+ "att_server_deferred_read_response": "0x00005fb5",
+ "att_server_get_mtu": "0x00005fcd",
+ "att_server_indicate": "0x00006045",
+ "att_server_init": "0x000060c9",
+ "att_server_notify": "0x00006105",
+ "att_server_register_packet_handler": "0x0000621d",
+ "att_server_request_can_send_now_event": "0x00006229",
+ "att_set_db": "0x00006245",
+ "att_set_read_callback": "0x00006259",
+ "att_set_write_callback": "0x00006265",
+ "bd_addr_cmp": "0x000063d5",
+ "bd_addr_copy": "0x000063db",
+ "bd_addr_to_str": "0x000063e5",
+ "big_endian_read_16": "0x0000641d",
+ "big_endian_read_32": "0x00006425",
+ "big_endian_store_16": "0x00006439",
+ "big_endian_store_32": "0x00006445",
+ "btstack_config": "0x0000657d",
+ "btstack_memory_pool_create": "0x000066cb",
+ "btstack_memory_pool_free": "0x000066f5",
+ "btstack_memory_pool_get": "0x00006755",
+ "btstack_push_user_msg": "0x0000679d",
+ "btstack_push_user_runnable": "0x000067a9",
+ "char_for_nibble": "0x00006a19",
+ "gap_add_dev_to_periodic_list": "0x0000733d",
+ "gap_add_whitelist": "0x00007355",
+ "gap_aes_encrypt": "0x00007369",
+ "gap_clear_white_lists": "0x000073ad",
+ "gap_clr_adv_set": "0x000073bd",
+ "gap_clr_periodic_adv_list": "0x000073cd",
+ "gap_create_connection_cancel": "0x000073dd",
+ "gap_default_periodic_adv_sync_transfer_param": "0x000073ed",
+ "gap_disconnect": "0x00007405",
+ "gap_disconnect_all": "0x00007431",
+ "gap_ext_create_connection": "0x00007471",
+ "gap_get_connection_parameter_range": "0x00007561",
+ "gap_le_read_channel_map": "0x0000759d",
+ "gap_periodic_adv_create_sync": "0x00007611",
+ "gap_periodic_adv_create_sync_cancel": "0x00007635",
+ "gap_periodic_adv_set_info_transfer": "0x00007645",
+ "gap_periodic_adv_sync_transfer": "0x0000765d",
+ "gap_periodic_adv_sync_transfer_param": "0x00007675",
+ "gap_periodic_adv_term_sync": "0x00007691",
+ "gap_read_antenna_info": "0x00007725",
+ "gap_read_periodic_adv_list_size": "0x00007735",
+ "gap_read_phy": "0x00007745",
+ "gap_read_remote_used_features": "0x00007759",
+ "gap_read_remote_version": "0x0000776d",
+ "gap_read_rssi": "0x00007781",
+ "gap_remove_whitelist": "0x00007795",
+ "gap_rmv_adv_set": "0x00007819",
+ "gap_rmv_dev_from_periodic_list": "0x0000782d",
+ "gap_rx_test_v2": "0x00007845",
+ "gap_rx_test_v3": "0x0000785d",
+ "gap_set_adv_set_random_addr": "0x000078ad",
+ "gap_set_connection_cte_request_enable": "0x000078f9",
+ "gap_set_connection_cte_response_enable": "0x00007915",
+ "gap_set_connection_cte_rx_param": "0x00007929",
+ "gap_set_connection_cte_tx_param": "0x00007985",
+ "gap_set_connection_parameter_range": "0x000079d9",
+ "gap_set_connectionless_cte_tx_enable": "0x000079f1",
+ "gap_set_connectionless_cte_tx_param": "0x00007a05",
+ "gap_set_connectionless_iq_sampling_enable": "0x00007a65",
+ "gap_set_data_length": "0x00007ac9",
+ "gap_set_def_phy": "0x00007ae5",
+ "gap_set_ext_adv_data": "0x00007afd",
+ "gap_set_ext_adv_enable": "0x00007b15",
+ "gap_set_ext_adv_para": "0x00007b91",
+ "gap_set_ext_scan_enable": "0x00007c71",
+ "gap_set_ext_scan_para": "0x00007c89",
+ "gap_set_ext_scan_response_data": "0x00007d31",
+ "gap_set_host_channel_classification": "0x00007d49",
+ "gap_set_periodic_adv_data": "0x00007d5d",
+ "gap_set_periodic_adv_enable": "0x00007dd1",
+ "gap_set_periodic_adv_para": "0x00007de5",
+ "gap_set_periodic_adv_rx_enable": "0x00007dfd",
+ "gap_set_phy": "0x00007e11",
+ "gap_set_random_device_address": "0x00007e2d",
+ "gap_start_ccm": "0x00007e5d",
+ "gap_test_end": "0x00007e91",
+ "gap_tx_test_v2": "0x00007ea1",
+ "gap_tx_test_v4": "0x00007eb9",
+ "gap_update_connection_parameters": "0x00007ee1",
+ "gap_vendor_tx_continuous_wave": "0x00007f25",
+ "gatt_client_cancel_write": "0x0000844d",
+ "gatt_client_discover_characteristic_descriptors": "0x00008473",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000084b3",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x00008503",
+ "gatt_client_discover_characteristics_for_service": "0x00008553",
+ "gatt_client_discover_primary_services": "0x00008589",
+ "gatt_client_discover_primary_services_by_uuid128": "0x000085bb",
+ "gatt_client_discover_primary_services_by_uuid16": "0x000085ff",
+ "gatt_client_execute_write": "0x0000863b",
+ "gatt_client_find_included_services_for_service": "0x00008661",
+ "gatt_client_get_mtu": "0x0000868f",
+ "gatt_client_is_ready": "0x00008731",
+ "gatt_client_listen_for_characteristic_value_updates": "0x00008747",
+ "gatt_client_prepare_write": "0x00008769",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x000087a5",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000087cf",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000087d5",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008803",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008809",
+ "gatt_client_read_multiple_characteristic_values": "0x00008837",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008867",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008895",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x000088e1",
+ "gatt_client_register_handler": "0x0000892d",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x00008939",
+ "gatt_client_signed_write_without_response": "0x00008d69",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008e2d",
+ "gatt_client_write_client_characteristic_configuration": "0x00008e67",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008eb9",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008ec9",
+ "gatt_client_write_long_value_of_characteristic": "0x00008f05",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008f15",
+ "gatt_client_write_value_of_characteristic": "0x00008f51",
+ "gatt_client_write_value_of_characteristic_without_response": "0x00008f87",
+ "hci_add_event_handler": "0x0000a4c9",
+ "hci_power_control": "0x0000acbd",
+ "hci_register_acl_packet_handler": "0x0000ae71",
+ "kv_commit": "0x0000b409",
+ "kv_get": "0x0000b461",
+ "kv_init": "0x0000b479",
+ "kv_put": "0x0000b4e1",
+ "kv_remove": "0x0000b559",
+ "kv_remove_all": "0x0000b595",
+ "kv_value_modified": "0x0000b5d9",
+ "kv_visit": "0x0000b5dd",
+ "l2cap_add_event_handler": "0x0000b691",
+ "l2cap_can_send_packet_now": "0x0000b6a1",
+ "l2cap_create_le_credit_based_connection_request": "0x0000b85d",
+ "l2cap_credit_based_send": "0x0000b9a1",
+ "l2cap_credit_based_send_continue": "0x0000b9cd",
+ "l2cap_disconnect": "0x0000ba49",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000bc99",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000bcb5",
+ "l2cap_init": "0x0000c089",
+ "l2cap_le_send_flow_control_credit": "0x0000c17f",
+ "l2cap_max_le_mtu": "0x0000c489",
+ "l2cap_register_packet_handler": "0x0000c5b1",
+ "l2cap_register_service": "0x0000c5bd",
+ "l2cap_request_can_send_now_event": "0x0000c6cd",
+ "l2cap_request_connection_parameter_update": "0x0000c6e7",
+ "l2cap_send_echo_request": "0x0000cbb9",
+ "l2cap_unregister_service": "0x0000cc79",
+ "le_device_db_add": "0x0000ccd1",
+ "le_device_db_find": "0x0000cda5",
+ "le_device_db_from_key": "0x0000cdd1",
+ "le_device_db_iter_cur": "0x0000cdd9",
+ "le_device_db_iter_cur_key": "0x0000cddd",
+ "le_device_db_iter_init": "0x0000cde1",
+ "le_device_db_iter_next": "0x0000cde9",
+ "le_device_db_remove_key": "0x0000ce0f",
+ "ll_free": "0x0000ce3b",
+ "ll_hint_on_ce_len": "0x0000ce45",
+ "ll_legacy_adv_set_interval": "0x0000ce7d",
+ "ll_malloc": "0x0000ce8d",
+ "ll_query_timing_info": "0x0000cfc5",
+ "ll_scan_set_fixed_channel": "0x0000d069",
+ "ll_set_adv_access_address": "0x0000d17d",
+ "ll_set_adv_coded_scheme": "0x0000d189",
+ "ll_set_conn_coded_scheme": "0x0000d1b9",
+ "ll_set_conn_latency": "0x0000d1e5",
+ "ll_set_conn_tx_power": "0x0000d215",
+ "ll_set_def_antenna": "0x0000d25d",
+ "ll_set_initiating_coded_scheme": "0x0000d279",
+ "ll_set_max_conn_number": "0x0000d285",
+ "nibble_for_char": "0x0001df91",
+ "platform_32k_rc_auto_tune": "0x0001e02d",
+ "platform_32k_rc_tune": "0x0001e0a9",
+ "platform_calibrate_32k": "0x0001e0bd",
+ "platform_config": "0x0001e0c1",
+ "platform_controller_run": "0x0001e199",
+ "platform_get_gen_os_driver": "0x0001e1d1",
+ "platform_get_task_handle": "0x0001e1dd",
+ "platform_get_us_time": "0x0001e1f5",
+ "platform_get_version": "0x0001e1f9",
+ "platform_hrng": "0x0001e201",
+ "platform_init_controller": "0x0001e209",
+ "platform_os_idle_resumed_hook": "0x0001e225",
+ "platform_patch_rf_init_data": "0x0001e229",
+ "platform_post_sleep_processing": "0x0001e235",
+ "platform_pre_sleep_processing": "0x0001e23b",
+ "platform_pre_suppress_ticks_and_sleep_processing": "0x0001e241",
+ "platform_printf": "0x0001e245",
+ "platform_raise_assertion": "0x0001e259",
+ "platform_rand": "0x0001e26d",
+ "platform_read_info": "0x0001e271",
+ "platform_read_persistent_reg": "0x0001e2a1",
+ "platform_reset": "0x0001e2b1",
+ "platform_set_evt_callback": "0x0001e2d5",
+ "platform_set_irq_callback": "0x0001e2e9",
+ "platform_set_rf_clk_source": "0x0001e321",
+ "platform_set_rf_init_data": "0x0001e32d",
+ "platform_set_rf_power_mapping": "0x0001e339",
+ "platform_set_timer": "0x0001e345",
+ "platform_shutdown": "0x0001e349",
+ "platform_switch_app": "0x0001e34d",
+ "platform_trace_raw": "0x0001e379",
+ "platform_write_persistent_reg": "0x0001e391",
+ "printf_hexdump": "0x0001e3a1",
+ "reverse_128": "0x0001e715",
+ "reverse_24": "0x0001e71b",
+ "reverse_48": "0x0001e721",
+ "reverse_56": "0x0001e727",
+ "reverse_64": "0x0001e72d",
+ "reverse_bd_addr": "0x0001e733",
+ "reverse_bytes": "0x0001e739",
+ "sm_add_event_handler": "0x0001e9f9",
+ "sm_address_resolution_lookup": "0x0001eb51",
+ "sm_authenticated": "0x0001eea9",
+ "sm_authorization_decline": "0x0001eeb7",
+ "sm_authorization_grant": "0x0001eed7",
+ "sm_authorization_state": "0x0001eef7",
+ "sm_bonding_decline": "0x0001ef11",
+ "sm_config": "0x0001f331",
+ "sm_config_conn": "0x0001f349",
+ "sm_encryption_key_size": "0x0001f4ff",
+ "sm_just_works_confirm": "0x0001fa39",
+ "sm_le_device_key": "0x0001fd75",
+ "sm_passkey_input": "0x0001fe0b",
+ "sm_private_random_address_generation_get": "0x000201b9",
+ "sm_private_random_address_generation_get_mode": "0x000201c1",
+ "sm_private_random_address_generation_set_mode": "0x000201cd",
+ "sm_private_random_address_generation_set_update_period": "0x000201f5",
+ "sm_register_oob_data_callback": "0x00020331",
+ "sm_request_pairing": "0x0002033d",
+ "sm_send_security_request": "0x00020d5b",
+ "sm_set_accepted_stk_generation_methods": "0x00020d81",
+ "sm_set_authentication_requirements": "0x00020d8d",
+ "sm_set_encryption_key_size_range": "0x00020d99",
+ "sscanf_bd_addr": "0x000210f5",
+ "sysSetPublicDeviceAddr": "0x0002146d",
+ "uuid128_to_str": "0x00021be1",
+ "uuid_add_bluetooth_prefix": "0x00021c39",
+ "uuid_has_bluetooth_prefix": "0x00021c59"
}
\ No newline at end of file
diff --git a/bundles/noos_typical/ING9188xx/meta.json b/bundles/noos_typical/ING9188xx/meta.json
index 17d42f581..602d99c50 100644
--- a/bundles/noos_typical/ING9188xx/meta.json
+++ b/bundles/noos_typical/ING9188xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 5508
+ "size": 4508
},
"rom": {
"base": 16384,
- "size": 128952
+ "size": 128660
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/noos_typical/ING9188xx/platform.bin b/bundles/noos_typical/ING9188xx/platform.bin
index ca673d91b..1a68c8c5c 100644
Binary files a/bundles/noos_typical/ING9188xx/platform.bin and b/bundles/noos_typical/ING9188xx/platform.bin differ
diff --git a/bundles/noos_typical/inc/att_db.h b/bundles/noos_typical/inc/att_db.h
index 70ec3efa3..3e656c769 100644
--- a/bundles/noos_typical/inc/att_db.h
+++ b/bundles/noos_typical/inc/att_db.h
@@ -3,7 +3,7 @@
* @brief API for ATT server
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -28,10 +28,10 @@ extern "C" {
* @ingroup bluetooth_host
* @{
*/
-// custom BTstack error codes
+// custom btstack error codes
#define ATT_ERROR_HCI_DISCONNECT_RECEIVED 0x1f
-// custom BTstack ATT error coders
+// custom btstack ATT error coders
#define ATT_ERROR_DATA_MISMATCH 0x7e
#define ATT_ERROR_TIMEOUT 0x7F
diff --git a/bundles/noos_typical/inc/att_dispatch.h b/bundles/noos_typical/inc/att_dispatch.h
index 60f62817b..9dd2608d1 100644
--- a/bundles/noos_typical/inc/att_dispatch.h
+++ b/bundles/noos_typical/inc/att_dispatch.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_typical/inc/btstack_defines.h b/bundles/noos_typical/inc/btstack_defines.h
index c2ab8d11a..a8d08006c 100644
--- a/bundles/noos_typical/inc/btstack_defines.h
+++ b/bundles/noos_typical/inc/btstack_defines.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -53,10 +53,15 @@
#define L2CAP_SERVICE_ALREADY_REGISTERED 0x69
#define L2CAP_DATA_LEN_EXCEEDS_REMOTE_MTU 0x6A
+#define L2CAP_SERVICE_NOT_REGISTERED 0x6B
+#define L2CAP_CONNECTION_INSUFFICIENT_SECURITY 0x6C
-#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS 0x90
+#define ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS 0x90
#define ATT_HANDLE_VALUE_INDICATION_TIMEOUT 0x91
+// compatibility for typo
+#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS
+
#define GATT_CLIENT_NOT_CONNECTED 0x93
#define GATT_CLIENT_BUSY 0x94
#define GATT_CLIENT_IN_WRONG_STATE 0x95
@@ -88,22 +93,14 @@
// L2CAP EVENTS
/**
- * @format 1BH222222
- * @param status
- * @param address
- * @param handle
- * @param psm
- * @param local_cid
- * @param remote_cid
- * @param local_mtu
- * @param remote_mtu
- * @param flush_timeout
+ * @brief an L2CAP channel is opened
+ * @ref `l2cap_event_channel_opened_t`
*/
#define L2CAP_EVENT_CHANNEL_OPENED 0x70
/*
- * @format 2
- * @param local_cid
+ * @brief an L2CAP channel is closed
+ * @ref `l2cap_event_channel_closed_t`
*/
#define L2CAP_EVENT_CHANNEL_CLOSED 0x71
@@ -153,6 +150,24 @@
*/
#define L2CAP_EVENT_COMMAND_REJECT_RESPONSE 0x79
+/**
+ * @brief LE credit channel : an SDU (complete package) event
+ *
+ * Use `decode_l2cap_event(l2cap_event_complete_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_complete_sdu_t`
+*/
+#define L2CAP_EVENT_COMPLETED_SDU_PACKET 0x7A
+
+/**
+ * @brief LE credit channel : a fragment (K-frame) of an SDU event
+ *
+ * Use `decode_l2cap_event(l2cap_event_fragment_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_fragment_sdu_t`
+*/
+#define L2CAP_EVENT_FRAGMENT_SDU_PACKET 0x7B
+
/**
* @format H1
* @param handle
diff --git a/bundles/noos_typical/inc/btstack_event.h b/bundles/noos_typical/inc/btstack_event.h
index 4c488f787..294fb813b 100644
--- a/bundles/noos_typical/inc/btstack_event.h
+++ b/bundles/noos_typical/inc/btstack_event.h
@@ -4,7 +4,7 @@
*
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -783,6 +783,43 @@ static __INLINE uint8_t gap_event_dedicated_bonding_completed_get_status(const u
return *decode_event_offset(event, uint8_t, 2);
}
+typedef struct l2cap_event_complete_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ const uint8_t *payload; // payload of this SDU
+} l2cap_event_complete_sdu_t;
+
+typedef struct l2cap_event_channel_opened
+{
+ uint8_t status;
+ bd_addr_t peer_addr;
+ hci_con_handle_t conn_handle;
+ uint16_t psm;
+ uint16_t local_cid;
+ uint16_t peer_cid;
+ uint16_t local_mtu;
+ uint16_t peer_mtu;
+ uint16_t local_mps;
+ uint16_t peer_mps;
+ uint16_t flush_timeout;
+ uint16_t local_credits;
+ uint16_t peer_credits;
+} l2cap_event_channel_opened_t;
+
+typedef struct l2cap_event_channel_closed
+{
+ uint16_t local_cid;
+ uint8_t reason;
+} l2cap_event_channel_closed_t;
+
+typedef struct l2cap_event_fragment_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ uint16_t offset; // offset of this fragment within a SDU
+ uint16_t length; // length of this fragment within a SDU
+ const uint8_t *payload; // payload of this fragment
+} l2cap_event_fragment_sdu_t;
+
typedef struct event_command_complete_return_param_read_rssi
{
uint8_t status;
@@ -1226,7 +1263,9 @@ typedef enum btstack_l2cap_msg_def
#define decode_hci_event_disconn_complete(packet) decode_event_offset(packet, event_disconn_complete_t, 2)
#define decode_hci_event_vendor_ccm_complete(packet) decode_event_offset(packet, event_vendor_ccm_complete_t, 5)
-#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+
+#define decode_l2cap_event(packet, T) decode_event_offset(packet, T, 2)
/* API_END */
diff --git a/bundles/noos_typical/inc/btstack_util.h b/bundles/noos_typical/inc/btstack_util.h
index 3f7232fc4..5e6d0d7ef 100644
--- a/bundles/noos_typical/inc/btstack_util.h
+++ b/bundles/noos_typical/inc/btstack_util.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_typical/inc/gap.h b/bundles/noos_typical/inc/gap.h
index bf5d8a140..413b9423a 100644
--- a/bundles/noos_typical/inc/gap.h
+++ b/bundles/noos_typical/inc/gap.h
@@ -1380,7 +1380,7 @@ void hci_add_event_handler(btstack_packet_callback_registration_t * callback_han
void hci_register_acl_packet_handler(btstack_packet_handler_t handler);
/**
- * @brief Requests the change of BTstack power mode.
+ * @brief Requests the change of btstack power mode.
*
* @param mode 0:HCI_POWER_OFF ,1:HCI_POWER_ON , 2:HCI_POWER_SLEEP
*
diff --git a/bundles/noos_typical/inc/gatt_client.h b/bundles/noos_typical/inc/gatt_client.h
index 910cdf251..9a036f6f6 100644
--- a/bundles/noos_typical/inc/gatt_client.h
+++ b/bundles/noos_typical/inc/gatt_client.h
@@ -3,7 +3,7 @@
* Copyright Message
*
* INGCHIPS confidential and proprietary.
- * COPYRIGHT (c) 2018 by INGCHIPS
+ * COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
diff --git a/bundles/noos_typical/inc/l2cap.h b/bundles/noos_typical/inc/l2cap.h
index f464836dc..52b0efb79 100644
--- a/bundles/noos_typical/inc/l2cap.h
+++ b/bundles/noos_typical/inc/l2cap.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -22,27 +22,6 @@
extern "C" {
#endif
-void l2cap_register_fixed_channel(btstack_packet_handler_t packet_handler, uint16_t channel_id);
-int l2cap_can_send_fixed_channel_packet_now(hci_con_handle_t con_handle, uint16_t channel_id);
-void l2cap_request_can_send_fix_channel_now_event(hci_con_handle_t con_handle, uint16_t channel_id);
-int l2cap_send_connectionless(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len);
-int l2cap_send_connectionless3(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len,
- const uint8_t *data3, uint16_t data3_len);
-
-int l2cap_le_send_flow_control_credit(hci_con_handle_t con_handle,uint8_t id ,uint16_t cid,uint16_t credits);
-
-// PTS Testing
-int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t len);
-
-// Used by RFCOMM - similar to l2cap_can-send_packet_now but does not check if outgoing buffer is reserved
-// int l2cap_can_send_prepared_packet_now(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
-
-
/* API_START */
/**
@@ -51,69 +30,152 @@ int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t
void l2cap_init(void);
/**
- * @brief Registers packet handler for LE Connection Parameter Update events
+ * @brief add event handler with packet type `L2CAP_EVENT_PACKET`
+ *
+ * Note: Event code includes:
+ * * L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE
+ *
+ * @param[in] callback_handler the handler to be chained together
*/
-void l2cap_register_packet_handler(btstack_packet_handler_t handler);
+void l2cap_add_event_handler(btstack_packet_callback_registration_t *callback_handler);
/**
- * @brief Get max MTU for Classic connections based on btstack configuration
+ * @brief Registers packet handler for LE Connection Parameter Update related events
+ *
+ * Note: Packet type `HCI_EVENT_PACKET`. Event code includes:
+ * * L2CAP_EVENT_COMMAND_REJECT_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST
+ *
+ * @param[in] handler the callback function
*/
-uint16_t l2cap_max_mtu(void);
+void l2cap_register_packet_handler(btstack_packet_handler_t handler);
/**
* @brief Get max MTU for LE connections based on btstack configuration
+ *
+ * @return max LE MTU
*/
uint16_t l2cap_max_le_mtu(void);
-/**
- * @brief Creates L2CAP channel to the PSM of a remote device with baseband address. A new baseband connection will be initiated if necessary.
- * @param packet_handler
- * @param address
- * @param psm
- * @param mtu
- * @param local_cid
- * @param status
- */
-uint8_t l2cap_create_channel(btstack_packet_handler_t packet_handler, bd_addr_t address, uint16_t psm, uint16_t mtu, uint16_t * out_local_cid);
+#define l2cap_max_mtu l2cap_max_le_mtu
/**
* @brief Disconnects L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] reason reason (ignored)
*/
void l2cap_disconnect(uint16_t local_cid, uint8_t reason);
/**
* @brief Queries the maximal transfer unit (MTU) for L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @return peer MTU
*/
-uint16_t l2cap_get_remote_mtu_for_local_cid(uint16_t local_cid);
+uint16_t l2cap_get_peer_mtu_for_local_cid(uint16_t local_cid);
/**
- * @brief Sends L2CAP data packet to the channel with given identifier.
+ * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ *
+ * Note: Before creating a connection with a SPSM, the service must be registered.
+ *
+ * @param[in] packet_handler packet handler
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] mtu MTU (23..max, max = l2cap_max_le_mtu())
+ * when mtu = 0, max LE MTU is used
+ * @param[in] security_level security level
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_ALREADY_REGISTERED
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-int l2cap_send(uint16_t local_cid, uint8_t *data, uint16_t len);
+uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu,
+ gap_security_level_t security_level);
/**
- * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ * @brief Unregisters L2CAP service with given PSM.
+ *
+ * @param[in] psm SPSM (LE_PSM)
*/
-uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu, gap_security_level_t security_level);
+void l2cap_unregister_service(uint16_t psm);
/**
- * @brief Unregisters L2CAP service with given PSM. On embedded systems, use NULL for connection parameter.
+ * @brief Create a credit based connection for SPSM
+ *
+ *
+ * @param[in] credits initial credits assigned to peer
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] handle connection handle
+ * @param[out] local_cid identifier of the newly create channel
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_NOT_REGISTERED
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ * * L2CAP_CONNECTION_INSUFFICIENT_SECURITY
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-void l2cap_unregister_service(uint16_t psm);
+uint8_t l2cap_create_le_credit_based_connection_request(uint16_t credits, uint16_t psm, uint16_t handle, uint16_t *local_cid);
/**
- * @brief Accepts incoming L2CAP connection.
+ * @brief Get credits information of a credit based connection
+ *
+ * `local_credits`: how many K-frames the peer is capable to receive,
+ * i.e. how many K-frames we (the _local_) can transmit;
+ *
+ * `peer_credits`: `local_credits` in the peer.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] peer_credits peer credits at present
+ * @param[in] local_credits local credits at present
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_accept_connection(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
+uint8_t l2cap_get_le_credit_based_connection_credits(uint16_t local_cid,
+ uint32_t *peer_credits, uint32_t *local_credits);
+/**
+ * @brief send an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data data of the SDU
+ * @param[in] len total length of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * (see `l2cap_credit_based_send_continue`)
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+int l2cap_credit_based_send(uint16_t local_cid, const uint8_t *data, uint16_t len);
/**
- * @brief Deny incoming L2CAP connection.
+ * @brief continue sending an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data remaining data of the SDU that has not been sent
+ * @param[in] len length of remaining data of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_decline_connection(uint16_t local_cid, uint8_t reason);
-// WARNING: ^^^ this API is not available in this release
+int l2cap_credit_based_send_continue(uint16_t local_cid, const uint8_t *data, uint16_t len);
+/**
+ * @brief add more credits to the peer of the specified channel, or rather notify
+ * the peer that _local_ are capable of receiving more K-frames.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] credits credits to be added to the peer
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+uint8_t l2cap_le_send_flow_control_credit(uint16_t local_cid, uint16_t credits);
/**
* @brief Check if outgoing buffer is available and that there's space on the Bluetooth module
@@ -124,42 +186,45 @@ int l2cap_can_send_packet_now(uint16_t local_cid);
* @brief Request emission of L2CAP_EVENT_CAN_SEND_NOW as soon as possible
* @note L2CAP_EVENT_CAN_SEND_NOW might be emitted during call to this function
* so packet handler should be ready to handle it
- * @param local_cid
+ * @param[in] local_cid local channel identifier
*/
void l2cap_request_can_send_now_event(uint16_t local_cid);
/**
* @brief Request an update of the connection parameter for a given LE connection
- * @param handle
- * @param conn_interval_min (unit: 1.25ms)
- * @param conn_interval_max (unit: 1.25ms)
- * @param conn_latency
- * @param supervision_timeout (unit: 10ms)
- * @returns 0 if ok
- */
-int l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
+ *
+ * Note: only Peripheral role can call this API.
+ *
+ * @param[in] handle connection handle
+ * @param[in] conn_interval_min (unit: 1.25ms)
+ * @param[in] conn_interval_max (unit: 1.25ms)
+ * @param[in] conn_latency slave latency
+ * @param[in] supervision_timeout (unit: 10ms)
+ * @returns 0 if successful else error occurs:
+ * * ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER
+ */
+uint8_t l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
uint16_t conn_interval_max, uint16_t conn_latency, uint16_t supervision_timeout);
-#ifdef CONNECTION_PARAMETER_DYNAMICALLY_ADJUST
-uint8_t l2cap_update_MTU_on_LL_link(l2cap_channel_t * channel);
-#endif
+/** @brief for PTS Testing
+ */
+uint8_t l2cap_send_echo_request(hci_con_handle_t con_handle, const uint8_t *data, uint16_t len);
/* API_END */
#ifdef __cplusplus
}
#endif
-/*to define the error result of the connection response*/
-#ifdef L2CAP_CREDIT_BASED_FLOW_CONTROL_MODE
-#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
-#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
-#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
-#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
-#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
-#endif
+
+/* Error result of the connection response */
+#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
+#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
+#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
+#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
+#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
#endif // __L2CAP_H
diff --git a/bundles/noos_typical/inc/le_device_db.h b/bundles/noos_typical/inc/le_device_db.h
index 03f8e550f..b81d04f5a 100644
--- a/bundles/noos_typical/inc/le_device_db.h
+++ b/bundles/noos_typical/inc/le_device_db.h
@@ -41,15 +41,9 @@ typedef struct le_device_memory_db {
#pragma pack (pop)
-typedef struct white_list
-{
- uint8_t addr_type;
- bd_addr_t addr;
-}white_list_t;
-
/**
- LE Device DB for pure LE Peripherals is only required for signed writes
+ LE Device DB is only required for signed writes
Per bonded device, it can store
- it stores the Identity Resolving Key (IRK) and its address to resolve private addresses
@@ -60,7 +54,6 @@ typedef struct white_list
*/
-
// LE Device db interface
/* API_START */
diff --git a/bundles/noos_typical/inc/ll_api.h b/bundles/noos_typical/inc/ll_api.h
index e8b17ef4a..877a84328 100644
--- a/bundles/noos_typical/inc/ll_api.h
+++ b/bundles/noos_typical/inc/ll_api.h
@@ -253,14 +253,15 @@ typedef void (* f_ll_raw_packet_done)(struct ll_raw_packet *packet, void *user_d
*
* @param[in] packet the packet object
* @param[in] header header sending before packet length
- * @param[in] freq_mhz freqency in MHz
+ * @param[in] freq_mhz frequency in MHz
* When 0: use the channel specified in `ll_raw_packet_set_param`)
* @return 0 if successful else error code
*
*
* Note: Only a subset of uint8_t are supported in `header`;
* When bare mode is used, CRC & whitening are all handled by apps;
- * When bare mode is used, `crc_init` is ignored.
+ * When bare mode is used, `crc_init` is ignored;
+ * When `freq_mhz` is not zero, BLE activities near this raw packets might be affected.
****************************************************************************************
*/
// int ll_raw_packet_set_bare_mode(struct ll_raw_packet *packet,
diff --git a/bundles/noos_typical/inc/sm.h b/bundles/noos_typical/inc/sm.h
index 0213e5e3f..874e028a5 100644
--- a/bundles/noos_typical/inc/sm.h
+++ b/bundles/noos_typical/inc/sm.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/typical/ING9168xx/apis.json b/bundles/typical/ING9168xx/apis.json
index e526e6cf9..ac307fec4 100644
--- a/bundles/typical/ING9168xx/apis.json
+++ b/bundles/typical/ING9168xx/apis.json
@@ -1,330 +1,327 @@
{
- "att_dispatch_client_can_send_now": "0x02004635",
- "att_dispatch_client_request_can_send_now_event": "0x0200463b",
- "att_dispatch_register_client": "0x02004641",
- "att_dispatch_register_server": "0x02004655",
- "att_dispatch_server_can_send_now": "0x02004669",
- "att_dispatch_server_request_can_send_now_event": "0x0200466f",
- "att_emit_general_event": "0x02004721",
- "att_server_can_send_packet_now": "0x02004e3d",
- "att_server_deferred_read_response": "0x02004e41",
- "att_server_get_mtu": "0x02004e59",
- "att_server_indicate": "0x02004ed1",
- "att_server_init": "0x02004f55",
- "att_server_notify": "0x02004f91",
- "att_server_register_packet_handler": "0x020050a9",
- "att_server_request_can_send_now_event": "0x020050b5",
- "att_set_db": "0x020050d1",
- "att_set_read_callback": "0x020050e5",
- "att_set_write_callback": "0x020050f1",
- "bd_addr_cmp": "0x020052d9",
- "bd_addr_copy": "0x020052df",
- "bd_addr_to_str": "0x020052e9",
- "big_endian_read_16": "0x02005321",
- "big_endian_read_32": "0x02005329",
- "big_endian_store_16": "0x0200533d",
- "big_endian_store_32": "0x02005349",
- "btstack_config": "0x020054c5",
- "btstack_memory_pool_create": "0x02005603",
- "btstack_memory_pool_free": "0x0200562d",
- "btstack_memory_pool_get": "0x0200568d",
- "btstack_push_user_msg": "0x020056f5",
- "btstack_push_user_runnable": "0x02005701",
- "char_for_nibble": "0x0200599f",
- "eTaskConfirmSleepModeStatus": "0x02005cbd",
- "gap_add_dev_to_periodic_list": "0x02006351",
- "gap_add_whitelist": "0x02006369",
- "gap_aes_encrypt": "0x0200637d",
- "gap_clear_white_lists": "0x020063c1",
- "gap_clr_adv_set": "0x020063d1",
- "gap_clr_periodic_adv_list": "0x020063e1",
- "gap_create_connection_cancel": "0x020063f1",
- "gap_default_periodic_adv_sync_transfer_param": "0x02006401",
- "gap_disconnect": "0x02006419",
- "gap_disconnect_all": "0x02006445",
- "gap_ext_create_connection": "0x02006485",
- "gap_get_connection_parameter_range": "0x02006575",
- "gap_le_read_channel_map": "0x020065b1",
- "gap_periodic_adv_create_sync": "0x02006625",
- "gap_periodic_adv_create_sync_cancel": "0x02006649",
- "gap_periodic_adv_set_info_transfer": "0x02006659",
- "gap_periodic_adv_sync_transfer": "0x02006671",
- "gap_periodic_adv_sync_transfer_param": "0x02006689",
- "gap_periodic_adv_term_sync": "0x020066a5",
- "gap_read_antenna_info": "0x02006739",
- "gap_read_periodic_adv_list_size": "0x02006749",
- "gap_read_phy": "0x02006759",
- "gap_read_remote_used_features": "0x0200676d",
- "gap_read_remote_version": "0x02006781",
- "gap_read_rssi": "0x02006795",
- "gap_remove_whitelist": "0x020067a9",
- "gap_rmv_adv_set": "0x0200682d",
- "gap_rmv_dev_from_periodic_list": "0x02006841",
- "gap_rx_test_v2": "0x02006859",
- "gap_rx_test_v3": "0x02006871",
- "gap_set_adv_set_random_addr": "0x020068c1",
- "gap_set_connection_cte_request_enable": "0x0200690d",
- "gap_set_connection_cte_response_enable": "0x02006929",
- "gap_set_connection_cte_rx_param": "0x0200693d",
- "gap_set_connection_cte_tx_param": "0x02006999",
- "gap_set_connection_parameter_range": "0x020069ed",
- "gap_set_connectionless_cte_tx_enable": "0x02006a05",
- "gap_set_connectionless_cte_tx_param": "0x02006a19",
- "gap_set_connectionless_iq_sampling_enable": "0x02006a79",
- "gap_set_data_length": "0x02006add",
- "gap_set_def_phy": "0x02006af9",
- "gap_set_ext_adv_data": "0x02006b11",
- "gap_set_ext_adv_enable": "0x02006b29",
- "gap_set_ext_adv_para": "0x02006ba5",
- "gap_set_ext_scan_enable": "0x02006c7d",
- "gap_set_ext_scan_para": "0x02006c95",
- "gap_set_ext_scan_response_data": "0x02006d3d",
- "gap_set_host_channel_classification": "0x02006d55",
- "gap_set_periodic_adv_data": "0x02006d69",
- "gap_set_periodic_adv_enable": "0x02006ddd",
- "gap_set_periodic_adv_para": "0x02006df1",
- "gap_set_periodic_adv_rx_enable": "0x02006e09",
- "gap_set_phy": "0x02006e1d",
- "gap_set_random_device_address": "0x02006e39",
- "gap_start_ccm": "0x02006e69",
- "gap_test_end": "0x02006e9d",
- "gap_tx_test_v2": "0x02006ead",
- "gap_tx_test_v4": "0x02006ec5",
- "gap_update_connection_parameters": "0x02006eed",
- "gap_vendor_tx_continuous_wave": "0x02006f31",
- "gatt_client_cancel_write": "0x02007459",
- "gatt_client_discover_characteristic_descriptors": "0x0200747f",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020074bf",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200750f",
- "gatt_client_discover_characteristics_for_service": "0x0200755f",
- "gatt_client_discover_primary_services": "0x02007595",
- "gatt_client_discover_primary_services_by_uuid128": "0x020075c7",
- "gatt_client_discover_primary_services_by_uuid16": "0x0200760b",
- "gatt_client_execute_write": "0x02007649",
- "gatt_client_find_included_services_for_service": "0x0200766f",
- "gatt_client_get_mtu": "0x0200769d",
- "gatt_client_is_ready": "0x02007761",
- "gatt_client_listen_for_characteristic_value_updates": "0x02007777",
- "gatt_client_prepare_write": "0x02007799",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020077d5",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020077ff",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007805",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x02007833",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02007839",
- "gatt_client_read_multiple_characteristic_values": "0x02007867",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007897",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x020078c5",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x02007911",
- "gatt_client_register_handler": "0x0200795d",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x02007969",
- "gatt_client_signed_write_without_response": "0x02007d9d",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007e61",
- "gatt_client_write_client_characteristic_configuration": "0x02007e9b",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007eed",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007efd",
- "gatt_client_write_long_value_of_characteristic": "0x02007f39",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007f49",
- "gatt_client_write_value_of_characteristic": "0x02007f85",
- "gatt_client_write_value_of_characteristic_without_response": "0x02007fbb",
- "hci_add_event_handler": "0x020095b1",
- "hci_power_control": "0x02009db1",
- "hci_register_acl_packet_handler": "0x02009f65",
- "kv_commit": "0x0200a495",
- "kv_get": "0x0200a4ed",
- "kv_init": "0x0200a505",
- "kv_put": "0x0200a56d",
- "kv_remove": "0x0200a5e5",
- "kv_remove_all": "0x0200a621",
- "kv_value_modified": "0x0200a665",
- "kv_visit": "0x0200a669",
- "l2cap_can_send_fixed_channel_packet_now": "0x0200a729",
- "l2cap_can_send_packet_now": "0x0200a72d",
- "l2cap_create_channel": "0x0200a8e5",
- "l2cap_disconnect": "0x0200aa21",
- "l2cap_get_remote_mtu_for_local_cid": "0x0200abe5",
- "l2cap_init": "0x0200b049",
- "l2cap_le_send_flow_control_credit": "0x0200b089",
- "l2cap_max_le_mtu": "0x0200b349",
- "l2cap_max_mtu": "0x0200b34d",
- "l2cap_register_fixed_channel": "0x0200b459",
- "l2cap_register_packet_handler": "0x0200b475",
- "l2cap_register_service": "0x0200b481",
- "l2cap_request_can_send_fix_channel_now_event": "0x0200b565",
- "l2cap_request_can_send_now_event": "0x0200b589",
- "l2cap_request_connection_parameter_update": "0x0200b5a3",
- "l2cap_send": "0x0200b951",
- "l2cap_send_connectionless": "0x0200b9c9",
- "l2cap_send_connectionless3": "0x0200ba59",
- "l2cap_send_echo_request": "0x0200baf1",
- "l2cap_unregister_service": "0x0200bbcd",
- "le_device_db_add": "0x0200bc25",
- "le_device_db_find": "0x0200bcf9",
- "le_device_db_from_key": "0x0200bd25",
- "le_device_db_iter_cur": "0x0200bd2d",
- "le_device_db_iter_cur_key": "0x0200bd31",
- "le_device_db_iter_init": "0x0200bd35",
- "le_device_db_iter_next": "0x0200bd3d",
- "le_device_db_remove_key": "0x0200bd63",
- "ll_adjust_conn_peer_tx_power": "0x0200bd91",
- "ll_free": "0x0200bdbd",
- "ll_hint_on_ce_len": "0x0200bdc9",
- "ll_legacy_adv_set_interval": "0x0200be01",
- "ll_malloc": "0x0200be11",
- "ll_scan_set_fixed_channel": "0x0200bf81",
- "ll_set_adv_access_address": "0x0200c095",
- "ll_set_adv_coded_scheme": "0x0200c0a1",
- "ll_set_conn_coded_scheme": "0x0200c0d9",
- "ll_set_conn_latency": "0x0200c105",
- "ll_set_conn_tx_power": "0x0200c135",
- "ll_set_def_antenna": "0x0200c171",
- "ll_set_initiating_coded_scheme": "0x0200c191",
- "ll_set_max_conn_number": "0x0200c19d",
- "ll_set_tx_power_range": "0x0200c239",
- "nibble_for_char": "0x0201e971",
- "platform_32k_rc_auto_tune": "0x0201ea1d",
- "platform_32k_rc_tune": "0x0201ea69",
- "platform_calibrate_32k": "0x0201ea85",
- "platform_config": "0x0201ea89",
- "platform_get_current_task": "0x0201eb59",
- "platform_get_gen_os_driver": "0x0201eb7d",
- "platform_get_heap_status": "0x0201eb85",
- "platform_get_task_handle": "0x0201eb9d",
- "platform_get_us_time": "0x0201ebbd",
- "platform_get_version": "0x0201ebc1",
- "platform_hrng": "0x0201ebc9",
- "platform_install_isr_stack": "0x0201ebd1",
- "platform_install_task_stack": "0x0201ebdd",
- "platform_patch_rf_init_data": "0x0201ec15",
- "platform_printf": "0x0201ec21",
- "platform_raise_assertion": "0x0201ec35",
- "platform_rand": "0x0201ec49",
- "platform_read_info": "0x0201ec4d",
- "platform_read_persistent_reg": "0x0201ec7d",
- "platform_reset": "0x0201ec89",
- "platform_set_evt_callback": "0x0201ec91",
- "platform_set_irq_callback": "0x0201eca5",
- "platform_set_rf_clk_source": "0x0201ecdd",
- "platform_set_rf_init_data": "0x0201ece9",
- "platform_set_rf_power_mapping": "0x0201ecf5",
- "platform_set_timer": "0x0201ed01",
- "platform_shutdown": "0x0201ed05",
- "platform_switch_app": "0x0201ed09",
- "platform_trace_raw": "0x0201ed25",
- "platform_write_persistent_reg": "0x0201ed3d",
- "printf_hexdump": "0x0201eef5",
- "pvPortMalloc": "0x0201f9e9",
- "pvTaskIncrementMutexHeldCount": "0x0201fad1",
- "pvTimerGetTimerID": "0x0201fae9",
- "pxPortInitialiseStack": "0x0201fb15",
- "reverse_128": "0x0201fcfd",
- "reverse_24": "0x0201fd03",
- "reverse_48": "0x0201fd09",
- "reverse_56": "0x0201fd0f",
- "reverse_64": "0x0201fd15",
- "reverse_bd_addr": "0x0201fd1b",
- "reverse_bytes": "0x0201fd21",
- "sm_add_event_handler": "0x0202003d",
- "sm_address_resolution_lookup": "0x02020195",
- "sm_authenticated": "0x020204ed",
- "sm_authorization_decline": "0x020204fb",
- "sm_authorization_grant": "0x0202051b",
- "sm_authorization_state": "0x0202053b",
- "sm_bonding_decline": "0x02020555",
- "sm_config": "0x0202096d",
- "sm_config_conn": "0x02020985",
- "sm_encryption_key_size": "0x02020b3b",
- "sm_just_works_confirm": "0x02021075",
- "sm_le_device_key": "0x020213b1",
- "sm_passkey_input": "0x02021447",
- "sm_private_random_address_generation_get": "0x020217f5",
- "sm_private_random_address_generation_get_mode": "0x020217fd",
- "sm_private_random_address_generation_set_mode": "0x02021809",
- "sm_private_random_address_generation_set_update_period": "0x02021831",
- "sm_register_oob_data_callback": "0x0202196d",
- "sm_request_pairing": "0x02021979",
- "sm_send_security_request": "0x0202239f",
- "sm_set_accepted_stk_generation_methods": "0x020223c5",
- "sm_set_authentication_requirements": "0x020223d1",
- "sm_set_encryption_key_size_range": "0x020223dd",
- "sscanf_bd_addr": "0x0202273d",
- "sysSetPublicDeviceAddr": "0x02022b05",
- "uuid128_to_str": "0x0202324d",
- "uuid_add_bluetooth_prefix": "0x020232a5",
- "uuid_has_bluetooth_prefix": "0x020232c5",
- "uxListRemove": "0x020232e1",
- "uxQueueMessagesWaiting": "0x02023309",
- "uxQueueMessagesWaitingFromISR": "0x02023331",
- "uxQueueSpacesAvailable": "0x0202334d",
- "uxTaskGetStackHighWaterMark": "0x02023379",
- "uxTaskPriorityGet": "0x02023399",
- "uxTaskPriorityGetFromISR": "0x020233b5",
- "vListInitialise": "0x02023453",
- "vListInitialiseItem": "0x02023469",
- "vListInsert": "0x0202346f",
- "vListInsertEnd": "0x0202349f",
- "vPortEndScheduler": "0x020234b9",
- "vPortEnterCritical": "0x020234e5",
- "vPortExitCritical": "0x0202352d",
- "vPortFree": "0x02023561",
- "vPortSuppressTicksAndSleep": "0x02023605",
- "vPortValidateInterruptPriority": "0x0202370d",
- "vQueueDelete": "0x02023769",
- "vQueueWaitForMessageRestricted": "0x02023795",
- "vTaskDelay": "0x020237d9",
- "vTaskInternalSetTimeOutState": "0x02023825",
- "vTaskMissedYield": "0x02023835",
- "vTaskPlaceOnEventList": "0x02023841",
- "vTaskPlaceOnEventListRestricted": "0x02023879",
- "vTaskPriorityDisinheritAfterTimeout": "0x020238b9",
- "vTaskPrioritySet": "0x02023965",
- "vTaskResume": "0x02023a2d",
- "vTaskStartScheduler": "0x02023ab1",
- "vTaskStepTick": "0x02023b41",
- "vTaskSuspend": "0x02023b71",
- "vTaskSuspendAll": "0x02023c2d",
- "vTaskSwitchContext": "0x02023c3d",
- "xPortStartScheduler": "0x02023ce5",
- "xQueueAddToSet": "0x02023de5",
- "xQueueCreateCountingSemaphore": "0x02023e09",
- "xQueueCreateCountingSemaphoreStatic": "0x02023e45",
- "xQueueCreateMutex": "0x02023e89",
- "xQueueCreateMutexStatic": "0x02023e9f",
- "xQueueCreateSet": "0x02023eb9",
- "xQueueGenericCreate": "0x02023ec1",
- "xQueueGenericCreateStatic": "0x02023f0d",
- "xQueueGenericReset": "0x02023f75",
- "xQueueGenericSend": "0x02024001",
- "xQueueGenericSendFromISR": "0x0202416d",
- "xQueueGiveFromISR": "0x0202422d",
- "xQueueGiveMutexRecursive": "0x020242d1",
- "xQueueIsQueueEmptyFromISR": "0x02024311",
- "xQueueIsQueueFullFromISR": "0x02024335",
- "xQueuePeek": "0x0202435d",
- "xQueuePeekFromISR": "0x02024485",
- "xQueueReceive": "0x020244f1",
- "xQueueReceiveFromISR": "0x0202461d",
- "xQueueRemoveFromSet": "0x020246b1",
- "xQueueSelectFromSet": "0x020246d3",
- "xQueueSelectFromSetFromISR": "0x020246e5",
- "xQueueSemaphoreTake": "0x020246f9",
- "xQueueTakeMutexRecursive": "0x02024865",
- "xTaskCheckForTimeOut": "0x020248a9",
- "xTaskCreate": "0x02024919",
- "xTaskCreateStatic": "0x02024975",
- "xTaskGetCurrentTaskHandle": "0x020249e5",
- "xTaskGetSchedulerState": "0x020249f1",
- "xTaskGetTickCount": "0x02024a0d",
- "xTaskGetTickCountFromISR": "0x02024a19",
- "xTaskIncrementTick": "0x02024a29",
- "xTaskPriorityDisinherit": "0x02024af5",
- "xTaskPriorityInherit": "0x02024b89",
- "xTaskRemoveFromEventList": "0x02024c1d",
- "xTaskResumeAll": "0x02024c9d",
- "xTaskResumeFromISR": "0x02024d65",
- "xTimerCreate": "0x02024df1",
- "xTimerCreateStatic": "0x02024e25",
- "xTimerCreateTimerTask": "0x02024e5d",
- "xTimerGenericCommand": "0x02024ec9",
- "xTimerGetExpiryTime": "0x02024f39",
- "xTimerGetTimerDaemonTaskHandle": "0x02024f59"
+ "att_dispatch_client_can_send_now": "0x02004379",
+ "att_dispatch_client_request_can_send_now_event": "0x0200437f",
+ "att_dispatch_register_client": "0x02004385",
+ "att_dispatch_register_server": "0x02004399",
+ "att_dispatch_server_can_send_now": "0x020043ad",
+ "att_dispatch_server_request_can_send_now_event": "0x020043b3",
+ "att_emit_general_event": "0x02004465",
+ "att_server_can_send_packet_now": "0x02004b81",
+ "att_server_deferred_read_response": "0x02004b85",
+ "att_server_get_mtu": "0x02004b9d",
+ "att_server_indicate": "0x02004c15",
+ "att_server_init": "0x02004c99",
+ "att_server_notify": "0x02004cd5",
+ "att_server_register_packet_handler": "0x02004ded",
+ "att_server_request_can_send_now_event": "0x02004df9",
+ "att_set_db": "0x02004e15",
+ "att_set_read_callback": "0x02004e29",
+ "att_set_write_callback": "0x02004e35",
+ "bd_addr_cmp": "0x0200501d",
+ "bd_addr_copy": "0x02005023",
+ "bd_addr_to_str": "0x0200502d",
+ "big_endian_read_16": "0x02005065",
+ "big_endian_read_32": "0x0200506d",
+ "big_endian_store_16": "0x02005081",
+ "big_endian_store_32": "0x0200508d",
+ "btstack_config": "0x02005209",
+ "btstack_memory_pool_create": "0x02005347",
+ "btstack_memory_pool_free": "0x02005371",
+ "btstack_memory_pool_get": "0x020053d1",
+ "btstack_push_user_msg": "0x02005439",
+ "btstack_push_user_runnable": "0x02005445",
+ "char_for_nibble": "0x020056e3",
+ "eTaskConfirmSleepModeStatus": "0x02005a29",
+ "gap_add_dev_to_periodic_list": "0x020060bd",
+ "gap_add_whitelist": "0x020060d5",
+ "gap_aes_encrypt": "0x020060e9",
+ "gap_clear_white_lists": "0x0200612d",
+ "gap_clr_adv_set": "0x0200613d",
+ "gap_clr_periodic_adv_list": "0x0200614d",
+ "gap_create_connection_cancel": "0x0200615d",
+ "gap_default_periodic_adv_sync_transfer_param": "0x0200616d",
+ "gap_disconnect": "0x02006185",
+ "gap_disconnect_all": "0x020061b1",
+ "gap_ext_create_connection": "0x020061f1",
+ "gap_get_connection_parameter_range": "0x020062e1",
+ "gap_le_read_channel_map": "0x0200631d",
+ "gap_periodic_adv_create_sync": "0x02006391",
+ "gap_periodic_adv_create_sync_cancel": "0x020063b5",
+ "gap_periodic_adv_set_info_transfer": "0x020063c5",
+ "gap_periodic_adv_sync_transfer": "0x020063dd",
+ "gap_periodic_adv_sync_transfer_param": "0x020063f5",
+ "gap_periodic_adv_term_sync": "0x02006411",
+ "gap_read_antenna_info": "0x020064a5",
+ "gap_read_periodic_adv_list_size": "0x020064b5",
+ "gap_read_phy": "0x020064c5",
+ "gap_read_remote_used_features": "0x020064d9",
+ "gap_read_remote_version": "0x020064ed",
+ "gap_read_rssi": "0x02006501",
+ "gap_remove_whitelist": "0x02006515",
+ "gap_rmv_adv_set": "0x02006599",
+ "gap_rmv_dev_from_periodic_list": "0x020065ad",
+ "gap_rx_test_v2": "0x020065c5",
+ "gap_rx_test_v3": "0x020065dd",
+ "gap_set_adv_set_random_addr": "0x0200662d",
+ "gap_set_connection_cte_request_enable": "0x02006679",
+ "gap_set_connection_cte_response_enable": "0x02006695",
+ "gap_set_connection_cte_rx_param": "0x020066a9",
+ "gap_set_connection_cte_tx_param": "0x02006705",
+ "gap_set_connection_parameter_range": "0x02006759",
+ "gap_set_connectionless_cte_tx_enable": "0x02006771",
+ "gap_set_connectionless_cte_tx_param": "0x02006785",
+ "gap_set_connectionless_iq_sampling_enable": "0x020067e5",
+ "gap_set_data_length": "0x02006849",
+ "gap_set_def_phy": "0x02006865",
+ "gap_set_ext_adv_data": "0x0200687d",
+ "gap_set_ext_adv_enable": "0x02006895",
+ "gap_set_ext_adv_para": "0x02006911",
+ "gap_set_ext_scan_enable": "0x020069e9",
+ "gap_set_ext_scan_para": "0x02006a01",
+ "gap_set_ext_scan_response_data": "0x02006aa9",
+ "gap_set_host_channel_classification": "0x02006ac1",
+ "gap_set_periodic_adv_data": "0x02006ad5",
+ "gap_set_periodic_adv_enable": "0x02006b49",
+ "gap_set_periodic_adv_para": "0x02006b5d",
+ "gap_set_periodic_adv_rx_enable": "0x02006b75",
+ "gap_set_phy": "0x02006b89",
+ "gap_set_random_device_address": "0x02006ba5",
+ "gap_start_ccm": "0x02006bd5",
+ "gap_test_end": "0x02006c09",
+ "gap_tx_test_v2": "0x02006c19",
+ "gap_tx_test_v4": "0x02006c31",
+ "gap_update_connection_parameters": "0x02006c59",
+ "gap_vendor_tx_continuous_wave": "0x02006c9d",
+ "gatt_client_cancel_write": "0x020071c5",
+ "gatt_client_discover_characteristic_descriptors": "0x020071eb",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0200722b",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200727b",
+ "gatt_client_discover_characteristics_for_service": "0x020072cb",
+ "gatt_client_discover_primary_services": "0x02007301",
+ "gatt_client_discover_primary_services_by_uuid128": "0x02007333",
+ "gatt_client_discover_primary_services_by_uuid16": "0x02007377",
+ "gatt_client_execute_write": "0x020073b5",
+ "gatt_client_find_included_services_for_service": "0x020073db",
+ "gatt_client_get_mtu": "0x02007409",
+ "gatt_client_is_ready": "0x020074cd",
+ "gatt_client_listen_for_characteristic_value_updates": "0x020074e3",
+ "gatt_client_prepare_write": "0x02007505",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007541",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200756b",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007571",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0200759f",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020075a5",
+ "gatt_client_read_multiple_characteristic_values": "0x020075d3",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007603",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007631",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x0200767d",
+ "gatt_client_register_handler": "0x020076c9",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x020076d5",
+ "gatt_client_signed_write_without_response": "0x02007b09",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007bcd",
+ "gatt_client_write_client_characteristic_configuration": "0x02007c07",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007c59",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007c69",
+ "gatt_client_write_long_value_of_characteristic": "0x02007ca5",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007cb5",
+ "gatt_client_write_value_of_characteristic": "0x02007cf1",
+ "gatt_client_write_value_of_characteristic_without_response": "0x02007d27",
+ "hci_add_event_handler": "0x0200931d",
+ "hci_power_control": "0x02009b1d",
+ "hci_register_acl_packet_handler": "0x02009cd1",
+ "kv_commit": "0x0200a201",
+ "kv_get": "0x0200a259",
+ "kv_init": "0x0200a271",
+ "kv_put": "0x0200a2d9",
+ "kv_remove": "0x0200a351",
+ "kv_remove_all": "0x0200a38d",
+ "kv_value_modified": "0x0200a3d1",
+ "kv_visit": "0x0200a3d5",
+ "l2cap_add_event_handler": "0x0200a489",
+ "l2cap_can_send_packet_now": "0x0200a499",
+ "l2cap_create_le_credit_based_connection_request": "0x0200a65d",
+ "l2cap_credit_based_send": "0x0200a7a5",
+ "l2cap_credit_based_send_continue": "0x0200a7d1",
+ "l2cap_disconnect": "0x0200a84d",
+ "l2cap_get_le_credit_based_connection_credits": "0x0200aa39",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0200aa55",
+ "l2cap_init": "0x0200ae95",
+ "l2cap_le_send_flow_control_credit": "0x0200af8b",
+ "l2cap_max_le_mtu": "0x0200b299",
+ "l2cap_register_packet_handler": "0x0200b3c1",
+ "l2cap_register_service": "0x0200b3cd",
+ "l2cap_request_can_send_now_event": "0x0200b4dd",
+ "l2cap_request_connection_parameter_update": "0x0200b4f7",
+ "l2cap_send_echo_request": "0x0200b9d9",
+ "l2cap_unregister_service": "0x0200bab9",
+ "le_device_db_add": "0x0200bb11",
+ "le_device_db_find": "0x0200bbe5",
+ "le_device_db_from_key": "0x0200bc11",
+ "le_device_db_iter_cur": "0x0200bc19",
+ "le_device_db_iter_cur_key": "0x0200bc1d",
+ "le_device_db_iter_init": "0x0200bc21",
+ "le_device_db_iter_next": "0x0200bc29",
+ "le_device_db_remove_key": "0x0200bc4f",
+ "ll_adjust_conn_peer_tx_power": "0x0200bc7d",
+ "ll_free": "0x0200bca9",
+ "ll_hint_on_ce_len": "0x0200bcb5",
+ "ll_legacy_adv_set_interval": "0x0200bced",
+ "ll_malloc": "0x0200bcfd",
+ "ll_scan_set_fixed_channel": "0x0200be6d",
+ "ll_set_adv_access_address": "0x0200bf81",
+ "ll_set_adv_coded_scheme": "0x0200bf8d",
+ "ll_set_conn_coded_scheme": "0x0200bfc5",
+ "ll_set_conn_latency": "0x0200bff1",
+ "ll_set_conn_tx_power": "0x0200c021",
+ "ll_set_def_antenna": "0x0200c05d",
+ "ll_set_initiating_coded_scheme": "0x0200c07d",
+ "ll_set_max_conn_number": "0x0200c089",
+ "ll_set_tx_power_range": "0x0200c125",
+ "nibble_for_char": "0x0201e865",
+ "platform_32k_rc_auto_tune": "0x0201e911",
+ "platform_32k_rc_tune": "0x0201e95d",
+ "platform_calibrate_32k": "0x0201e979",
+ "platform_config": "0x0201e97d",
+ "platform_get_current_task": "0x0201ea4d",
+ "platform_get_gen_os_driver": "0x0201ea71",
+ "platform_get_heap_status": "0x0201ea79",
+ "platform_get_task_handle": "0x0201ea91",
+ "platform_get_us_time": "0x0201eab1",
+ "platform_get_version": "0x0201eab5",
+ "platform_hrng": "0x0201eabd",
+ "platform_install_isr_stack": "0x0201eac5",
+ "platform_install_task_stack": "0x0201ead1",
+ "platform_patch_rf_init_data": "0x0201eb09",
+ "platform_printf": "0x0201eb15",
+ "platform_raise_assertion": "0x0201eb29",
+ "platform_rand": "0x0201eb3d",
+ "platform_read_info": "0x0201eb41",
+ "platform_read_persistent_reg": "0x0201eb71",
+ "platform_reset": "0x0201eb7d",
+ "platform_set_evt_callback": "0x0201eb91",
+ "platform_set_irq_callback": "0x0201eba5",
+ "platform_set_rf_clk_source": "0x0201ebdd",
+ "platform_set_rf_init_data": "0x0201ebe9",
+ "platform_set_rf_power_mapping": "0x0201ebf5",
+ "platform_set_timer": "0x0201ec01",
+ "platform_shutdown": "0x0201ec05",
+ "platform_switch_app": "0x0201ec09",
+ "platform_trace_raw": "0x0201ec21",
+ "platform_write_persistent_reg": "0x0201ec39",
+ "printf_hexdump": "0x0201edf1",
+ "pvPortMalloc": "0x0201f8e5",
+ "pvTaskIncrementMutexHeldCount": "0x0201f9cd",
+ "pvTimerGetTimerID": "0x0201f9e5",
+ "pxPortInitialiseStack": "0x0201fa11",
+ "reverse_128": "0x0201fbf9",
+ "reverse_24": "0x0201fbff",
+ "reverse_48": "0x0201fc05",
+ "reverse_56": "0x0201fc0b",
+ "reverse_64": "0x0201fc11",
+ "reverse_bd_addr": "0x0201fc17",
+ "reverse_bytes": "0x0201fc1d",
+ "sm_add_event_handler": "0x0201ff39",
+ "sm_address_resolution_lookup": "0x02020091",
+ "sm_authenticated": "0x020203e9",
+ "sm_authorization_decline": "0x020203f7",
+ "sm_authorization_grant": "0x02020417",
+ "sm_authorization_state": "0x02020437",
+ "sm_bonding_decline": "0x02020451",
+ "sm_config": "0x02020869",
+ "sm_config_conn": "0x02020881",
+ "sm_encryption_key_size": "0x02020a37",
+ "sm_just_works_confirm": "0x02020f71",
+ "sm_le_device_key": "0x020212ad",
+ "sm_passkey_input": "0x02021343",
+ "sm_private_random_address_generation_get": "0x020216f1",
+ "sm_private_random_address_generation_get_mode": "0x020216f9",
+ "sm_private_random_address_generation_set_mode": "0x02021705",
+ "sm_private_random_address_generation_set_update_period": "0x0202172d",
+ "sm_register_oob_data_callback": "0x02021869",
+ "sm_request_pairing": "0x02021875",
+ "sm_send_security_request": "0x0202229b",
+ "sm_set_accepted_stk_generation_methods": "0x020222c1",
+ "sm_set_authentication_requirements": "0x020222cd",
+ "sm_set_encryption_key_size_range": "0x020222d9",
+ "sscanf_bd_addr": "0x02022639",
+ "sysSetPublicDeviceAddr": "0x02022a01",
+ "uuid128_to_str": "0x02023145",
+ "uuid_add_bluetooth_prefix": "0x0202319d",
+ "uuid_has_bluetooth_prefix": "0x020231bd",
+ "uxListRemove": "0x020231d9",
+ "uxQueueMessagesWaiting": "0x02023201",
+ "uxQueueMessagesWaitingFromISR": "0x02023229",
+ "uxQueueSpacesAvailable": "0x02023245",
+ "uxTaskGetStackHighWaterMark": "0x02023271",
+ "uxTaskPriorityGet": "0x02023291",
+ "uxTaskPriorityGetFromISR": "0x020232ad",
+ "vListInitialise": "0x0202334b",
+ "vListInitialiseItem": "0x02023361",
+ "vListInsert": "0x02023367",
+ "vListInsertEnd": "0x02023397",
+ "vPortEndScheduler": "0x020233b1",
+ "vPortEnterCritical": "0x020233dd",
+ "vPortExitCritical": "0x02023421",
+ "vPortFree": "0x02023455",
+ "vPortSuppressTicksAndSleep": "0x020234f9",
+ "vPortValidateInterruptPriority": "0x02023601",
+ "vQueueDelete": "0x0202365d",
+ "vQueueWaitForMessageRestricted": "0x02023689",
+ "vTaskDelay": "0x020236cd",
+ "vTaskInternalSetTimeOutState": "0x02023719",
+ "vTaskMissedYield": "0x02023729",
+ "vTaskPlaceOnEventList": "0x02023735",
+ "vTaskPlaceOnEventListRestricted": "0x0202376d",
+ "vTaskPriorityDisinheritAfterTimeout": "0x020237ad",
+ "vTaskPrioritySet": "0x02023859",
+ "vTaskResume": "0x02023921",
+ "vTaskStartScheduler": "0x020239a5",
+ "vTaskStepTick": "0x02023a35",
+ "vTaskSuspend": "0x02023a65",
+ "vTaskSuspendAll": "0x02023b21",
+ "vTaskSwitchContext": "0x02023b31",
+ "xPortStartScheduler": "0x02023bd9",
+ "xQueueAddToSet": "0x02023cd9",
+ "xQueueCreateCountingSemaphore": "0x02023cfd",
+ "xQueueCreateCountingSemaphoreStatic": "0x02023d39",
+ "xQueueCreateMutex": "0x02023d7d",
+ "xQueueCreateMutexStatic": "0x02023d93",
+ "xQueueCreateSet": "0x02023dad",
+ "xQueueGenericCreate": "0x02023db5",
+ "xQueueGenericCreateStatic": "0x02023e01",
+ "xQueueGenericReset": "0x02023e69",
+ "xQueueGenericSend": "0x02023ef5",
+ "xQueueGenericSendFromISR": "0x02024061",
+ "xQueueGiveFromISR": "0x02024121",
+ "xQueueGiveMutexRecursive": "0x020241c5",
+ "xQueueIsQueueEmptyFromISR": "0x02024205",
+ "xQueueIsQueueFullFromISR": "0x02024229",
+ "xQueuePeek": "0x02024251",
+ "xQueuePeekFromISR": "0x02024379",
+ "xQueueReceive": "0x020243e5",
+ "xQueueReceiveFromISR": "0x02024511",
+ "xQueueRemoveFromSet": "0x020245a5",
+ "xQueueSelectFromSet": "0x020245c7",
+ "xQueueSelectFromSetFromISR": "0x020245d9",
+ "xQueueSemaphoreTake": "0x020245ed",
+ "xQueueTakeMutexRecursive": "0x02024759",
+ "xTaskCheckForTimeOut": "0x0202479d",
+ "xTaskCreate": "0x0202480d",
+ "xTaskCreateStatic": "0x02024869",
+ "xTaskGetCurrentTaskHandle": "0x020248d9",
+ "xTaskGetSchedulerState": "0x020248e5",
+ "xTaskGetTickCount": "0x02024901",
+ "xTaskGetTickCountFromISR": "0x0202490d",
+ "xTaskIncrementTick": "0x0202491d",
+ "xTaskPriorityDisinherit": "0x020249e9",
+ "xTaskPriorityInherit": "0x02024a7d",
+ "xTaskRemoveFromEventList": "0x02024b11",
+ "xTaskResumeAll": "0x02024b91",
+ "xTaskResumeFromISR": "0x02024c59",
+ "xTimerCreate": "0x02024ce5",
+ "xTimerCreateStatic": "0x02024d19",
+ "xTimerCreateTimerTask": "0x02024d51",
+ "xTimerGenericCommand": "0x02024dbd",
+ "xTimerGetExpiryTime": "0x02024e2d",
+ "xTimerGetTimerDaemonTaskHandle": "0x02024e4d"
}
\ No newline at end of file
diff --git a/bundles/typical/ING9168xx/meta.json b/bundles/typical/ING9168xx/meta.json
index 98e81b50c..e366b3047 100644
--- a/bundles/typical/ING9168xx/meta.json
+++ b/bundles/typical/ING9168xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 22804
+ "size": 21796
},
"rom": {
"base": 33562624,
- "size": 152308
+ "size": 152032
},
"version": [
2,
0,
- 20
+ 23
]
}
\ No newline at end of file
diff --git a/bundles/typical/ING9168xx/platform.bin b/bundles/typical/ING9168xx/platform.bin
index 543a00a78..24bab2fad 100644
Binary files a/bundles/typical/ING9168xx/platform.bin and b/bundles/typical/ING9168xx/platform.bin differ
diff --git a/bundles/typical/ING9187xx/apis.json b/bundles/typical/ING9187xx/apis.json
index 0a7b4abb5..c573ed3a9 100644
--- a/bundles/typical/ING9187xx/apis.json
+++ b/bundles/typical/ING9187xx/apis.json
@@ -1,315 +1,312 @@
{
- "att_dispatch_client_can_send_now": "0x000059f5",
- "att_dispatch_client_request_can_send_now_event": "0x000059fb",
- "att_dispatch_register_client": "0x00005a01",
- "att_dispatch_register_server": "0x00005a15",
- "att_dispatch_server_can_send_now": "0x00005a29",
- "att_dispatch_server_request_can_send_now_event": "0x00005a2f",
- "att_emit_general_event": "0x00005ae1",
- "att_server_can_send_packet_now": "0x000061f5",
- "att_server_deferred_read_response": "0x000061f9",
- "att_server_get_mtu": "0x00006211",
- "att_server_indicate": "0x00006289",
- "att_server_init": "0x0000630d",
- "att_server_notify": "0x00006349",
- "att_server_register_packet_handler": "0x00006461",
- "att_server_request_can_send_now_event": "0x0000646d",
- "att_set_db": "0x00006489",
- "att_set_read_callback": "0x0000649d",
- "att_set_write_callback": "0x000064a9",
- "bd_addr_cmp": "0x00006619",
- "bd_addr_copy": "0x0000661f",
- "bd_addr_to_str": "0x00006629",
- "big_endian_read_16": "0x00006661",
- "big_endian_read_32": "0x00006669",
- "big_endian_store_16": "0x0000667d",
- "big_endian_store_32": "0x00006689",
- "btstack_config": "0x000067dd",
- "btstack_memory_pool_create": "0x0000691b",
- "btstack_memory_pool_free": "0x00006945",
- "btstack_memory_pool_get": "0x000069a5",
- "btstack_push_user_msg": "0x00006a0d",
- "btstack_push_user_runnable": "0x00006a19",
- "char_for_nibble": "0x00006ca1",
- "eTaskConfirmSleepModeStatus": "0x00006f6d",
- "gap_add_dev_to_periodic_list": "0x0000758d",
- "gap_add_whitelist": "0x000075a5",
- "gap_aes_encrypt": "0x000075b9",
- "gap_clear_white_lists": "0x000075fd",
- "gap_clr_adv_set": "0x0000760d",
- "gap_clr_periodic_adv_list": "0x0000761d",
- "gap_create_connection_cancel": "0x0000762d",
- "gap_disconnect": "0x0000763d",
- "gap_disconnect_all": "0x00007669",
- "gap_ext_create_connection": "0x000076a9",
- "gap_get_connection_parameter_range": "0x00007799",
- "gap_le_read_channel_map": "0x000077d5",
- "gap_periodic_adv_create_sync": "0x00007849",
- "gap_periodic_adv_create_sync_cancel": "0x0000786d",
- "gap_periodic_adv_term_sync": "0x0000787d",
- "gap_read_periodic_adv_list_size": "0x00007911",
- "gap_read_phy": "0x00007921",
- "gap_read_remote_used_features": "0x00007935",
- "gap_read_remote_version": "0x00007949",
- "gap_read_rssi": "0x0000795d",
- "gap_remove_whitelist": "0x00007971",
- "gap_rmv_adv_set": "0x000079f5",
- "gap_rmv_dev_from_periodic_list": "0x00007a09",
- "gap_rx_test_v2": "0x00007a21",
- "gap_set_adv_set_random_addr": "0x00007a61",
- "gap_set_connection_parameter_range": "0x00007aad",
- "gap_set_data_length": "0x00007ac5",
- "gap_set_def_phy": "0x00007ae1",
- "gap_set_ext_adv_data": "0x00007af9",
- "gap_set_ext_adv_enable": "0x00007b11",
- "gap_set_ext_adv_para": "0x00007b8d",
- "gap_set_ext_scan_enable": "0x00007c6d",
- "gap_set_ext_scan_para": "0x00007c85",
- "gap_set_ext_scan_response_data": "0x00007d2d",
- "gap_set_host_channel_classification": "0x00007d45",
- "gap_set_periodic_adv_data": "0x00007d59",
- "gap_set_periodic_adv_enable": "0x00007dcd",
- "gap_set_periodic_adv_para": "0x00007de1",
- "gap_set_phy": "0x00007df9",
- "gap_set_random_device_address": "0x00007e15",
- "gap_start_ccm": "0x00007e45",
- "gap_test_end": "0x00007e79",
- "gap_tx_test_v2": "0x00007e89",
- "gap_tx_test_v4": "0x00007ea1",
- "gap_update_connection_parameters": "0x00007ec9",
- "gap_vendor_tx_continuous_wave": "0x00007f0d",
- "gatt_client_cancel_write": "0x00008435",
- "gatt_client_discover_characteristic_descriptors": "0x0000845b",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0000849b",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000084eb",
- "gatt_client_discover_characteristics_for_service": "0x0000853b",
- "gatt_client_discover_primary_services": "0x00008571",
- "gatt_client_discover_primary_services_by_uuid128": "0x000085a3",
- "gatt_client_discover_primary_services_by_uuid16": "0x000085e7",
- "gatt_client_execute_write": "0x00008623",
- "gatt_client_find_included_services_for_service": "0x00008649",
- "gatt_client_get_mtu": "0x00008677",
- "gatt_client_is_ready": "0x00008719",
- "gatt_client_listen_for_characteristic_value_updates": "0x0000872f",
- "gatt_client_prepare_write": "0x00008751",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x0000878d",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000087b7",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000087bd",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000087eb",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x000087f1",
- "gatt_client_read_multiple_characteristic_values": "0x0000881f",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x0000884f",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x0000887d",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x000088c9",
- "gatt_client_register_handler": "0x00008915",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x00008921",
- "gatt_client_signed_write_without_response": "0x00008d51",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008e15",
- "gatt_client_write_client_characteristic_configuration": "0x00008e4f",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008ea1",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008eb1",
- "gatt_client_write_long_value_of_characteristic": "0x00008eed",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008efd",
- "gatt_client_write_value_of_characteristic": "0x00008f39",
- "gatt_client_write_value_of_characteristic_without_response": "0x00008f6f",
- "hci_add_event_handler": "0x0000a495",
- "hci_power_control": "0x0000ac89",
- "hci_register_acl_packet_handler": "0x0000ae3d",
- "kv_commit": "0x0000b3b1",
- "kv_get": "0x0000b409",
- "kv_init": "0x0000b421",
- "kv_put": "0x0000b489",
- "kv_remove": "0x0000b501",
- "kv_remove_all": "0x0000b53d",
- "kv_value_modified": "0x0000b581",
- "kv_visit": "0x0000b585",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000b645",
- "l2cap_can_send_packet_now": "0x0000b649",
- "l2cap_create_channel": "0x0000b801",
- "l2cap_disconnect": "0x0000b939",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000bb61",
- "l2cap_init": "0x0000bf59",
- "l2cap_le_send_flow_control_credit": "0x0000bf99",
- "l2cap_max_le_mtu": "0x0000c255",
- "l2cap_max_mtu": "0x0000c259",
- "l2cap_register_fixed_channel": "0x0000c365",
- "l2cap_register_packet_handler": "0x0000c381",
- "l2cap_register_service": "0x0000c38d",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c471",
- "l2cap_request_can_send_now_event": "0x0000c495",
- "l2cap_request_connection_parameter_update": "0x0000c4af",
- "l2cap_send": "0x0000c849",
- "l2cap_send_connectionless": "0x0000c8c1",
- "l2cap_send_connectionless3": "0x0000c951",
- "l2cap_send_echo_request": "0x0000c9e9",
- "l2cap_unregister_service": "0x0000caa5",
- "le_device_db_add": "0x0000cafd",
- "le_device_db_find": "0x0000cbd1",
- "le_device_db_from_key": "0x0000cbfd",
- "le_device_db_iter_cur": "0x0000cc05",
- "le_device_db_iter_cur_key": "0x0000cc09",
- "le_device_db_iter_init": "0x0000cc0d",
- "le_device_db_iter_next": "0x0000cc15",
- "le_device_db_remove_key": "0x0000cc3b",
- "ll_free": "0x0000cc67",
- "ll_hint_on_ce_len": "0x0000cc71",
- "ll_legacy_adv_set_interval": "0x0000cca9",
- "ll_malloc": "0x0000ccb9",
- "ll_query_timing_info": "0x0000cdf1",
- "ll_scan_set_fixed_channel": "0x0000ce95",
- "ll_set_adv_access_address": "0x0000cfa9",
- "ll_set_adv_coded_scheme": "0x0000cfb5",
- "ll_set_conn_coded_scheme": "0x0000cfe5",
- "ll_set_conn_latency": "0x0000d011",
- "ll_set_conn_tx_power": "0x0000d041",
- "ll_set_def_antenna": "0x0000d089",
- "ll_set_initiating_coded_scheme": "0x0000d0a5",
- "ll_set_max_conn_number": "0x0000d0b1",
- "nibble_for_char": "0x0001cf19",
- "platform_32k_rc_auto_tune": "0x0001cfc5",
- "platform_32k_rc_tune": "0x0001d041",
- "platform_calibrate_32k": "0x0001d055",
- "platform_config": "0x0001d059",
- "platform_get_current_task": "0x0001d135",
- "platform_get_gen_os_driver": "0x0001d159",
- "platform_get_heap_status": "0x0001d161",
- "platform_get_task_handle": "0x0001d179",
- "platform_get_us_time": "0x0001d199",
- "platform_get_version": "0x0001d19d",
- "platform_hrng": "0x0001d1a5",
- "platform_install_isr_stack": "0x0001d1ad",
- "platform_install_task_stack": "0x0001d1b9",
- "platform_patch_rf_init_data": "0x0001d1f1",
- "platform_printf": "0x0001d1fd",
- "platform_raise_assertion": "0x0001d211",
- "platform_rand": "0x0001d225",
- "platform_read_info": "0x0001d229",
- "platform_read_persistent_reg": "0x0001d259",
- "platform_reset": "0x0001d269",
- "platform_set_evt_callback": "0x0001d28d",
- "platform_set_irq_callback": "0x0001d2a1",
- "platform_set_rf_clk_source": "0x0001d2d9",
- "platform_set_rf_init_data": "0x0001d2e5",
- "platform_set_rf_power_mapping": "0x0001d2f1",
- "platform_set_timer": "0x0001d2fd",
- "platform_shutdown": "0x0001d301",
- "platform_switch_app": "0x0001d305",
- "platform_trace_raw": "0x0001d331",
- "platform_write_persistent_reg": "0x0001d349",
- "printf_hexdump": "0x0001d4fd",
- "pvPortMalloc": "0x0001e00d",
- "pvTaskIncrementMutexHeldCount": "0x0001e0f5",
- "pvTimerGetTimerID": "0x0001e10d",
- "pxPortInitialiseStack": "0x0001e139",
- "reverse_128": "0x0001e2e1",
- "reverse_24": "0x0001e2e7",
- "reverse_48": "0x0001e2ed",
- "reverse_56": "0x0001e2f3",
- "reverse_64": "0x0001e2f9",
- "reverse_bd_addr": "0x0001e2ff",
- "reverse_bytes": "0x0001e305",
- "sm_add_event_handler": "0x0001e471",
- "sm_address_resolution_lookup": "0x0001e5c9",
- "sm_authenticated": "0x0001e921",
- "sm_authorization_decline": "0x0001e92f",
- "sm_authorization_grant": "0x0001e94f",
- "sm_authorization_state": "0x0001e96f",
- "sm_bonding_decline": "0x0001e989",
- "sm_config": "0x0001eda9",
- "sm_config_conn": "0x0001edc1",
- "sm_encryption_key_size": "0x0001ef77",
- "sm_just_works_confirm": "0x0001f4b1",
- "sm_le_device_key": "0x0001f7ed",
- "sm_passkey_input": "0x0001f883",
- "sm_private_random_address_generation_get": "0x0001fc31",
- "sm_private_random_address_generation_get_mode": "0x0001fc39",
- "sm_private_random_address_generation_set_mode": "0x0001fc45",
- "sm_private_random_address_generation_set_update_period": "0x0001fc6d",
- "sm_register_oob_data_callback": "0x0001fda9",
- "sm_request_pairing": "0x0001fdb5",
- "sm_send_security_request": "0x000207d3",
- "sm_set_accepted_stk_generation_methods": "0x000207f9",
- "sm_set_authentication_requirements": "0x00020805",
- "sm_set_encryption_key_size_range": "0x00020811",
- "sscanf_bd_addr": "0x00020b6d",
- "sysSetPublicDeviceAddr": "0x00020ee5",
- "uuid128_to_str": "0x000214c1",
- "uuid_add_bluetooth_prefix": "0x00021519",
- "uuid_has_bluetooth_prefix": "0x00021539",
- "uxListRemove": "0x00021555",
- "uxQueueMessagesWaiting": "0x0002157d",
- "uxQueueMessagesWaitingFromISR": "0x000215a5",
- "uxQueueSpacesAvailable": "0x000215c1",
- "uxTaskGetStackHighWaterMark": "0x000215ed",
- "uxTaskPriorityGet": "0x0002160d",
- "uxTaskPriorityGetFromISR": "0x00021629",
- "vListInitialise": "0x000216db",
- "vListInitialiseItem": "0x000216f1",
- "vListInsert": "0x000216f7",
- "vListInsertEnd": "0x00021727",
- "vPortEndScheduler": "0x00021741",
- "vPortEnterCritical": "0x0002176d",
- "vPortExitCritical": "0x000217b5",
- "vPortFree": "0x000217e9",
- "vPortSuppressTicksAndSleep": "0x0002187d",
- "vPortValidateInterruptPriority": "0x00021985",
- "vQueueDelete": "0x000219e1",
- "vQueueWaitForMessageRestricted": "0x00021a0d",
- "vTaskDelay": "0x00021a55",
- "vTaskInternalSetTimeOutState": "0x00021aa1",
- "vTaskMissedYield": "0x00021ab1",
- "vTaskPlaceOnEventList": "0x00021abd",
- "vTaskPlaceOnEventListRestricted": "0x00021af5",
- "vTaskPriorityDisinheritAfterTimeout": "0x00021b35",
- "vTaskPrioritySet": "0x00021be1",
- "vTaskResume": "0x00021ca9",
- "vTaskStartScheduler": "0x00021d2d",
- "vTaskStepTick": "0x00021dbd",
- "vTaskSuspend": "0x00021ded",
- "vTaskSuspendAll": "0x00021ea9",
- "vTaskSwitchContext": "0x00021eb9",
- "xPortStartScheduler": "0x00021f61",
- "xQueueAddToSet": "0x00022025",
- "xQueueCreateCountingSemaphore": "0x00022049",
- "xQueueCreateCountingSemaphoreStatic": "0x00022085",
- "xQueueCreateMutex": "0x000220c9",
- "xQueueCreateMutexStatic": "0x000220df",
- "xQueueCreateSet": "0x000220f9",
- "xQueueGenericCreate": "0x00022101",
- "xQueueGenericCreateStatic": "0x0002214d",
- "xQueueGenericReset": "0x000221b5",
- "xQueueGenericSend": "0x00022241",
- "xQueueGenericSendFromISR": "0x000223ad",
- "xQueueGiveFromISR": "0x0002246d",
- "xQueueGiveMutexRecursive": "0x00022511",
- "xQueueIsQueueEmptyFromISR": "0x00022551",
- "xQueueIsQueueFullFromISR": "0x00022575",
- "xQueuePeek": "0x0002259d",
- "xQueuePeekFromISR": "0x000226c5",
- "xQueueReceive": "0x00022731",
- "xQueueReceiveFromISR": "0x0002285d",
- "xQueueRemoveFromSet": "0x000228f1",
- "xQueueSelectFromSet": "0x00022913",
- "xQueueSelectFromSetFromISR": "0x00022925",
- "xQueueSemaphoreTake": "0x00022939",
- "xQueueTakeMutexRecursive": "0x00022aa5",
- "xTaskCheckForTimeOut": "0x00022ae9",
- "xTaskCreate": "0x00022b59",
- "xTaskCreateStatic": "0x00022bb5",
- "xTaskGetCurrentTaskHandle": "0x00022c25",
- "xTaskGetSchedulerState": "0x00022c31",
- "xTaskGetTickCount": "0x00022c4d",
- "xTaskGetTickCountFromISR": "0x00022c59",
- "xTaskIncrementTick": "0x00022c69",
- "xTaskPriorityDisinherit": "0x00022d35",
- "xTaskPriorityInherit": "0x00022dc9",
- "xTaskRemoveFromEventList": "0x00022e5d",
- "xTaskResumeAll": "0x00022edd",
- "xTaskResumeFromISR": "0x00022fa5",
- "xTimerCreate": "0x00023031",
- "xTimerCreateStatic": "0x00023065",
- "xTimerCreateTimerTask": "0x0002309d",
- "xTimerGenericCommand": "0x00023109",
- "xTimerGetExpiryTime": "0x00023179",
- "xTimerGetTimerDaemonTaskHandle": "0x00023199"
+ "att_dispatch_client_can_send_now": "0x00005759",
+ "att_dispatch_client_request_can_send_now_event": "0x0000575f",
+ "att_dispatch_register_client": "0x00005765",
+ "att_dispatch_register_server": "0x00005779",
+ "att_dispatch_server_can_send_now": "0x0000578d",
+ "att_dispatch_server_request_can_send_now_event": "0x00005793",
+ "att_emit_general_event": "0x00005845",
+ "att_server_can_send_packet_now": "0x00005f59",
+ "att_server_deferred_read_response": "0x00005f5d",
+ "att_server_get_mtu": "0x00005f75",
+ "att_server_indicate": "0x00005fed",
+ "att_server_init": "0x00006071",
+ "att_server_notify": "0x000060ad",
+ "att_server_register_packet_handler": "0x000061c5",
+ "att_server_request_can_send_now_event": "0x000061d1",
+ "att_set_db": "0x000061ed",
+ "att_set_read_callback": "0x00006201",
+ "att_set_write_callback": "0x0000620d",
+ "bd_addr_cmp": "0x0000637d",
+ "bd_addr_copy": "0x00006383",
+ "bd_addr_to_str": "0x0000638d",
+ "big_endian_read_16": "0x000063c5",
+ "big_endian_read_32": "0x000063cd",
+ "big_endian_store_16": "0x000063e1",
+ "big_endian_store_32": "0x000063ed",
+ "btstack_config": "0x00006541",
+ "btstack_memory_pool_create": "0x0000667f",
+ "btstack_memory_pool_free": "0x000066a9",
+ "btstack_memory_pool_get": "0x00006709",
+ "btstack_push_user_msg": "0x00006771",
+ "btstack_push_user_runnable": "0x0000677d",
+ "char_for_nibble": "0x00006a05",
+ "eTaskConfirmSleepModeStatus": "0x00006cd1",
+ "gap_add_dev_to_periodic_list": "0x000072f1",
+ "gap_add_whitelist": "0x00007309",
+ "gap_aes_encrypt": "0x0000731d",
+ "gap_clear_white_lists": "0x00007361",
+ "gap_clr_adv_set": "0x00007371",
+ "gap_clr_periodic_adv_list": "0x00007381",
+ "gap_create_connection_cancel": "0x00007391",
+ "gap_disconnect": "0x000073a1",
+ "gap_disconnect_all": "0x000073cd",
+ "gap_ext_create_connection": "0x0000740d",
+ "gap_get_connection_parameter_range": "0x000074fd",
+ "gap_le_read_channel_map": "0x00007539",
+ "gap_periodic_adv_create_sync": "0x000075ad",
+ "gap_periodic_adv_create_sync_cancel": "0x000075d1",
+ "gap_periodic_adv_term_sync": "0x000075e1",
+ "gap_read_periodic_adv_list_size": "0x00007675",
+ "gap_read_phy": "0x00007685",
+ "gap_read_remote_used_features": "0x00007699",
+ "gap_read_remote_version": "0x000076ad",
+ "gap_read_rssi": "0x000076c1",
+ "gap_remove_whitelist": "0x000076d5",
+ "gap_rmv_adv_set": "0x00007759",
+ "gap_rmv_dev_from_periodic_list": "0x0000776d",
+ "gap_rx_test_v2": "0x00007785",
+ "gap_set_adv_set_random_addr": "0x000077c5",
+ "gap_set_connection_parameter_range": "0x00007811",
+ "gap_set_data_length": "0x00007829",
+ "gap_set_def_phy": "0x00007845",
+ "gap_set_ext_adv_data": "0x0000785d",
+ "gap_set_ext_adv_enable": "0x00007875",
+ "gap_set_ext_adv_para": "0x000078f1",
+ "gap_set_ext_scan_enable": "0x000079d1",
+ "gap_set_ext_scan_para": "0x000079e9",
+ "gap_set_ext_scan_response_data": "0x00007a91",
+ "gap_set_host_channel_classification": "0x00007aa9",
+ "gap_set_periodic_adv_data": "0x00007abd",
+ "gap_set_periodic_adv_enable": "0x00007b31",
+ "gap_set_periodic_adv_para": "0x00007b45",
+ "gap_set_phy": "0x00007b5d",
+ "gap_set_random_device_address": "0x00007b79",
+ "gap_start_ccm": "0x00007ba9",
+ "gap_test_end": "0x00007bdd",
+ "gap_tx_test_v2": "0x00007bed",
+ "gap_tx_test_v4": "0x00007c05",
+ "gap_update_connection_parameters": "0x00007c2d",
+ "gap_vendor_tx_continuous_wave": "0x00007c71",
+ "gatt_client_cancel_write": "0x00008199",
+ "gatt_client_discover_characteristic_descriptors": "0x000081bf",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000081ff",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0000824f",
+ "gatt_client_discover_characteristics_for_service": "0x0000829f",
+ "gatt_client_discover_primary_services": "0x000082d5",
+ "gatt_client_discover_primary_services_by_uuid128": "0x00008307",
+ "gatt_client_discover_primary_services_by_uuid16": "0x0000834b",
+ "gatt_client_execute_write": "0x00008387",
+ "gatt_client_find_included_services_for_service": "0x000083ad",
+ "gatt_client_get_mtu": "0x000083db",
+ "gatt_client_is_ready": "0x0000847d",
+ "gatt_client_listen_for_characteristic_value_updates": "0x00008493",
+ "gatt_client_prepare_write": "0x000084b5",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x000084f1",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0000851b",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008521",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0000854f",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008555",
+ "gatt_client_read_multiple_characteristic_values": "0x00008583",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x000085b3",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x000085e1",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x0000862d",
+ "gatt_client_register_handler": "0x00008679",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x00008685",
+ "gatt_client_signed_write_without_response": "0x00008ab5",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008b79",
+ "gatt_client_write_client_characteristic_configuration": "0x00008bb3",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008c05",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008c15",
+ "gatt_client_write_long_value_of_characteristic": "0x00008c51",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008c61",
+ "gatt_client_write_value_of_characteristic": "0x00008c9d",
+ "gatt_client_write_value_of_characteristic_without_response": "0x00008cd3",
+ "hci_add_event_handler": "0x0000a1f9",
+ "hci_power_control": "0x0000a9ed",
+ "hci_register_acl_packet_handler": "0x0000aba1",
+ "kv_commit": "0x0000b115",
+ "kv_get": "0x0000b16d",
+ "kv_init": "0x0000b185",
+ "kv_put": "0x0000b1ed",
+ "kv_remove": "0x0000b265",
+ "kv_remove_all": "0x0000b2a1",
+ "kv_value_modified": "0x0000b2e5",
+ "kv_visit": "0x0000b2e9",
+ "l2cap_add_event_handler": "0x0000b39d",
+ "l2cap_can_send_packet_now": "0x0000b3ad",
+ "l2cap_create_le_credit_based_connection_request": "0x0000b569",
+ "l2cap_credit_based_send": "0x0000b6ad",
+ "l2cap_credit_based_send_continue": "0x0000b6d9",
+ "l2cap_disconnect": "0x0000b755",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000b9a5",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000b9c1",
+ "l2cap_init": "0x0000bd95",
+ "l2cap_le_send_flow_control_credit": "0x0000be8b",
+ "l2cap_max_le_mtu": "0x0000c195",
+ "l2cap_register_packet_handler": "0x0000c2bd",
+ "l2cap_register_service": "0x0000c2c9",
+ "l2cap_request_can_send_now_event": "0x0000c3d9",
+ "l2cap_request_connection_parameter_update": "0x0000c3f3",
+ "l2cap_send_echo_request": "0x0000c8c5",
+ "l2cap_unregister_service": "0x0000c985",
+ "le_device_db_add": "0x0000c9dd",
+ "le_device_db_find": "0x0000cab1",
+ "le_device_db_from_key": "0x0000cadd",
+ "le_device_db_iter_cur": "0x0000cae5",
+ "le_device_db_iter_cur_key": "0x0000cae9",
+ "le_device_db_iter_init": "0x0000caed",
+ "le_device_db_iter_next": "0x0000caf5",
+ "le_device_db_remove_key": "0x0000cb1b",
+ "ll_free": "0x0000cb47",
+ "ll_hint_on_ce_len": "0x0000cb51",
+ "ll_legacy_adv_set_interval": "0x0000cb89",
+ "ll_malloc": "0x0000cb99",
+ "ll_query_timing_info": "0x0000ccd1",
+ "ll_scan_set_fixed_channel": "0x0000cd75",
+ "ll_set_adv_access_address": "0x0000ce89",
+ "ll_set_adv_coded_scheme": "0x0000ce95",
+ "ll_set_conn_coded_scheme": "0x0000cec5",
+ "ll_set_conn_latency": "0x0000cef1",
+ "ll_set_conn_tx_power": "0x0000cf21",
+ "ll_set_def_antenna": "0x0000cf69",
+ "ll_set_initiating_coded_scheme": "0x0000cf85",
+ "ll_set_max_conn_number": "0x0000cf91",
+ "nibble_for_char": "0x0001cdf9",
+ "platform_32k_rc_auto_tune": "0x0001cea5",
+ "platform_32k_rc_tune": "0x0001cf21",
+ "platform_calibrate_32k": "0x0001cf35",
+ "platform_config": "0x0001cf39",
+ "platform_get_current_task": "0x0001d015",
+ "platform_get_gen_os_driver": "0x0001d039",
+ "platform_get_heap_status": "0x0001d041",
+ "platform_get_task_handle": "0x0001d059",
+ "platform_get_us_time": "0x0001d079",
+ "platform_get_version": "0x0001d07d",
+ "platform_hrng": "0x0001d085",
+ "platform_install_isr_stack": "0x0001d08d",
+ "platform_install_task_stack": "0x0001d099",
+ "platform_patch_rf_init_data": "0x0001d0d1",
+ "platform_printf": "0x0001d0dd",
+ "platform_raise_assertion": "0x0001d0f1",
+ "platform_rand": "0x0001d105",
+ "platform_read_info": "0x0001d109",
+ "platform_read_persistent_reg": "0x0001d139",
+ "platform_reset": "0x0001d149",
+ "platform_set_evt_callback": "0x0001d16d",
+ "platform_set_irq_callback": "0x0001d181",
+ "platform_set_rf_clk_source": "0x0001d1b9",
+ "platform_set_rf_init_data": "0x0001d1c5",
+ "platform_set_rf_power_mapping": "0x0001d1d1",
+ "platform_set_timer": "0x0001d1dd",
+ "platform_shutdown": "0x0001d1e1",
+ "platform_switch_app": "0x0001d1e5",
+ "platform_trace_raw": "0x0001d211",
+ "platform_write_persistent_reg": "0x0001d229",
+ "printf_hexdump": "0x0001d3dd",
+ "pvPortMalloc": "0x0001deed",
+ "pvTaskIncrementMutexHeldCount": "0x0001dfd5",
+ "pvTimerGetTimerID": "0x0001dfed",
+ "pxPortInitialiseStack": "0x0001e019",
+ "reverse_128": "0x0001e1c1",
+ "reverse_24": "0x0001e1c7",
+ "reverse_48": "0x0001e1cd",
+ "reverse_56": "0x0001e1d3",
+ "reverse_64": "0x0001e1d9",
+ "reverse_bd_addr": "0x0001e1df",
+ "reverse_bytes": "0x0001e1e5",
+ "sm_add_event_handler": "0x0001e351",
+ "sm_address_resolution_lookup": "0x0001e4a9",
+ "sm_authenticated": "0x0001e801",
+ "sm_authorization_decline": "0x0001e80f",
+ "sm_authorization_grant": "0x0001e82f",
+ "sm_authorization_state": "0x0001e84f",
+ "sm_bonding_decline": "0x0001e869",
+ "sm_config": "0x0001ec89",
+ "sm_config_conn": "0x0001eca1",
+ "sm_encryption_key_size": "0x0001ee57",
+ "sm_just_works_confirm": "0x0001f391",
+ "sm_le_device_key": "0x0001f6cd",
+ "sm_passkey_input": "0x0001f763",
+ "sm_private_random_address_generation_get": "0x0001fb11",
+ "sm_private_random_address_generation_get_mode": "0x0001fb19",
+ "sm_private_random_address_generation_set_mode": "0x0001fb25",
+ "sm_private_random_address_generation_set_update_period": "0x0001fb4d",
+ "sm_register_oob_data_callback": "0x0001fc89",
+ "sm_request_pairing": "0x0001fc95",
+ "sm_send_security_request": "0x000206b3",
+ "sm_set_accepted_stk_generation_methods": "0x000206d9",
+ "sm_set_authentication_requirements": "0x000206e5",
+ "sm_set_encryption_key_size_range": "0x000206f1",
+ "sscanf_bd_addr": "0x00020a4d",
+ "sysSetPublicDeviceAddr": "0x00020dc5",
+ "uuid128_to_str": "0x000213a1",
+ "uuid_add_bluetooth_prefix": "0x000213f9",
+ "uuid_has_bluetooth_prefix": "0x00021419",
+ "uxListRemove": "0x00021435",
+ "uxQueueMessagesWaiting": "0x0002145d",
+ "uxQueueMessagesWaitingFromISR": "0x00021485",
+ "uxQueueSpacesAvailable": "0x000214a1",
+ "uxTaskGetStackHighWaterMark": "0x000214cd",
+ "uxTaskPriorityGet": "0x000214ed",
+ "uxTaskPriorityGetFromISR": "0x00021509",
+ "vListInitialise": "0x000215bb",
+ "vListInitialiseItem": "0x000215d1",
+ "vListInsert": "0x000215d7",
+ "vListInsertEnd": "0x00021607",
+ "vPortEndScheduler": "0x00021621",
+ "vPortEnterCritical": "0x0002164d",
+ "vPortExitCritical": "0x00021691",
+ "vPortFree": "0x000216c5",
+ "vPortSuppressTicksAndSleep": "0x00021759",
+ "vPortValidateInterruptPriority": "0x00021861",
+ "vQueueDelete": "0x000218bd",
+ "vQueueWaitForMessageRestricted": "0x000218e9",
+ "vTaskDelay": "0x00021931",
+ "vTaskInternalSetTimeOutState": "0x0002197d",
+ "vTaskMissedYield": "0x0002198d",
+ "vTaskPlaceOnEventList": "0x00021999",
+ "vTaskPlaceOnEventListRestricted": "0x000219d1",
+ "vTaskPriorityDisinheritAfterTimeout": "0x00021a11",
+ "vTaskPrioritySet": "0x00021abd",
+ "vTaskResume": "0x00021b85",
+ "vTaskStartScheduler": "0x00021c09",
+ "vTaskStepTick": "0x00021c99",
+ "vTaskSuspend": "0x00021cc9",
+ "vTaskSuspendAll": "0x00021d85",
+ "vTaskSwitchContext": "0x00021d95",
+ "xPortStartScheduler": "0x00021e3d",
+ "xQueueAddToSet": "0x00021f01",
+ "xQueueCreateCountingSemaphore": "0x00021f25",
+ "xQueueCreateCountingSemaphoreStatic": "0x00021f61",
+ "xQueueCreateMutex": "0x00021fa5",
+ "xQueueCreateMutexStatic": "0x00021fbb",
+ "xQueueCreateSet": "0x00021fd5",
+ "xQueueGenericCreate": "0x00021fdd",
+ "xQueueGenericCreateStatic": "0x00022029",
+ "xQueueGenericReset": "0x00022091",
+ "xQueueGenericSend": "0x0002211d",
+ "xQueueGenericSendFromISR": "0x00022289",
+ "xQueueGiveFromISR": "0x00022349",
+ "xQueueGiveMutexRecursive": "0x000223ed",
+ "xQueueIsQueueEmptyFromISR": "0x0002242d",
+ "xQueueIsQueueFullFromISR": "0x00022451",
+ "xQueuePeek": "0x00022479",
+ "xQueuePeekFromISR": "0x000225a1",
+ "xQueueReceive": "0x0002260d",
+ "xQueueReceiveFromISR": "0x00022739",
+ "xQueueRemoveFromSet": "0x000227cd",
+ "xQueueSelectFromSet": "0x000227ef",
+ "xQueueSelectFromSetFromISR": "0x00022801",
+ "xQueueSemaphoreTake": "0x00022815",
+ "xQueueTakeMutexRecursive": "0x00022981",
+ "xTaskCheckForTimeOut": "0x000229c5",
+ "xTaskCreate": "0x00022a35",
+ "xTaskCreateStatic": "0x00022a91",
+ "xTaskGetCurrentTaskHandle": "0x00022b01",
+ "xTaskGetSchedulerState": "0x00022b0d",
+ "xTaskGetTickCount": "0x00022b29",
+ "xTaskGetTickCountFromISR": "0x00022b35",
+ "xTaskIncrementTick": "0x00022b45",
+ "xTaskPriorityDisinherit": "0x00022c11",
+ "xTaskPriorityInherit": "0x00022ca5",
+ "xTaskRemoveFromEventList": "0x00022d39",
+ "xTaskResumeAll": "0x00022db9",
+ "xTaskResumeFromISR": "0x00022e81",
+ "xTimerCreate": "0x00022f0d",
+ "xTimerCreateStatic": "0x00022f41",
+ "xTimerCreateTimerTask": "0x00022f79",
+ "xTimerGenericCommand": "0x00022fe5",
+ "xTimerGetExpiryTime": "0x00023055",
+ "xTimerGetTimerDaemonTaskHandle": "0x00023075"
}
\ No newline at end of file
diff --git a/bundles/typical/ING9187xx/meta.json b/bundles/typical/ING9187xx/meta.json
index 678d8385a..27dbba574 100644
--- a/bundles/typical/ING9187xx/meta.json
+++ b/bundles/typical/ING9187xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 30980
+ "size": 29980
},
"rom": {
"base": 16384,
- "size": 133588
+ "size": 133288
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/typical/ING9187xx/platform.bin b/bundles/typical/ING9187xx/platform.bin
index fde3a6b82..4fecd4b24 100644
Binary files a/bundles/typical/ING9187xx/platform.bin and b/bundles/typical/ING9187xx/platform.bin differ
diff --git a/bundles/typical/ING9188xx/apis.json b/bundles/typical/ING9188xx/apis.json
index 80bbe8eb6..c1fc1f32a 100644
--- a/bundles/typical/ING9188xx/apis.json
+++ b/bundles/typical/ING9188xx/apis.json
@@ -1,329 +1,326 @@
{
- "att_dispatch_client_can_send_now": "0x00005b19",
- "att_dispatch_client_request_can_send_now_event": "0x00005b1f",
- "att_dispatch_register_client": "0x00005b25",
- "att_dispatch_register_server": "0x00005b39",
- "att_dispatch_server_can_send_now": "0x00005b4d",
- "att_dispatch_server_request_can_send_now_event": "0x00005b53",
- "att_emit_general_event": "0x00005c05",
- "att_server_can_send_packet_now": "0x00006319",
- "att_server_deferred_read_response": "0x0000631d",
- "att_server_get_mtu": "0x00006335",
- "att_server_indicate": "0x000063ad",
- "att_server_init": "0x00006431",
- "att_server_notify": "0x0000646d",
- "att_server_register_packet_handler": "0x00006585",
- "att_server_request_can_send_now_event": "0x00006591",
- "att_set_db": "0x000065ad",
- "att_set_read_callback": "0x000065c1",
- "att_set_write_callback": "0x000065cd",
- "bd_addr_cmp": "0x0000673d",
- "bd_addr_copy": "0x00006743",
- "bd_addr_to_str": "0x0000674d",
- "big_endian_read_16": "0x00006785",
- "big_endian_read_32": "0x0000678d",
- "big_endian_store_16": "0x000067a1",
- "big_endian_store_32": "0x000067ad",
- "btstack_config": "0x00006901",
- "btstack_memory_pool_create": "0x00006a3f",
- "btstack_memory_pool_free": "0x00006a69",
- "btstack_memory_pool_get": "0x00006ac9",
- "btstack_push_user_msg": "0x00006b31",
- "btstack_push_user_runnable": "0x00006b3d",
- "char_for_nibble": "0x00006dc5",
- "eTaskConfirmSleepModeStatus": "0x00007091",
- "gap_add_dev_to_periodic_list": "0x00007721",
- "gap_add_whitelist": "0x00007739",
- "gap_aes_encrypt": "0x0000774d",
- "gap_clear_white_lists": "0x00007791",
- "gap_clr_adv_set": "0x000077a1",
- "gap_clr_periodic_adv_list": "0x000077b1",
- "gap_create_connection_cancel": "0x000077c1",
- "gap_default_periodic_adv_sync_transfer_param": "0x000077d1",
- "gap_disconnect": "0x000077e9",
- "gap_disconnect_all": "0x00007815",
- "gap_ext_create_connection": "0x00007855",
- "gap_get_connection_parameter_range": "0x00007945",
- "gap_le_read_channel_map": "0x00007981",
- "gap_periodic_adv_create_sync": "0x000079f5",
- "gap_periodic_adv_create_sync_cancel": "0x00007a19",
- "gap_periodic_adv_set_info_transfer": "0x00007a29",
- "gap_periodic_adv_sync_transfer": "0x00007a41",
- "gap_periodic_adv_sync_transfer_param": "0x00007a59",
- "gap_periodic_adv_term_sync": "0x00007a75",
- "gap_read_antenna_info": "0x00007b09",
- "gap_read_periodic_adv_list_size": "0x00007b19",
- "gap_read_phy": "0x00007b29",
- "gap_read_remote_used_features": "0x00007b3d",
- "gap_read_remote_version": "0x00007b51",
- "gap_read_rssi": "0x00007b65",
- "gap_remove_whitelist": "0x00007b79",
- "gap_rmv_adv_set": "0x00007bfd",
- "gap_rmv_dev_from_periodic_list": "0x00007c11",
- "gap_rx_test_v2": "0x00007c29",
- "gap_rx_test_v3": "0x00007c41",
- "gap_set_adv_set_random_addr": "0x00007c91",
- "gap_set_connection_cte_request_enable": "0x00007cdd",
- "gap_set_connection_cte_response_enable": "0x00007cf9",
- "gap_set_connection_cte_rx_param": "0x00007d0d",
- "gap_set_connection_cte_tx_param": "0x00007d69",
- "gap_set_connection_parameter_range": "0x00007dbd",
- "gap_set_connectionless_cte_tx_enable": "0x00007dd5",
- "gap_set_connectionless_cte_tx_param": "0x00007de9",
- "gap_set_connectionless_iq_sampling_enable": "0x00007e49",
- "gap_set_data_length": "0x00007ead",
- "gap_set_def_phy": "0x00007ec9",
- "gap_set_ext_adv_data": "0x00007ee1",
- "gap_set_ext_adv_enable": "0x00007ef9",
- "gap_set_ext_adv_para": "0x00007f75",
- "gap_set_ext_scan_enable": "0x00008055",
- "gap_set_ext_scan_para": "0x0000806d",
- "gap_set_ext_scan_response_data": "0x00008115",
- "gap_set_host_channel_classification": "0x0000812d",
- "gap_set_periodic_adv_data": "0x00008141",
- "gap_set_periodic_adv_enable": "0x000081b5",
- "gap_set_periodic_adv_para": "0x000081c9",
- "gap_set_periodic_adv_rx_enable": "0x000081e1",
- "gap_set_phy": "0x000081f5",
- "gap_set_random_device_address": "0x00008211",
- "gap_start_ccm": "0x00008241",
- "gap_test_end": "0x00008275",
- "gap_tx_test_v2": "0x00008285",
- "gap_tx_test_v4": "0x0000829d",
- "gap_update_connection_parameters": "0x000082c5",
- "gap_vendor_tx_continuous_wave": "0x00008309",
- "gatt_client_cancel_write": "0x00008831",
- "gatt_client_discover_characteristic_descriptors": "0x00008857",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x00008897",
- "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000088e7",
- "gatt_client_discover_characteristics_for_service": "0x00008937",
- "gatt_client_discover_primary_services": "0x0000896d",
- "gatt_client_discover_primary_services_by_uuid128": "0x0000899f",
- "gatt_client_discover_primary_services_by_uuid16": "0x000089e3",
- "gatt_client_execute_write": "0x00008a1f",
- "gatt_client_find_included_services_for_service": "0x00008a45",
- "gatt_client_get_mtu": "0x00008a73",
- "gatt_client_is_ready": "0x00008b15",
- "gatt_client_listen_for_characteristic_value_updates": "0x00008b2b",
- "gatt_client_prepare_write": "0x00008b4d",
- "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008b89",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008bb3",
- "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008bb9",
- "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008be7",
- "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008bed",
- "gatt_client_read_multiple_characteristic_values": "0x00008c1b",
- "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008c4b",
- "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008c79",
- "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008cc5",
- "gatt_client_register_handler": "0x00008d11",
- "gatt_client_reliable_write_long_value_of_characteristic": "0x00008d1d",
- "gatt_client_signed_write_without_response": "0x0000914d",
- "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00009211",
- "gatt_client_write_client_characteristic_configuration": "0x0000924b",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x0000929d",
- "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000092ad",
- "gatt_client_write_long_value_of_characteristic": "0x000092e9",
- "gatt_client_write_long_value_of_characteristic_with_offset": "0x000092f9",
- "gatt_client_write_value_of_characteristic": "0x00009335",
- "gatt_client_write_value_of_characteristic_without_response": "0x0000936b",
- "hci_add_event_handler": "0x0000a8ad",
- "hci_power_control": "0x0000b0a1",
- "hci_register_acl_packet_handler": "0x0000b255",
- "kv_commit": "0x0000b7c9",
- "kv_get": "0x0000b821",
- "kv_init": "0x0000b839",
- "kv_put": "0x0000b8a1",
- "kv_remove": "0x0000b919",
- "kv_remove_all": "0x0000b955",
- "kv_value_modified": "0x0000b999",
- "kv_visit": "0x0000b99d",
- "l2cap_can_send_fixed_channel_packet_now": "0x0000ba5d",
- "l2cap_can_send_packet_now": "0x0000ba61",
- "l2cap_create_channel": "0x0000bc19",
- "l2cap_disconnect": "0x0000bd51",
- "l2cap_get_remote_mtu_for_local_cid": "0x0000bf79",
- "l2cap_init": "0x0000c371",
- "l2cap_le_send_flow_control_credit": "0x0000c3b1",
- "l2cap_max_le_mtu": "0x0000c66d",
- "l2cap_max_mtu": "0x0000c671",
- "l2cap_register_fixed_channel": "0x0000c77d",
- "l2cap_register_packet_handler": "0x0000c799",
- "l2cap_register_service": "0x0000c7a5",
- "l2cap_request_can_send_fix_channel_now_event": "0x0000c889",
- "l2cap_request_can_send_now_event": "0x0000c8ad",
- "l2cap_request_connection_parameter_update": "0x0000c8c7",
- "l2cap_send": "0x0000cc61",
- "l2cap_send_connectionless": "0x0000ccd9",
- "l2cap_send_connectionless3": "0x0000cd69",
- "l2cap_send_echo_request": "0x0000ce01",
- "l2cap_unregister_service": "0x0000cebd",
- "le_device_db_add": "0x0000cf15",
- "le_device_db_find": "0x0000cfe9",
- "le_device_db_from_key": "0x0000d015",
- "le_device_db_iter_cur": "0x0000d01d",
- "le_device_db_iter_cur_key": "0x0000d021",
- "le_device_db_iter_init": "0x0000d025",
- "le_device_db_iter_next": "0x0000d02d",
- "le_device_db_remove_key": "0x0000d053",
- "ll_free": "0x0000d07f",
- "ll_hint_on_ce_len": "0x0000d089",
- "ll_legacy_adv_set_interval": "0x0000d0c1",
- "ll_malloc": "0x0000d0d1",
- "ll_query_timing_info": "0x0000d209",
- "ll_scan_set_fixed_channel": "0x0000d2ad",
- "ll_set_adv_access_address": "0x0000d3c1",
- "ll_set_adv_coded_scheme": "0x0000d3cd",
- "ll_set_conn_coded_scheme": "0x0000d3fd",
- "ll_set_conn_latency": "0x0000d429",
- "ll_set_conn_tx_power": "0x0000d459",
- "ll_set_def_antenna": "0x0000d4a1",
- "ll_set_initiating_coded_scheme": "0x0000d4bd",
- "ll_set_max_conn_number": "0x0000d4c9",
- "nibble_for_char": "0x0001e211",
- "platform_32k_rc_auto_tune": "0x0001e2bd",
- "platform_32k_rc_tune": "0x0001e339",
- "platform_calibrate_32k": "0x0001e34d",
- "platform_config": "0x0001e351",
- "platform_get_current_task": "0x0001e42d",
- "platform_get_gen_os_driver": "0x0001e451",
- "platform_get_heap_status": "0x0001e459",
- "platform_get_task_handle": "0x0001e471",
- "platform_get_us_time": "0x0001e491",
- "platform_get_version": "0x0001e495",
- "platform_hrng": "0x0001e49d",
- "platform_install_isr_stack": "0x0001e4a5",
- "platform_install_task_stack": "0x0001e4b1",
- "platform_patch_rf_init_data": "0x0001e4e9",
- "platform_printf": "0x0001e4f5",
- "platform_raise_assertion": "0x0001e509",
- "platform_rand": "0x0001e51d",
- "platform_read_info": "0x0001e521",
- "platform_read_persistent_reg": "0x0001e551",
- "platform_reset": "0x0001e561",
- "platform_set_evt_callback": "0x0001e585",
- "platform_set_irq_callback": "0x0001e599",
- "platform_set_rf_clk_source": "0x0001e5d1",
- "platform_set_rf_init_data": "0x0001e5dd",
- "platform_set_rf_power_mapping": "0x0001e5e9",
- "platform_set_timer": "0x0001e5f5",
- "platform_shutdown": "0x0001e5f9",
- "platform_switch_app": "0x0001e5fd",
- "platform_trace_raw": "0x0001e629",
- "platform_write_persistent_reg": "0x0001e641",
- "printf_hexdump": "0x0001e7f5",
- "pvPortMalloc": "0x0001f305",
- "pvTaskIncrementMutexHeldCount": "0x0001f3ed",
- "pvTimerGetTimerID": "0x0001f405",
- "pxPortInitialiseStack": "0x0001f431",
- "reverse_128": "0x0001f611",
- "reverse_24": "0x0001f617",
- "reverse_48": "0x0001f61d",
- "reverse_56": "0x0001f623",
- "reverse_64": "0x0001f629",
- "reverse_bd_addr": "0x0001f62f",
- "reverse_bytes": "0x0001f635",
- "sm_add_event_handler": "0x0001f8f5",
- "sm_address_resolution_lookup": "0x0001fa4d",
- "sm_authenticated": "0x0001fda5",
- "sm_authorization_decline": "0x0001fdb3",
- "sm_authorization_grant": "0x0001fdd3",
- "sm_authorization_state": "0x0001fdf3",
- "sm_bonding_decline": "0x0001fe0d",
- "sm_config": "0x0002022d",
- "sm_config_conn": "0x00020245",
- "sm_encryption_key_size": "0x000203fb",
- "sm_just_works_confirm": "0x00020935",
- "sm_le_device_key": "0x00020c71",
- "sm_passkey_input": "0x00020d07",
- "sm_private_random_address_generation_get": "0x000210b5",
- "sm_private_random_address_generation_get_mode": "0x000210bd",
- "sm_private_random_address_generation_set_mode": "0x000210c9",
- "sm_private_random_address_generation_set_update_period": "0x000210f1",
- "sm_register_oob_data_callback": "0x0002122d",
- "sm_request_pairing": "0x00021239",
- "sm_send_security_request": "0x00021c57",
- "sm_set_accepted_stk_generation_methods": "0x00021c7d",
- "sm_set_authentication_requirements": "0x00021c89",
- "sm_set_encryption_key_size_range": "0x00021c95",
- "sscanf_bd_addr": "0x00021ff1",
- "sysSetPublicDeviceAddr": "0x00022369",
- "uuid128_to_str": "0x00022ad9",
- "uuid_add_bluetooth_prefix": "0x00022b31",
- "uuid_has_bluetooth_prefix": "0x00022b51",
- "uxListRemove": "0x00022b6d",
- "uxQueueMessagesWaiting": "0x00022b95",
- "uxQueueMessagesWaitingFromISR": "0x00022bbd",
- "uxQueueSpacesAvailable": "0x00022bd9",
- "uxTaskGetStackHighWaterMark": "0x00022c05",
- "uxTaskPriorityGet": "0x00022c25",
- "uxTaskPriorityGetFromISR": "0x00022c41",
- "vListInitialise": "0x00022cf3",
- "vListInitialiseItem": "0x00022d09",
- "vListInsert": "0x00022d0f",
- "vListInsertEnd": "0x00022d3f",
- "vPortEndScheduler": "0x00022d59",
- "vPortEnterCritical": "0x00022d85",
- "vPortExitCritical": "0x00022dcd",
- "vPortFree": "0x00022e01",
- "vPortSuppressTicksAndSleep": "0x00022e95",
- "vPortValidateInterruptPriority": "0x00022f9d",
- "vQueueDelete": "0x00022ff9",
- "vQueueWaitForMessageRestricted": "0x00023025",
- "vTaskDelay": "0x0002306d",
- "vTaskInternalSetTimeOutState": "0x000230b9",
- "vTaskMissedYield": "0x000230c9",
- "vTaskPlaceOnEventList": "0x000230d5",
- "vTaskPlaceOnEventListRestricted": "0x0002310d",
- "vTaskPriorityDisinheritAfterTimeout": "0x0002314d",
- "vTaskPrioritySet": "0x000231f9",
- "vTaskResume": "0x000232c1",
- "vTaskStartScheduler": "0x00023345",
- "vTaskStepTick": "0x000233d5",
- "vTaskSuspend": "0x00023405",
- "vTaskSuspendAll": "0x000234c1",
- "vTaskSwitchContext": "0x000234d1",
- "xPortStartScheduler": "0x00023579",
- "xQueueAddToSet": "0x0002363d",
- "xQueueCreateCountingSemaphore": "0x00023661",
- "xQueueCreateCountingSemaphoreStatic": "0x0002369d",
- "xQueueCreateMutex": "0x000236e1",
- "xQueueCreateMutexStatic": "0x000236f7",
- "xQueueCreateSet": "0x00023711",
- "xQueueGenericCreate": "0x00023719",
- "xQueueGenericCreateStatic": "0x00023765",
- "xQueueGenericReset": "0x000237cd",
- "xQueueGenericSend": "0x00023859",
- "xQueueGenericSendFromISR": "0x000239c5",
- "xQueueGiveFromISR": "0x00023a85",
- "xQueueGiveMutexRecursive": "0x00023b29",
- "xQueueIsQueueEmptyFromISR": "0x00023b69",
- "xQueueIsQueueFullFromISR": "0x00023b8d",
- "xQueuePeek": "0x00023bb5",
- "xQueuePeekFromISR": "0x00023cdd",
- "xQueueReceive": "0x00023d49",
- "xQueueReceiveFromISR": "0x00023e75",
- "xQueueRemoveFromSet": "0x00023f09",
- "xQueueSelectFromSet": "0x00023f2b",
- "xQueueSelectFromSetFromISR": "0x00023f3d",
- "xQueueSemaphoreTake": "0x00023f51",
- "xQueueTakeMutexRecursive": "0x000240bd",
- "xTaskCheckForTimeOut": "0x00024101",
- "xTaskCreate": "0x00024171",
- "xTaskCreateStatic": "0x000241cd",
- "xTaskGetCurrentTaskHandle": "0x0002423d",
- "xTaskGetSchedulerState": "0x00024249",
- "xTaskGetTickCount": "0x00024265",
- "xTaskGetTickCountFromISR": "0x00024271",
- "xTaskIncrementTick": "0x00024281",
- "xTaskPriorityDisinherit": "0x0002434d",
- "xTaskPriorityInherit": "0x000243e1",
- "xTaskRemoveFromEventList": "0x00024475",
- "xTaskResumeAll": "0x000244f5",
- "xTaskResumeFromISR": "0x000245bd",
- "xTimerCreate": "0x00024649",
- "xTimerCreateStatic": "0x0002467d",
- "xTimerCreateTimerTask": "0x000246b5",
- "xTimerGenericCommand": "0x00024721",
- "xTimerGetExpiryTime": "0x00024791",
- "xTimerGetTimerDaemonTaskHandle": "0x000247b1"
+ "att_dispatch_client_can_send_now": "0x0000587d",
+ "att_dispatch_client_request_can_send_now_event": "0x00005883",
+ "att_dispatch_register_client": "0x00005889",
+ "att_dispatch_register_server": "0x0000589d",
+ "att_dispatch_server_can_send_now": "0x000058b1",
+ "att_dispatch_server_request_can_send_now_event": "0x000058b7",
+ "att_emit_general_event": "0x00005969",
+ "att_server_can_send_packet_now": "0x0000607d",
+ "att_server_deferred_read_response": "0x00006081",
+ "att_server_get_mtu": "0x00006099",
+ "att_server_indicate": "0x00006111",
+ "att_server_init": "0x00006195",
+ "att_server_notify": "0x000061d1",
+ "att_server_register_packet_handler": "0x000062e9",
+ "att_server_request_can_send_now_event": "0x000062f5",
+ "att_set_db": "0x00006311",
+ "att_set_read_callback": "0x00006325",
+ "att_set_write_callback": "0x00006331",
+ "bd_addr_cmp": "0x000064a1",
+ "bd_addr_copy": "0x000064a7",
+ "bd_addr_to_str": "0x000064b1",
+ "big_endian_read_16": "0x000064e9",
+ "big_endian_read_32": "0x000064f1",
+ "big_endian_store_16": "0x00006505",
+ "big_endian_store_32": "0x00006511",
+ "btstack_config": "0x00006665",
+ "btstack_memory_pool_create": "0x000067a3",
+ "btstack_memory_pool_free": "0x000067cd",
+ "btstack_memory_pool_get": "0x0000682d",
+ "btstack_push_user_msg": "0x00006895",
+ "btstack_push_user_runnable": "0x000068a1",
+ "char_for_nibble": "0x00006b29",
+ "eTaskConfirmSleepModeStatus": "0x00006df5",
+ "gap_add_dev_to_periodic_list": "0x00007485",
+ "gap_add_whitelist": "0x0000749d",
+ "gap_aes_encrypt": "0x000074b1",
+ "gap_clear_white_lists": "0x000074f5",
+ "gap_clr_adv_set": "0x00007505",
+ "gap_clr_periodic_adv_list": "0x00007515",
+ "gap_create_connection_cancel": "0x00007525",
+ "gap_default_periodic_adv_sync_transfer_param": "0x00007535",
+ "gap_disconnect": "0x0000754d",
+ "gap_disconnect_all": "0x00007579",
+ "gap_ext_create_connection": "0x000075b9",
+ "gap_get_connection_parameter_range": "0x000076a9",
+ "gap_le_read_channel_map": "0x000076e5",
+ "gap_periodic_adv_create_sync": "0x00007759",
+ "gap_periodic_adv_create_sync_cancel": "0x0000777d",
+ "gap_periodic_adv_set_info_transfer": "0x0000778d",
+ "gap_periodic_adv_sync_transfer": "0x000077a5",
+ "gap_periodic_adv_sync_transfer_param": "0x000077bd",
+ "gap_periodic_adv_term_sync": "0x000077d9",
+ "gap_read_antenna_info": "0x0000786d",
+ "gap_read_periodic_adv_list_size": "0x0000787d",
+ "gap_read_phy": "0x0000788d",
+ "gap_read_remote_used_features": "0x000078a1",
+ "gap_read_remote_version": "0x000078b5",
+ "gap_read_rssi": "0x000078c9",
+ "gap_remove_whitelist": "0x000078dd",
+ "gap_rmv_adv_set": "0x00007961",
+ "gap_rmv_dev_from_periodic_list": "0x00007975",
+ "gap_rx_test_v2": "0x0000798d",
+ "gap_rx_test_v3": "0x000079a5",
+ "gap_set_adv_set_random_addr": "0x000079f5",
+ "gap_set_connection_cte_request_enable": "0x00007a41",
+ "gap_set_connection_cte_response_enable": "0x00007a5d",
+ "gap_set_connection_cte_rx_param": "0x00007a71",
+ "gap_set_connection_cte_tx_param": "0x00007acd",
+ "gap_set_connection_parameter_range": "0x00007b21",
+ "gap_set_connectionless_cte_tx_enable": "0x00007b39",
+ "gap_set_connectionless_cte_tx_param": "0x00007b4d",
+ "gap_set_connectionless_iq_sampling_enable": "0x00007bad",
+ "gap_set_data_length": "0x00007c11",
+ "gap_set_def_phy": "0x00007c2d",
+ "gap_set_ext_adv_data": "0x00007c45",
+ "gap_set_ext_adv_enable": "0x00007c5d",
+ "gap_set_ext_adv_para": "0x00007cd9",
+ "gap_set_ext_scan_enable": "0x00007db9",
+ "gap_set_ext_scan_para": "0x00007dd1",
+ "gap_set_ext_scan_response_data": "0x00007e79",
+ "gap_set_host_channel_classification": "0x00007e91",
+ "gap_set_periodic_adv_data": "0x00007ea5",
+ "gap_set_periodic_adv_enable": "0x00007f19",
+ "gap_set_periodic_adv_para": "0x00007f2d",
+ "gap_set_periodic_adv_rx_enable": "0x00007f45",
+ "gap_set_phy": "0x00007f59",
+ "gap_set_random_device_address": "0x00007f75",
+ "gap_start_ccm": "0x00007fa5",
+ "gap_test_end": "0x00007fd9",
+ "gap_tx_test_v2": "0x00007fe9",
+ "gap_tx_test_v4": "0x00008001",
+ "gap_update_connection_parameters": "0x00008029",
+ "gap_vendor_tx_continuous_wave": "0x0000806d",
+ "gatt_client_cancel_write": "0x00008595",
+ "gatt_client_discover_characteristic_descriptors": "0x000085bb",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000085fb",
+ "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0000864b",
+ "gatt_client_discover_characteristics_for_service": "0x0000869b",
+ "gatt_client_discover_primary_services": "0x000086d1",
+ "gatt_client_discover_primary_services_by_uuid128": "0x00008703",
+ "gatt_client_discover_primary_services_by_uuid16": "0x00008747",
+ "gatt_client_execute_write": "0x00008783",
+ "gatt_client_find_included_services_for_service": "0x000087a9",
+ "gatt_client_get_mtu": "0x000087d7",
+ "gatt_client_is_ready": "0x00008879",
+ "gatt_client_listen_for_characteristic_value_updates": "0x0000888f",
+ "gatt_client_prepare_write": "0x000088b1",
+ "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x000088ed",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008917",
+ "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x0000891d",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0000894b",
+ "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008951",
+ "gatt_client_read_multiple_characteristic_values": "0x0000897f",
+ "gatt_client_read_value_of_characteristic_using_value_handle": "0x000089af",
+ "gatt_client_read_value_of_characteristics_by_uuid128": "0x000089dd",
+ "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008a29",
+ "gatt_client_register_handler": "0x00008a75",
+ "gatt_client_reliable_write_long_value_of_characteristic": "0x00008a81",
+ "gatt_client_signed_write_without_response": "0x00008eb1",
+ "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008f75",
+ "gatt_client_write_client_characteristic_configuration": "0x00008faf",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00009001",
+ "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00009011",
+ "gatt_client_write_long_value_of_characteristic": "0x0000904d",
+ "gatt_client_write_long_value_of_characteristic_with_offset": "0x0000905d",
+ "gatt_client_write_value_of_characteristic": "0x00009099",
+ "gatt_client_write_value_of_characteristic_without_response": "0x000090cf",
+ "hci_add_event_handler": "0x0000a611",
+ "hci_power_control": "0x0000ae05",
+ "hci_register_acl_packet_handler": "0x0000afb9",
+ "kv_commit": "0x0000b52d",
+ "kv_get": "0x0000b585",
+ "kv_init": "0x0000b59d",
+ "kv_put": "0x0000b605",
+ "kv_remove": "0x0000b67d",
+ "kv_remove_all": "0x0000b6b9",
+ "kv_value_modified": "0x0000b6fd",
+ "kv_visit": "0x0000b701",
+ "l2cap_add_event_handler": "0x0000b7b5",
+ "l2cap_can_send_packet_now": "0x0000b7c5",
+ "l2cap_create_le_credit_based_connection_request": "0x0000b981",
+ "l2cap_credit_based_send": "0x0000bac5",
+ "l2cap_credit_based_send_continue": "0x0000baf1",
+ "l2cap_disconnect": "0x0000bb6d",
+ "l2cap_get_le_credit_based_connection_credits": "0x0000bdbd",
+ "l2cap_get_peer_mtu_for_local_cid": "0x0000bdd9",
+ "l2cap_init": "0x0000c1ad",
+ "l2cap_le_send_flow_control_credit": "0x0000c2a3",
+ "l2cap_max_le_mtu": "0x0000c5ad",
+ "l2cap_register_packet_handler": "0x0000c6d5",
+ "l2cap_register_service": "0x0000c6e1",
+ "l2cap_request_can_send_now_event": "0x0000c7f1",
+ "l2cap_request_connection_parameter_update": "0x0000c80b",
+ "l2cap_send_echo_request": "0x0000ccdd",
+ "l2cap_unregister_service": "0x0000cd9d",
+ "le_device_db_add": "0x0000cdf5",
+ "le_device_db_find": "0x0000cec9",
+ "le_device_db_from_key": "0x0000cef5",
+ "le_device_db_iter_cur": "0x0000cefd",
+ "le_device_db_iter_cur_key": "0x0000cf01",
+ "le_device_db_iter_init": "0x0000cf05",
+ "le_device_db_iter_next": "0x0000cf0d",
+ "le_device_db_remove_key": "0x0000cf33",
+ "ll_free": "0x0000cf5f",
+ "ll_hint_on_ce_len": "0x0000cf69",
+ "ll_legacy_adv_set_interval": "0x0000cfa1",
+ "ll_malloc": "0x0000cfb1",
+ "ll_query_timing_info": "0x0000d0e9",
+ "ll_scan_set_fixed_channel": "0x0000d18d",
+ "ll_set_adv_access_address": "0x0000d2a1",
+ "ll_set_adv_coded_scheme": "0x0000d2ad",
+ "ll_set_conn_coded_scheme": "0x0000d2dd",
+ "ll_set_conn_latency": "0x0000d309",
+ "ll_set_conn_tx_power": "0x0000d339",
+ "ll_set_def_antenna": "0x0000d381",
+ "ll_set_initiating_coded_scheme": "0x0000d39d",
+ "ll_set_max_conn_number": "0x0000d3a9",
+ "nibble_for_char": "0x0001e0f1",
+ "platform_32k_rc_auto_tune": "0x0001e19d",
+ "platform_32k_rc_tune": "0x0001e219",
+ "platform_calibrate_32k": "0x0001e22d",
+ "platform_config": "0x0001e231",
+ "platform_get_current_task": "0x0001e30d",
+ "platform_get_gen_os_driver": "0x0001e331",
+ "platform_get_heap_status": "0x0001e339",
+ "platform_get_task_handle": "0x0001e351",
+ "platform_get_us_time": "0x0001e371",
+ "platform_get_version": "0x0001e375",
+ "platform_hrng": "0x0001e37d",
+ "platform_install_isr_stack": "0x0001e385",
+ "platform_install_task_stack": "0x0001e391",
+ "platform_patch_rf_init_data": "0x0001e3c9",
+ "platform_printf": "0x0001e3d5",
+ "platform_raise_assertion": "0x0001e3e9",
+ "platform_rand": "0x0001e3fd",
+ "platform_read_info": "0x0001e401",
+ "platform_read_persistent_reg": "0x0001e431",
+ "platform_reset": "0x0001e441",
+ "platform_set_evt_callback": "0x0001e465",
+ "platform_set_irq_callback": "0x0001e479",
+ "platform_set_rf_clk_source": "0x0001e4b1",
+ "platform_set_rf_init_data": "0x0001e4bd",
+ "platform_set_rf_power_mapping": "0x0001e4c9",
+ "platform_set_timer": "0x0001e4d5",
+ "platform_shutdown": "0x0001e4d9",
+ "platform_switch_app": "0x0001e4dd",
+ "platform_trace_raw": "0x0001e509",
+ "platform_write_persistent_reg": "0x0001e521",
+ "printf_hexdump": "0x0001e6d5",
+ "pvPortMalloc": "0x0001f1e5",
+ "pvTaskIncrementMutexHeldCount": "0x0001f2cd",
+ "pvTimerGetTimerID": "0x0001f2e5",
+ "pxPortInitialiseStack": "0x0001f311",
+ "reverse_128": "0x0001f4f1",
+ "reverse_24": "0x0001f4f7",
+ "reverse_48": "0x0001f4fd",
+ "reverse_56": "0x0001f503",
+ "reverse_64": "0x0001f509",
+ "reverse_bd_addr": "0x0001f50f",
+ "reverse_bytes": "0x0001f515",
+ "sm_add_event_handler": "0x0001f7d5",
+ "sm_address_resolution_lookup": "0x0001f92d",
+ "sm_authenticated": "0x0001fc85",
+ "sm_authorization_decline": "0x0001fc93",
+ "sm_authorization_grant": "0x0001fcb3",
+ "sm_authorization_state": "0x0001fcd3",
+ "sm_bonding_decline": "0x0001fced",
+ "sm_config": "0x0002010d",
+ "sm_config_conn": "0x00020125",
+ "sm_encryption_key_size": "0x000202db",
+ "sm_just_works_confirm": "0x00020815",
+ "sm_le_device_key": "0x00020b51",
+ "sm_passkey_input": "0x00020be7",
+ "sm_private_random_address_generation_get": "0x00020f95",
+ "sm_private_random_address_generation_get_mode": "0x00020f9d",
+ "sm_private_random_address_generation_set_mode": "0x00020fa9",
+ "sm_private_random_address_generation_set_update_period": "0x00020fd1",
+ "sm_register_oob_data_callback": "0x0002110d",
+ "sm_request_pairing": "0x00021119",
+ "sm_send_security_request": "0x00021b37",
+ "sm_set_accepted_stk_generation_methods": "0x00021b5d",
+ "sm_set_authentication_requirements": "0x00021b69",
+ "sm_set_encryption_key_size_range": "0x00021b75",
+ "sscanf_bd_addr": "0x00021ed1",
+ "sysSetPublicDeviceAddr": "0x00022249",
+ "uuid128_to_str": "0x000229b9",
+ "uuid_add_bluetooth_prefix": "0x00022a11",
+ "uuid_has_bluetooth_prefix": "0x00022a31",
+ "uxListRemove": "0x00022a4d",
+ "uxQueueMessagesWaiting": "0x00022a75",
+ "uxQueueMessagesWaitingFromISR": "0x00022a9d",
+ "uxQueueSpacesAvailable": "0x00022ab9",
+ "uxTaskGetStackHighWaterMark": "0x00022ae5",
+ "uxTaskPriorityGet": "0x00022b05",
+ "uxTaskPriorityGetFromISR": "0x00022b21",
+ "vListInitialise": "0x00022bd3",
+ "vListInitialiseItem": "0x00022be9",
+ "vListInsert": "0x00022bef",
+ "vListInsertEnd": "0x00022c1f",
+ "vPortEndScheduler": "0x00022c39",
+ "vPortEnterCritical": "0x00022c65",
+ "vPortExitCritical": "0x00022ca9",
+ "vPortFree": "0x00022cdd",
+ "vPortSuppressTicksAndSleep": "0x00022d71",
+ "vPortValidateInterruptPriority": "0x00022e79",
+ "vQueueDelete": "0x00022ed5",
+ "vQueueWaitForMessageRestricted": "0x00022f01",
+ "vTaskDelay": "0x00022f49",
+ "vTaskInternalSetTimeOutState": "0x00022f95",
+ "vTaskMissedYield": "0x00022fa5",
+ "vTaskPlaceOnEventList": "0x00022fb1",
+ "vTaskPlaceOnEventListRestricted": "0x00022fe9",
+ "vTaskPriorityDisinheritAfterTimeout": "0x00023029",
+ "vTaskPrioritySet": "0x000230d5",
+ "vTaskResume": "0x0002319d",
+ "vTaskStartScheduler": "0x00023221",
+ "vTaskStepTick": "0x000232b1",
+ "vTaskSuspend": "0x000232e1",
+ "vTaskSuspendAll": "0x0002339d",
+ "vTaskSwitchContext": "0x000233ad",
+ "xPortStartScheduler": "0x00023455",
+ "xQueueAddToSet": "0x00023519",
+ "xQueueCreateCountingSemaphore": "0x0002353d",
+ "xQueueCreateCountingSemaphoreStatic": "0x00023579",
+ "xQueueCreateMutex": "0x000235bd",
+ "xQueueCreateMutexStatic": "0x000235d3",
+ "xQueueCreateSet": "0x000235ed",
+ "xQueueGenericCreate": "0x000235f5",
+ "xQueueGenericCreateStatic": "0x00023641",
+ "xQueueGenericReset": "0x000236a9",
+ "xQueueGenericSend": "0x00023735",
+ "xQueueGenericSendFromISR": "0x000238a1",
+ "xQueueGiveFromISR": "0x00023961",
+ "xQueueGiveMutexRecursive": "0x00023a05",
+ "xQueueIsQueueEmptyFromISR": "0x00023a45",
+ "xQueueIsQueueFullFromISR": "0x00023a69",
+ "xQueuePeek": "0x00023a91",
+ "xQueuePeekFromISR": "0x00023bb9",
+ "xQueueReceive": "0x00023c25",
+ "xQueueReceiveFromISR": "0x00023d51",
+ "xQueueRemoveFromSet": "0x00023de5",
+ "xQueueSelectFromSet": "0x00023e07",
+ "xQueueSelectFromSetFromISR": "0x00023e19",
+ "xQueueSemaphoreTake": "0x00023e2d",
+ "xQueueTakeMutexRecursive": "0x00023f99",
+ "xTaskCheckForTimeOut": "0x00023fdd",
+ "xTaskCreate": "0x0002404d",
+ "xTaskCreateStatic": "0x000240a9",
+ "xTaskGetCurrentTaskHandle": "0x00024119",
+ "xTaskGetSchedulerState": "0x00024125",
+ "xTaskGetTickCount": "0x00024141",
+ "xTaskGetTickCountFromISR": "0x0002414d",
+ "xTaskIncrementTick": "0x0002415d",
+ "xTaskPriorityDisinherit": "0x00024229",
+ "xTaskPriorityInherit": "0x000242bd",
+ "xTaskRemoveFromEventList": "0x00024351",
+ "xTaskResumeAll": "0x000243d1",
+ "xTaskResumeFromISR": "0x00024499",
+ "xTimerCreate": "0x00024525",
+ "xTimerCreateStatic": "0x00024559",
+ "xTimerCreateTimerTask": "0x00024591",
+ "xTimerGenericCommand": "0x000245fd",
+ "xTimerGetExpiryTime": "0x0002466d",
+ "xTimerGetTimerDaemonTaskHandle": "0x0002468d"
}
\ No newline at end of file
diff --git a/bundles/typical/ING9188xx/meta.json b/bundles/typical/ING9188xx/meta.json
index 3b58bbba3..bb910cd23 100644
--- a/bundles/typical/ING9188xx/meta.json
+++ b/bundles/typical/ING9188xx/meta.json
@@ -4,15 +4,15 @@
},
"ram": {
"base": 536870912,
- "size": 30980
+ "size": 29980
},
"rom": {
"base": 16384,
- "size": 139696
+ "size": 139400
},
"version": [
1,
8,
- 3
+ 5
]
}
\ No newline at end of file
diff --git a/bundles/typical/ING9188xx/platform.bin b/bundles/typical/ING9188xx/platform.bin
index 76782558c..7eb350e6f 100644
Binary files a/bundles/typical/ING9188xx/platform.bin and b/bundles/typical/ING9188xx/platform.bin differ
diff --git a/bundles/typical/inc/att_db.h b/bundles/typical/inc/att_db.h
index 70ec3efa3..3e656c769 100644
--- a/bundles/typical/inc/att_db.h
+++ b/bundles/typical/inc/att_db.h
@@ -3,7 +3,7 @@
* @brief API for ATT server
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -28,10 +28,10 @@ extern "C" {
* @ingroup bluetooth_host
* @{
*/
-// custom BTstack error codes
+// custom btstack error codes
#define ATT_ERROR_HCI_DISCONNECT_RECEIVED 0x1f
-// custom BTstack ATT error coders
+// custom btstack ATT error coders
#define ATT_ERROR_DATA_MISMATCH 0x7e
#define ATT_ERROR_TIMEOUT 0x7F
diff --git a/bundles/typical/inc/att_dispatch.h b/bundles/typical/inc/att_dispatch.h
index 60f62817b..9dd2608d1 100644
--- a/bundles/typical/inc/att_dispatch.h
+++ b/bundles/typical/inc/att_dispatch.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/typical/inc/btstack_defines.h b/bundles/typical/inc/btstack_defines.h
index c2ab8d11a..a8d08006c 100644
--- a/bundles/typical/inc/btstack_defines.h
+++ b/bundles/typical/inc/btstack_defines.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -53,10 +53,15 @@
#define L2CAP_SERVICE_ALREADY_REGISTERED 0x69
#define L2CAP_DATA_LEN_EXCEEDS_REMOTE_MTU 0x6A
+#define L2CAP_SERVICE_NOT_REGISTERED 0x6B
+#define L2CAP_CONNECTION_INSUFFICIENT_SECURITY 0x6C
-#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS 0x90
+#define ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS 0x90
#define ATT_HANDLE_VALUE_INDICATION_TIMEOUT 0x91
+// compatibility for typo
+#define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS
+
#define GATT_CLIENT_NOT_CONNECTED 0x93
#define GATT_CLIENT_BUSY 0x94
#define GATT_CLIENT_IN_WRONG_STATE 0x95
@@ -88,22 +93,14 @@
// L2CAP EVENTS
/**
- * @format 1BH222222
- * @param status
- * @param address
- * @param handle
- * @param psm
- * @param local_cid
- * @param remote_cid
- * @param local_mtu
- * @param remote_mtu
- * @param flush_timeout
+ * @brief an L2CAP channel is opened
+ * @ref `l2cap_event_channel_opened_t`
*/
#define L2CAP_EVENT_CHANNEL_OPENED 0x70
/*
- * @format 2
- * @param local_cid
+ * @brief an L2CAP channel is closed
+ * @ref `l2cap_event_channel_closed_t`
*/
#define L2CAP_EVENT_CHANNEL_CLOSED 0x71
@@ -153,6 +150,24 @@
*/
#define L2CAP_EVENT_COMMAND_REJECT_RESPONSE 0x79
+/**
+ * @brief LE credit channel : an SDU (complete package) event
+ *
+ * Use `decode_l2cap_event(l2cap_event_complete_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_complete_sdu_t`
+*/
+#define L2CAP_EVENT_COMPLETED_SDU_PACKET 0x7A
+
+/**
+ * @brief LE credit channel : a fragment (K-frame) of an SDU event
+ *
+ * Use `decode_l2cap_event(l2cap_event_fragment_sdu_t, package)` to decode this event.
+ *
+ * @ref `l2cap_event_fragment_sdu_t`
+*/
+#define L2CAP_EVENT_FRAGMENT_SDU_PACKET 0x7B
+
/**
* @format H1
* @param handle
diff --git a/bundles/typical/inc/btstack_event.h b/bundles/typical/inc/btstack_event.h
index 4c488f787..294fb813b 100644
--- a/bundles/typical/inc/btstack_event.h
+++ b/bundles/typical/inc/btstack_event.h
@@ -4,7 +4,7 @@
*
*
* INGCHIPS confidential and proprietary.
-* COPYRIGHT (c) 2018 by INGCHIPS
+* COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
@@ -783,6 +783,43 @@ static __INLINE uint8_t gap_event_dedicated_bonding_completed_get_status(const u
return *decode_event_offset(event, uint8_t, 2);
}
+typedef struct l2cap_event_complete_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ const uint8_t *payload; // payload of this SDU
+} l2cap_event_complete_sdu_t;
+
+typedef struct l2cap_event_channel_opened
+{
+ uint8_t status;
+ bd_addr_t peer_addr;
+ hci_con_handle_t conn_handle;
+ uint16_t psm;
+ uint16_t local_cid;
+ uint16_t peer_cid;
+ uint16_t local_mtu;
+ uint16_t peer_mtu;
+ uint16_t local_mps;
+ uint16_t peer_mps;
+ uint16_t flush_timeout;
+ uint16_t local_credits;
+ uint16_t peer_credits;
+} l2cap_event_channel_opened_t;
+
+typedef struct l2cap_event_channel_closed
+{
+ uint16_t local_cid;
+ uint8_t reason;
+} l2cap_event_channel_closed_t;
+
+typedef struct l2cap_event_fragment_sdu
+{
+ uint16_t total_length; // total length of this SDU
+ uint16_t offset; // offset of this fragment within a SDU
+ uint16_t length; // length of this fragment within a SDU
+ const uint8_t *payload; // payload of this fragment
+} l2cap_event_fragment_sdu_t;
+
typedef struct event_command_complete_return_param_read_rssi
{
uint8_t status;
@@ -1226,7 +1263,9 @@ typedef enum btstack_l2cap_msg_def
#define decode_hci_event_disconn_complete(packet) decode_event_offset(packet, event_disconn_complete_t, 2)
#define decode_hci_event_vendor_ccm_complete(packet) decode_event_offset(packet, event_vendor_ccm_complete_t, 5)
-#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+#define decode_hci_event(packet, T) decode_event_offset(packet, T, 2)
+
+#define decode_l2cap_event(packet, T) decode_event_offset(packet, T, 2)
/* API_END */
diff --git a/bundles/typical/inc/btstack_util.h b/bundles/typical/inc/btstack_util.h
index 3f7232fc4..5e6d0d7ef 100644
--- a/bundles/typical/inc/btstack_util.h
+++ b/bundles/typical/inc/btstack_util.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/bundles/typical/inc/gap.h b/bundles/typical/inc/gap.h
index bf5d8a140..413b9423a 100644
--- a/bundles/typical/inc/gap.h
+++ b/bundles/typical/inc/gap.h
@@ -1380,7 +1380,7 @@ void hci_add_event_handler(btstack_packet_callback_registration_t * callback_han
void hci_register_acl_packet_handler(btstack_packet_handler_t handler);
/**
- * @brief Requests the change of BTstack power mode.
+ * @brief Requests the change of btstack power mode.
*
* @param mode 0:HCI_POWER_OFF ,1:HCI_POWER_ON , 2:HCI_POWER_SLEEP
*
diff --git a/bundles/typical/inc/gatt_client.h b/bundles/typical/inc/gatt_client.h
index 910cdf251..9a036f6f6 100644
--- a/bundles/typical/inc/gatt_client.h
+++ b/bundles/typical/inc/gatt_client.h
@@ -3,7 +3,7 @@
* Copyright Message
*
* INGCHIPS confidential and proprietary.
- * COPYRIGHT (c) 2018 by INGCHIPS
+ * COPYRIGHT (c) 2018-2023 by INGCHIPS
*
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
diff --git a/bundles/typical/inc/l2cap.h b/bundles/typical/inc/l2cap.h
index f464836dc..52b0efb79 100644
--- a/bundles/typical/inc/l2cap.h
+++ b/bundles/typical/inc/l2cap.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
@@ -22,27 +22,6 @@
extern "C" {
#endif
-void l2cap_register_fixed_channel(btstack_packet_handler_t packet_handler, uint16_t channel_id);
-int l2cap_can_send_fixed_channel_packet_now(hci_con_handle_t con_handle, uint16_t channel_id);
-void l2cap_request_can_send_fix_channel_now_event(hci_con_handle_t con_handle, uint16_t channel_id);
-int l2cap_send_connectionless(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len);
-int l2cap_send_connectionless3(hci_con_handle_t con_handle, uint16_t cid,
- const uint8_t *data1, uint16_t data1_len,
- const uint8_t *data2, uint16_t data2_len,
- const uint8_t *data3, uint16_t data3_len);
-
-int l2cap_le_send_flow_control_credit(hci_con_handle_t con_handle,uint8_t id ,uint16_t cid,uint16_t credits);
-
-// PTS Testing
-int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t len);
-
-// Used by RFCOMM - similar to l2cap_can-send_packet_now but does not check if outgoing buffer is reserved
-// int l2cap_can_send_prepared_packet_now(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
-
-
/* API_START */
/**
@@ -51,69 +30,152 @@ int l2cap_send_echo_request(hci_con_handle_t con_handle, uint8_t *data, uint16_t
void l2cap_init(void);
/**
- * @brief Registers packet handler for LE Connection Parameter Update events
+ * @brief add event handler with packet type `L2CAP_EVENT_PACKET`
+ *
+ * Note: Event code includes:
+ * * L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE
+ *
+ * @param[in] callback_handler the handler to be chained together
*/
-void l2cap_register_packet_handler(btstack_packet_handler_t handler);
+void l2cap_add_event_handler(btstack_packet_callback_registration_t *callback_handler);
/**
- * @brief Get max MTU for Classic connections based on btstack configuration
+ * @brief Registers packet handler for LE Connection Parameter Update related events
+ *
+ * Note: Packet type `HCI_EVENT_PACKET`. Event code includes:
+ * * L2CAP_EVENT_COMMAND_REJECT_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE
+ * * L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST
+ *
+ * @param[in] handler the callback function
*/
-uint16_t l2cap_max_mtu(void);
+void l2cap_register_packet_handler(btstack_packet_handler_t handler);
/**
* @brief Get max MTU for LE connections based on btstack configuration
+ *
+ * @return max LE MTU
*/
uint16_t l2cap_max_le_mtu(void);
-/**
- * @brief Creates L2CAP channel to the PSM of a remote device with baseband address. A new baseband connection will be initiated if necessary.
- * @param packet_handler
- * @param address
- * @param psm
- * @param mtu
- * @param local_cid
- * @param status
- */
-uint8_t l2cap_create_channel(btstack_packet_handler_t packet_handler, bd_addr_t address, uint16_t psm, uint16_t mtu, uint16_t * out_local_cid);
+#define l2cap_max_mtu l2cap_max_le_mtu
/**
* @brief Disconnects L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] reason reason (ignored)
*/
void l2cap_disconnect(uint16_t local_cid, uint8_t reason);
/**
* @brief Queries the maximal transfer unit (MTU) for L2CAP channel with given identifier.
+ *
+ * @param[in] local_cid local channel identifier
+ * @return peer MTU
*/
-uint16_t l2cap_get_remote_mtu_for_local_cid(uint16_t local_cid);
+uint16_t l2cap_get_peer_mtu_for_local_cid(uint16_t local_cid);
/**
- * @brief Sends L2CAP data packet to the channel with given identifier.
+ * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ *
+ * Note: Before creating a connection with a SPSM, the service must be registered.
+ *
+ * @param[in] packet_handler packet handler
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] mtu MTU (23..max, max = l2cap_max_le_mtu())
+ * when mtu = 0, max LE MTU is used
+ * @param[in] security_level security level
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_ALREADY_REGISTERED
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-int l2cap_send(uint16_t local_cid, uint8_t *data, uint16_t len);
+uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu,
+ gap_security_level_t security_level);
/**
- * @brief Registers L2CAP service with given PSM and MTU, and assigns a packet handler.
+ * @brief Unregisters L2CAP service with given PSM.
+ *
+ * @param[in] psm SPSM (LE_PSM)
*/
-uint8_t l2cap_register_service(btstack_packet_handler_t packet_handler, uint16_t psm, uint16_t mtu, gap_security_level_t security_level);
+void l2cap_unregister_service(uint16_t psm);
/**
- * @brief Unregisters L2CAP service with given PSM. On embedded systems, use NULL for connection parameter.
+ * @brief Create a credit based connection for SPSM
+ *
+ *
+ * @param[in] credits initial credits assigned to peer
+ * @param[in] psm SPSM (LE_PSM)
+ * @param[in] handle connection handle
+ * @param[out] local_cid identifier of the newly create channel
+ * @return 0 if successful else error occurs:
+ * * L2CAP_SERVICE_NOT_REGISTERED
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ * * L2CAP_CONNECTION_INSUFFICIENT_SECURITY
+ * * BTSTACK_MEMORY_ALLOC_FAILED
*/
-void l2cap_unregister_service(uint16_t psm);
+uint8_t l2cap_create_le_credit_based_connection_request(uint16_t credits, uint16_t psm, uint16_t handle, uint16_t *local_cid);
/**
- * @brief Accepts incoming L2CAP connection.
+ * @brief Get credits information of a credit based connection
+ *
+ * `local_credits`: how many K-frames the peer is capable to receive,
+ * i.e. how many K-frames we (the _local_) can transmit;
+ *
+ * `peer_credits`: `local_credits` in the peer.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] peer_credits peer credits at present
+ * @param[in] local_credits local credits at present
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_accept_connection(uint16_t local_cid);
-// WARNING: ^^^ this API is not available in this release
+uint8_t l2cap_get_le_credit_based_connection_credits(uint16_t local_cid,
+ uint32_t *peer_credits, uint32_t *local_credits);
+/**
+ * @brief send an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data data of the SDU
+ * @param[in] len total length of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * (see `l2cap_credit_based_send_continue`)
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+int l2cap_credit_based_send(uint16_t local_cid, const uint8_t *data, uint16_t len);
/**
- * @brief Deny incoming L2CAP connection.
+ * @brief continue sending an SDU to peer of a credit based connection
+ *
+ * Note: SDU will be truncated according to peer MTU.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] data remaining data of the SDU that has not been sent
+ * @param[in] len length of remaining data of the SDU
+ * @return when >= 0: number of bytes that has been sent (to Tx queue)
+ * * if `return` == len: whole SDU has been sent;
+ * * if `return` < len: only a portion has been sent.
+ * when < 0, error occurs:
+ * * -BTSTACK_LE_CHANNEL_NOT_EXIST
*/
-// void l2cap_decline_connection(uint16_t local_cid, uint8_t reason);
-// WARNING: ^^^ this API is not available in this release
+int l2cap_credit_based_send_continue(uint16_t local_cid, const uint8_t *data, uint16_t len);
+/**
+ * @brief add more credits to the peer of the specified channel, or rather notify
+ * the peer that _local_ are capable of receiving more K-frames.
+ *
+ * @param[in] local_cid local channel identifier
+ * @param[in] credits credits to be added to the peer
+ * @return 0 if successful else error occurs:
+ * * BTSTACK_LE_CHANNEL_NOT_EXIST
+ */
+uint8_t l2cap_le_send_flow_control_credit(uint16_t local_cid, uint16_t credits);
/**
* @brief Check if outgoing buffer is available and that there's space on the Bluetooth module
@@ -124,42 +186,45 @@ int l2cap_can_send_packet_now(uint16_t local_cid);
* @brief Request emission of L2CAP_EVENT_CAN_SEND_NOW as soon as possible
* @note L2CAP_EVENT_CAN_SEND_NOW might be emitted during call to this function
* so packet handler should be ready to handle it
- * @param local_cid
+ * @param[in] local_cid local channel identifier
*/
void l2cap_request_can_send_now_event(uint16_t local_cid);
/**
* @brief Request an update of the connection parameter for a given LE connection
- * @param handle
- * @param conn_interval_min (unit: 1.25ms)
- * @param conn_interval_max (unit: 1.25ms)
- * @param conn_latency
- * @param supervision_timeout (unit: 10ms)
- * @returns 0 if ok
- */
-int l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
+ *
+ * Note: only Peripheral role can call this API.
+ *
+ * @param[in] handle connection handle
+ * @param[in] conn_interval_min (unit: 1.25ms)
+ * @param[in] conn_interval_max (unit: 1.25ms)
+ * @param[in] conn_latency slave latency
+ * @param[in] supervision_timeout (unit: 10ms)
+ * @returns 0 if successful else error occurs:
+ * * ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER
+ */
+uint8_t l2cap_request_connection_parameter_update(hci_con_handle_t con_handle, uint16_t conn_interval_min,
uint16_t conn_interval_max, uint16_t conn_latency, uint16_t supervision_timeout);
-#ifdef CONNECTION_PARAMETER_DYNAMICALLY_ADJUST
-uint8_t l2cap_update_MTU_on_LL_link(l2cap_channel_t * channel);
-#endif
+/** @brief for PTS Testing
+ */
+uint8_t l2cap_send_echo_request(hci_con_handle_t con_handle, const uint8_t *data, uint16_t len);
/* API_END */
#ifdef __cplusplus
}
#endif
-/*to define the error result of the connection response*/
-#ifdef L2CAP_CREDIT_BASED_FLOW_CONTROL_MODE
-#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
-#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
-#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
-#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
-#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
-#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
-#endif
+
+/* Error result of the connection response */
+#define L2CAP_CONNECTION_REFUSED_LEPSM_NOT_SUPPORTED 0x0002
+#define L2CAP_CONNECTION_REFUSED_RESERVED 0x0003
+#define L2CAP_CONNECTION_REFUSED_NO_RESOURCE_AVAILABLE 0x0004
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHEN 0x0005
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_AUTHOR 0x0006
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT_KEY_SIZE 0x0007
+#define L2CAP_CONNECTION_REFUSED_INSUFFICIENT_ENCRYPT 0x0008
+#define L2CAP_CONNECTION_REFUSED_INVALID_SCID 0x0009
+#define L2CAP_CONNECTION_REFUSED_SCID_ALREADY_ALLOCATED 0x000A
#endif // __L2CAP_H
diff --git a/bundles/typical/inc/le_device_db.h b/bundles/typical/inc/le_device_db.h
index 03f8e550f..b81d04f5a 100644
--- a/bundles/typical/inc/le_device_db.h
+++ b/bundles/typical/inc/le_device_db.h
@@ -41,15 +41,9 @@ typedef struct le_device_memory_db {
#pragma pack (pop)
-typedef struct white_list
-{
- uint8_t addr_type;
- bd_addr_t addr;
-}white_list_t;
-
/**
- LE Device DB for pure LE Peripherals is only required for signed writes
+ LE Device DB is only required for signed writes
Per bonded device, it can store
- it stores the Identity Resolving Key (IRK) and its address to resolve private addresses
@@ -60,7 +54,6 @@ typedef struct white_list
*/
-
// LE Device db interface
/* API_START */
diff --git a/bundles/typical/inc/ll_api.h b/bundles/typical/inc/ll_api.h
index e8b17ef4a..877a84328 100644
--- a/bundles/typical/inc/ll_api.h
+++ b/bundles/typical/inc/ll_api.h
@@ -253,14 +253,15 @@ typedef void (* f_ll_raw_packet_done)(struct ll_raw_packet *packet, void *user_d
*
* @param[in] packet the packet object
* @param[in] header header sending before packet length
- * @param[in] freq_mhz freqency in MHz
+ * @param[in] freq_mhz frequency in MHz
* When 0: use the channel specified in `ll_raw_packet_set_param`)
* @return 0 if successful else error code
*
*
* Note: Only a subset of uint8_t are supported in `header`;
* When bare mode is used, CRC & whitening are all handled by apps;
- * When bare mode is used, `crc_init` is ignored.
+ * When bare mode is used, `crc_init` is ignored;
+ * When `freq_mhz` is not zero, BLE activities near this raw packets might be affected.
****************************************************************************************
*/
// int ll_raw_packet_set_bare_mode(struct ll_raw_packet *packet,
diff --git a/bundles/typical/inc/sm.h b/bundles/typical/inc/sm.h
index 0213e5e3f..874e028a5 100644
--- a/bundles/typical/inc/sm.h
+++ b/bundles/typical/inc/sm.h
@@ -3,7 +3,7 @@
// ----------------------------------------------------------------------------
//
// INGCHIPS confidential and proprietary.
-// COPYRIGHT (c) 2018 by INGCHIPS
+// COPYRIGHT (c) 2018-2023 by INGCHIPS
//
// All rights are reserved. Reproduction in whole or in part is
// prohibited without the written consent of the copyright owner.
diff --git a/examples-gcc/central_fota/central_fota.ingw b/examples-gcc/central_fota/central_fota.ingw
index ee8bbef0c..ca6091a5d 100644
--- a/examples-gcc/central_fota/central_fota.ingw
+++ b/examples-gcc/central_fota/central_fota.ingw
@@ -2,18 +2,18 @@
"watchdog": true,
"bundle_meta": {
"rom": {
- "size": 133588,
+ "size": 133292,
"base": 16384
},
"ram": {
- "size": 30980,
+ "size": 29980,
"base": 536870912
},
"app": {
"base": 155648
},
"version": [
- 1,8,3]
+ 1,8,5]
},
"tc_dir": "C:\\Programs\\gcc-arm-none-eabi-10.3-2021.10\\bin",
"eflash_addr": "0x42000",
@@ -69,8 +69,8 @@
"proxy": true
},
"cmsis": "C:\/projects\/ingchips\/ingWizard\/CMSIS",
- "app_ram_size": 34552,
- "app_ram_addr": 536901896,
+ "app_ram_size": 35552,
+ "app_ram_addr": 536900896,
"printf_enable": true,
"ota_ver_patch": "0",
"profile_data": "0, 0\r\n",
diff --git a/examples-gcc/central_fota/central_fota.ld b/examples-gcc/central_fota/central_fota.ld
index 17c0f9e73..423554988 100644
--- a/examples-gcc/central_fota/central_fota.ld
+++ b/examples-gcc/central_fota/central_fota.ld
@@ -8,7 +8,7 @@
MEMORY
{
FLASH (rx) : ORIGIN = 155648, LENGTH = 385024
- RAM (rwx) : ORIGIN = 536901896, LENGTH = 34552
+ RAM (rwx) : ORIGIN = 536900896, LENGTH = 35552
}
/* Linker script to place sections and symbol values. Should be used together
diff --git a/examples-gcc/get_started/get_started.ingw b/examples-gcc/get_started/get_started.ingw
index 14d0ea84c..50eb2d20b 100644
--- a/examples-gcc/get_started/get_started.ingw
+++ b/examples-gcc/get_started/get_started.ingw
@@ -2,18 +2,18 @@
"watchdog": true,
"bundle_meta": {
"rom": {
- "size": 133588,
+ "size": 133292,
"base": 16384
},
"ram": {
- "size": 30980,
+ "size": 29980,
"base": 536870912
},
"app": {
"base": 155648
},
"version": [
- 1,8,3]
+ 1,8,5]
},
"tc_dir": "C:\\Programs\\gcc-arm-none-eabi-10.3-2021.10\\bin",
"eflash_addr": "0x42000",
@@ -70,8 +70,8 @@
"proxy": true
},
"cmsis": "C:\/projects\/ingchips\/ingWizard\/CMSIS",
- "app_ram_size": 34552,
- "app_ram_addr": 536901896,
+ "app_ram_size": 35552,
+ "app_ram_addr": 536900896,
"printf_enable": true,
"ota_ver_patch": "0",
"profile_data": "0, 0\r\n",
diff --git a/examples-gcc/get_started/get_started.ld b/examples-gcc/get_started/get_started.ld
index 17c0f9e73..423554988 100644
--- a/examples-gcc/get_started/get_started.ld
+++ b/examples-gcc/get_started/get_started.ld
@@ -8,7 +8,7 @@
MEMORY
{
FLASH (rx) : ORIGIN = 155648, LENGTH = 385024
- RAM (rwx) : ORIGIN = 536901896, LENGTH = 34552
+ RAM (rwx) : ORIGIN = 536900896, LENGTH = 35552
}
/* Linker script to place sections and symbol values. Should be used together
diff --git a/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw b/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw
index 39e9331ab..65f416161 100644
--- a/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw
+++ b/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw
@@ -2,18 +2,18 @@
"watchdog": false,
"bundle_meta": {
"rom": {
- "size": 122840,
+ "size": 122548,
"base": 16384
},
"ram": {
- "size": 5508,
+ "size": 4508,
"base": 536870912
},
"app": {
"base": 139264
},
"version": [
- 1,8,3]
+ 1,8,5]
},
"tc_dir": "C:\\Programs\\gcc-arm-none-eabi-10.3-2021.10\\bin",
"eflash_addr": "0x42000",
@@ -70,8 +70,8 @@
"proxy": true
},
"cmsis": "C:\/projects\/ingchips\/ingWizard\/CMSIS",
- "app_ram_size": 60024,
- "app_ram_addr": 536876424,
+ "app_ram_size": 61024,
+ "app_ram_addr": 536875424,
"printf_enable": true,
"ota_ver_patch": "0",
"profile_data": "0, 0\r\n",
diff --git a/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ld b/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ld
index 08b544308..00c5ebe26 100644
--- a/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ld
+++ b/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ld
@@ -8,7 +8,7 @@
MEMORY
{
FLASH (rx) : ORIGIN = 139264, LENGTH = 401408
- RAM (rwx) : ORIGIN = 536876424, LENGTH = 60024
+ RAM (rwx) : ORIGIN = 536875424, LENGTH = 61024
}
/* Linker script to place sections and symbol values. Should be used together
diff --git a/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw b/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw
index 9a0517062..70fd98dce 100644
--- a/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw
+++ b/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw
@@ -1,18 +1,18 @@
{
"bundle_meta": {
"rom": {
- "size": 133588,
+ "size": 133292,
"base": 16384
},
"ram": {
- "size": 30980,
+ "size": 29980,
"base": 536870912
},
"app": {
"base": 155648
},
"version": [
- 1,8,3]
+ 1,8,5]
},
"tc_dir": "C:\\Programs\\gcc-arm-none-eabi-10.3-2021.10\\bin",
"ide_ver": "",
@@ -50,8 +50,8 @@
"proxy": true
},
"cmsis": "C:\/projects\/ingchips\/ingWizard\/CMSIS",
- "app_ram_size": 34552,
- "app_ram_addr": 536901896,
+ "app_ram_size": 35552,
+ "app_ram_addr": 536900896,
"uart_log": true,
"ota_ver_patch": "0",
"profile_data": "0, 0\r\n",
diff --git a/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ld b/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ld
index 17c0f9e73..423554988 100644
--- a/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ld
+++ b/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ld
@@ -8,7 +8,7 @@
MEMORY
{
FLASH (rx) : ORIGIN = 155648, LENGTH = 385024
- RAM (rwx) : ORIGIN = 536901896, LENGTH = 34552
+ RAM (rwx) : ORIGIN = 536900896, LENGTH = 35552
}
/* Linker script to place sections and symbol values. Should be used together
diff --git a/examples-gcc/smart_home_hub/smart_home_hub.ingw b/examples-gcc/smart_home_hub/smart_home_hub.ingw
index 0bd35935c..dd7cf6f87 100644
--- a/examples-gcc/smart_home_hub/smart_home_hub.ingw
+++ b/examples-gcc/smart_home_hub/smart_home_hub.ingw
@@ -2,18 +2,18 @@
"watchdog": false,
"bundle_meta": {
"rom": {
- "size": 133588,
+ "size": 133292,
"base": 16384
},
"ram": {
- "size": 30980,
+ "size": 29980,
"base": 536870912
},
"app": {
"base": 155648
},
"version": [
- 1,8,3]
+ 1,8,5]
},
"tc_dir": "C:\\Programs\\gcc-arm-none-eabi-10.3-2021.10\\bin",
"eflash_addr": "0x42000",
@@ -58,8 +58,8 @@
"proxy": true
},
"cmsis": "C:\/projects\/ingchips\/ingWizard\/CMSIS",
- "app_ram_size": 34552,
- "app_ram_addr": 536901896,
+ "app_ram_size": 35552,
+ "app_ram_addr": 536900896,
"uart_log": true,
"ota_ver_patch": "0",
"profile_data": "0, 0\r\n",
diff --git a/examples-gcc/smart_home_hub/smart_home_hub.ld b/examples-gcc/smart_home_hub/smart_home_hub.ld
index 17c0f9e73..423554988 100644
--- a/examples-gcc/smart_home_hub/smart_home_hub.ld
+++ b/examples-gcc/smart_home_hub/smart_home_hub.ld
@@ -8,7 +8,7 @@
MEMORY
{
FLASH (rx) : ORIGIN = 155648, LENGTH = 385024
- RAM (rwx) : ORIGIN = 536901896, LENGTH = 34552
+ RAM (rwx) : ORIGIN = 536900896, LENGTH = 35552
}
/* Linker script to place sections and symbol values. Should be used together
diff --git a/examples-iar/peripheral_ibeacon/generic_cortex.icf b/examples-iar/peripheral_ibeacon/generic_cortex.icf
index 6b25d5ea9..6e0cdcd60 100644
--- a/examples-iar/peripheral_ibeacon/generic_cortex.icf
+++ b/examples-iar/peripheral_ibeacon/generic_cortex.icf
@@ -2,9 +2,9 @@
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_4.xml" */
/*-Specials-*/
-define symbol __ICFEDIT_intvec_start__ = 155648;
+define symbol __ICFEDIT_intvec_start__ = 155648;
/*-Memory Regions-*/
-define symbol __ICFEDIT_region_IROM1_start__ = 155648;
+define symbol __ICFEDIT_region_IROM1_start__ = 155648;
define symbol __ICFEDIT_region_IROM1_end__ = 0x00084000;
define symbol __ICFEDIT_region_IROM2_start__ = 0x0;
define symbol __ICFEDIT_region_IROM2_end__ = 0x0;
@@ -14,7 +14,7 @@ define symbol __ICFEDIT_region_EROM2_start__ = 0x0;
define symbol __ICFEDIT_region_EROM2_end__ = 0x0;
define symbol __ICFEDIT_region_EROM3_start__ = 0x0;
define symbol __ICFEDIT_region_EROM3_end__ = 0x0;
-define symbol __ICFEDIT_region_IRAM1_start__ = 536901896;
+define symbol __ICFEDIT_region_IRAM1_start__ = 536900896;
define symbol __ICFEDIT_region_IRAM1_end__ = 0x2000FFFF;
define symbol __ICFEDIT_region_IRAM2_start__ = 0x0;
define symbol __ICFEDIT_region_IRAM2_end__ = 0x0;
diff --git a/examples-iar/peripheral_ibeacon/peripheral_ibeacon.custom_argvars b/examples-iar/peripheral_ibeacon/peripheral_ibeacon.custom_argvars
new file mode 100644
index 000000000..d311d9d8e
--- /dev/null
+++ b/examples-iar/peripheral_ibeacon/peripheral_ibeacon.custom_argvars
@@ -0,0 +1,9 @@
+
+
+
+
+ ING_SDK_ROOT
+ $PROJ_DIR$/../..
+
+
+
diff --git a/examples-iar/peripheral_ibeacon/peripheral_ibeacon.ewp b/examples-iar/peripheral_ibeacon/peripheral_ibeacon.ewp
index d8c9b9c1f..96274d765 100644
--- a/examples-iar/peripheral_ibeacon/peripheral_ibeacon.ewp
+++ b/examples-iar/peripheral_ibeacon/peripheral_ibeacon.ewp
@@ -350,6 +350,13 @@