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 @@