From d9a2acd5d8db846bd15358bce4016624960bd924 Mon Sep 17 00:00:00 2001 From: zjli2019 Date: Thu, 9 Nov 2023 10:01:38 +0800 Subject: [PATCH 01/13] prepare 8.4.6: 1. add `flash_read_uid`; 1. add more PCAP API; 1. fix SM IRK updating issue. --- bundles/exp/ING9168xx/apis.json | 312 +++++++++--------- bundles/exp/ING9168xx/meta.json | 6 +- bundles/exp/ING9168xx/platform.bin | Bin 168848 -> 168988 bytes bundles/exp/ING9187xx/apis.json | 188 +++++------ bundles/exp/ING9187xx/meta.json | 4 +- bundles/exp/ING9187xx/platform.bin | Bin 147176 -> 147152 bytes bundles/exp/ING9188xx/apis.json | 188 +++++------ bundles/exp/ING9188xx/meta.json | 4 +- bundles/exp/ING9188xx/platform.bin | Bin 154084 -> 154060 bytes bundles/exp/inc/bluetooth.h | 27 +- bundles/exp/inc/gap.h | 16 +- bundles/exp/inc/platform_api.h | 3 + bundles/extension/ING9168xx/apis.json | 188 +++++------ bundles/extension/ING9168xx/meta.json | 6 +- bundles/extension/ING9168xx/platform.bin | Bin 161748 -> 161868 bytes bundles/extension/ING9187xx/apis.json | 188 +++++------ bundles/extension/ING9187xx/meta.json | 4 +- bundles/extension/ING9187xx/platform.bin | Bin 139196 -> 139176 bytes bundles/extension/ING9188xx/apis.json | 188 +++++------ bundles/extension/ING9188xx/meta.json | 4 +- bundles/extension/ING9188xx/platform.bin | Bin 146464 -> 146444 bytes bundles/extension/inc/bluetooth.h | 27 +- bundles/extension/inc/btstack_event.h | 212 ++++++++++-- bundles/extension/inc/gap.h | 163 ++++++++- bundles/extension/inc/platform_api.h | 3 + bundles/mass_conn/ING9168xx/apis.json | 188 +++++------ bundles/mass_conn/ING9168xx/meta.json | 6 +- bundles/mass_conn/ING9168xx/platform.bin | Bin 155136 -> 155264 bytes bundles/mass_conn/ING9187xx/apis.json | 188 +++++------ bundles/mass_conn/ING9187xx/meta.json | 4 +- bundles/mass_conn/ING9187xx/platform.bin | Bin 135844 -> 135824 bytes bundles/mass_conn/ING9188xx/apis.json | 188 +++++------ bundles/mass_conn/ING9188xx/meta.json | 4 +- bundles/mass_conn/ING9188xx/platform.bin | Bin 141884 -> 141864 bytes bundles/mass_conn/inc/bluetooth.h | 27 +- bundles/mass_conn/inc/btstack_event.h | 212 ++++++++++-- bundles/mass_conn/inc/gap.h | 163 ++++++++- bundles/mass_conn/inc/platform_api.h | 3 + bundles/mini/ING9168xx/apis.json | 30 +- bundles/mini/ING9168xx/meta.json | 10 +- bundles/mini/ING9168xx/platform.bin | Bin 155620 -> 155732 bytes bundles/mini/ING9187xx/apis.json | 188 +++++------ bundles/mini/ING9187xx/meta.json | 4 +- bundles/mini/ING9187xx/platform.bin | Bin 135284 -> 135264 bytes bundles/mini/ING9188xx/apis.json | 188 +++++------ bundles/mini/ING9188xx/meta.json | 4 +- bundles/mini/ING9188xx/platform.bin | Bin 141316 -> 141296 bytes bundles/mini/inc/bluetooth.h | 27 +- bundles/mini/inc/btstack_event.h | 212 ++++++++++-- bundles/mini/inc/gap.h | 163 ++++++++- bundles/mini/inc/platform_api.h | 3 + bundles/noos_exp/ING9168xx/apis.json | 156 ++++----- bundles/noos_exp/ING9168xx/meta.json | 8 +- bundles/noos_exp/ING9168xx/platform.bin | Bin 157972 -> 158112 bytes bundles/noos_exp/ING9187xx/apis.json | 36 +- bundles/noos_exp/ING9187xx/meta.json | 4 +- bundles/noos_exp/ING9187xx/platform.bin | Bin 136384 -> 136368 bytes bundles/noos_exp/ING9188xx/apis.json | 36 +- bundles/noos_exp/ING9188xx/meta.json | 4 +- bundles/noos_exp/ING9188xx/platform.bin | Bin 143292 -> 143276 bytes bundles/noos_exp/inc/bluetooth.h | 27 +- bundles/noos_exp/inc/gap.h | 16 +- bundles/noos_exp/inc/platform_api.h | 3 + bundles/noos_extension/ING9168xx/apis.json | 36 +- bundles/noos_extension/ING9168xx/meta.json | 8 +- bundles/noos_extension/ING9168xx/platform.bin | Bin 150868 -> 151000 bytes bundles/noos_extension/ING9187xx/apis.json | 36 +- bundles/noos_extension/ING9187xx/meta.json | 4 +- bundles/noos_extension/ING9187xx/platform.bin | Bin 128416 -> 128396 bytes bundles/noos_extension/ING9188xx/apis.json | 36 +- bundles/noos_extension/ING9188xx/meta.json | 4 +- bundles/noos_extension/ING9188xx/platform.bin | Bin 135684 -> 135664 bytes bundles/noos_extension/inc/bluetooth.h | 27 +- bundles/noos_extension/inc/btstack_event.h | 212 ++++++++++-- bundles/noos_extension/inc/gap.h | 163 ++++++++- bundles/noos_extension/inc/platform_api.h | 3 + bundles/noos_mass_conn/ING9168xx/apis.json | 36 +- bundles/noos_mass_conn/ING9168xx/meta.json | 8 +- bundles/noos_mass_conn/ING9168xx/platform.bin | Bin 144264 -> 144384 bytes bundles/noos_mass_conn/ING9187xx/apis.json | 36 +- bundles/noos_mass_conn/ING9187xx/meta.json | 4 +- bundles/noos_mass_conn/ING9187xx/platform.bin | Bin 125060 -> 125040 bytes bundles/noos_mass_conn/ING9188xx/apis.json | 36 +- bundles/noos_mass_conn/ING9188xx/meta.json | 4 +- bundles/noos_mass_conn/ING9188xx/platform.bin | Bin 131104 -> 131084 bytes bundles/noos_mass_conn/inc/bluetooth.h | 27 +- bundles/noos_mass_conn/inc/btstack_event.h | 212 ++++++++++-- bundles/noos_mass_conn/inc/gap.h | 163 ++++++++- bundles/noos_mass_conn/inc/platform_api.h | 3 + bundles/noos_mini/ING9168xx/apis.json | 30 +- bundles/noos_mini/ING9168xx/meta.json | 8 +- bundles/noos_mini/ING9168xx/platform.bin | Bin 144728 -> 144840 bytes bundles/noos_mini/ING9187xx/apis.json | 36 +- bundles/noos_mini/ING9187xx/meta.json | 4 +- bundles/noos_mini/ING9187xx/platform.bin | Bin 124504 -> 124484 bytes bundles/noos_mini/ING9188xx/apis.json | 36 +- bundles/noos_mini/ING9188xx/meta.json | 4 +- bundles/noos_mini/ING9188xx/platform.bin | Bin 130536 -> 130516 bytes bundles/noos_mini/inc/bluetooth.h | 27 +- bundles/noos_mini/inc/btstack_event.h | 212 ++++++++++-- bundles/noos_mini/inc/gap.h | 163 ++++++++- bundles/noos_mini/inc/platform_api.h | 3 + bundles/noos_typical/ING9168xx/apis.json | 36 +- bundles/noos_typical/ING9168xx/meta.json | 6 +- bundles/noos_typical/ING9168xx/platform.bin | Bin 144260 -> 144384 bytes bundles/noos_typical/ING9187xx/apis.json | 36 +- bundles/noos_typical/ING9187xx/meta.json | 4 +- bundles/noos_typical/ING9187xx/platform.bin | Bin 124984 -> 124964 bytes bundles/noos_typical/ING9188xx/apis.json | 36 +- bundles/noos_typical/ING9188xx/meta.json | 4 +- bundles/noos_typical/ING9188xx/platform.bin | Bin 131028 -> 131012 bytes bundles/noos_typical/inc/bluetooth.h | 27 +- bundles/noos_typical/inc/btstack_event.h | 212 ++++++++++-- bundles/noos_typical/inc/gap.h | 163 ++++++++- bundles/noos_typical/inc/platform_api.h | 3 + bundles/typical/ING9168xx/apis.json | 188 +++++------ bundles/typical/ING9168xx/meta.json | 8 +- bundles/typical/ING9168xx/platform.bin | Bin 155136 -> 155260 bytes bundles/typical/ING9187xx/apis.json | 188 +++++------ bundles/typical/ING9187xx/meta.json | 4 +- bundles/typical/ING9187xx/platform.bin | Bin 135764 -> 135744 bytes bundles/typical/ING9188xx/apis.json | 188 +++++------ bundles/typical/ING9188xx/meta.json | 4 +- bundles/typical/ING9188xx/platform.bin | Bin 141808 -> 141788 bytes bundles/typical/inc/bluetooth.h | 27 +- bundles/typical/inc/btstack_event.h | 212 ++++++++++-- bundles/typical/inc/gap.h | 163 ++++++++- bundles/typical/inc/platform_api.h | 3 + src/BSP/eflash.c | 12 + src/BSP/eflash.h | 12 + src/FWlib/peripheral_pwm.c | 15 +- src/FWlib/peripheral_pwm.h | 37 ++- 132 files changed, 4929 insertions(+), 2073 deletions(-) diff --git a/bundles/exp/ING9168xx/apis.json b/bundles/exp/ING9168xx/apis.json index 8915d8330..f7fdee09b 100644 --- a/bundles/exp/ING9168xx/apis.json +++ b/bundles/exp/ING9168xx/apis.json @@ -234,161 +234,161 @@ "ll_set_max_conn_number": "0x0200dc01", "ll_set_tx_power_range": "0x0200dca9", "ll_unlock_frequency": "0x0200dcd1", - "nibble_for_char": "0x02022299", - "platform_32k_rc_auto_tune": "0x02022345", - "platform_32k_rc_tune": "0x02022391", - "platform_calibrate_32k": "0x020223ad", + "nibble_for_char": "0x020222a9", + "platform_32k_rc_auto_tune": "0x02022355", + "platform_32k_rc_tune": "0x020223a1", + "platform_calibrate_32k": "0x020223bd", "platform_call_on_stack": "0x020021fb", - "platform_config": "0x020223b1", - "platform_delete_timer": "0x020224d9", - "platform_enable_irq": "0x020224e1", - "platform_get_current_task": "0x02022515", - "platform_get_gen_os_driver": "0x02022539", - "platform_get_heap_status": "0x02022541", - "platform_get_link_layer_interf": "0x02022559", - "platform_get_task_handle": "0x02022561", - "platform_get_timer_counter": "0x02022581", - "platform_get_us_time": "0x02022585", - "platform_get_version": "0x02022589", - "platform_hrng": "0x02022591", - "platform_install_isr_stack": "0x02022599", - "platform_install_task_stack": "0x020225a5", - "platform_patch_rf_init_data": "0x020225dd", - "platform_printf": "0x020225e9", - "platform_raise_assertion": "0x020225fd", - "platform_rand": "0x02022611", - "platform_read_info": "0x02022615", - "platform_read_persistent_reg": "0x02022645", - "platform_reset": "0x02022651", - "platform_set_abs_timer": "0x02022665", - "platform_set_evt_callback": "0x02022669", - "platform_set_evt_callback_table": "0x0202267d", - "platform_set_irq_callback": "0x02022689", - "platform_set_irq_callback_table": "0x020226a5", - "platform_set_rf_clk_source": "0x020226b1", - "platform_set_rf_init_data": "0x020226bd", - "platform_set_rf_power_mapping": "0x020226c9", - "platform_set_timer": "0x020226d5", - "platform_shutdown": "0x020226d9", - "platform_switch_app": "0x020226dd", - "platform_trace_raw": "0x020226f5", - "platform_write_persistent_reg": "0x0202270d", - "printf_hexdump": "0x020228c5", - "pvPortMalloc": "0x0202339d", - "pvTaskIncrementMutexHeldCount": "0x02023485", - "pvTimerGetTimerID": "0x0202349d", - "pxPortInitialiseStack": "0x020234c9", - "reverse_128": "0x020236b1", - "reverse_24": "0x020236b7", - "reverse_256": "0x020236bd", - "reverse_48": "0x020236c3", - "reverse_56": "0x020236c9", - "reverse_64": "0x020236cf", - "reverse_bd_addr": "0x020236d5", - "reverse_bytes": "0x020236db", - "sm_add_event_handler": "0x02023a59", - "sm_address_resolution_lookup": "0x02023bb1", - "sm_authenticated": "0x02023f2d", - "sm_authorization_decline": "0x02023f3b", - "sm_authorization_grant": "0x02023f5b", - "sm_authorization_state": "0x02023f7b", - "sm_bonding_decline": "0x02023f95", - "sm_config": "0x020243e9", - "sm_config_conn": "0x02024401", - "sm_encryption_key_size": "0x020245b7", - "sm_just_works_confirm": "0x02024b3d", - "sm_le_device_key": "0x02024e89", - "sm_passkey_input": "0x02024f1f", - "sm_private_random_address_generation_get": "0x020252d9", - "sm_private_random_address_generation_get_mode": "0x020252e1", - "sm_private_random_address_generation_set_mode": "0x020252ed", - "sm_private_random_address_generation_set_update_period": "0x02025315", - "sm_register_external_ltk_callback": "0x02025451", - "sm_register_oob_data_callback": "0x0202545d", - "sm_request_pairing": "0x02025469", - "sm_send_security_request": "0x02025f3f", - "sm_set_accepted_stk_generation_methods": "0x02025f65", - "sm_set_authentication_requirements": "0x02025f71", - "sm_set_encryption_key_size_range": "0x02025f7d", - "sscanf_bd_addr": "0x02026355", - "sysSetPublicDeviceAddr": "0x02026805", - "uuid128_to_str": "0x02027071", - "uuid_add_bluetooth_prefix": "0x020270c9", - "uuid_has_bluetooth_prefix": "0x020270e9", - "uxListRemove": "0x02027105", - "uxQueueMessagesWaiting": "0x0202712d", - "uxQueueMessagesWaitingFromISR": "0x02027155", - "uxQueueSpacesAvailable": "0x02027171", - "uxTaskGetStackHighWaterMark": "0x0202719d", - "uxTaskPriorityGet": "0x020271bd", - "uxTaskPriorityGetFromISR": "0x020271d9", - "vListInitialise": "0x02027297", - "vListInitialiseItem": "0x020272ad", - "vListInsert": "0x020272b3", - "vListInsertEnd": "0x020272e3", - "vPortEndScheduler": "0x020272fd", - "vPortEnterCritical": "0x02027329", - "vPortExitCritical": "0x0202736d", - "vPortFree": "0x020273a1", - "vPortSuppressTicksAndSleep": "0x02027445", - "vPortValidateInterruptPriority": "0x0202756d", - "vQueueDelete": "0x020275c9", - "vQueueWaitForMessageRestricted": "0x020275f5", - "vTaskDelay": "0x02027639", - "vTaskInternalSetTimeOutState": "0x02027685", - "vTaskMissedYield": "0x02027695", - "vTaskPlaceOnEventList": "0x020276a1", - "vTaskPlaceOnEventListRestricted": "0x020276d9", - "vTaskPriorityDisinheritAfterTimeout": "0x02027719", - "vTaskPrioritySet": "0x020277c5", - "vTaskResume": "0x0202788d", - "vTaskStartScheduler": "0x02027911", - "vTaskStepTick": "0x020279a1", - "vTaskSuspend": "0x020279d1", - "vTaskSuspendAll": "0x02027a8d", - "vTaskSwitchContext": "0x02027a9d", - "xPortStartScheduler": "0x02027b45", - "xQueueAddToSet": "0x02027c49", - "xQueueCreateCountingSemaphore": "0x02027c6d", - "xQueueCreateCountingSemaphoreStatic": "0x02027ca9", - "xQueueCreateMutex": "0x02027ced", - "xQueueCreateMutexStatic": "0x02027d03", - "xQueueCreateSet": "0x02027d1d", - "xQueueGenericCreate": "0x02027d25", - "xQueueGenericCreateStatic": "0x02027d71", - "xQueueGenericReset": "0x02027dd9", - "xQueueGenericSend": "0x02027e65", - "xQueueGenericSendFromISR": "0x02027fd1", - "xQueueGiveFromISR": "0x02028091", - "xQueueGiveMutexRecursive": "0x02028135", - "xQueueIsQueueEmptyFromISR": "0x02028175", - "xQueueIsQueueFullFromISR": "0x02028199", - "xQueuePeek": "0x020281c1", - "xQueuePeekFromISR": "0x020282e9", - "xQueueReceive": "0x02028355", - "xQueueReceiveFromISR": "0x02028481", - "xQueueRemoveFromSet": "0x02028515", - "xQueueSelectFromSet": "0x02028537", - "xQueueSelectFromSetFromISR": "0x02028549", - "xQueueSemaphoreTake": "0x0202855d", - "xQueueTakeMutexRecursive": "0x020286c9", - "xTaskCheckForTimeOut": "0x0202870d", - "xTaskCreate": "0x0202877d", - "xTaskCreateStatic": "0x020287d9", - "xTaskGetCurrentTaskHandle": "0x02028849", - "xTaskGetSchedulerState": "0x02028855", - "xTaskGetTickCount": "0x02028871", - "xTaskGetTickCountFromISR": "0x0202887d", - "xTaskIncrementTick": "0x0202888d", - "xTaskPriorityDisinherit": "0x02028959", - "xTaskPriorityInherit": "0x020289ed", - "xTaskRemoveFromEventList": "0x02028a81", - "xTaskResumeAll": "0x02028b01", - "xTaskResumeFromISR": "0x02028bc9", - "xTimerCreate": "0x02028c55", - "xTimerCreateStatic": "0x02028c89", - "xTimerCreateTimerTask": "0x02028cc1", - "xTimerGenericCommand": "0x02028d2d", - "xTimerGetExpiryTime": "0x02028d9d", - "xTimerGetTimerDaemonTaskHandle": "0x02028dbd" + "platform_config": "0x020223c1", + "platform_delete_timer": "0x020224e9", + "platform_enable_irq": "0x020224f1", + "platform_get_current_task": "0x02022525", + "platform_get_gen_os_driver": "0x02022549", + "platform_get_heap_status": "0x02022551", + "platform_get_link_layer_interf": "0x02022569", + "platform_get_task_handle": "0x02022571", + "platform_get_timer_counter": "0x02022591", + "platform_get_us_time": "0x02022595", + "platform_get_version": "0x02022599", + "platform_hrng": "0x020225a1", + "platform_install_isr_stack": "0x020225a9", + "platform_install_task_stack": "0x020225b5", + "platform_patch_rf_init_data": "0x020225ed", + "platform_printf": "0x020225f9", + "platform_raise_assertion": "0x0202260d", + "platform_rand": "0x02022621", + "platform_read_info": "0x02022625", + "platform_read_persistent_reg": "0x02022655", + "platform_reset": "0x02022661", + "platform_set_abs_timer": "0x02022675", + "platform_set_evt_callback": "0x02022679", + "platform_set_evt_callback_table": "0x0202268d", + "platform_set_irq_callback": "0x02022699", + "platform_set_irq_callback_table": "0x020226b5", + "platform_set_rf_clk_source": "0x020226c1", + "platform_set_rf_init_data": "0x020226cd", + "platform_set_rf_power_mapping": "0x020226d9", + "platform_set_timer": "0x020226e5", + "platform_shutdown": "0x020226e9", + "platform_switch_app": "0x020226ed", + "platform_trace_raw": "0x02022705", + "platform_write_persistent_reg": "0x0202271d", + "printf_hexdump": "0x020228d5", + "pvPortMalloc": "0x020233ad", + "pvTaskIncrementMutexHeldCount": "0x02023495", + "pvTimerGetTimerID": "0x020234ad", + "pxPortInitialiseStack": "0x020234d9", + "reverse_128": "0x020236c1", + "reverse_24": "0x020236c7", + "reverse_256": "0x020236cd", + "reverse_48": "0x020236d3", + "reverse_56": "0x020236d9", + "reverse_64": "0x020236df", + "reverse_bd_addr": "0x020236e5", + "reverse_bytes": "0x020236eb", + "sm_add_event_handler": "0x02023a69", + "sm_address_resolution_lookup": "0x02023bc1", + "sm_authenticated": "0x02023f3d", + "sm_authorization_decline": "0x02023f4b", + "sm_authorization_grant": "0x02023f6b", + "sm_authorization_state": "0x02023f8b", + "sm_bonding_decline": "0x02023fa5", + "sm_config": "0x020243f9", + "sm_config_conn": "0x02024411", + "sm_encryption_key_size": "0x020245c7", + "sm_just_works_confirm": "0x02024b4d", + "sm_le_device_key": "0x02024e85", + "sm_passkey_input": "0x02024f1b", + "sm_private_random_address_generation_get": "0x020252d5", + "sm_private_random_address_generation_get_mode": "0x020252dd", + "sm_private_random_address_generation_set_mode": "0x020252e9", + "sm_private_random_address_generation_set_update_period": "0x02025311", + "sm_register_external_ltk_callback": "0x0202544d", + "sm_register_oob_data_callback": "0x02025459", + "sm_request_pairing": "0x02025465", + "sm_send_security_request": "0x02025f3b", + "sm_set_accepted_stk_generation_methods": "0x02025f61", + "sm_set_authentication_requirements": "0x02025f6d", + "sm_set_encryption_key_size_range": "0x02025f79", + "sscanf_bd_addr": "0x02026351", + "sysSetPublicDeviceAddr": "0x0202687d", + "uuid128_to_str": "0x020270fd", + "uuid_add_bluetooth_prefix": "0x02027155", + "uuid_has_bluetooth_prefix": "0x02027175", + "uxListRemove": "0x02027191", + "uxQueueMessagesWaiting": "0x020271b9", + "uxQueueMessagesWaitingFromISR": "0x020271e1", + "uxQueueSpacesAvailable": "0x020271fd", + "uxTaskGetStackHighWaterMark": "0x02027229", + "uxTaskPriorityGet": "0x02027249", + "uxTaskPriorityGetFromISR": "0x02027265", + "vListInitialise": "0x02027323", + "vListInitialiseItem": "0x02027339", + "vListInsert": "0x0202733f", + "vListInsertEnd": "0x0202736f", + "vPortEndScheduler": "0x02027389", + "vPortEnterCritical": "0x020273b5", + "vPortExitCritical": "0x020273f9", + "vPortFree": "0x0202742d", + "vPortSuppressTicksAndSleep": "0x020274d1", + "vPortValidateInterruptPriority": "0x020275f9", + "vQueueDelete": "0x02027655", + "vQueueWaitForMessageRestricted": "0x02027681", + "vTaskDelay": "0x020276c5", + "vTaskInternalSetTimeOutState": "0x02027711", + "vTaskMissedYield": "0x02027721", + "vTaskPlaceOnEventList": "0x0202772d", + "vTaskPlaceOnEventListRestricted": "0x02027765", + "vTaskPriorityDisinheritAfterTimeout": "0x020277a5", + "vTaskPrioritySet": "0x02027851", + "vTaskResume": "0x02027919", + "vTaskStartScheduler": "0x0202799d", + "vTaskStepTick": "0x02027a2d", + "vTaskSuspend": "0x02027a5d", + "vTaskSuspendAll": "0x02027b19", + "vTaskSwitchContext": "0x02027b29", + "xPortStartScheduler": "0x02027bd1", + "xQueueAddToSet": "0x02027cd5", + "xQueueCreateCountingSemaphore": "0x02027cf9", + "xQueueCreateCountingSemaphoreStatic": "0x02027d35", + "xQueueCreateMutex": "0x02027d79", + "xQueueCreateMutexStatic": "0x02027d8f", + "xQueueCreateSet": "0x02027da9", + "xQueueGenericCreate": "0x02027db1", + "xQueueGenericCreateStatic": "0x02027dfd", + "xQueueGenericReset": "0x02027e65", + "xQueueGenericSend": "0x02027ef1", + "xQueueGenericSendFromISR": "0x0202805d", + "xQueueGiveFromISR": "0x0202811d", + "xQueueGiveMutexRecursive": "0x020281c1", + "xQueueIsQueueEmptyFromISR": "0x02028201", + "xQueueIsQueueFullFromISR": "0x02028225", + "xQueuePeek": "0x0202824d", + "xQueuePeekFromISR": "0x02028375", + "xQueueReceive": "0x020283e1", + "xQueueReceiveFromISR": "0x0202850d", + "xQueueRemoveFromSet": "0x020285a1", + "xQueueSelectFromSet": "0x020285c3", + "xQueueSelectFromSetFromISR": "0x020285d5", + "xQueueSemaphoreTake": "0x020285e9", + "xQueueTakeMutexRecursive": "0x02028755", + "xTaskCheckForTimeOut": "0x02028799", + "xTaskCreate": "0x02028809", + "xTaskCreateStatic": "0x02028865", + "xTaskGetCurrentTaskHandle": "0x020288d5", + "xTaskGetSchedulerState": "0x020288e1", + "xTaskGetTickCount": "0x020288fd", + "xTaskGetTickCountFromISR": "0x02028909", + "xTaskIncrementTick": "0x02028919", + "xTaskPriorityDisinherit": "0x020289e5", + "xTaskPriorityInherit": "0x02028a79", + "xTaskRemoveFromEventList": "0x02028b0d", + "xTaskResumeAll": "0x02028b8d", + "xTaskResumeFromISR": "0x02028c55", + "xTimerCreate": "0x02028ce1", + "xTimerCreateStatic": "0x02028d15", + "xTimerCreateTimerTask": "0x02028d4d", + "xTimerGenericCommand": "0x02028db9", + "xTimerGetExpiryTime": "0x02028e29", + "xTimerGetTimerDaemonTaskHandle": "0x02028e49" } \ No newline at end of file diff --git a/bundles/exp/ING9168xx/meta.json b/bundles/exp/ING9168xx/meta.json index a3aa2bf35..60724eaa6 100644 --- a/bundles/exp/ING9168xx/meta.json +++ b/bundles/exp/ING9168xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 33562624, - "size": 168848 + "size": 168988 }, "version": [ 2, - 2, - 53 + 3, + 0 ] } \ No newline at end of file diff --git a/bundles/exp/ING9168xx/platform.bin b/bundles/exp/ING9168xx/platform.bin index 13793797c14d90e65c1833f2561fe9539bfd9df3..4768d6f519c1ab22494e05aeee90c6116a835706 100644 GIT binary patch delta 28089 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 delta 27981 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 H7@L0qx4*wB diff --git a/bundles/exp/ING9187xx/apis.json b/bundles/exp/ING9187xx/apis.json index 416ac810b..970679ae6 100644 --- a/bundles/exp/ING9187xx/apis.json +++ b/bundles/exp/ING9187xx/apis.json @@ -268,98 +268,98 @@ "sm_config_conn": "0x00021cf9", "sm_encryption_key_size": "0x00021eaf", "sm_just_works_confirm": "0x00022435", - "sm_le_device_key": "0x00022781", - "sm_passkey_input": "0x00022817", - "sm_private_random_address_generation_get": "0x00022bd1", - "sm_private_random_address_generation_get_mode": "0x00022bd9", - "sm_private_random_address_generation_set_mode": "0x00022be5", - "sm_private_random_address_generation_set_update_period": "0x00022c0d", - "sm_register_external_ltk_callback": "0x00022d49", - "sm_register_oob_data_callback": "0x00022d55", - "sm_request_pairing": "0x00022d61", - "sm_send_security_request": "0x00023837", - "sm_set_accepted_stk_generation_methods": "0x0002385d", - "sm_set_authentication_requirements": "0x00023869", - "sm_set_encryption_key_size_range": "0x00023875", - "sscanf_bd_addr": "0x00023c45", - "sysSetPublicDeviceAddr": "0x00023ff9", - "uuid128_to_str": "0x0002462d", - "uuid_add_bluetooth_prefix": "0x00024685", - "uuid_has_bluetooth_prefix": "0x000246a5", - "uxListRemove": "0x000246c1", - "uxQueueMessagesWaiting": "0x000246e9", - "uxQueueMessagesWaitingFromISR": "0x00024711", - "uxQueueSpacesAvailable": "0x0002472d", - "uxTaskGetStackHighWaterMark": "0x00024759", - "uxTaskPriorityGet": "0x00024779", - "uxTaskPriorityGetFromISR": "0x00024795", - "vListInitialise": "0x0002484f", - "vListInitialiseItem": "0x00024865", - "vListInsert": "0x0002486b", - "vListInsertEnd": "0x0002489b", - "vPortEndScheduler": "0x000248b5", - "vPortEnterCritical": "0x000248e1", - "vPortExitCritical": "0x00024925", - "vPortFree": "0x00024959", - "vPortSuppressTicksAndSleep": "0x000249ed", - "vPortValidateInterruptPriority": "0x00024b15", - "vQueueDelete": "0x00024b71", - "vQueueWaitForMessageRestricted": "0x00024b9d", - "vTaskDelay": "0x00024be5", - "vTaskInternalSetTimeOutState": "0x00024c31", - "vTaskMissedYield": "0x00024c41", - "vTaskPlaceOnEventList": "0x00024c4d", - "vTaskPlaceOnEventListRestricted": "0x00024c85", - "vTaskPriorityDisinheritAfterTimeout": "0x00024cc5", - "vTaskPrioritySet": "0x00024d71", - "vTaskResume": "0x00024e39", - "vTaskStartScheduler": "0x00024ebd", - "vTaskStepTick": "0x00024f4d", - "vTaskSuspend": "0x00024f7d", - "vTaskSuspendAll": "0x00025039", - "vTaskSwitchContext": "0x00025049", - "xPortStartScheduler": "0x000250f1", - "xQueueAddToSet": "0x000251b9", - "xQueueCreateCountingSemaphore": "0x000251dd", - "xQueueCreateCountingSemaphoreStatic": "0x00025219", - "xQueueCreateMutex": "0x0002525d", - "xQueueCreateMutexStatic": "0x00025273", - "xQueueCreateSet": "0x0002528d", - "xQueueGenericCreate": "0x00025295", - "xQueueGenericCreateStatic": "0x000252e1", - "xQueueGenericReset": "0x00025349", - "xQueueGenericSend": "0x000253d5", - "xQueueGenericSendFromISR": "0x00025541", - "xQueueGiveFromISR": "0x00025601", - "xQueueGiveMutexRecursive": "0x000256a5", - "xQueueIsQueueEmptyFromISR": "0x000256e5", - "xQueueIsQueueFullFromISR": "0x00025709", - "xQueuePeek": "0x00025731", - "xQueuePeekFromISR": "0x00025859", - "xQueueReceive": "0x000258c5", - "xQueueReceiveFromISR": "0x000259f1", - "xQueueRemoveFromSet": "0x00025a85", - "xQueueSelectFromSet": "0x00025aa7", - "xQueueSelectFromSetFromISR": "0x00025ab9", - "xQueueSemaphoreTake": "0x00025acd", - "xQueueTakeMutexRecursive": "0x00025c39", - "xTaskCheckForTimeOut": "0x00025c7d", - "xTaskCreate": "0x00025ced", - "xTaskCreateStatic": "0x00025d49", - "xTaskGetCurrentTaskHandle": "0x00025db9", - "xTaskGetSchedulerState": "0x00025dc5", - "xTaskGetTickCount": "0x00025de1", - "xTaskGetTickCountFromISR": "0x00025ded", - "xTaskIncrementTick": "0x00025dfd", - "xTaskPriorityDisinherit": "0x00025ec9", - "xTaskPriorityInherit": "0x00025f5d", - "xTaskRemoveFromEventList": "0x00025ff1", - "xTaskResumeAll": "0x00026071", - "xTaskResumeFromISR": "0x00026139", - "xTimerCreate": "0x000261c5", - "xTimerCreateStatic": "0x000261f9", - "xTimerCreateTimerTask": "0x00026231", - "xTimerGenericCommand": "0x0002629d", - "xTimerGetExpiryTime": "0x0002630d", - "xTimerGetTimerDaemonTaskHandle": "0x0002632d" + "sm_le_device_key": "0x0002276d", + "sm_passkey_input": "0x00022803", + "sm_private_random_address_generation_get": "0x00022bbd", + "sm_private_random_address_generation_get_mode": "0x00022bc5", + "sm_private_random_address_generation_set_mode": "0x00022bd1", + "sm_private_random_address_generation_set_update_period": "0x00022bf9", + "sm_register_external_ltk_callback": "0x00022d35", + "sm_register_oob_data_callback": "0x00022d41", + "sm_request_pairing": "0x00022d4d", + "sm_send_security_request": "0x00023823", + "sm_set_accepted_stk_generation_methods": "0x00023849", + "sm_set_authentication_requirements": "0x00023855", + "sm_set_encryption_key_size_range": "0x00023861", + "sscanf_bd_addr": "0x00023c31", + "sysSetPublicDeviceAddr": "0x00023fe5", + "uuid128_to_str": "0x00024619", + "uuid_add_bluetooth_prefix": "0x00024671", + "uuid_has_bluetooth_prefix": "0x00024691", + "uxListRemove": "0x000246ad", + "uxQueueMessagesWaiting": "0x000246d5", + "uxQueueMessagesWaitingFromISR": "0x000246fd", + "uxQueueSpacesAvailable": "0x00024719", + "uxTaskGetStackHighWaterMark": "0x00024745", + "uxTaskPriorityGet": "0x00024765", + "uxTaskPriorityGetFromISR": "0x00024781", + "vListInitialise": "0x0002483b", + "vListInitialiseItem": "0x00024851", + "vListInsert": "0x00024857", + "vListInsertEnd": "0x00024887", + "vPortEndScheduler": "0x000248a1", + "vPortEnterCritical": "0x000248cd", + "vPortExitCritical": "0x00024911", + "vPortFree": "0x00024945", + "vPortSuppressTicksAndSleep": "0x000249d9", + "vPortValidateInterruptPriority": "0x00024b01", + "vQueueDelete": "0x00024b5d", + "vQueueWaitForMessageRestricted": "0x00024b89", + "vTaskDelay": "0x00024bd1", + "vTaskInternalSetTimeOutState": "0x00024c1d", + "vTaskMissedYield": "0x00024c2d", + "vTaskPlaceOnEventList": "0x00024c39", + "vTaskPlaceOnEventListRestricted": "0x00024c71", + "vTaskPriorityDisinheritAfterTimeout": "0x00024cb1", + "vTaskPrioritySet": "0x00024d5d", + "vTaskResume": "0x00024e25", + "vTaskStartScheduler": "0x00024ea9", + "vTaskStepTick": "0x00024f39", + "vTaskSuspend": "0x00024f69", + "vTaskSuspendAll": "0x00025025", + "vTaskSwitchContext": "0x00025035", + "xPortStartScheduler": "0x000250dd", + "xQueueAddToSet": "0x000251a5", + "xQueueCreateCountingSemaphore": "0x000251c9", + "xQueueCreateCountingSemaphoreStatic": "0x00025205", + "xQueueCreateMutex": "0x00025249", + "xQueueCreateMutexStatic": "0x0002525f", + "xQueueCreateSet": "0x00025279", + "xQueueGenericCreate": "0x00025281", + "xQueueGenericCreateStatic": "0x000252cd", + "xQueueGenericReset": "0x00025335", + "xQueueGenericSend": "0x000253c1", + "xQueueGenericSendFromISR": "0x0002552d", + "xQueueGiveFromISR": "0x000255ed", + "xQueueGiveMutexRecursive": "0x00025691", + "xQueueIsQueueEmptyFromISR": "0x000256d1", + "xQueueIsQueueFullFromISR": "0x000256f5", + "xQueuePeek": "0x0002571d", + "xQueuePeekFromISR": "0x00025845", + "xQueueReceive": "0x000258b1", + "xQueueReceiveFromISR": "0x000259dd", + "xQueueRemoveFromSet": "0x00025a71", + "xQueueSelectFromSet": "0x00025a93", + "xQueueSelectFromSetFromISR": "0x00025aa5", + "xQueueSemaphoreTake": "0x00025ab9", + "xQueueTakeMutexRecursive": "0x00025c25", + "xTaskCheckForTimeOut": "0x00025c69", + "xTaskCreate": "0x00025cd9", + "xTaskCreateStatic": "0x00025d35", + "xTaskGetCurrentTaskHandle": "0x00025da5", + "xTaskGetSchedulerState": "0x00025db1", + "xTaskGetTickCount": "0x00025dcd", + "xTaskGetTickCountFromISR": "0x00025dd9", + "xTaskIncrementTick": "0x00025de9", + "xTaskPriorityDisinherit": "0x00025eb5", + "xTaskPriorityInherit": "0x00025f49", + "xTaskRemoveFromEventList": "0x00025fdd", + "xTaskResumeAll": "0x0002605d", + "xTaskResumeFromISR": "0x00026125", + "xTimerCreate": "0x000261b1", + "xTimerCreateStatic": "0x000261e5", + "xTimerCreateTimerTask": "0x0002621d", + "xTimerGenericCommand": "0x00026289", + "xTimerGetExpiryTime": "0x000262f9", + "xTimerGetTimerDaemonTaskHandle": "0x00026319" } \ No newline at end of file diff --git a/bundles/exp/ING9187xx/meta.json b/bundles/exp/ING9187xx/meta.json index 18acb5d35..5dcccf883 100644 --- a/bundles/exp/ING9187xx/meta.json +++ b/bundles/exp/ING9187xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 147176 + "size": 147152 }, "version": [ 1, 9, - 39 + 40 ] } \ No newline at end of file diff --git a/bundles/exp/ING9187xx/platform.bin b/bundles/exp/ING9187xx/platform.bin index 7e1737c71842f51e9bace0d7060e49c4991134af..ace1c546e5e26ba2730c002356774b830322aa72 100644 GIT binary patch delta 8918 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 KWgk68b*KQ-$Gin)M)K(kORq4bHF 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 XiwNQp1|$qh@Q-k*6WER?Xwv@&xCV%Y diff --git a/bundles/exp/ING9188xx/apis.json b/bundles/exp/ING9188xx/apis.json index 199807f89..1b5e46f06 100644 --- a/bundles/exp/ING9188xx/apis.json +++ b/bundles/exp/ING9188xx/apis.json @@ -287,98 +287,98 @@ "sm_config_conn": "0x0002349d", "sm_encryption_key_size": "0x00023653", "sm_just_works_confirm": "0x00023bd9", - "sm_le_device_key": "0x00023f25", - "sm_passkey_input": "0x00023fbb", - "sm_private_random_address_generation_get": "0x00024375", - "sm_private_random_address_generation_get_mode": "0x0002437d", - "sm_private_random_address_generation_set_mode": "0x00024389", - "sm_private_random_address_generation_set_update_period": "0x000243b1", - "sm_register_external_ltk_callback": "0x000244ed", - "sm_register_oob_data_callback": "0x000244f9", - "sm_request_pairing": "0x00024505", - "sm_send_security_request": "0x00024fdb", - "sm_set_accepted_stk_generation_methods": "0x00025001", - "sm_set_authentication_requirements": "0x0002500d", - "sm_set_encryption_key_size_range": "0x00025019", - "sscanf_bd_addr": "0x000253e9", - "sysSetPublicDeviceAddr": "0x0002579d", - "uuid128_to_str": "0x00025f65", - "uuid_add_bluetooth_prefix": "0x00025fbd", - "uuid_has_bluetooth_prefix": "0x00025fdd", - "uxListRemove": "0x00025ff9", - "uxQueueMessagesWaiting": "0x00026021", - "uxQueueMessagesWaitingFromISR": "0x00026049", - "uxQueueSpacesAvailable": "0x00026065", - "uxTaskGetStackHighWaterMark": "0x00026091", - "uxTaskPriorityGet": "0x000260b1", - "uxTaskPriorityGetFromISR": "0x000260cd", - "vListInitialise": "0x00026187", - "vListInitialiseItem": "0x0002619d", - "vListInsert": "0x000261a3", - "vListInsertEnd": "0x000261d3", - "vPortEndScheduler": "0x000261ed", - "vPortEnterCritical": "0x00026219", - "vPortExitCritical": "0x0002625d", - "vPortFree": "0x00026291", - "vPortSuppressTicksAndSleep": "0x00026325", - "vPortValidateInterruptPriority": "0x0002644d", - "vQueueDelete": "0x000264a9", - "vQueueWaitForMessageRestricted": "0x000264d5", - "vTaskDelay": "0x0002651d", - "vTaskInternalSetTimeOutState": "0x00026569", - "vTaskMissedYield": "0x00026579", - "vTaskPlaceOnEventList": "0x00026585", - "vTaskPlaceOnEventListRestricted": "0x000265bd", - "vTaskPriorityDisinheritAfterTimeout": "0x000265fd", - "vTaskPrioritySet": "0x000266a9", - "vTaskResume": "0x00026771", - "vTaskStartScheduler": "0x000267f5", - "vTaskStepTick": "0x00026885", - "vTaskSuspend": "0x000268b5", - "vTaskSuspendAll": "0x00026971", - "vTaskSwitchContext": "0x00026981", - "xPortStartScheduler": "0x00026a29", - "xQueueAddToSet": "0x00026af1", - "xQueueCreateCountingSemaphore": "0x00026b15", - "xQueueCreateCountingSemaphoreStatic": "0x00026b51", - "xQueueCreateMutex": "0x00026b95", - "xQueueCreateMutexStatic": "0x00026bab", - "xQueueCreateSet": "0x00026bc5", - "xQueueGenericCreate": "0x00026bcd", - "xQueueGenericCreateStatic": "0x00026c19", - "xQueueGenericReset": "0x00026c81", - "xQueueGenericSend": "0x00026d0d", - "xQueueGenericSendFromISR": "0x00026e79", - "xQueueGiveFromISR": "0x00026f39", - "xQueueGiveMutexRecursive": "0x00026fdd", - "xQueueIsQueueEmptyFromISR": "0x0002701d", - "xQueueIsQueueFullFromISR": "0x00027041", - "xQueuePeek": "0x00027069", - "xQueuePeekFromISR": "0x00027191", - "xQueueReceive": "0x000271fd", - "xQueueReceiveFromISR": "0x00027329", - "xQueueRemoveFromSet": "0x000273bd", - "xQueueSelectFromSet": "0x000273df", - "xQueueSelectFromSetFromISR": "0x000273f1", - "xQueueSemaphoreTake": "0x00027405", - "xQueueTakeMutexRecursive": "0x00027571", - "xTaskCheckForTimeOut": "0x000275b5", - "xTaskCreate": "0x00027625", - "xTaskCreateStatic": "0x00027681", - "xTaskGetCurrentTaskHandle": "0x000276f1", - "xTaskGetSchedulerState": "0x000276fd", - "xTaskGetTickCount": "0x00027719", - "xTaskGetTickCountFromISR": "0x00027725", - "xTaskIncrementTick": "0x00027735", - "xTaskPriorityDisinherit": "0x00027801", - "xTaskPriorityInherit": "0x00027895", - "xTaskRemoveFromEventList": "0x00027929", - "xTaskResumeAll": "0x000279a9", - "xTaskResumeFromISR": "0x00027a71", - "xTimerCreate": "0x00027afd", - "xTimerCreateStatic": "0x00027b31", - "xTimerCreateTimerTask": "0x00027b69", - "xTimerGenericCommand": "0x00027bd5", - "xTimerGetExpiryTime": "0x00027c45", - "xTimerGetTimerDaemonTaskHandle": "0x00027c65" + "sm_le_device_key": "0x00023f11", + "sm_passkey_input": "0x00023fa7", + "sm_private_random_address_generation_get": "0x00024361", + "sm_private_random_address_generation_get_mode": "0x00024369", + "sm_private_random_address_generation_set_mode": "0x00024375", + "sm_private_random_address_generation_set_update_period": "0x0002439d", + "sm_register_external_ltk_callback": "0x000244d9", + "sm_register_oob_data_callback": "0x000244e5", + "sm_request_pairing": "0x000244f1", + "sm_send_security_request": "0x00024fc7", + "sm_set_accepted_stk_generation_methods": "0x00024fed", + "sm_set_authentication_requirements": "0x00024ff9", + "sm_set_encryption_key_size_range": "0x00025005", + "sscanf_bd_addr": "0x000253d5", + "sysSetPublicDeviceAddr": "0x00025789", + "uuid128_to_str": "0x00025f51", + "uuid_add_bluetooth_prefix": "0x00025fa9", + "uuid_has_bluetooth_prefix": "0x00025fc9", + "uxListRemove": "0x00025fe5", + "uxQueueMessagesWaiting": "0x0002600d", + "uxQueueMessagesWaitingFromISR": "0x00026035", + "uxQueueSpacesAvailable": "0x00026051", + "uxTaskGetStackHighWaterMark": "0x0002607d", + "uxTaskPriorityGet": "0x0002609d", + "uxTaskPriorityGetFromISR": "0x000260b9", + "vListInitialise": "0x00026173", + "vListInitialiseItem": "0x00026189", + "vListInsert": "0x0002618f", + "vListInsertEnd": "0x000261bf", + "vPortEndScheduler": "0x000261d9", + "vPortEnterCritical": "0x00026205", + "vPortExitCritical": "0x00026249", + "vPortFree": "0x0002627d", + "vPortSuppressTicksAndSleep": "0x00026311", + "vPortValidateInterruptPriority": "0x00026439", + "vQueueDelete": "0x00026495", + "vQueueWaitForMessageRestricted": "0x000264c1", + "vTaskDelay": "0x00026509", + "vTaskInternalSetTimeOutState": "0x00026555", + "vTaskMissedYield": "0x00026565", + "vTaskPlaceOnEventList": "0x00026571", + "vTaskPlaceOnEventListRestricted": "0x000265a9", + "vTaskPriorityDisinheritAfterTimeout": "0x000265e9", + "vTaskPrioritySet": "0x00026695", + "vTaskResume": "0x0002675d", + "vTaskStartScheduler": "0x000267e1", + "vTaskStepTick": "0x00026871", + "vTaskSuspend": "0x000268a1", + "vTaskSuspendAll": "0x0002695d", + "vTaskSwitchContext": "0x0002696d", + "xPortStartScheduler": "0x00026a15", + "xQueueAddToSet": "0x00026add", + "xQueueCreateCountingSemaphore": "0x00026b01", + "xQueueCreateCountingSemaphoreStatic": "0x00026b3d", + "xQueueCreateMutex": "0x00026b81", + "xQueueCreateMutexStatic": "0x00026b97", + "xQueueCreateSet": "0x00026bb1", + "xQueueGenericCreate": "0x00026bb9", + "xQueueGenericCreateStatic": "0x00026c05", + "xQueueGenericReset": "0x00026c6d", + "xQueueGenericSend": "0x00026cf9", + "xQueueGenericSendFromISR": "0x00026e65", + "xQueueGiveFromISR": "0x00026f25", + "xQueueGiveMutexRecursive": "0x00026fc9", + "xQueueIsQueueEmptyFromISR": "0x00027009", + "xQueueIsQueueFullFromISR": "0x0002702d", + "xQueuePeek": "0x00027055", + "xQueuePeekFromISR": "0x0002717d", + "xQueueReceive": "0x000271e9", + "xQueueReceiveFromISR": "0x00027315", + "xQueueRemoveFromSet": "0x000273a9", + "xQueueSelectFromSet": "0x000273cb", + "xQueueSelectFromSetFromISR": "0x000273dd", + "xQueueSemaphoreTake": "0x000273f1", + "xQueueTakeMutexRecursive": "0x0002755d", + "xTaskCheckForTimeOut": "0x000275a1", + "xTaskCreate": "0x00027611", + "xTaskCreateStatic": "0x0002766d", + "xTaskGetCurrentTaskHandle": "0x000276dd", + "xTaskGetSchedulerState": "0x000276e9", + "xTaskGetTickCount": "0x00027705", + "xTaskGetTickCountFromISR": "0x00027711", + "xTaskIncrementTick": "0x00027721", + "xTaskPriorityDisinherit": "0x000277ed", + "xTaskPriorityInherit": "0x00027881", + "xTaskRemoveFromEventList": "0x00027915", + "xTaskResumeAll": "0x00027995", + "xTaskResumeFromISR": "0x00027a5d", + "xTimerCreate": "0x00027ae9", + "xTimerCreateStatic": "0x00027b1d", + "xTimerCreateTimerTask": "0x00027b55", + "xTimerGenericCommand": "0x00027bc1", + "xTimerGetExpiryTime": "0x00027c31", + "xTimerGetTimerDaemonTaskHandle": "0x00027c51" } \ No newline at end of file diff --git a/bundles/exp/ING9188xx/meta.json b/bundles/exp/ING9188xx/meta.json index e0d28ee40..578480b2d 100644 --- a/bundles/exp/ING9188xx/meta.json +++ b/bundles/exp/ING9188xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 154084 + "size": 154060 }, "version": [ 1, 9, - 39 + 40 ] } \ No newline at end of file diff --git a/bundles/exp/ING9188xx/platform.bin b/bundles/exp/ING9188xx/platform.bin index 0c28b14e668ec30461a3a5316f9d28b7bb911cf6..f392b3d9a6e05d7d33c0c7b07d7345e48a3fe7e5 100644 GIT binary patch delta 9524 zcmY*f3tSXO((me>eehUWL_`E+79=hr0)h(SV-Z~zQISOBD~S*_E+Ps(5)FDl)QFdO z0Y}q%d59Nt(HJk_iYpRA%;PSJ$sHt`=ousU2>KZ>18Qbp?0z+i=5q7guZM z>gw)Uu3P=Svij9p!BBVNFW_&T51Z7=Ir}Lov!2(K!iYh35Wnl=HxdIf>)7xdfL!aAp&?3GX040PQ-GiKa*PY0(0XzB zbkM%w*0hq?p{8&XFFs>Uc%%eit(A=!3)-_zt}|csjw!~LAmO56hyG9{C5K+1B)y44 z+Ls<`!uDiROJYG^SgaSLh3fdIY@LJfg++u8w^bL`()@eRmp8b2 zdN?zwjWv-NMZI3!Ds;ssz(qkjG9M0EpB(uHjeE*l|Fj~8=z)(G7kE1hbu$L=@s?dT z)r76`~XMu-BTE7zH2-OGc-{JwX_q1LLfhMsHGvrlIQQ?A!^{AD=#Z z?u5AHF&havBowD*!Xe@9w5`hbusuyk9Gj>8VJjun1ZIUevE>J0``Ga*fk=_-5iNwA zLq542ishFd(1Wo2^MkSgpd6O~dxVs6Q}A6r?j7X^$a6@D8Xo~wLdN)r z_(52wIIXqzeMFvS*~MJ0pQXV5?<86{!!osSr=_~EEa#B0Wqhn}0>G!2;j|mIP$1`w zQd-z(U!be5lDW=|Uo-mC2YPfhqaIieG5MSNdtGR@qx}EY+ndEo;i>eY(WDAZ@(KQ+ z`5boP%+=3ByrP5ZtJg+~-w7Wm8gHe~&;1@=?d z|EDgV8X`nZhy{a?H6c$ad-DmQZbHZ`xulp8Vi~ebXUSSd_=mm*^q^)rdJfwoo4D7% zzD3gdrBgJa)*gw=upQeTD!$_sAs2+636H@?!t~5M_*|&V3=5WfKjer-js~GQb1@ti zLMJYUQ$qQ~u;7Wm(~^qE+hz*;Cq{&qp$jxk0VcAWnus3bKwNFdV$*;kC!WWYx^y^Vx|ArVZu;4wvqedY0rtrm-h^)CtRpwHQpC!w_DCvcoKURT>nyKhT&16eI zz_A|A02S}GTF?rLeyp|^^~bOfXUqW|Y7h~((H9I+?Of2hkt>8qGY(BeB!nLrC5(W(M{okuy@Hzm~Hii zm{>ckrAxgK{68IE!L?-FvfKt**>iHV)hw0QY1WEp%sNFYvgO>fVm!Vtub6_#F3Pe4 zWK!`Cd?&7y8wh zTP7=8To(PC5oVted&^|~zAkIS_pb6JOmVH{&kd7h>zZmC(qbZVEhdMgc34baiS%g? z4;B0D!lP>!L9K9X?Q{J~D&I)=WPP*d2er z0Wi^8`gs@!3x(}prGU|D`%0~YXRU2N+zNn`)+0A>Q;fL1w^J0bLHNgicEWgT!7ogK zp1IZgNozXgRlMR)6gM*Q_i&_W*IA*&w03@nSa(sm6mn3r)@+7f4 z!SGIa;fs_6=K&$a&)B}2@cw0l|L((`f68FT2EtKTXi>Y)yJN z%fS#<{Rqs0Q?`FS0zDjzvz2_YfOO+0i0I!dfCWH@FEy( zjgw%!R(lAQPP`>%>1PLuZ`f1@8hdQpXG2#2nz3RL ztW$!SU0MQrVFxQOgfOVE?JR_&G%>DEW#UU3?4bKn9ol|t6Nn00y(NYZ5Qp@sO*c0Y ztn($+TLO_1#EOFP=yJJ^QJ7KRSWsM|8dH>Z7!KNW7`zmWGfe1Kf`@RI;_JiTJ zEgL`&P{s~Ci-SCF`}SGrqcGmqu?a3JVTSE!B}8K!*v?kNB?YwG-q{YHXkfLiaVN$dAcLheKob1KiW(pVzGgxLB;qWeX@GSA zX>9Cq*aU6t{o@cGe%#(K0(ibG*| zh1xxA@<|v4UAB^w@T3B5{Gu7214w6CEl`fpXl;R3T(q|GGZdr*m;SGj(YV%#e6O^2r&SBH_1e=7)&=XzsNDIu*kLSD1AehNpG0Ic{+cnjXQ zY0pBc5>i=KJ7iMHZTmwzqya7kYX_{s*^K=Lodkzi!MD&6Pn`00mi!>uRc#xFXG4F> zn!6fGv;7M>@$~63;EbHevAlDT9s03@-?;oPr(4|Fdb7-!l&dpw;*adDbLj6AEbKf? zhgs~&^N{aXyID@=Dp6of=OGsTdGS0ht&Pla9-}srg?)!1F_6vw4l2}tK85p;Q_C)X z2aWI|d+B?a1n1co-$Qh9Hy-!=ay3nUmM@gbcA_VB#pt}u3;l(0FDR%dP0osArwG#O+Mk#*W>_0=(G|=*mEGLHSUWsy^=~MVFDoXJzE4Tn7 z0`5B%og{YAFr_$wZM^{F;a%2p0aBLq+3l^RA(X7g36Sq5M4ag1#1GuQTTCpe9cohQ zd6P<<=SXke+@v%G`tDnrb}}6HD8*j9$G}mQp6pR~D#aTQZ#8)LA+-kVHG$<_#2}7g z6&KNePqH%?AtUrx7Z~gv4=;M4=Xg#W&4T_7p%80}`#0cpKfw|%K^%-@1(zUP9o$k_ z!ifV|`6cvo2CKUS@rjq5&qfA~{`K2fGbf&R>dk|aIkCeTZ8ji&?Tj){MEt@TVV;Bd z8SB0TW0mbrP7GoCA0RXITjzk8yybAS7JF}V2KstevGN}vBA~^~7q;F^$GEt_*bh() z8yH-M`2lrK9wSMI^q1Mv%kW9We;lIaGm9aL6EE89EyiK>g@yPoEaXH5%lZ+m-oVO# zgz(@wZfbyUIdQU6DgL346DP9Qur+LOTUm~-iN2oO7*qJ^E!;uS&9bUpKSHHnh=c1H zLO4u?#aCbjTw)zpV1HDdoi~-WR^hI#!B3E6D$DG`O(2o&?1IH`hu!Fc$3pdXMJF!;*=8S3NDLfFwxGw@tg8?kyuoF`0GMpY zFxaPSREj%U^;HN{hB%aB1$*NvhW9GgauvgyW3H>1l@_zaYoHH__G&u`ufPixsU2hD zG5nHP(KUF7_Ia59b>P+OF~@P@ewK0_LZ*OMAzt?EaZH=T_2|@ooqVymF&+CX_Ayo2 zONW&nCy94|*k+%G6Cq|P#G4<=JCV{v9^u4QZ0mK%fD+bv9iCGsIR`W=#KA1{2IQ+J zdaf5M#KpF{8;}FAf?fOxlkg+9#oZ7}VT!H%7H;Jb%nEMf9(tCw-9|qRX4h`RF}TR; ze#VV$9J}>1ZjN8E4R;^`H~)ioAQRrQUA_Za3ia&vFBpEcEI@=Q)P34EQ-n7GcC*_( zxPw&Nw7n1jkZ23Pi*6eHrt9g7qCcwZyQG!w8*5u{+VeqlpR&!o2g?99vBvutA78Mp z`*01D_-DVOqJvqE1X*yO?UdmhJ1ZekV6*J76K1pT?NEX_INJeJqSmO3HmtWSU%kF~ zY0>&+eDcP)jlP#ZQIMnTfCK)4sb+-}nxKnCxgZ?(q46#_198mZ!u<0l8}CMqUuFy4 zkcV!1+YNC6vUAIZDQe$aS<244A+vHxJr_ePwAQe3m)(!hBN`sW5nir0OIK~WD*eYr zO?&Ld;Q95P(jD)IjeKW%%|}ZA^H2JEfv=a6fUj4eS9$oB6yQ{uWb|_?YQOHrzMweD z-LGAnYq}*phi9?p+tX|EMWT_V%&g~B{e!b3eGnbG#-)qldai=1$4ojUvkUqB{?0D< zL3riw)%)0kZ1?w-t9sIqEy4A7`?OkqbzRPLYTsExiW<^7p;SUOf zww>@|nPT5Z$GfGPJ_T=Cr`UIx2_DGyE9cJPl2wo`?1~4Ek=t3k7vsvomU}S*yV*`J z#0P!jR5j>Y%W}$^2H?dYgPrl>(dS!s(Ti~sy4R0RfwH~1v=}n?T4^fG-rG$RAb^Dc zEgBf?3gK%zNt?1~9h60SBtI8>5oj`q%m#E#=s%o%r(vb?er>r?v}+smx>)w_e$PO*-I|ljJq2;COY5oya4% z%Y0?Hx6~Z>N(t<;f~IQUvR5B}+x~Z5biGR|VNo27!??}n(DnoDIgakdm7!JAZ1|ZK zDCt=6upLU82&Y+-k`|y()hfCW-e*NBnwvk>dsW))s$WTBznoEQ(j|v<_DNrQiT-o* zHEEh%-GDh}>nG-7lR4QVJ?`$4KJb#*kCF3Z)O3;eKiwag&By&IcHtopM#!(>dpDsgtQ_tf(cJ0XhbJrZ-K<8u3xy|aRE zB)oo;COfTtS|_jrYU)?n<5rtURF`DKeK%v{9@Ng}Oy790qGqb9V|%VDW_C(?)D>yF zr>3#KVqasm8IH_G8^3YY&VVE89)EJJ{mM21Px6KyXoW``5Kk}rgYn` z?;ODo>y!g&A=|E@)5Bl46GLN%^QRMz;pCQsFr<0UQwSt7PHCTjE?3h0dlhdw0hD-#z>yJ^jhm8oJNf=J^1E@YX$g|xZ zSQTHRdiN5_pJxAO_gF(_d(aQbh70Xu&>gBHT#rEdBv+rz^9}NhvD26vUFn9|?Gp{Q z-`a1pGXXRdBH8x=G&+2^H$xfaKiTB?W1Y=oA^hQH)6 zpqK92xt_Ox9`2Kd^~H4>YHmop+#JQKw3LI@Y`d1GXnS2Jf1+s0m&7Ce%sxRO`ipK^ z#{_$*hd_~&Llmjpsonq4m;F5fml?3BA;+DE}zyQ%Mg~Qql+Pny`!Tk@C>`CqmA${_EIqBfmo&=h>p3- z3I@{D%$HnxlL5Wf;)*e8a^=z~S59y8qsHE99IQ*)?=s*auFTjaJ<}pzvO*uFgy3d^yed=rMwhgU!61x0Gs_)BCCrgoq4ZkxS#Q=%zQicst?eL0ZIr({5U&4P^#NY$bxl{K6?U(5 z+aud@1+(kraJnPOfSXT0J7;uBW)IBx_!fb(9QhkjWz!&2zznTPWm11B|GaPoqeU1> z^@*A-)b|l7x=AyG`>nCvuGpiT3AJ48GK=C}KfT3NpA+3Wh;{wK9s`U`lBuKE!U(kC8FnCohQl=09D$KxVpk$?tn>$Cl{JN$2ADXLOZunFIIQaU z_Nkh0c+8P`9{GG;W+eJ9sfi^P|QaaZ5kAjZ@(`;oVYR-wSvI=1p$tC?2UYu%BDXLK=5_J1M|&y}LA0lh}I+$H7_} zN@?k#LAs9q`Y5dXclP&s_km8CYKOpc9D+!jnOoBL)?H+~s$Bs$xhPcl!m>;GjsE#j>Jlao+2m0S(lQ zcS)kd&y?*Y@@5=pQkw9zll!BT?~K7E)$iF(>D+1J`;-}oZ6xYPX%imW<$I{_K1w)t zKbmG>CQ9Pzh^UdS`Vw7h`G(~imXBVFamNv^!`S;;xeE96NVblr&2WV!>aoLGwn9&% zppk9Y(@pR=^XhSHPh;6JG#;W^X$+kbk z`Zb;m3Wj5ZMX~bX7)wEH*Kq9aWVYe7C~iv|T8A10w`4r$AOHom+KCwDB)EIH zB#BLmqw~XGvTMv>;Y~wQ@C&V{-*nKsq&9Xe4%6&v_OCe9^#HpQhZ@Xc!H-~!PGI97 zp*!GL*7gW(!?ajA0@Hpl+dG0D#gvj|z=M<8%ic85^-=%l_DX+o8!X$V>N+gN8ygKi zZLSv$sCP;qvZQ!i>RVW2Jf2^^VF4pCkBnlEjii|a2Y3osat5y5*qam_guE&bs~<^6 z;pOh@k#v60Cw=ctF{?*{4pVh z)CQY?Ct?y_`CQVAtSx~?YoF={1G>6?zz?HO`DM!&n?Zm#}&H48Zl*{9f zV^c=a(1?V-nLMeT*$DhLyNP6*#+c$U8p$3P9%9#wLVsyl-6*aX6B2Kw!qPnBA1bk-Q)tiy_H#ZT_xs#i@eKOy#`fQ{fVoMY0*syxC)1>ngI)hs%h!CZ!i_(!sUF>i&jRc8(mP|KfuW}GE z&CTPd!-HO8IDz+&v)xYVHE&HL*E5`O`@K>Ke!6f;3y_b;)7)FXbIlugq;g4lY)cA_ zi{9oO*UYa4FDsM_wS^{J{vRn5M6+Ql4l zuSyo0N=Jm+9KZLAyC@vx9%BWmxbEI$&!y70VzHMmto9bur4{tX9x;JYeid)6L9ZQ#|#Cw$_vVAV^l!kjbG6?O7Te{6&K)$|3jrgnSjyzlr z1*Qckf3|Oe_Os$~G*yR-SC-W~TdzY|#LnIuM;}oS_OTSPi{t1kAqTyMB?n82mew!j zR~jSvr=8MCRxzF)2r_%?p6L5uL@ zp`SpDq6T?9(p5Ll|8h5Yd)3|Gnup6mHv46EU;@AgUEgsd+vUA}f5rg40dn|3si;ZA7_E6>DO{sVhI6Vvq*>~1DqB4?|KR38=5 zS7?!Ulqx(v{J!s5CEnj`#%PM~F`%oq1e4Z>JzhI#P311>cBgzlO4#RMOXZijCpL>8C5f35XrU&)s5oHCpApVH>2gJ*W zPa%Gf7{{}o$7wjT8R-z}1zU%a;+IU>geZ;>C!!*d_@2#(ZmcT@_0yFofw1#aX>_F* z$pf(}V+bNe#RehzBZeZ%Vg^6JFhniVhak#NIFFkk)`ubvMvOp|`FTWHP7Go=VlrYM z(o+y+4~;>LLi$*qRQd)UhlE%pj7RK6hV%!RfhbSiM8r#olOEt?#8l*;f_N9{Mnst} z3sD|mDq=deXCqERoQ9ZNxN(hC2AzS zj(CEdpG)(UX?sxsi<^f>>qu5G4{waqY{m2Fct!ABhBJlC51&=6aRIgFm!V$x@C$G< zPv_#lnP45u{HJAj#h6713>x|_{-Dl9>9)~<-hswJv-Z=WL%Bg$_R*m;HH-3e@!X=> U+@ik7_~G$^i+*Ibg*5U10n4x&*8l(j delta 9449 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 diff --git a/bundles/exp/inc/bluetooth.h b/bundles/exp/inc/bluetooth.h index 9839e3d8e..a7d216362 100644 --- a/bundles/exp/inc/bluetooth.h +++ b/bundles/exp/inc/bluetooth.h @@ -152,8 +152,13 @@ typedef enum { #define ERROR_CODE_CONNECTION_FAILED_TO_BE_ESTABLISHED 0x3E #define ERROR_CODE_MAC_CONNECTION_FAILED 0x3F #define ERROR_CODE_COARSE_CLOCK_ADJUSTMENT_REJECTED_BUT_WILL_TRY_TO_ADJUST_USING_CLOCK_DRAGGING 0x40 -#define ERROR_CODE_UNKNOWN_ADVERTISING_IDENTIFIER 0x42 -#define ERROR_CODE_LIMIT_REACHED 0x43 +#define ERROR_CODE_UNKNOWN_ADVERTISING_IDENTIFIER 0x42 +#define ERROR_CODE_LIMIT_REACHED 0x43 +#define ERROR_CODE_OP_CANCELLED_BY_HOST 0x44 +#define ERROR_CODE_PACKET_TOO_LONG 0x45 +#define ERROR_CODE_TOO_LATE 0x46 +#define ERROR_CODE_TOO_EARLY 0x47 + // HCI roles #define HCI_ROLE_MASTER 0 #define HCI_ROLE_SLAVE 1 @@ -508,6 +513,12 @@ typedef enum { #define HCI_SUBEVENT_LE_TRANSMIT_POWER_REPORTING 0x21 #define HCI_SUBEVENT_LE_BIGINFO_ADV_REPORT 0x22 #define HCI_SUBEVENT_LE_SUBRATE_CHANGE 0x23 +#define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHED_V2 0x24 +#define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_REPORT_V2 0x25 +#define HCI_SUBEVENT_LE_PRD_ADV_SYNC_TRANSFER_RCVD_V2 0x26 +#define HCI_SUBEVENT_PRD_ADV_SUBEVT_DATA_REQ 0x27 +#define HCI_SUBEVENT_PRD_ADV_RSP_REPORT 0x28 +#define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2 0x29 // Vendor specific subevents #define HCI_SUBEVENT_LE_VENDOR_CHANNEL_MAP_UPDATE 0xFE @@ -686,7 +697,10 @@ typedef enum { SM_CODE_IDENTITY_INFORMATION, SM_CODE_IDENTITY_ADDRESS_INFORMATION, SM_CODE_SIGNING_INFORMATION, - SM_CODE_SECURITY_REQUEST + SM_CODE_SECURITY_REQUEST, + SM_CODE_PAIRING_PUBLIC_KEY, + SM_CODE_PAIRING_DHKEY_CHECK, + SM_CODE_PAIRING_KEYPRESS_NOTIFICATION } SECURITY_MANAGER_COMMANDS; // IO Capability Values @@ -703,6 +717,7 @@ typedef enum { #define SM_AUTHREQ_NO_BONDING 0x00 #define SM_AUTHREQ_BONDING 0x01 #define SM_AUTHREQ_MITM_PROTECTION 0x04 +#define SM_AUTHREQ_SC 0x08 // Key distribution flags used by spec #define SM_KEYDIST_ENC_KEY 0X01 @@ -720,6 +735,7 @@ typedef enum { #define SM_STK_GENERATION_METHOD_JUST_WORKS 0x01 #define SM_STK_GENERATION_METHOD_OOB 0x02 #define SM_STK_GENERATION_METHOD_PASSKEY 0x04 +#define SM_STK_GENERATION_METHOD_NUM_COMPARISON 0x08 // Pairing Failed Reasons #define SM_REASON_RESERVED 0x00 @@ -732,6 +748,11 @@ typedef enum { #define SM_REASON_COMMAND_NOT_SUPPORTED 0x07 #define SM_REASON_UNSPECIFIED_REASON 0x08 #define SM_REASON_REPEATED_ATTEMPTS 0x09 +#define SM_REASON_REPEATED_ATTEMPTS 0x09 +#define SM_REASON_INVALID_PARAMETERS 0x0a +#define SM_REASON_DHKEY_CHECK_FAILED 0x0b +#define SM_REASON_NUMERIC_COMPARISON_FAILED 0x0c +#define SM_REASON_KEY_REJECTED_FAILED 0x0f // also, invalid parameters // and reserved diff --git a/bundles/exp/inc/gap.h b/bundles/exp/inc/gap.h index 7d2699db2..eebe6c30b 100644 --- a/bundles/exp/inc/gap.h +++ b/bundles/exp/inc/gap.h @@ -183,7 +183,7 @@ typedef enum typedef uint8_t adv_event_properties_t; -#define PERIODIC_ADV_BIT_INC_TX BIT(6) +#define PERIODIC_ADV_BIT_INC_TX BIT(ADV_INC_TX_POWER) typedef uint8_t periodic_adv_properties_t; /** @@ -1408,11 +1408,11 @@ uint8_t gap_test_end(void); typedef struct { - uint8_t subevent; // The subevent index of the data contained in this command. Range: 0x00 to 0x7F - uint8_t rsp_slot_start; // The first response slots to be used in this subevent - uint8_t rsp_slot_count; // The number of response slots to be used. - uint8_t data_len; // The number of octets in the `data`. [0..251] - uint8_t data[0]; // Advertising data + uint8_t subevent; // The subevent index of the data contained in this command. Range: 0x00 to 0x7F + uint8_t rsp_slot_start; // The first response slots to be used in this subevent + uint8_t rsp_slot_count; // The number of response slots to be used. + uint8_t data_len; // The number of octets in the `data`. [0..251] + const uint8_t * data; // Advertising data } gap_prd_adv_subevent_data_t; #pragma pack (pop) @@ -1448,7 +1448,7 @@ uint8_t gap_set_periodic_adv_subevent_data(uint8_t adv_handle, * @return 0: Message is sent out; Other: Message is not sent out */ uint8_t gap_set_periodic_adv_rsp_data(uint16_t sync_handle, - uint8_t request_event, + uint16_t request_event, uint8_t request_subevent, uint8_t rsp_subevent, uint8_t rsp_slot, @@ -1460,7 +1460,7 @@ uint8_t gap_set_periodic_adv_rsp_data(uint16_t sync_handle, * * @param[in] sync_handle Identify the PAwR train. Range: 0x0000 to 0x0EFF * @param[in] periodic_adv_properties Properties (bit combination of \ref `adv_event_property_t`). - * Only 0 or (1 << ADV_INC_TX_POWER) is allowed. + * Only 0 or PERIODIC_ADV_BIT_INC_TX is allowed. * @param[in] num_subevents Number of subevents. Range: 0x01 to 0x80 * @param[in] subevents Each subevent to synchronize with. Range 0x00 to 0x7F * @return 0: Message is sent out; Other: Message is not sent out diff --git a/bundles/exp/inc/platform_api.h b/bundles/exp/inc/platform_api.h index f670fd75a..7f945d7bb 100644 --- a/bundles/exp/inc/platform_api.h +++ b/bundles/exp/inc/platform_api.h @@ -458,6 +458,9 @@ typedef enum PLATFORM_CFG_PS_DBG_3, PLATFORM_CFG_PS_DBG_4, // Debugging parameters for ING916. Default (0) // Bit [0]: `platform_shutdown` uses DEEPER SLEEP (1) or SLEEP (0) + PLATFORM_CFG_FAST_DEEP_SLEEP_TIME_REDUCTION, // sleep time reduction (fast deep sleep mode) in us. + // Requirement: < PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION + // Only available for ING916 (default: ~2000us) } platform_cfg_item_t; typedef enum diff --git a/bundles/extension/ING9168xx/apis.json b/bundles/extension/ING9168xx/apis.json index 0dcabb5af..1252aaa98 100644 --- a/bundles/extension/ING9168xx/apis.json +++ b/bundles/extension/ING9168xx/apis.json @@ -282,98 +282,98 @@ "sm_config_conn": "0x020229d5", "sm_encryption_key_size": "0x02022b8b", "sm_just_works_confirm": "0x02023111", - "sm_le_device_key": "0x0202345d", - "sm_passkey_input": "0x020234f3", - "sm_private_random_address_generation_get": "0x020238ad", - "sm_private_random_address_generation_get_mode": "0x020238b5", - "sm_private_random_address_generation_set_mode": "0x020238c1", - "sm_private_random_address_generation_set_update_period": "0x020238e9", - "sm_register_external_ltk_callback": "0x02023a25", - "sm_register_oob_data_callback": "0x02023a31", - "sm_request_pairing": "0x02023a3d", - "sm_send_security_request": "0x02024513", - "sm_set_accepted_stk_generation_methods": "0x02024539", - "sm_set_authentication_requirements": "0x02024545", - "sm_set_encryption_key_size_range": "0x02024551", - "sscanf_bd_addr": "0x02024929", - "sysSetPublicDeviceAddr": "0x02024dd9", - "uuid128_to_str": "0x02025621", - "uuid_add_bluetooth_prefix": "0x02025679", - "uuid_has_bluetooth_prefix": "0x02025699", - "uxListRemove": "0x020256b5", - "uxQueueMessagesWaiting": "0x020256dd", - "uxQueueMessagesWaitingFromISR": "0x02025705", - "uxQueueSpacesAvailable": "0x02025721", - "uxTaskGetStackHighWaterMark": "0x0202574d", - "uxTaskPriorityGet": "0x0202576d", - "uxTaskPriorityGetFromISR": "0x02025789", - "vListInitialise": "0x02025847", - "vListInitialiseItem": "0x0202585d", - "vListInsert": "0x02025863", - "vListInsertEnd": "0x02025893", - "vPortEndScheduler": "0x020258ad", - "vPortEnterCritical": "0x020258d9", - "vPortExitCritical": "0x0202591d", - "vPortFree": "0x02025951", - "vPortSuppressTicksAndSleep": "0x020259f5", - "vPortValidateInterruptPriority": "0x02025b1d", - "vQueueDelete": "0x02025b79", - "vQueueWaitForMessageRestricted": "0x02025ba5", - "vTaskDelay": "0x02025be9", - "vTaskInternalSetTimeOutState": "0x02025c35", - "vTaskMissedYield": "0x02025c45", - "vTaskPlaceOnEventList": "0x02025c51", - "vTaskPlaceOnEventListRestricted": "0x02025c89", - "vTaskPriorityDisinheritAfterTimeout": "0x02025cc9", - "vTaskPrioritySet": "0x02025d75", - "vTaskResume": "0x02025e3d", - "vTaskStartScheduler": "0x02025ec1", - "vTaskStepTick": "0x02025f51", - "vTaskSuspend": "0x02025f81", - "vTaskSuspendAll": "0x0202603d", - "vTaskSwitchContext": "0x0202604d", - "xPortStartScheduler": "0x020260f5", - "xQueueAddToSet": "0x020261f9", - "xQueueCreateCountingSemaphore": "0x0202621d", - "xQueueCreateCountingSemaphoreStatic": "0x02026259", - "xQueueCreateMutex": "0x0202629d", - "xQueueCreateMutexStatic": "0x020262b3", - "xQueueCreateSet": "0x020262cd", - "xQueueGenericCreate": "0x020262d5", - "xQueueGenericCreateStatic": "0x02026321", - "xQueueGenericReset": "0x02026389", - "xQueueGenericSend": "0x02026415", - "xQueueGenericSendFromISR": "0x02026581", - "xQueueGiveFromISR": "0x02026641", - "xQueueGiveMutexRecursive": "0x020266e5", - "xQueueIsQueueEmptyFromISR": "0x02026725", - "xQueueIsQueueFullFromISR": "0x02026749", - "xQueuePeek": "0x02026771", - "xQueuePeekFromISR": "0x02026899", - "xQueueReceive": "0x02026905", - "xQueueReceiveFromISR": "0x02026a31", - "xQueueRemoveFromSet": "0x02026ac5", - "xQueueSelectFromSet": "0x02026ae7", - "xQueueSelectFromSetFromISR": "0x02026af9", - "xQueueSemaphoreTake": "0x02026b0d", - "xQueueTakeMutexRecursive": "0x02026c79", - "xTaskCheckForTimeOut": "0x02026cbd", - "xTaskCreate": "0x02026d2d", - "xTaskCreateStatic": "0x02026d89", - "xTaskGetCurrentTaskHandle": "0x02026df9", - "xTaskGetSchedulerState": "0x02026e05", - "xTaskGetTickCount": "0x02026e21", - "xTaskGetTickCountFromISR": "0x02026e2d", - "xTaskIncrementTick": "0x02026e3d", - "xTaskPriorityDisinherit": "0x02026f09", - "xTaskPriorityInherit": "0x02026f9d", - "xTaskRemoveFromEventList": "0x02027031", - "xTaskResumeAll": "0x020270b1", - "xTaskResumeFromISR": "0x02027179", - "xTimerCreate": "0x02027205", - "xTimerCreateStatic": "0x02027239", - "xTimerCreateTimerTask": "0x02027271", - "xTimerGenericCommand": "0x020272dd", - "xTimerGetExpiryTime": "0x0202734d", - "xTimerGetTimerDaemonTaskHandle": "0x0202736d" + "sm_le_device_key": "0x02023449", + "sm_passkey_input": "0x020234df", + "sm_private_random_address_generation_get": "0x02023899", + "sm_private_random_address_generation_get_mode": "0x020238a1", + "sm_private_random_address_generation_set_mode": "0x020238ad", + "sm_private_random_address_generation_set_update_period": "0x020238d5", + "sm_register_external_ltk_callback": "0x02023a11", + "sm_register_oob_data_callback": "0x02023a1d", + "sm_request_pairing": "0x02023a29", + "sm_send_security_request": "0x020244ff", + "sm_set_accepted_stk_generation_methods": "0x02024525", + "sm_set_authentication_requirements": "0x02024531", + "sm_set_encryption_key_size_range": "0x0202453d", + "sscanf_bd_addr": "0x02024915", + "sysSetPublicDeviceAddr": "0x02024e41", + "uuid128_to_str": "0x0202569d", + "uuid_add_bluetooth_prefix": "0x020256f5", + "uuid_has_bluetooth_prefix": "0x02025715", + "uxListRemove": "0x02025731", + "uxQueueMessagesWaiting": "0x02025759", + "uxQueueMessagesWaitingFromISR": "0x02025781", + "uxQueueSpacesAvailable": "0x0202579d", + "uxTaskGetStackHighWaterMark": "0x020257c9", + "uxTaskPriorityGet": "0x020257e9", + "uxTaskPriorityGetFromISR": "0x02025805", + "vListInitialise": "0x020258c3", + "vListInitialiseItem": "0x020258d9", + "vListInsert": "0x020258df", + "vListInsertEnd": "0x0202590f", + "vPortEndScheduler": "0x02025929", + "vPortEnterCritical": "0x02025955", + "vPortExitCritical": "0x02025999", + "vPortFree": "0x020259cd", + "vPortSuppressTicksAndSleep": "0x02025a71", + "vPortValidateInterruptPriority": "0x02025b99", + "vQueueDelete": "0x02025bf5", + "vQueueWaitForMessageRestricted": "0x02025c21", + "vTaskDelay": "0x02025c65", + "vTaskInternalSetTimeOutState": "0x02025cb1", + "vTaskMissedYield": "0x02025cc1", + "vTaskPlaceOnEventList": "0x02025ccd", + "vTaskPlaceOnEventListRestricted": "0x02025d05", + "vTaskPriorityDisinheritAfterTimeout": "0x02025d45", + "vTaskPrioritySet": "0x02025df1", + "vTaskResume": "0x02025eb9", + "vTaskStartScheduler": "0x02025f3d", + "vTaskStepTick": "0x02025fcd", + "vTaskSuspend": "0x02025ffd", + "vTaskSuspendAll": "0x020260b9", + "vTaskSwitchContext": "0x020260c9", + "xPortStartScheduler": "0x02026171", + "xQueueAddToSet": "0x02026275", + "xQueueCreateCountingSemaphore": "0x02026299", + "xQueueCreateCountingSemaphoreStatic": "0x020262d5", + "xQueueCreateMutex": "0x02026319", + "xQueueCreateMutexStatic": "0x0202632f", + "xQueueCreateSet": "0x02026349", + "xQueueGenericCreate": "0x02026351", + "xQueueGenericCreateStatic": "0x0202639d", + "xQueueGenericReset": "0x02026405", + "xQueueGenericSend": "0x02026491", + "xQueueGenericSendFromISR": "0x020265fd", + "xQueueGiveFromISR": "0x020266bd", + "xQueueGiveMutexRecursive": "0x02026761", + "xQueueIsQueueEmptyFromISR": "0x020267a1", + "xQueueIsQueueFullFromISR": "0x020267c5", + "xQueuePeek": "0x020267ed", + "xQueuePeekFromISR": "0x02026915", + "xQueueReceive": "0x02026981", + "xQueueReceiveFromISR": "0x02026aad", + "xQueueRemoveFromSet": "0x02026b41", + "xQueueSelectFromSet": "0x02026b63", + "xQueueSelectFromSetFromISR": "0x02026b75", + "xQueueSemaphoreTake": "0x02026b89", + "xQueueTakeMutexRecursive": "0x02026cf5", + "xTaskCheckForTimeOut": "0x02026d39", + "xTaskCreate": "0x02026da9", + "xTaskCreateStatic": "0x02026e05", + "xTaskGetCurrentTaskHandle": "0x02026e75", + "xTaskGetSchedulerState": "0x02026e81", + "xTaskGetTickCount": "0x02026e9d", + "xTaskGetTickCountFromISR": "0x02026ea9", + "xTaskIncrementTick": "0x02026eb9", + "xTaskPriorityDisinherit": "0x02026f85", + "xTaskPriorityInherit": "0x02027019", + "xTaskRemoveFromEventList": "0x020270ad", + "xTaskResumeAll": "0x0202712d", + "xTaskResumeFromISR": "0x020271f5", + "xTimerCreate": "0x02027281", + "xTimerCreateStatic": "0x020272b5", + "xTimerCreateTimerTask": "0x020272ed", + "xTimerGenericCommand": "0x02027359", + "xTimerGetExpiryTime": "0x020273c9", + "xTimerGetTimerDaemonTaskHandle": "0x020273e9" } \ No newline at end of file diff --git a/bundles/extension/ING9168xx/meta.json b/bundles/extension/ING9168xx/meta.json index 8d4e8ba8f..25fa4d6ca 100644 --- a/bundles/extension/ING9168xx/meta.json +++ b/bundles/extension/ING9168xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 33562624, - "size": 161748 + "size": 161868 }, "version": [ 2, - 2, - 53 + 3, + 0 ] } \ No newline at end of file diff --git a/bundles/extension/ING9168xx/platform.bin b/bundles/extension/ING9168xx/platform.bin index 1db61c1461269a77b26972f1b3b8fb1febc4217f..0ddb6b5262dbeb429b3ab972434b72fd8bd9f0d9 100644 GIT binary patch delta 12210 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 delta 12088 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

xS)Ye}Qw?9()=i9RAh^=`@Ej3J95o>%52 zV{q`K#lqL*cpEchx>(%bARRaEaV$EWj_+M8#q)l7P`y#on4h#H^ZvRnVnQBcYtm7J z$?V;9sxwZ$uR(ErPd5{kyPZwS12%@_p zzTLRI^U*X2>qzt^@ghDBpk+69UdNJEEM*wYg!%00VR-y`m~9@0=3!(X4#R*6pExpT z?|B?v7i#P8;Nb*aWH9==R9z81%YC!sWz9IQ5RZDUnsTD=+2knCQmfAqwe~#Wu877C zN4Y^AaK5Hop;tFw7B#NR;w_iF2ri332mkV5_zxU4_ltOl9m}Ar@P%eXCLIfpv+_)u z1SYmClaA3QIdN~SGu#Oe4XJU9aZV;>(m42l^&XB9>g#Oca9T;JlQj*e3I0BDq$I~6 z&8%ZMeFq;&-Wq|UW?+X#&`3YGn0`Rp$VO+3j%9gVvCOm(Jq1~IJfBUVlRxO55pdIc_a2ErC01mI0^bDl0YM$y2_*71%BV&Bx{JG+?_WEINx0 zp#dH?EsLi1oYlcu(oLoqyfAGx+{p}0#jX^v*RyC69ofN-XVIbExsICoRIhBxziVI8 z1FIuCSWq?{*zKw>2>1Cc!H@;!AH`G5lue)LcFOZnw(_Fk&UZRLB>jxpv+?l$!TrL6 zIyDx)%kE{yI#)UU>uI*tf~@V3(}K8rOOc=fN;?P(_!Qhhi&5*1N4 z=ifcFBp3xO^t@fCa{CE+scvzon-!0x5%?gwVJuA{tLe9)>&ZIwO|tcN5{9C$&MjU8eg}Hx|o2V6EfmknmT% zI~JPiXbPUMP?WYg3EhZWe1;7kk8|F_c8te$be5eOk7jY0wT`F#`}c6mn_5?+`FEEr zNkCx%?gQvh{%-b*v=}V)u~9q*TfeeZJkEC`+s4yO-6yUtZJ*4FMUp)(&XU?t)43vw zvU+35`|LK4w}^{bS`J?MJ;fI1V0^^0JvlUp+G11;M&ciO5=*pxQ zakUoVw454RVZ-D{lUQZ{2Eofp*2t0H}xrg3OdUUqUK zjZtTJ4#7tD`$ReI%?oxcD4dI0&o}hp z=D5Tf=9`4K(Iu=hpGJ3^Cc~*M4*TqwmY9bjdeXIQ){^Fh~%4m`3*u=EGa7- zX%4d^lkx71vCsk<7JE{DhUucq>7Pdu2lCtkS>Ad`LfX}AYymCAU2SIphMXta?*%k6 zI;z7fe(BM0x7$P4SG0##Js1&rJeIQfDRlbKzomL|D)|^boUh{bT)@)_!6SIxGn3M2#AA=MP1ER#@><-33phMJ zS}C1^Sd2Io(TF$=aVFw)#D$0tBR+{Z1MyYFnTR71AGx1@6!8G&XCbabd<+r)K}BaH zu0{k8{#g`pFy_sO4{;=sOvXe$7JP(QhFFCdizt66GHk~@gPAmp9hy!fhN`=2sz+D3ibExs|HCx4d?gll$E=KDh^rBMAg)8~i71QdbsxhK zt1usdD1Rb3LSDgq6ymFhy%A-44pEj9hqxUv74c2PG(@?N>4-I$AHtFH&W49#K`j;x zLp*?(aUU}g<-s3`cofS=-N(_0$1y(!@eHB?QKrj6lpDxKJcs3D5icQ*L;MACJfi&J zxh_R>I2@Q;SYgD1TiaOr4Eh?r{GFOXXQ=YcGw{C~mZE&Lv5S@UVXs56*UAeGOD(d1S_fv8BoYC`XBus=Va4poFIU+E%1n$Axj z`>93L=O4Kc|C^2l+y&%L?oa4B%wrlKOah#XHBLb{UrRPa)FnAhV)O1GZ$({6o%((*7L RDEiiPi|6_%20k17{{Se*Xd3_k diff --git a/bundles/extension/ING9187xx/apis.json b/bundles/extension/ING9187xx/apis.json index 592ce373f..4516b187d 100644 --- a/bundles/extension/ING9187xx/apis.json +++ b/bundles/extension/ING9187xx/apis.json @@ -254,98 +254,98 @@ "sm_config_conn": "0x000200b9", "sm_encryption_key_size": "0x0002026f", "sm_just_works_confirm": "0x000207f5", - "sm_le_device_key": "0x00020b41", - "sm_passkey_input": "0x00020bd7", - "sm_private_random_address_generation_get": "0x00020f91", - "sm_private_random_address_generation_get_mode": "0x00020f99", - "sm_private_random_address_generation_set_mode": "0x00020fa5", - "sm_private_random_address_generation_set_update_period": "0x00020fcd", - "sm_register_external_ltk_callback": "0x00021109", - "sm_register_oob_data_callback": "0x00021115", - "sm_request_pairing": "0x00021121", - "sm_send_security_request": "0x00021bf7", - "sm_set_accepted_stk_generation_methods": "0x00021c1d", - "sm_set_authentication_requirements": "0x00021c29", - "sm_set_encryption_key_size_range": "0x00021c35", - "sscanf_bd_addr": "0x00022005", - "sysSetPublicDeviceAddr": "0x000223b9", - "uuid128_to_str": "0x000229c5", - "uuid_add_bluetooth_prefix": "0x00022a1d", - "uuid_has_bluetooth_prefix": "0x00022a3d", - "uxListRemove": "0x00022a59", - "uxQueueMessagesWaiting": "0x00022a81", - "uxQueueMessagesWaitingFromISR": "0x00022aa9", - "uxQueueSpacesAvailable": "0x00022ac5", - "uxTaskGetStackHighWaterMark": "0x00022af1", - "uxTaskPriorityGet": "0x00022b11", - "uxTaskPriorityGetFromISR": "0x00022b2d", - "vListInitialise": "0x00022be7", - "vListInitialiseItem": "0x00022bfd", - "vListInsert": "0x00022c03", - "vListInsertEnd": "0x00022c33", - "vPortEndScheduler": "0x00022c4d", - "vPortEnterCritical": "0x00022c79", - "vPortExitCritical": "0x00022cbd", - "vPortFree": "0x00022cf1", - "vPortSuppressTicksAndSleep": "0x00022d85", - "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": "0x00023551", - "xQueueCreateCountingSemaphore": "0x00023575", - "xQueueCreateCountingSemaphoreStatic": "0x000235b1", - "xQueueCreateMutex": "0x000235f5", - "xQueueCreateMutexStatic": "0x0002360b", - "xQueueCreateSet": "0x00023625", - "xQueueGenericCreate": "0x0002362d", - "xQueueGenericCreateStatic": "0x00023679", - "xQueueGenericReset": "0x000236e1", - "xQueueGenericSend": "0x0002376d", - "xQueueGenericSendFromISR": "0x000238d9", - "xQueueGiveFromISR": "0x00023999", - "xQueueGiveMutexRecursive": "0x00023a3d", - "xQueueIsQueueEmptyFromISR": "0x00023a7d", - "xQueueIsQueueFullFromISR": "0x00023aa1", - "xQueuePeek": "0x00023ac9", - "xQueuePeekFromISR": "0x00023bf1", - "xQueueReceive": "0x00023c5d", - "xQueueReceiveFromISR": "0x00023d89", - "xQueueRemoveFromSet": "0x00023e1d", - "xQueueSelectFromSet": "0x00023e3f", - "xQueueSelectFromSetFromISR": "0x00023e51", - "xQueueSemaphoreTake": "0x00023e65", - "xQueueTakeMutexRecursive": "0x00023fd1", - "xTaskCheckForTimeOut": "0x00024015", - "xTaskCreate": "0x00024085", - "xTaskCreateStatic": "0x000240e1", - "xTaskGetCurrentTaskHandle": "0x00024151", - "xTaskGetSchedulerState": "0x0002415d", - "xTaskGetTickCount": "0x00024179", - "xTaskGetTickCountFromISR": "0x00024185", - "xTaskIncrementTick": "0x00024195", - "xTaskPriorityDisinherit": "0x00024261", - "xTaskPriorityInherit": "0x000242f5", - "xTaskRemoveFromEventList": "0x00024389", - "xTaskResumeAll": "0x00024409", - "xTaskResumeFromISR": "0x000244d1", - "xTimerCreate": "0x0002455d", - "xTimerCreateStatic": "0x00024591", - "xTimerCreateTimerTask": "0x000245c9", - "xTimerGenericCommand": "0x00024635", - "xTimerGetExpiryTime": "0x000246a5", - "xTimerGetTimerDaemonTaskHandle": "0x000246c5" + "sm_le_device_key": "0x00020b2d", + "sm_passkey_input": "0x00020bc3", + "sm_private_random_address_generation_get": "0x00020f7d", + "sm_private_random_address_generation_get_mode": "0x00020f85", + "sm_private_random_address_generation_set_mode": "0x00020f91", + "sm_private_random_address_generation_set_update_period": "0x00020fb9", + "sm_register_external_ltk_callback": "0x000210f5", + "sm_register_oob_data_callback": "0x00021101", + "sm_request_pairing": "0x0002110d", + "sm_send_security_request": "0x00021be3", + "sm_set_accepted_stk_generation_methods": "0x00021c09", + "sm_set_authentication_requirements": "0x00021c15", + "sm_set_encryption_key_size_range": "0x00021c21", + "sscanf_bd_addr": "0x00021ff1", + "sysSetPublicDeviceAddr": "0x000223a5", + "uuid128_to_str": "0x000229b1", + "uuid_add_bluetooth_prefix": "0x00022a09", + "uuid_has_bluetooth_prefix": "0x00022a29", + "uxListRemove": "0x00022a45", + "uxQueueMessagesWaiting": "0x00022a6d", + "uxQueueMessagesWaitingFromISR": "0x00022a95", + "uxQueueSpacesAvailable": "0x00022ab1", + "uxTaskGetStackHighWaterMark": "0x00022add", + "uxTaskPriorityGet": "0x00022afd", + "uxTaskPriorityGetFromISR": "0x00022b19", + "vListInitialise": "0x00022bd3", + "vListInitialiseItem": "0x00022be9", + "vListInsert": "0x00022bef", + "vListInsertEnd": "0x00022c1f", + "vPortEndScheduler": "0x00022c39", + "vPortEnterCritical": "0x00022c65", + "vPortExitCritical": "0x00022ca9", + "vPortFree": "0x00022cdd", + "vPortSuppressTicksAndSleep": "0x00022d71", + "vPortValidateInterruptPriority": "0x00022e99", + "vQueueDelete": "0x00022ef5", + "vQueueWaitForMessageRestricted": "0x00022f21", + "vTaskDelay": "0x00022f69", + "vTaskInternalSetTimeOutState": "0x00022fb5", + "vTaskMissedYield": "0x00022fc5", + "vTaskPlaceOnEventList": "0x00022fd1", + "vTaskPlaceOnEventListRestricted": "0x00023009", + "vTaskPriorityDisinheritAfterTimeout": "0x00023049", + "vTaskPrioritySet": "0x000230f5", + "vTaskResume": "0x000231bd", + "vTaskStartScheduler": "0x00023241", + "vTaskStepTick": "0x000232d1", + "vTaskSuspend": "0x00023301", + "vTaskSuspendAll": "0x000233bd", + "vTaskSwitchContext": "0x000233cd", + "xPortStartScheduler": "0x00023475", + "xQueueAddToSet": "0x0002353d", + "xQueueCreateCountingSemaphore": "0x00023561", + "xQueueCreateCountingSemaphoreStatic": "0x0002359d", + "xQueueCreateMutex": "0x000235e1", + "xQueueCreateMutexStatic": "0x000235f7", + "xQueueCreateSet": "0x00023611", + "xQueueGenericCreate": "0x00023619", + "xQueueGenericCreateStatic": "0x00023665", + "xQueueGenericReset": "0x000236cd", + "xQueueGenericSend": "0x00023759", + "xQueueGenericSendFromISR": "0x000238c5", + "xQueueGiveFromISR": "0x00023985", + "xQueueGiveMutexRecursive": "0x00023a29", + "xQueueIsQueueEmptyFromISR": "0x00023a69", + "xQueueIsQueueFullFromISR": "0x00023a8d", + "xQueuePeek": "0x00023ab5", + "xQueuePeekFromISR": "0x00023bdd", + "xQueueReceive": "0x00023c49", + "xQueueReceiveFromISR": "0x00023d75", + "xQueueRemoveFromSet": "0x00023e09", + "xQueueSelectFromSet": "0x00023e2b", + "xQueueSelectFromSetFromISR": "0x00023e3d", + "xQueueSemaphoreTake": "0x00023e51", + "xQueueTakeMutexRecursive": "0x00023fbd", + "xTaskCheckForTimeOut": "0x00024001", + "xTaskCreate": "0x00024071", + "xTaskCreateStatic": "0x000240cd", + "xTaskGetCurrentTaskHandle": "0x0002413d", + "xTaskGetSchedulerState": "0x00024149", + "xTaskGetTickCount": "0x00024165", + "xTaskGetTickCountFromISR": "0x00024171", + "xTaskIncrementTick": "0x00024181", + "xTaskPriorityDisinherit": "0x0002424d", + "xTaskPriorityInherit": "0x000242e1", + "xTaskRemoveFromEventList": "0x00024375", + "xTaskResumeAll": "0x000243f5", + "xTaskResumeFromISR": "0x000244bd", + "xTimerCreate": "0x00024549", + "xTimerCreateStatic": "0x0002457d", + "xTimerCreateTimerTask": "0x000245b5", + "xTimerGenericCommand": "0x00024621", + "xTimerGetExpiryTime": "0x00024691", + "xTimerGetTimerDaemonTaskHandle": "0x000246b1" } \ No newline at end of file diff --git a/bundles/extension/ING9187xx/meta.json b/bundles/extension/ING9187xx/meta.json index b47ccd903..706ed4640 100644 --- a/bundles/extension/ING9187xx/meta.json +++ b/bundles/extension/ING9187xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 139196 + "size": 139176 }, "version": [ 1, 9, - 39 + 40 ] } \ No newline at end of file diff --git a/bundles/extension/ING9187xx/platform.bin b/bundles/extension/ING9187xx/platform.bin index 4b6fa21a2f2d1e9680b24e4258b0e379ead895e5..c4225a26d704753f1679db894dac8b83fadc5430 100644 GIT binary patch delta 8695 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 delta 8580 zcmY*83tUuH^Jnhf3(I3=S4Blc?t;Yf5dk6z;bT!*7GK0yW~P3Ek6b_!G!wNFe0*YM zVyhj~FU9=(ER%Jmm2{(*Uz(a=YMGkgYr#ieeBHb3>pvH@ukP=+cg~qJGiT1soH=vu z?rcyVYEV{NA$HCFPhf;~JdE?>^ivp;Z?*WBKy0lSgtH#LocOV4NR-CF@e#syZ?ZvW ziWJs%5S^o`)J}-ooE4A|x}?4|n-KOkX;v7C>1z&}`U)G&D*~Kwz+4%)3wU#UP&TNo zbA!eOLWTKg=s{R!UEbqefOA$&uWW#O)(K(VIQZ3C(sz^stk!z13*fZ1E;^^~ z65ZPnW{42_Tm55-0ft!TK9ve8DzVMEg0Fv}p^tFhTo=1S+iN81Kbj$Fbu3bU=w=K! zo3tqzK7Z5(p{)q04ztAzAbjQpe>mni7Y}duZHglUU7kXLK z;|dwo2v5yaMHJBj-$xi?-W%T&-ZTFYuZ2a{w)hBu{bv7!6kK#hLN;_*mnH;op~5JJ z7>DOPm-SNC*cYFRN$OutNH6o2{uz*OzSw^$XF_!a^Nf^Hs`Xe8uD0vJT*Ea=Vje$bo8Xv&PDW5T|Hjw3Tzhgh2C@XA5&GI<;m5R|6rnkLelV zegpZl{YS&sG7ZXMgw}?a|7>4wD8;sH4@S7qP-E5%T%^?_S2shT;Su$R4K;u3zu(Z$ zyl3F3Fj@CrI6^GIGq}RaCo48<(z-ob8Df<){QfO!ukJ) zdAdP~GL>~f2J!)8AX>Dg@S237Np$9wX~mFcevmeelV$Pd$?5MxsktqEV}c2JlKc1n z8=p^{>XZ4BaO}xiR9~Te%$Db7YhL~f_5@Ppo0BtoqBnCg!jsiF#^o@k08^&)O5&2L zcPhZZpnbL>ojh~7Y_ZN27d-N@d0j?!OdlMPtyqRsgRrfvBj!izl6hbC$htgjhC$IV zz#KDZIP5eR4hqMNuzXNGfZIHDNDdq|uN-25P3DZD2cfH39GU}H%$fS7aKw68{~gG~ z!|p(ydBO0FAXr03S)R!a!@&$hR2P5*N|An(VD=eVFi?b>f&3K>0_Q#@aIe5(8D{Z(ey9%B^E2-efg@;~3A7KGvLk z8~o|ss%f%&RZ}A|a1*8u$9LJ(f%x7vbtvxTwy7&XMonLVZ|8J*AbCbKzQ@g&g73N+ zBEI*$IuqZaGnYbl^G7pBVf)(5#ho6`Hy4`Zew`^>vorU}zPk0;=BmP;I2KbFkMF!f zdFRaNY_BP_VLPX2HoohNWPYw#RxhSF@=vvmooeS5%NngLZoqfWtVHzwf?4yi-99TE zY-Ux-L>O%@ERiuSC9?bnC9>AzUdz?UQ6TT~TIr3)+SI)^5faRr*~Rd)^{v@00M+Ix zWs&NN4!yzNDpX=f5W=(B=J(64!}sQSb2h_qYv^3j4?VA1I1Tn&%N7n~;d$$>w}V*N zX{}q*Qwi196Yux~I{eJLxr{p3`qX>tIXGf&Sd)%J&NYKMh%yhP84T;RzD~bVz;D)+ zjSdEWGKX){BE{fM=l#(MVcXBK7zX!tr!v4>-P-NsyepvOs(Hd!8XJ zaX<(O&^NwDc;9TopZ#j(`{FU%*M^Dug{IyOTe^R&8CnyiJrFo3pbVKa=d zRYt+lAh6g*Jp(g2c$HdHfQGH_SYqH!-z=!80ztvVnZCZ~uU`39kno;u+5q^Nfx#38 zLRhyXr@x_f0YQ@dlFGM&`5+;dCJcm#uwH)~(3vW#WC=k+ux;8v$b_(B>96vW|CB$) zW={h=+ZWh!o`XsSwA+pihL0dI$it0je#c}XQQU(M=V=VR_&@EvH$pJiC|3in5gcMj}n?Djf47_EVHwIR+kY@AcK^OyTY+*0L z76trnJ2)OjDdB+4KOf!#aN3p^KrFya+n%Ywad4GdXTmD@*p_Jm%mL@<(L%K69-FoZ z>_PC8?b1952@0|KlIo){$@@3^<#0kR^;AGl^cw9^3D3ZLG^-MlVJ@9t2?>a`ZLfr} zzywdE50^kW%%`)LLRjx2uhP<$FSP^DmnNBX`L$I$D+u;c$|pg#Glvzaas&j9vkDjAdKPN-%TKXq&ehW&;eO*Q(*1rbowfIfUng zInMMPK=>Lxxdv7Z&GFQjYKJk6Nd`_B?%@lGY3DFSn2vH>BhivIg=mZ$PPvkV zTDg{-EU`B^;TY1%WvjXl>%?SE80rQcGy<=-6Zsd#3B3;lj#SolHJy^>M3E1QP|jB_ zMQ7c~3DGY7zDFD=nOE9nSwSO}G=4j1g2p&8o}*vs%LyOQ?Cmg+VLY^AJ0!t4YS|8< zIo(~I#c4FD?rq?-JPO|9OS8XO#~FeJvWAY^1#t-} z&NupmJoE79Xd^2mIJL&^Nvsg(j5O*H#yBI4gAi(+;l}3?M$k`pK`N(nvO+PvwhJ;c z;+rx17=@evu*XZicAQU3# zw$EU3K(UW)??n{COq#Fn+*YuaqF)MALzRxl7FQ;Sn!bHfTyY|8hp$oiu6Hl-ylcc3L0awp0&;q&$I1n|A1z`&}d0RerqSkua7zIU05cKKu-yo3PEp| z&oItFo??aXY4$!yhwo_RKA7*nLh4elz@+8d2f6-h-B$}0g4H(83LyaJ>5TnQiS}{q zhr=+@wx}~0&^b%j)I&Vl*Itjwb&t(i z4=M(BQ~yI4vm0paAsEW|9kiJa!6x}g@&5|6@UAWHD+mIJv!ynm#d>UTO;$~(X~(c#AiCT z73t8`|E4ee05~5FJ%Y(?1AXBL>T9I)j=(6GM!z`%F+qL?5@YJCsNP>RhqfPqjK$My z*eGIRs*}oBNdbh}rQ|_~_OW*})s=>8;#f={YbCvA5-x9y({A}kb6VBcT;Q3hom`}o z3rL|s=2H5&owvk^PR=012~I`z2?z2*QoUk#j)CyE#1tn-0-9u;;#2lP^_(2Tt=^(t z;>g0rw5nWzC}q*3pD08vMg9Vy-`%2JLyeRsjz5gY0}#YovM-Wt)+_fU+=pi{^VBh zrE?YQYw5-xVR*nB>}lNH3bKSceuNxYM3awUnBAcz$1or-(ly5*F7`-=U#;3+nq6Ag z#o!YYJuK{JC5mW4Lx`qYn-+8&T$Ol z0vdh-3N#I_ZhUn!Y2e!DLTMkbXrrr6;8xy58&1IN#q(Tzv#yAHP+g`MSfZOMQ%rL8 zka2f2HF`lQQh*iq@4skOrQ%+LS*Pf zx1W(b&A!exUKfj9a(2EhX45?P}ehgUrA{>j1ZY!mlMcpf7>Es^#~{^g56 z=ieyzKcl%nL(j#ZbTEAR+`EpCje3;S&skm{J8Oe6-5~c~aguch7DDuM5k%`1S9PS} z&b;buUc_4nuU()VKA>?#Gw@Ew`^FcOZi)ll{st0pO;kyYA-#Mp>Z5X}m2X*8HO#MR zd5&My*yOZ`%i?)om8E9UdP}7dc8yK)P7;r}sz<^u|Moy~rT7{S*P?K~%;X@vSA5$U z&^*6WxW+xN6LRSOADZTLwtX(O1s%^j9DuYYr@X2Z>5?R^F?O!_1)6ypQhPqr!CUw$ zKkZF1S<*Jg@_n1-2+5_ZPD57M4Ij~2nmVrUclIMU#f`2CLu9=?%+s5vAvS{bt(O#p zRIitqr1cW;NTw#ueVd2l>c-Q=Gnno!(ULPTCPm|VhF{{4S*>`?6X9id8o$t?tx7Yt ziLXftj8Wd;6=S^fu8#(+hFw7H^!6FZ#sebtEDYuX{S~ASosZ41R{TC9pGM1y-mAqE z>FEKDI#j<+R%vi z;4ZI>IE9D`9}{)0B~3TBagff|u~kIIN1lwO7ZStxGLWA_!(Gj8nzrX>sL%Q z?X>b&)J;PzzoMj2+Vm@)Cim!VxfeoJ=kR!Vk0zdj=&(ws4o!AXV%xU@v(qCU_rx^o zs#-CWaX5l&jPQ!n>8f*(ta|AF;yQzh|46*zWqJ%{Xjgc4mMbms{2a$~e5qrh+wG^lA)=DMK{nTn zM*o$1e#4B`PUFtQm{5aPZPlUAwtJg9bBx@6p1yk?MV+CR^SHTr>NpRRLrMqr49Xn2 z)y0#2H|d}HyOmnGcgL;6da+c0RXlV^{)(N|7rz!_;eS>9p8oJV&i^j;{EoM>Yc%f? zs(q5abqRXn(Z5da?V;aX0&VQ1gYxH-3kt#$5~z3Ak(giuV~97X%g6U|i<2ckLt438 zoInGbF%&n^yk-y?my?ccfy#st4{O|Rs=n6vo_3{@D!paJ>`dRpKL0xxQJnY0E@yhx5vUrr9xrP-BPp4eR zaC)9DzK-GaCf#x!LVFJAP^{%fLp2*c-K5wZpfwq4vLo$P^n^?rMsHuoI9x0DdQ#p2 zN_naOa6oUUp;->pk=we_EE^&uj-?w7l z@?pwTJZ8k39=WV9)f4Si(f4KkYTbzZ6;G9x+Dq$#4d1Nd3|of5uUADQO=*Rpsso+G z>Q3V0ba5-1vYGB^h3L?S-u=Vi)SNH8jugW%L%Km}yeaOams+u$&$2ye1%RMNsY@+m z#2X)3M&Sl@OIYfT!U%da`4v%Ve?3PwS8x=YLn2zlJ#HoDQZ?S~WtMW9c>}B3>vYi# zOl+szHN|Rs*}NI^W;`F;hV^Q&=TbT!<7dW_%&Hz7T8`yu(?67_xk;s=fB zN^}g1?gTt&{rOh$3~jmz3mES~I{Fq2g9~)^Er^33X#Fi18nVO1n|O=U8T8{n&^3pt{SOFdZC|SG^!Z!(xk2~?y22+^aR&-wV(>o$ zSwl^u%1DZ3frIjbP~eOXB1Ck^2fj<(Ojq8)`Z|TS+`&CClREEUQ1qbT0tRq4O&4(D z2XwN4UcF403iwTB6AfyIhMq&5VPkZrWy9hc$gWE z&HI?K@6oUaFg~Q%_t`M^oc``vtsjm}r;8szV#w&n$S<}2h|Hq)2bkM4X!`?t(u!+Tn;BP4|j;&KjLtX60Cz1g7Z#ic&Yl z;g!uLMp2iDiDD})lrYv;(=`%$q=N31AU^a9PyL^h=H4$W>xaTVqjw|>`7M-l;z6>3 zW;)U4WpuI=(zP#p9;r7yGZHEDJiIBXzNRz63NynIW281G-fW_&(}@SOk`C;^gw;yt zccAyr(v2OEnEjRee^cu3&MFv;Z2R3r=2rVflYjSJ?*b$1bAfLmT=j+5y2qg#$ST;gzNm4$8ZN7#>iVmHixE|Ji^F0}YP zdej9mkx#pyt>t!`M5m4myb&?T$$ zwnTK+$I6yV)t$<6sI1W`kESBsIQ%2zlcpmQDQ&oyySm}t?A05wv~h{Cw7>(gp;KIc zHKMy93^f=>Klb46GSKflur*rfc;u;ddAT^&h9YM=pBQ*U-bln3SMQrFGaJ*zM2-oAn{*z>M8=&*2fS&|y}zxDsd0+` z^ob5aUN0<}F=sAjVSJM6R@9Py9byc%bIf3Pin=&vIIwi6A2UTxGJcE}ze{}Mhw|g- zML%Y?s{Lt(EWn=~f8%Tu{240~fA(JtNx}0o4F4w|fUp!Q|PlO`&dm)scFrJVO?Ds}UP|I+HGChw_mJ@|gf%qhZ4(ul* zlvmXsp+CY@o-FR1_*q1#5HS#81j4k(FdboU><>bC83hb}42K|$M*L8OeG%#r%5<3s zFahBRgeeHK5Xz5%f23$OA4EtZ4j2)UXj`LVq8a#@)`g(I?$b~;^8)m; z6{?w&e%y!&44G~l+>^Nn_@OH~jEThmQu4x>)u4JEhmuh0e^A5k>FwUkd{x>+G&Z90 z5th@kaAuUBgiSJuejCpG1B-^+;Y?3PImzbNhuOer)=oxWA^DT%GivF}EYjqoX87Nxh5A?z!TK5_lxf?xTA Lz7@&DBme&cfzBUG diff --git a/bundles/extension/ING9188xx/apis.json b/bundles/extension/ING9188xx/apis.json index 259ca3d77..93739bf64 100644 --- a/bundles/extension/ING9188xx/apis.json +++ b/bundles/extension/ING9188xx/apis.json @@ -274,98 +274,98 @@ "sm_config_conn": "0x000219c5", "sm_encryption_key_size": "0x00021b7b", "sm_just_works_confirm": "0x00022101", - "sm_le_device_key": "0x0002244d", - "sm_passkey_input": "0x000224e3", - "sm_private_random_address_generation_get": "0x0002289d", - "sm_private_random_address_generation_get_mode": "0x000228a5", - "sm_private_random_address_generation_set_mode": "0x000228b1", - "sm_private_random_address_generation_set_update_period": "0x000228d9", - "sm_register_external_ltk_callback": "0x00022a15", - "sm_register_oob_data_callback": "0x00022a21", - "sm_request_pairing": "0x00022a2d", - "sm_send_security_request": "0x00023503", - "sm_set_accepted_stk_generation_methods": "0x00023529", - "sm_set_authentication_requirements": "0x00023535", - "sm_set_encryption_key_size_range": "0x00023541", - "sscanf_bd_addr": "0x00023911", - "sysSetPublicDeviceAddr": "0x00023cc5", - "uuid128_to_str": "0x00024465", - "uuid_add_bluetooth_prefix": "0x000244bd", - "uuid_has_bluetooth_prefix": "0x000244dd", - "uxListRemove": "0x000244f9", - "uxQueueMessagesWaiting": "0x00024521", - "uxQueueMessagesWaitingFromISR": "0x00024549", - "uxQueueSpacesAvailable": "0x00024565", - "uxTaskGetStackHighWaterMark": "0x00024591", - "uxTaskPriorityGet": "0x000245b1", - "uxTaskPriorityGetFromISR": "0x000245cd", - "vListInitialise": "0x00024687", - "vListInitialiseItem": "0x0002469d", - "vListInsert": "0x000246a3", - "vListInsertEnd": "0x000246d3", - "vPortEndScheduler": "0x000246ed", - "vPortEnterCritical": "0x00024719", - "vPortExitCritical": "0x0002475d", - "vPortFree": "0x00024791", - "vPortSuppressTicksAndSleep": "0x00024825", - "vPortValidateInterruptPriority": "0x0002494d", - "vQueueDelete": "0x000249a9", - "vQueueWaitForMessageRestricted": "0x000249d5", - "vTaskDelay": "0x00024a1d", - "vTaskInternalSetTimeOutState": "0x00024a69", - "vTaskMissedYield": "0x00024a79", - "vTaskPlaceOnEventList": "0x00024a85", - "vTaskPlaceOnEventListRestricted": "0x00024abd", - "vTaskPriorityDisinheritAfterTimeout": "0x00024afd", - "vTaskPrioritySet": "0x00024ba9", - "vTaskResume": "0x00024c71", - "vTaskStartScheduler": "0x00024cf5", - "vTaskStepTick": "0x00024d85", - "vTaskSuspend": "0x00024db5", - "vTaskSuspendAll": "0x00024e71", - "vTaskSwitchContext": "0x00024e81", - "xPortStartScheduler": "0x00024f29", - "xQueueAddToSet": "0x00024ff1", - "xQueueCreateCountingSemaphore": "0x00025015", - "xQueueCreateCountingSemaphoreStatic": "0x00025051", - "xQueueCreateMutex": "0x00025095", - "xQueueCreateMutexStatic": "0x000250ab", - "xQueueCreateSet": "0x000250c5", - "xQueueGenericCreate": "0x000250cd", - "xQueueGenericCreateStatic": "0x00025119", - "xQueueGenericReset": "0x00025181", - "xQueueGenericSend": "0x0002520d", - "xQueueGenericSendFromISR": "0x00025379", - "xQueueGiveFromISR": "0x00025439", - "xQueueGiveMutexRecursive": "0x000254dd", - "xQueueIsQueueEmptyFromISR": "0x0002551d", - "xQueueIsQueueFullFromISR": "0x00025541", - "xQueuePeek": "0x00025569", - "xQueuePeekFromISR": "0x00025691", - "xQueueReceive": "0x000256fd", - "xQueueReceiveFromISR": "0x00025829", - "xQueueRemoveFromSet": "0x000258bd", - "xQueueSelectFromSet": "0x000258df", - "xQueueSelectFromSetFromISR": "0x000258f1", - "xQueueSemaphoreTake": "0x00025905", - "xQueueTakeMutexRecursive": "0x00025a71", - "xTaskCheckForTimeOut": "0x00025ab5", - "xTaskCreate": "0x00025b25", - "xTaskCreateStatic": "0x00025b81", - "xTaskGetCurrentTaskHandle": "0x00025bf1", - "xTaskGetSchedulerState": "0x00025bfd", - "xTaskGetTickCount": "0x00025c19", - "xTaskGetTickCountFromISR": "0x00025c25", - "xTaskIncrementTick": "0x00025c35", - "xTaskPriorityDisinherit": "0x00025d01", - "xTaskPriorityInherit": "0x00025d95", - "xTaskRemoveFromEventList": "0x00025e29", - "xTaskResumeAll": "0x00025ea9", - "xTaskResumeFromISR": "0x00025f71", - "xTimerCreate": "0x00025ffd", - "xTimerCreateStatic": "0x00026031", - "xTimerCreateTimerTask": "0x00026069", - "xTimerGenericCommand": "0x000260d5", - "xTimerGetExpiryTime": "0x00026145", - "xTimerGetTimerDaemonTaskHandle": "0x00026165" + "sm_le_device_key": "0x00022439", + "sm_passkey_input": "0x000224cf", + "sm_private_random_address_generation_get": "0x00022889", + "sm_private_random_address_generation_get_mode": "0x00022891", + "sm_private_random_address_generation_set_mode": "0x0002289d", + "sm_private_random_address_generation_set_update_period": "0x000228c5", + "sm_register_external_ltk_callback": "0x00022a01", + "sm_register_oob_data_callback": "0x00022a0d", + "sm_request_pairing": "0x00022a19", + "sm_send_security_request": "0x000234ef", + "sm_set_accepted_stk_generation_methods": "0x00023515", + "sm_set_authentication_requirements": "0x00023521", + "sm_set_encryption_key_size_range": "0x0002352d", + "sscanf_bd_addr": "0x000238fd", + "sysSetPublicDeviceAddr": "0x00023cb1", + "uuid128_to_str": "0x00024451", + "uuid_add_bluetooth_prefix": "0x000244a9", + "uuid_has_bluetooth_prefix": "0x000244c9", + "uxListRemove": "0x000244e5", + "uxQueueMessagesWaiting": "0x0002450d", + "uxQueueMessagesWaitingFromISR": "0x00024535", + "uxQueueSpacesAvailable": "0x00024551", + "uxTaskGetStackHighWaterMark": "0x0002457d", + "uxTaskPriorityGet": "0x0002459d", + "uxTaskPriorityGetFromISR": "0x000245b9", + "vListInitialise": "0x00024673", + "vListInitialiseItem": "0x00024689", + "vListInsert": "0x0002468f", + "vListInsertEnd": "0x000246bf", + "vPortEndScheduler": "0x000246d9", + "vPortEnterCritical": "0x00024705", + "vPortExitCritical": "0x00024749", + "vPortFree": "0x0002477d", + "vPortSuppressTicksAndSleep": "0x00024811", + "vPortValidateInterruptPriority": "0x00024939", + "vQueueDelete": "0x00024995", + "vQueueWaitForMessageRestricted": "0x000249c1", + "vTaskDelay": "0x00024a09", + "vTaskInternalSetTimeOutState": "0x00024a55", + "vTaskMissedYield": "0x00024a65", + "vTaskPlaceOnEventList": "0x00024a71", + "vTaskPlaceOnEventListRestricted": "0x00024aa9", + "vTaskPriorityDisinheritAfterTimeout": "0x00024ae9", + "vTaskPrioritySet": "0x00024b95", + "vTaskResume": "0x00024c5d", + "vTaskStartScheduler": "0x00024ce1", + "vTaskStepTick": "0x00024d71", + "vTaskSuspend": "0x00024da1", + "vTaskSuspendAll": "0x00024e5d", + "vTaskSwitchContext": "0x00024e6d", + "xPortStartScheduler": "0x00024f15", + "xQueueAddToSet": "0x00024fdd", + "xQueueCreateCountingSemaphore": "0x00025001", + "xQueueCreateCountingSemaphoreStatic": "0x0002503d", + "xQueueCreateMutex": "0x00025081", + "xQueueCreateMutexStatic": "0x00025097", + "xQueueCreateSet": "0x000250b1", + "xQueueGenericCreate": "0x000250b9", + "xQueueGenericCreateStatic": "0x00025105", + "xQueueGenericReset": "0x0002516d", + "xQueueGenericSend": "0x000251f9", + "xQueueGenericSendFromISR": "0x00025365", + "xQueueGiveFromISR": "0x00025425", + "xQueueGiveMutexRecursive": "0x000254c9", + "xQueueIsQueueEmptyFromISR": "0x00025509", + "xQueueIsQueueFullFromISR": "0x0002552d", + "xQueuePeek": "0x00025555", + "xQueuePeekFromISR": "0x0002567d", + "xQueueReceive": "0x000256e9", + "xQueueReceiveFromISR": "0x00025815", + "xQueueRemoveFromSet": "0x000258a9", + "xQueueSelectFromSet": "0x000258cb", + "xQueueSelectFromSetFromISR": "0x000258dd", + "xQueueSemaphoreTake": "0x000258f1", + "xQueueTakeMutexRecursive": "0x00025a5d", + "xTaskCheckForTimeOut": "0x00025aa1", + "xTaskCreate": "0x00025b11", + "xTaskCreateStatic": "0x00025b6d", + "xTaskGetCurrentTaskHandle": "0x00025bdd", + "xTaskGetSchedulerState": "0x00025be9", + "xTaskGetTickCount": "0x00025c05", + "xTaskGetTickCountFromISR": "0x00025c11", + "xTaskIncrementTick": "0x00025c21", + "xTaskPriorityDisinherit": "0x00025ced", + "xTaskPriorityInherit": "0x00025d81", + "xTaskRemoveFromEventList": "0x00025e15", + "xTaskResumeAll": "0x00025e95", + "xTaskResumeFromISR": "0x00025f5d", + "xTimerCreate": "0x00025fe9", + "xTimerCreateStatic": "0x0002601d", + "xTimerCreateTimerTask": "0x00026055", + "xTimerGenericCommand": "0x000260c1", + "xTimerGetExpiryTime": "0x00026131", + "xTimerGetTimerDaemonTaskHandle": "0x00026151" } \ No newline at end of file diff --git a/bundles/extension/ING9188xx/meta.json b/bundles/extension/ING9188xx/meta.json index b1da6452f..bd37743cd 100644 --- a/bundles/extension/ING9188xx/meta.json +++ b/bundles/extension/ING9188xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 146464 + "size": 146444 }, "version": [ 1, 9, - 39 + 40 ] } \ No newline at end of file diff --git a/bundles/extension/ING9188xx/platform.bin b/bundles/extension/ING9188xx/platform.bin index 21cb34ae85303de01f9367f3b8893042c57ed533..7b290c8d94ceb2bdf2dc4c01027dc16cdd8a082a 100644 GIT binary patch delta 9387 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 MKPiX(kxu*nKX30Ra{vGU delta 9224 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 RKPY-shQ{+ziXO{D{vVX{11A6g diff --git a/bundles/mass_conn/ING9187xx/apis.json b/bundles/mass_conn/ING9187xx/apis.json index 1c617d97c..b04c903ff 100644 --- a/bundles/mass_conn/ING9187xx/apis.json +++ b/bundles/mass_conn/ING9187xx/apis.json @@ -234,98 +234,98 @@ "sm_config_conn": "0x0001f485", "sm_encryption_key_size": "0x0001f63b", "sm_just_works_confirm": "0x0001fbc1", - "sm_le_device_key": "0x0001ff0d", - "sm_passkey_input": "0x0001ffa3", - "sm_private_random_address_generation_get": "0x0002035d", - "sm_private_random_address_generation_get_mode": "0x00020365", - "sm_private_random_address_generation_set_mode": "0x00020371", - "sm_private_random_address_generation_set_update_period": "0x00020399", - "sm_register_external_ltk_callback": "0x000204d5", - "sm_register_oob_data_callback": "0x000204e1", - "sm_request_pairing": "0x000204ed", - "sm_send_security_request": "0x00020fc3", - "sm_set_accepted_stk_generation_methods": "0x00020fe9", - "sm_set_authentication_requirements": "0x00020ff5", - "sm_set_encryption_key_size_range": "0x00021001", - "sscanf_bd_addr": "0x0002135d", - "sysSetPublicDeviceAddr": "0x00021711", - "uuid128_to_str": "0x00021d1d", - "uuid_add_bluetooth_prefix": "0x00021d75", - "uuid_has_bluetooth_prefix": "0x00021d95", - "uxListRemove": "0x00021db1", - "uxQueueMessagesWaiting": "0x00021dd9", - "uxQueueMessagesWaitingFromISR": "0x00021e01", - "uxQueueSpacesAvailable": "0x00021e1d", - "uxTaskGetStackHighWaterMark": "0x00021e49", - "uxTaskPriorityGet": "0x00021e69", - "uxTaskPriorityGetFromISR": "0x00021e85", - "vListInitialise": "0x00021f3f", - "vListInitialiseItem": "0x00021f55", - "vListInsert": "0x00021f5b", - "vListInsertEnd": "0x00021f8b", - "vPortEndScheduler": "0x00021fa5", - "vPortEnterCritical": "0x00021fd1", - "vPortExitCritical": "0x00022015", - "vPortFree": "0x00022049", - "vPortSuppressTicksAndSleep": "0x000220dd", - "vPortValidateInterruptPriority": "0x00022205", - "vQueueDelete": "0x00022261", - "vQueueWaitForMessageRestricted": "0x0002228d", - "vTaskDelay": "0x000222d5", - "vTaskInternalSetTimeOutState": "0x00022321", - "vTaskMissedYield": "0x00022331", - "vTaskPlaceOnEventList": "0x0002233d", - "vTaskPlaceOnEventListRestricted": "0x00022375", - "vTaskPriorityDisinheritAfterTimeout": "0x000223b5", - "vTaskPrioritySet": "0x00022461", - "vTaskResume": "0x00022529", - "vTaskStartScheduler": "0x000225ad", - "vTaskStepTick": "0x0002263d", - "vTaskSuspend": "0x0002266d", - "vTaskSuspendAll": "0x00022729", - "vTaskSwitchContext": "0x00022739", - "xPortStartScheduler": "0x000227e1", - "xQueueAddToSet": "0x000228a9", - "xQueueCreateCountingSemaphore": "0x000228cd", - "xQueueCreateCountingSemaphoreStatic": "0x00022909", - "xQueueCreateMutex": "0x0002294d", - "xQueueCreateMutexStatic": "0x00022963", - "xQueueCreateSet": "0x0002297d", - "xQueueGenericCreate": "0x00022985", - "xQueueGenericCreateStatic": "0x000229d1", - "xQueueGenericReset": "0x00022a39", - "xQueueGenericSend": "0x00022ac5", - "xQueueGenericSendFromISR": "0x00022c31", - "xQueueGiveFromISR": "0x00022cf1", - "xQueueGiveMutexRecursive": "0x00022d95", - "xQueueIsQueueEmptyFromISR": "0x00022dd5", - "xQueueIsQueueFullFromISR": "0x00022df9", - "xQueuePeek": "0x00022e21", - "xQueuePeekFromISR": "0x00022f49", - "xQueueReceive": "0x00022fb5", - "xQueueReceiveFromISR": "0x000230e1", - "xQueueRemoveFromSet": "0x00023175", - "xQueueSelectFromSet": "0x00023197", - "xQueueSelectFromSetFromISR": "0x000231a9", - "xQueueSemaphoreTake": "0x000231bd", - "xQueueTakeMutexRecursive": "0x00023329", - "xTaskCheckForTimeOut": "0x0002336d", - "xTaskCreate": "0x000233dd", - "xTaskCreateStatic": "0x00023439", - "xTaskGetCurrentTaskHandle": "0x000234a9", - "xTaskGetSchedulerState": "0x000234b5", - "xTaskGetTickCount": "0x000234d1", - "xTaskGetTickCountFromISR": "0x000234dd", - "xTaskIncrementTick": "0x000234ed", - "xTaskPriorityDisinherit": "0x000235b9", - "xTaskPriorityInherit": "0x0002364d", - "xTaskRemoveFromEventList": "0x000236e1", - "xTaskResumeAll": "0x00023761", - "xTaskResumeFromISR": "0x00023829", - "xTimerCreate": "0x000238b5", - "xTimerCreateStatic": "0x000238e9", - "xTimerCreateTimerTask": "0x00023921", - "xTimerGenericCommand": "0x0002398d", - "xTimerGetExpiryTime": "0x000239fd", - "xTimerGetTimerDaemonTaskHandle": "0x00023a1d" + "sm_le_device_key": "0x0001fef9", + "sm_passkey_input": "0x0001ff8f", + "sm_private_random_address_generation_get": "0x00020349", + "sm_private_random_address_generation_get_mode": "0x00020351", + "sm_private_random_address_generation_set_mode": "0x0002035d", + "sm_private_random_address_generation_set_update_period": "0x00020385", + "sm_register_external_ltk_callback": "0x000204c1", + "sm_register_oob_data_callback": "0x000204cd", + "sm_request_pairing": "0x000204d9", + "sm_send_security_request": "0x00020faf", + "sm_set_accepted_stk_generation_methods": "0x00020fd5", + "sm_set_authentication_requirements": "0x00020fe1", + "sm_set_encryption_key_size_range": "0x00020fed", + "sscanf_bd_addr": "0x00021349", + "sysSetPublicDeviceAddr": "0x000216fd", + "uuid128_to_str": "0x00021d09", + "uuid_add_bluetooth_prefix": "0x00021d61", + "uuid_has_bluetooth_prefix": "0x00021d81", + "uxListRemove": "0x00021d9d", + "uxQueueMessagesWaiting": "0x00021dc5", + "uxQueueMessagesWaitingFromISR": "0x00021ded", + "uxQueueSpacesAvailable": "0x00021e09", + "uxTaskGetStackHighWaterMark": "0x00021e35", + "uxTaskPriorityGet": "0x00021e55", + "uxTaskPriorityGetFromISR": "0x00021e71", + "vListInitialise": "0x00021f2b", + "vListInitialiseItem": "0x00021f41", + "vListInsert": "0x00021f47", + "vListInsertEnd": "0x00021f77", + "vPortEndScheduler": "0x00021f91", + "vPortEnterCritical": "0x00021fbd", + "vPortExitCritical": "0x00022001", + "vPortFree": "0x00022035", + "vPortSuppressTicksAndSleep": "0x000220c9", + "vPortValidateInterruptPriority": "0x000221f1", + "vQueueDelete": "0x0002224d", + "vQueueWaitForMessageRestricted": "0x00022279", + "vTaskDelay": "0x000222c1", + "vTaskInternalSetTimeOutState": "0x0002230d", + "vTaskMissedYield": "0x0002231d", + "vTaskPlaceOnEventList": "0x00022329", + "vTaskPlaceOnEventListRestricted": "0x00022361", + "vTaskPriorityDisinheritAfterTimeout": "0x000223a1", + "vTaskPrioritySet": "0x0002244d", + "vTaskResume": "0x00022515", + "vTaskStartScheduler": "0x00022599", + "vTaskStepTick": "0x00022629", + "vTaskSuspend": "0x00022659", + "vTaskSuspendAll": "0x00022715", + "vTaskSwitchContext": "0x00022725", + "xPortStartScheduler": "0x000227cd", + "xQueueAddToSet": "0x00022895", + "xQueueCreateCountingSemaphore": "0x000228b9", + "xQueueCreateCountingSemaphoreStatic": "0x000228f5", + "xQueueCreateMutex": "0x00022939", + "xQueueCreateMutexStatic": "0x0002294f", + "xQueueCreateSet": "0x00022969", + "xQueueGenericCreate": "0x00022971", + "xQueueGenericCreateStatic": "0x000229bd", + "xQueueGenericReset": "0x00022a25", + "xQueueGenericSend": "0x00022ab1", + "xQueueGenericSendFromISR": "0x00022c1d", + "xQueueGiveFromISR": "0x00022cdd", + "xQueueGiveMutexRecursive": "0x00022d81", + "xQueueIsQueueEmptyFromISR": "0x00022dc1", + "xQueueIsQueueFullFromISR": "0x00022de5", + "xQueuePeek": "0x00022e0d", + "xQueuePeekFromISR": "0x00022f35", + "xQueueReceive": "0x00022fa1", + "xQueueReceiveFromISR": "0x000230cd", + "xQueueRemoveFromSet": "0x00023161", + "xQueueSelectFromSet": "0x00023183", + "xQueueSelectFromSetFromISR": "0x00023195", + "xQueueSemaphoreTake": "0x000231a9", + "xQueueTakeMutexRecursive": "0x00023315", + "xTaskCheckForTimeOut": "0x00023359", + "xTaskCreate": "0x000233c9", + "xTaskCreateStatic": "0x00023425", + "xTaskGetCurrentTaskHandle": "0x00023495", + "xTaskGetSchedulerState": "0x000234a1", + "xTaskGetTickCount": "0x000234bd", + "xTaskGetTickCountFromISR": "0x000234c9", + "xTaskIncrementTick": "0x000234d9", + "xTaskPriorityDisinherit": "0x000235a5", + "xTaskPriorityInherit": "0x00023639", + "xTaskRemoveFromEventList": "0x000236cd", + "xTaskResumeAll": "0x0002374d", + "xTaskResumeFromISR": "0x00023815", + "xTimerCreate": "0x000238a1", + "xTimerCreateStatic": "0x000238d5", + "xTimerCreateTimerTask": "0x0002390d", + "xTimerGenericCommand": "0x00023979", + "xTimerGetExpiryTime": "0x000239e9", + "xTimerGetTimerDaemonTaskHandle": "0x00023a09" } \ No newline at end of file diff --git a/bundles/mass_conn/ING9187xx/meta.json b/bundles/mass_conn/ING9187xx/meta.json index ced4980b4..dcc1fe5aa 100644 --- a/bundles/mass_conn/ING9187xx/meta.json +++ b/bundles/mass_conn/ING9187xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 135844 + "size": 135824 }, "version": [ 1, 9, - 39 + 40 ] } \ No newline at end of file diff --git a/bundles/mass_conn/ING9187xx/platform.bin b/bundles/mass_conn/ING9187xx/platform.bin index 06637e7f0b81e60d1a168cbc6143b0be3d8b1498..3ed0d92b9aab3929f4032fa615ab81e9ad104f19 100644 GIT binary patch delta 8430 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 delta 8514 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 ZyZ7u6r+)QBkGNiO9bWwrCwJod|3CctE|vfQ diff --git a/bundles/mass_conn/ING9188xx/apis.json b/bundles/mass_conn/ING9188xx/apis.json index cc8ede793..43b240620 100644 --- a/bundles/mass_conn/ING9188xx/apis.json +++ b/bundles/mass_conn/ING9188xx/apis.json @@ -248,98 +248,98 @@ "sm_config_conn": "0x000208c5", "sm_encryption_key_size": "0x00020a7b", "sm_just_works_confirm": "0x00021001", - "sm_le_device_key": "0x0002134d", - "sm_passkey_input": "0x000213e3", - "sm_private_random_address_generation_get": "0x0002179d", - "sm_private_random_address_generation_get_mode": "0x000217a5", - "sm_private_random_address_generation_set_mode": "0x000217b1", - "sm_private_random_address_generation_set_update_period": "0x000217d9", - "sm_register_external_ltk_callback": "0x00021915", - "sm_register_oob_data_callback": "0x00021921", - "sm_request_pairing": "0x0002192d", - "sm_send_security_request": "0x00022403", - "sm_set_accepted_stk_generation_methods": "0x00022429", - "sm_set_authentication_requirements": "0x00022435", - "sm_set_encryption_key_size_range": "0x00022441", - "sscanf_bd_addr": "0x0002279d", - "sysSetPublicDeviceAddr": "0x00022b51", - "uuid128_to_str": "0x000232f1", - "uuid_add_bluetooth_prefix": "0x00023349", - "uuid_has_bluetooth_prefix": "0x00023369", - "uxListRemove": "0x00023385", - "uxQueueMessagesWaiting": "0x000233ad", - "uxQueueMessagesWaitingFromISR": "0x000233d5", - "uxQueueSpacesAvailable": "0x000233f1", - "uxTaskGetStackHighWaterMark": "0x0002341d", - "uxTaskPriorityGet": "0x0002343d", - "uxTaskPriorityGetFromISR": "0x00023459", - "vListInitialise": "0x00023513", - "vListInitialiseItem": "0x00023529", - "vListInsert": "0x0002352f", - "vListInsertEnd": "0x0002355f", - "vPortEndScheduler": "0x00023579", - "vPortEnterCritical": "0x000235a5", - "vPortExitCritical": "0x000235e9", - "vPortFree": "0x0002361d", - "vPortSuppressTicksAndSleep": "0x000236b1", - "vPortValidateInterruptPriority": "0x000237d9", - "vQueueDelete": "0x00023835", - "vQueueWaitForMessageRestricted": "0x00023861", - "vTaskDelay": "0x000238a9", - "vTaskInternalSetTimeOutState": "0x000238f5", - "vTaskMissedYield": "0x00023905", - "vTaskPlaceOnEventList": "0x00023911", - "vTaskPlaceOnEventListRestricted": "0x00023949", - "vTaskPriorityDisinheritAfterTimeout": "0x00023989", - "vTaskPrioritySet": "0x00023a35", - "vTaskResume": "0x00023afd", - "vTaskStartScheduler": "0x00023b81", - "vTaskStepTick": "0x00023c11", - "vTaskSuspend": "0x00023c41", - "vTaskSuspendAll": "0x00023cfd", - "vTaskSwitchContext": "0x00023d0d", - "xPortStartScheduler": "0x00023db5", - "xQueueAddToSet": "0x00023e7d", - "xQueueCreateCountingSemaphore": "0x00023ea1", - "xQueueCreateCountingSemaphoreStatic": "0x00023edd", - "xQueueCreateMutex": "0x00023f21", - "xQueueCreateMutexStatic": "0x00023f37", - "xQueueCreateSet": "0x00023f51", - "xQueueGenericCreate": "0x00023f59", - "xQueueGenericCreateStatic": "0x00023fa5", - "xQueueGenericReset": "0x0002400d", - "xQueueGenericSend": "0x00024099", - "xQueueGenericSendFromISR": "0x00024205", - "xQueueGiveFromISR": "0x000242c5", - "xQueueGiveMutexRecursive": "0x00024369", - "xQueueIsQueueEmptyFromISR": "0x000243a9", - "xQueueIsQueueFullFromISR": "0x000243cd", - "xQueuePeek": "0x000243f5", - "xQueuePeekFromISR": "0x0002451d", - "xQueueReceive": "0x00024589", - "xQueueReceiveFromISR": "0x000246b5", - "xQueueRemoveFromSet": "0x00024749", - "xQueueSelectFromSet": "0x0002476b", - "xQueueSelectFromSetFromISR": "0x0002477d", - "xQueueSemaphoreTake": "0x00024791", - "xQueueTakeMutexRecursive": "0x000248fd", - "xTaskCheckForTimeOut": "0x00024941", - "xTaskCreate": "0x000249b1", - "xTaskCreateStatic": "0x00024a0d", - "xTaskGetCurrentTaskHandle": "0x00024a7d", - "xTaskGetSchedulerState": "0x00024a89", - "xTaskGetTickCount": "0x00024aa5", - "xTaskGetTickCountFromISR": "0x00024ab1", - "xTaskIncrementTick": "0x00024ac1", - "xTaskPriorityDisinherit": "0x00024b8d", - "xTaskPriorityInherit": "0x00024c21", - "xTaskRemoveFromEventList": "0x00024cb5", - "xTaskResumeAll": "0x00024d35", - "xTaskResumeFromISR": "0x00024dfd", - "xTimerCreate": "0x00024e89", - "xTimerCreateStatic": "0x00024ebd", - "xTimerCreateTimerTask": "0x00024ef5", - "xTimerGenericCommand": "0x00024f61", - "xTimerGetExpiryTime": "0x00024fd1", - "xTimerGetTimerDaemonTaskHandle": "0x00024ff1" + "sm_le_device_key": "0x00021339", + "sm_passkey_input": "0x000213cf", + "sm_private_random_address_generation_get": "0x00021789", + "sm_private_random_address_generation_get_mode": "0x00021791", + "sm_private_random_address_generation_set_mode": "0x0002179d", + "sm_private_random_address_generation_set_update_period": "0x000217c5", + "sm_register_external_ltk_callback": "0x00021901", + "sm_register_oob_data_callback": "0x0002190d", + "sm_request_pairing": "0x00021919", + "sm_send_security_request": "0x000223ef", + "sm_set_accepted_stk_generation_methods": "0x00022415", + "sm_set_authentication_requirements": "0x00022421", + "sm_set_encryption_key_size_range": "0x0002242d", + "sscanf_bd_addr": "0x00022789", + "sysSetPublicDeviceAddr": "0x00022b3d", + "uuid128_to_str": "0x000232dd", + "uuid_add_bluetooth_prefix": "0x00023335", + "uuid_has_bluetooth_prefix": "0x00023355", + "uxListRemove": "0x00023371", + "uxQueueMessagesWaiting": "0x00023399", + "uxQueueMessagesWaitingFromISR": "0x000233c1", + "uxQueueSpacesAvailable": "0x000233dd", + "uxTaskGetStackHighWaterMark": "0x00023409", + "uxTaskPriorityGet": "0x00023429", + "uxTaskPriorityGetFromISR": "0x00023445", + "vListInitialise": "0x000234ff", + "vListInitialiseItem": "0x00023515", + "vListInsert": "0x0002351b", + "vListInsertEnd": "0x0002354b", + "vPortEndScheduler": "0x00023565", + "vPortEnterCritical": "0x00023591", + "vPortExitCritical": "0x000235d5", + "vPortFree": "0x00023609", + "vPortSuppressTicksAndSleep": "0x0002369d", + "vPortValidateInterruptPriority": "0x000237c5", + "vQueueDelete": "0x00023821", + "vQueueWaitForMessageRestricted": "0x0002384d", + "vTaskDelay": "0x00023895", + "vTaskInternalSetTimeOutState": "0x000238e1", + "vTaskMissedYield": "0x000238f1", + "vTaskPlaceOnEventList": "0x000238fd", + "vTaskPlaceOnEventListRestricted": "0x00023935", + "vTaskPriorityDisinheritAfterTimeout": "0x00023975", + "vTaskPrioritySet": "0x00023a21", + "vTaskResume": "0x00023ae9", + "vTaskStartScheduler": "0x00023b6d", + "vTaskStepTick": "0x00023bfd", + "vTaskSuspend": "0x00023c2d", + "vTaskSuspendAll": "0x00023ce9", + "vTaskSwitchContext": "0x00023cf9", + "xPortStartScheduler": "0x00023da1", + "xQueueAddToSet": "0x00023e69", + "xQueueCreateCountingSemaphore": "0x00023e8d", + "xQueueCreateCountingSemaphoreStatic": "0x00023ec9", + "xQueueCreateMutex": "0x00023f0d", + "xQueueCreateMutexStatic": "0x00023f23", + "xQueueCreateSet": "0x00023f3d", + "xQueueGenericCreate": "0x00023f45", + "xQueueGenericCreateStatic": "0x00023f91", + "xQueueGenericReset": "0x00023ff9", + "xQueueGenericSend": "0x00024085", + "xQueueGenericSendFromISR": "0x000241f1", + "xQueueGiveFromISR": "0x000242b1", + "xQueueGiveMutexRecursive": "0x00024355", + "xQueueIsQueueEmptyFromISR": "0x00024395", + "xQueueIsQueueFullFromISR": "0x000243b9", + "xQueuePeek": "0x000243e1", + "xQueuePeekFromISR": "0x00024509", + "xQueueReceive": "0x00024575", + "xQueueReceiveFromISR": "0x000246a1", + "xQueueRemoveFromSet": "0x00024735", + "xQueueSelectFromSet": "0x00024757", + "xQueueSelectFromSetFromISR": "0x00024769", + "xQueueSemaphoreTake": "0x0002477d", + "xQueueTakeMutexRecursive": "0x000248e9", + "xTaskCheckForTimeOut": "0x0002492d", + "xTaskCreate": "0x0002499d", + "xTaskCreateStatic": "0x000249f9", + "xTaskGetCurrentTaskHandle": "0x00024a69", + "xTaskGetSchedulerState": "0x00024a75", + "xTaskGetTickCount": "0x00024a91", + "xTaskGetTickCountFromISR": "0x00024a9d", + "xTaskIncrementTick": "0x00024aad", + "xTaskPriorityDisinherit": "0x00024b79", + "xTaskPriorityInherit": "0x00024c0d", + "xTaskRemoveFromEventList": "0x00024ca1", + "xTaskResumeAll": "0x00024d21", + "xTaskResumeFromISR": "0x00024de9", + "xTimerCreate": "0x00024e75", + "xTimerCreateStatic": "0x00024ea9", + "xTimerCreateTimerTask": "0x00024ee1", + "xTimerGenericCommand": "0x00024f4d", + "xTimerGetExpiryTime": "0x00024fbd", + "xTimerGetTimerDaemonTaskHandle": "0x00024fdd" } \ No newline at end of file diff --git a/bundles/mass_conn/ING9188xx/meta.json b/bundles/mass_conn/ING9188xx/meta.json index 4d63aea4c..818806868 100644 --- a/bundles/mass_conn/ING9188xx/meta.json +++ b/bundles/mass_conn/ING9188xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 141884 + "size": 141864 }, "version": [ 1, 9, - 39 + 40 ] } \ No newline at end of file diff --git a/bundles/mass_conn/ING9188xx/platform.bin b/bundles/mass_conn/ING9188xx/platform.bin index ecb4eb4fb2858d13eb0c32eb7c2fd68dc4c7afea..4c294f26ad6e4cf4a266ffc5247680ebee5b93fa 100644 GIT binary patch delta 9095 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 diff --git a/bundles/mass_conn/inc/bluetooth.h b/bundles/mass_conn/inc/bluetooth.h index 9839e3d8e..a7d216362 100644 --- a/bundles/mass_conn/inc/bluetooth.h +++ b/bundles/mass_conn/inc/bluetooth.h @@ -152,8 +152,13 @@ typedef enum { #define ERROR_CODE_CONNECTION_FAILED_TO_BE_ESTABLISHED 0x3E #define ERROR_CODE_MAC_CONNECTION_FAILED 0x3F #define ERROR_CODE_COARSE_CLOCK_ADJUSTMENT_REJECTED_BUT_WILL_TRY_TO_ADJUST_USING_CLOCK_DRAGGING 0x40 -#define ERROR_CODE_UNKNOWN_ADVERTISING_IDENTIFIER 0x42 -#define ERROR_CODE_LIMIT_REACHED 0x43 +#define ERROR_CODE_UNKNOWN_ADVERTISING_IDENTIFIER 0x42 +#define ERROR_CODE_LIMIT_REACHED 0x43 +#define ERROR_CODE_OP_CANCELLED_BY_HOST 0x44 +#define ERROR_CODE_PACKET_TOO_LONG 0x45 +#define ERROR_CODE_TOO_LATE 0x46 +#define ERROR_CODE_TOO_EARLY 0x47 + // HCI roles #define HCI_ROLE_MASTER 0 #define HCI_ROLE_SLAVE 1 @@ -508,6 +513,12 @@ typedef enum { #define HCI_SUBEVENT_LE_TRANSMIT_POWER_REPORTING 0x21 #define HCI_SUBEVENT_LE_BIGINFO_ADV_REPORT 0x22 #define HCI_SUBEVENT_LE_SUBRATE_CHANGE 0x23 +#define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHED_V2 0x24 +#define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_REPORT_V2 0x25 +#define HCI_SUBEVENT_LE_PRD_ADV_SYNC_TRANSFER_RCVD_V2 0x26 +#define HCI_SUBEVENT_PRD_ADV_SUBEVT_DATA_REQ 0x27 +#define HCI_SUBEVENT_PRD_ADV_RSP_REPORT 0x28 +#define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2 0x29 // Vendor specific subevents #define HCI_SUBEVENT_LE_VENDOR_CHANNEL_MAP_UPDATE 0xFE @@ -686,7 +697,10 @@ typedef enum { SM_CODE_IDENTITY_INFORMATION, SM_CODE_IDENTITY_ADDRESS_INFORMATION, SM_CODE_SIGNING_INFORMATION, - SM_CODE_SECURITY_REQUEST + SM_CODE_SECURITY_REQUEST, + SM_CODE_PAIRING_PUBLIC_KEY, + SM_CODE_PAIRING_DHKEY_CHECK, + SM_CODE_PAIRING_KEYPRESS_NOTIFICATION } SECURITY_MANAGER_COMMANDS; // IO Capability Values @@ -703,6 +717,7 @@ typedef enum { #define SM_AUTHREQ_NO_BONDING 0x00 #define SM_AUTHREQ_BONDING 0x01 #define SM_AUTHREQ_MITM_PROTECTION 0x04 +#define SM_AUTHREQ_SC 0x08 // Key distribution flags used by spec #define SM_KEYDIST_ENC_KEY 0X01 @@ -720,6 +735,7 @@ typedef enum { #define SM_STK_GENERATION_METHOD_JUST_WORKS 0x01 #define SM_STK_GENERATION_METHOD_OOB 0x02 #define SM_STK_GENERATION_METHOD_PASSKEY 0x04 +#define SM_STK_GENERATION_METHOD_NUM_COMPARISON 0x08 // Pairing Failed Reasons #define SM_REASON_RESERVED 0x00 @@ -732,6 +748,11 @@ typedef enum { #define SM_REASON_COMMAND_NOT_SUPPORTED 0x07 #define SM_REASON_UNSPECIFIED_REASON 0x08 #define SM_REASON_REPEATED_ATTEMPTS 0x09 +#define SM_REASON_REPEATED_ATTEMPTS 0x09 +#define SM_REASON_INVALID_PARAMETERS 0x0a +#define SM_REASON_DHKEY_CHECK_FAILED 0x0b +#define SM_REASON_NUMERIC_COMPARISON_FAILED 0x0c +#define SM_REASON_KEY_REJECTED_FAILED 0x0f // also, invalid parameters // and reserved diff --git a/bundles/mass_conn/inc/btstack_event.h b/bundles/mass_conn/inc/btstack_event.h index f2d412930..32610c414 100644 --- a/bundles/mass_conn/inc/btstack_event.h +++ b/bundles/mass_conn/inc/btstack_event.h @@ -1013,11 +1013,11 @@ typedef struct le_directed_adv_report } le_directed_adv_report_t; // LE Directed Advertising Report Event -typedef struct le_meta_directed_adv_report +typedef struct le_meta_event_directed_adv_report { uint8_t num_of_reports; le_directed_adv_report_t reports[1]; -} le_meta_directed_adv_report_t; +} le_meta_event_directed_adv_report_t; typedef struct le_meta_event_enh_create_conn_complete { @@ -1045,14 +1045,44 @@ typedef struct le_meta_event_enh_create_conn_complete uint8_t clk_accuracy; } le_meta_event_enh_create_conn_complete_t; +typedef struct le_meta_event_enh_create_conn_complete_v2 +{ + //Status of received command + uint8_t status; + //Connection handle + uint16_t handle; + //Device role - 0=Master/ 1=Slave + uint8_t role; + //Peer address type - 0=public/1=random + bd_addr_type_t peer_addr_type; + //Peer address + bd_addr_t peer_addr; + //Local_Resolvable_Private_Address + bd_addr_t local_resolv_priv_addr; + //Peer_Resolvable_Private_Address + bd_addr_t peer_resolv_priv_addr; + //Connection interval + uint16_t interval; + //Connection latency + uint16_t latency; + //Link supervision timeout + uint16_t sup_timeout; + //Master clock accuracy + uint8_t clk_accuracy; + //the advertising set + uint8_t adv_handle; + //the periodic advertising train + uint16_t sync_Handle; +} le_meta_event_enh_create_conn_complete_v2_t; + // LE PHY Update Complete Event -typedef struct le_meta_phy_update_complete +typedef struct le_meta_event_phy_update_complete { uint8_t status; uint16_t handle; phy_type_t tx_phy; phy_type_t rx_phy; -} le_meta_phy_update_complete_t; +} le_meta_event_phy_update_complete_t; // evt_type #define HCI_EXT_ADV_PROP_CONNECTABLE (1 << 0) @@ -1106,6 +1136,24 @@ typedef struct le_meta_event_periodic_adv_sync_established uint8_t clk_accuracy; } le_meta_event_periodic_adv_sync_established_t; +typedef struct le_meta_event_periodic_adv_sync_established_v2 +{ + uint8_t status; + uint16_t handle; + uint8_t sid; + bd_addr_type_t addr_type; + bd_addr_t address; + phy_type_t phy; + uint16_t interval; + uint8_t clk_accuracy; + + // [V2] additional fields + uint8_t num_subevents; + uint8_t subevent_interval; + uint8_t rsp_slot_delay; + uint8_t rsp_slot_spacing; +} le_meta_event_periodic_adv_sync_established_v2_t; + #define HCI_PRD_ADV_DATA_STATUS_CML (0) #define HCI_PRD_ADV_DATA_STATUS_HAS_MORE (1) #define HCI_PRD_ADV_DATA_STATUS_TRUNCED (2) @@ -1116,12 +1164,25 @@ typedef struct le_meta_event_periodic_adv_report uint16_t handle; int8_t tx_power; int8_t rssi; - uint8_t unused; + uint8_t cte_type; uint8_t data_status; uint8_t data_length; uint8_t data[0]; } le_meta_event_periodic_adv_report_t; +typedef struct le_meta_event_periodic_adv_report_v2 +{ + uint16_t handle; + int8_t tx_power; + int8_t rssi; + uint8_t cte_type; + uint16_t periodic_event_counter; + uint8_t subevent; + uint8_t data_status; + uint8_t data_length; + uint8_t data[0]; +} le_meta_event_periodic_adv_report_v2_t; + // LE Periodic Advertising Sync Lost Event typedef struct le_meta_event_periodic_adv_sync_lost { @@ -1132,21 +1193,21 @@ typedef struct le_meta_event_periodic_adv_sync_lost // {} // LE Advertising Set Terminated Event -typedef struct le_meta_adv_set_terminated +typedef struct le_meta_event_adv_set_terminated { uint8_t status; uint8_t adv_handle; uint16_t conn_handle; uint8_t num_events; // Num_Completed_Extended_Advertising_Events -} le_meta_adv_set_terminated_t; +} le_meta_event_adv_set_terminated_t; // LE Scan Request Received Event -typedef struct le_meta_scan_req_received +typedef struct le_meta_event_scan_req_received { uint8_t adv_handle; bd_addr_type_t scanner_addr_type; bd_addr_t scanner_addr; -} le_meta_scan_req_received_t; +} le_meta_event_scan_req_received_t; typedef enum ble_ch_sel_algo { @@ -1156,11 +1217,11 @@ typedef enum ble_ch_sel_algo } ble_ch_sel_algo_t; // LE Channel Selection Algorithm Event -typedef struct le_meta_ch_sel_algo +typedef struct le_meta_event_ch_sel_algo { uint16_t conn_handle; ble_ch_sel_algo_t algo; -} le_meta_ch_sel_algo_t; +} le_meta_event_ch_sel_algo_t; typedef struct le_iq_sample { @@ -1168,7 +1229,7 @@ typedef struct le_iq_sample int8_t q; } le_iq_sample_t; -typedef struct le_meta_connless_iq_report +typedef struct le_meta_event_connless_iq_report { uint16_t sync_handle; uint8_t channel_index; @@ -1180,9 +1241,9 @@ typedef struct le_meta_connless_iq_report uint16_t event_counter; uint8_t sample_count; le_iq_sample_t samples[0]; -} le_meta_connless_iq_report_t; +} le_meta_event_connless_iq_report_t; -typedef struct le_meta_pro_connless_iq_report +typedef struct le_meta_event_pro_connless_iq_report { bd_addr_type_t addr_type; bd_addr_t addr; @@ -1195,9 +1256,9 @@ typedef struct le_meta_pro_connless_iq_report uint8_t packet_status; uint8_t sample_count; le_iq_sample_t samples[0]; -} le_meta_pro_connless_iq_report_t; +} le_meta_event_pro_connless_iq_report_t; -typedef struct le_meta_conn_iq_report +typedef struct le_meta_event_conn_iq_report { uint16_t conn_handle; phy_type_t rx_phy; @@ -1210,15 +1271,29 @@ typedef struct le_meta_conn_iq_report uint16_t event_counter; uint8_t sample_count; le_iq_sample_t samples[0]; -} le_meta_conn_iq_report_t; +} le_meta_event_conn_iq_report_t; + +typedef struct le_meta_event_cte_req_failed +{ + uint8_t status; + uint16_t conn_handle; +} le_meta_event_cte_req_failed_t; -typedef struct le_meta_cte_req_failed +typedef struct le_meta_event_prd_adv_sync_transfer_recv { uint8_t status; uint16_t conn_handle; -} le_meta_cte_req_failed_t; + uint16_t service_data; + uint16_t sync_handle; + uint8_t adv_sid; + bd_addr_type_t addr_type; + bd_addr_t addr; + phy_type_t phy; + uint16_t prd_adv_interval; + uint8_t clk_acc; +} le_meta_event_prd_adv_sync_transfer_recv_t; -typedef struct le_meta_prd_adv_sync_transfer_recv +typedef struct le_meta_event_prd_adv_sync_transfer_recv_v2 { uint8_t status; uint16_t conn_handle; @@ -1230,7 +1305,13 @@ typedef struct le_meta_prd_adv_sync_transfer_recv phy_type_t phy; uint16_t prd_adv_interval; uint8_t clk_acc; -} le_meta_prd_adv_sync_transfer_recv_t; + + // [V2] additional fields + uint8_t num_subevents; + uint8_t subevent_interval; + uint8_t rsp_slot_delay; + uint8_t rsp_slot_spacing; +} le_meta_event_prd_adv_sync_transfer_recv_v2_t; typedef enum le_clock_accuracy { @@ -1244,12 +1325,12 @@ typedef enum le_clock_accuracy LE_CLOCK_ACCURACY_20_PPM, } le_clock_accuracy_t; -typedef struct le_meta_request_peer_sca_complete +typedef struct le_meta_event_request_peer_sca_complete { uint8_t status; uint16_t conn_handle; le_clock_accuracy_t peer_clock_accuracy; -} le_meta_request_peer_sca_complete_t; +} le_meta_event_request_peer_sca_complete_t; typedef enum le_path_loss_zone_event { @@ -1258,12 +1339,12 @@ typedef enum le_path_loss_zone_event PATH_LOSS_ZONE_ENTER_HIGH = 2, } le_path_loss_zone_event_t; -typedef struct le_meta_path_loss_threshold +typedef struct le_meta_event_path_loss_threshold { uint16_t conn_handle; uint8_t current_path_loss; // Current path loss (always zero or positive) Units: dB le_path_loss_zone_event_t zone_entered; -} le_meta_path_loss_threshold_t; +} le_meta_event_path_loss_threshold_t; typedef enum le_tx_power_reporting_reason { @@ -1272,7 +1353,7 @@ typedef enum le_tx_power_reporting_reason TX_POWER_REPORTING_REASON_HCI_COMPLETE = 2, } le_tx_power_reporting_reason_t; -typedef struct le_meta_tx_power_reporting +typedef struct le_meta_event_tx_power_reporting { uint8_t status; uint16_t conn_handle; @@ -1285,7 +1366,7 @@ typedef struct le_meta_tx_power_reporting // negative indicates decreased power, zero indicates unchanged) // Units: dB // 0x7F: Change is not available or is out of range -} le_meta_tx_power_reporting_t; +} le_meta_event_tx_power_reporting_t; typedef struct le_meta_subrate_change { @@ -1305,6 +1386,83 @@ typedef struct le_meta_subrate_change // Time Range: 100 ms to 32 s } le_meta_subrate_change_t; +typedef struct le_mete_event_prd_adv_subevent_data_req +{ + uint8_t adv_handle; // Used to identify a periodic advertising train + // Range: 0x00 to 0xEF + uint8_t subevent_start; // The first subevent that data is requested for. + // Range: 0x00 to 0x7F + uint8_t subevent_data_count; // The number of subevents that data is requested for. + // Range: 0x01 to 0x80 +} le_mete_event_prd_adv_subevent_data_req_t; + +typedef struct le_prd_adv_rsp_report +{ + int8_t tx_power; // Range: -127 to +20. Unit dBm + // 0x7F: Tx Power information not available + int8_t rssi; // Range: -127 to +20. Unit dBm + // 0x7F: RSSI not available + uint8_t cte_type; // 0x00: AoA; 0x01: AoD (1us); 0x02: AoD (2us) + // 0xFF: no CTE + uint8_t response_slot; // The response slot the data was received in. + // Range: 0x00 to 0xFF + uint8_t data_status; // 0x00: Data complete; + // 0x01: Data incomplete, more data to come; + // 0xFF: Failed to receive an AUX_SYNC_SUBEVENT_RSP PDU + uint8_t data_length; // Length of the Data field +#ifdef __ICCARM__ + uint8_t data[1]; +#else + uint8_t data[0]; +#endif +} le_prd_adv_rsp_report_t; + +typedef struct le_mete_event_prd_adv_rsp_report +{ + uint8_t adv_handle; // Used to identify a periodic advertising train + // Range: 0x00 to 0xEF + uint8_t subevent; // The subevent number. + // Range: 0x00 to 0x7F + uint8_t tx_status; // 0x00: AUX_SYNC_SUBEVENT_IND packet was transmitted + // 0x01: AUX_SYNC_SUBEVENT_IND packet was not transmitted. + // Others: reserved + uint8_t num_responses; // Number of responses in event. + // This is always <= 1 + le_prd_adv_rsp_report_t reports[1]; +} le_mete_event_prd_adv_rsp_report_t; + +// for naming compatibility +#define le_meta_tx_power_reporting_t le_meta_event_tx_power_reporting_t +#define le_meta_tx_power_reporting le_meta_event_tx_power_reporting +#define le_meta_path_loss_threshold_t le_meta_event_path_loss_threshold_t +#define le_meta_path_loss_threshold le_meta_event_path_loss_threshold +#define le_meta_request_peer_sca_complete_t le_meta_event_request_peer_sca_complete_t +#define le_meta_request_peer_sca_complete le_meta_event_request_peer_sca_complete +#define le_meta_prd_adv_sync_transfer_recv_v2_t le_meta_event_prd_adv_sync_transfer_recv_v2_t +#define le_meta_prd_adv_sync_transfer_recv_v2 le_meta_event_prd_adv_sync_transfer_recv_v2 +#define le_meta_prd_adv_sync_transfer_recv_t le_meta_event_prd_adv_sync_transfer_recv_t +#define le_meta_prd_adv_sync_transfer_recv le_meta_event_prd_adv_sync_transfer_recv +#define le_meta_conn_iq_report_t le_meta_event_conn_iq_report_t +#define le_meta_conn_iq_report le_meta_event_conn_iq_report +#define le_meta_cte_req_failed_t le_meta_event_cte_req_failed_t +#define le_meta_cte_req_failed le_meta_event_cte_req_failed +#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_connless_iq_report_t le_meta_event_connless_iq_report_t +#define le_meta_connless_iq_report le_meta_event_connless_iq_report +#define le_meta_ch_sel_algo_t le_meta_event_ch_sel_algo_t +#define le_meta_ch_sel_algo le_meta_event_ch_sel_algo +#define le_meta_scan_req_received_t le_meta_event_scan_req_received_t +#define le_meta_scan_req_received le_meta_event_scan_req_received +#define le_meta_phy_update_complete_t le_meta_event_phy_update_complete_t +#define le_meta_phy_update_complete le_meta_event_phy_update_complete +#define le_meta_directed_adv_report_t le_meta_event_directed_adv_report_t +#define le_meta_directed_adv_report le_meta_event_directed_adv_report +#define le_mete_prd_adv_subevent_data_req_t le_mete_event_prd_adv_subevent_data_req_t +#define le_mete_prd_adv_subevent_data_req le_mete_event_prd_adv_subevent_data_req +#define le_meta_adv_set_terminated_t le_meta_event_adv_set_terminated_t +#define le_meta_adv_set_terminated le_meta_event_adv_set_terminated + typedef enum btstack_l2cap_msg_def { BTSTACK_L2CAP_MSG_CAN_SEND_NOW = 0, diff --git a/bundles/mass_conn/inc/gap.h b/bundles/mass_conn/inc/gap.h index 595bde525..94ec41d4e 100644 --- a/bundles/mass_conn/inc/gap.h +++ b/bundles/mass_conn/inc/gap.h @@ -183,7 +183,7 @@ typedef enum typedef uint8_t adv_event_properties_t; -#define PERIODIC_ADV_BIT_INC_TX BIT(6) +#define PERIODIC_ADV_BIT_INC_TX BIT(ADV_INC_TX_POWER) typedef uint8_t periodic_adv_properties_t; /** @@ -539,6 +539,53 @@ uint8_t gap_set_periodic_adv_para(const uint8_t adv_handle, const uint16_t interval_max, const periodic_adv_properties_t properties); +/** + * @brief LE Set Periodic Advertising Parameters command + * + * @param adv_handle handle of advertising set + * + * @param interval_min 0xXXXX Range: 0x0006 to 0xFFFF + * Time = N * 1.25 ms + * Time Range: 7.5ms to 81.91875 s + * + * @param interval_max refer to interval_min + * + * @param properties BIT(6): Include TxPower in the advertising PDU + * + * @param num_subevents Number of subevents. Range: 0x00 to 0x80 + * + * @param subevent_interval Interval between subevents. Range: 0x06 to 0xFF + * Time = N × 1.25 ms + * Time Range: 7.5 ms to 318.75 ms + * + * @param response_slot_delay 0x00: No response slots + * 0xXX: Time between the advertising packet in a subevent and the first + * response slot. Range: 0x01 to 0xFE + * Time = N × 1.25 ms + * Time Range: 1.25 ms to 317.5 ms + * + * @param response_slot_spacing 0x00: No response slots + * 0xXX: Time between response slots. Range: 0x02 to 0xFF + * Time = N × 0.125 ms + * Time Range: 0.25 ms to 31.875 ms + * + * @param num_response_slots 0x00: No response slots + * 0xXX: Number of subevent response slots. Range: 0x01 to 0xFF + * + * @return 0: message sent to controller + */ +// uint8_t gap_set_periodic_adv_para_v2(const uint8_t adv_handle, +// const uint16_t interval_min, +// const uint16_t interval_max, +// const periodic_adv_properties_t properties, +// const uint8_t num_subevents, +// const uint8_t subevent_interval, +// const uint8_t response_slot_delay, +// const uint8_t response_slot_spacing, +// const uint8_t num_response_slots); +// WARNING: ^^^ this API is not available in this release + + /** * @brief LE Clear Advertising Sets command * @@ -728,6 +775,48 @@ uint8_t gap_ext_create_connection(const initiating_filter_policy_t filter_policy const uint8_t initiating_phy_num, const initiating_phy_config_t *phy_configs); +/** + * @brief LE Extended Create Connection command [V2] + * + * @ref `gap_ext_create_connection` + * + * When creating connection through PAwR, the `adv_handle` parameter is used to identify + * the periodic advertising train, and the `subevent` parameter is used to identify the + * subevent where a connection request shall be initiated from a periodic advertising train. + * Otherwise, these two parameters shall be set to 0xFF, in which case, the behavior of + * this function is exactly the same as [V1]. + * + * @param adv_handle Advertising_Handle identifying the periodic advertising train + * Range: 0x00 to 0xEF or 0xFF + * + * @param subevent Subevent where the connection request is to be sent. + * Range: 0x00 to 0x7F or 0xFF + * + * @param filter_policy @ref `gap_ext_create_connection` + * + * @param own_addr_type @ref `gap_ext_create_connection` + * + * @param peer_addr_type @ref `gap_ext_create_connection` + * + * @param peer_addr @ref `gap_ext_create_connection` + * + * @param initiating_phy_num @ref `gap_ext_create_connection` + * + * @param phy_configs @ref `gap_ext_create_connection` + * + * @return 0: message sent to controller + */ +// uint8_t gap_ext_create_connection_v2(const uint8_t adv_handle, +// const uint8_t subevent, +// const initiating_filter_policy_t filter_policy, +// const bd_addr_type_t own_addr_type, +// const bd_addr_type_t peer_addr_type, +// const uint8_t *peer_addr, +// const uint8_t initiating_phy_num, +// const initiating_phy_config_t *phy_configs); +// WARNING: ^^^ this API is not available in this release + + /** * @brief Cancel connection process initiated by gap_ext_create_connection * @@ -1333,6 +1422,78 @@ uint8_t gap_tx_test_v4(uint8_t tx_channel, uint8_t test_data_length, */ uint8_t gap_test_end(void); +#pragma pack (push, 1) + +typedef struct +{ + uint8_t subevent; // The subevent index of the data contained in this command. Range: 0x00 to 0x7F + uint8_t rsp_slot_start; // The first response slots to be used in this subevent + uint8_t rsp_slot_count; // The number of response slots to be used. + uint8_t data_len; // The number of octets in the `data`. [0..251] + const uint8_t * data; // Advertising data +} gap_prd_adv_subevent_data_t; + +#pragma pack (pop) + +/** + * @brief Set the data for one or more subevents of PAwR + * + * The data for a subevent will be transmitted only once. Total length of the packed + * HCI command should not exceed maximum length. + * + * @param[in] adv_handle Used to identify a periodic advertising train. Range: 0x00 to 0xEF + * @param[in] num_subevents Number of subevent data in the command. (0x01..0x0f) + * @param[in] data data for each subevents + * @return 0: Message is sent out; Other: Message is not sent out + */ +// uint8_t gap_set_periodic_adv_subevent_data(uint8_t adv_handle, +// uint8_t num_subevents, +// const gap_prd_adv_subevent_data_t *data); +// WARNING: ^^^ this API is not available in this release + + +/** + * @brief Set the data for a response slot in a specific subevent of the PAwR + * + * The data for a subevent will be transmitted only once. + * + * @param[in] sync_handle Identify the PAwR train. Range: 0x0000 to 0x0EFF + * @param[in] request_event The value of `paEventCounter` for the periodic advertising + * packet that the Host is responding to. + * @param[in] request_subevent The subevent for the periodic advertising packet that the Host is responding to. + * @param[in] rsp_subevent Identify the subevent of the PAwR train. Range: 0x00 to 0x7F + * @param[in] rsp_slot Identify the response slot of the PAwR train. Range: 0x00 to 0xFF + * @param[in] rsp_data_len The number of octets in the `rsp_data` parameter. (0..251) + * @param[in] rsp_data Response data. + * @return 0: Message is sent out; Other: Message is not sent out + */ +// uint8_t gap_set_periodic_adv_rsp_data(uint16_t sync_handle, +// uint16_t request_event, +// uint8_t request_subevent, +// uint8_t rsp_subevent, +// uint8_t rsp_slot, +// uint8_t rsp_data_len, +// const uint8_t *rsp_data); +// WARNING: ^^^ this API is not available in this release + + +/** + * @brief Instruct the Controller to synchronize with a subset of the subevents within a PAwR train + * + * @param[in] sync_handle Identify the PAwR train. Range: 0x0000 to 0x0EFF + * @param[in] periodic_adv_properties Properties (bit combination of \ref `adv_event_property_t`). + * Only 0 or PERIODIC_ADV_BIT_INC_TX is allowed. + * @param[in] num_subevents Number of subevents. Range: 0x01 to 0x80 + * @param[in] subevents Each subevent to synchronize with. Range 0x00 to 0x7F + * @return 0: Message is sent out; Other: Message is not sent out + */ +// uint8_t gap_set_periodic_sync_subevent(uint16_t sync_handle, +// uint16_t periodic_adv_properties, +// uint8_t num_subevents, +// const uint8_t *subevents); +// WARNING: ^^^ this API is not available in this release + + /** * @brief Start/Stop transmission of continuouswave. * diff --git a/bundles/mass_conn/inc/platform_api.h b/bundles/mass_conn/inc/platform_api.h index f670fd75a..7f945d7bb 100644 --- a/bundles/mass_conn/inc/platform_api.h +++ b/bundles/mass_conn/inc/platform_api.h @@ -458,6 +458,9 @@ typedef enum PLATFORM_CFG_PS_DBG_3, PLATFORM_CFG_PS_DBG_4, // Debugging parameters for ING916. Default (0) // Bit [0]: `platform_shutdown` uses DEEPER SLEEP (1) or SLEEP (0) + PLATFORM_CFG_FAST_DEEP_SLEEP_TIME_REDUCTION, // sleep time reduction (fast deep sleep mode) in us. + // Requirement: < PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION + // Only available for ING916 (default: ~2000us) } platform_cfg_item_t; typedef enum diff --git a/bundles/mini/ING9168xx/apis.json b/bundles/mini/ING9168xx/apis.json index 0109526db..0c553ab02 100644 --- a/bundles/mini/ING9168xx/apis.json +++ b/bundles/mini/ING9168xx/apis.json @@ -249,21 +249,21 @@ "sm_config_conn": "0x0201e109", "sm_encryption_key_size": "0x0201e2bf", "sm_just_works_confirm": "0x0201e845", - "sm_le_device_key": "0x0201eb91", - "sm_passkey_input": "0x0201ec27", - "sm_private_random_address_generation_get": "0x0201efe1", - "sm_private_random_address_generation_get_mode": "0x0201efe9", - "sm_private_random_address_generation_set_mode": "0x0201eff5", - "sm_private_random_address_generation_set_update_period": "0x0201f01d", - "sm_register_external_ltk_callback": "0x0201f159", - "sm_register_oob_data_callback": "0x0201f165", - "sm_request_pairing": "0x0201f171", - "sm_send_security_request": "0x0201fc47", - "sm_set_accepted_stk_generation_methods": "0x0201fc6d", - "sm_set_authentication_requirements": "0x0201fc79", - "sm_set_encryption_key_size_range": "0x0201fc85", - "sscanf_bd_addr": "0x0201ffe5", - "sysSetPublicDeviceAddr": "0x02020099", + "sm_le_device_key": "0x0201eb7d", + "sm_passkey_input": "0x0201ec13", + "sm_private_random_address_generation_get": "0x0201efcd", + "sm_private_random_address_generation_get_mode": "0x0201efd5", + "sm_private_random_address_generation_set_mode": "0x0201efe1", + "sm_private_random_address_generation_set_update_period": "0x0201f009", + "sm_register_external_ltk_callback": "0x0201f145", + "sm_register_oob_data_callback": "0x0201f151", + "sm_request_pairing": "0x0201f15d", + "sm_send_security_request": "0x0201fc33", + "sm_set_accepted_stk_generation_methods": "0x0201fc59", + "sm_set_authentication_requirements": "0x0201fc65", + "sm_set_encryption_key_size_range": "0x0201fc71", + "sscanf_bd_addr": "0x0201ffd1", + "sysSetPublicDeviceAddr": "0x02020085", "uuid128_to_str": "0x02020841", "uuid_add_bluetooth_prefix": "0x02020899", "uuid_has_bluetooth_prefix": "0x020208b9", diff --git a/bundles/mini/ING9168xx/meta.json b/bundles/mini/ING9168xx/meta.json index 33593fcbb..38dd47b7a 100644 --- a/bundles/mini/ING9168xx/meta.json +++ b/bundles/mini/ING9168xx/meta.json @@ -1,18 +1,18 @@ { "app": { - "base": 33718272 + "base": 33722368 }, "ram": { "base": 536870912, - "size": 28988 + "size": 29100 }, "rom": { "base": 33562624, - "size": 155620 + "size": 155732 }, "version": [ 2, - 2, - 53 + 3, + 0 ] } \ No newline at end of file diff --git a/bundles/mini/ING9168xx/platform.bin b/bundles/mini/ING9168xx/platform.bin index 99a72d657e503979531858deef8ebcd8b2c6dba7..5a4983df0367aa1b1ca8fa6cd5037663cf1e58ba 100644 GIT binary patch delta 13409 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 LA0QdN&g1_8x3X7w diff --git a/bundles/mini/ING9187xx/apis.json b/bundles/mini/ING9187xx/apis.json index 4cd856657..ab25b27e2 100644 --- a/bundles/mini/ING9187xx/apis.json +++ b/bundles/mini/ING9187xx/apis.json @@ -234,98 +234,98 @@ "sm_config_conn": "0x0001f269", "sm_encryption_key_size": "0x0001f41f", "sm_just_works_confirm": "0x0001f9a5", - "sm_le_device_key": "0x0001fcf1", - "sm_passkey_input": "0x0001fd87", - "sm_private_random_address_generation_get": "0x00020141", - "sm_private_random_address_generation_get_mode": "0x00020149", - "sm_private_random_address_generation_set_mode": "0x00020155", - "sm_private_random_address_generation_set_update_period": "0x0002017d", - "sm_register_external_ltk_callback": "0x000202b9", - "sm_register_oob_data_callback": "0x000202c5", - "sm_request_pairing": "0x000202d1", - "sm_send_security_request": "0x00020da7", - "sm_set_accepted_stk_generation_methods": "0x00020dcd", - "sm_set_authentication_requirements": "0x00020dd9", - "sm_set_encryption_key_size_range": "0x00020de5", - "sscanf_bd_addr": "0x00021141", - "sysSetPublicDeviceAddr": "0x000214f5", - "uuid128_to_str": "0x00021b01", - "uuid_add_bluetooth_prefix": "0x00021b59", - "uuid_has_bluetooth_prefix": "0x00021b79", - "uxListRemove": "0x00021b95", - "uxQueueMessagesWaiting": "0x00021bbd", - "uxQueueMessagesWaitingFromISR": "0x00021be5", - "uxQueueSpacesAvailable": "0x00021c01", - "uxTaskGetStackHighWaterMark": "0x00021c2d", - "uxTaskPriorityGet": "0x00021c4d", - "uxTaskPriorityGetFromISR": "0x00021c69", - "vListInitialise": "0x00021d23", - "vListInitialiseItem": "0x00021d39", - "vListInsert": "0x00021d3f", - "vListInsertEnd": "0x00021d6f", - "vPortEndScheduler": "0x00021d89", - "vPortEnterCritical": "0x00021db5", - "vPortExitCritical": "0x00021df9", - "vPortFree": "0x00021e2d", - "vPortSuppressTicksAndSleep": "0x00021ec1", - "vPortValidateInterruptPriority": "0x00021fe9", - "vQueueDelete": "0x00022045", - "vQueueWaitForMessageRestricted": "0x00022071", - "vTaskDelay": "0x000220b9", - "vTaskInternalSetTimeOutState": "0x00022105", - "vTaskMissedYield": "0x00022115", - "vTaskPlaceOnEventList": "0x00022121", - "vTaskPlaceOnEventListRestricted": "0x00022159", - "vTaskPriorityDisinheritAfterTimeout": "0x00022199", - "vTaskPrioritySet": "0x00022245", - "vTaskResume": "0x0002230d", - "vTaskStartScheduler": "0x00022391", - "vTaskStepTick": "0x00022421", - "vTaskSuspend": "0x00022451", - "vTaskSuspendAll": "0x0002250d", - "vTaskSwitchContext": "0x0002251d", - "xPortStartScheduler": "0x000225c1", - "xQueueAddToSet": "0x00022689", - "xQueueCreateCountingSemaphore": "0x000226ad", - "xQueueCreateCountingSemaphoreStatic": "0x000226e9", - "xQueueCreateMutex": "0x0002272d", - "xQueueCreateMutexStatic": "0x00022743", - "xQueueCreateSet": "0x0002275d", - "xQueueGenericCreate": "0x00022765", - "xQueueGenericCreateStatic": "0x000227b1", - "xQueueGenericReset": "0x00022819", - "xQueueGenericSend": "0x000228a5", - "xQueueGenericSendFromISR": "0x00022a11", - "xQueueGiveFromISR": "0x00022ad1", - "xQueueGiveMutexRecursive": "0x00022b75", - "xQueueIsQueueEmptyFromISR": "0x00022bb5", - "xQueueIsQueueFullFromISR": "0x00022bd9", - "xQueuePeek": "0x00022c01", - "xQueuePeekFromISR": "0x00022d29", - "xQueueReceive": "0x00022d95", - "xQueueReceiveFromISR": "0x00022ec1", - "xQueueRemoveFromSet": "0x00022f55", - "xQueueSelectFromSet": "0x00022f77", - "xQueueSelectFromSetFromISR": "0x00022f89", - "xQueueSemaphoreTake": "0x00022f9d", - "xQueueTakeMutexRecursive": "0x00023109", - "xTaskCheckForTimeOut": "0x0002314d", - "xTaskCreate": "0x000231bd", - "xTaskCreateStatic": "0x00023219", - "xTaskGetCurrentTaskHandle": "0x00023289", - "xTaskGetSchedulerState": "0x00023295", - "xTaskGetTickCount": "0x000232b1", - "xTaskGetTickCountFromISR": "0x000232bd", - "xTaskIncrementTick": "0x000232cd", - "xTaskPriorityDisinherit": "0x00023399", - "xTaskPriorityInherit": "0x0002342d", - "xTaskRemoveFromEventList": "0x000234c1", - "xTaskResumeAll": "0x00023541", - "xTaskResumeFromISR": "0x00023609", - "xTimerCreate": "0x00023695", - "xTimerCreateStatic": "0x000236c9", - "xTimerCreateTimerTask": "0x00023701", - "xTimerGenericCommand": "0x0002376d", - "xTimerGetExpiryTime": "0x000237dd", - "xTimerGetTimerDaemonTaskHandle": "0x000237fd" + "sm_le_device_key": "0x0001fcdd", + "sm_passkey_input": "0x0001fd73", + "sm_private_random_address_generation_get": "0x0002012d", + "sm_private_random_address_generation_get_mode": "0x00020135", + "sm_private_random_address_generation_set_mode": "0x00020141", + "sm_private_random_address_generation_set_update_period": "0x00020169", + "sm_register_external_ltk_callback": "0x000202a5", + "sm_register_oob_data_callback": "0x000202b1", + "sm_request_pairing": "0x000202bd", + "sm_send_security_request": "0x00020d93", + "sm_set_accepted_stk_generation_methods": "0x00020db9", + "sm_set_authentication_requirements": "0x00020dc5", + "sm_set_encryption_key_size_range": "0x00020dd1", + "sscanf_bd_addr": "0x0002112d", + "sysSetPublicDeviceAddr": "0x000214e1", + "uuid128_to_str": "0x00021aed", + "uuid_add_bluetooth_prefix": "0x00021b45", + "uuid_has_bluetooth_prefix": "0x00021b65", + "uxListRemove": "0x00021b81", + "uxQueueMessagesWaiting": "0x00021ba9", + "uxQueueMessagesWaitingFromISR": "0x00021bd1", + "uxQueueSpacesAvailable": "0x00021bed", + "uxTaskGetStackHighWaterMark": "0x00021c19", + "uxTaskPriorityGet": "0x00021c39", + "uxTaskPriorityGetFromISR": "0x00021c55", + "vListInitialise": "0x00021d0f", + "vListInitialiseItem": "0x00021d25", + "vListInsert": "0x00021d2b", + "vListInsertEnd": "0x00021d5b", + "vPortEndScheduler": "0x00021d75", + "vPortEnterCritical": "0x00021da1", + "vPortExitCritical": "0x00021de5", + "vPortFree": "0x00021e19", + "vPortSuppressTicksAndSleep": "0x00021ead", + "vPortValidateInterruptPriority": "0x00021fd5", + "vQueueDelete": "0x00022031", + "vQueueWaitForMessageRestricted": "0x0002205d", + "vTaskDelay": "0x000220a5", + "vTaskInternalSetTimeOutState": "0x000220f1", + "vTaskMissedYield": "0x00022101", + "vTaskPlaceOnEventList": "0x0002210d", + "vTaskPlaceOnEventListRestricted": "0x00022145", + "vTaskPriorityDisinheritAfterTimeout": "0x00022185", + "vTaskPrioritySet": "0x00022231", + "vTaskResume": "0x000222f9", + "vTaskStartScheduler": "0x0002237d", + "vTaskStepTick": "0x0002240d", + "vTaskSuspend": "0x0002243d", + "vTaskSuspendAll": "0x000224f9", + "vTaskSwitchContext": "0x00022509", + "xPortStartScheduler": "0x000225ad", + "xQueueAddToSet": "0x00022675", + "xQueueCreateCountingSemaphore": "0x00022699", + "xQueueCreateCountingSemaphoreStatic": "0x000226d5", + "xQueueCreateMutex": "0x00022719", + "xQueueCreateMutexStatic": "0x0002272f", + "xQueueCreateSet": "0x00022749", + "xQueueGenericCreate": "0x00022751", + "xQueueGenericCreateStatic": "0x0002279d", + "xQueueGenericReset": "0x00022805", + "xQueueGenericSend": "0x00022891", + "xQueueGenericSendFromISR": "0x000229fd", + "xQueueGiveFromISR": "0x00022abd", + "xQueueGiveMutexRecursive": "0x00022b61", + "xQueueIsQueueEmptyFromISR": "0x00022ba1", + "xQueueIsQueueFullFromISR": "0x00022bc5", + "xQueuePeek": "0x00022bed", + "xQueuePeekFromISR": "0x00022d15", + "xQueueReceive": "0x00022d81", + "xQueueReceiveFromISR": "0x00022ead", + "xQueueRemoveFromSet": "0x00022f41", + "xQueueSelectFromSet": "0x00022f63", + "xQueueSelectFromSetFromISR": "0x00022f75", + "xQueueSemaphoreTake": "0x00022f89", + "xQueueTakeMutexRecursive": "0x000230f5", + "xTaskCheckForTimeOut": "0x00023139", + "xTaskCreate": "0x000231a9", + "xTaskCreateStatic": "0x00023205", + "xTaskGetCurrentTaskHandle": "0x00023275", + "xTaskGetSchedulerState": "0x00023281", + "xTaskGetTickCount": "0x0002329d", + "xTaskGetTickCountFromISR": "0x000232a9", + "xTaskIncrementTick": "0x000232b9", + "xTaskPriorityDisinherit": "0x00023385", + "xTaskPriorityInherit": "0x00023419", + "xTaskRemoveFromEventList": "0x000234ad", + "xTaskResumeAll": "0x0002352d", + "xTaskResumeFromISR": "0x000235f5", + "xTimerCreate": "0x00023681", + "xTimerCreateStatic": "0x000236b5", + "xTimerCreateTimerTask": "0x000236ed", + "xTimerGenericCommand": "0x00023759", + "xTimerGetExpiryTime": "0x000237c9", + "xTimerGetTimerDaemonTaskHandle": "0x000237e9" } \ No newline at end of file diff --git a/bundles/mini/ING9187xx/meta.json b/bundles/mini/ING9187xx/meta.json index 2cef60463..e98b042c7 100644 --- a/bundles/mini/ING9187xx/meta.json +++ b/bundles/mini/ING9187xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 135284 + "size": 135264 }, "version": [ 1, 9, - 39 + 40 ] } \ No newline at end of file diff --git a/bundles/mini/ING9187xx/platform.bin b/bundles/mini/ING9187xx/platform.bin index 5525b41f302e34b9baecabbb7f402b943128a1ce..010ceaca7202d8c340b3b79aaba1b9538f4df757 100644 GIT binary patch delta 8596 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 M7|7DeYNq%91AARHDgXcg delta 8647 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 OHFSD+7Y%EG=>G@4&2{hq diff --git a/bundles/noos_mini/ING9188xx/apis.json b/bundles/noos_mini/ING9188xx/apis.json index f07fd5340..f951f50e6 100644 --- a/bundles/noos_mini/ING9188xx/apis.json +++ b/bundles/noos_mini/ING9188xx/apis.json @@ -245,22 +245,22 @@ "sm_config_conn": "0x0001f8c9", "sm_encryption_key_size": "0x0001fa7f", "sm_just_works_confirm": "0x00020005", - "sm_le_device_key": "0x00020351", - "sm_passkey_input": "0x000203e7", - "sm_private_random_address_generation_get": "0x000207a1", - "sm_private_random_address_generation_get_mode": "0x000207a9", - "sm_private_random_address_generation_set_mode": "0x000207b5", - "sm_private_random_address_generation_set_update_period": "0x000207dd", - "sm_register_external_ltk_callback": "0x00020919", - "sm_register_oob_data_callback": "0x00020925", - "sm_request_pairing": "0x00020931", - "sm_send_security_request": "0x00021407", - "sm_set_accepted_stk_generation_methods": "0x0002142d", - "sm_set_authentication_requirements": "0x00021439", - "sm_set_encryption_key_size_range": "0x00021445", - "sscanf_bd_addr": "0x000217a1", - "sysSetPublicDeviceAddr": "0x00021b55", - "uuid128_to_str": "0x000222f5", - "uuid_add_bluetooth_prefix": "0x0002234d", - "uuid_has_bluetooth_prefix": "0x0002236d" + "sm_le_device_key": "0x0002033d", + "sm_passkey_input": "0x000203d3", + "sm_private_random_address_generation_get": "0x0002078d", + "sm_private_random_address_generation_get_mode": "0x00020795", + "sm_private_random_address_generation_set_mode": "0x000207a1", + "sm_private_random_address_generation_set_update_period": "0x000207c9", + "sm_register_external_ltk_callback": "0x00020905", + "sm_register_oob_data_callback": "0x00020911", + "sm_request_pairing": "0x0002091d", + "sm_send_security_request": "0x000213f3", + "sm_set_accepted_stk_generation_methods": "0x00021419", + "sm_set_authentication_requirements": "0x00021425", + "sm_set_encryption_key_size_range": "0x00021431", + "sscanf_bd_addr": "0x0002178d", + "sysSetPublicDeviceAddr": "0x00021b41", + "uuid128_to_str": "0x000222e1", + "uuid_add_bluetooth_prefix": "0x00022339", + "uuid_has_bluetooth_prefix": "0x00022359" } \ No newline at end of file diff --git a/bundles/noos_mini/ING9188xx/meta.json b/bundles/noos_mini/ING9188xx/meta.json index 715b6bd0d..5c325c1df 100644 --- a/bundles/noos_mini/ING9188xx/meta.json +++ b/bundles/noos_mini/ING9188xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 130536 + "size": 130516 }, "version": [ 1, 9, - 39 + 40 ] } \ No newline at end of file diff --git a/bundles/noos_mini/ING9188xx/platform.bin b/bundles/noos_mini/ING9188xx/platform.bin index 9ff46213615c0532f52b59673a12fe51a730c55f..0a59dec03e20b8db296687590cc276fae2287809 100644 GIT binary patch delta 6605 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 c<3Z5&-xa)1AFP;$<oN8OHcdBLFPM>;PXG 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 PA+iL!N|wMy6CnQw@@p!n delta 8793 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 XC|^CPe09Nqm_adpUR^?6c8L8q36gem diff --git a/bundles/noos_typical/ING9188xx/apis.json b/bundles/noos_typical/ING9188xx/apis.json index 4544197ec..355e8fac1 100644 --- a/bundles/noos_typical/ING9188xx/apis.json +++ b/bundles/noos_typical/ING9188xx/apis.json @@ -245,22 +245,22 @@ "sm_config_conn": "0x0001faad", "sm_encryption_key_size": "0x0001fc63", "sm_just_works_confirm": "0x000201e9", - "sm_le_device_key": "0x00020535", - "sm_passkey_input": "0x000205cb", - "sm_private_random_address_generation_get": "0x00020985", - "sm_private_random_address_generation_get_mode": "0x0002098d", - "sm_private_random_address_generation_set_mode": "0x00020999", - "sm_private_random_address_generation_set_update_period": "0x000209c1", - "sm_register_external_ltk_callback": "0x00020afd", - "sm_register_oob_data_callback": "0x00020b09", - "sm_request_pairing": "0x00020b15", - "sm_send_security_request": "0x000215eb", - "sm_set_accepted_stk_generation_methods": "0x00021611", - "sm_set_authentication_requirements": "0x0002161d", - "sm_set_encryption_key_size_range": "0x00021629", - "sscanf_bd_addr": "0x00021985", - "sysSetPublicDeviceAddr": "0x00021d39", - "uuid128_to_str": "0x000224d9", - "uuid_add_bluetooth_prefix": "0x00022531", - "uuid_has_bluetooth_prefix": "0x00022551" + "sm_le_device_key": "0x00020521", + "sm_passkey_input": "0x000205b7", + "sm_private_random_address_generation_get": "0x00020971", + "sm_private_random_address_generation_get_mode": "0x00020979", + "sm_private_random_address_generation_set_mode": "0x00020985", + "sm_private_random_address_generation_set_update_period": "0x000209ad", + "sm_register_external_ltk_callback": "0x00020ae9", + "sm_register_oob_data_callback": "0x00020af5", + "sm_request_pairing": "0x00020b01", + "sm_send_security_request": "0x000215d7", + "sm_set_accepted_stk_generation_methods": "0x000215fd", + "sm_set_authentication_requirements": "0x00021609", + "sm_set_encryption_key_size_range": "0x00021615", + "sscanf_bd_addr": "0x00021971", + "sysSetPublicDeviceAddr": "0x00021d25", + "uuid128_to_str": "0x000224c5", + "uuid_add_bluetooth_prefix": "0x0002251d", + "uuid_has_bluetooth_prefix": "0x0002253d" } \ No newline at end of file diff --git a/bundles/noos_typical/ING9188xx/meta.json b/bundles/noos_typical/ING9188xx/meta.json index 46b82ed38..ff9fbbcf1 100644 --- a/bundles/noos_typical/ING9188xx/meta.json +++ b/bundles/noos_typical/ING9188xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 131028 + "size": 131012 }, "version": [ 1, 9, - 39 + 40 ] } \ No newline at end of file diff --git a/bundles/noos_typical/ING9188xx/platform.bin b/bundles/noos_typical/ING9188xx/platform.bin index 5fda934accf2ab71af6eb065a8969e94ffb4bc43..2ac758f21d61171b15196f0b772b500dd91db07b 100644 GIT binary patch delta 6204 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 OkZ@Hj-RH$83Hd)pf)IQF delta 6501 zcmZu#3sh6r(%y5Dkc5W>6%i3Rfm%bAii!%N5>O98MYQVm$t}KWP^s~C#i9kQTu@8J zdulhgt+!aKqWxWhkp`qFzFJ>Zu;SIKHHZjSdkrf01oHal1lqq{>(5%*-|W3-X3xx? zJ!hYD-X*{3k{20aQ2B`*xhyS?Avwkv#UTc)#zxOLFR10!eX8NS@qV8r08@s1 zjN1cy$)MD@cfb@0>@hx3+W@{YHis>c%33uHDd8t+9zd&cV0euL{?0cI838-^fQUqR zVSGCxN#-9pm?63eNn4NU@ETmhz=?zF<c~NoL zUWhs*t3;kwe$B`rKNV7pj_8Z5#l(;(TC#U!0JQQIBg539H{f3X%PK3bCP`B2CucBe z<<_~X+#EwTTHgiOS_F1b-vb*M+G%Y6^RCH0ItcWt2MDt~=c`s~_npI=rI@|wtx(!U~Y5p8f= z`nXd2J8iBcztcZe7K^fOo|~0rNOwi{TBVsU9G#`kLC*iPyr9zjr+!Z5LOwh?3|8^U z(NhA&xXi_QQVuMGG0FWscIDB%eB4pPQN=PbLiN!>e!bDs-(nJg*7oNe(K8uoIR946 zWX3z3|5r>OKT)cShp`w>6Y`2zj|t>|j!A%LNG$+6zhz87c=R8vVk`-#b=X%_cyZ(( z3`f+skCu0>3XG+muNkuvGWqb>CGMO|<9EmIgfc#O>}OEQSB(wwGoa*e>xG@d2=dKi zSH~3pVYCVLl(_X1{`e3-T8|sTAYuj?AL&thzHU z(Px%>#~4dCN^IsM#s|Pse$x0bSkI@ApMW`cbbJtOGhP~B1$Y!b&?dn!{s(P2B=Fhs z)$kr4n~((gd|tu_u*#^Ma1O-jiO->mubK22)Eeh;DGW?79@edtg0Im(c?;vix`@VB zU(>46_O*B$zevdd=xy|wVUxf@qjL6gsZUW9p0$w-i5|re4ZmgHXMY|s4xImhfs4E> zbthCBcc;o_J^v&znjxyu#v_Zrf!}w%V2QZv8B0UZpTec0SM^IrW2;;ihczK-Sw4tE z@8n}UZ@Dyy45+YRa2FpFR*&0nxC5y^1E9)w_8UuM2nj8Uee-B36d5COy`&iXn7jZ5)EQ?K$^q*6c^{>~bmQTV_DJDVV;rCBiAi;4 zZ;}k0Mz8(J4C6i4IRAhhpwl?#&>;n;rR$gXU(biF#tC()-Vns^yVnc+_=xjDEHTDEJjcL6Ue^2oH8eLT zfzOXJ$+x|lkBKP-v{e*LV8$|`9;rZ;L@QC@e2n+ zh*GPQ6LzD5u(wWa|7aQSXZaf4t+C`YFx5EeRkGIk?p^hG{YXNMAE}@-Wb?S4_b^rvM3dcgO1m>H3weU~yKW3FpH1E)tlTcavCmZ~@zNq>Dt%-*~C^r2&9&m@J zoACSv3NU>kVdQi4x55zV;bR!FnH_g ztl@s)X=T<3@N_HD(d2x$60AS5FpKW%g8TU}6KJ*!RO7C-??Bb5rm&rm zDuIKh+>c-*7G&D73)aB9rj~X0yJP(r=DvTYF#Xrs9zdLD5zy9 zyUir|8b&f;qcKMz7fzb0kAgqLC~c-2$KWG?J9JSwWIzMGUJhZv(wF6M6q@M1=~H196N;wQ1ou@GpSRsm%mx*l7x` z1TTPgQ+O3-ZJ&2+i?bH(ke4(Ic5Cz6npSHHSUjps3s1sQfDh=IYK;1B+ExusaEUg2 zi`p}kBuo8CAnWrHxc)fhlhV}Yo@2*c@vS|HM zHZpTyrn~VZ5>iHwordpW8r@h66^zV-zIg`v!ry7)88`z&sq!qw?;V1SaI z4py9nfnFXQ8K@s1DLS!YEp0vvvDr&Yq@hI56h&qhT9t%3tYE?N+$nt#ugc{f3#+UQ z_pw#$x3J`qkZrFif5RMIP%HCnSnQS}ZYdz?oG5kEDJy*@?03jG5%)PHML)ElEJRjG zjwEq}eI{f%WJFmnj!C|jwim5U;+{zbnL|c*odbV}qzBGH$P{0zDpcC`5M*sS(j>IH zQY=Jy!8*6-V=GH)J^D0s84&ybn4RN9$@bzkvbHFcyyCh*ea}PCvM$deHy2txi6yJh z>ecP#U!5Z_q3eRTZGBeyHj*SL9~B!ID*Kh_J5iL~JYrivGpeTP|R?WEjypoeqx*mqbH@6o33 zFj0Bx`#mi38*1yt7MaOuS=%}=^mht_Xzuq|uX<49_po|sb0=%otdO-At6$#6V3KIk$TOsFEhMcRqhcQrk0u^ z)YhUwnyAIO?77e3!Y9Cyd;Ea)J5@-DU1*_!m$Ah3q;Z$g^BTJD zGVFovRCxs^VBJi<0wdu=`oR?}p9!@53d~@hc~Z+oeAH>LLVp-RQ?Ei&O0=t4IPWT1 zLBcLiPUlpSz03|wB%;2kdn`<|%ggX?^T9b?I;V?t3RCS4;U^afJByrWael4sKP}(t zbdk-%P8)EiN}7Zc+I|%VW&646TQHXPYb~$A1(}?~;mb~j&0P1QWv@<)s-x_gRfAT2s*B;o-U>U}Q~4f*jR_`d zr%>1#jrGoMH)pZsgjH`+Oo*zRXa@S(51`D>w#qpY+$;>XF`#uRzZSC zeO{7B=(J(c!A-(ITS0kAR&jZ*4h~O4A1~U9Cc|NQn|~ zX`RJZ2_Z$rRwlC83M{gzhwWtfCbx(w^>=H~~mU9XNof{sDiP!N8NI7l14vF|M53hr9GEcdL z^rtJ44AkJ;mUz|Lw&KGw8Apah)oIY1UxZ|OrVev$KYd<@=@?4G>hY95q%-S5ogLxK zvwG)*7kC`Giwj<~U27SsiLLX!7pb{jHyk7Aaah{M6NeD!6nSnS&o?$Ew7D@_Gp%l{ z#`OEV(yhm%6yMm>!V5@PKkg#(me>xq6q;php|vkz-!HTV67mUrqA6g)JdTKQKF--o zGZp1wYGNLtmV{O};&SZ;28Zy_F^bi!!-D1~G5=zIZoX=M&s>3_R63;X+YET;!R+$v z@Zh9sG0$W)<_4CiHoD;kdNz+9xB(%-c@9za5SEx@QB~Kve%CYFX1boot)@H=Mj zvP;oz7n*((5@jrIWMA5L6YFI&4Q_yBf6l2gYA_EDI?e8aCeqVsb_1#kp$8hUps@6A z1El)iuU1t^@j1mVRv=3cns^KA+$FmI7FO5AwBZ)sOyu(%{>aLHkHJf7*cWf~KQEF8c#B$6^PP>F(+;8`$hG1N(l+rS!M7Dv#X}*&fl1(g20Ro-(%BCn-`De`c=;3ArCPgi ziavdS8B|NX%%F~#idRJOEi` z(w6Gq;JWlVaW4w!utrRTesoSFs1rAL+hVBj=X!8b&MwUA)DFlwo|mAw!QyQwv6FT0 zBvC&Sd{3qA(o9Utf8AiHF;sYSX9{K9z67}aNXVq88zIi8x0_j|6`Ai*uZOr3k#xjE z2pg>HJdpr5)_&t`8NnrRF`Pp8RH*GJ3EFnNGBE!*8PZrUnViH;=bj3Arrd{kI_US>&YkFBR3|zJu?sqfHUW+k)-ISFTk&Hci^c{xU|na!rhJ+p>1&Wa-Ac+j7#yjh`yN61 z%(b>2WsFXRn=lK%tLUWSwZNN`ad`1cY81w~Lh(?E$A+kzgilUSL>^UzH_nmZMq#;2 zfsZg%4d9;;oqO(;@I6g!h8Q?SX)|X3oAlq!SavE*9nH|hWRJry&u?L({xqH;GZ8N$ z&O*F~I2-W};$IMdM4W@zhBy~71m)&+_va%ju)hGY3Fj9g-bYMD{23AK_*D^c1op2Z zMj>88OkqiX;zA+|2U-wA5XB#Z0&m7Kbde3e0qlGNePwcSm|xf@%yi`mRKOde8NpIQ zJaJixw>XI(_7J_XFYDbkE@KH%#nB^AVL-Moj`zgAh`kVdBKAh?hv<(e>gm&s0f@oa z?~5q@0$DtV*zbq5*dO{Jy5hD?O5Qia(ZVpF`!2U>%Oq6ATkDDuT4iVGwl>TrAlVlv`H#F>bb5XB$Ib{U$; zdJ&R>6FMA7G1WhVFb2YD`+wkV(9zk?0Y3?kH63{lTjjEX7>1OZh6yl%kxj?1j1qAZ z0%%bORz$sNPX~Th@u@_f;i$hDZK$R3HpmbEFqXj^EFtF+@8SPERzC?*5SNP(|1Svv zA|o40Fbzy?Hu#$H%Nd8Nk^i?}F+J*pFOqW5Nc^$)aBe^nAvdv)G&@~M$ik_pW|cJ9 vJA&!y>Z$FW8prf|L)y<@+HawB{sL9FbpBtZ^L_etP*Kp#0rfEWLQ3#8+ZyK;jiE3mt81 zVV}Str{Ja&9#t<|etGaI4Kj z6_HBY20}t!G0#-I3QaZF6rhaj(M3dqgD>Qi@)j;SKv3|!DDO%Vbf#!A+QI2sn+xhW z?y_0oJ2L1_T|oxN$?tPknUOO!D4rilp=Mf- z(EyXo@A~IOI2>NB{#EsD;#(a41sFI^W59$rOyYRGS*tlu`nzgG%`XJbny&`#gG=Vp zUc=y0OfHUR|L$lyS&H15=WPZQ6t@CBkoEG><@s4@a@L)2?Wu88q_tUy^ z7CeLNgnxXWnoYyw0m{sukI=&3%*`WW;j~#AF%eGJjD32bA}FMY5aZ~~;bWg4J88=B zSpA?vjyqxAk~RW9GM`G@sQe6PHe`-@Qu;W*ALkH41Tf0P9>;$)?@J$+^C}?@UzW*NB4sr=Iqgkj`bGDdDa|$v}m`lgR__0>-u%tfbG*^!aMC~{= zX8Gc;o)B%UL!y`u6ugD*en;yx$moB{Rds4Chu6yAJAaoO(p^t*8XwuiQGy|CQXc&8 z)m=h7a%1Vs5HD*c+R~L_V!8R!X4k*jQ6peba5#+0^z>1VgB0sE*IGWq6?4GR97 zjY**mar_~_4M#anG@r?M4lbJ`jN{|2*e1^;CNEPOu28yZTuzCpoUPAa#)RUS)8=i) zS&85&i2h?PM65o^aZmqcHbmTiasrmswLSv3od}#3HA7rt!@bEZ zn`3@0a|x_BcVx~|GGYton4cf_8XPv?9QQ7KX5KJ9EMPT`?dF?^Tfacrn-7d%{``A? zshx4ftoc{=KY{qU%-f$6aa(PiVuxKd z8>R*l;^(N@KJBawE!>=0AHs1n%wB~}Yi5U%s8`XbJDTg;G=?zo#p80F>;lQmw(*Q} zREb?R2j|WLGP$tEJEv1dkEWTUu=HW^ydHFFevZu z*l;E9W6;->E{Ovy99TM#RV_`xRIzLn(a$pr%idJ*^9aG}Wii;(wXBF>>$>G{g^qVB zj9j!<2+=#GA_wDD&IgI%U*Jhm@I7|57Yv4;|IH0rr9T zJq2c5bb5z$;3QiurtanQnY#O}jzZ&+xOz0ED^?G~^uX#-Xln1SE(R>*y|fwA_Lo>g z{Mr~yC$61`>A|%UruzyPW9qlgtT;E95QBN&x(qDeUstSPL_RXFczHaQ>tD`@&%yR? z`}SkEdSE-VZ*!AKlN$GEx8Ru#PAp3BC=@$gD{Qm5hKD5@&n`9R7bPIJ-9;8mv)3=j zv~fMd@3+A-g$+^Nb`h}}JyV;pfpNWU!%5cvm4T=nrLU~Ty#19h)P|tqStMt+d1diS z-Q+U8O-(soCSuAosRa#6##PKFI;SKnfK7%mUuAotn|X76NhaZ4W_9U8*j9w5_ zl$%@Lj=?eZw-aR8E%u#N1P}Jz@1f7pZoalBiwv1tGvI%e00wjN`%#!qeSa8KnYX?_ zBB1O!jwj6W{zaxfmGNqYz4@Z7z(L1P~K zK{7lt7kw}TRjlQM53zpThr=+f{%|1ny!l}QrhXr>{K$`{B{KJhxjT?qYHK4%2+N90 z(8;eVblf!sUut_swhe!bn!()o(feSi$=x>?6s%)e&F;Ss?&fO#vPH@IdCQh97_fjd z)Li>Gj35E~fnk^?eNqf%HPxS(*=`^E4+mDIeLe!dH*fen4UU*key&BFH$OMyh?+Hr zt^mAa&N_Srd&Spo#x-q`Ej8s|yupwJH9UuD zUIVLcX~@7dqVYVOGv8}u9G&{->zHPLnV~3HOh}n|&zD754*lvLrixQvVtVFO7OVNX z2GjFjGqU;LEXK6un_)oBey5ZCU$OHm+FRL-p5_2$HSu&7__5+H{C$PTwV~#~nFZjP zhTa_T?RXqL=i84lRh(Oe>AG_aYv_5#;imJf#(w@?6y45$4Q3NK^BtQ&L=zLw&Zh4$ zUDP}a)5c~t-^>dPQTqiZ$kL09)#i%~-HJF0S74wQ?&Jg0;gdWcErfwB!5jS^y_L7i(|#YnZZ$=G(e zayJ`JnG=5599(YWaqBuWdWc0w5pKpK%Olk@zg%U6_WimTQ@{I^agF!vH9YrRVL11iGhH(Ps%m54JW;Yu7&4DOCU6~P zZ27kg24NTKrGPLfp|J{xQ9R4|rxO*BfDP-g1`L)x3YZ68lX37K1CZ%dp#roYG+6~j zV5HS5Kx1TSR>AKKS)&&s>qD=3!6+<6c*9@>+1@Z7!5(kOK=6|{#6>V(WSI@++iaJ6 z!o3QO;ZV0V(bQ_h3>xnP6eiO~AGqkndXD2{oSyFSh0zLj1|kk$h(lC6@u!Xo=Mqz!U!xS2f|4Rp&fz9 zDU+C0%3>5+AES@h*De>l(G%wjcG?Uw zjX0$<2Xkqd%j&Ew-~}IXGip1#!;VFnAo-`@b;L9>7*Gl5!C(&;cY|RxmJ&ly?33xb z5I~Dgt3zNG0>4ntM3X{2UDkxc$zaB4;$1NWBmtAaPd|%55^;#=~(E=CVxE!Z;by z-QCACr{+Fz(T@ob(5+T6&y-fjdPw~g3)A2YI#E!wF#3@;ey8l7hn zdv)MOT6^PB6RZhy^L-dj7wBT(SD-U zrAb3PVCxXntTGD8$QE`whhGX&n?UbF=;0ETt?%^;^r=+jbm|M6&9@kSp+KR3M2Ndu(TKv9SoxZ+Ey-IpuCaOWDrFkYQ1r`;vJ$;h8!JOGJEr1~;nSdVAvmQsYlAfB)n4#HoaN|_c zy>sAG1QX|?EGy~OxyWx8oih&>W9ig9SP**9^{T*|8rPMSgD4{hmNYz6X|`eQ*Ikb4*5&fi7vF2cplrFk!StnBU=JX`Dh3n;{M z7W)gZkti4n11-&iov_0ayacKt^qN~a<}lv zDQS_cgl|#xwyt9Po^D-@re+sSTLaH|6`}!R zLyyosYjA;f(fe!Q47@-sFClXi=)IRd zsr4wICo{=>1yOgO>9nyJf?$f}`(lVEL3^Azcpk{b7AMEMf9AOEi3hz3flr3g#Eo$E z2^qgK`1DD(z6>03p3Z2Vm-r~ZVOKB2(8_MoBxPq z;%gv72cKqd#Y1HmZQP1p!#R3wD@ZWI(()!6MGv<}Xlwi2;$l!@U_O=WixoDkF0>2%vZ&k3#lJL=Rf%euca{n=%SKLDc`%=;8A8WM4R#@36b z9)zn{8}twOi45H7PO0Of;{~-i#%fsQIo#gRg7GKGUROZV4#6zN5!@TQ=-xxH)+5?-8c_r5!ZNyY z>X_T$YizRh42aLEvONXfR%NC_98RliAlP%ncDr}YH7IR#a%#}mIY<2tdv@W-!>F{k zXzpR0Q32h}~7(N8*xg!OdYQB(-M zUCPz{~ z;)s>r{}K|T&e~O(YNOJ+F#L^l*)p}7<=sO#^JasiEEmnHkx@FqFB?C({L7PC7;2SJ4)}L!8Pun0cTP0ZFJ&U zv|S(4+Ow$eRn+fWT!t#T;aiks6}|E;y83N&>Nza6(du(xX4r)D&<`6|oW~vAK)wEj z!mqN7{1-ZASi9ys+&?F%q6zlQE$n0=I$qG!hmIg527mHQgMxUeO|tPJ2F+-7j$C~9 zILB)YZa0W>@#SL$wdoVQ1(^UMnm(hpuvdcrg&S=$(YsezKkcBY8ClsqX3m?i$dtcg z&2w)zLr73^CttYepCA_x;>K+O|4Q~OGjRS7_A!PM=}gcK@LmP za@eZ8hodVQ24g|SXp~n& zz-#bj27l2C@#rz{aq8NhrV9*DG`D>T;+fqg^St#a#739lQ1=ML%&Y6!tC!C>HU0Jy z1o+-_$gEt<%t(c(chI&=xZ^5mR14aphcvqdg2uh+@;nH|a21{>A3-UO$0wonwF@m)ta!r^_!G9?#D9t#nJ_PPeq$Efc?T5*=KWiy;n$xVlR&`gWc~tIeeLBhGI% z^}7mDa)s!7lpX~DX5Kb=Mr01`qEjdV&e}vr;3+%j5P|xP0!RJG{ z__n=rsjhmS$jRm6A$speSWMI|I^`Pl#foGbedQX=Bw=0jhimX`P=Z}%MjfL$Tg3h{^&kAl)ZlRmH3qYZDU;o{=Mh6{R=T#V^d zh#%uQ^jmXeW|mkoS)Ft8Vb)tGA1;6Er`CPx_bw~MT~5&yCp4J8GVu{I(M%h! z4t2F$EVk!I<{#n`fBg}6(9km5*c_R76D3?vw^<=DZl0&p3r{*d{ISe7230^zlZmHK zGM7vtaDCA>(r>Mh3d^bDCahHrcJ!!|iI3^Vn~i4d9V*{yuDlH|eb3 z5bb(e{2N?@%XH4~h^XGO<#%*ig9kb17v;XDs=Os>I)7SO-)74K(RuW=rB*~0hjldc z0g7%8&3pj2;UrCb2&M1|{rn-M!4}%ifQb%%gj0*_q(>e>IeIFiI`A4)LO<<5-()$x z*MUCGr&RSAz9GHswCOP%4$BNDBsG8#CP_I;(k%_@+_yw0aN>IUz66aBOLJ{7LQcd% zHd<)|9uCt+8~UCO>Su>oA13{RNLj^aOY-SRJB%ovS1FI?Or%0rxYg#xkppTT#N%%H zgEUPk+Nxh2MA%_71Wc>EDVbegRP)x9@&<)>%N)-r@QhM$;2BlvR_y;pO6^n%3=Zp* zRh)0du^{_Y-chkKQ}{*NhcUpHn^Ma0x}#=TCRECc|3Bgz+(vXvIF+L1T(m|jZ@jd9L-ILd?-)i&b+KRT?e4Yqmi2IkK`1P?k`JS%BHYF5nx@1#> zIRBE(7xW7l=5oZ`8!^A-(ycEjXe+8J(7htl`QaT(ERgMLIMgP+?UM1PRkB_CsiPA{ zd##XPM!O;7HqZGfi`%f(6kPPDu7i=^9k1E!u^wK1HjYkOwzum?5yi0P?`z|~k@6f0&SYCX*leg-YC^{-u7(_Xz zo6mZD(D@Xrdyp1jz=HonD^ayRf$gTUuKOAt41?cenH%TB$8fEH}Wl zw=lk1Q>~1S(aNn5?P%3up3}0nCcAHIFwd{@YBivA{HdQCV_fZOiaz+$bQfN1VFA73 zhNw_4htkOPm#Go3D}%FV?zV$Vi&YLB>oYdvl>>TgLwZVa0vi7#lb zjKsx-xtm+Nq#vCBYE|rSmA2c_4?%d?&b7~06&8U`)x^qg(9dNgxVWm5@P(@$w7zFF zAf^lM!n(L+yN#)WL4R9P+qj)aUxt|B5uCP5dbcwLH~4m&wWy?qUsqT&#`>0VivF$? z<5CG+#4V|=iwLQOJCToETT0>HqVjZQ^WQR+(UX!=BCJw`y}Y`zXn*yqMmR7DXY+#t z!&(Pa)7!nd+e>dt!`uzkcyO;+hBt{Wslx7K4YJCtYdr)U&NUwRJ8H(M=9QlOU8klR zb%Ot?6|jGyoy{o7e#2(lmg$*oGTkF5$-!y|U(J^*wRa_zJ=z+_M_HNj%%XSYBqQ`& z8>g#kcKnPh#NCz3oFzh39cxaYnFqZ%KT)@{=Es zrPcJFiiG;KyI4gtR?MgVY7!KD)5Urz_v7a?Iq~J}qp5GOaRMEoCQ%tz-|7BfoJ&b(BcgZ`-3OKDwxFx-fK{>fL z1#{czUNsp3E_zLkOx~pdUL*=;(IhVt2H(<&th9>edl4-xqi=bUn9#TEIuz?eo4ox) zAp2ctQe&;U@}H$itT{r_6wxKEr1!l@lHVlf;h)I?dHY$eOZt^2coVJmyp!>qz^`l_ z&KI;Eww>0DL(WFJuC+c_c{9%{rO5lf-~cPVQ}ZTUV}*QGTM- zwn@mO4;iKGgW?aLL!b8{{S@)IdguxGkgTBWu8P{dH@I@og zk7oFiIsP@rncIizJztGoLTHUInT3YH-;X3J@4Hg!g}F4{k5s`L`p^%VDW;)4$Z~}R zZ#zfn)*eLbGsGp2CLTq4Nb7o#!6V*sXayb0^rRzNP-n8-2}i~Q{j-J#rCL_n$BOvXzf$MrO%yojHs)N--D0ud4fP2sd~hxEH!DWnuSq1BImG3c~SMCaQi)3r6XN*8SprB!aN$5Us-nraXEbM4cm_G zUhN@XyKPZiiE2a3M;JEhC2LR>Hgn=W`+;^}4!?w|W}oI&WGDsfr7;R;Re8-|<@!pk zn@nTJF1YwlQ+n~(oQpN8xlKRVxTG&1%7!TiLUWc#eD-y`oWo**ucmLop-5EZIX;)W z5G3I4Y*G#^YTjftm^P(rujqPTv4vXt9VyTKC;kbKPj>+kuo*`i<{u_b%PXy^W zp0f_IlH4ZSer@!ll9dezGb3|zupE%~sAL6}16W@Bi1Xyhz@E*|dzkNWrK(uv+j3KS z(QT~u2zD}`%U}sYg6B4};mLz`i!D;~NNRB2lwNZ0wncIi1;g>S;szCI-fuF5FKsGN z%|Seq-IuFn{Qk8MrDOy|bFN_7nv*43dC1e|rsd`4mgF(HXuyDX ztg{HcJIdF(rNpl3!gXn=JJr-yoEe_`@KvsDZK_Et0;J{`RADW9O{Z;~=BDY4jVspR z+gn91tGji-sj8!Mp6UW>0yI37>6JQYzJF&mf-`Tj6ZprFqA+Co~ zZjez&#NBSqdh~L^@Ci9NtQD2i(|SW{>AYdPT*95a?Aia0X164`2N*+A zz+@0k+loU1k(B1FvPVmFUizbwXQOkY^Xl3;f6|oxh|kuqL<`Os&29M*QSdlAaAm(@m1ZPS0LYHwSo^n91h*qEmk4bbRO5se{@>7YZpRnLwwKiu|Q zzP_4^W{3g=Z~kZLRDF0giVPzsgPbg`pg+kX3ta#10|jp+G(Q**w%ODiOtb^0VEoX) zaeP#*dYoKPo!#1|;%-O=mu!b(0#wLj7Mf(Acxg>SWkyte&MX=kLZ0%v6@Ji0_#09z zg%A=(mU*i2d7O@9#ll&1W(XNW{_UidAtVG9gnD8E-cEx7-%#YoMeWEJ_jld5}@ z=%7mH;dHpL@<>t)A zeBK+~o8lsyQ#y&yjEC(+gKjzJM6nst;SfHWOM9KKVpxS2oKjCG#HI?9F-NgZes2?( zjd_(bKU|&o;3`tY(rbw2csudeG}xd(`^BjQZ7)A6}dO;OfzK3?b31a1v3R zXsd8^h)!ua`n~E{Z)=*6f(V~S1dLQF=D&V2h>P~ed*2XyG%~ur)9YTkETlkw?^UkK zPOxTG=k$VS!w;qZcD1yXy`-@Z;MIbBk5=GzI;8~;{A`}n)V^5-MSkr%->-@`7Nr-x z(H2SXg_FVKS37!C5hF7XAK`cXIT#KssPz>T0^XD}uS-GBX!LTrm*%D}(QhNrt(;3+Bk-1Xj&6t~VO~7OCN;GW zrFC>~BncMoc2*X1x}YX&ahghXiBoA>IR2*e54*M4pz?01ESBk1&DW(DyRJ*mx|yn9 zmsWo9ry;{@s0tPTejV+KB!%!cT^mJ4V>t476p2Ue`6-Hw@*idAO?6BZIXCyC#B)O$dbgYo{(8?y9A$@D-2+Ityxh34Q{; zD>WM)+mpNy-F~+hj?{ZbcDQ`me?cTOPn2PBNZ-`al`$k5KdjgpgWC_K5kvCBSV)*% zUbr~6`TXM*7Yz?ct`4#3>F7S>KqBkF;>88Xzq~o?QEP4}Ha2yIPSlyo(&L-B{&7ui z=^5OM4!oO%#*%4>dPOXG4ntn2V$qdOquRb?O{5y_&wEZbM$>G{E3DReQ;X*!3-Em}Cz))A^ z5`ypDS&u9$dLgm_G($%Q`Wv0TD2z1GkOn!|q=9skj?B~CaDJ99zhZdsZ>MESky{GVzC zKCn%|51l8_Pvg-r71C4jB++lWvrk>tqxV<%BQ|6bU&6yOoD+DiVgi1ATxJuv(ZV1h z9(Odi!y%2P1N))biKp59$j*`19mnwGQa1C;n3g=yPDB)!93)ZIY+Z^Uu{IeVJk%Po z?yQ3oFFEyf@?EUoW9?|HYoIX+c&q-TYwxnmYLZBr(Vn2~iAQ_okjm)t1d>lAJH4Jj z`trB!ocOtm(^WJ-^JlF2wN|%u6=UHJ>5`rH=}-D4^mDLtw40l(M=MtJK`OlCD4MkY z@N+6D5^IC#y8dKDq|;>zmpA2yV;Ffd@b_CQmq9FFo#uH}zUZbG`jZsxxz6s%Eli8T zfu}lolfJIfvla8w!m#E9O-LkZ7)r}eBqK54^=TsB1ZUHGiKq_asQ&;mFn&QiKLz{o7|r_N+eRbBOd$|EfW|tjj zRA+cFV}&1MES9U7aO`(o~XcJRt zu%4`o--CuB58b*>$%>0q^MutOTooQx707BoWVI75Qk@=0710(wiF@jz?XO~SdN%4A z8||4y`e1x~SQ7a#W}&TH_&c++kmwwo>0E5Ne3n~}zOAO)s{7&fz9g$2*(Qwo! zlL-HXU6pKU9$#M(f*9uDH)>=twq*|`=8!*3AA40{{KlsRW1mYd>KsZY4?gI))yna$ zt$#JSr`g+5x53Ovn83vj5cs7G`zDCTk=tqUFp`U*&6~qW#xT}bj&`%#xH8*mc(8m$ zZ|tXcbxB`4)%@=d12&aB3@HEOt%r%XoX$%jQ^Wp4$eB?pL<+$|xuD~{_jF3f=yxe- zX(rOUDI_X>Bx=F>`m9I$RuDw|wNpaJW_4cvqLu8Bz(0NM<|?j_UD`~OQgJiALzk!G zL0Cv@Qt`@xC)9AFjTq+4F|m`AJ%Ign>>ec{?KFEhS?agRfS;%0FB^Xy^vrOwws=2! z1KB+O>lu0m&ms)Re-eBS;Ug?hK`6)aRD>Z2pGT-cI1Qlz;dF#;*l)&@@=Syav3?dp zJ;K=td4zKi>JWmH<0c>+jAdVhLwGKhb0UH)teB1!MF@u=j6%r%2o4y7W!juc0;x2D zgbZ^-cN3?ScQX-zFl0TxmHT!#tVbA*Wks*4)qNhnz~oGPCo&npV>`=DBy`wYoYRAF%c zl;t31)n3LWgqZMGWpN4QJA!`S`AiHT?y}s^Bq|b6fK3LD*3fsps)y?4la@0ZW4)WpkYR>{X3 s*N4aViTCaO25p){dWEyV+V;~*&5?XUiUZvcQ|T}3*QAp5#q<{iA`;^lMIOcV@AO)M>N zwXxDqtSqhkbVXWFNhvM0EHLTQOkGVwQtL&*cdzXK%wm1@e||jA&Y3fpGv}N+bLPy< zi|e>=$#LKE4nk74LKuuPg~LJEWjYIcKy6w?c46u(TMFu`)v}EsU%!G7Q-eH-tY2Xo ztcda{T1&{zwWeu`SK!;Ks|xUmZ*UV)=j01GA9)iO6D%lrUi`|PENBfe;w=ZKZEiHy zaoh}(B4BvPhqcB`j+5W#tTH`kIH`a}jre)hlz?D>5>tNQo8-oElOs@oSW|kJ5ZG2V zrOQY_e%=krkF0b0HU}N5yCc5I;a{+h6H({#1pbl6vw*8hEg2-DT1uc6emH@PKn zkXu#9#r6=wg=jIX>fHg00JtjUpcDvP>y%rwMbChItf@C;rEJX8O(#S+C<{Z~ck4 zzuA;LI2uw+IfMJ6SZfDogRbiQ;Q6w^Pd(N-vKUSSe3ba1X~fV_(&jQfKa>yr#g#kv zX`CngaIj)n5^^a}6Q-ky%4WKR0^9vqR&O z1{83d&a^3g7-&tW)7SYVp=32POcOH31m?~pgb1LQiCvE6n)YT4NiN4qhTlKRanC=_ zH)CFnEm`>u%o`u)uV8+nDR5*c`Cz)K_sBjFX37~k0@I3-A1QR$NM{;8s%OFuBty`i z%57yFvoEGyd6uss$9Aqi$sJ?J$lYWp%{6A~Or@h@16eJ2SyCM>F_}koL+dy_YUu*~ z<3a0daZt>66a0kEb~Uxzu+RVSL$#X`kEoXKJm10%>MSS7`Umz1)Zos)= z7foj~C&3I;q<(C|Jgk#v5reNG9p@&)FebOeP{wBFZ+*hC&p1=>OpzTpR+(j^9hbSiCq4#WZ#Jf#8uV)0=Jb2oCa+|Txi2p$%!*euVpO+&eWbY z-G>c!XNKvyF|R?Y>Bg9MA<49MY|mgD_U+`Gh+95Kt(*3bUHTl4n)Wvi-u=1r5MPslTL>k=@JkWcaV?R-Lhe!=vL;f?>hVnF_fSaCW3BhXfr zE{q36_AlzsiWc?7RIzvjIWo&6EPg}r!7M_scyTPYbT2L>Si5@Zo8f^jg`SJi2w_Ps zsnE%ImGdED#OJt282^h+?Z$!7^`G1ja{L9;)5{Mdh1TU?Vp_doSfutDT$loLE7~Nd zwEqN~EoSItbC{tAz8H;eBk{$Nm@a#92&VgA9Dz=@<;7w^B>$z2n6|#eDiT)3Vmf}+ zY)lWVk}%y{umID*)h5M6lp)o$cXcM>_g5Dy*dSWdvNdB7uUnIua0{)f)3g2DX&zY5 zJlm{f(xAfC*{OKueG?1&dJT&0tL3&C+{uR}YVZ0qEh+4a)ZQ+%V47336w~@5Mn7<^ zSA@0EogNXX>b;^(UCX$xSbKuCf4M&zPU*|5FmHdkCt5>D@pN))x@mdwOP#}I`578= zeGSBrWl#xf)Qr2B2|BYRJD3T>m_KBDp_6%2T}c+X=`yKG=fU)8)7o zYJaP*44cKhvx4B3{`O9cHddOh?#d=LGpqXj+Xv7=r0kBybn@;Yu+Ow*_psoiNgPkc zyl1;f-m~56id%Hm<=x%DTii{2q874LxlHdhCU@mPC^9AQ>5tv>_WS|?rqS=Ez-Oky z_okwWHNE#fmal$)2&U%u`(w)+@At(t@B@|~{=t+)7TB;r2eL|ScL)xIxFQR*@+%50 zcU8fc+MbqG;E#=#YO4QWH>6hO?HvdT*08AR?GFcbay4i1{FJ2Gix_G8{E{8`qec zj;_P9smHEhnsR(MruFUJObyq3OurxBidbnKBkue8qRyJCvd=d&A|WRyVVZxE6*ryC z#5A)0JO(Lu>lsI!eu?qaGq{UxSnPiM1|uc|OT{}mf{ z$=3@oZTfl$Of?0bNellH-9RS5+3%SEkqt~e+Z(>ebbjM>OzRt& zyjd3*q1Fpbk)=N{RvUj{#0~7XB{XfJ7<}u-Fg+V8@EDPQ~T}L zG2QU%^v8qV{&jX_9qJ{iEVqOgx`@dRj%N!p1~tS~gErT^f(_MlN5+=R<(3@SXzKgh z#?Ub~9+$2wvx`_*gK#5SsaLCKf4jm4+Iw#Srh)e<%im|3vEQEpLrgip$6}swS@!!= zm^=MDs|)|*A*O-i`!Uy{%u8$Gk3SJBZbh?W|FKJL?wmXa%O59yMdS zOv0h6d~KH@WQ`4kI-8s;&5&QJv-@z#LRZmflI(TZtlGh}INZs)S2+8^B2%4{O|-A; z1d4aowG`7dcPyqe-DACLt-R`hyC=$Cb+%(F!1C%?I8S`oBHTHPJ|b`pb!_=j1_Q7O z^;JMmc#Xy>AXYJk@lVGqpf6Ue#u7-i>{7sN@YQ4IT{<8WsX__pKWK^)3PDHBNf*d~>i(r=@WFolj2l0`N7g^THvI^U!u5hxT6Ke17Vcd1pWB=rZgA#(6hs9-W%QU^;@p zaIc`r;oc@I!{J0IV>GcvOpg>|CUh5qgpV_14MAcrI<^O_#r|h|c*Rfb=^bKMPp?kS z_JnMt79IifyYU`_5k)m>1wV0{hjEumDVS!g8`j^MKc861+U{7ihfK>Pp85+UUVdLYxM0jK)*wW z4@IGi=>4Hkj9|$y#Ik7QQ?SnKqr&Lkr%>)9>O0&EmLTYKUY4fexQekRWQ3RX^CP?s zl66>GM3?Dc9fEe9m!afzw8J7=mk!qv?8-p;v5!P;zj|w<06_c8W(pF ztsjkYm02_bWD_W(%k%IM5- zUYP>N!y?#0SC5BSvU!%}-{aw5Y+eGh;d`WcH5-}QVacBeugegk`*q5(b?ft}-yL-R zRLFr>sbwl8hVRJf3~bPNGfCFD#U%F(9v(Sv2X#-ysop^orlBG4pi8D9dpqdT(C& zG7I?)rZZ>50>nT}9&4K1r#pVGB4yuaAyR0?-ibBI?iEL|IbC3l^vqkKkXWQSTe zDZ`rnY|Cn{{iChcP*TQ5^%pNVE%WBW(-1zu`FEzwe=*gY9-9X}CQqJ>2DxWGuKaS^G9M>5mgc|U^|Eij;9XkhUqB_EvDjaLbwt5Pq|(xS z*bdKGLKlJ=!gqUoMjgRZf40bxU?JBW#{0Ct^^%`xqBj;nC~UOY7vYjuu(&AIGIvhnzITms+^u)h4WW#Ni0AYi}Z6= zOVE<6i@r3<>9K!A+%{ z)^EY6;S9aH1tgejX?g>lqL)>#MlhKF33@af#QiCoFPe4$u3%}%f8aLhzuS{q z%f%!JDyuRpNl=K?qcV5JJrQD(1zvDS+RhykM`D}a7@A;)WLQe4Gk}|q8TuQ^usV+aTwP|Io)#@R(Vw$KqISQbrAA9N4%?W_z^VPdo=F|N@SqB7>3bYC%AnC zy_A;5RipK4>B?&Cr={Dg(Ym#C{AbWp(cOr51a!$~XsTLz<1=)X7*ARtF?5BCUAE7Q zxOI5DZ5vma(R}F_bl|Bp-|~2W)Y3W&8au{GH8`-AuC76Y&{|q*;0Itq>gPvcFkZOO z_G3u2gr*&bWuX&1-Y9-HCl;T;D1JA``EYVB)lz?)&9UCnUWeN#63ICM#e~JC_2{jG z{T)NI@U$vUvZtY6R*2cu_e-dlG`OSEa43T`u&GMw$j#>r`!Zw=d)rHL6{6OQmpoLJ z1?sti5{xTVF#&rN*m=66S&DV~h~L{fnsMhK6L3!6p2m^14>&T9-v1I3qc_`?St`Ac zbza2g4B1t7>7x)!YBQE>^=WTX*Ok$aZV-E<1K!F{v^G2)s;hn|KWu+K92G;S8b z`_Mc+QpO34ZVYT)S!wH6@Op>~i}6k+UuEXR1;^Mey)knit@s+|G768r1|g93j6k#b zMQZ=tO0&*DG^<*82F~GFDQ9u!4$=E(agHrC_#7(UO2?l=-!-3BpF@M+M+3jXY1l{C zeuJ9aM=yVap}v(){uVJSHGc~xMol;meXw%bd0f#o)b~47{yxj_?=UdK(v{!i`q5EE z1MHeL3SV5Djl7_)+clJskMJkY(kY0q${-sXrc;kp<;uk#$2eZC^LRj%i^5T3b;dY9 zK_-9*3Y}h4(5-LKh3j`@qF?u(eKZ3mXJ+S2nl^jfe8ZAuE4jBCAuI$Oe8K#Oa&>ES z-5sMYDNBuxF_tDaVq7Mt>lz_FIq&%VhhKumXsna#1CmItv5vK5?S97VY@9>=+ zUmT;A7jVPeMz3FhLgi02%r7pWc|V|!`l;rvi=c)6G~pt|7VpOA1m7%GwXflQ(4y4flyc*wR@E4;H*Btd5qpI#| zxWMSda9bB5ov03(_mxK>u5;_~E|K*>%J^gNUH)TK^qY$i9B{xXvvRT1q7>o-2fcF< zSKJ&L-Gu(An&vb?$e4+4?^94LSMGi65q!izM`~SBwL%C$%RH%2HE_LPn?n2;AAR5x z9}TxnX;p~3{(J($2PCdsi@hG$>7gd*M}D$XYZHtjtuEU8M@a4a9~WqCjekDZfkw{D z#aC?x;TLJN_YvJ|PATgdMYTK-??m2vJEZ%7$coiRFBV^CbE zT!fba>AsP2@xx=eix_;*S-EgS26tiaoX&eYJu0(HgT!*rHG(@ zkA8^N%f)=BM&CV2F3xvG>$M2;oRRvc5YBY=)K5e>m5#jxDT;Ycx%d&?a0&Y67?pUu zMygD;_y{I0aCRBT8}`)(BDFAQfR|c#r=Q-M+dYZTQ;o&lcNkYLYaK@dG=At)R@nI5 zx;v>lxw!b)dgSmFh07QdC(`+sVTym8lQ})SITm^P^<~@*ja2aydTx%U`~)Kt@A;z1 zVkdr_Wl1c#WXipE>gM|d!_|-R4%+>D9eyv&^?-w z6Hw`qB3vHnMUPA@cM&c8AQyjfD8#`Xa`8L+3G~`bYnMc+FitMMPtRXLU$T^@{0whL#@TtnSjXg19&QI&h* zVfLFR9xi?JcJtnhyO$K=G?!?I7fu>Z8Td$OaPG4gkPYPeBq*>{sMPksAc;t+()3w zqWKkrB$!L0Vrw_7j{KTd;x!);-|W&Cf< zpMO9%+=V9ikWRmcd;eRs@E*oNcHL2GE6b53F2Ys$)-lG<^5dEFgbHi$m8r!3VXnmDYZ;SW%C(KPD;`~qib;zKBf z#q{7qNQbesm4QBVU>l0oVyBUy*t<|GaN?_Uw*>X*gY#@KOb%k3hgRBvXAzGLW6wGoXoom| zAAyTAM9IpJEL={9+hJJoyh?ctXCUQC1zT*s9NDkpL0s#RKS)=XqOZE=B*HeEE_g=e z4awxLGxxEkmYr1iHO=w%;=H|p%NJO$IUdEn-=s8$LSS%+Lsovi8T&#~t?c70f#ZLZ zf*lIZw~>{}K9RSVFV7Nwn;^YwS8!_@Qp@lRq++DU{T~dac=Q;oa7snfw=rssy!9q$ zmF#YH4CX-5sz>Ysx^vF=G);Cuc=6w5>Egj=?K_q!S_fgXYWHc|sB(T`y>ehfi88r~ zNuzG+_m3fyiniGNII(bx&Hu4J?sYsUOfHH;9jM$#Y(8MvaM7lMJ994D0zf;L(Jw># zJ&^tecT$ld$|x4@GbX(((+1*M>W)#iR z&C&GKb`4<6o1h@pg>c&19=UgyIhbD|D{SdhB3?OFgIxYUw0p|_foIM>W}CG zH{=C79o_hHbgqil6=00$kRH;@Zrmk*qW&GQG{o%St=ff(_VQ&qQO;@SuogS$n;j4y zzsuq4t=fTAYOHE*9)MJx4jx%Ojjm}^1IzWI-*=!De?{+hz;yCRMe!l_DZ1W+2b!t$ zvJOs_WXQ+XJDI&5w)DW6?xB*|EobBks~=hdq*J zdomdqNNuHu_u9TvM_0O}@3$`_aj?hj8i}L{N8*_uTQ!u`Frpt9EUhU z$ID23aj>VcxkGAjeb=nm*DRIUF|5gGOuNL^E&YXj)mp zY7%=ivP1gNLHL3d51M!Cbx8V*r=T`|@!R?|fngmUZhOrdh#eZqX*#3|M=CDjGMlxq zq>5i%P&LZ>rvBNamSQQ~trWP(o6^A!BBT{;N6x0$QVaGJmSy-fzMAC|Ga)%O(kgYc zmzgUI_nBYO!~O{`X>~`*oYGBFig(U%E+7QbIc%yqPca(X>cz zTZ}cHkG3*H%Arkik{MoaiPi8zhZNtj>Q`onQ~e3?)ey1?;SoCAhm0U+X402^$WsbGrHqT9Cw$0o za%cwa@F7pYX&Ry=alSik35Abvs9HKwi6;6XU8N-bakKeINiaYx%4Gzcg4y zLLh_2t4MVCQ2V|Dl{r?!SqExlF~@HpmG&~DTRKE%t4L^Qbceisy^+%>g`3i5ym6Cj zQZcuYZc&k8@Q|KWA)D8!8!15!jr1iwp`NDsB9>35`VtLB)rGz!HhhC!i+X!#lefMP zWS<)yWt>%8_Nz3CRYxis&}PJSvd-QETT-_z~gda%^E_88k!CTrgRjkj)KAJlc zGKr0R_MwBRoIx}ENgu^yHhIlQdh3@S_1`gZc)CgMCX|*#(P-U^)VQ1!pq-S&wN|BA5lF6yX zDA=gGDdiqxk02HO@RJ}s*4#vmbqhky5@=QsnS%F0dxA(ve-0fXo}1*sx`}wCVhc|PU*JCM@TJjN;l~3Ad(4wG*M0BiKmu6rzX9~y;@qNCZiO$ z@t9afPpe7Rq>DDEWVBb}wS}gEXagE#+B=QS(plR>Dc_?p=z8qQ=fq2Ph46&6$#!z$ zL#azgkbuF2MuieY;U#unzDN4NQxd*9y-kYp$gIuMCp0gZ^ery)a;esdczc}KV#}`3 zZym?=Zm`J@U9>$3*&_HJ5_Dn-cM7r1P&UM;KQv~GL{-_YoAGJu#eg}Zl|PIWRpi{NKKU6UPx|C3t%!4H zRv|MY&uR120xr@9pZ+P07j64AF>NKwPa&+l>(9yCFTVJbElkacsdinIA(uDk+DeQ( zLcWbd_(6N|#TQBcE{%tj0ZligN{`;`m2jdqkHHdzL?gFq^LcL`G_TpB)NRrO*9~c( z=N(%VH$~7LvlX9IlExZ?E@E+mQ8^RoyyCfJmhm;K9!i@!zHZ@|7FD(RH3m*>x9K>p z5qM-YSkqRr>{Kyk47rE`;|%$Rn&L}U$$Bsh)StA4b-QjmQ~47*%jEIbZ6^=;w}$!e z%e{j5o!o5E%0qraUV46hUP=DGyo)w9=!QN0* zcuZw>W~}Zuj??T}b)#5A*L5d-;aPgHI|;|}TITVb^u<`gsQ33tosbJ6vXV7MFB=tF;E={;z+De|8+9$71er+okL>e;MxM#o`gK3{UU+YC%_wqjZ zxLgn$D$n>$88Zis=t<4f<_xif;Ck0E0^A%QYs_Cb_MOA%c^4v$4kgiZP9YhLvNAa< zSg%XfM=`&VV;?HQ$L(q{a8P_1)H z{O9ygC<)WZK94Yaq&M)sV2z8Nrjt&v^ECIQtbw)nNTswT6g~bsG$@Q{`dz|XGqgEA zx>_|xE-24!xufK+OE0@++Z5xVTpl~mAp6)?V-PAcqw8)>qqD+D6rNSrhLN5`^rBDD zLt#XPZz;8`%r%Yv7)C~s?rs_pPQvgFIVBtiYopV{i6&Ep5h)wYSREpC5#)kX+Ue9q zl^ouXp}N3hg!hM=U8ERwoaUxfTbui)c2w@h-gqr&tPT+BwbyxOWf4C-m<6-W} z8;!CtS;9o&jx-WqXfELe%0+s)2g&qruFc}oe>ALF`yldbE7e>qwmxcsgQWKWR?{467FhAP0Btn(=;0iK;*cqg9 ztd#_*8$0oni2GSPdma5-uRhqTI^)5WnpV75q2EN1$gD-Sa%a2fk`7>;sEYHmrVFV^ za2pa}L#1I}{z1vYzj8jl+h7>N$s2VK-d*NXiSte8M&W7Z47Ep* zp1u)yEvK%2C|PJ^Gzk?RIx34fZAgQ)I9;i{$SKuL9DhT)XSWvXlzvT>#WJn3@tX8$ z$2Fv|+~uo&n!(rOLaHT;?s zXbT#r*82azwOaXdn<&dG@LtqC_)g=8w6@vU#p|AhT$?o)k0F;Cqq+yzG%~DvmA)B+ zUff8J#gN&t7e8mZ32wj#j75x>r*izUO^S^ZBOM$@UQTHy9Ue<2V;Cf}sc@&`g|K9g zF=>52BY-gUbyN|m~eMF3BYc423 z@q_LG$QB(q}Zi4@r!D%hjtkyKVQfAf#6AiZYKzY|k=cjl*di8SIOt8)!uzBwk8C>4R=$ z0X^S`Y#$!sI*R*?Pb0sW&G!S%cx>3!MG}>b)CI~#oOsa9Y0Dd* z{_8^ZwPufW1uuM^QdbA9e3JADF*w<7*U3$G+p=Z7aFki}`jdF(nuOohkYQ0nI}8!> zh9wbrIXV&e`^}Y$A&xhvdxs3R(FutpRpaOElxALfH1?M{c|%fdrFU)Rr}xAX2mL6K zq{ElAC6Nq=qcpxB9)aGW3;LlUl+oAwk^Y%R$Nw17Jy@JK9J{@MA`Ec;se)yBsaQ6{ zk($k}*YKwJIToU9wpA{wF=rt=w+#+y1cm-&Wx|KJeg?VNYi>&ir#*tR_)W7z`lX}H zEN|__$=~)!?OrWxrMvs%1Z|+T{YhN(HT&RNesPjHyX|gXFb?&j9i^((J(#*I5V7y6 zyFapfkZO`h;^+_Uf1gEp&ePapryb*YM^dfAJ7c~%X;`+^&SFJmcFJ|z&m|qw7oNR~ zPMdR(T?cv`QxaJ{`ih6c*9=w=h0InxW;U#&+{>&2neBtjI;5|$-DLcl{=LRCHqQ9x z9r?R>$amlwJSUmNKM`#IyAoaAC9Jg5H>Xx%_EI`CUhuUg%s?de@B?b25?Xb_q2Ket1{MKnCiGy5tYM52{%d1byq z_YNW{fw`>1g9#cnc9=$+2a$N?EN}gO8j?cZ?B?vqU9@LW-rUN${6bv>KgS`pQA-Lb zML&`@m_!D>*HOvl>e01jVMyU!I)5-(fOY2w6BB~GAtZ!!?Vtri$i(ow&YR5~-`xCS z-ik#laC2hsCa1jbCO3wlF*H!;5R!-c9QU;2KvoZl=~}s zC6!F}w(InjI-Q?Jq7w>nDvRo}+x9LaNJEYnAo$-d z`Ag<6XPn?)QuW3|TrazHnjT2QrE-bhO(P@WGunSB#`?H*48@sQNzFrXW$!cP%`i{ly)4n({h;UJ!i<4Q1-jRij=EJRp? zFd8BIBiP{#;xuOr=|)#PMZ$`eoi!NX$~&2eM7XmMpK=2_Yl;w7BChD(S+3xb3B;8M z*sZq)^~jjyCM7(@$LwZAPhms=s)3w#e{@nrUnbb5VF5;9{*bg@g4|I zA?%5eb>I;)LNN%>AWTB|Ey84kO!@%`8xT)H$QT%m@Djoy2=5?FeGJnOvRQcwp_q#m z!&wI5(+JxTjzH)_s6)sarXyqnWFV9m5i$~C0K!oSyCWQpko^gKC!?7NBd}c0AZ-~= zC}~NfuRKkjQ?%iyRAzehX_BcJgx`hKTM|Z)OqK7q`GnlV-=~(}(~1db zX%UwEF+@p%+pt>4aon@`51vK%`@&K>jws~`$Cu(%V0jzD03>-F&oVMj!FfC!x4(iT zfcX<|a-^5VJdq5M1rJ(|q_O>!@@MYeT^118RS^(Z?t+7|i!Py%Y4{&lgkDq&2I(0`oMSprzPvCzM;F{ZpXS zHphRw9~4=>2|5HzZOb~p4=}-|4@m*oW1A4#Q4K%Z^13~*f;?NL(Ft(DRuMT00={!< zt5{?gF;wg-?YH^#$OSlToAXRO1O&J6bs3VUPY#VtvQ+e3ZVVa1v8-VnOQ_%p*V)a9 zG#<-JStJ;K^Dva*?wP}N5Fo9j4qNs{2SYo{$!H_zblQH64gu(IQN{FyftCR=DX`hLB*s@A zBn{WH*~qh22M!b<~t#P%s$0 zSQ6vIqH1V9NA@XotY?b76lL*gzUFa`E4{g_(dOYm`QQ2@X%FI7*rAS2^-gX~dr^#gp_7lIBm$v(;KlUP3UKEXxvdA;Hp^Fh#A*6f6@G--mol zec~rzwiFKx)5nq|ze^l&n6zNoGjNvvmA_!m(!t8I#0&~Hj3sQ>3jWixcUZr+wK&@S z0asU|&{?tvg#{^V6e@c0?kl^^u9h`}QhIcy5k*%8L_3(;+6rd*lgAq_I#ldgi)&CM z^s^WTk1*^YF4~F@*@s>IMfM?xJ`u`V-Mw@pZN-Bt0sdtfG&BvKw=5e*v*v6oUg_G%i(`dQ*LKlwYxb}jQd2PKxO ziSI+9Ep5_WUjMflqe*GDQCW5fP_(01vt){5P2b7k5Mqg%Jc7P?lLydu+vH(%u|UEGNC4%Cy&1>VXh~`0Vr_0_G2}#hji&_6QpZeoq^U^fbwJB&Inl&z zMUI`m$unlr*E&Pt@0y{AZ^#Y*V_T`-ZKdTZ5*O!I(>Hl$Z#wn`GvB86ota@U$fC}h z1Y<1Od2hF^mgZ-!$?`RG<}|Zb)R9u|=P7$ke=|d`C`*xjpJU!rH`?>&B(Pe1XXQes z?X6iifVQ4l5FW_4CW%$IrDF0c#suE7te^poTk>Xagfq5)IkJXpO|obfOojutoCO1T z7;D?~FMl3(*!H{=tfeGy;@>_1<1A<2&j6jxuyQRAAKPrD#eQUo_)jkL(BBqV9?uc| zsLd{bp|%lQw`<{)?e1Gc@eeFVo`-GDLXn^f~A6Fjq+ zaPjbp5A+sS{Vtej+j(m_2c2zkckY0`)G_s$Qs-|{R{mOtN);%T*rM-F;XtyjzCQ_I zhvn{rw@9hk4>v+r3rGtoP%M^ug5I`G3RJ-qTSe1G9xhnMJJLzeEskY8?L5lW&^h2G zk|E}flx%##U)pImbb{*uub?XkGGQ%_?+kmPAF6|4BaF0f3x*T^u*seq3Dec^GM+a9 zhL$wHBMRoD^NUJAQgKn{BTYWK6^s3)MfP{2pp1hUG(HQV9R-JvczZr0lB~Sq#q9)t zDHzkA1w$9@-v&(Pq7sFJpVaEHFMSr0Aas)FuM5OIUBFMuuwRP-%KJI?oZe8Zf*ba` zeP9Fhb~@D~>;7%FvIzB)b#Lj#5W!Ds^x}#PETU+?UR2ewh;{LLF@i>ZvD^B=8egt8 z-7XG=t^g}>$}s2)v+XzxTpZ-t*A9mjJecg^DG4YA8R&c?JL<)L}8&yk4Fn(5OhLU8%UfFFT!p6s`+plpa>@{ghQ|ugBB6v zRrV2!po*N>4olz@H4MhGrEppQMf1QkCa9&(&9q;F9dP+FSY^21T5jGqoU4fy)lx&N zki*P7hO26}Jt@jkOV=^(JqV5L*7B?TS&LdK^0*twvy&LRqGAHobV3Jh8a+acRtwG#TOp&lF8kkC8rF(1MlfQR-?7E%L*VC_e67OvpNwGi&RvN9j| zBwo6RC)dJ=pidn_;j|`RH>s}bc79UtG@Zyx|Hbfi#Na)&tbM|OA|V#XBZP!tA!tDu2JP`Y!a|?9)ygQ3 z{NMcQ?+yw&u)O8 z{*4au;K+&H)KY)+Y=8mq9~|&8#6>l`9aZ-)0Gmr{SISW)4R-U=!4_}f8p%q#h-#xi z49DS`k0HqTpp{CXT^b|%$fr&%-Jo6@AsAVyiOBln$&bkZ-BA9R^f&>Bd;*ElkD9^c zsQtZ|2O}@2q!zbXyd@`l6zs25;)795ShC+IpjLv(_D`V)^ue>ALa0wbWmYaP`QiOf zAspf{pbVm7E;;6P4Sepm^O32%RO>LNc8cYtvySjo6TxpBhSb3XPdLI-#}Yh>Q_3J- zea68{fml`sgMz+yv>zjwcT@(@>>@`y@9af*zYN0s?Jgm!>UILT%LVNC8RS3#F8&NM z{Z}~zN;^8jm*Dl!;8@pRJ(Br^*vz(8D)|FqPzw z_2n=fE@Ap6*kD-Y7R3CjB1(HYGL=d?;x5lMSznhJuabU3)n=k>kGY%4SEu6Y%@kUO zqJ1-@LlmmFz$CbX*<0YnAcI>~CrH4SI=VAb{LWZ2sSLl_0+ITHW;1!fPzU+JdYx4* zEkoB92v!Gr)Y97+x)lsy#sOQ&zZt&0l>$vB?%WE-j$y8VIwq*75N4%)M8#dA@!D3{ z&Na8(< z{BDZ7{c+W9$`xlYbPq(s=QwH)1)44P;yn<+K{>A8OU_t|d-uXHuJsGMv==@D_z+iH z!AJq$Y6X9QdVAG=(pl%1os$=4|J$d$Ue>hM&#t=d$N;JJpk1=TRDk(7zJiWSF)pis zn^288pOc{9;oZ+68TMd|oxn<*WhdnG*l33ppuvR)A(ujO!$BBknB|lG)?D+nH|OR| z$(}n^h%M|<=>7OH72Aa)D&ZvU+W!lvfMs~}3kangarFy03O%sw5JjVx@#-OxI2B!o z;CTqgv@fBDzoOjyZmQDVGxBi$moR9_>*ag|GjpY;!c`7m#_iM!AYFI!kCJu8bc+A& zbBxLdvBo^0`GL%5ui`Cm6WNpX1)9cwM0T>}Ysbh^Va8FPzBNTYaX%;m>VA0cZ`(30TIKL#w->H* z_&?p^EAC$xMlI?=+tPXtI5d#I?1DoJ(&P({b`U#7;a@`hyAXeDF)hmPmVbNUzI@Za zRHgvR3R1pm{gM55Wt~$cnCGb0@4x|vVT5l1e}T@giY>->4?`Lmr}IChKY{mAZH)3ol)J`gWZy6;o@p?oFLp&O((J) z-mj);bqO<%P$_Z|-#LAIvQ$d=tIhIwhAQH_w)?2qDE;whv8pA z7}VgPuV50_sKwnUs3f@X6;)zWFz6WBY*ULSl|9SPRo67gdz+Oo+91D=X~!VUu%e}{ zyP;B7H3pbaLN#rEg<34x?~$Xi_!#sJ80IM6zs>QrF1)-|F2JM5C^HPi1{#4`7l)mICB!r+#7w{Sw?oJS31sY%3ohNrNy=gf~&6Gf$0?qO>WE`Z2^24-}VlO@n; z>*c6hC|H?boUa|xuV!Q&ED@R;K1h8j_MSYy#Ybd@dih0qc}gt&h$MWmC82QB!jj>d z+GS~)h!^4#3^!$?yTn?)aJ{uS6?VQr`#k3?9Su8u8vWSK+*@+Edmk|u3d{{maLXml zzIAVVdB525mKUb9Fw@D}+1_??i_Xf|g@Mq}07N{yS=r~??&}W6npCe25U-tt_~3kp zU=>O<#=G(yx3R9L(5+5!n+X_o3Py!KM|!c=w%j_<+@0N%uQeBm;g!m8FI;|#QrKwR zdy1T^3{Rh;aCHZLzk&3=na$4$?=&b>Rg{*Q^h#@ju%N+Ml8|~w-tSgLL{ctw%e~!i z-BMg?)dOI0xZ)c~0Rd~jfgx(OkBS9j$8U+_Z5;P470@Y|^DQ}z9r0W8tFCzZTRK|z z(D^MG1FyT6IocIPm1zEZmH1!8=+hADf7-1e&Jp4`W}Jqg;6q+2%?^4k$%-mbo(xaX z;Q!&m(-5Ar+r6VuYmGFry1qtL#GxCSofJFrUGhin{(@-^#TLD)?$^49b!X}p)K!q( z3=aOu(tIlN#d^6cB)IMHy1qAi?M&rm$C z!P93TGW7js6X~eQ!8dLJZih>L;ObFlDj^*y!v=K?x!;=@br#|R20A~##qH!9zh!Ru z9!@_CM&nMGB6GAbyJ4V^-*CWjN;jtbrrg(atzmrmjhvfw?024}z*B;E&eDl|0|UQ< z7=5;jt%G%@5^bdBzly<0$nPLUT}RJ5KjMb(C?-wA6W>94&{((5W+Ef)bJtllWH6;Y z5qo}5timw;dpgIx@ZIm>wZPS1D#Z@DMQ_>e45qt5~7oUhgy&PmFK3cZN{QY(1mpJ$t5bR&*F_s&=~#C zgA}ipGvLyZ(bw2U%-BIZdxcEg3!AQh zF=qEu3Gyp~#P%XDI%SnBsaw(hWy7`S1d4SzlxY+jF=M^F7?ZD3`Em*;U4>x*{k`$mn^l1H<9m?9bf|eZ}EoqNq*1D<5%|hb`TIFm(BT_Uw&X)#x;F ztaw*mW;gr<^kg{J(|#Y9N|!0NbTG$ia+L(sPE?DO;M0DVRpdWyp2Cd3$R&s75{<5+ z9gQ)=&vJ}YOW{&Sw`pa5A?948dUQB$xkds#ho`TRP6TYY29=bHH~o*sp24gCqndCW zHvbRiYbJiFyt<)uo$lQ$uR||LK>Kxwf=Ik^9fk#}S_QLUO?nipZ(r_|Td{W?6$$I` z#X8smSt!@h9k(7&+<IOtW$moU%x}XIveNTftVplp6-+cQRBrDN!ccBw;TBg8&pl$ap0kDT%lym^P>xgOQO z!rCEUyT52;ftp%jrlOTc#&nwdrJIZKsjbTe@9vw7sf63_X3~Y$*h+rALid|-1mSkz zrC%u*Z*AT*GtJ7yaJ2`Cm9935?rTn}_ag6781mqnyX3fcvGOkY=udd*E<{Ina994Z zXvX7$g6_mj>ps}X1^&70iMVcrbz#gs%1^&x&OP$`v$*UYBpMI6+N7PD98M&AT!J~a zvfS&{Imuy!*^1Zi(H&VwDbL+@T)Tz^WC^k`=G5SpfQ zF{zL9_bnD=ClF5K!mbbKLC%SZ58$m4`A#PFqd4J|w>2}<0jkMQH#p^u%_Ua8u{+~8 zc;t>P%IK>^Cr~xJrFLjmbyLRb>ZVz%%c#0=${E=B0D6R%wDzwQX2x1G9^cK@(>g`1 zw57_VM-#k;pO5hmN!DDP@DO66#|MEtm+L@%~7$=niKsrH(~cU&Uj2IJm`q@+H0 z`XS7Z+D4}_haAi)UvV&#?Ww329Hm}S)g)?avog8{^CX(}F0PQsPKVGcK}WFS35m|! zX1puGmdG*AHhr%hmqE*nqPJ)9c`e;5lYU#9 z+<}(J$CM_R<{#6nW?gGu5}dLL?M)Ew^ACE#XpzhCS`);#_fsZ3dcmlp3499*kKq}g zE?$CZnEn`6cih&TmAff7drJ8fVMbC{VRDQ71wMQX8w1BQmn#PN?SBO!${y`yPk^51 zzr?-2QN?dX%E)oB0Q<@m?xy2f0)`NWTmHFK5FR$^mlZYXOMc&oB2FoGbik~zuiQNI zBh4%CB2>h^)K?rRCX1;=kb-3n2oD@UzO<++slz6(=$v9%nE1>=h%GutD?X0_Tm<>anb*ze|`5A z7~4d!AHi~h3kkkNFr1+B<60Rj9mkPHlL#z}ReDF

(e2_I$Gy%yPRF4t?jKNYU!&r_*QiI1;n-CBG(WBh_*d!wde|7qb%nY1 z`R%yX5HOcUV~KHh;xz_?+H-FQB)mZSCR7%|Lfp`v3xiU7MSJcOPTzGbnTCdb|MkOc zJ-1MQn2W5B>)`2-)ak@HuFFck%iDaH`PUfSMUtcK546%}eI@+o|rV>guZM>gt-_ z<2!wR+UZkhhfb>wZ-*c3qhXYn{@0NlYqZ>9x6lSj?!Y^dN?oTH`@#Qq-eh+ z*kGUTH>#O#bsrAryFifc2d#&7_JuDk1DIeBY?B1wu#X98rH2Rh%nonpV3xha=mfZD zFOC=l{+FFTr7WVY7$UZpkJ-H=GXT!mr@tHz{>BErYPjs_nog87skqZ(W9L2`o6(nJ z3B^3&1UDxVJ(d-+2r#Ckhsrah_f4S@AE-=7No7Jp=`%j|H$JY3Zogb zVA08oNeVh>%3y2%lqJ^ul&qxA(!BVHCRaj} zF3XRcr;$419GuCe*wl9n`FR@GiTJ6}tDnz3=m^cNwVOt~eq<-Lc}xBrh|*PZ#{6k* zS<{eJ{wd}Cu z-y_%fHjQc}HWQz5uPr`WA91A!we^8aSPZg4AWn~4T%zlltE z;S(SppES+Fn1tXcZFIAefpvx9|C=eEv~T{8xjL7%mogKAp|`X!Ap?d;wFwjS+Q{zG zn8anUK)RE-5#~zyJ=+Biq;W4a_Wzo^ARXvAHE_z`u;sMBW=Ju;fOWu)*p7YCytI%YOi)d+8oO@zcksE`fOdLRlSlTV~L{qDw}vmP}`@NN&l1afr~a3 zGfS>s5nz#wy$6IIBPl+`pRv!{`-$u`5WT~-xjHuSy<^YsT>?-b^?E%SMo9}_x4|n? zkG@A?i}bi}GE9~Fm_LQL?I+A9K_mBn1lOgR12%GeAA8Gz!#J2^PZcwGaM{ZT&*S`C zxR}XVS$fZ4ZX-9?M-R;ec*lNfm{SKu_7iVT;{DGgam;GrSXMIa94UVE#(!e$*GJ#r zV3Sn(?lM?zPab=p5B$f7!5oXV4@z->zvdlnH47$atLZyF3_43u;|I_?b9@ha?;78i zHujzIi$Oz8Tukq$6E#9iS_HjErj4VwElr{K-VY|xJ8;r`FiEQ>y+Q5kljb)q@eC=| zs`U?8lcJ9Gf3d|LJX;DTO zk0xnL(jD~fH+d?(ZId*~cI6tF|-u3Z%Wfrw-rnG}W zl0I`Rq)4fmv!2bC+{{{$;%nus$yOiHKu&p>so6O6!{LFNv$XVZQ2pq67#;X!*Cbg0BKVBvfEV1Fxvx) z;yL0UwA}?@u@Bg}+XpV#?|&W$kYaZoSka8eEjtqE3v=w7Ppsm=VDIwn`z?ZM8bK^o zd6wUwzg$}H#o|PRd_&rHVI}0*<1YFFP1EbAS{=mMV=kZMV2)IK^#+Nkyp|09(aw|- zrP?QXNmzg!Y43D>Jr9@dCvMKy`5QgQ=^%`@dP zR3`lV^^$)_O0GNm$=bbl7jq!k<7#RkaDzJWQpTI$bedWWk z0EeXef6SzKN`15yVkMAsNvU~qCy2D~k^^**X)k`fm4|!MD0L`g*>|W5d9pmpRsE8` zm2`-yk^32k`N?)iXlu9uFdkh&FdDYvsF&aiu%JE|w!%A(UBPh55B57UB4CmpQt+Y) zFyyoPPej3bVs>5u$T}{{di=4sVaYr{d6DDODA>$F4>Wd$kXEm#-r~L4j95}K^XD}e z{A42z?F^x9TmFM!vgQ?N68vN@)v=&6m?0$1^Y;njo=?zB9^<$k19a|BccgcLd>!0( z-0uqOp^LszKd@@4)yBg0PuI>26x#^RWT#WZ<%P2FyhDMau8M`PjSm#ViSmcT-W^u? za)x0J@pWhquofrug>Ep{fqlWn!7Rs`{;-6Hu8y!I2;pFvBQY7a>A>x{HU!@Afy<6g zqhKCDh-25kpc6o-=Ksi}yB+<;L8%{{ad;*}fM0;k z9a|DEGNX5uSF&E-hoK)qFhpYfN6-ZpVcJI!2bqW;K@3DXPJIN!0R#-nf!UCaD{~+u zWTMN*)>6nS1wqJ)wVF~67VOERv``v}Cvu<{n9%hMB+iDnpw6*kHk<=kjbn1*DEvPR znoEMwF<>r~QV=^}K5W#(2;95?t^|Ht-!qvBdReF^dkMD3#S39YsM1(uJ=mYCh!yp6 zZKIIRtb6+FDt0~1OVP_U7`F&QB1{ecRkk$f<)t2XHAS|Wv8y^JP-$oOox)i5A;uyc znTuez9?CFiIqZfEN9l6triVvZyNZ;yJ7PYA=>YYPZ4$WwI%DN(D2Lm)bq$31t}V#| z-ptEYczO*C2>OpIm6hc@SBdk}l$p$8U1xG(ErJk9bmE@C=mE5cOh>@*IC;zOg*Q!l8sMVYAtNeYvJex`z zt->`FQ!N>%mmfO81Qj3{N}2Wx=jAhH%?A4vx3pf+3YXuo)fPyHT%5NBM*E>E z(6M76{AYM$3!H5K#3NfzSxuoj`G&j5YVJ^!l0xs46khgK@$0SdDvf-&6+!~LJ2?|v z0<|L}$M21`lFRV>9S{+iTW_TZcwMD9SZA>5<(25# z0m1qZk6zBlkev_;)3C=*itlDPYbPa|RNT80jIAPF{#8uSQ6bC`QDY&voiw!=h#PjOT+ZJA}buo!N^ z_n7`ADS8?2e+m7-fiVsOYjLWBkfX5H0ZYJuxkn%amSXi0=o>o2J9Xv^Yubl1(kG3;wmNaPv{hMk#phC~5p2x{ksd z5QWLdAkxoEWRcbmy28Vgr{U~l&};t0B0ij1xx(0-6{;`e_WB4Q*SPt*eujM7#Y>%> zxLP#_zE^ZxS>h?Ry;7A>a9rQ)()gxPtZ5XmbWt1igImAnfg*YIq6SxabcN;BG!|k@ zbo-J;COl9wJbLC^so`|{`KN``lEnvYm8Wh!n^TccFkEInn&=@f6vD((2nzzIA)K%M z9rU#pc3Zhh*^Bv}!pu?#ng4f{=eUXO>AGxvZFgcTZ8)V4EEFc6@a|TT=N)%RQ`&Ip z)fbYROpTqpLT$$6+!dk*lzdIG_6VPTO;LFrL&_j3;7o(pK?9|Xtl}1;N9lqi%jnoo!}KzW9Y0)OMw^nu zD`k|h%5lJPsz%P^tm728n{mf+NDchO*-9v^VrBZ;>5$dlt^9~VCujqIiAg75YS0R& zP-U8|e_EJrmU(6xuW`)4b0;9A(`=`26KNfh3`DA~?n<`PIZj%fq6?WN6=0mr zSF)klGSO!)GkI0;mb=RQhG#r0iASSrd|AbMvEYzLF=FOP=;j}<<{#RnerE_PYE&lS zfs=G%#NtJwkYBvNg*CM6H-8HQ;A6b`EyTlI3_eB0%McuN3P!>M#8WVaO3m6+kUTuW zb608RESk(B&JIo&4Y94N+)AO!jAuv_tH=8wrJheuTGB;JtXmn<=vF>aS;RNQ`3=$6 zx&Np>X0gQHQTDn){F=P850`ugo#qF6Dy!Yf`Nkir^?PcR2W~nt3AXUC+V{M3a>3+X zq4n>&nW?U_DtClUsA8B{kTaW$_$t(`Y;WL%oauGdn=NJ%o#M$U=`>}7B~jFRYdvhu zkvS02Gn5(K6le*w3k9_*SFka`INN7H_lkj4fL%_5@BFC^-XaUVqa@QUQ)13)(k{6n zA!l1|L4U8xg~?vw!{QP`Zz;j<0$Wk;I$OR4_6{Q(&o~PQ!(Q*&X6#nRT_wnUkOT|a z)@mlWm5=Lvt7ci=j(tFqW;Ve-4a{`9a#~ZnM}xt}SAkGn4a940S+Cic>As<=t1M0S zufXq5LwxWDs$dfeyo~pibhojplhC0`i=*KfbOr{6bR?hHDjV(|uJ6bmC>QJV#IO>L zEa3DrbgY?i;~9!J2_0uBh26lXXJBZzq4lo{pHypHb~>t={7z$nFsIsBkYK4%_PBN7 z5p=$~l}Pu@yIMG{_ygD=ocTQ@L3b?u9{T8;dFxnv^iUHTvCmoBU43xWSqhi~_~}`S zsg~$COMC5itUe3I6eU&=jmjM!7=B_MbS7@ z>m}ow^OWVkL&tfD2+6NEk(VB;eC-b4_PCVWuE;7=0eMLyhoYez=(8Dv$|24_*7@aK zj!Zer+{*9xRyi1rTV0xt(ZaOqoSX8|)@pr~kOC zY+kfxT6+Yx`jJEhV&adqjRlATH1+#uuuWn2^(`?8nfH6jH4* z?II{J6yN`e&UD0nm#7S|;ME=%SYw-)^d`-@(p_t_QqyxA?~JCv?~F{Y5dX*7ng zVxPhMU&MW?Znb_06!H-ht-5`_Myptq6jr(kZ(gC0T8VI#0&I`g3-;aK{(#B}x0Gz` zqhSx@n5(3w8Mj`gisL+%T&49B@Wxe|>-h7zvWkPm79uY?mHI|=hrB}z`}2}27UcIH&F~t6f;WK$bB#4(Q6P9J;imnKU|phrMtSD*k4Q( zeJuBtFP%m0792VfviK0|e6vzFI9VJa-dA!RzP|#%8=|MhLC!)SP;6aqj#Xr6hf8x& zFVX>?{JT=$5KckzOpDvf$43i@$57myXe{)1CBo@L>Cix5(AxOrIO;mppb5D0I&=!{ z=qk!ElxELNo0<0N1RBFLzS3N`G25%isl0?2uR{r)$SZ!M0qybhZxj_tc;`3zI3I!I zZqQNnD(<)eQ4oUVH=u7oy;HCXHgjEYU<(>vhwZAU9$1cjt6&HG3vX4?C+;=0-K5nB z#>$)IcVB#XlZHRR;NKxNau(glYZ?Sr_*+Y^EkY`W$nARm%drDupSU>+6g|NyH&H7vo)7l>tpwJvLeh zx5v%opBiIJ_;niJpT+@%+kz+mONZo!`fXE^ZCngjd4xn6Dx>J*%1M=3znUZAhp#MqJay&LYLDWn*LW}B$@>r;?c*-_OPAqKva>tV9B$W< zS}x#!+MJ5(K-k9^@&I~;K2WXg`HIZ;^p!ROgoo8dQy@~X^=q2{BxXN=MB_f!Gs`CS z3!`y6T!J;Wq^K!g)BCj}%mzI7fIePkqW?oWQ{Tlm9#Y!tiOU{R2$}GUhtTB}gX@24 znd_#c_Mu^3E+%(%zHmo&Y69UJ8`0+vx@oJ$$Uk7_fDfEZ?oP?Tscfugro&WNpR0B% zYw8PZd~HX@ulFde8Z_#g#3xXVy5n!I*-RyZQyGNU|A5G_j~ibr5vIi2hCjKV8c6ee z)JP_knCr%5`%`Z!8Xu9asW|8n#6*dWe_u|1NQI zccV?FUAGQ@kzq$ff9EsjuNgUuv zp2;cXn+D}H4y~gJOEA5Tq)x$=TJQgGe;plhEAeI>4Dz4S(6Pk)=bC;kN!kb4?J=aq zMbztA`--;(r_!OGXRXPc$O#M7k*vIiGt=Khi{GH#Fj9PnV%>R!en!MVSIyf5U)LftpWY(i?kK_ z^SA6anw^d%Pk}Dt58=i?sfOQ;5C5d&J`2MXNQL(?pFn5}l}eRHL3s2yaADr#z=9Wh zLQ`iEdK8!nM{uf2Tf7f0Q6VfUh9YTh>F_7JvbmyqWv54>E65q?nQ7CeQwFCews`SD z*0DjEg_SA=at;R6Q>OkGzEuz7v`ke`cUM846srL%cR(xs%^F~Ru(lqi`s)Rbtq9{- zCH>MJnGIm)qNmY+-Q5JniV1cnc$i==K`X&9g4)A1(%-EkIW)H5TH`nuwBfv&W3~&f zLDW2A3*{NhBdBZsjD0S_PpGeN{S2=c7+Zw%JPqk(Vpg+NH2@W9mJ;8wl zenkI^LLlx JOD(xq{y)k__u&8l diff --git a/bundles/typical/ING9188xx/apis.json b/bundles/typical/ING9188xx/apis.json index 76719b5a8..454174f4c 100644 --- a/bundles/typical/ING9188xx/apis.json +++ b/bundles/typical/ING9188xx/apis.json @@ -248,98 +248,98 @@ "sm_config_conn": "0x00020881", "sm_encryption_key_size": "0x00020a37", "sm_just_works_confirm": "0x00020fbd", - "sm_le_device_key": "0x00021309", - "sm_passkey_input": "0x0002139f", - "sm_private_random_address_generation_get": "0x00021759", - "sm_private_random_address_generation_get_mode": "0x00021761", - "sm_private_random_address_generation_set_mode": "0x0002176d", - "sm_private_random_address_generation_set_update_period": "0x00021795", - "sm_register_external_ltk_callback": "0x000218d1", - "sm_register_oob_data_callback": "0x000218dd", - "sm_request_pairing": "0x000218e9", - "sm_send_security_request": "0x000223bf", - "sm_set_accepted_stk_generation_methods": "0x000223e5", - "sm_set_authentication_requirements": "0x000223f1", - "sm_set_encryption_key_size_range": "0x000223fd", - "sscanf_bd_addr": "0x00022759", - "sysSetPublicDeviceAddr": "0x00022b0d", - "uuid128_to_str": "0x000232ad", - "uuid_add_bluetooth_prefix": "0x00023305", - "uuid_has_bluetooth_prefix": "0x00023325", - "uxListRemove": "0x00023341", - "uxQueueMessagesWaiting": "0x00023369", - "uxQueueMessagesWaitingFromISR": "0x00023391", - "uxQueueSpacesAvailable": "0x000233ad", - "uxTaskGetStackHighWaterMark": "0x000233d9", - "uxTaskPriorityGet": "0x000233f9", - "uxTaskPriorityGetFromISR": "0x00023415", - "vListInitialise": "0x000234cf", - "vListInitialiseItem": "0x000234e5", - "vListInsert": "0x000234eb", - "vListInsertEnd": "0x0002351b", - "vPortEndScheduler": "0x00023535", - "vPortEnterCritical": "0x00023561", - "vPortExitCritical": "0x000235a5", - "vPortFree": "0x000235d9", - "vPortSuppressTicksAndSleep": "0x0002366d", - "vPortValidateInterruptPriority": "0x00023795", - "vQueueDelete": "0x000237f1", - "vQueueWaitForMessageRestricted": "0x0002381d", - "vTaskDelay": "0x00023865", - "vTaskInternalSetTimeOutState": "0x000238b1", - "vTaskMissedYield": "0x000238c1", - "vTaskPlaceOnEventList": "0x000238cd", - "vTaskPlaceOnEventListRestricted": "0x00023905", - "vTaskPriorityDisinheritAfterTimeout": "0x00023945", - "vTaskPrioritySet": "0x000239f1", - "vTaskResume": "0x00023ab9", - "vTaskStartScheduler": "0x00023b3d", - "vTaskStepTick": "0x00023bcd", - "vTaskSuspend": "0x00023bfd", - "vTaskSuspendAll": "0x00023cb9", - "vTaskSwitchContext": "0x00023cc9", - "xPortStartScheduler": "0x00023d71", - "xQueueAddToSet": "0x00023e39", - "xQueueCreateCountingSemaphore": "0x00023e5d", - "xQueueCreateCountingSemaphoreStatic": "0x00023e99", - "xQueueCreateMutex": "0x00023edd", - "xQueueCreateMutexStatic": "0x00023ef3", - "xQueueCreateSet": "0x00023f0d", - "xQueueGenericCreate": "0x00023f15", - "xQueueGenericCreateStatic": "0x00023f61", - "xQueueGenericReset": "0x00023fc9", - "xQueueGenericSend": "0x00024055", - "xQueueGenericSendFromISR": "0x000241c1", - "xQueueGiveFromISR": "0x00024281", - "xQueueGiveMutexRecursive": "0x00024325", - "xQueueIsQueueEmptyFromISR": "0x00024365", - "xQueueIsQueueFullFromISR": "0x00024389", - "xQueuePeek": "0x000243b1", - "xQueuePeekFromISR": "0x000244d9", - "xQueueReceive": "0x00024545", - "xQueueReceiveFromISR": "0x00024671", - "xQueueRemoveFromSet": "0x00024705", - "xQueueSelectFromSet": "0x00024727", - "xQueueSelectFromSetFromISR": "0x00024739", - "xQueueSemaphoreTake": "0x0002474d", - "xQueueTakeMutexRecursive": "0x000248b9", - "xTaskCheckForTimeOut": "0x000248fd", - "xTaskCreate": "0x0002496d", - "xTaskCreateStatic": "0x000249c9", - "xTaskGetCurrentTaskHandle": "0x00024a39", - "xTaskGetSchedulerState": "0x00024a45", - "xTaskGetTickCount": "0x00024a61", - "xTaskGetTickCountFromISR": "0x00024a6d", - "xTaskIncrementTick": "0x00024a7d", - "xTaskPriorityDisinherit": "0x00024b49", - "xTaskPriorityInherit": "0x00024bdd", - "xTaskRemoveFromEventList": "0x00024c71", - "xTaskResumeAll": "0x00024cf1", - "xTaskResumeFromISR": "0x00024db9", - "xTimerCreate": "0x00024e45", - "xTimerCreateStatic": "0x00024e79", - "xTimerCreateTimerTask": "0x00024eb1", - "xTimerGenericCommand": "0x00024f1d", - "xTimerGetExpiryTime": "0x00024f8d", - "xTimerGetTimerDaemonTaskHandle": "0x00024fad" + "sm_le_device_key": "0x000212f5", + "sm_passkey_input": "0x0002138b", + "sm_private_random_address_generation_get": "0x00021745", + "sm_private_random_address_generation_get_mode": "0x0002174d", + "sm_private_random_address_generation_set_mode": "0x00021759", + "sm_private_random_address_generation_set_update_period": "0x00021781", + "sm_register_external_ltk_callback": "0x000218bd", + "sm_register_oob_data_callback": "0x000218c9", + "sm_request_pairing": "0x000218d5", + "sm_send_security_request": "0x000223ab", + "sm_set_accepted_stk_generation_methods": "0x000223d1", + "sm_set_authentication_requirements": "0x000223dd", + "sm_set_encryption_key_size_range": "0x000223e9", + "sscanf_bd_addr": "0x00022745", + "sysSetPublicDeviceAddr": "0x00022af9", + "uuid128_to_str": "0x00023299", + "uuid_add_bluetooth_prefix": "0x000232f1", + "uuid_has_bluetooth_prefix": "0x00023311", + "uxListRemove": "0x0002332d", + "uxQueueMessagesWaiting": "0x00023355", + "uxQueueMessagesWaitingFromISR": "0x0002337d", + "uxQueueSpacesAvailable": "0x00023399", + "uxTaskGetStackHighWaterMark": "0x000233c5", + "uxTaskPriorityGet": "0x000233e5", + "uxTaskPriorityGetFromISR": "0x00023401", + "vListInitialise": "0x000234bb", + "vListInitialiseItem": "0x000234d1", + "vListInsert": "0x000234d7", + "vListInsertEnd": "0x00023507", + "vPortEndScheduler": "0x00023521", + "vPortEnterCritical": "0x0002354d", + "vPortExitCritical": "0x00023591", + "vPortFree": "0x000235c5", + "vPortSuppressTicksAndSleep": "0x00023659", + "vPortValidateInterruptPriority": "0x00023781", + "vQueueDelete": "0x000237dd", + "vQueueWaitForMessageRestricted": "0x00023809", + "vTaskDelay": "0x00023851", + "vTaskInternalSetTimeOutState": "0x0002389d", + "vTaskMissedYield": "0x000238ad", + "vTaskPlaceOnEventList": "0x000238b9", + "vTaskPlaceOnEventListRestricted": "0x000238f1", + "vTaskPriorityDisinheritAfterTimeout": "0x00023931", + "vTaskPrioritySet": "0x000239dd", + "vTaskResume": "0x00023aa5", + "vTaskStartScheduler": "0x00023b29", + "vTaskStepTick": "0x00023bb9", + "vTaskSuspend": "0x00023be9", + "vTaskSuspendAll": "0x00023ca5", + "vTaskSwitchContext": "0x00023cb5", + "xPortStartScheduler": "0x00023d5d", + "xQueueAddToSet": "0x00023e25", + "xQueueCreateCountingSemaphore": "0x00023e49", + "xQueueCreateCountingSemaphoreStatic": "0x00023e85", + "xQueueCreateMutex": "0x00023ec9", + "xQueueCreateMutexStatic": "0x00023edf", + "xQueueCreateSet": "0x00023ef9", + "xQueueGenericCreate": "0x00023f01", + "xQueueGenericCreateStatic": "0x00023f4d", + "xQueueGenericReset": "0x00023fb5", + "xQueueGenericSend": "0x00024041", + "xQueueGenericSendFromISR": "0x000241ad", + "xQueueGiveFromISR": "0x0002426d", + "xQueueGiveMutexRecursive": "0x00024311", + "xQueueIsQueueEmptyFromISR": "0x00024351", + "xQueueIsQueueFullFromISR": "0x00024375", + "xQueuePeek": "0x0002439d", + "xQueuePeekFromISR": "0x000244c5", + "xQueueReceive": "0x00024531", + "xQueueReceiveFromISR": "0x0002465d", + "xQueueRemoveFromSet": "0x000246f1", + "xQueueSelectFromSet": "0x00024713", + "xQueueSelectFromSetFromISR": "0x00024725", + "xQueueSemaphoreTake": "0x00024739", + "xQueueTakeMutexRecursive": "0x000248a5", + "xTaskCheckForTimeOut": "0x000248e9", + "xTaskCreate": "0x00024959", + "xTaskCreateStatic": "0x000249b5", + "xTaskGetCurrentTaskHandle": "0x00024a25", + "xTaskGetSchedulerState": "0x00024a31", + "xTaskGetTickCount": "0x00024a4d", + "xTaskGetTickCountFromISR": "0x00024a59", + "xTaskIncrementTick": "0x00024a69", + "xTaskPriorityDisinherit": "0x00024b35", + "xTaskPriorityInherit": "0x00024bc9", + "xTaskRemoveFromEventList": "0x00024c5d", + "xTaskResumeAll": "0x00024cdd", + "xTaskResumeFromISR": "0x00024da5", + "xTimerCreate": "0x00024e31", + "xTimerCreateStatic": "0x00024e65", + "xTimerCreateTimerTask": "0x00024e9d", + "xTimerGenericCommand": "0x00024f09", + "xTimerGetExpiryTime": "0x00024f79", + "xTimerGetTimerDaemonTaskHandle": "0x00024f99" } \ No newline at end of file diff --git a/bundles/typical/ING9188xx/meta.json b/bundles/typical/ING9188xx/meta.json index a3b333d0e..f8b8fd7c1 100644 --- a/bundles/typical/ING9188xx/meta.json +++ b/bundles/typical/ING9188xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 141808 + "size": 141788 }, "version": [ 1, 9, - 39 + 40 ] } \ No newline at end of file diff --git a/bundles/typical/ING9188xx/platform.bin b/bundles/typical/ING9188xx/platform.bin index 8a72c518cf959997e364de023aedbfe95ba725bf..f444c96e57d33aeb3a6128cad2653f37c378407a 100644 GIT binary patch delta 9122 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 delta 9165 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 QzH@xwPx# diff --git a/bundles/typical/inc/bluetooth.h b/bundles/typical/inc/bluetooth.h index 9839e3d8e..a7d216362 100644 --- a/bundles/typical/inc/bluetooth.h +++ b/bundles/typical/inc/bluetooth.h @@ -152,8 +152,13 @@ typedef enum { #define ERROR_CODE_CONNECTION_FAILED_TO_BE_ESTABLISHED 0x3E #define ERROR_CODE_MAC_CONNECTION_FAILED 0x3F #define ERROR_CODE_COARSE_CLOCK_ADJUSTMENT_REJECTED_BUT_WILL_TRY_TO_ADJUST_USING_CLOCK_DRAGGING 0x40 -#define ERROR_CODE_UNKNOWN_ADVERTISING_IDENTIFIER 0x42 -#define ERROR_CODE_LIMIT_REACHED 0x43 +#define ERROR_CODE_UNKNOWN_ADVERTISING_IDENTIFIER 0x42 +#define ERROR_CODE_LIMIT_REACHED 0x43 +#define ERROR_CODE_OP_CANCELLED_BY_HOST 0x44 +#define ERROR_CODE_PACKET_TOO_LONG 0x45 +#define ERROR_CODE_TOO_LATE 0x46 +#define ERROR_CODE_TOO_EARLY 0x47 + // HCI roles #define HCI_ROLE_MASTER 0 #define HCI_ROLE_SLAVE 1 @@ -508,6 +513,12 @@ typedef enum { #define HCI_SUBEVENT_LE_TRANSMIT_POWER_REPORTING 0x21 #define HCI_SUBEVENT_LE_BIGINFO_ADV_REPORT 0x22 #define HCI_SUBEVENT_LE_SUBRATE_CHANGE 0x23 +#define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHED_V2 0x24 +#define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_REPORT_V2 0x25 +#define HCI_SUBEVENT_LE_PRD_ADV_SYNC_TRANSFER_RCVD_V2 0x26 +#define HCI_SUBEVENT_PRD_ADV_SUBEVT_DATA_REQ 0x27 +#define HCI_SUBEVENT_PRD_ADV_RSP_REPORT 0x28 +#define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2 0x29 // Vendor specific subevents #define HCI_SUBEVENT_LE_VENDOR_CHANNEL_MAP_UPDATE 0xFE @@ -686,7 +697,10 @@ typedef enum { SM_CODE_IDENTITY_INFORMATION, SM_CODE_IDENTITY_ADDRESS_INFORMATION, SM_CODE_SIGNING_INFORMATION, - SM_CODE_SECURITY_REQUEST + SM_CODE_SECURITY_REQUEST, + SM_CODE_PAIRING_PUBLIC_KEY, + SM_CODE_PAIRING_DHKEY_CHECK, + SM_CODE_PAIRING_KEYPRESS_NOTIFICATION } SECURITY_MANAGER_COMMANDS; // IO Capability Values @@ -703,6 +717,7 @@ typedef enum { #define SM_AUTHREQ_NO_BONDING 0x00 #define SM_AUTHREQ_BONDING 0x01 #define SM_AUTHREQ_MITM_PROTECTION 0x04 +#define SM_AUTHREQ_SC 0x08 // Key distribution flags used by spec #define SM_KEYDIST_ENC_KEY 0X01 @@ -720,6 +735,7 @@ typedef enum { #define SM_STK_GENERATION_METHOD_JUST_WORKS 0x01 #define SM_STK_GENERATION_METHOD_OOB 0x02 #define SM_STK_GENERATION_METHOD_PASSKEY 0x04 +#define SM_STK_GENERATION_METHOD_NUM_COMPARISON 0x08 // Pairing Failed Reasons #define SM_REASON_RESERVED 0x00 @@ -732,6 +748,11 @@ typedef enum { #define SM_REASON_COMMAND_NOT_SUPPORTED 0x07 #define SM_REASON_UNSPECIFIED_REASON 0x08 #define SM_REASON_REPEATED_ATTEMPTS 0x09 +#define SM_REASON_REPEATED_ATTEMPTS 0x09 +#define SM_REASON_INVALID_PARAMETERS 0x0a +#define SM_REASON_DHKEY_CHECK_FAILED 0x0b +#define SM_REASON_NUMERIC_COMPARISON_FAILED 0x0c +#define SM_REASON_KEY_REJECTED_FAILED 0x0f // also, invalid parameters // and reserved diff --git a/bundles/typical/inc/btstack_event.h b/bundles/typical/inc/btstack_event.h index f2d412930..32610c414 100644 --- a/bundles/typical/inc/btstack_event.h +++ b/bundles/typical/inc/btstack_event.h @@ -1013,11 +1013,11 @@ typedef struct le_directed_adv_report } le_directed_adv_report_t; // LE Directed Advertising Report Event -typedef struct le_meta_directed_adv_report +typedef struct le_meta_event_directed_adv_report { uint8_t num_of_reports; le_directed_adv_report_t reports[1]; -} le_meta_directed_adv_report_t; +} le_meta_event_directed_adv_report_t; typedef struct le_meta_event_enh_create_conn_complete { @@ -1045,14 +1045,44 @@ typedef struct le_meta_event_enh_create_conn_complete uint8_t clk_accuracy; } le_meta_event_enh_create_conn_complete_t; +typedef struct le_meta_event_enh_create_conn_complete_v2 +{ + //Status of received command + uint8_t status; + //Connection handle + uint16_t handle; + //Device role - 0=Master/ 1=Slave + uint8_t role; + //Peer address type - 0=public/1=random + bd_addr_type_t peer_addr_type; + //Peer address + bd_addr_t peer_addr; + //Local_Resolvable_Private_Address + bd_addr_t local_resolv_priv_addr; + //Peer_Resolvable_Private_Address + bd_addr_t peer_resolv_priv_addr; + //Connection interval + uint16_t interval; + //Connection latency + uint16_t latency; + //Link supervision timeout + uint16_t sup_timeout; + //Master clock accuracy + uint8_t clk_accuracy; + //the advertising set + uint8_t adv_handle; + //the periodic advertising train + uint16_t sync_Handle; +} le_meta_event_enh_create_conn_complete_v2_t; + // LE PHY Update Complete Event -typedef struct le_meta_phy_update_complete +typedef struct le_meta_event_phy_update_complete { uint8_t status; uint16_t handle; phy_type_t tx_phy; phy_type_t rx_phy; -} le_meta_phy_update_complete_t; +} le_meta_event_phy_update_complete_t; // evt_type #define HCI_EXT_ADV_PROP_CONNECTABLE (1 << 0) @@ -1106,6 +1136,24 @@ typedef struct le_meta_event_periodic_adv_sync_established uint8_t clk_accuracy; } le_meta_event_periodic_adv_sync_established_t; +typedef struct le_meta_event_periodic_adv_sync_established_v2 +{ + uint8_t status; + uint16_t handle; + uint8_t sid; + bd_addr_type_t addr_type; + bd_addr_t address; + phy_type_t phy; + uint16_t interval; + uint8_t clk_accuracy; + + // [V2] additional fields + uint8_t num_subevents; + uint8_t subevent_interval; + uint8_t rsp_slot_delay; + uint8_t rsp_slot_spacing; +} le_meta_event_periodic_adv_sync_established_v2_t; + #define HCI_PRD_ADV_DATA_STATUS_CML (0) #define HCI_PRD_ADV_DATA_STATUS_HAS_MORE (1) #define HCI_PRD_ADV_DATA_STATUS_TRUNCED (2) @@ -1116,12 +1164,25 @@ typedef struct le_meta_event_periodic_adv_report uint16_t handle; int8_t tx_power; int8_t rssi; - uint8_t unused; + uint8_t cte_type; uint8_t data_status; uint8_t data_length; uint8_t data[0]; } le_meta_event_periodic_adv_report_t; +typedef struct le_meta_event_periodic_adv_report_v2 +{ + uint16_t handle; + int8_t tx_power; + int8_t rssi; + uint8_t cte_type; + uint16_t periodic_event_counter; + uint8_t subevent; + uint8_t data_status; + uint8_t data_length; + uint8_t data[0]; +} le_meta_event_periodic_adv_report_v2_t; + // LE Periodic Advertising Sync Lost Event typedef struct le_meta_event_periodic_adv_sync_lost { @@ -1132,21 +1193,21 @@ typedef struct le_meta_event_periodic_adv_sync_lost // {} // LE Advertising Set Terminated Event -typedef struct le_meta_adv_set_terminated +typedef struct le_meta_event_adv_set_terminated { uint8_t status; uint8_t adv_handle; uint16_t conn_handle; uint8_t num_events; // Num_Completed_Extended_Advertising_Events -} le_meta_adv_set_terminated_t; +} le_meta_event_adv_set_terminated_t; // LE Scan Request Received Event -typedef struct le_meta_scan_req_received +typedef struct le_meta_event_scan_req_received { uint8_t adv_handle; bd_addr_type_t scanner_addr_type; bd_addr_t scanner_addr; -} le_meta_scan_req_received_t; +} le_meta_event_scan_req_received_t; typedef enum ble_ch_sel_algo { @@ -1156,11 +1217,11 @@ typedef enum ble_ch_sel_algo } ble_ch_sel_algo_t; // LE Channel Selection Algorithm Event -typedef struct le_meta_ch_sel_algo +typedef struct le_meta_event_ch_sel_algo { uint16_t conn_handle; ble_ch_sel_algo_t algo; -} le_meta_ch_sel_algo_t; +} le_meta_event_ch_sel_algo_t; typedef struct le_iq_sample { @@ -1168,7 +1229,7 @@ typedef struct le_iq_sample int8_t q; } le_iq_sample_t; -typedef struct le_meta_connless_iq_report +typedef struct le_meta_event_connless_iq_report { uint16_t sync_handle; uint8_t channel_index; @@ -1180,9 +1241,9 @@ typedef struct le_meta_connless_iq_report uint16_t event_counter; uint8_t sample_count; le_iq_sample_t samples[0]; -} le_meta_connless_iq_report_t; +} le_meta_event_connless_iq_report_t; -typedef struct le_meta_pro_connless_iq_report +typedef struct le_meta_event_pro_connless_iq_report { bd_addr_type_t addr_type; bd_addr_t addr; @@ -1195,9 +1256,9 @@ typedef struct le_meta_pro_connless_iq_report uint8_t packet_status; uint8_t sample_count; le_iq_sample_t samples[0]; -} le_meta_pro_connless_iq_report_t; +} le_meta_event_pro_connless_iq_report_t; -typedef struct le_meta_conn_iq_report +typedef struct le_meta_event_conn_iq_report { uint16_t conn_handle; phy_type_t rx_phy; @@ -1210,15 +1271,29 @@ typedef struct le_meta_conn_iq_report uint16_t event_counter; uint8_t sample_count; le_iq_sample_t samples[0]; -} le_meta_conn_iq_report_t; +} le_meta_event_conn_iq_report_t; + +typedef struct le_meta_event_cte_req_failed +{ + uint8_t status; + uint16_t conn_handle; +} le_meta_event_cte_req_failed_t; -typedef struct le_meta_cte_req_failed +typedef struct le_meta_event_prd_adv_sync_transfer_recv { uint8_t status; uint16_t conn_handle; -} le_meta_cte_req_failed_t; + uint16_t service_data; + uint16_t sync_handle; + uint8_t adv_sid; + bd_addr_type_t addr_type; + bd_addr_t addr; + phy_type_t phy; + uint16_t prd_adv_interval; + uint8_t clk_acc; +} le_meta_event_prd_adv_sync_transfer_recv_t; -typedef struct le_meta_prd_adv_sync_transfer_recv +typedef struct le_meta_event_prd_adv_sync_transfer_recv_v2 { uint8_t status; uint16_t conn_handle; @@ -1230,7 +1305,13 @@ typedef struct le_meta_prd_adv_sync_transfer_recv phy_type_t phy; uint16_t prd_adv_interval; uint8_t clk_acc; -} le_meta_prd_adv_sync_transfer_recv_t; + + // [V2] additional fields + uint8_t num_subevents; + uint8_t subevent_interval; + uint8_t rsp_slot_delay; + uint8_t rsp_slot_spacing; +} le_meta_event_prd_adv_sync_transfer_recv_v2_t; typedef enum le_clock_accuracy { @@ -1244,12 +1325,12 @@ typedef enum le_clock_accuracy LE_CLOCK_ACCURACY_20_PPM, } le_clock_accuracy_t; -typedef struct le_meta_request_peer_sca_complete +typedef struct le_meta_event_request_peer_sca_complete { uint8_t status; uint16_t conn_handle; le_clock_accuracy_t peer_clock_accuracy; -} le_meta_request_peer_sca_complete_t; +} le_meta_event_request_peer_sca_complete_t; typedef enum le_path_loss_zone_event { @@ -1258,12 +1339,12 @@ typedef enum le_path_loss_zone_event PATH_LOSS_ZONE_ENTER_HIGH = 2, } le_path_loss_zone_event_t; -typedef struct le_meta_path_loss_threshold +typedef struct le_meta_event_path_loss_threshold { uint16_t conn_handle; uint8_t current_path_loss; // Current path loss (always zero or positive) Units: dB le_path_loss_zone_event_t zone_entered; -} le_meta_path_loss_threshold_t; +} le_meta_event_path_loss_threshold_t; typedef enum le_tx_power_reporting_reason { @@ -1272,7 +1353,7 @@ typedef enum le_tx_power_reporting_reason TX_POWER_REPORTING_REASON_HCI_COMPLETE = 2, } le_tx_power_reporting_reason_t; -typedef struct le_meta_tx_power_reporting +typedef struct le_meta_event_tx_power_reporting { uint8_t status; uint16_t conn_handle; @@ -1285,7 +1366,7 @@ typedef struct le_meta_tx_power_reporting // negative indicates decreased power, zero indicates unchanged) // Units: dB // 0x7F: Change is not available or is out of range -} le_meta_tx_power_reporting_t; +} le_meta_event_tx_power_reporting_t; typedef struct le_meta_subrate_change { @@ -1305,6 +1386,83 @@ typedef struct le_meta_subrate_change // Time Range: 100 ms to 32 s } le_meta_subrate_change_t; +typedef struct le_mete_event_prd_adv_subevent_data_req +{ + uint8_t adv_handle; // Used to identify a periodic advertising train + // Range: 0x00 to 0xEF + uint8_t subevent_start; // The first subevent that data is requested for. + // Range: 0x00 to 0x7F + uint8_t subevent_data_count; // The number of subevents that data is requested for. + // Range: 0x01 to 0x80 +} le_mete_event_prd_adv_subevent_data_req_t; + +typedef struct le_prd_adv_rsp_report +{ + int8_t tx_power; // Range: -127 to +20. Unit dBm + // 0x7F: Tx Power information not available + int8_t rssi; // Range: -127 to +20. Unit dBm + // 0x7F: RSSI not available + uint8_t cte_type; // 0x00: AoA; 0x01: AoD (1us); 0x02: AoD (2us) + // 0xFF: no CTE + uint8_t response_slot; // The response slot the data was received in. + // Range: 0x00 to 0xFF + uint8_t data_status; // 0x00: Data complete; + // 0x01: Data incomplete, more data to come; + // 0xFF: Failed to receive an AUX_SYNC_SUBEVENT_RSP PDU + uint8_t data_length; // Length of the Data field +#ifdef __ICCARM__ + uint8_t data[1]; +#else + uint8_t data[0]; +#endif +} le_prd_adv_rsp_report_t; + +typedef struct le_mete_event_prd_adv_rsp_report +{ + uint8_t adv_handle; // Used to identify a periodic advertising train + // Range: 0x00 to 0xEF + uint8_t subevent; // The subevent number. + // Range: 0x00 to 0x7F + uint8_t tx_status; // 0x00: AUX_SYNC_SUBEVENT_IND packet was transmitted + // 0x01: AUX_SYNC_SUBEVENT_IND packet was not transmitted. + // Others: reserved + uint8_t num_responses; // Number of responses in event. + // This is always <= 1 + le_prd_adv_rsp_report_t reports[1]; +} le_mete_event_prd_adv_rsp_report_t; + +// for naming compatibility +#define le_meta_tx_power_reporting_t le_meta_event_tx_power_reporting_t +#define le_meta_tx_power_reporting le_meta_event_tx_power_reporting +#define le_meta_path_loss_threshold_t le_meta_event_path_loss_threshold_t +#define le_meta_path_loss_threshold le_meta_event_path_loss_threshold +#define le_meta_request_peer_sca_complete_t le_meta_event_request_peer_sca_complete_t +#define le_meta_request_peer_sca_complete le_meta_event_request_peer_sca_complete +#define le_meta_prd_adv_sync_transfer_recv_v2_t le_meta_event_prd_adv_sync_transfer_recv_v2_t +#define le_meta_prd_adv_sync_transfer_recv_v2 le_meta_event_prd_adv_sync_transfer_recv_v2 +#define le_meta_prd_adv_sync_transfer_recv_t le_meta_event_prd_adv_sync_transfer_recv_t +#define le_meta_prd_adv_sync_transfer_recv le_meta_event_prd_adv_sync_transfer_recv +#define le_meta_conn_iq_report_t le_meta_event_conn_iq_report_t +#define le_meta_conn_iq_report le_meta_event_conn_iq_report +#define le_meta_cte_req_failed_t le_meta_event_cte_req_failed_t +#define le_meta_cte_req_failed le_meta_event_cte_req_failed +#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_connless_iq_report_t le_meta_event_connless_iq_report_t +#define le_meta_connless_iq_report le_meta_event_connless_iq_report +#define le_meta_ch_sel_algo_t le_meta_event_ch_sel_algo_t +#define le_meta_ch_sel_algo le_meta_event_ch_sel_algo +#define le_meta_scan_req_received_t le_meta_event_scan_req_received_t +#define le_meta_scan_req_received le_meta_event_scan_req_received +#define le_meta_phy_update_complete_t le_meta_event_phy_update_complete_t +#define le_meta_phy_update_complete le_meta_event_phy_update_complete +#define le_meta_directed_adv_report_t le_meta_event_directed_adv_report_t +#define le_meta_directed_adv_report le_meta_event_directed_adv_report +#define le_mete_prd_adv_subevent_data_req_t le_mete_event_prd_adv_subevent_data_req_t +#define le_mete_prd_adv_subevent_data_req le_mete_event_prd_adv_subevent_data_req +#define le_meta_adv_set_terminated_t le_meta_event_adv_set_terminated_t +#define le_meta_adv_set_terminated le_meta_event_adv_set_terminated + typedef enum btstack_l2cap_msg_def { BTSTACK_L2CAP_MSG_CAN_SEND_NOW = 0, diff --git a/bundles/typical/inc/gap.h b/bundles/typical/inc/gap.h index 595bde525..94ec41d4e 100644 --- a/bundles/typical/inc/gap.h +++ b/bundles/typical/inc/gap.h @@ -183,7 +183,7 @@ typedef enum typedef uint8_t adv_event_properties_t; -#define PERIODIC_ADV_BIT_INC_TX BIT(6) +#define PERIODIC_ADV_BIT_INC_TX BIT(ADV_INC_TX_POWER) typedef uint8_t periodic_adv_properties_t; /** @@ -539,6 +539,53 @@ uint8_t gap_set_periodic_adv_para(const uint8_t adv_handle, const uint16_t interval_max, const periodic_adv_properties_t properties); +/** + * @brief LE Set Periodic Advertising Parameters command + * + * @param adv_handle handle of advertising set + * + * @param interval_min 0xXXXX Range: 0x0006 to 0xFFFF + * Time = N * 1.25 ms + * Time Range: 7.5ms to 81.91875 s + * + * @param interval_max refer to interval_min + * + * @param properties BIT(6): Include TxPower in the advertising PDU + * + * @param num_subevents Number of subevents. Range: 0x00 to 0x80 + * + * @param subevent_interval Interval between subevents. Range: 0x06 to 0xFF + * Time = N × 1.25 ms + * Time Range: 7.5 ms to 318.75 ms + * + * @param response_slot_delay 0x00: No response slots + * 0xXX: Time between the advertising packet in a subevent and the first + * response slot. Range: 0x01 to 0xFE + * Time = N × 1.25 ms + * Time Range: 1.25 ms to 317.5 ms + * + * @param response_slot_spacing 0x00: No response slots + * 0xXX: Time between response slots. Range: 0x02 to 0xFF + * Time = N × 0.125 ms + * Time Range: 0.25 ms to 31.875 ms + * + * @param num_response_slots 0x00: No response slots + * 0xXX: Number of subevent response slots. Range: 0x01 to 0xFF + * + * @return 0: message sent to controller + */ +// uint8_t gap_set_periodic_adv_para_v2(const uint8_t adv_handle, +// const uint16_t interval_min, +// const uint16_t interval_max, +// const periodic_adv_properties_t properties, +// const uint8_t num_subevents, +// const uint8_t subevent_interval, +// const uint8_t response_slot_delay, +// const uint8_t response_slot_spacing, +// const uint8_t num_response_slots); +// WARNING: ^^^ this API is not available in this release + + /** * @brief LE Clear Advertising Sets command * @@ -728,6 +775,48 @@ uint8_t gap_ext_create_connection(const initiating_filter_policy_t filter_policy const uint8_t initiating_phy_num, const initiating_phy_config_t *phy_configs); +/** + * @brief LE Extended Create Connection command [V2] + * + * @ref `gap_ext_create_connection` + * + * When creating connection through PAwR, the `adv_handle` parameter is used to identify + * the periodic advertising train, and the `subevent` parameter is used to identify the + * subevent where a connection request shall be initiated from a periodic advertising train. + * Otherwise, these two parameters shall be set to 0xFF, in which case, the behavior of + * this function is exactly the same as [V1]. + * + * @param adv_handle Advertising_Handle identifying the periodic advertising train + * Range: 0x00 to 0xEF or 0xFF + * + * @param subevent Subevent where the connection request is to be sent. + * Range: 0x00 to 0x7F or 0xFF + * + * @param filter_policy @ref `gap_ext_create_connection` + * + * @param own_addr_type @ref `gap_ext_create_connection` + * + * @param peer_addr_type @ref `gap_ext_create_connection` + * + * @param peer_addr @ref `gap_ext_create_connection` + * + * @param initiating_phy_num @ref `gap_ext_create_connection` + * + * @param phy_configs @ref `gap_ext_create_connection` + * + * @return 0: message sent to controller + */ +// uint8_t gap_ext_create_connection_v2(const uint8_t adv_handle, +// const uint8_t subevent, +// const initiating_filter_policy_t filter_policy, +// const bd_addr_type_t own_addr_type, +// const bd_addr_type_t peer_addr_type, +// const uint8_t *peer_addr, +// const uint8_t initiating_phy_num, +// const initiating_phy_config_t *phy_configs); +// WARNING: ^^^ this API is not available in this release + + /** * @brief Cancel connection process initiated by gap_ext_create_connection * @@ -1333,6 +1422,78 @@ uint8_t gap_tx_test_v4(uint8_t tx_channel, uint8_t test_data_length, */ uint8_t gap_test_end(void); +#pragma pack (push, 1) + +typedef struct +{ + uint8_t subevent; // The subevent index of the data contained in this command. Range: 0x00 to 0x7F + uint8_t rsp_slot_start; // The first response slots to be used in this subevent + uint8_t rsp_slot_count; // The number of response slots to be used. + uint8_t data_len; // The number of octets in the `data`. [0..251] + const uint8_t * data; // Advertising data +} gap_prd_adv_subevent_data_t; + +#pragma pack (pop) + +/** + * @brief Set the data for one or more subevents of PAwR + * + * The data for a subevent will be transmitted only once. Total length of the packed + * HCI command should not exceed maximum length. + * + * @param[in] adv_handle Used to identify a periodic advertising train. Range: 0x00 to 0xEF + * @param[in] num_subevents Number of subevent data in the command. (0x01..0x0f) + * @param[in] data data for each subevents + * @return 0: Message is sent out; Other: Message is not sent out + */ +// uint8_t gap_set_periodic_adv_subevent_data(uint8_t adv_handle, +// uint8_t num_subevents, +// const gap_prd_adv_subevent_data_t *data); +// WARNING: ^^^ this API is not available in this release + + +/** + * @brief Set the data for a response slot in a specific subevent of the PAwR + * + * The data for a subevent will be transmitted only once. + * + * @param[in] sync_handle Identify the PAwR train. Range: 0x0000 to 0x0EFF + * @param[in] request_event The value of `paEventCounter` for the periodic advertising + * packet that the Host is responding to. + * @param[in] request_subevent The subevent for the periodic advertising packet that the Host is responding to. + * @param[in] rsp_subevent Identify the subevent of the PAwR train. Range: 0x00 to 0x7F + * @param[in] rsp_slot Identify the response slot of the PAwR train. Range: 0x00 to 0xFF + * @param[in] rsp_data_len The number of octets in the `rsp_data` parameter. (0..251) + * @param[in] rsp_data Response data. + * @return 0: Message is sent out; Other: Message is not sent out + */ +// uint8_t gap_set_periodic_adv_rsp_data(uint16_t sync_handle, +// uint16_t request_event, +// uint8_t request_subevent, +// uint8_t rsp_subevent, +// uint8_t rsp_slot, +// uint8_t rsp_data_len, +// const uint8_t *rsp_data); +// WARNING: ^^^ this API is not available in this release + + +/** + * @brief Instruct the Controller to synchronize with a subset of the subevents within a PAwR train + * + * @param[in] sync_handle Identify the PAwR train. Range: 0x0000 to 0x0EFF + * @param[in] periodic_adv_properties Properties (bit combination of \ref `adv_event_property_t`). + * Only 0 or PERIODIC_ADV_BIT_INC_TX is allowed. + * @param[in] num_subevents Number of subevents. Range: 0x01 to 0x80 + * @param[in] subevents Each subevent to synchronize with. Range 0x00 to 0x7F + * @return 0: Message is sent out; Other: Message is not sent out + */ +// uint8_t gap_set_periodic_sync_subevent(uint16_t sync_handle, +// uint16_t periodic_adv_properties, +// uint8_t num_subevents, +// const uint8_t *subevents); +// WARNING: ^^^ this API is not available in this release + + /** * @brief Start/Stop transmission of continuouswave. * diff --git a/bundles/typical/inc/platform_api.h b/bundles/typical/inc/platform_api.h index f670fd75a..7f945d7bb 100644 --- a/bundles/typical/inc/platform_api.h +++ b/bundles/typical/inc/platform_api.h @@ -458,6 +458,9 @@ typedef enum PLATFORM_CFG_PS_DBG_3, PLATFORM_CFG_PS_DBG_4, // Debugging parameters for ING916. Default (0) // Bit [0]: `platform_shutdown` uses DEEPER SLEEP (1) or SLEEP (0) + PLATFORM_CFG_FAST_DEEP_SLEEP_TIME_REDUCTION, // sleep time reduction (fast deep sleep mode) in us. + // Requirement: < PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION + // Only available for ING916 (default: ~2000us) } platform_cfg_item_t; typedef enum diff --git a/src/BSP/eflash.c b/src/BSP/eflash.c index 97f8e1cc4..bf72f3475 100644 --- a/src/BSP/eflash.c +++ b/src/BSP/eflash.c @@ -407,4 +407,16 @@ void flash_enable_write_protection(flash_region_t region, uint8_t reverse_select FLASH_POST_OPS(); } +typedef void (* rom_FlashRUID)(uint32_t *UID); +#define ROM_FlashRUID ((rom_FlashRUID) (0x00000a41)) + +void flash_read_uid(uint32_t uid[4]) +{ + FLASH_PRE_OPS(); + { + ROM_FlashRUID(uid); + } + FLASH_POST_OPS(); +} + #endif diff --git a/src/BSP/eflash.h b/src/BSP/eflash.h index 9f6e51d3c..04a47b389 100644 --- a/src/BSP/eflash.h +++ b/src/BSP/eflash.h @@ -243,8 +243,20 @@ const factory_calib_data_t *flash_get_factory_calib_data(void); */ const void *flash_get_adc_calib_data(void); +/** + * @brief Read one word from security area of flash + * + * Note: this is for internal use. + */ uint32_t read_flash_security(uint32_t addr); +/** + * @brief Read UID of flash + * + * @param[out] uid 128-bit UID + */ +void flash_read_uid(uint32_t uid[4]); + #endif #ifdef __cplusplus diff --git a/src/FWlib/peripheral_pwm.c b/src/FWlib/peripheral_pwm.c index 85900bcca..d453cf0bb 100644 --- a/src/FWlib/peripheral_pwm.c +++ b/src/FWlib/peripheral_pwm.c @@ -88,6 +88,11 @@ void PWM_Enable(const uint8_t channel_index, const uint8_t enable) PWM_SetRegBit(channel_index, 0x00, 6, enable & 1, 1); } +void PWM_SetIntTrigLevel(const uint8_t channel_index, const uint8_t trig_cfg) +{ + PWM_SetRegBit(channel_index, 0x00, 12, trig_cfg & 0x7, 3); +} + void PWM_SetMask(const uint8_t channel_index, const uint8_t mask_a, const uint8_t mask_b) { PWM_SetRegBit(channel_index, 0x00, 0, (mask_b << 1) | mask_a, 2); @@ -100,6 +105,7 @@ void PWM_SetInvertOutput(const uint8_t channel_index, const uint8_t inv_a, const void PWM_SetMode(const uint8_t channel_index, const PWM_WorkMode_t mode) { + SYSCTRL_EnablePcapMode(channel_index, mode == PWM_WORK_MODE_PCAP ? 1 : 0); PWM_SetRegBit(channel_index, 0x00, 7, mode, 3); } @@ -143,7 +149,7 @@ void PWM_DmaEnable(const uint8_t channel_index, uint8_t trig_cfg, uint8_t enable void PCAP_Enable(const uint8_t channel_index) { - PWM_SetMode(channel_index, (PWM_WorkMode_t)6); + PWM_SetMode(channel_index, PWM_WORK_MODE_PCAP); PWM_Enable(channel_index, 1); } @@ -169,7 +175,12 @@ uint32_t PCAP_ReadCounter(void) return APB_PWM->CapCounter; } -void PWM_FifoTriggerEnable(const uint8_t channel_index, uint8_t enable, uint32_t mask) +void PCAP_ClearFifo(uint8_t channel_index) +{ + PWM_SetRegBit(channel_index, 0x00, 15, 1, 1); +} + +void PWM_FifoIntEnable(const uint8_t channel_index, uint8_t enable, uint32_t mask) { if(enable) { diff --git a/src/FWlib/peripheral_pwm.h b/src/FWlib/peripheral_pwm.h index db4d8e7dd..51643de4d 100644 --- a/src/FWlib/peripheral_pwm.h +++ b/src/FWlib/peripheral_pwm.h @@ -174,6 +174,13 @@ void PCAP_Enable(const uint8_t channel_index); */ void PCAP_CounterEnable(uint8_t enable); +/** + * @brief Clear PCAP FIFO + * + * @param[in] channel_index channel index (0 .. PWM_CHANNEL_NUMBER - 1) + */ +void PCAP_ClearFifo(uint8_t channel_index); + /** * @brief Read a PCAP data * @@ -211,14 +218,36 @@ uint32_t PCAP_ReadData(const uint8_t channel_index); uint32_t PCAP_ReadCounter(void); /** - * @brief Enable/Disable PCAP fifo trigger when in isr mode, this is not needed for dma mode. + * @brief Enable/Disable PCAP FIFO interrupt requests + * + * Note: This is not needed for DMA mode. * * @param[in] channel_index channel index (0 .. PWM_CHANNEL_NUMBER - 1) * @param[in] enable Enable (1) or disable (0) - * @param[in] mask use combination PWM_FIFO_MASK_t, - * 'PWM_FIFO_HALFFULL_EN | PWM_FIFO_TRIGGER_EN' for example + * @param[in] mask combination of interrupt masks (see `PWM_FIFO_MASK_t`) + * for example: `PWM_FIFO_HALFFULL_EN | PWM_FIFO_TRIGGER_EN` */ -void PWM_FifoTriggerEnable(const uint8_t channel_index, uint8_t enable, uint32_t mask); +void PWM_FifoIntEnable(const uint8_t channel_index, uint8_t enable, uint32_t mask); + +// `PWM_FifoTriggerEnable` is obsoleted. +#define PWM_FifoTriggerEnable PWM_FifoIntEnable +#define PCAP_FifoIntEnable PWM_FifoIntEnable + +/** + * @brief Set trigger level for PWM/PCAP for FIFO TRIGGER interrupt + * + * See also `PWM_FIFO_TRIGGER_EN`. + * + * Note: This is not needed for DMA mode. + * + * @param[in] channel_index channel index (0 .. PWM_CHANNEL_NUMBER - 1) + * @param[in] trig_cfg trigger level (0 .. 7), TRIGGER interrupt is generated when + * - for PCAP: fifo_cnt >= trig_cfg + * - for PWM: fifo_cnt < trig_cfg + */ +void PWM_SetIntTrigLevel(const uint8_t channel_index, const uint8_t trig_cfg); + +#define PCAP_SetIntTrigLevel PWM_SetIntTrigLevel /** * @brief Get fifo status in fifo isr. From aeeae12eb797889c789c3475357de178f2abf1fa Mon Sep 17 00:00:00 2001 From: zjli2019 Date: Fri, 10 Nov 2023 09:47:21 +0800 Subject: [PATCH 02/13] fix typo; add example PAwR --- bundles/exp/inc/btstack_event.h | 2 +- bundles/extension/inc/btstack_event.h | 2 +- bundles/mass_conn/inc/btstack_event.h | 2 +- bundles/mini/inc/btstack_event.h | 2 +- bundles/noos_exp/inc/btstack_event.h | 2 +- bundles/noos_extension/inc/btstack_event.h | 2 +- bundles/noos_mass_conn/inc/btstack_event.h | 2 +- bundles/noos_mini/inc/btstack_event.h | 2 +- bundles/noos_typical/inc/btstack_event.h | 2 +- bundles/typical/inc/btstack_event.h | 2 +- examples-gcc/central_fota/central_fota.ingw | 4 +- examples-gcc/get_started/get_started.ingw | 4 +- .../peripheral_console_liteos.ingw | 4 +- .../peripheral_ibeacon.ingw | 4 +- .../smart_home_hub/smart_home_hub.ingw | 4 +- .../peripheral_ibeacon/generic_cortex.icf | 6 +- .../peripheral_ibeacon.ingw | 4 +- .../peripheral_ibeacon.ingw | 4 +- .../peripheral_ibeacon.ingw | 4 +- examples/anti_lost_mas/anti_lost_mas.ingw | 4 +- examples/anti_lost_sla/anti_lost_sla.ingw | 4 +- examples/ble_rpc/ble_rpc.ingw | 4 +- examples/bqb_rf/bqb_rf.ingw | 4 +- examples/central_cte/central_cte.ingw | 4 +- examples/central_fota/central_fota.ingw | 4 +- .../central_mass_conn/central_mass_conn.ingw | 4 +- .../central_throughput.ingw | 4 +- examples/coremark/coremark.ingw | 4 +- examples/data_logger/data_logger.ingw | 4 +- examples/direct_conn/direct_conn.ingw | 4 +- examples/direct_conn/direct_conn.uvproj | 116 ++-- .../ext_ackable_packet.ingw | 4 +- examples/ext_raw_packet/ext_raw_packet.ingw | 4 +- .../ext_raw_packet_noos.ingw | 4 +- examples/gatt_relay/gatt_relay.ingw | 4 +- examples/get_started/get_started.ingw | 4 +- examples/hid_keyboard/hid_keyboard.ingw | 4 +- examples/hid_mouse/hid_mouse.ingw | 4 +- examples/ibeacon_scanner/ibeacon_scanner.ingw | 4 +- examples/io_over_ble_mas/io_over_ble_mas.ingw | 4 +- examples/io_over_ble_sla/io_over_ble_sla.ingw | 4 +- examples/l2cap_psm/l2cap_psm.ingw | 4 +- examples/littleVGL/littleVGL.ingw | 4 +- examples/llsync_light/llsync_light.ingw | 4 +- examples/mesh-light/mesh-light.ingw | 4 +- examples/pawr/README.md | 10 + examples/pawr/data/cube_ING9168xx.dat | 76 +++ examples/pawr/data/gatt.const | 2 + examples/pawr/data/gatt.const.tmpl | 4 + examples/pawr/data/gatt.profile | 2 + examples/pawr/data/setup_soc.cgen | 61 ++ examples/pawr/doc/index.md | 70 +++ examples/pawr/flash_download.ini | 63 ++ examples/pawr/init.ini | 3 + examples/pawr/pawr.ingw | 82 +++ examples/pawr/pawr.uvopt | 184 ++++++ examples/pawr/pawr.uvoptx | 557 ++++++++++++++++++ examples/pawr/pawr.uvproj | 547 +++++++++++++++++ examples/pawr/pawr.uvprojx | 554 +++++++++++++++++ examples/pawr/src/addr.c | 2 + examples/pawr/src/main.c | 151 +++++ examples/pawr/src/profile.c | 5 + examples/pawr/src/profile.h | 19 + examples/pawr/src/profile_advertiser.c | 247 ++++++++ examples/pawr/src/profile_scanner.c | 239 ++++++++ examples/pawr/src/startup_ing91600.s | 102 ++++ .../periodic_advertiser.ingw | 4 +- .../periodic_scanner/periodic_scanner.ingw | 4 +- examples/peripheral_ancs/peripheral_ancs.ingw | 4 +- examples/peripheral_band/peripheral_band.ingw | 4 +- .../peripheral_battery.ingw | 4 +- .../peripheral_console.ingw | 4 +- .../peripheral_console_freertos.ingw | 4 +- .../peripheral_console_realtime.ingw | 10 +- .../peripheral_console_realtime.sct | 2 +- .../peripheral_console_realtime.uvproj | 4 +- .../peripheral_console_realtime.uvprojx | 4 +- .../peripheral_console_rt-thread.ingw | 4 +- examples/peripheral_etag/peripheral_etag.ingw | 4 +- .../peripheral_ibeacon.ingw | 4 +- examples/peripheral_irc/peripheral_irc.ingw | 4 +- examples/peripheral_led/peripheral_led.ingw | 4 +- .../peripheral_mass_conn.ingw | 4 +- .../peripheral_pedometer.ingw | 4 +- .../peripheral_piano/peripheral_piano.ingw | 4 +- .../peripheral_throughput.ingw | 4 +- examples/reset_handler/reset_handler.ingw | 4 +- examples/secondary_fota/secondary_fota.ingw | 4 +- examples/smart_meter/smart_meter.ingw | 4 +- examples/thermo_ota/thermo_ota.ingw | 4 +- examples/uart_console/uart_console.ingw | 4 +- .../voice_remote_ctrl/voice_remote_ctrl.ingw | 10 +- .../voice_remote_ctrl.uvproj | 4 +- .../voice_remote_ctrl.uvprojx | 4 +- src/FWlib/peripheral_i2c.c | 2 - src/StartUP/__ingsoc.h | 2 +- 96 files changed, 3177 insertions(+), 203 deletions(-) create mode 100644 examples/pawr/README.md create mode 100644 examples/pawr/data/cube_ING9168xx.dat create mode 100644 examples/pawr/data/gatt.const create mode 100644 examples/pawr/data/gatt.const.tmpl create mode 100644 examples/pawr/data/gatt.profile create mode 100644 examples/pawr/data/setup_soc.cgen create mode 100644 examples/pawr/doc/index.md create mode 100644 examples/pawr/flash_download.ini create mode 100644 examples/pawr/init.ini create mode 100644 examples/pawr/pawr.ingw create mode 100644 examples/pawr/pawr.uvopt create mode 100644 examples/pawr/pawr.uvoptx create mode 100644 examples/pawr/pawr.uvproj create mode 100644 examples/pawr/pawr.uvprojx create mode 100644 examples/pawr/src/addr.c create mode 100644 examples/pawr/src/main.c create mode 100644 examples/pawr/src/profile.c create mode 100644 examples/pawr/src/profile.h create mode 100644 examples/pawr/src/profile_advertiser.c create mode 100644 examples/pawr/src/profile_scanner.c create mode 100644 examples/pawr/src/startup_ing91600.s diff --git a/bundles/exp/inc/btstack_event.h b/bundles/exp/inc/btstack_event.h index 32610c414..20ae54c5d 100644 --- a/bundles/exp/inc/btstack_event.h +++ b/bundles/exp/inc/btstack_event.h @@ -1446,7 +1446,7 @@ typedef struct le_mete_event_prd_adv_rsp_report #define le_meta_conn_iq_report le_meta_event_conn_iq_report #define le_meta_cte_req_failed_t le_meta_event_cte_req_failed_t #define le_meta_cte_req_failed le_meta_event_cte_req_failed -#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_pro_connless_iq_report_t le_meta_event_pro_connless_iq_report_t #define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report #define le_meta_connless_iq_report_t le_meta_event_connless_iq_report_t #define le_meta_connless_iq_report le_meta_event_connless_iq_report diff --git a/bundles/extension/inc/btstack_event.h b/bundles/extension/inc/btstack_event.h index 32610c414..20ae54c5d 100644 --- a/bundles/extension/inc/btstack_event.h +++ b/bundles/extension/inc/btstack_event.h @@ -1446,7 +1446,7 @@ typedef struct le_mete_event_prd_adv_rsp_report #define le_meta_conn_iq_report le_meta_event_conn_iq_report #define le_meta_cte_req_failed_t le_meta_event_cte_req_failed_t #define le_meta_cte_req_failed le_meta_event_cte_req_failed -#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_pro_connless_iq_report_t le_meta_event_pro_connless_iq_report_t #define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report #define le_meta_connless_iq_report_t le_meta_event_connless_iq_report_t #define le_meta_connless_iq_report le_meta_event_connless_iq_report diff --git a/bundles/mass_conn/inc/btstack_event.h b/bundles/mass_conn/inc/btstack_event.h index 32610c414..20ae54c5d 100644 --- a/bundles/mass_conn/inc/btstack_event.h +++ b/bundles/mass_conn/inc/btstack_event.h @@ -1446,7 +1446,7 @@ typedef struct le_mete_event_prd_adv_rsp_report #define le_meta_conn_iq_report le_meta_event_conn_iq_report #define le_meta_cte_req_failed_t le_meta_event_cte_req_failed_t #define le_meta_cte_req_failed le_meta_event_cte_req_failed -#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_pro_connless_iq_report_t le_meta_event_pro_connless_iq_report_t #define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report #define le_meta_connless_iq_report_t le_meta_event_connless_iq_report_t #define le_meta_connless_iq_report le_meta_event_connless_iq_report diff --git a/bundles/mini/inc/btstack_event.h b/bundles/mini/inc/btstack_event.h index 32610c414..20ae54c5d 100644 --- a/bundles/mini/inc/btstack_event.h +++ b/bundles/mini/inc/btstack_event.h @@ -1446,7 +1446,7 @@ typedef struct le_mete_event_prd_adv_rsp_report #define le_meta_conn_iq_report le_meta_event_conn_iq_report #define le_meta_cte_req_failed_t le_meta_event_cte_req_failed_t #define le_meta_cte_req_failed le_meta_event_cte_req_failed -#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_pro_connless_iq_report_t le_meta_event_pro_connless_iq_report_t #define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report #define le_meta_connless_iq_report_t le_meta_event_connless_iq_report_t #define le_meta_connless_iq_report le_meta_event_connless_iq_report diff --git a/bundles/noos_exp/inc/btstack_event.h b/bundles/noos_exp/inc/btstack_event.h index 32610c414..20ae54c5d 100644 --- a/bundles/noos_exp/inc/btstack_event.h +++ b/bundles/noos_exp/inc/btstack_event.h @@ -1446,7 +1446,7 @@ typedef struct le_mete_event_prd_adv_rsp_report #define le_meta_conn_iq_report le_meta_event_conn_iq_report #define le_meta_cte_req_failed_t le_meta_event_cte_req_failed_t #define le_meta_cte_req_failed le_meta_event_cte_req_failed -#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_pro_connless_iq_report_t le_meta_event_pro_connless_iq_report_t #define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report #define le_meta_connless_iq_report_t le_meta_event_connless_iq_report_t #define le_meta_connless_iq_report le_meta_event_connless_iq_report diff --git a/bundles/noos_extension/inc/btstack_event.h b/bundles/noos_extension/inc/btstack_event.h index 32610c414..20ae54c5d 100644 --- a/bundles/noos_extension/inc/btstack_event.h +++ b/bundles/noos_extension/inc/btstack_event.h @@ -1446,7 +1446,7 @@ typedef struct le_mete_event_prd_adv_rsp_report #define le_meta_conn_iq_report le_meta_event_conn_iq_report #define le_meta_cte_req_failed_t le_meta_event_cte_req_failed_t #define le_meta_cte_req_failed le_meta_event_cte_req_failed -#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_pro_connless_iq_report_t le_meta_event_pro_connless_iq_report_t #define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report #define le_meta_connless_iq_report_t le_meta_event_connless_iq_report_t #define le_meta_connless_iq_report le_meta_event_connless_iq_report diff --git a/bundles/noos_mass_conn/inc/btstack_event.h b/bundles/noos_mass_conn/inc/btstack_event.h index 32610c414..20ae54c5d 100644 --- a/bundles/noos_mass_conn/inc/btstack_event.h +++ b/bundles/noos_mass_conn/inc/btstack_event.h @@ -1446,7 +1446,7 @@ typedef struct le_mete_event_prd_adv_rsp_report #define le_meta_conn_iq_report le_meta_event_conn_iq_report #define le_meta_cte_req_failed_t le_meta_event_cte_req_failed_t #define le_meta_cte_req_failed le_meta_event_cte_req_failed -#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_pro_connless_iq_report_t le_meta_event_pro_connless_iq_report_t #define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report #define le_meta_connless_iq_report_t le_meta_event_connless_iq_report_t #define le_meta_connless_iq_report le_meta_event_connless_iq_report diff --git a/bundles/noos_mini/inc/btstack_event.h b/bundles/noos_mini/inc/btstack_event.h index 32610c414..20ae54c5d 100644 --- a/bundles/noos_mini/inc/btstack_event.h +++ b/bundles/noos_mini/inc/btstack_event.h @@ -1446,7 +1446,7 @@ typedef struct le_mete_event_prd_adv_rsp_report #define le_meta_conn_iq_report le_meta_event_conn_iq_report #define le_meta_cte_req_failed_t le_meta_event_cte_req_failed_t #define le_meta_cte_req_failed le_meta_event_cte_req_failed -#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_pro_connless_iq_report_t le_meta_event_pro_connless_iq_report_t #define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report #define le_meta_connless_iq_report_t le_meta_event_connless_iq_report_t #define le_meta_connless_iq_report le_meta_event_connless_iq_report diff --git a/bundles/noos_typical/inc/btstack_event.h b/bundles/noos_typical/inc/btstack_event.h index 32610c414..20ae54c5d 100644 --- a/bundles/noos_typical/inc/btstack_event.h +++ b/bundles/noos_typical/inc/btstack_event.h @@ -1446,7 +1446,7 @@ typedef struct le_mete_event_prd_adv_rsp_report #define le_meta_conn_iq_report le_meta_event_conn_iq_report #define le_meta_cte_req_failed_t le_meta_event_cte_req_failed_t #define le_meta_cte_req_failed le_meta_event_cte_req_failed -#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_pro_connless_iq_report_t le_meta_event_pro_connless_iq_report_t #define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report #define le_meta_connless_iq_report_t le_meta_event_connless_iq_report_t #define le_meta_connless_iq_report le_meta_event_connless_iq_report diff --git a/bundles/typical/inc/btstack_event.h b/bundles/typical/inc/btstack_event.h index 32610c414..20ae54c5d 100644 --- a/bundles/typical/inc/btstack_event.h +++ b/bundles/typical/inc/btstack_event.h @@ -1446,7 +1446,7 @@ typedef struct le_mete_event_prd_adv_rsp_report #define le_meta_conn_iq_report le_meta_event_conn_iq_report #define le_meta_cte_req_failed_t le_meta_event_cte_req_failed_t #define le_meta_cte_req_failed le_meta_event_cte_req_failed -#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_pro_connless_iq_report_t le_meta_event_pro_connless_iq_report_t #define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report #define le_meta_connless_iq_report_t le_meta_event_connless_iq_report_t #define le_meta_connless_iq_report le_meta_event_connless_iq_report diff --git a/examples-gcc/central_fota/central_fota.ingw b/examples-gcc/central_fota/central_fota.ingw index 45d96cedc..3606ae8e2 100644 --- a/examples-gcc/central_fota/central_fota.ingw +++ b/examples-gcc/central_fota/central_fota.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Programs\\gcc-arm-none-eabi-10.3-2021.10\\bin", "eflash_addr": "0x42000", diff --git a/examples-gcc/get_started/get_started.ingw b/examples-gcc/get_started/get_started.ingw index 59ead60f7..91360dd40 100644 --- a/examples-gcc/get_started/get_started.ingw +++ b/examples-gcc/get_started/get_started.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Programs\\gcc-arm-none-eabi-10.3-2021.10\\bin", "eflash_addr": "0x42000", diff --git a/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw b/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw index 60d1049bf..3942f1db8 100644 --- a/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw +++ b/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 124984, + "size": 124964, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 147456 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Programs\\gcc-arm-none-eabi-10.3-2021.10\\bin", "eflash_addr": "0x42000", diff --git a/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw b/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw index 98c449db3..d01e4c9c3 100644 --- a/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw +++ b/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Programs\\gcc-arm-none-eabi-10.3-2021.10\\bin", "ide_ver": "", diff --git a/examples-gcc/smart_home_hub/smart_home_hub.ingw b/examples-gcc/smart_home_hub/smart_home_hub.ingw index cc1fe6a5e..1dec1168d 100644 --- a/examples-gcc/smart_home_hub/smart_home_hub.ingw +++ b/examples-gcc/smart_home_hub/smart_home_hub.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Programs\\gcc-arm-none-eabi-10.3-2021.10\\bin", "eflash_addr": "0x42000", diff --git a/examples-iar/peripheral_ibeacon/generic_cortex.icf b/examples-iar/peripheral_ibeacon/generic_cortex.icf index a070b79a7..f39e430bc 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__ = 536900792; +define symbol __ICFEDIT_region_IRAM1_start__ = 536900792; 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.ingw b/examples-iar/peripheral_ibeacon/peripheral_ibeacon.ingw index 5fd78c468..e3595516a 100644 --- a/examples-iar/peripheral_ibeacon/peripheral_ibeacon.ingw +++ b/examples-iar/peripheral_ibeacon/peripheral_ibeacon.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "", "ide_ver": "", diff --git a/examples-rowley/peripheral_ibeacon/peripheral_ibeacon.ingw b/examples-rowley/peripheral_ibeacon/peripheral_ibeacon.ingw index d7e17b712..421620334 100644 --- a/examples-rowley/peripheral_ibeacon/peripheral_ibeacon.ingw +++ b/examples-rowley/peripheral_ibeacon/peripheral_ibeacon.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "", "ide_ver": "", diff --git a/examples-segger/peripheral_ibeacon/peripheral_ibeacon.ingw b/examples-segger/peripheral_ibeacon/peripheral_ibeacon.ingw index 664238a1c..a6074dd28 100644 --- a/examples-segger/peripheral_ibeacon/peripheral_ibeacon.ingw +++ b/examples-segger/peripheral_ibeacon/peripheral_ibeacon.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "", "ide_ver": "", diff --git a/examples/anti_lost_mas/anti_lost_mas.ingw b/examples/anti_lost_mas/anti_lost_mas.ingw index 24bd8505e..738e13cd4 100644 --- a/examples/anti_lost_mas/anti_lost_mas.ingw +++ b/examples/anti_lost_mas/anti_lost_mas.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/anti_lost_sla/anti_lost_sla.ingw b/examples/anti_lost_sla/anti_lost_sla.ingw index b61dcbd37..c334d1bea 100644 --- a/examples/anti_lost_sla/anti_lost_sla.ingw +++ b/examples/anti_lost_sla/anti_lost_sla.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/ble_rpc/ble_rpc.ingw b/examples/ble_rpc/ble_rpc.ingw index 63725739d..0c175a261 100644 --- a/examples/ble_rpc/ble_rpc.ingw +++ b/examples/ble_rpc/ble_rpc.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 146464, + "size": 146444, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 163840 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/bqb_rf/bqb_rf.ingw b/examples/bqb_rf/bqb_rf.ingw index 1f1064098..08f4929c3 100644 --- a/examples/bqb_rf/bqb_rf.ingw +++ b/examples/bqb_rf/bqb_rf.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 161748, + "size": 161868, "base": 33562624 }, "ram": { @@ -13,7 +13,7 @@ "base": 33726464 }, "version": [ - 2,2,53] + 2,3,0] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/central_cte/central_cte.ingw b/examples/central_cte/central_cte.ingw index a33ba989a..fa3b30279 100644 --- a/examples/central_cte/central_cte.ingw +++ b/examples/central_cte/central_cte.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 146464, + "size": 146444, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 163840 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/central_fota/central_fota.ingw b/examples/central_fota/central_fota.ingw index 33cfdacce..ef4ce1a6b 100644 --- a/examples/central_fota/central_fota.ingw +++ b/examples/central_fota/central_fota.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/central_mass_conn/central_mass_conn.ingw b/examples/central_mass_conn/central_mass_conn.ingw index 5a320a384..5155a12aa 100644 --- a/examples/central_mass_conn/central_mass_conn.ingw +++ b/examples/central_mass_conn/central_mass_conn.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135844, + "size": 135824, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/central_throughput/central_throughput.ingw b/examples/central_throughput/central_throughput.ingw index 3a35b2a1f..d1cd1d83d 100644 --- a/examples/central_throughput/central_throughput.ingw +++ b/examples/central_throughput/central_throughput.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/coremark/coremark.ingw b/examples/coremark/coremark.ingw index 6693772d6..58ef4d608 100644 --- a/examples/coremark/coremark.ingw +++ b/examples/coremark/coremark.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 141808, + "size": 141788, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 163840 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/data_logger/data_logger.ingw b/examples/data_logger/data_logger.ingw index b1b80f844..27ebdaa1c 100644 --- a/examples/data_logger/data_logger.ingw +++ b/examples/data_logger/data_logger.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/direct_conn/direct_conn.ingw b/examples/direct_conn/direct_conn.ingw index 28124f9cb..cbfb5c088 100644 --- a/examples/direct_conn/direct_conn.ingw +++ b/examples/direct_conn/direct_conn.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 147176, + "size": 147152, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 163840 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/direct_conn/direct_conn.uvproj b/examples/direct_conn/direct_conn.uvproj index e2608d3da..9fe4e665f 100644 --- a/examples/direct_conn/direct_conn.uvproj +++ b/examples/direct_conn/direct_conn.uvproj @@ -1,10 +1,7 @@ - + - 1.1 -

### uVision Project, (C) Keil Software
- Target 1 @@ -15,27 +12,27 @@ ING91800 INGCHIPS CLOCK(32000000) CPUTYPE("Cortex-M3") ELITTLE IROM(0x4000-0x43fff) IRAM(0x20000000-0x2000ffff) - - - + + + 0 - - - - - - - - - - - + + + + + + + + + + + 0 - - - - - + + + + + 0 0 @@ -57,8 +54,8 @@ 0 0 - - + + 0 0 0 @@ -67,8 +64,8 @@ 0 0 - - + + 0 0 @@ -76,12 +73,12 @@ 1 0 fromelf.exe --bin -o direct_conn.bin ./output/direct_conn.axf - + 0 0 0 - + 0 @@ -95,16 +92,16 @@ 0 0 3 - - + + SARMCM3.DLL - + DCM.DLL -pCM3 SARMCM3.DLL - + TCM.DLL -pCM3 @@ -141,17 +138,17 @@ 0 7 - - - - + + + + ..\map.ini - - - - + + + + .\init.ini Segger\JL2CM3.dll @@ -168,7 +165,7 @@ 1 BIN\UL2CM3.DLL "" () - + @@ -200,7 +197,7 @@ 0 0 "Cortex-M3" - + 0 0 0 @@ -297,8 +294,8 @@ 1 - 0x28000 - 0x5c000 + 163840 + 376832 1 @@ -322,8 +319,8 @@ 0 - 0x20007520 - 0x8ae0 + 536900896 + 35552 0 @@ -331,7 +328,7 @@ 0x0 - + 1 @@ -350,7 +347,7 @@ --gnu USE_STDPERIPH_DRIVER,CONN_ROLE=0 - + ../../bundles/exp/inc;../../bundles/exp/inc/os;../../src/BSP;../../src/FWlib;../../src/StartUP/ing918;../../src/Tools;../../src @@ -364,10 +361,10 @@ 0 0 - - - - + + + + @@ -379,12 +376,12 @@ 0 0x00000000 0x00000000 - - - - - - + + + + + + @@ -460,5 +457,4 @@ - diff --git a/examples/ext_ackable_packet/ext_ackable_packet.ingw b/examples/ext_ackable_packet/ext_ackable_packet.ingw index 381be711b..e52dc153d 100644 --- a/examples/ext_ackable_packet/ext_ackable_packet.ingw +++ b/examples/ext_ackable_packet/ext_ackable_packet.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 146464, + "size": 146444, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 163840 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/ext_raw_packet/ext_raw_packet.ingw b/examples/ext_raw_packet/ext_raw_packet.ingw index 68b413db6..7cbce03c0 100644 --- a/examples/ext_raw_packet/ext_raw_packet.ingw +++ b/examples/ext_raw_packet/ext_raw_packet.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 146464, + "size": 146444, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 163840 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/ext_raw_packet_noos/ext_raw_packet_noos.ingw b/examples/ext_raw_packet_noos/ext_raw_packet_noos.ingw index b7791e398..00e6ed05f 100644 --- a/examples/ext_raw_packet_noos/ext_raw_packet_noos.ingw +++ b/examples/ext_raw_packet_noos/ext_raw_packet_noos.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135684, + "size": 135664, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/gatt_relay/gatt_relay.ingw b/examples/gatt_relay/gatt_relay.ingw index 7ae7bebe9..3fe448a20 100644 --- a/examples/gatt_relay/gatt_relay.ingw +++ b/examples/gatt_relay/gatt_relay.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/get_started/get_started.ingw b/examples/get_started/get_started.ingw index 19406e5e6..3bbe6f942 100644 --- a/examples/get_started/get_started.ingw +++ b/examples/get_started/get_started.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/hid_keyboard/hid_keyboard.ingw b/examples/hid_keyboard/hid_keyboard.ingw index a837442af..8749df26d 100644 --- a/examples/hid_keyboard/hid_keyboard.ingw +++ b/examples/hid_keyboard/hid_keyboard.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/hid_mouse/hid_mouse.ingw b/examples/hid_mouse/hid_mouse.ingw index 5dd2db883..bff1288f7 100644 --- a/examples/hid_mouse/hid_mouse.ingw +++ b/examples/hid_mouse/hid_mouse.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/ibeacon_scanner/ibeacon_scanner.ingw b/examples/ibeacon_scanner/ibeacon_scanner.ingw index c28fd8dff..1bf3d69fa 100644 --- a/examples/ibeacon_scanner/ibeacon_scanner.ingw +++ b/examples/ibeacon_scanner/ibeacon_scanner.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/io_over_ble_mas/io_over_ble_mas.ingw b/examples/io_over_ble_mas/io_over_ble_mas.ingw index f17b44034..2c98820a1 100644 --- a/examples/io_over_ble_mas/io_over_ble_mas.ingw +++ b/examples/io_over_ble_mas/io_over_ble_mas.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/io_over_ble_sla/io_over_ble_sla.ingw b/examples/io_over_ble_sla/io_over_ble_sla.ingw index e5d6071cd..a0d546921 100644 --- a/examples/io_over_ble_sla/io_over_ble_sla.ingw +++ b/examples/io_over_ble_sla/io_over_ble_sla.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/l2cap_psm/l2cap_psm.ingw b/examples/l2cap_psm/l2cap_psm.ingw index 901cb2110..99547f855 100644 --- a/examples/l2cap_psm/l2cap_psm.ingw +++ b/examples/l2cap_psm/l2cap_psm.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/littleVGL/littleVGL.ingw b/examples/littleVGL/littleVGL.ingw index 6fe33c810..feb775d4a 100644 --- a/examples/littleVGL/littleVGL.ingw +++ b/examples/littleVGL/littleVGL.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/llsync_light/llsync_light.ingw b/examples/llsync_light/llsync_light.ingw index 01408015c..40cf59387 100644 --- a/examples/llsync_light/llsync_light.ingw +++ b/examples/llsync_light/llsync_light.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/mesh-light/mesh-light.ingw b/examples/mesh-light/mesh-light.ingw index 471e3eb4e..e95ac7f52 100644 --- a/examples/mesh-light/mesh-light.ingw +++ b/examples/mesh-light/mesh-light.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 136384, + "size": 136368, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/pawr/README.md b/examples/pawr/README.md new file mode 100644 index 000000000..9cd839147 --- /dev/null +++ b/examples/pawr/README.md @@ -0,0 +1,10 @@ +# Periodic Advertising with Response + +This example demonstrates how to use PAwR API to: + +* Periodic advertising with subevents; +* Synchronize to subevents; +* Respond to subevents; +* Create connection from PAwR. + +Note: ING916xx ONLY. diff --git a/examples/pawr/data/cube_ING9168xx.dat b/examples/pawr/data/cube_ING9168xx.dat new file mode 100644 index 000000000..1edcae7bf --- /dev/null +++ b/examples/pawr/data/cube_ING9168xx.dat @@ -0,0 +1,76 @@ +[Window][Debug##Default] +Pos=60,60 +Size=400,400 +Collapsed=0 + +[ingCube][ING91680A] +ADC=configIsr=0,isrName=adc_isr,isrParam=NULL,enableClk=0,useDMA=0,mode=0,used=0|0|0|0|0|0|0|0|, +Antenna=pins=-1|-1|-1|-1|-1|-1|-1|-1| +Comparator=cfg=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA., +EFUSE=configIsr=0,isrName=efuse_isr,isrParam=NULL,enableClk=0, +KeyScan=configIsr=0,isrName=keyscan_isr,isrParam=NULL,enableClk=0,useDMA=0,cfg=AAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAABQAAAP..,cols=-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|,rows=-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|-1|, +GPIO0=configIsr=0,isrName=gpio0_isr,isrParam=NULL,enableClk=0,asDeeperWakeupSource=0,deeperWakeupLevel=0,retentionTypeA=0,retentionTypeB=0,highZTypeB=0,0=0|0|0|0|0|0,1=0|0|0|0|0|0,2=0|0|0|0|0|0,3=0|0|0|0|0|0,4=0|0|0|0|0|0,5=0|0|0|0|0|0,6=0|0|0|0|0|0,7=0|0|0|0|0|0,8=0|0|0|0|0|0,9=0|0|0|0|0|0,10=0|0|0|0|0|0,11=0|0|0|0|0|0,12=0|0|0|0|0|0,13=0|0|0|0|0|0,14=0|0|0|0|0|0, +I2C0=configIsr=0,isrName=i2c0_isr,isrParam=NULL,enableClk=0,useDMA=0,pinSCL=-1,pinSDA=-1, +I2C1=configIsr=0,isrName=i2c1_isr,isrParam=NULL,enableClk=0,useDMA=0,pinSCL=-1,pinSDA=-1, +I2S=configIsr=0,isrName=i2s_isr,isrParam=NULL,enableClk=0,cfg=//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAGQAAACAAAAAAAAAAAAAAAP////8AAAAAAAAAAP////8., +IR=configIsr=0,isrName=ir_isr,isrParam=NULL,enableClk=0,mode=0,pinWakup=-1,pinDI=-1,pinDO=-1, +PDM=configIsr=0,isrName=pdm_isr,isrParam=NULL,enableClk=0,useDMA=0,cfg=//////////8AAAAAGAAAAAAAAAA., +PWM=configIsr=0,isrName=pwm_isr,isrParam=NULL,enableClk=0,cfg=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////, +QDEC=configIsr=0,isrName=qdec_isr,isrParam=NULL,enableClk=0,useDMA=0,cfg=//////////8., +RTC=configIsr=0,isrName=rtc_isr,isrParam=NULL,enableClk=0,cfg=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB, +SPI0=configIsr=0,isrName=spi0_isr,isrParam=NULL,enableClk=0,role=0,qualMode=0,bitOrder=0,transMode=0,wrLen=1,rdLen=1,dummyLen=1,freq=0,polarity=0,phase=0,dataWidth=16,slaveDataOnly=0,addrEn=0,addrLen=0,cmdEn=0,intMask=0,rxThres=0,txThres=0,pinClk=-1,pinMISO=-1,pinMOSI=-1,pinCSn=-1,pinWP=-1,pinHold=-1,dmaEn[0]=0,dmaEn[1]=0, +SPI1=configIsr=0,isrName=spi1_isr,isrParam=NULL,enableClk=0,role=0,qualMode=0,bitOrder=0,transMode=0,wrLen=1,rdLen=1,dummyLen=1,freq=0,polarity=0,phase=0,dataWidth=16,slaveDataOnly=0,addrEn=0,addrLen=0,cmdEn=0,intMask=0,rxThres=0,txThres=0,pinClk=-1,pinMISO=-1,pinMOSI=-1,pinCSn=-1,pinWP=-1,pinHold=-1,dmaEn[0]=0,dmaEn[1]=0, +SWD=configIsr=0,isrName=swd_isr,isrParam=NULL,enableClk=0,pin_dio=4,pin_clk=3, +TIMER0=configIsr=0,isrName=timer0_isr,isrParam=NULL,enableClk=0,cfg=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////, +TIMER1=configIsr=0,isrName=timer1_isr,isrParam=NULL,enableClk=0,cfg=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////, +TIMER2=configIsr=0,isrName=timer2_isr,isrParam=NULL,enableClk=0,cfg=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////, +UART0=configIsr=0,isrName=uart0_isr,isrParam=NULL,enableClk=1,pinRx=2,pinTx=1,pinCts=-1,pinRts=-1,baud=115200,wlen=3,parity=0,fifoEn=1,rxEn=0,txEn=1,stopBits=0,useCts=0,useRts=0,enableRxIRQ=0,enableTxIRQ=0,txFifoLevel=1,rxFifoLevel=1,misc=AAAAAAA.,dmaEn[0]=0,dmaEn[1]=0,dmaOnError=0, +UART1=configIsr=0,isrName=uart1_isr,isrParam=NULL,enableClk=0,pinRx=-1,pinTx=-1,pinCts=-1,pinRts=-1,baud=115200,wlen=3,parity=0,fifoEn=1,rxEn=0,txEn=0,stopBits=0,useCts=0,useRts=0,enableRxIRQ=0,enableTxIRQ=0,txFifoLevel=1,rxFifoLevel=1,misc=AAAAAAA.,dmaEn[0]=0,dmaEn[1]=0,dmaOnError=0, +USB=configIsr=0,isrName=usb_isr,isrParam=NULL,enableClk=0, +WDT=configIsr=0,isrName=wdt_isr,isrParam=NULL,enableClk=1,int_timeout=9,reset_timeout=7, +Misc=sca=500,crystal32k=0,rf_rx_en=-1,rf_tx_en=-1,0=0|1|2,1=1|1|3,2=1|1|2,3=1|1|2,4=1|1|2,5=0|1|2,6=0|1|2,7=0|1|2,8=0|1|2,9=0|1|2,10=0|1|2,11=0|1|2,12=2|1|2,13=2|1|2,14=2|1|2, +Mux##cpu32k=index=1, +Mux=index=0, +RC=index=2 +SlowClkMux=index=1, +PLL=loop=70,div_pre=5,div_output=1 +DIV##Fast=multi=1,div=3 +HClkMux=index=1, +DIV##Timer=multi=1,div=1 +Mux##timer0=index=0, +Mux##timer1=index=0, +Mux##timer2=index=0, +DIV##pwm=multi=1,div=1 +Mux##pwm=index=0, +DIV##keyscan=multi=1,div=1 +Mux##keyscan=index=0, +DIV##pdm=multi=1,div=8 +DIV##spi0=multi=1,div=6 +Mux##spi0=index=0, +Mux##spi1=index=0, +Mux##uart0=index=0, +Mux##uart1=index=0, +DIV##i2s=multi=1,div=5 +Mux##i2s=index=0, +DIV##adc=multi=1,div=6 +Mux##adc=index=1, +Mux##ir=index=0, +Mux##efuse=index=0, +DIV##qdec=multi=1,div=2 +Mux##qdec=index=0, +DIV##usb=multi=1,div=8 +DIV##flash=multi=1,div=2 +Mux##flash=index=1, +DIV##pclk=multi=1,div=1 +DIV##sys32k=multi=1,div=750,en=1, +Mux##sys32k=index=0, + +[ingCube][init] +UART0=enableClk=1,baud=115200,pinTx=1,wlen=3,parity=0,fifoEn=1,rxEn=0,txEn=1,stopBits=0,useCts=0,useRts=0,enableRxIRQ=0,enableTxIRQ=0,txFifoLevel=1,rxFifoLevel=1, +WDT=configIsr=0,isrName=wdt_isr,isrParam=NULL,enableClk=1,int_timeout_ms=10000,reset_timeout_ms=200, + +[ingCube state][ING91680A] +Scale_PinPeripherals=170.000000 +OriginOnWindow_PinPeripherals=100.000000,100.000000 +Scale_ClockTree=170.000000 +OriginOnWindow_ClockTree=100.000000,100.000000 diff --git a/examples/pawr/data/gatt.const b/examples/pawr/data/gatt.const new file mode 100644 index 000000000..139597f9c --- /dev/null +++ b/examples/pawr/data/gatt.const @@ -0,0 +1,2 @@ + + diff --git a/examples/pawr/data/gatt.const.tmpl b/examples/pawr/data/gatt.const.tmpl new file mode 100644 index 000000000..15f5fbd6a --- /dev/null +++ b/examples/pawr/data/gatt.const.tmpl @@ -0,0 +1,4 @@ +{{loop gatt_handle}}#define {{gatt_handle.key:50}} {{gatt_handle.value}} +{{endloop}} +{{loop gatt_value_offset}}#define {{gatt_value_offset.key:50}} {{gatt_value_offset.value}} +{{endloop}} diff --git a/examples/pawr/data/gatt.profile b/examples/pawr/data/gatt.profile new file mode 100644 index 000000000..2a1d4206c --- /dev/null +++ b/examples/pawr/data/gatt.profile @@ -0,0 +1,2 @@ +0, 0 + diff --git a/examples/pawr/data/setup_soc.cgen b/examples/pawr/data/setup_soc.cgen new file mode 100644 index 000000000..07079da89 --- /dev/null +++ b/examples/pawr/data/setup_soc.cgen @@ -0,0 +1,61 @@ +void cube_soc_init(void) +{ +platform_config(PLATFORM_CFG_OSC32K_EN, PLATFORM_CFG_DISABLE); +platform_config(PLATFORM_CFG_32K_CLK_ACC, 500); + +} + +void cube_setup_peripherals(void) +{ +SYSCTRL_ClearClkGateMulti((1 << SYSCTRL_ITEM_APB_PinCtrl) + | (1 << SYSCTRL_ITEM_APB_UART0) + | (1 << SYSCTRL_ITEM_APB_WDT)); + +// SYSCTRL_SelectUsedDmaItems(...) + +// UART0 +// PINCTRL_SetPadMux(1, 20) +// PINCTRL_SelUartIn(0, 127, 127) +{ + APB_UART0->Control = 0; + APB_UART0->IntClear = 0; + APB_UART0->IntMask = 0; + APB_UART0->StatusClear = 0; + APB_UART0->IntBaudDivisor = 13; + APB_UART0->FractBaudDivisor = 1; + APB_UART0->LineCon_H = ( ((UART_PARITY_NOT_CHECK >> 2) & 1) << bsUART_STICK_PARITY ) | // SPS + ( 3 << bsUART_WORD_LENGTH ) | // WLEN + ( 1 << bsUART_FIFO_ENABLE ) | // FEN + ( 0 << bsUART_TWO_STOP_BITS) | // STP2 + ( ( UART_PARITY_NOT_CHECK & 3) << bsUART_PARITY_SELECT) ; // EPS, EPN + APB_UART0->FifoSelect = (1 << bsUART_TRANS_INT_LEVEL) + | (1 << bsUART_RECV_INT_LEVEL); + APB_UART0->IntMask = ((uint32_t)0 << bsUART_RECEIVE_INTENAB) | + ((uint32_t)0 << bsUART_TRANSMIT_INTENAB) | + ((uint32_t)0 << bsUART_TIMEOUT_INTENAB) | + ((uint32_t)0 << bsUART_FRAME_INTENAB) | + ((uint32_t)0 << bsUART_PARITY_INTENAB) | + ((uint32_t)0 << bsUART_BREAK_INTENAB) | + ((uint32_t)0 << bsUART_OVERRUN_INTENAB); + APB_UART0->Control = ((uint32_t)0 << bsUART_RECEIVE_ENABLE) | + ((uint32_t)1 << bsUART_TRANSMIT_ENABLE)| + ((uint32_t)1 << bsUART_ENABLE) | + ((uint32_t)0 << bsUART_CTS_ENA) | + ((uint32_t)0 << bsUART_RTS_ENA); +} + +APB_UART0->DmaCon = (0 << 0) | (0 << 1) | (0 << 2); + +// WDT +if (!IS_DEBUGGER_ATTACHED()) +{ + TMR_WatchDogEnable3((wdt_inttime_interval_t)9, (wdt_rsttime_interval_t)7, 0); +} + +// dump PINCTRL registers +APB_PINCTRL->IN_CTRL[3] = 0x01ffffff; // 0x01f17fff +} + +void cube_on_lle_init(void) +{ +} diff --git a/examples/pawr/doc/index.md b/examples/pawr/doc/index.md new file mode 100644 index 000000000..48c0eb6e4 --- /dev/null +++ b/examples/pawr/doc/index.md @@ -0,0 +1,70 @@ +# Periodic Advertising with Response + +This example demonstrates how to use PAwR API. + +This example contains two roles, Advertiser and Scanner, which is defined by setting +compiling switch `ROLE` to `ROLE_ADVERTISER` and `ROLE_SCANNER`. + +Advertiser broadcasts one periodic advertising set with two subevents. Data of these +subevents are updated from a counter. Once a response on a subevent is received, +it will try to initiate a connection (`gap_ext_create_connection_v2`). + +Scanner tries to establish synchronization to the periodic advertising set from +Advertiser. Then, it synchronizes to the first two subevents. When it receives +data from subevent #0, it send a response on subevent #1. + +## Test + +Build this project twice with compiling switch `ROLE` set to `0` & `1` respectively, +and download it two Dev-Boards. + +Check `printf` log to see if the connection can be established or not. + +### `printf` log of Advertiser + +* Subevents data request: + + ```shell + SUBEVT_DATA_REQ: + adv_handle = 0 + subevent_start = 0 + subevent_data_count = 1 + SUBEVT_DATA_REQ: + adv_handle = 0 + subevent_start = 1 + subevent_data_count = 1 + ``` + +* Response of subevents: + + ```shell + RSP_REPORT: + subevent = 1 + response_slot = 0 + data : .......... + ``` + +* Connected: + + ```shell + CONNECTED + ``` + +### `printf` log of Scanner + +* Subevents data: + + ```shell + SUBEVT REPORT (#10) + subevent = 0 + data : ...... + SUBEVT REPORT (#10) + subevent = 1 + data : ...... + ``` + +* Connected: + + ```shell + CONNECTED + ``` \ No newline at end of file diff --git a/examples/pawr/flash_download.ini b/examples/pawr/flash_download.ini new file mode 100644 index 000000000..8d282c7db --- /dev/null +++ b/examples/pawr/flash_download.ini @@ -0,0 +1,63 @@ +[main] +family=ing916 + +[options] +download=1 +verify=0 +redownload=1 +set-entry=0 +launch=1 +batch=1 +script= +entry=0x4000 +ResetReservedFlash=0 +protection.enabled=0 +protection.unlock=0 +writeprotection.enabled=0 +UseScript=0 +batch.current=0 +batch.limit=-1 + +[uart] +Baud=460800 +Port=COM7 +Parity= +DataBits=8 +StopBits=1 +Timeout=10000 + +[bin-0] +Name=Burn Bin #1 +Checked=0 +FileName=../../bundles/exp/ING9168xx/platform.bin +Address=33562624 + +[bin-1] +Name=Burn Bin #2 +Checked=1 +Address=33734656 +FileName=pawr.bin + +[bin-2] +Name=Burn Bin #3 +Checked=0 +FileName= +Address=16384 + +[bin-3] +Name=Burn Bin #4 +Checked=0 +FileName= +Address=16384 + +[bin-4] +Name=Burn Bin #5 +Checked=0 +FileName= +Address=16384 + +[bin-5] +Name=Burn Bin #6 +Checked=0 +FileName= +Address=16384 diff --git a/examples/pawr/init.ini b/examples/pawr/init.ini new file mode 100644 index 000000000..4a39000cb --- /dev/null +++ b/examples/pawr/init.ini @@ -0,0 +1,3 @@ +msp = *(unsigned int *)( 0x02002000 ) +pc = *(unsigned int *)( 0x02002000 + 4 ) + diff --git a/examples/pawr/pawr.ingw b/examples/pawr/pawr.ingw new file mode 100644 index 000000000..3b58e6ccd --- /dev/null +++ b/examples/pawr/pawr.ingw @@ -0,0 +1,82 @@ +{ + "watchdog": true, + "bundle_meta": { + "rom": { + "size": 168988, + "base": 33562624 + }, + "ram": { + "size": 21524, + "base": 536870912 + }, + "app": { + "base": 33734656 + }, + "version": [ + 2,3,0] + }, + "tc_dir": "C:\\Keil_v5\\UV4", + "eflash_addr": "0x42000", + "ide_ver": "5", + "ide_exe": "C:\\Keil_v5\\UV4\\UV4.exe", + "use_uart_trace": false, + "ota": false, + "ide": "keil", + "git": false, + "use_segger_rtt": true, + "trace_port": "seggerrtt", + "trace_mask": "", + "scan_data": "0\r\n", + "priv_addr": "GAP_RANDOM_ADDRESS_OFF", + "enable_hci_log": false, + "ota_ver_minor": "0", + "ota_ver_major": "0", + "template": "C:\\projects\\ingchips\\ingWizard\\templates\\typical\\peripheral", + "coding_adv": false, + "key_incode": true, + "series": "ING9168xx", + "proj_name": "pawr", + "sdk_release_path": "..\/..", + "printf_port": "uart0", + "security": false, + "legacy_adv": true, + "adv_data": "0\r\n", + "use_eflash": false, + "wizard_dir": "C:\/projects\/ingchips\/ingWizard", + "key_addr": "0x44000", + "trace_enable": true, + "pb_adv": true, + "is_sdk_path_rel": true, + "pb_gatt": true, + "deep_sleep": true, + "proj_dir": "C:\/projects\/ingchips\/SDK_Release\/examples\\pawr", + "heap_size": 0, + "power_saving": false, + "secondary": false, + "bundle": "exp", + "app_rom_size": "344064", + "app_rom_addr": "33734656", + "family": "ing916", + "vcode": false, + "heap_override": false, + "trace_mask_nim": "", + "io_cap": "IO_CAPABILITY_NO_INPUT_NO_OUTPUT", + "role": "peripheral", + "noos": false, + "mesh": { + "lowpower": true, + "friend": true, + "relay": true, + "proxy": true + }, + "keil": true, + "cmsis": "", + "cube": true, + "app_ram_size": 11240, + "app_ram_addr": 536892440, + "k5_cc_ver": "6", + "printf_enable": true, + "ota_ver_patch": "0", + "profile_data": "0, 0\r\n", + "coding_profile": false +} \ No newline at end of file diff --git a/examples/pawr/pawr.uvopt b/examples/pawr/pawr.uvopt new file mode 100644 index 000000000..eecdd0eef --- /dev/null +++ b/examples/pawr/pawr.uvopt @@ -0,0 +1,184 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + Target 1 + 0x4 + ARM-ADS + + 32000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\listing\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 0 + + SARMCM3.DLL + + DCM.DLL + -pCM3 + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 7 + + + + + ..\map.ini + + + + + .\init.ini + Segger\JL2CM3.dll + + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + + + + 0 + JL2CM3 + -O78 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO6 -FD20000000 -FC8800 -FN1 -FF0ING91600 -FS02000000 -FL0200000 + + + 0 + UL2CM3 + -U -O14 -S0 -C-1 -P00 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO2 -FD20000000 -FC8000 -FN1 -FF0ING91600 -FS04000 -FL080000 + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + +
diff --git a/examples/pawr/pawr.uvoptx b/examples/pawr/pawr.uvoptx new file mode 100644 index 000000000..63803d3de --- /dev/null +++ b/examples/pawr/pawr.uvoptx @@ -0,0 +1,557 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + Target 1 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\listing\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 4 + + + + + .\init.ini + + + + + .\init.ini + Segger\JL2CM3.dll + + + + 0 + DLGUARM + d + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + JL2CM3 + -O70 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC8000 -FN1 -FF0ING91600.flm -FS02000000 -FL0200000 -FP0($$Device:ING91600$Flash\ING91600.flm) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0NEW_DEVICE -FS00 -FL040000 -FP0($$Device:ARMCM3$Device\ARM\Flash\NEW_DEVICE.FLM)) + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + APP + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + .\src\main.c + main.c + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + .\src\profile.c + profile.c + 0 + 0 + + + + + StartUP + 0 + 0 + 0 + 0 + + 2 + 3 + 2 + 0 + 0 + 0 + .\src\startup_ing91600.s + startup_ing91600.s + 0 + 0 + + + 2 + 4 + 3 + 0 + 0 + 0 + ../..\bundles\exp\ING9168xx\symdefs.m + symdefs.m + 0 + 0 + + + + + BSP + 0 + 0 + 0 + 0 + + 3 + 5 + 1 + 0 + 0 + 0 + ../..\src\BSP\eflash.c + eflash.c + 0 + 0 + + + + + FWlib + 0 + 0 + 0 + 0 + + 4 + 6 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_adc.c + peripheral_adc.c + 0 + 0 + + + 4 + 7 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_gpio.c + peripheral_gpio.c + 0 + 0 + + + 4 + 8 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_i2c.c + peripheral_i2c.c + 0 + 0 + + + 4 + 9 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_pinctrl.c + peripheral_pinctrl.c + 0 + 0 + + + 4 + 10 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_pwm.c + peripheral_pwm.c + 0 + 0 + + + 4 + 11 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_rtc.c + peripheral_rtc.c + 0 + 0 + + + 4 + 12 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_ssp.c + peripheral_ssp.c + 0 + 0 + + + 4 + 13 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_sysctrl.c + peripheral_sysctrl.c + 0 + 0 + + + 4 + 14 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_timer.c + peripheral_timer.c + 0 + 0 + + + 4 + 15 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_uart.c + peripheral_uart.c + 0 + 0 + + + 4 + 16 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_comparator.c + peripheral_comparator.c + 0 + 0 + + + 4 + 17 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_dma.c + peripheral_dma.c + 0 + 0 + + + 4 + 18 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_efuse.c + peripheral_efuse.c + 0 + 0 + + + 4 + 19 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_i2s.c + peripheral_i2s.c + 0 + 0 + + + 4 + 20 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_ir.c + peripheral_ir.c + 0 + 0 + + + 4 + 21 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_keyscan.c + peripheral_keyscan.c + 0 + 0 + + + 4 + 22 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_pdm.c + peripheral_pdm.c + 0 + 0 + + + 4 + 23 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_pte.c + peripheral_pte.c + 0 + 0 + + + 4 + 24 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_qdec.c + peripheral_qdec.c + 0 + 0 + + + 4 + 25 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_usb.c + peripheral_usb.c + 0 + 0 + + + + + Tools + 0 + 0 + 0 + 0 + + 5 + 26 + 1 + 0 + 0 + 0 + ../..\src\Tools\trace.c + trace.c + 0 + 0 + + + + + ::CMSIS + 0 + 0 + 0 + 1 + + +
diff --git a/examples/pawr/pawr.uvproj b/examples/pawr/pawr.uvproj new file mode 100644 index 000000000..e4d744a29 --- /dev/null +++ b/examples/pawr/pawr.uvproj @@ -0,0 +1,547 @@ + + + 1.1 +
### uVision Project, (C) Keil Software
+ + + Target 1 + 0x4 + ARM-ADS + + + INGCHIPS + ING91600 + CLOCK(128000000) CPUTYPE("Cortex-M4") FPU2 ELITTLE IROM(0x2000000-0x2200000) IRAM(0x20000000-0x20008000) + + + + 0 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\output\ + pawr + 1 + 0 + 1 + 1 + 1 + .\listing\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf.exe --bin -o pawr.bin ./output/pawr.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DCM.DLL + -pCM3 + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + + 0 + 1 + + + + + + .\init.ini + + + + + + + .\init.ini + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 0 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x10000 + + + 1 + 0x4000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 33734656 + 344064 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 536892440 + 11240 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + + --gnu + USE_STDPERIPH_DRIVER + + ../../bundles/exp/inc;../../bundles/exp/inc/os;../../src/BSP;../../src/FWlib;../../src/StartUP/ing916;../../src/Tools;../../src + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x00000000 + + + + + + + + + + + + APP + + + main.c + 1 + .\src\main.c + + + profile.c + 1 + .\src\profile.c + + + + + StartUP + + + startup_ing91600.s + 2 + .\src\startup_ing91600.s + + + symdefs.m + 3 + ../..\bundles\exp\ING9168xx\symdefs.m + + + + + BSP + + + eflash.c + 1 + ../..\src\BSP\eflash.c + + + + + FWlib + + + peripheral_adc.c + 1 + ../..\src\FWlib\peripheral_adc.c + + + peripheral_gpio.c + 1 + ../..\src\FWlib\peripheral_gpio.c + + + peripheral_i2c.c + 1 + ../..\src\FWlib\peripheral_i2c.c + + + peripheral_pinctrl.c + 1 + ../..\src\FWlib\peripheral_pinctrl.c + + + peripheral_pwm.c + 1 + ../..\src\FWlib\peripheral_pwm.c + + + peripheral_rtc.c + 1 + ../..\src\FWlib\peripheral_rtc.c + + + peripheral_ssp.c + 1 + ../..\src\FWlib\peripheral_ssp.c + + + peripheral_sysctrl.c + 1 + ../..\src\FWlib\peripheral_sysctrl.c + + + peripheral_timer.c + 1 + ../..\src\FWlib\peripheral_timer.c + + + peripheral_uart.c + 1 + ../..\src\FWlib\peripheral_uart.c + + + peripheral_comparator.c + 1 + ../..\src\FWlib\peripheral_comparator.c + + + peripheral_dma.c + 1 + ../..\src\FWlib\peripheral_dma.c + + + peripheral_efuse.c + 1 + ../..\src\FWlib\peripheral_efuse.c + + + peripheral_i2s.c + 1 + ../..\src\FWlib\peripheral_i2s.c + + + peripheral_ir.c + 1 + ../..\src\FWlib\peripheral_ir.c + + + peripheral_keyscan.c + 1 + ../..\src\FWlib\peripheral_keyscan.c + + + peripheral_pdm.c + 1 + ../..\src\FWlib\peripheral_pdm.c + + + peripheral_pte.c + 1 + ../..\src\FWlib\peripheral_pte.c + + + peripheral_qdec.c + 1 + ../..\src\FWlib\peripheral_qdec.c + + + peripheral_usb.c + 1 + ../..\src\FWlib\peripheral_usb.c + + + + + Tools + + + trace.c + 1 + ../..\src\Tools\trace.c + + + + + + +
diff --git a/examples/pawr/pawr.uvprojx b/examples/pawr/pawr.uvprojx new file mode 100644 index 000000000..5c89f2b41 --- /dev/null +++ b/examples/pawr/pawr.uvprojx @@ -0,0 +1,554 @@ + + + 2.1 +
### uVision Project, (C) Keil Software
+ + + Target 1 + 0x4 + ARM-ADS + 6190000::V6.19::ARMCLANG + 1 + + + ING91600 + INGChips + INGChips.INGCHIPS_DeviceFamilyPack.0.9.0 + http://www.ingchips.com + IROM(0x2000000-0x21fffff) IRAM(0x20000000-0x20007fff) CPUTYPE("Cortex-M4") FPU2 CLOCK(12800000) ELITTLE + + + + 0 + + + + + + + + + + + $$Device:ING91600$SVD\ING91600.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\output\ + pawr + 1 + 0 + 1 + 1 + 1 + .\listing\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf.exe --bin -o pawr.bin ./output/pawr.axf + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM3 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 0 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x8000 + + + 1 + 0x2000000 + 0x200000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 33734656 + 344064 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 536892440 + 11240 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 3 + 0 + 0 + 0 + 0 + 0 + 3 + 3 + 1 + 1 + 0 + 0 + 0 + + + USE_STDPERIPH_DRIVER,ROLE=1 + + ../../bundles/exp/inc;../../bundles/exp/inc/os;../../src/BSP;../../src/FWlib;../../src/StartUP/ing916;../../src/Tools;../../src + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x00000000 + + + + + + + + + + + + + APP + + + main.c + 1 + .\src\main.c + + + profile.c + 1 + .\src\profile.c + + + + + StartUP + + + startup_ing91600.s + 2 + .\src\startup_ing91600.s + + + symdefs.m + 3 + ../..\bundles\exp\ING9168xx\symdefs.m + + + + + BSP + + + eflash.c + 1 + ../..\src\BSP\eflash.c + + + + + FWlib + + + peripheral_adc.c + 1 + ../..\src\FWlib\peripheral_adc.c + + + peripheral_gpio.c + 1 + ../..\src\FWlib\peripheral_gpio.c + + + peripheral_i2c.c + 1 + ../..\src\FWlib\peripheral_i2c.c + + + peripheral_pinctrl.c + 1 + ../..\src\FWlib\peripheral_pinctrl.c + + + peripheral_pwm.c + 1 + ../..\src\FWlib\peripheral_pwm.c + + + peripheral_rtc.c + 1 + ../..\src\FWlib\peripheral_rtc.c + + + peripheral_ssp.c + 1 + ../..\src\FWlib\peripheral_ssp.c + + + peripheral_sysctrl.c + 1 + ../..\src\FWlib\peripheral_sysctrl.c + + + peripheral_timer.c + 1 + ../..\src\FWlib\peripheral_timer.c + + + peripheral_uart.c + 1 + ../..\src\FWlib\peripheral_uart.c + + + peripheral_comparator.c + 1 + ../..\src\FWlib\peripheral_comparator.c + + + peripheral_dma.c + 1 + ../..\src\FWlib\peripheral_dma.c + + + peripheral_efuse.c + 1 + ../..\src\FWlib\peripheral_efuse.c + + + peripheral_i2s.c + 1 + ../..\src\FWlib\peripheral_i2s.c + + + peripheral_ir.c + 1 + ../..\src\FWlib\peripheral_ir.c + + + peripheral_keyscan.c + 1 + ../..\src\FWlib\peripheral_keyscan.c + + + peripheral_pdm.c + 1 + ../..\src\FWlib\peripheral_pdm.c + + + peripheral_pte.c + 1 + ../..\src\FWlib\peripheral_pte.c + + + peripheral_qdec.c + 1 + ../..\src\FWlib\peripheral_qdec.c + + + peripheral_usb.c + 1 + ../..\src\FWlib\peripheral_usb.c + + + + + Tools + + + trace.c + 1 + ../..\src\Tools\trace.c + + + + + ::CMSIS + + + + + + + + + + + + + + + + +
diff --git a/examples/pawr/src/addr.c b/examples/pawr/src/addr.c new file mode 100644 index 000000000..480778f72 --- /dev/null +++ b/examples/pawr/src/addr.c @@ -0,0 +1,2 @@ +static const bd_addr_t advertiser_addr = { 0xF7, 0x9B, 0x40, 0x2C, 0x4A, 0x73 }; +static const bd_addr_t scanner_addr = { 0xF7, 0x9B, 0x40, 0x2C, 0x4A, 0x74 }; diff --git a/examples/pawr/src/main.c b/examples/pawr/src/main.c new file mode 100644 index 000000000..7a87cba99 --- /dev/null +++ b/examples/pawr/src/main.c @@ -0,0 +1,151 @@ +#include +#include +#include "profile.h" +#include "ingsoc.h" +#include "platform_api.h" +#include "FreeRTOS.h" +#include "task.h" +#include "trace.h" +#include "../data/setup_soc.cgen" + +#if (INGCHIPS_FAMILY != INGCHIPS_FAMILY_916) +#error This example is ING916xx ONLY. +#endif + +static uint32_t cb_hard_fault(hard_fault_info_t *info, void *_) +{ + platform_printf("HARDFAULT:\nPC : 0x%08X\nLR : 0x%08X\nPSR: 0x%08X\n" + "R0 : 0x%08X\nR1 : 0x%08X\nR2 : 0x%08X\nP3 : 0x%08X\n" + "R12: 0x%08X\n", + info->pc, info->lr, info->psr, + info->r0, info->r1, info->r2, info->r3, info->r12); + for (;;); +} + +static uint32_t cb_assertion(assertion_info_t *info, void *_) +{ + platform_printf("[ASSERTION] @ %s:%d\n", + info->file_name, + info->line_no); + for (;;); +} + +static uint32_t cb_heap_out_of_mem(uint32_t tag, void *_) +{ + platform_printf("[OOM] @ %d\n", tag); + for (;;); +} + +#define PRINT_PORT APB_UART0 + +uint32_t cb_putc(char *c, void *dummy) +{ + while (apUART_Check_TXFIFO_FULL(PRINT_PORT) == 1); + UART_SendData(PRINT_PORT, (uint8_t)*c); + return 0; +} + +int fputc(int ch, FILE *f) +{ + cb_putc((char *)&ch, NULL); + return ch; +} + +void setup_peripherals(void) +{ + cube_setup_peripherals(); +} + +uint32_t on_lle_init(void *dummy, void *user_data) +{ + (void)(dummy); + (void)(user_data); + cube_on_lle_init(); + return 0; +} + +uint32_t on_deep_sleep_wakeup(void *dummy, void *user_data) +{ + (void)(dummy); + (void)(user_data); + setup_peripherals(); + return 0; +} + +uint32_t query_deep_sleep_allowed(void *dummy, void *user_data) +{ + (void)(dummy); + (void)(user_data); + // TODO: return 0 if deep sleep is not allowed now; else deep sleep is allowed + return 0; +} + +static void watchdog_task(void *pdata) +{ + for (;;) + { + vTaskDelay(pdMS_TO_TICKS(5000)); + TMR_WatchDogRestart(); + } +} + +trace_rtt_t trace_ctx = {0}; + + +static const platform_evt_cb_table_t evt_cb_table = +{ + .callbacks = { + [PLATFORM_CB_EVT_HARD_FAULT] = { + .f = (f_platform_evt_cb)cb_hard_fault, + }, + [PLATFORM_CB_EVT_ASSERTION] = { + .f = (f_platform_evt_cb)cb_assertion, + }, + [PLATFORM_CB_EVT_HEAP_OOM] = { + .f = (f_platform_evt_cb)cb_heap_out_of_mem, + }, + [PLATFORM_CB_EVT_PROFILE_INIT] = { + .f = setup_profile, + }, + [PLATFORM_CB_EVT_LLE_INIT] = { + .f = on_lle_init, + }, + [PLATFORM_CB_EVT_ON_DEEP_SLEEP_WAKEUP] = { + .f = (f_platform_evt_cb)on_deep_sleep_wakeup, + }, + [PLATFORM_CB_EVT_QUERY_DEEP_SLEEP_ALLOWED] = { + .f = query_deep_sleep_allowed, + }, + [PLATFORM_CB_EVT_PUTC] = { + .f = (f_platform_evt_cb)cb_putc, + }, + [PLATFORM_CB_EVT_TRACE] = { + .f = (f_platform_evt_cb)cb_trace_rtt, + .user_data = &trace_ctx, + }, + } +}; + +int app_main() +{ + cube_soc_init(); + + // setup event handlers + platform_set_evt_callback_table(&evt_cb_table); + + setup_peripherals(); + SYSCTRL_Init(); + xTaskCreate(watchdog_task, + "w", + configMINIMAL_STACK_SIZE, + NULL, + (configMAX_PRIORITIES - 1), + NULL); + + trace_rtt_init(&trace_ctx); + // TODO: config trace mask + platform_config(PLATFORM_CFG_TRACE_MASK, 0); + + return 0; +} + diff --git a/examples/pawr/src/profile.c b/examples/pawr/src/profile.c new file mode 100644 index 000000000..93426ed83 --- /dev/null +++ b/examples/pawr/src/profile.c @@ -0,0 +1,5 @@ +#if (ROLE == ROLE_ADVERTISER) +#include "profile_advertiser.c" +#else +#include "profile_scanner.c" +#endif diff --git a/examples/pawr/src/profile.h b/examples/pawr/src/profile.h new file mode 100644 index 000000000..2694caac4 --- /dev/null +++ b/examples/pawr/src/profile.h @@ -0,0 +1,19 @@ +#ifndef _PROFILESTASK_H_ +#define _PROFILESTASK_H_ + +#include + +// PAwR advertiser (when connected, it is Central) +#define ROLE_ADVERTISER 0 + +// PAwR scanner/receiver/responder (when connected, it is Peripheral) +#define ROLE_SCANNER 1 + +#define INVALID_HANDLE 0xffff +#define DATA_COUNTER_OFFSET 4 + +uint32_t setup_profile(void *data, void *user_data); + +#endif + + diff --git a/examples/pawr/src/profile_advertiser.c b/examples/pawr/src/profile_advertiser.c new file mode 100644 index 000000000..235619bce --- /dev/null +++ b/examples/pawr/src/profile_advertiser.c @@ -0,0 +1,247 @@ +#include +#include "profile.h" +#include "platform_api.h" +#include "att_db.h" +#include "gap.h" +#include "btstack_event.h" +#include "btstack_defines.h" + +// GATT characteristic handles +#include "../data/gatt.const" + +#include "addr.c" + +static hci_con_handle_t conn_handle = INVALID_HANDLE; +static uint8_t is_initiating = 0; + +static uint16_t att_read_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t offset, + uint8_t * buffer, uint16_t buffer_size) +{ + switch (att_handle) + { + + default: + return 0; + } +} + +static int att_write_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t transaction_mode, + uint16_t offset, const uint8_t *buffer, uint16_t buffer_size) +{ + switch (att_handle) + { + + default: + return 0; + } +} + +static void user_msg_handler(uint32_t msg_id, void *data, uint16_t size) +{ + switch (msg_id) + { + // add your code + //case MY_MESSAGE_ID: + // break; + default: + ; + } +} + +const static ext_adv_set_en_t adv_sets_en[] = { {.handle = 0, .duration = 0, .max_events = 0} }; + +static uint8_t data0[] = {4, 0xFF, 0xAC, 0x06, 0x01 }; +static uint8_t data1[] = {4, 0xFF, 0xAC, 0x06, 0x02 }; + +static uint8_t data_counter = 0x02; + +static const gap_prd_adv_subevent_data_t subevents_data[] = +{ + { + .subevent = 0, + .rsp_slot_start = 0, + .rsp_slot_count = 1, + .data_len = sizeof(data0), + .data = data0, + }, + { + .subevent = 1, + .rsp_slot_start = 0, + .rsp_slot_count = 1, + .data_len = sizeof(data1), + .data = data1, + } +}; + +static const initiating_phy_config_t phy_config = +{ + .phy = PHY_1M, + .conn_param = + { + .scan_int = 100, // ignored + .scan_win = 20, // ignored + .interval_min = 100, + .interval_max = 100, + .latency = 0, + .supervision_timeout = 300, + .min_ce_len = 3, + .max_ce_len = 3, + } +}; + +static void setup_adv(void) +{ + gap_set_ext_adv_para(0, + 0, + 0x0100, 0x0120, // Primary_Advertising_Interval_Min, Primary_Advertising_Interval_Max + PRIMARY_ADV_ALL_CHANNELS, // Primary_Advertising_Channel_Map + BD_ADDR_TYPE_LE_RANDOM, // Own_Address_Type + BD_ADDR_TYPE_LE_PUBLIC, // Peer_Address_Type (ignore) + NULL, // Peer_Address (ignore) + ADV_FILTER_ALLOW_ALL, // Advertising_Filter_Policy + 0x00, // Advertising_Tx_Power + PHY_1M, // Primary_Advertising_PHY + 0, // Secondary_Advertising_Max_Skip + PHY_1M, // Secondary_Advertising_PHY + 0x00, // Advertising_SID + 0x00); // Scan_Request_Notification_Enable + + gap_set_periodic_adv_para_v2(0, + 800, 800, // interval + PERIODIC_ADV_BIT_INC_TX, // properties + 2, // num_subevents + 100, // subevent_interval + 1, // response_slot_delay + 2, // response_slot_spacing + 4); // num_response_slots + + gap_set_periodic_adv_subevent_data(0, 2, subevents_data); + + gap_set_ext_adv_enable(1, sizeof(adv_sets_en) / sizeof(adv_sets_en[0]), adv_sets_en); + gap_set_periodic_adv_enable(1, 0); +} + +static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uint8_t *packet, uint16_t size) +{ + uint8_t event = hci_event_packet_get_type(packet); + const btstack_user_msg_t *p_user_msg; + if (packet_type != HCI_EVENT_PACKET) return; + + switch (event) + { + case BTSTACK_EVENT_STATE: + if (btstack_event_state_get_state(packet) != HCI_STATE_WORKING) + break; + gap_set_adv_set_random_addr(0, advertiser_addr); + setup_adv(); + break; + + case HCI_EVENT_COMMAND_COMPLETE: + break; + + case HCI_EVENT_LE_META: + switch (hci_event_le_meta_get_subevent_code(packet)) + { + case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2: + { + is_initiating = 0; + const le_meta_event_enh_create_conn_complete_v2_t *complete = + decode_hci_le_meta_event(packet, le_meta_event_enh_create_conn_complete_v2_t); + if (0 == complete->status) + { + conn_handle = complete->handle; + platform_printf("CONNECTED\n"); + } + else + platform_printf("Initiating from PAwR failed\n"); + } + break; + case HCI_SUBEVENT_PRD_ADV_SUBEVT_DATA_REQ: + { + const le_mete_event_prd_adv_subevent_data_req_t *req = + decode_hci_le_meta_event(packet, le_mete_event_prd_adv_subevent_data_req_t); + + platform_printf("SUBEVT_DATA_REQ:\n" + " adv_handle = %d\n" + " subevent_start = %d\n" + " subevent_data_count = %d\n", + req->adv_handle, + req->subevent_start, + req->subevent_data_count); + + int i; + for (i = 0; i < req->subevent_data_count; i++) + { + const gap_prd_adv_subevent_data_t *p = subevents_data + req->subevent_start + i; + + ((uint8_t *)p->data)[DATA_COUNTER_OFFSET] = ++data_counter; + gap_set_periodic_adv_subevent_data(0, 1, p); + } + } + break; + case HCI_SUBEVENT_PRD_ADV_RSP_REPORT: + { + const le_mete_event_prd_adv_rsp_report_t *report = + decode_hci_le_meta_event(packet, le_mete_event_prd_adv_rsp_report_t); + platform_printf("RSP_REPORT:\n" + " subevent = %d\n" + " response_slot = %d\n" + " data : ", + report->subevent, + report->reports[0].response_slot); + printf_hexdump(report->reports[0].data, report->reports[0].data_length); + + if ((INVALID_HANDLE == conn_handle) && (0 == is_initiating)) + { + uint8_t r = gap_ext_create_connection_v2(0, + report->subevent, + INITIATING_ADVERTISER_FROM_PARAM, + BD_ADDR_TYPE_LE_RANDOM, + BD_ADDR_TYPE_LE_RANDOM, + scanner_addr, + 1, + &phy_config); + + if (r == 0) + is_initiating = 1; + } + } + break; + default: + break; + } + + break; + + case HCI_EVENT_DISCONNECTION_COMPLETE: + conn_handle = INVALID_HANDLE; + platform_printf("DISCONNECTED\n"); + break; + + case ATT_EVENT_CAN_SEND_NOW: + // add your code + break; + + case BTSTACK_EVENT_USER_MSG: + p_user_msg = hci_event_packet_get_user_msg(packet); + user_msg_handler(p_user_msg->msg_id, p_user_msg->data, p_user_msg->len); + break; + + default: + break; + } +} + +static btstack_packet_callback_registration_t hci_event_callback_registration; + +uint32_t setup_profile(void *data, void *user_data) +{ + platform_printf("PAwR Advertiser started\n"); + // Note: security has not been enabled. + att_server_init(att_read_callback, att_write_callback); + hci_event_callback_registration.callback = &user_packet_handler; + hci_add_event_handler(&hci_event_callback_registration); + att_server_register_packet_handler(&user_packet_handler); + return 0; +} + diff --git a/examples/pawr/src/profile_scanner.c b/examples/pawr/src/profile_scanner.c new file mode 100644 index 000000000..96f12da43 --- /dev/null +++ b/examples/pawr/src/profile_scanner.c @@ -0,0 +1,239 @@ +#include +#include "profile.h" +#include "platform_api.h" +#include "att_db.h" +#include "gap.h" +#include "btstack_event.h" +#include "btstack_defines.h" + +// GATT characteristic handles +#include "../data/gatt.const" + +#include "addr.c" + +static uint8_t scan_data[] = { 4, 0xFF, 0xAC, 0x06, 0x01 }; + +const static uint8_t profile_data[] = { + #include "../data/gatt.profile" +}; + +static uint8_t prd_create_sync = 0; +static int response_counting_down = 10; +static hci_con_handle_t conn_handle = INVALID_HANDLE; +static uint16_t sync_handle = INVALID_HANDLE; + +static uint8_t data_counter = 0x01; + +static uint16_t att_read_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t offset, + uint8_t * buffer, uint16_t buffer_size) +{ + switch (att_handle) + { + + default: + return 0; + } +} + +static int att_write_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t transaction_mode, + uint16_t offset, const uint8_t *buffer, uint16_t buffer_size) +{ + switch (att_handle) + { + + default: + return 0; + } +} + +static void user_msg_handler(uint32_t msg_id, void *data, uint16_t size) +{ + switch (msg_id) + { + // add your code + //case MY_MESSAGE_ID: + // break; + default: + ; + } +} + +static const scan_phy_config_t configs[2] = +{ + { + .phy = PHY_1M, + .type = SCAN_PASSIVE, + .interval = 200, + .window = 100 + }, + { + .phy = PHY_CODED, + .type = SCAN_PASSIVE, + .interval = 200, + .window = 100 + } +}; + +static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uint8_t *packet, uint16_t size) +{ + uint8_t event = hci_event_packet_get_type(packet); + const btstack_user_msg_t *p_user_msg; + if (packet_type != HCI_EVENT_PACKET) return; + + switch (event) + { + case BTSTACK_EVENT_STATE: + if (btstack_event_state_get_state(packet) != HCI_STATE_WORKING) + break; + gap_set_random_device_address(scanner_addr); + gap_add_whitelist(advertiser_addr, BD_ADDR_TYPE_LE_RANDOM); + gap_set_ext_scan_para(BD_ADDR_TYPE_LE_RANDOM, SCAN_ACCEPT_WLIST_EXCEPT_NOT_DIRECTED, + sizeof(configs) / sizeof(configs[0]), + configs); + gap_set_ext_scan_enable(1, 0, 0, 0); // start continuous scanning + break; + + case HCI_EVENT_COMMAND_COMPLETE: + switch (hci_event_command_complete_get_command_opcode(packet)) + { + // add your code to check command complete response + // case : + // break; + default: + break; + } + break; + + case HCI_EVENT_LE_META: + switch (hci_event_le_meta_get_subevent_code(packet)) + { + case HCI_SUBEVENT_LE_EXTENDED_ADVERTISING_REPORT: + { + const le_ext_adv_report_t *report = decode_hci_le_meta_event(packet, le_meta_event_ext_adv_report_t)->reports; + + platform_printf("%02X:%02X:%02X:%02X:%02X:%02X: %dBm\n", + report->address[5], report->address[4], report->address[3], report->address[2], report->address[1], report->address[0], + report->rssi); + if ((0 == prd_create_sync) && (report->prd_adv_interval)) + { + platform_printf("create sync...\n"); + prd_create_sync = 1; + gap_periodic_adv_create_sync(PERIODIC_ADVERTISER_FROM_PARAM, + report->sid, + BD_ADDR_TYPE_LE_RANDOM, advertiser_addr, + 0, + 1000, // 10s + 0); + } + } + break; + case HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHED_V2: + { + static const uint8_t subevents_to_sync[] = {0, 1}; + const le_meta_event_periodic_adv_sync_established_v2_t *established = + decode_hci_le_meta_event(packet, le_meta_event_periodic_adv_sync_established_v2_t); + + prd_create_sync = 0; + + if (established->status != 0) + { + platform_printf("failed to establish sync (%d), restart ........................\n", established->status); + platform_reset(); + } + + sync_handle = established->handle; + + platform_printf("ESTABLISHED: num_subevents = %d\n", + established->num_subevents); + gap_set_ext_scan_enable(0, 0, 0, 0); + if (established->num_subevents >= sizeof(subevents_to_sync)) + { + gap_set_periodic_sync_subevent(established->handle, + PERIODIC_ADV_BIT_INC_TX, + sizeof(subevents_to_sync), + subevents_to_sync); + } + } + break; + case HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_REPORT_V2: + { + const le_meta_event_periodic_adv_report_v2_t *report = + decode_hci_le_meta_event(packet, le_meta_event_periodic_adv_report_v2_t); + platform_printf("SUBEVT REPORT (#%d)\n" + " subevent = %d\n" + " data : ", + report->periodic_event_counter, + report->subevent); + printf_hexdump(report->data, report->data_length); + + scan_data[DATA_COUNTER_OFFSET] = ++data_counter; + if (0 == report->subevent) + { + gap_set_periodic_adv_rsp_data(sync_handle, + report->periodic_event_counter, + report->subevent, + 1, + 0, + sizeof(scan_data), + scan_data); + } + } + break; + case HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_LOST: + platform_printf("SYNC LOST, restart ........................\n"); + platform_reset(); + break; + case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2: + { + const le_meta_event_enh_create_conn_complete_v2_t *complete = + decode_hci_le_meta_event(packet, le_meta_event_enh_create_conn_complete_v2_t); + if (0 == complete->status) + { + platform_printf("CONNECTED\n"); + att_set_db(complete->handle, profile_data); + } + else + { + platform_printf("Initiating from PAwR failed\n"); + response_counting_down = 10; + } + } + + break; + default: + break; + } + + break; + + case HCI_EVENT_DISCONNECTION_COMPLETE: + platform_printf("DISCONNECTED\n"); + break; + + case ATT_EVENT_CAN_SEND_NOW: + // add your code + break; + + case BTSTACK_EVENT_USER_MSG: + p_user_msg = hci_event_packet_get_user_msg(packet); + user_msg_handler(p_user_msg->msg_id, p_user_msg->data, p_user_msg->len); + break; + + default: + break; + } +} + +static btstack_packet_callback_registration_t hci_event_callback_registration; + +uint32_t setup_profile(void *data, void *user_data) +{ + platform_printf("PAwR SCANNER started\n"); + // Note: security has not been enabled. + att_server_init(att_read_callback, att_write_callback); + hci_event_callback_registration.callback = &user_packet_handler; + hci_add_event_handler(&hci_event_callback_registration); + att_server_register_packet_handler(&user_packet_handler); + return 0; +} + diff --git a/examples/pawr/src/startup_ing91600.s b/examples/pawr/src/startup_ing91600.s new file mode 100644 index 000000000..3b4c6d677 --- /dev/null +++ b/examples/pawr/src/startup_ing91600.s @@ -0,0 +1,102 @@ +;/**************************************************************************//** +; * @file startup_ARMCM3.s +; * @brief CMSIS Core Device Startup File for +; * ARMCM3 Device Series +; * @version V1.08 +; * @date 03. February 2012 +; * +; * @note +; * Copyright (C) 2012 ARM Limited. All rights reserved. +; * +; * @par +; * ARM Limited (ARM) is supplying this software for use with Cortex-M +; * processor based microcontrollers. This file can be freely distributed +; * within development tools that are supporting such ARM based processors. +; * +; * @par +; * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED +; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF +; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. +; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR +; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. +; * +; ******************************************************************************/ +;/* +;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------ +;*/ + +Stack_Size EQU 0x00000004 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + EXPORT __initial_sp + + + EXPORT __heap_base + EXPORT __heap_limit + +Heap_Size EQU 0 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + PRESERVE8 + THUMB + +; Vector Table Mapped to Address 0 at Reset + + AREA RESET, DATA, READONLY + EXPORT __Vectors + +__Vectors DCD 0 ; Top of Stack + DCD Reset_Handler ; Reset Handler + +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + + AREA |.text|, CODE, READONLY + + +; Reset Handler + +Reset_Handler PROC + EXPORT Reset_Handler + IMPORT __scatterload + + ; this push is consumed by main + PUSH {R1, LR} + + ; save msp + MRS R1, MSP + MSR PSP, R1 + + LDR R0, =__scatterload + BX R0 + + ENDP + + ALIGN + +main PROC + EXPORT main + IMPORT app_main + + LDR R0, =app_main + BLX R0 + + ; restore msp + MRS R1, PSP + MSR MSP, R1 + + POP {R1, PC} + + ENDP + + ALIGN + + END diff --git a/examples/periodic_advertiser/periodic_advertiser.ingw b/examples/periodic_advertiser/periodic_advertiser.ingw index b41f0436a..b40771f7e 100644 --- a/examples/periodic_advertiser/periodic_advertiser.ingw +++ b/examples/periodic_advertiser/periodic_advertiser.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 141808, + "size": 141788, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 163840 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/periodic_scanner/periodic_scanner.ingw b/examples/periodic_scanner/periodic_scanner.ingw index de611aed1..209ac1c7e 100644 --- a/examples/periodic_scanner/periodic_scanner.ingw +++ b/examples/periodic_scanner/periodic_scanner.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 141808, + "size": 141788, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 163840 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/peripheral_ancs/peripheral_ancs.ingw b/examples/peripheral_ancs/peripheral_ancs.ingw index 09ef423f1..e629215a4 100644 --- a/examples/peripheral_ancs/peripheral_ancs.ingw +++ b/examples/peripheral_ancs/peripheral_ancs.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/peripheral_band/peripheral_band.ingw b/examples/peripheral_band/peripheral_band.ingw index 698039d07..e5e32fedd 100644 --- a/examples/peripheral_band/peripheral_band.ingw +++ b/examples/peripheral_band/peripheral_band.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_battery/peripheral_battery.ingw b/examples/peripheral_battery/peripheral_battery.ingw index f987aaa93..7a2f2a9b0 100644 --- a/examples/peripheral_battery/peripheral_battery.ingw +++ b/examples/peripheral_battery/peripheral_battery.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_console/peripheral_console.ingw b/examples/peripheral_console/peripheral_console.ingw index 7c972a995..c2a5cde03 100644 --- a/examples/peripheral_console/peripheral_console.ingw +++ b/examples/peripheral_console/peripheral_console.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135284, + "size": 135264, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_console_freertos/peripheral_console_freertos.ingw b/examples/peripheral_console_freertos/peripheral_console_freertos.ingw index 24835b9e3..a3cc7dfe2 100644 --- a/examples/peripheral_console_freertos/peripheral_console_freertos.ingw +++ b/examples/peripheral_console_freertos/peripheral_console_freertos.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 124984, + "size": 124964, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 147456 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/peripheral_console_realtime/peripheral_console_realtime.ingw b/examples/peripheral_console_realtime/peripheral_console_realtime.ingw index 037b1435f..fd67bd2aa 100644 --- a/examples/peripheral_console_realtime/peripheral_console_realtime.ingw +++ b/examples/peripheral_console_realtime/peripheral_console_realtime.ingw @@ -2,18 +2,18 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 144728, + "size": 144840, "base": 33562624 }, "ram": { - "size": 16996, + "size": 17116, "base": 536870912 }, "app": { "base": 33710080 }, "version": [ - 2,2,53] + 2,3,0] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", @@ -70,8 +70,8 @@ }, "keil": true, "cmsis": "", - "app_ram_size": 40344, - "app_ram_addr": 536887912, + "app_ram_size": 40224, + "app_ram_addr": 536888032, "k5_cc_ver": "6", "printf_enable": true, "ota_ver_patch": "0", diff --git a/examples/peripheral_console_realtime/peripheral_console_realtime.sct b/examples/peripheral_console_realtime/peripheral_console_realtime.sct index ab444859a..349954462 100644 --- a/examples/peripheral_console_realtime/peripheral_console_realtime.sct +++ b/examples/peripheral_console_realtime/peripheral_console_realtime.sct @@ -9,7 +9,7 @@ LR_IROM1 0x02026000 0x0005A000 { ; load region size_region .ANY (+RO) .ANY (+XO) } -RW_IRAM1 0x20004268 0x00009D98 { ; RW data +RW_IRAM1 0x200042E0 0x00009D20 { ; RW data *(.ram_code) *(Veneer$$Code) .ANY (+RW +ZI) diff --git a/examples/peripheral_console_realtime/peripheral_console_realtime.uvproj b/examples/peripheral_console_realtime/peripheral_console_realtime.uvproj index 7868dae3b..4821d7f38 100644 --- a/examples/peripheral_console_realtime/peripheral_console_realtime.uvproj +++ b/examples/peripheral_console_realtime/peripheral_console_realtime.uvproj @@ -319,8 +319,8 @@ 0 - 536887912 - 40344 + 536888032 + 40224 0 diff --git a/examples/peripheral_console_realtime/peripheral_console_realtime.uvprojx b/examples/peripheral_console_realtime/peripheral_console_realtime.uvprojx index 592f3f397..17a4c4c1d 100644 --- a/examples/peripheral_console_realtime/peripheral_console_realtime.uvprojx +++ b/examples/peripheral_console_realtime/peripheral_console_realtime.uvprojx @@ -298,8 +298,8 @@ 0 - 536887912 - 40344 + 536888032 + 40224 0 diff --git a/examples/peripheral_console_rt-thread/peripheral_console_rt-thread.ingw b/examples/peripheral_console_rt-thread/peripheral_console_rt-thread.ingw index 619346939..d2b19ff15 100644 --- a/examples/peripheral_console_rt-thread/peripheral_console_rt-thread.ingw +++ b/examples/peripheral_console_rt-thread/peripheral_console_rt-thread.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 124984, + "size": 124964, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 147456 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/peripheral_etag/peripheral_etag.ingw b/examples/peripheral_etag/peripheral_etag.ingw index 9aaa2a3fa..dbfdc203b 100644 --- a/examples/peripheral_etag/peripheral_etag.ingw +++ b/examples/peripheral_etag/peripheral_etag.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_ibeacon/peripheral_ibeacon.ingw b/examples/peripheral_ibeacon/peripheral_ibeacon.ingw index e73d2508e..3dabc4a40 100644 --- a/examples/peripheral_ibeacon/peripheral_ibeacon.ingw +++ b/examples/peripheral_ibeacon/peripheral_ibeacon.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_irc/peripheral_irc.ingw b/examples/peripheral_irc/peripheral_irc.ingw index ad88e9e9b..8fa3f6725 100644 --- a/examples/peripheral_irc/peripheral_irc.ingw +++ b/examples/peripheral_irc/peripheral_irc.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/peripheral_led/peripheral_led.ingw b/examples/peripheral_led/peripheral_led.ingw index bc93e1b7e..14f39131a 100644 --- a/examples/peripheral_led/peripheral_led.ingw +++ b/examples/peripheral_led/peripheral_led.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 146464, + "size": 146444, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 163840 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_mass_conn/peripheral_mass_conn.ingw b/examples/peripheral_mass_conn/peripheral_mass_conn.ingw index 187d9c6ee..04a3e716e 100644 --- a/examples/peripheral_mass_conn/peripheral_mass_conn.ingw +++ b/examples/peripheral_mass_conn/peripheral_mass_conn.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135844, + "size": 135824, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/peripheral_pedometer/peripheral_pedometer.ingw b/examples/peripheral_pedometer/peripheral_pedometer.ingw index 3f1cfc0ab..8640d7fdc 100644 --- a/examples/peripheral_pedometer/peripheral_pedometer.ingw +++ b/examples/peripheral_pedometer/peripheral_pedometer.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_piano/peripheral_piano.ingw b/examples/peripheral_piano/peripheral_piano.ingw index 61e81dc83..fa547db69 100644 --- a/examples/peripheral_piano/peripheral_piano.ingw +++ b/examples/peripheral_piano/peripheral_piano.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_throughput/peripheral_throughput.ingw b/examples/peripheral_throughput/peripheral_throughput.ingw index 7259d08c1..c4faaf746 100644 --- a/examples/peripheral_throughput/peripheral_throughput.ingw +++ b/examples/peripheral_throughput/peripheral_throughput.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/reset_handler/reset_handler.ingw b/examples/reset_handler/reset_handler.ingw index 5c71dc080..49bafb03d 100644 --- a/examples/reset_handler/reset_handler.ingw +++ b/examples/reset_handler/reset_handler.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/secondary_fota/secondary_fota.ingw b/examples/secondary_fota/secondary_fota.ingw index 0f3615f5f..f4cd54b54 100644 --- a/examples/secondary_fota/secondary_fota.ingw +++ b/examples/secondary_fota/secondary_fota.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/smart_meter/smart_meter.ingw b/examples/smart_meter/smart_meter.ingw index a715b8203..a269c2ea0 100644 --- a/examples/smart_meter/smart_meter.ingw +++ b/examples/smart_meter/smart_meter.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/thermo_ota/thermo_ota.ingw b/examples/thermo_ota/thermo_ota.ingw index 612561d01..70e8ca4e6 100644 --- a/examples/thermo_ota/thermo_ota.ingw +++ b/examples/thermo_ota/thermo_ota.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135764, + "size": 135744, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/uart_console/uart_console.ingw b/examples/uart_console/uart_console.ingw index 82a5432e4..d4986e49c 100644 --- a/examples/uart_console/uart_console.ingw +++ b/examples/uart_console/uart_console.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 147176, + "size": 147152, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 163840 }, "version": [ - 1,9,39] + 1,9,40] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/voice_remote_ctrl/voice_remote_ctrl.ingw b/examples/voice_remote_ctrl/voice_remote_ctrl.ingw index 776d4317a..ca719a7cf 100644 --- a/examples/voice_remote_ctrl/voice_remote_ctrl.ingw +++ b/examples/voice_remote_ctrl/voice_remote_ctrl.ingw @@ -1,18 +1,18 @@ { "bundle_meta": { "rom": { - "size": 155136, + "size": 155260, "base": 33562624 }, "ram": { - "size": 21572, + "size": 21580, "base": 536870912 }, "app": { "base": 33718272 }, "version": [ - 2,2,53] + 2,3,0] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", @@ -53,8 +53,8 @@ "keil": true, "cmsis": "", "gatt_handle_name": "HANDLE_VOICE_CONTROL", - "app_ram_size": 11192, - "app_ram_addr": 536892488, + "app_ram_size": 11184, + "app_ram_addr": 536892496, "uart_log": true, "ota_ver_patch": "0", "profile_data": "\/\/ Service Generic Access: 1800\r\n0x0A, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x28,\r\n0x00, 0x18, \r\n\/\/ Characteristic Device Name: 2A00\r\n0x0D, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x28,\r\n0x02, 0x03, 0x00, 0x00, 0x2A, \r\n0x20, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x2A,\r\n0x49, 0x4E, 0x47, 0x20, 0x56, 0x6F, 0x69, 0x63, \r\n0x65, 0x20, 0x52, 0x65, 0x6D, 0x6F, 0x74, 0x65, \r\n0x20, 0x43, 0x6F, 0x6E, 0x74, 0x72, 0x6F, 0x6C, \r\n\r\n\/\/ Service INGChips Voice Output Service: {00000001-494e-4743-4849-505355554944}\r\n0x18, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x28,\r\n0x44, 0x49, 0x55, 0x55, 0x53, 0x50, 0x49, 0x48, \r\n0x43, 0x47, 0x4E, 0x49, 0x01, 0x00, 0x00, 0x00, \r\n\/\/ Characteristic Voice Control: {bf83f3f1-399a-414d-9035-ce64ceb3ff67}\r\n0x1B, 0x00, 0x02, 0x00, 0x05, 0x00, 0x03, 0x28,\r\n0x06, 0x06, 0x00, 0x67, 0xFF, 0xB3, 0xCE, 0x64, \r\n0xCE, 0x35, 0x90, 0x4D, 0x41, 0x9A, 0x39, 0xF1, \r\n0xF3, 0x83, 0xBF, \r\n0x16, 0x00, 0x06, 0x03, 0x06, 0x00,\r\n0x67, 0xFF, 0xB3, 0xCE, 0x64, 0xCE, 0x35, 0x90, \r\n0x4D, 0x41, 0x9A, 0x39, 0xF1, 0xF3, 0x83, 0xBF, \r\n\/\/ Characteristic Voice Output: {bf83f3f2-399a-414d-9035-ce64ceb3ff67}\r\n0x1B, 0x00, 0x02, 0x00, 0x07, 0x00, 0x03, 0x28,\r\n0x10, 0x08, 0x00, 0x67, 0xFF, 0xB3, 0xCE, 0x64, \r\n0xCE, 0x35, 0x90, 0x4D, 0x41, 0x9A, 0x39, 0xF2, \r\n0xF3, 0x83, 0xBF, \r\n0x16, 0x00, 0x10, 0x02, 0x08, 0x00,\r\n0x67, 0xFF, 0xB3, 0xCE, 0x64, 0xCE, 0x35, 0x90, \r\n0x4D, 0x41, 0x9A, 0x39, 0xF2, 0xF3, 0x83, 0xBF, \r\n0x0A, 0x00, 0x0A, 0x01, 0x09, 0x00, 0x02, 0x29,\r\n0x00, 0x00, \r\n\r\n0x00,0x00\r\n\/\/ total size = 189\r\n\r\n\/\/ HANDLE_DEVICE_NAME=3\r\n\/\/ HANDLE_VOICE_CONTROL=6\r\n\/\/ HANDLE_VOICE_OUTPUT=8\r\n\r\n\/\/ HANDLE_DEVICE_NAME_OFFSET=31\r\n\/\/ HANDLE_VOICE_CONTROL_OFFSET=128\r\n\/\/ HANDLE_VOICE_OUTPUT_OFFSET=177\r\n", diff --git a/examples/voice_remote_ctrl/voice_remote_ctrl.uvproj b/examples/voice_remote_ctrl/voice_remote_ctrl.uvproj index 6318e9920..1e52bcc92 100644 --- a/examples/voice_remote_ctrl/voice_remote_ctrl.uvproj +++ b/examples/voice_remote_ctrl/voice_remote_ctrl.uvproj @@ -319,8 +319,8 @@ 0 - 536892488 - 11192 + 536892496 + 11184 0 diff --git a/examples/voice_remote_ctrl/voice_remote_ctrl.uvprojx b/examples/voice_remote_ctrl/voice_remote_ctrl.uvprojx index bdd48d967..aceb38fd8 100644 --- a/examples/voice_remote_ctrl/voice_remote_ctrl.uvprojx +++ b/examples/voice_remote_ctrl/voice_remote_ctrl.uvprojx @@ -298,8 +298,8 @@ 0 - 536892488 - 11192 + 536892496 + 11184 0 diff --git a/src/FWlib/peripheral_i2c.c b/src/FWlib/peripheral_i2c.c index 116c718dd..8e4005f96 100644 --- a/src/FWlib/peripheral_i2c.c +++ b/src/FWlib/peripheral_i2c.c @@ -217,9 +217,7 @@ void I2C_ConfigClkFrequency(I2C_TypeDef *I2C_BASE, I2C_ClockFrequenyOptions opti void I2C_ConfigSlave(I2C_TypeDef *I2C_BASE, I2C_AddressingMode addr_mode, uint8_t addr) { - uint8_t i; I2C_Config(I2C_BASE, I2C_ROLE_SLAVE, addr_mode, addr); - I2C_BASE->IntEn = (1 << I2C_INT_ADDR_HIT) | (1 << I2C_INT_CMPL); } diff --git a/src/StartUP/__ingsoc.h b/src/StartUP/__ingsoc.h index 039231be6..46c550c64 100644 --- a/src/StartUP/__ingsoc.h +++ b/src/StartUP/__ingsoc.h @@ -17,7 +17,7 @@ extern "C" { #define io_read(a) (*(volatile uint32_t*)(a)) // Bits Width change to Mask Bits -#define BW2M(a) ((1 << (a)) -1) +#define BW2M(a) ((1u << (a)) -1) #ifndef __NOP #define __NOP() __asm("nop") From b86609ae975e271fbba5d675cc954f296aa9cd87 Mon Sep 17 00:00:00 2001 From: yuhang-ingchips <102842796+yuhang-ingchips@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:49:06 +0800 Subject: [PATCH 03/13] update ssp.h update ssp.h --- src/FWlib/peripheral_ssp.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/FWlib/peripheral_ssp.h b/src/FWlib/peripheral_ssp.h index 5395b9881..e5948d5b4 100644 --- a/src/FWlib/peripheral_ssp.h +++ b/src/FWlib/peripheral_ssp.h @@ -454,14 +454,21 @@ In slave mode, SPIActive becomes 1 after the SPI CS signal is asserted and becom /* several options of spi clock */ +#define SPI_INTERFACETIMINGSCLKDIV_1 (0xff) +#define SPI_INTERFACETIMINGSCLKDIV_4 (1) +#define SPI_INTERFACETIMINGSCLKDIV_6 (2) +#define SPI_INTERFACETIMINGSCLKDIV_8 (3) +#define SPI_INTERFACETIMINGSCLKDIV_10 (4) +#define SPI_INTERFACETIMINGSCLKDIV_12 (5) /* default clk config for spi0 and spi1 for default, spi interface clock is 24M, use "spi interface clock / (2 * (eSclkDiv + 1))" for calculation for example, "eSclkDiv == 1" means 24M/(2*(1+1)) = 6M(spi clk speed)*/ -#define SPI_INTERFACETIMINGSCLKDIV_DEFAULT_6M (1) -#define SPI_INTERFACETIMINGSCLKDIV_DEFAULT_4M (2) -#define SPI_INTERFACETIMINGSCLKDIV_DEFAULT_3M (3) -#define SPI_INTERFACETIMINGSCLKDIV_DEFAULT_2M4 (4) -#define SPI_INTERFACETIMINGSCLKDIV_DEFAULT_2M (5) +#define SPI_INTERFACETIMINGSCLKDIV_DEFAULT_24M (SPI_INTERFACETIMINGSCLKDIV_1 ) +#define SPI_INTERFACETIMINGSCLKDIV_DEFAULT_6M (SPI_INTERFACETIMINGSCLKDIV_4 ) +#define SPI_INTERFACETIMINGSCLKDIV_DEFAULT_4M (SPI_INTERFACETIMINGSCLKDIV_6 ) +#define SPI_INTERFACETIMINGSCLKDIV_DEFAULT_3M (SPI_INTERFACETIMINGSCLKDIV_8 ) +#define SPI_INTERFACETIMINGSCLKDIV_DEFAULT_2M4 (SPI_INTERFACETIMINGSCLKDIV_10) +#define SPI_INTERFACETIMINGSCLKDIV_DEFAULT_2M (SPI_INTERFACETIMINGSCLKDIV_12) /* high speed SPI1 clk config 1. SPI1 use HCLK, use SYSCTRL_SelectHClk() and SYSCTRL_SelectSpiClk() to increase spi interface clock From d86127105683bffcd591e83c45167a0e9f02e0ef Mon Sep 17 00:00:00 2001 From: yuhang-ingchips <102842796+yuhang-ingchips@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:25:30 +0800 Subject: [PATCH 04/13] fix apSSP_SetTransferControlDummyCnt fix apSSP_SetTransferControlDummyCnt --- src/FWlib/peripheral_ssp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/FWlib/peripheral_ssp.c b/src/FWlib/peripheral_ssp.c index e8220f059..64d8b08c5 100644 --- a/src/FWlib/peripheral_ssp.c +++ b/src/FWlib/peripheral_ssp.c @@ -369,7 +369,7 @@ void apSSP_SetTransferControlRdTranCnt(SSP_TypeDef *SPI_BASE, uint32_t val) void apSSP_SetTransferControlDummyCnt(SSP_TypeDef *SPI_BASE, uint8_t cnt) { SPI_BASE->TransCtrl &= (~(BW2M(bwSPI_TRANSCTRL_DUMMYCNT) << bsSPI_TRANSCTRL_DUMMYCNT)); - SPI_BASE->TransCtrl |= (((cnt+1) & BW2M(bwSPI_TRANSCTRL_DUMMYCNT)) << bsSPI_TRANSCTRL_DUMMYCNT); + SPI_BASE->TransCtrl |= (((cnt-1) & BW2M(bwSPI_TRANSCTRL_DUMMYCNT)) << bsSPI_TRANSCTRL_DUMMYCNT); } /*====================================================================*/ From b5acce13f5888aaf1adbf61c1478573db9e569e5 Mon Sep 17 00:00:00 2001 From: zjli2019 Date: Wed, 15 Nov 2023 14:36:58 +0800 Subject: [PATCH 05/13] prepare 8.4.6: 1. 32k -> rt clk; 1. 918 use 50k RC; 1. connection abort. --- bundles/exp/ING9168xx/apis.json | 751 +++++++++--------- bundles/exp/ING9168xx/meta.json | 8 +- bundles/exp/ING9168xx/platform.bin | Bin 168988 -> 173892 bytes bundles/exp/ING9187xx/apis.json | 487 ++++++------ bundles/exp/ING9187xx/meta.json | 8 +- bundles/exp/ING9187xx/platform.bin | Bin 147152 -> 152028 bytes bundles/exp/ING9188xx/apis.json | 497 ++++++------ bundles/exp/ING9188xx/meta.json | 8 +- bundles/exp/ING9188xx/platform.bin | Bin 154060 -> 158940 bytes bundles/exp/inc/bluetooth.h | 1 + bundles/exp/inc/btstack_event.h | 37 + bundles/exp/inc/ll_api.h | 43 +- bundles/exp/inc/platform_api.h | 75 +- bundles/exp/inc/sm.h | 12 +- bundles/extension/ING9168xx/apis.json | 716 ++++++++--------- bundles/extension/ING9168xx/meta.json | 6 +- bundles/extension/ING9168xx/platform.bin | Bin 161868 -> 161340 bytes bundles/extension/ING9187xx/apis.json | 313 ++++---- bundles/extension/ING9187xx/meta.json | 4 +- bundles/extension/ING9187xx/platform.bin | Bin 139176 -> 139252 bytes bundles/extension/ING9188xx/apis.json | 313 ++++---- bundles/extension/ING9188xx/meta.json | 4 +- bundles/extension/ING9188xx/platform.bin | Bin 146444 -> 146528 bytes bundles/extension/inc/bluetooth.h | 1 + bundles/extension/inc/btstack_event.h | 37 + bundles/extension/inc/ll_api.h | 81 +- bundles/extension/inc/platform_api.h | 75 +- bundles/mass_conn/ING9168xx/apis.json | 651 +++++++-------- bundles/mass_conn/ING9168xx/meta.json | 4 +- bundles/mass_conn/ING9168xx/platform.bin | Bin 155264 -> 155352 bytes bundles/mass_conn/ING9187xx/apis.json | 313 ++++---- bundles/mass_conn/ING9187xx/meta.json | 4 +- bundles/mass_conn/ING9187xx/platform.bin | Bin 135824 -> 135900 bytes bundles/mass_conn/ING9188xx/apis.json | 313 ++++---- bundles/mass_conn/ING9188xx/meta.json | 4 +- bundles/mass_conn/ING9188xx/platform.bin | Bin 141864 -> 141948 bytes bundles/mass_conn/inc/bluetooth.h | 1 + bundles/mass_conn/inc/btstack_event.h | 37 + bundles/mass_conn/inc/ll_api.h | 45 +- bundles/mass_conn/inc/platform_api.h | 75 +- bundles/mini/ING9168xx/apis.json | 329 ++++---- bundles/mini/ING9168xx/meta.json | 4 +- bundles/mini/ING9168xx/platform.bin | Bin 155732 -> 155824 bytes bundles/mini/ING9187xx/apis.json | 591 +++++++------- bundles/mini/ING9187xx/meta.json | 4 +- bundles/mini/ING9187xx/platform.bin | Bin 135264 -> 135356 bytes bundles/mini/ING9188xx/apis.json | 619 ++++++++------- bundles/mini/ING9188xx/meta.json | 4 +- bundles/mini/ING9188xx/platform.bin | Bin 141296 -> 141388 bytes bundles/mini/inc/bluetooth.h | 1 + bundles/mini/inc/btstack_event.h | 37 + bundles/mini/inc/ll_api.h | 45 +- bundles/mini/inc/platform_api.h | 75 +- bundles/noos_exp/ING9168xx/apis.json | 593 +++++++------- bundles/noos_exp/ING9168xx/meta.json | 8 +- bundles/noos_exp/ING9168xx/platform.bin | Bin 158112 -> 163016 bytes bundles/noos_exp/ING9187xx/apis.json | 331 ++++---- bundles/noos_exp/ING9187xx/meta.json | 8 +- bundles/noos_exp/ING9187xx/platform.bin | Bin 136368 -> 141236 bytes bundles/noos_exp/ING9188xx/apis.json | 341 ++++---- bundles/noos_exp/ING9188xx/meta.json | 8 +- bundles/noos_exp/ING9188xx/platform.bin | Bin 143276 -> 148148 bytes bundles/noos_exp/inc/bluetooth.h | 1 + bundles/noos_exp/inc/btstack_event.h | 37 + bundles/noos_exp/inc/ll_api.h | 43 +- bundles/noos_exp/inc/platform_api.h | 75 +- bundles/noos_exp/inc/sm.h | 12 +- bundles/noos_extension/ING9168xx/apis.json | 558 ++++++------- bundles/noos_extension/ING9168xx/meta.json | 6 +- bundles/noos_extension/ING9168xx/platform.bin | Bin 151000 -> 150464 bytes bundles/noos_extension/ING9187xx/apis.json | 157 ++-- bundles/noos_extension/ING9187xx/meta.json | 4 +- bundles/noos_extension/ING9187xx/platform.bin | Bin 128396 -> 128472 bytes bundles/noos_extension/ING9188xx/apis.json | 157 ++-- bundles/noos_extension/ING9188xx/meta.json | 4 +- bundles/noos_extension/ING9188xx/platform.bin | Bin 135664 -> 135748 bytes bundles/noos_extension/inc/bluetooth.h | 1 + bundles/noos_extension/inc/btstack_event.h | 37 + bundles/noos_extension/inc/ll_api.h | 81 +- bundles/noos_extension/inc/platform_api.h | 75 +- bundles/noos_mass_conn/ING9168xx/apis.json | 493 ++++++------ bundles/noos_mass_conn/ING9168xx/meta.json | 4 +- bundles/noos_mass_conn/ING9168xx/platform.bin | Bin 144384 -> 144472 bytes bundles/noos_mass_conn/ING9187xx/apis.json | 157 ++-- bundles/noos_mass_conn/ING9187xx/meta.json | 4 +- bundles/noos_mass_conn/ING9187xx/platform.bin | Bin 125040 -> 125120 bytes bundles/noos_mass_conn/ING9188xx/apis.json | 157 ++-- bundles/noos_mass_conn/ING9188xx/meta.json | 4 +- bundles/noos_mass_conn/ING9188xx/platform.bin | Bin 131084 -> 131168 bytes bundles/noos_mass_conn/inc/bluetooth.h | 1 + bundles/noos_mass_conn/inc/btstack_event.h | 37 + bundles/noos_mass_conn/inc/ll_api.h | 45 +- bundles/noos_mass_conn/inc/platform_api.h | 75 +- bundles/noos_mini/ING9168xx/apis.json | 175 ++-- bundles/noos_mini/ING9168xx/meta.json | 4 +- bundles/noos_mini/ING9168xx/platform.bin | Bin 144840 -> 144932 bytes bundles/noos_mini/ING9187xx/apis.json | 433 +++++----- bundles/noos_mini/ING9187xx/meta.json | 4 +- bundles/noos_mini/ING9187xx/platform.bin | Bin 124484 -> 124576 bytes bundles/noos_mini/ING9188xx/apis.json | 461 +++++------ bundles/noos_mini/ING9188xx/meta.json | 4 +- bundles/noos_mini/ING9188xx/platform.bin | Bin 130516 -> 130608 bytes bundles/noos_mini/inc/bluetooth.h | 1 + bundles/noos_mini/inc/btstack_event.h | 37 + bundles/noos_mini/inc/ll_api.h | 45 +- bundles/noos_mini/inc/platform_api.h | 75 +- bundles/noos_typical/ING9168xx/apis.json | 493 ++++++------ bundles/noos_typical/ING9168xx/meta.json | 6 +- bundles/noos_typical/ING9168xx/platform.bin | Bin 144384 -> 144468 bytes bundles/noos_typical/ING9187xx/apis.json | 157 ++-- bundles/noos_typical/ING9187xx/meta.json | 4 +- bundles/noos_typical/ING9187xx/platform.bin | Bin 124964 -> 125044 bytes bundles/noos_typical/ING9188xx/apis.json | 157 ++-- bundles/noos_typical/ING9188xx/meta.json | 6 +- bundles/noos_typical/ING9188xx/platform.bin | Bin 131012 -> 131092 bytes bundles/noos_typical/inc/bluetooth.h | 1 + bundles/noos_typical/inc/btstack_event.h | 37 + bundles/noos_typical/inc/ll_api.h | 45 +- bundles/noos_typical/inc/platform_api.h | 75 +- bundles/typical/ING9168xx/apis.json | 651 +++++++-------- bundles/typical/ING9168xx/meta.json | 6 +- bundles/typical/ING9168xx/platform.bin | Bin 155260 -> 155348 bytes bundles/typical/ING9187xx/apis.json | 313 ++++---- bundles/typical/ING9187xx/meta.json | 4 +- bundles/typical/ING9187xx/platform.bin | Bin 135744 -> 135828 bytes bundles/typical/ING9188xx/apis.json | 313 ++++---- bundles/typical/ING9188xx/meta.json | 4 +- bundles/typical/ING9188xx/platform.bin | Bin 141788 -> 141872 bytes bundles/typical/inc/bluetooth.h | 1 + bundles/typical/inc/btstack_event.h | 37 + bundles/typical/inc/ll_api.h | 45 +- bundles/typical/inc/platform_api.h | 75 +- example_host/rpc_client/inc/brpc_calls.inc | 6 +- .../rpc_client/inc/brpc_fun_names.inc | 6 +- examples-gcc/central_fota/central_fota.ingw | 4 +- examples-gcc/get_started/get_started.ingw | 4 +- .../peripheral_console_liteos.ingw | 4 +- .../peripheral_ibeacon.ingw | 4 +- .../nimmodules/bundle/platform_api.nim | 20 +- .../smart_home_hub/smart_home_hub.ingw | 4 +- .../peripheral_ibeacon/generic_cortex.icf | 6 +- .../peripheral_ibeacon.ingw | 4 +- .../peripheral_ibeacon.ingw | 4 +- .../peripheral_ibeacon.ingw | 4 +- examples/anti_lost_mas/anti_lost_mas.ingw | 4 +- examples/anti_lost_sla/anti_lost_sla.ingw | 4 +- examples/ble_rpc/ble_rpc.ingw | 4 +- examples/ble_rpc/data/brpc_handlers.inc | 6 +- examples/ble_rpc/data/brpc_handlers_weak.inc | 6 +- examples/bqb_rf/bqb_rf.ingw | 10 +- examples/bqb_rf/bqb_rf.uvproj | 4 +- examples/bqb_rf/bqb_rf.uvprojx | 4 +- examples/central_cte/central_cte.ingw | 4 +- examples/central_fota/central_fota.ingw | 4 +- .../central_mass_conn/central_mass_conn.ingw | 4 +- .../central_throughput.ingw | 4 +- examples/coremark/coremark.ingw | 4 +- examples/coremark/data/setup_soc.cgen | 4 +- examples/data_logger/data_logger.ingw | 4 +- examples/direct_conn/data/setup_soc.cgen | 4 +- examples/direct_conn/direct_conn.ingw | 16 +- examples/direct_conn/direct_conn.uvproj | 8 +- examples/direct_conn/direct_conn.uvprojx | 8 +- examples/direct_conn/flash_download.ini | 2 +- examples/direct_conn/src/profile.c | 13 +- .../ext_ackable_packet.ingw | 4 +- examples/ext_raw_packet/ext_raw_packet.ingw | 4 +- .../ext_raw_packet_noos.ingw | 4 +- examples/gatt_relay/gatt_relay.ingw | 4 +- examples/get_started/get_started.ingw | 4 +- examples/hid_keyboard/hid_keyboard.ingw | 4 +- examples/hid_mouse/hid_mouse.ingw | 4 +- examples/ibeacon_scanner/ibeacon_scanner.ingw | 4 +- examples/io_over_ble_mas/io_over_ble_mas.ingw | 4 +- examples/io_over_ble_sla/io_over_ble_sla.ingw | 4 +- examples/l2cap_psm/data/setup_soc.cgen | 4 +- examples/l2cap_psm/l2cap_psm.ingw | 4 +- examples/littleVGL/littleVGL.ingw | 4 +- examples/llsync_light/llsync_light.ingw | 4 +- examples/mesh-light/flash_download.ini | 2 +- examples/mesh-light/mesh-light.ingw | 16 +- examples/mesh-light/mesh-light.uvproj | 8 +- examples/mesh-light/mesh-light.uvprojx | 8 +- examples/mesh-light/src/main.c | 14 +- examples/mesh-light/src/mesh_profile.c | 58 +- examples/pawr/data/setup_soc.cgen | 4 +- examples/pawr/flash_download.ini | 2 +- examples/pawr/pawr.ingw | 16 +- examples/pawr/pawr.uvproj | 8 +- examples/pawr/pawr.uvprojx | 8 +- .../periodic_advertiser.ingw | 4 +- .../periodic_scanner/periodic_scanner.ingw | 4 +- examples/peripheral_ancs/peripheral_ancs.ingw | 4 +- examples/peripheral_band/peripheral_band.ingw | 4 +- .../peripheral_battery.ingw | 4 +- examples/peripheral_battery/src/profile.c | 20 +- .../peripheral_console.ingw | 4 +- examples/peripheral_console/src/main_shared.c | 10 +- examples/peripheral_console/src/profile.c | 4 +- .../peripheral_console_freertos.ingw | 4 +- .../peripheral_console_realtime.ingw | 4 +- .../peripheral_console_realtime/src/main.c | 4 +- .../peripheral_console_rt-thread.ingw | 4 +- examples/peripheral_etag/peripheral_etag.ingw | 4 +- .../peripheral_ibeacon.ingw | 4 +- examples/peripheral_irc/peripheral_irc.ingw | 4 +- examples/peripheral_led/peripheral_led.ingw | 4 +- .../peripheral_mass_conn.ingw | 4 +- .../peripheral_pedometer.ingw | 4 +- .../peripheral_piano/peripheral_piano.ingw | 4 +- .../peripheral_throughput.ingw | 4 +- examples/reset_handler/reset_handler.ingw | 4 +- examples/secondary_fota/secondary_fota.ingw | 4 +- examples/smart_meter/smart_meter.ingw | 4 +- examples/thermo_ota/thermo_ota.ingw | 4 +- examples/uart_console/README.md | 1 + examples/uart_console/doc/index.md | 11 + examples/uart_console/flash_download.ini | 2 +- examples/uart_console/src/profile.c | 81 +- examples/uart_console/src/uart_console.c | 13 +- examples/uart_console/uart_console.ingw | 16 +- examples/uart_console/uart_console.uvproj | 8 +- examples/uart_console/uart_console.uvprojx | 8 +- .../voice_remote_ctrl/voice_remote_ctrl.ingw | 10 +- .../voice_remote_ctrl.uvproj | 4 +- .../voice_remote_ctrl.uvprojx | 4 +- src/StartUP/ing918/ingsoc.h | 2 +- src/Tools/str_util.c | 20 +- src/Tools/uart_driver.c | 2 - 229 files changed, 7767 insertions(+), 6744 deletions(-) diff --git a/bundles/exp/ING9168xx/apis.json b/bundles/exp/ING9168xx/apis.json index f7fdee09b..5c7d3152e 100644 --- a/bundles/exp/ING9168xx/apis.json +++ b/bundles/exp/ING9168xx/apis.json @@ -17,378 +17,383 @@ "att_set_db": "0x02004f75", "att_set_read_callback": "0x02004f89", "att_set_write_callback": "0x02004f95", - "bd_addr_cmp": "0x02005169", - "bd_addr_copy": "0x0200516f", - "bd_addr_to_str": "0x02005179", - "big_endian_read_16": "0x020051b1", - "big_endian_read_32": "0x020051b9", - "big_endian_store_16": "0x020051cd", - "big_endian_store_32": "0x020051d9", - "btstack_config": "0x02005339", - "btstack_memory_pool_create": "0x02005477", - "btstack_memory_pool_free": "0x020054a1", - "btstack_memory_pool_get": "0x02005501", - "btstack_push_user_msg": "0x02005569", - "btstack_push_user_runnable": "0x02005575", - "btstack_reset": "0x02005581", - "char_for_nibble": "0x020058b7", - "eTaskConfirmSleepModeStatus": "0x02005c69", - "gap_add_dev_to_periodic_list": "0x020062d9", - "gap_add_whitelist": "0x020062e9", - "gap_aes_encrypt": "0x020062f5", - "gap_clear_white_lists": "0x0200632d", - "gap_clr_adv_set": "0x02006339", - "gap_clr_periodic_adv_list": "0x02006345", - "gap_create_connection_cancel": "0x02006351", - "gap_default_periodic_adv_sync_transfer_param": "0x0200635d", - "gap_disconnect": "0x02006375", - "gap_disconnect_all": "0x020063a1", - "gap_ext_create_connection": "0x020063e1", - "gap_ext_create_connection_v2": "0x0200648d", - "gap_get_connection_parameter_range": "0x0200658d", - "gap_le_read_channel_map": "0x020065c9", - "gap_periodic_adv_create_sync": "0x02006635", - "gap_periodic_adv_create_sync_cancel": "0x02006659", - "gap_periodic_adv_set_info_transfer": "0x02006665", - "gap_periodic_adv_sync_transfer": "0x02006675", - "gap_periodic_adv_sync_transfer_param": "0x02006685", - "gap_periodic_adv_term_sync": "0x020066a1", - "gap_read_antenna_info": "0x02006729", - "gap_read_local_tx_power_level": "0x02006741", - "gap_read_periodic_adv_list_size": "0x02006751", - "gap_read_phy": "0x0200675d", - "gap_read_remote_tx_power_level": "0x02006769", - "gap_read_remote_used_features": "0x02006779", - "gap_read_remote_version": "0x02006785", - "gap_read_rssi": "0x02006791", - "gap_remove_whitelist": "0x0200679d", - "gap_rmv_adv_set": "0x02006819", - "gap_rmv_dev_from_periodic_list": "0x02006825", - "gap_rx_test_v2": "0x02006835", - "gap_rx_test_v3": "0x02006845", - "gap_set_adv_set_random_addr": "0x02006891", - "gap_set_callback_for_next_hci": "0x020068cd", - "gap_set_connection_cte_request_enable": "0x020068ed", - "gap_set_connection_cte_response_enable": "0x02006909", - "gap_set_connection_cte_rx_param": "0x02006919", - "gap_set_connection_cte_tx_param": "0x0200696d", - "gap_set_connection_parameter_range": "0x020069b9", - "gap_set_connectionless_cte_tx_enable": "0x020069d1", - "gap_set_connectionless_cte_tx_param": "0x020069e1", - "gap_set_connectionless_iq_sampling_enable": "0x02006a3d", - "gap_set_data_length": "0x02006a99", - "gap_set_def_phy": "0x02006ab1", - "gap_set_default_subrate": "0x02006ac1", - "gap_set_ext_adv_data": "0x02006add", - "gap_set_ext_adv_enable": "0x02006af5", - "gap_set_ext_adv_para": "0x02006b65", - "gap_set_ext_scan_enable": "0x02006c35", - "gap_set_ext_scan_para": "0x02006c4d", - "gap_set_ext_scan_response_data": "0x02006ced", - "gap_set_host_channel_classification": "0x02006d05", - "gap_set_path_loss_reporting_enable": "0x02006d15", - "gap_set_path_loss_reporting_param": "0x02006d25", - "gap_set_periodic_adv_data": "0x02006d41", - "gap_set_periodic_adv_enable": "0x02006db1", - "gap_set_periodic_adv_para": "0x02006dc1", - "gap_set_periodic_adv_para_v2": "0x02006dd9", - "gap_set_periodic_adv_rsp_data": "0x02006dfd", - "gap_set_periodic_adv_rx_enable": "0x02006e21", - "gap_set_periodic_adv_subevent_data": "0x02006e31", - "gap_set_periodic_sync_subevent": "0x02006ec9", - "gap_set_phy": "0x02006ee1", - "gap_set_random_device_address": "0x02006efd", - "gap_set_tx_power_reporting_enable": "0x02006f1d", - "gap_start_ccm": "0x02006f3d", - "gap_subrate_request": "0x02006f85", - "gap_test_end": "0x02006fa1", - "gap_tx_test_v2": "0x02006fad", - "gap_tx_test_v4": "0x02006fc5", - "gap_update_connection_parameters": "0x02006fe9", - "gap_vendor_tx_continuous_wave": "0x0200702d", - "gatt_client_cancel_write": "0x02007555", - "gatt_client_discover_characteristic_descriptors": "0x0200757b", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020075bb", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200760b", - "gatt_client_discover_characteristics_for_service": "0x0200765b", - "gatt_client_discover_primary_services": "0x02007691", - "gatt_client_discover_primary_services_by_uuid128": "0x020076c3", - "gatt_client_discover_primary_services_by_uuid16": "0x02007707", - "gatt_client_execute_write": "0x02007745", - "gatt_client_find_included_services_for_service": "0x0200776b", - "gatt_client_get_mtu": "0x02007799", - "gatt_client_is_ready": "0x0200785d", - "gatt_client_listen_for_characteristic_value_updates": "0x02007873", - "gatt_client_prepare_write": "0x02007895", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020078d1", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020078fb", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007901", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0200792f", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02007935", - "gatt_client_read_multiple_characteristic_values": "0x02007963", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007993", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x020079c1", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x02007a0d", - "gatt_client_register_handler": "0x02007a59", - "gatt_client_reliable_write_long_value_of_characteristic": "0x02007a65", - "gatt_client_signed_write_without_response": "0x02007e99", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007f5d", - "gatt_client_write_client_characteristic_configuration": "0x02007f97", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007fe9", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007ff9", - "gatt_client_write_long_value_of_characteristic": "0x02008035", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x02008045", - "gatt_client_write_value_of_characteristic": "0x02008081", - "gatt_client_write_value_of_characteristic_without_response": "0x020080b7", - "hci_add_event_handler": "0x0200975d", - "hci_power_control": "0x02009f05", - "hci_register_acl_packet_handler": "0x0200a0b9", - "kv_commit": "0x0200a7f1", - "kv_get": "0x0200a84d", - "kv_init": "0x0200a859", - "kv_init_backend": "0x0200a8d9", - "kv_put": "0x0200a8ed", - "kv_remove": "0x0200a8f9", - "kv_remove_all": "0x0200a92d", - "kv_value_modified": "0x0200a95d", - "kv_value_modified_of_key": "0x0200a979", - "kv_visit": "0x0200a985", - "l2cap_add_event_handler": "0x0200aa15", - "l2cap_can_send_packet_now": "0x0200aa25", - "l2cap_create_le_credit_based_connection_request": "0x0200abe9", - "l2cap_credit_based_send": "0x0200ad31", - "l2cap_credit_based_send_continue": "0x0200ad5d", - "l2cap_disconnect": "0x0200add9", - "l2cap_get_le_credit_based_connection_credits": "0x0200afc5", - "l2cap_get_peer_mtu_for_local_cid": "0x0200afe1", - "l2cap_init": "0x0200b421", - "l2cap_le_send_flow_control_credit": "0x0200b517", - "l2cap_max_le_mtu": "0x0200b825", - "l2cap_register_packet_handler": "0x0200b94d", - "l2cap_register_service": "0x0200b959", - "l2cap_request_can_send_now_event": "0x0200ba69", - "l2cap_request_connection_parameter_update": "0x0200ba83", - "l2cap_send_echo_request": "0x0200bf65", - "l2cap_unregister_service": "0x0200c045", - "le_device_db_add": "0x0200c09d", - "le_device_db_find": "0x0200c175", - "le_device_db_from_key": "0x0200c1a1", - "le_device_db_iter_cur": "0x0200c1a9", - "le_device_db_iter_cur_key": "0x0200c1ad", - "le_device_db_iter_init": "0x0200c1b1", - "le_device_db_iter_next": "0x0200c1b9", - "le_device_db_remove_key": "0x0200c1df", - "ll_ackable_packet_alloc": "0x0200c20b", - "ll_ackable_packet_get_status": "0x0200c347", - "ll_ackable_packet_run": "0x0200c3b5", - "ll_ackable_packet_set_tx_data": "0x0200c46d", - "ll_adjust_conn_peer_tx_power": "0x0200c489", - "ll_aes_encrypt": "0x0200c4b5", - "ll_allow_nonstandard_adv_type": "0x0200c529", - "ll_attach_cte_to_adv_set": "0x0200c541", - "ll_channel_monitor_alloc": "0x0200c6d9", - "ll_channel_monitor_check_each_pdu": "0x0200c75b", - "ll_channel_monitor_run": "0x0200c7bd", - "ll_config": "0x0200c88d", - "ll_create_conn": "0x0200c8a9", - "ll_dhkey_generated": "0x0200cae5", - "ll_free": "0x0200cb19", - "ll_get_conn_events_info": "0x0200cb25", - "ll_get_conn_info": "0x0200cc0d", - "ll_get_heap_free_size": "0x0200cc5d", - "ll_hint_on_ce_len": "0x0200cc71", - "ll_install_ecc_engine": "0x0200cca9", - "ll_legacy_adv_set_interval": "0x0200ccb5", - "ll_lock_frequency": "0x0200ccc5", - "ll_malloc": "0x0200cd29", - "ll_override_whitening_init_value": "0x0200cd31", - "ll_p256_key_pair_generated": "0x0200cd49", - "ll_raw_packet_alloc": "0x0200ce8d", - "ll_raw_packet_free": "0x0200cf61", - "ll_raw_packet_get_bare_rx_data": "0x0200cf99", - "ll_raw_packet_get_iq_samples": "0x0200d059", - "ll_raw_packet_get_rx_data": "0x0200d0f3", - "ll_raw_packet_recv": "0x0200d1a5", - "ll_raw_packet_send": "0x0200d279", - "ll_raw_packet_set_bare_data": "0x0200d395", - "ll_raw_packet_set_bare_mode": "0x0200d3d3", - "ll_raw_packet_set_fake_cte_info": "0x0200d4d7", - "ll_raw_packet_set_param": "0x0200d4f9", - "ll_raw_packet_set_rx_cte": "0x0200d55b", - "ll_raw_packet_set_tx_cte": "0x0200d5f1", - "ll_raw_packet_set_tx_data": "0x0200d631", - "ll_register_hci_acl_previewer": "0x0200d699", - "ll_scan_set_fixed_channel": "0x0200d6fd", - "ll_scanner_enable_iq_sampling": "0x0200d709", - "ll_scanner_enable_iq_sampling_on_legacy": "0x0200d7b1", - "ll_set_adv_access_address": "0x0200daa1", - "ll_set_adv_coded_scheme": "0x0200daad", - "ll_set_conn_acl_report_latency": "0x0200dae5", - "ll_set_conn_coded_scheme": "0x0200db15", - "ll_set_conn_interval_unit": "0x0200db41", - "ll_set_conn_latency": "0x0200db4d", - "ll_set_conn_tx_power": "0x0200db7d", - "ll_set_cte_bit": "0x0200dbad", - "ll_set_def_antenna": "0x0200dbd5", - "ll_set_initiating_coded_scheme": "0x0200dbf5", - "ll_set_max_conn_number": "0x0200dc01", - "ll_set_tx_power_range": "0x0200dca9", - "ll_unlock_frequency": "0x0200dcd1", - "nibble_for_char": "0x020222a9", - "platform_32k_rc_auto_tune": "0x02022355", - "platform_32k_rc_tune": "0x020223a1", - "platform_calibrate_32k": "0x020223bd", + "bd_addr_cmp": "0x02005165", + "bd_addr_copy": "0x0200516b", + "bd_addr_to_str": "0x02005175", + "big_endian_read_16": "0x020051ad", + "big_endian_read_32": "0x020051b5", + "big_endian_store_16": "0x020051c9", + "big_endian_store_32": "0x020051d5", + "btstack_config": "0x02005335", + "btstack_memory_pool_create": "0x02005475", + "btstack_memory_pool_free": "0x0200549d", + "btstack_memory_pool_get": "0x020054fd", + "btstack_push_user_msg": "0x02005565", + "btstack_push_user_runnable": "0x02005571", + "btstack_reset": "0x0200557d", + "char_for_nibble": "0x020058b3", + "eTaskConfirmSleepModeStatus": "0x02005c65", + "gap_add_dev_to_periodic_list": "0x020062d5", + "gap_add_whitelist": "0x020062e5", + "gap_aes_encrypt": "0x020062f1", + "gap_clear_white_lists": "0x02006329", + "gap_clr_adv_set": "0x02006335", + "gap_clr_periodic_adv_list": "0x02006341", + "gap_create_connection_cancel": "0x0200634d", + "gap_default_periodic_adv_sync_transfer_param": "0x02006359", + "gap_disconnect": "0x02006371", + "gap_disconnect_all": "0x0200639d", + "gap_ext_create_connection": "0x020063dd", + "gap_ext_create_connection_v2": "0x02006489", + "gap_get_connection_parameter_range": "0x02006589", + "gap_le_read_channel_map": "0x020065c5", + "gap_periodic_adv_create_sync": "0x02006631", + "gap_periodic_adv_create_sync_cancel": "0x02006655", + "gap_periodic_adv_set_info_transfer": "0x02006661", + "gap_periodic_adv_sync_transfer": "0x02006671", + "gap_periodic_adv_sync_transfer_param": "0x02006681", + "gap_periodic_adv_term_sync": "0x0200669d", + "gap_read_antenna_info": "0x02006725", + "gap_read_local_tx_power_level": "0x0200673d", + "gap_read_periodic_adv_list_size": "0x0200674d", + "gap_read_phy": "0x02006759", + "gap_read_remote_tx_power_level": "0x02006765", + "gap_read_remote_used_features": "0x02006775", + "gap_read_remote_version": "0x02006781", + "gap_read_rssi": "0x0200678d", + "gap_remove_whitelist": "0x02006799", + "gap_rmv_adv_set": "0x02006815", + "gap_rmv_dev_from_periodic_list": "0x02006821", + "gap_rx_test_v2": "0x02006831", + "gap_rx_test_v3": "0x02006841", + "gap_set_adv_set_random_addr": "0x0200688d", + "gap_set_callback_for_next_hci": "0x020068c9", + "gap_set_connection_cte_request_enable": "0x020068e9", + "gap_set_connection_cte_response_enable": "0x02006905", + "gap_set_connection_cte_rx_param": "0x02006915", + "gap_set_connection_cte_tx_param": "0x02006969", + "gap_set_connection_parameter_range": "0x020069b5", + "gap_set_connectionless_cte_tx_enable": "0x020069cd", + "gap_set_connectionless_cte_tx_param": "0x020069dd", + "gap_set_connectionless_iq_sampling_enable": "0x02006a39", + "gap_set_data_length": "0x02006a95", + "gap_set_def_phy": "0x02006aad", + "gap_set_default_subrate": "0x02006abd", + "gap_set_ext_adv_data": "0x02006ad9", + "gap_set_ext_adv_enable": "0x02006af1", + "gap_set_ext_adv_para": "0x02006b61", + "gap_set_ext_scan_enable": "0x02006c31", + "gap_set_ext_scan_para": "0x02006c49", + "gap_set_ext_scan_response_data": "0x02006ce9", + "gap_set_host_channel_classification": "0x02006d01", + "gap_set_path_loss_reporting_enable": "0x02006d11", + "gap_set_path_loss_reporting_param": "0x02006d21", + "gap_set_periodic_adv_data": "0x02006d3d", + "gap_set_periodic_adv_enable": "0x02006dad", + "gap_set_periodic_adv_para": "0x02006dbd", + "gap_set_periodic_adv_para_v2": "0x02006dd5", + "gap_set_periodic_adv_rsp_data": "0x02006df9", + "gap_set_periodic_adv_rx_enable": "0x02006e1d", + "gap_set_periodic_adv_subevent_data": "0x02006e2d", + "gap_set_periodic_sync_subevent": "0x02006ec5", + "gap_set_phy": "0x02006edd", + "gap_set_random_device_address": "0x02006ef9", + "gap_set_tx_power_reporting_enable": "0x02006f19", + "gap_start_ccm": "0x02006f39", + "gap_subrate_request": "0x02006f81", + "gap_test_end": "0x02006f9d", + "gap_tx_test_v2": "0x02006fa9", + "gap_tx_test_v4": "0x02006fc1", + "gap_update_connection_parameters": "0x02006fe5", + "gap_vendor_tx_continuous_wave": "0x02007029", + "gatt_client_cancel_write": "0x02007551", + "gatt_client_discover_characteristic_descriptors": "0x02007577", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020075b7", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x02007607", + "gatt_client_discover_characteristics_for_service": "0x02007657", + "gatt_client_discover_primary_services": "0x0200768d", + "gatt_client_discover_primary_services_by_uuid128": "0x020076bf", + "gatt_client_discover_primary_services_by_uuid16": "0x02007703", + "gatt_client_execute_write": "0x02007741", + "gatt_client_find_included_services_for_service": "0x02007767", + "gatt_client_get_mtu": "0x02007795", + "gatt_client_is_ready": "0x02007859", + "gatt_client_listen_for_characteristic_value_updates": "0x0200786f", + "gatt_client_prepare_write": "0x02007891", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020078cd", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020078f7", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020078fd", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0200792b", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02007931", + "gatt_client_read_multiple_characteristic_values": "0x0200795f", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x0200798f", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x020079bd", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x02007a09", + "gatt_client_register_handler": "0x02007a55", + "gatt_client_reliable_write_long_value_of_characteristic": "0x02007a61", + "gatt_client_signed_write_without_response": "0x02007e95", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007f59", + "gatt_client_write_client_characteristic_configuration": "0x02007f93", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007fe5", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007ff5", + "gatt_client_write_long_value_of_characteristic": "0x02008031", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x02008041", + "gatt_client_write_value_of_characteristic": "0x0200807d", + "gatt_client_write_value_of_characteristic_without_response": "0x020080b3", + "hci_add_event_handler": "0x02009761", + "hci_power_control": "0x02009f09", + "hci_register_acl_packet_handler": "0x0200a0bd", + "kv_commit": "0x0200a7f5", + "kv_get": "0x0200a851", + "kv_init": "0x0200a85d", + "kv_init_backend": "0x0200a8dd", + "kv_put": "0x0200a8f1", + "kv_remove": "0x0200a8fd", + "kv_remove_all": "0x0200a931", + "kv_value_modified": "0x0200a961", + "kv_value_modified_of_key": "0x0200a97d", + "kv_visit": "0x0200a989", + "l2cap_add_event_handler": "0x0200aa19", + "l2cap_can_send_packet_now": "0x0200aa29", + "l2cap_create_le_credit_based_connection_request": "0x0200abed", + "l2cap_credit_based_send": "0x0200ad35", + "l2cap_credit_based_send_continue": "0x0200ad61", + "l2cap_disconnect": "0x0200addd", + "l2cap_get_le_credit_based_connection_credits": "0x0200afc9", + "l2cap_get_peer_mtu_for_local_cid": "0x0200afe5", + "l2cap_init": "0x0200b425", + "l2cap_le_send_flow_control_credit": "0x0200b51b", + "l2cap_max_le_mtu": "0x0200b829", + "l2cap_register_packet_handler": "0x0200b951", + "l2cap_register_service": "0x0200b95d", + "l2cap_request_can_send_now_event": "0x0200ba6d", + "l2cap_request_connection_parameter_update": "0x0200ba87", + "l2cap_send_echo_request": "0x0200bf69", + "l2cap_unregister_service": "0x0200c049", + "le_device_db_add": "0x0200c0a1", + "le_device_db_find": "0x0200c179", + "le_device_db_from_key": "0x0200c1a5", + "le_device_db_iter_cur": "0x0200c1ad", + "le_device_db_iter_cur_key": "0x0200c1b1", + "le_device_db_iter_init": "0x0200c1b5", + "le_device_db_iter_next": "0x0200c1bd", + "le_device_db_remove_key": "0x0200c1e3", + "ll_ackable_packet_alloc": "0x0200c20f", + "ll_ackable_packet_get_status": "0x0200c34b", + "ll_ackable_packet_run": "0x0200c3b9", + "ll_ackable_packet_set_tx_data": "0x0200c471", + "ll_adjust_conn_peer_tx_power": "0x0200c48d", + "ll_aes_encrypt": "0x0200c4b9", + "ll_allow_nonstandard_adv_type": "0x0200c52d", + "ll_attach_cte_to_adv_set": "0x0200c545", + "ll_channel_monitor_alloc": "0x0200c6dd", + "ll_channel_monitor_check_each_pdu": "0x0200c75f", + "ll_channel_monitor_run": "0x0200c7c1", + "ll_config": "0x0200c891", + "ll_conn_abort": "0x0200c8ad", + "ll_create_conn": "0x0200c8e1", + "ll_dhkey_generated": "0x0200cb5d", + "ll_free": "0x0200cb91", + "ll_get_conn_events_info": "0x0200cb9d", + "ll_get_conn_info": "0x0200cc85", + "ll_get_heap_free_size": "0x0200ccd5", + "ll_hint_on_ce_len": "0x0200cce9", + "ll_install_ecc_engine": "0x0200cd21", + "ll_legacy_adv_set_interval": "0x0200cd2d", + "ll_lock_frequency": "0x0200cd3d", + "ll_malloc": "0x0200cda1", + "ll_override_whitening_init_value": "0x0200cda9", + "ll_p256_key_pair_generated": "0x0200cdc1", + "ll_raw_packet_alloc": "0x0200cf05", + "ll_raw_packet_free": "0x0200cfd9", + "ll_raw_packet_get_bare_rx_data": "0x0200d011", + "ll_raw_packet_get_iq_samples": "0x0200d0d1", + "ll_raw_packet_get_rx_data": "0x0200d16b", + "ll_raw_packet_recv": "0x0200d21d", + "ll_raw_packet_send": "0x0200d2f1", + "ll_raw_packet_set_bare_data": "0x0200d40d", + "ll_raw_packet_set_bare_mode": "0x0200d44b", + "ll_raw_packet_set_fake_cte_info": "0x0200d54f", + "ll_raw_packet_set_param": "0x0200d571", + "ll_raw_packet_set_rx_cte": "0x0200d5d3", + "ll_raw_packet_set_tx_cte": "0x0200d669", + "ll_raw_packet_set_tx_data": "0x0200d6a9", + "ll_register_hci_acl_previewer": "0x0200d711", + "ll_scan_set_fixed_channel": "0x0200d775", + "ll_scanner_enable_iq_sampling": "0x0200d781", + "ll_scanner_enable_iq_sampling_on_legacy": "0x0200d829", + "ll_set_adv_access_address": "0x0200db19", + "ll_set_adv_coded_scheme": "0x0200db25", + "ll_set_conn_acl_report_latency": "0x0200db5d", + "ll_set_conn_coded_scheme": "0x0200db8d", + "ll_set_conn_interval_unit": "0x0200dbb9", + "ll_set_conn_latency": "0x0200dbc5", + "ll_set_conn_tx_power": "0x0200dbf5", + "ll_set_cte_bit": "0x0200dc25", + "ll_set_def_antenna": "0x0200dc4d", + "ll_set_initiating_coded_scheme": "0x0200dc6d", + "ll_set_max_conn_number": "0x0200dc79", + "ll_set_tx_power_range": "0x0200dd21", + "ll_unlock_frequency": "0x0200dd49", + "nibble_for_char": "0x02022495", + "platform_calibrate_rt_clk": "0x0202253f", "platform_call_on_stack": "0x020021fb", - "platform_config": "0x020223c1", - "platform_delete_timer": "0x020224e9", - "platform_enable_irq": "0x020224f1", - "platform_get_current_task": "0x02022525", - "platform_get_gen_os_driver": "0x02022549", - "platform_get_heap_status": "0x02022551", - "platform_get_link_layer_interf": "0x02022569", - "platform_get_task_handle": "0x02022571", - "platform_get_timer_counter": "0x02022591", - "platform_get_us_time": "0x02022595", - "platform_get_version": "0x02022599", - "platform_hrng": "0x020225a1", - "platform_install_isr_stack": "0x020225a9", - "platform_install_task_stack": "0x020225b5", - "platform_patch_rf_init_data": "0x020225ed", - "platform_printf": "0x020225f9", - "platform_raise_assertion": "0x0202260d", - "platform_rand": "0x02022621", - "platform_read_info": "0x02022625", - "platform_read_persistent_reg": "0x02022655", - "platform_reset": "0x02022661", - "platform_set_abs_timer": "0x02022675", - "platform_set_evt_callback": "0x02022679", - "platform_set_evt_callback_table": "0x0202268d", - "platform_set_irq_callback": "0x02022699", - "platform_set_irq_callback_table": "0x020226b5", - "platform_set_rf_clk_source": "0x020226c1", - "platform_set_rf_init_data": "0x020226cd", - "platform_set_rf_power_mapping": "0x020226d9", - "platform_set_timer": "0x020226e5", - "platform_shutdown": "0x020226e9", - "platform_switch_app": "0x020226ed", - "platform_trace_raw": "0x02022705", - "platform_write_persistent_reg": "0x0202271d", - "printf_hexdump": "0x020228d5", - "pvPortMalloc": "0x020233ad", - "pvTaskIncrementMutexHeldCount": "0x02023495", - "pvTimerGetTimerID": "0x020234ad", - "pxPortInitialiseStack": "0x020234d9", - "reverse_128": "0x020236c1", - "reverse_24": "0x020236c7", - "reverse_256": "0x020236cd", - "reverse_48": "0x020236d3", - "reverse_56": "0x020236d9", - "reverse_64": "0x020236df", - "reverse_bd_addr": "0x020236e5", - "reverse_bytes": "0x020236eb", - "sm_add_event_handler": "0x02023a69", - "sm_address_resolution_lookup": "0x02023bc1", - "sm_authenticated": "0x02023f3d", - "sm_authorization_decline": "0x02023f4b", - "sm_authorization_grant": "0x02023f6b", - "sm_authorization_state": "0x02023f8b", - "sm_bonding_decline": "0x02023fa5", - "sm_config": "0x020243f9", - "sm_config_conn": "0x02024411", - "sm_encryption_key_size": "0x020245c7", - "sm_just_works_confirm": "0x02024b4d", - "sm_le_device_key": "0x02024e85", - "sm_passkey_input": "0x02024f1b", - "sm_private_random_address_generation_get": "0x020252d5", - "sm_private_random_address_generation_get_mode": "0x020252dd", - "sm_private_random_address_generation_set_mode": "0x020252e9", - "sm_private_random_address_generation_set_update_period": "0x02025311", - "sm_register_external_ltk_callback": "0x0202544d", - "sm_register_oob_data_callback": "0x02025459", - "sm_request_pairing": "0x02025465", - "sm_send_security_request": "0x02025f3b", - "sm_set_accepted_stk_generation_methods": "0x02025f61", - "sm_set_authentication_requirements": "0x02025f6d", - "sm_set_encryption_key_size_range": "0x02025f79", - "sscanf_bd_addr": "0x02026351", - "sysSetPublicDeviceAddr": "0x0202687d", - "uuid128_to_str": "0x020270fd", - "uuid_add_bluetooth_prefix": "0x02027155", - "uuid_has_bluetooth_prefix": "0x02027175", - "uxListRemove": "0x02027191", - "uxQueueMessagesWaiting": "0x020271b9", - "uxQueueMessagesWaitingFromISR": "0x020271e1", - "uxQueueSpacesAvailable": "0x020271fd", - "uxTaskGetStackHighWaterMark": "0x02027229", - "uxTaskPriorityGet": "0x02027249", - "uxTaskPriorityGetFromISR": "0x02027265", - "vListInitialise": "0x02027323", - "vListInitialiseItem": "0x02027339", - "vListInsert": "0x0202733f", - "vListInsertEnd": "0x0202736f", - "vPortEndScheduler": "0x02027389", - "vPortEnterCritical": "0x020273b5", - "vPortExitCritical": "0x020273f9", - "vPortFree": "0x0202742d", - "vPortSuppressTicksAndSleep": "0x020274d1", - "vPortValidateInterruptPriority": "0x020275f9", - "vQueueDelete": "0x02027655", - "vQueueWaitForMessageRestricted": "0x02027681", - "vTaskDelay": "0x020276c5", - "vTaskInternalSetTimeOutState": "0x02027711", - "vTaskMissedYield": "0x02027721", - "vTaskPlaceOnEventList": "0x0202772d", - "vTaskPlaceOnEventListRestricted": "0x02027765", - "vTaskPriorityDisinheritAfterTimeout": "0x020277a5", - "vTaskPrioritySet": "0x02027851", - "vTaskResume": "0x02027919", - "vTaskStartScheduler": "0x0202799d", - "vTaskStepTick": "0x02027a2d", - "vTaskSuspend": "0x02027a5d", - "vTaskSuspendAll": "0x02027b19", - "vTaskSwitchContext": "0x02027b29", - "xPortStartScheduler": "0x02027bd1", - "xQueueAddToSet": "0x02027cd5", - "xQueueCreateCountingSemaphore": "0x02027cf9", - "xQueueCreateCountingSemaphoreStatic": "0x02027d35", - "xQueueCreateMutex": "0x02027d79", - "xQueueCreateMutexStatic": "0x02027d8f", - "xQueueCreateSet": "0x02027da9", - "xQueueGenericCreate": "0x02027db1", - "xQueueGenericCreateStatic": "0x02027dfd", - "xQueueGenericReset": "0x02027e65", - "xQueueGenericSend": "0x02027ef1", - "xQueueGenericSendFromISR": "0x0202805d", - "xQueueGiveFromISR": "0x0202811d", - "xQueueGiveMutexRecursive": "0x020281c1", - "xQueueIsQueueEmptyFromISR": "0x02028201", - "xQueueIsQueueFullFromISR": "0x02028225", - "xQueuePeek": "0x0202824d", - "xQueuePeekFromISR": "0x02028375", - "xQueueReceive": "0x020283e1", - "xQueueReceiveFromISR": "0x0202850d", - "xQueueRemoveFromSet": "0x020285a1", - "xQueueSelectFromSet": "0x020285c3", - "xQueueSelectFromSetFromISR": "0x020285d5", - "xQueueSemaphoreTake": "0x020285e9", - "xQueueTakeMutexRecursive": "0x02028755", - "xTaskCheckForTimeOut": "0x02028799", - "xTaskCreate": "0x02028809", - "xTaskCreateStatic": "0x02028865", - "xTaskGetCurrentTaskHandle": "0x020288d5", - "xTaskGetSchedulerState": "0x020288e1", - "xTaskGetTickCount": "0x020288fd", - "xTaskGetTickCountFromISR": "0x02028909", - "xTaskIncrementTick": "0x02028919", - "xTaskPriorityDisinherit": "0x020289e5", - "xTaskPriorityInherit": "0x02028a79", - "xTaskRemoveFromEventList": "0x02028b0d", - "xTaskResumeAll": "0x02028b8d", - "xTaskResumeFromISR": "0x02028c55", - "xTimerCreate": "0x02028ce1", - "xTimerCreateStatic": "0x02028d15", - "xTimerCreateTimerTask": "0x02028d4d", - "xTimerGenericCommand": "0x02028db9", - "xTimerGetExpiryTime": "0x02028e29", - "xTimerGetTimerDaemonTaskHandle": "0x02028e49" + "platform_config": "0x02022545", + "platform_delete_timer": "0x0202266d", + "platform_enable_irq": "0x02022675", + "platform_get_current_task": "0x020226a9", + "platform_get_gen_os_driver": "0x020226cd", + "platform_get_heap_status": "0x020226d5", + "platform_get_link_layer_interf": "0x020226ed", + "platform_get_task_handle": "0x020226f5", + "platform_get_timer_counter": "0x02022715", + "platform_get_us_time": "0x02022719", + "platform_get_version": "0x0202271d", + "platform_hrng": "0x02022725", + "platform_install_isr_stack": "0x0202272d", + "platform_install_task_stack": "0x02022739", + "platform_patch_rf_init_data": "0x02022771", + "platform_printf": "0x0202277d", + "platform_raise_assertion": "0x02022791", + "platform_rand": "0x020227a5", + "platform_read_info": "0x020227a9", + "platform_read_persistent_reg": "0x020227d9", + "platform_reset": "0x020227e5", + "platform_rt_rc_auto_tune": "0x020227f9", + "platform_rt_rc_auto_tune2": "0x02022801", + "platform_rt_rc_tune": "0x02022885", + "platform_set_abs_timer": "0x020228a1", + "platform_set_evt_callback": "0x020228a5", + "platform_set_evt_callback_table": "0x020228b9", + "platform_set_irq_callback": "0x020228c5", + "platform_set_irq_callback_table": "0x020228e1", + "platform_set_rf_clk_source": "0x020228ed", + "platform_set_rf_init_data": "0x020228f9", + "platform_set_rf_power_mapping": "0x02022905", + "platform_set_timer": "0x02022911", + "platform_shutdown": "0x02022915", + "platform_switch_app": "0x02022919", + "platform_trace_raw": "0x02022931", + "platform_write_persistent_reg": "0x02022949", + "printf_hexdump": "0x02022b01", + "pvPortMalloc": "0x020235d9", + "pvTaskIncrementMutexHeldCount": "0x020236c1", + "pvTimerGetTimerID": "0x020236d9", + "pxPortInitialiseStack": "0x02023705", + "reverse_128": "0x020238ed", + "reverse_24": "0x020238f3", + "reverse_256": "0x020238f9", + "reverse_48": "0x020238ff", + "reverse_56": "0x02023905", + "reverse_64": "0x0202390b", + "reverse_bd_addr": "0x02023911", + "reverse_bytes": "0x02023917", + "sm_add_event_handler": "0x02023c95", + "sm_address_resolution_lookup": "0x02023dd9", + "sm_authenticated": "0x02024205", + "sm_authorization_decline": "0x02024213", + "sm_authorization_grant": "0x02024233", + "sm_authorization_state": "0x02024253", + "sm_bonding_decline": "0x0202426d", + "sm_config": "0x020246e9", + "sm_config_conn": "0x02024701", + "sm_encryption_key_size": "0x020248b7", + "sm_just_works_confirm": "0x02025609", + "sm_le_device_key": "0x020259e9", + "sm_numeric_comparison_confirm": "0x02025b3b", + "sm_passkey_input": "0x02025b79", + "sm_private_random_address_generation_get": "0x0202617d", + "sm_private_random_address_generation_get_mode": "0x02026185", + "sm_private_random_address_generation_set_mode": "0x02026191", + "sm_private_random_address_generation_set_update_period": "0x020261b9", + "sm_register_external_ltk_callback": "0x02026445", + "sm_register_oob_data_callback": "0x02026451", + "sm_register_sc_oob_data_callback": "0x0202645d", + "sm_request_pairing": "0x02026469", + "sm_sc_generate_oob_data": "0x020270a5", + "sm_send_security_request": "0x020271d5", + "sm_set_accepted_stk_generation_methods": "0x020271fd", + "sm_set_authentication_requirements": "0x02027209", + "sm_set_encryption_key_size_range": "0x02027215", + "sscanf_bd_addr": "0x02027639", + "sysSetPublicDeviceAddr": "0x02027b65", + "uuid128_to_str": "0x020283e5", + "uuid_add_bluetooth_prefix": "0x0202843d", + "uuid_has_bluetooth_prefix": "0x0202845d", + "uxListRemove": "0x02028479", + "uxQueueMessagesWaiting": "0x020284a1", + "uxQueueMessagesWaitingFromISR": "0x020284c9", + "uxQueueSpacesAvailable": "0x020284e5", + "uxTaskGetStackHighWaterMark": "0x02028511", + "uxTaskPriorityGet": "0x02028531", + "uxTaskPriorityGetFromISR": "0x0202854d", + "vListInitialise": "0x0202860b", + "vListInitialiseItem": "0x02028621", + "vListInsert": "0x02028627", + "vListInsertEnd": "0x02028657", + "vPortEndScheduler": "0x02028671", + "vPortEnterCritical": "0x0202869d", + "vPortExitCritical": "0x020286e1", + "vPortFree": "0x02028715", + "vPortSuppressTicksAndSleep": "0x020287b9", + "vPortValidateInterruptPriority": "0x020288e1", + "vQueueDelete": "0x0202893d", + "vQueueWaitForMessageRestricted": "0x02028969", + "vTaskDelay": "0x020289ad", + "vTaskInternalSetTimeOutState": "0x020289f9", + "vTaskMissedYield": "0x02028a09", + "vTaskPlaceOnEventList": "0x02028a15", + "vTaskPlaceOnEventListRestricted": "0x02028a4d", + "vTaskPriorityDisinheritAfterTimeout": "0x02028a8d", + "vTaskPrioritySet": "0x02028b39", + "vTaskResume": "0x02028c01", + "vTaskStartScheduler": "0x02028c85", + "vTaskStepTick": "0x02028d15", + "vTaskSuspend": "0x02028d45", + "vTaskSuspendAll": "0x02028e01", + "vTaskSwitchContext": "0x02028e11", + "xPortStartScheduler": "0x02028ec1", + "xQueueAddToSet": "0x02028fc5", + "xQueueCreateCountingSemaphore": "0x02028fe9", + "xQueueCreateCountingSemaphoreStatic": "0x02029025", + "xQueueCreateMutex": "0x02029069", + "xQueueCreateMutexStatic": "0x0202907f", + "xQueueCreateSet": "0x02029099", + "xQueueGenericCreate": "0x020290a1", + "xQueueGenericCreateStatic": "0x020290ed", + "xQueueGenericReset": "0x02029155", + "xQueueGenericSend": "0x020291e1", + "xQueueGenericSendFromISR": "0x0202934d", + "xQueueGiveFromISR": "0x0202940d", + "xQueueGiveMutexRecursive": "0x020294b1", + "xQueueIsQueueEmptyFromISR": "0x020294f1", + "xQueueIsQueueFullFromISR": "0x02029515", + "xQueuePeek": "0x0202953d", + "xQueuePeekFromISR": "0x02029665", + "xQueueReceive": "0x020296d1", + "xQueueReceiveFromISR": "0x020297fd", + "xQueueRemoveFromSet": "0x02029891", + "xQueueSelectFromSet": "0x020298b3", + "xQueueSelectFromSetFromISR": "0x020298c5", + "xQueueSemaphoreTake": "0x020298d9", + "xQueueTakeMutexRecursive": "0x02029a45", + "xTaskCheckForTimeOut": "0x02029a89", + "xTaskCreate": "0x02029af9", + "xTaskCreateStatic": "0x02029b55", + "xTaskGetCurrentTaskHandle": "0x02029bc5", + "xTaskGetSchedulerState": "0x02029bd1", + "xTaskGetTickCount": "0x02029bed", + "xTaskGetTickCountFromISR": "0x02029bf9", + "xTaskIncrementTick": "0x02029c09", + "xTaskPriorityDisinherit": "0x02029cd5", + "xTaskPriorityInherit": "0x02029d69", + "xTaskRemoveFromEventList": "0x02029dfd", + "xTaskResumeAll": "0x02029e7d", + "xTaskResumeFromISR": "0x02029f45", + "xTimerCreate": "0x02029fd1", + "xTimerCreateStatic": "0x0202a005", + "xTimerCreateTimerTask": "0x0202a03d", + "xTimerGenericCommand": "0x0202a0a9", + "xTimerGetExpiryTime": "0x0202a119", + "xTimerGetTimerDaemonTaskHandle": "0x0202a139" } \ No newline at end of file diff --git a/bundles/exp/ING9168xx/meta.json b/bundles/exp/ING9168xx/meta.json index 60724eaa6..63f64defb 100644 --- a/bundles/exp/ING9168xx/meta.json +++ b/bundles/exp/ING9168xx/meta.json @@ -1,18 +1,18 @@ { "app": { - "base": 33734656 + "base": 33738752 }, "ram": { "base": 536870912, - "size": 21524 + "size": 21828 }, "rom": { "base": 33562624, - "size": 168988 + "size": 173892 }, "version": [ 2, 3, - 0 + 1 ] } \ No newline at end of file diff --git a/bundles/exp/ING9168xx/platform.bin b/bundles/exp/ING9168xx/platform.bin index 4768d6f519c1ab22494e05aeee90c6116a835706..cd7cdf4def59b28106cf70387b4ffcbfe6a5cc11 100644 GIT binary patch delta 58447 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�|gTz9&rxenJdwiHV%+ezVP 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
wkFZ@+5LyrEN#upo@Eu0&Rkn=Aj3A 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
M;w~k}Z0+ zT3JcLE;#Qw;EA`yG*_K5qn}03gJ}9&^n8dl!J-$aLKLEW{#&Tpyf&Ma(IVW?0E=lc zdS0SMFF}QqEV>FjW33xms=D2`So9s}`8Qj1qft@wNm~ngoE6`UN({8}Sr0nJpuK`N zpnz2C!bV(3v*>%!lhQ4E6MUC*?_>$xi{C)5J?{QKH8OI%RlxmfRMa4g{{ggMip8@9 zG^QL3X>A3KxetThrcRug>IKt^-w1jTiPNkEN_TpCmX#@WJK*2bEI5FNzU^T_L0}6M zPe2J%IUG=&7DiYYX<=UrV=aucFy6xcs@KTCHb|ZO1TsP=HVQz2w>~b&FQV0|U!y>T z5A8Iu2L*F@1+FuWu<){lzq9Z$U~h#3iV|g3bfkr&EiCk!M1&IC^jjowQ>?)lVKdR` zh@H#v;Spxoc8ghay46J6R4Y8iM8`A(xnftWiZojI99PJ(z~oaD6YXA7ZG7huHtT}J zL<+Ys#>BWp6JwNavw}%xI3m@;5hgmaOjNQ>qpQIQ0o(xhi8zk8C#zLZ13}mp>wy9A{|-$T zaBMOp?HB!wCJi_f)D)!i`o#bv!jA-ITlZ5>a9c+WP|G=E=r_%3`!899eKOTgI71XT zQgX%xKi|;~>qaUqtg&#Pg25VC22?~aL5{&~CeAgvW)lWe_iYUK^5f@mI;pGd8cnfal zd3dhz!Bhe692VYk=_V}SbZjkE5xevFp$+|qoNS2%m`AT{uNPdSBNzt zeEyQ54I>q(V@2!>Q=p6#(S&%`Xg$dI|Atw)?RF}}iY)`kO6@4pv$FDz?4ytyg#H7I z`2QDK5w0J2RIqn2#FK}Yho2D0X{xnp;F-KZdgRX@w%XLzTP8fG*Hi0XbP~d zNujC0p4AFf2*oRU)+jU`5iNHsGy}M&MWLC@0IUQ){s27k0zbs{*}%ND3e5ptfQR0> zz#25+JmBsv3eD&1n{iSXFaqfp0?Y4(=U(8p`*3Ina4-0m0LLSJ6_&|~y&#q%A_En< z19%=-%?#@mssToCP-q$OFmO5WRI@_0z;D(mR0rIF@SVV9@UH--A>ISr2CN5O*r-qg zU*DwAN?;wrt2iFv#t9%=K->k~fjj#ZPzSCC4nc-1v5g`AQvE-&BOa}{vex?R~BtgT!5oh zfG^Eg$QT<@aW=Z^r=U4uaf>!&#O9PfOQBp~@oa_Il>26$Lc@TkW-2rscpC9}z!u!e zO+Yu0ZKF6`XS-+}DmDVhCpi`X>lP~Lzc%qW?syEa9Qh{#51;}`z>!`gNCwe@31#P2SO+`!cZeou*R5XRl=`vOiu&NOiV+yh{Qy^9dm%yOEktYrdh=(7`vEeHPcJ8 zs_9M4>Lvm=!#u2VdTCZWz5J|tdTCZaVPPgetDxR|7O;BhP0YF|3Dz`c%KE66W}O5h z*obGn)SD@u`k!f5PrdoDit43VP4%X&xq)VNZGn*)g^<%{t8}1T^clUYd1VAG|FwPvZ?VtGM2@tmc@9yF<<= zW`A7>!2I3-7UV6Qc6(tlVJ6Ak6l{@z+@w;qxw#yYe@v0KZn% zyunW*EVYrifMynjz;Iy4QC4y=yihTIUoHNKwJ$P4LHxFmf`t736o-oOyVEIDnBN>; zLYUtU_P)<50%px|RuNF}2&V%d|A18k@<#=JmQV~tbEAli$1XninEAYb+xT-Gdu`bc z8XM{DeAkeb`U*ssKNMs3--$r0J1a32Hb&4vXZ-C?C<9+mly*mI(tgYWgyLQ4Ymutf zK5&VB;A;CKPi&rj(FXg})OS+zvh$**I{#+R%T6w)waO?vg&fMFc%?4)RiY=}3yb~J XVIprocwB9bvE{di+Z;EkxU>HSh@RX{ delta 53448 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

8d6dQx}lsT-)%an;2kYyTbEHRbI`~Q#j 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

Z6cpRPQO;2lbT!Ijy`u|yzzU5+4M#>Z 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 M^R&BWpwRvQ0AMC482|tP delta 40120 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%0A} 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 diff --git a/bundles/noos_exp/inc/bluetooth.h b/bundles/noos_exp/inc/bluetooth.h index a7d216362..44c58585a 100644 --- a/bundles/noos_exp/inc/bluetooth.h +++ b/bundles/noos_exp/inc/bluetooth.h @@ -521,6 +521,7 @@ typedef enum { #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2 0x29 // Vendor specific subevents +#define HCI_SUBEVENT_LE_VENDOR_CONNECTION_ABORTED 0xFD #define HCI_SUBEVENT_LE_VENDOR_CHANNEL_MAP_UPDATE 0xFE #define HCI_SUBEVENT_LE_VENDOR_PRO_CONNECTIONLESS_IQ_REPORT 0xFF diff --git a/bundles/noos_exp/inc/btstack_event.h b/bundles/noos_exp/inc/btstack_event.h index 20ae54c5d..e5ab49a55 100644 --- a/bundles/noos_exp/inc/btstack_event.h +++ b/bundles/noos_exp/inc/btstack_event.h @@ -1386,6 +1386,43 @@ typedef struct le_meta_subrate_change // Time Range: 100 ms to 32 s } le_meta_subrate_change_t; +typedef struct le_meta_event_vendor_channel_map_update +{ + // connection handle + uint16_t conn_handle; + // current channel map (the lower 37 bits are used) + // channel `n` is identified by bit `(channel_map & 0x7)` of `channel_map[n / 8]` + uint8_t channel_map[5]; +} le_meta_event_vendor_channel_map_update_t; + +// @brief BLE Link Layer security context +typedef struct le_security_ctx +{ + uint8_t opaque[40]; +} le_security_ctx_t; + +typedef struct le_meta_event_vendor_connection_aborted +{ + uint16_t conn_handle; // connection handle + uint8_t role; // role (0: master, 1: slave) + phy_type_t rx_phy; // Rx PHY + phy_type_t tx_phy; // Tx PHY + uint32_t access_addr; // Access address + uint32_t crc_init; // CRC init value + uint32_t interval; // interval in us + uint16_t sup_timeout; // supervision timeout in 10ms + uint8_t channel_map[5]; // channel map (lower 37 bits) + uint8_t ch_sel_algo; // channel selection algorithm (0: ALG #1, 1: ALG #2) + uint8_t hop_inc; // frequency hopping increment (only for ALG #1) + uint8_t last_unmapped_ch; // last unmapped channel (only for ALG #1) + uint16_t slave_latency; // slave latency + uint8_t sleep_clk_acc; // sleep clock accuracy + uint64_t next_event_time; // start time of next connection event + uint16_t next_event_counter; // event counter for next connection event + uint8_t security_enabled; // is security enabled + le_security_ctx_t security; // security context (available when enabled) +} le_meta_event_vendor_connection_aborted_t; + typedef struct le_mete_event_prd_adv_subevent_data_req { uint8_t adv_handle; // Used to identify a periodic advertising train diff --git a/bundles/noos_exp/inc/ll_api.h b/bundles/noos_exp/inc/ll_api.h index 6908bc35d..3db416214 100644 --- a/bundles/noos_exp/inc/ll_api.h +++ b/bundles/noos_exp/inc/ll_api.h @@ -100,14 +100,15 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co /** **************************************************************************************** - * @brief Create a connection directly (without advertising & initiating) + * @brief Create/Resume a connection directly (without advertising & initiating) * * @param[in] role connection role. master (0), slave (1) * @param[in] addr_types address types for advertiser and initiator - * bit [0] for slave, bit [1] for master + * bit [0] for slave (advertiser) + * bit [1] for master (initiator) * 0: public address; 1: random address - * @param[in] adv_addr address of advertiser - * @param[in] init_addr address of initiator + * @param[in] adv_addr address of advertiser (little-endian) + * @param[in] init_addr address of initiator (little-endian) * @param[in] rx_phy Rx PHY (1: 1M, 2: 2M, 3: Coded) * @param[in] tx_phy Tx PHY (1: 1M, 2: 2M, 3: Coded) * @param[in] access_addr access address @@ -115,21 +116,26 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co * @param[in] interval connection interval (unit: us) * @param[in] sup_timeout supervision timeout (unit: 10ms) * @param[in] channel_map channel map - * @param[in] ch_sel_algo channel selection algorithm (1 or 2) - * @param[in] hop_inc hop increment for CSA#1 ([5..16]) + * @param[in] ch_sel_algo channel selection algorithm (0: ALG #1, 1: ALG #2) + * @param[in] hop_inc hop increment for CSA#1 ([5..16]) (only for ALG #1) + * @param[in] last_unmapped_ch last unmapped channel index (only for ALG #1) * @param[in] min_ce_len information parameter about the minimum length of connection * event needed for this LE connection. * @param[in] max_ce_len information parameter about the maximum length of connection * event needed for this LE connection. - * @param[in] start_time start time of the 1st connectin event + * @param[in] start_time start time of the 1st connection event + * @param[in] event_counter event counter for the 1st connection event * @param[in] slave_latency slave latency - * @param[in] sleep_clk_acc sleep clock accuracy + * @param[in] sleep_clk_acc sleep clock accuracy (only for SLAVE role) * @param[in] sync_window slave's sync window for 1st connection event + * @param[in] security link layer security context + * NULL: security not used + * otherwise: security is used, which is `le_security_ctx_t *` in + * `le_meta_event_vendor_connection_aborted_t`. * @return 0 if successful else error code **************************************************************************************** */ -int ll_create_conn( - uint8_t role, +int ll_create_conn(uint8_t role, uint8_t addr_types, const uint8_t *adv_addr, const uint8_t *init_addr, @@ -142,12 +148,15 @@ int ll_create_conn( const uint8_t *channel_map, uint8_t ch_sel_algo, uint8_t hop_inc, + uint8_t last_unmapped_ch, uint16_t min_ce_len, uint16_t max_ce_len, uint64_t start_time, + uint16_t event_counter, uint16_t slave_latency, uint8_t sleep_clk_acc, - uint32_t sync_window); + uint32_t sync_window, + const void *security); /** **************************************************************************************** @@ -236,6 +245,18 @@ int ll_get_conn_events_info(const uint16_t conn_handle, uint16_t *event_count, uint8_t *channel_ids); +/** + **************************************************************************************** + * @brief Abort an existing connection + * + * After a connection is aborted, `HCI_SUBEVENT_VENDOR_CONNECTION_ABORTED` is emitted. + * + * @param[in] conn_handle handle of an existing connection + * @return 0 if aborting is ongoing else non-0 + **************************************************************************************** + */ +int ll_conn_abort(uint16_t conn_handle); + /** **************************************************************************************** * @brief Set default antenna ID diff --git a/bundles/noos_exp/inc/platform_api.h b/bundles/noos_exp/inc/platform_api.h index 2c7815798..bbc633bd3 100644 --- a/bundles/noos_exp/inc/platform_api.h +++ b/bundles/noos_exp/inc/platform_api.h @@ -409,7 +409,7 @@ uint8_t platform_read_persistent_reg(void); * ING918: starting from 0x20000000, 64KiB * ING916: starting from 0x20000000, 16KiB * - * @param[in] duration_cycles Duration before power on again (measured in cycles of 32k clock) + * @param[in] duration_cycles Duration before power on again (measured in cycles of real time clock) * Minimum value: 825 cycles (about 25.18ms) * When = 0: only power on when external wake up source is asserted * @param[in] p_retention_data Pointer to the start of data to be retained @@ -430,13 +430,18 @@ typedef enum PLATFORM_CFG_LOG_HCI, // flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_POWER_SAVING, // flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_TRACE_MASK, // flag is bitmap of platform_trace_item_t. default: 0 - PLATFORM_CFG_RC32K_EN, // Enable/Disable RC 32k clock. Default: Enable - PLATFORM_CFG_OSC32K_EN, // Enable/Disable 32k crystal oscillator. Default: Enable - PLATFORM_CFG_32K_CLK, // 32k clock selection. flag is platform_32k_clk_src_t. default: PLATFORM_32K_RC - // Note 1: When modifying this configuration, both RC32K and OSC32K should be ENABLED. + PLATFORM_CFG_RT_RC_EN, // Enable/Disable internal real time RC clock. Default: Enable + PLATFORM_CFG_RC32K_EN = PLATFORM_CFG_RT_RC_EN, + PLATFORM_CFG_RT_OSC_EN, // Enable/Disable external real time crystal oscillator. Default: Enable + PLATFORM_CFG_OSC32K_EN = PLATFORM_CFG_RT_OSC_EN, + PLATFORM_CFG_RT_CLK, // real time clock selection. flag is platform_rt_clk_src_t. default: PLATFORM_RT_RC + // Note 1: When modifying this configuration, both RT_RC and RT_OSC should be ENABLED. // Note 2: Unused clock can be disabled. - PLATFORM_CFG_32K_CLK_ACC, // Configure 32k clock accuracy in ppm. - PLATFORM_CFG_32K_CALI_PERIOD, // 32K clock auto-calibration period in seconds. Default: 3600 * 2 + PLATFORM_CFG_32K_CLK = PLATFORM_CFG_RT_CLK, + PLATFORM_CFG_RT_CLK_ACC, // Configure real time clock accuracy in ppm. + PLATFORM_CFG_32K_CLK_ACC = PLATFORM_CFG_RT_CLK_ACC, + PLATFORM_CFG_RT_CLK_CALI_PERIOD, // real time clock auto-calibration period in seconds. Default: 3600 * 2 + PLATFORM_CFG_32K_CALI_PERIOD = PLATFORM_CFG_RT_CLK_CALI_PERIOD, PLATFORM_CFG_PS_DBG_0, // debugging parameter PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION, // sleep time reduction (deep sleep mode) in us. (default: ~550us) PLATFORM_CFG_PS_DBG_1 = PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION, // obsoleted @@ -469,9 +474,13 @@ typedef enum typedef enum { - PLATFORM_32K_OSC, // external 32k crystal oscillator - PLATFORM_32K_RC // internal RC 32k clock -} platform_32k_clk_src_t; + PLATFORM_RT_OSC, // external crystal oscillator + PLATFORM_32K_OSC = PLATFORM_RT_OSC, + PLATFORM_RT_RC, // internal RC clock + PLATFORM_32K_RC = PLATFORM_RT_RC, +} platform_rt_clk_src_t; + +#define platform_32k_clk_src_t platform_rt_clk_src_t #define PLATFORM_CFG_ENABLE 1 #define PLATFORM_CFG_DISABLE 0 @@ -488,11 +497,13 @@ void platform_config(const platform_cfg_item_t item, const uint32_t flag); typedef enum { - PLATFORM_INFO_OSC32K_STATUS, // Read status of 32k crystal oscillator. (0: not OK; Non-0: OK) + PLATFORM_INFO_RT_OSC_STATUS, // Read status of real time crystal oscillator. (0: not OK; Non-0: OK) // "OK" means running. - // For ING916: this clock become running **after** selected as 32k + // For ING916: this clock become running **after** selected as real time clock // clock source. - PLATFORM_INFO_32K_CALI_VALUE, // Read current 32k clock calibration result. + PLATFORM_INFO_OSC32K_STATUS = PLATFORM_INFO_RT_OSC_STATUS, + PLATFORM_INFO_RT_CLK_CALI_VALUE, // Read current real time clock calibration result. + PLATFORM_INFO_32K_CALI_VALUE = PLATFORM_INFO_RT_CLK_CALI_VALUE, PLATFOFM_INFO_IRQ_NUMBER = 50, // Get the underline IRQ number of a platform IRQ // for example, platform_read_info(PLATFOFM_INFO_IRQ_NUMBER + PLATFORM_CB_IRQ_UART0) PLATFOFM_INFO_NUMBER = 255, @@ -510,36 +521,52 @@ uint32_t platform_read_info(const platform_info_item_t item); /** **************************************************************************************** - * @brief Do 32k clock calibration and get the calibration value. + * @brief Calibrate real-time RC clock and get the calibration value. * - * 32K clock auto-calibration timer is also reset, which means that next auto-calibration - * is supposed to be carried out after `PLATFORM_CFG_32K_CALI_PERIOD` seconds. + * Real time clock auto-calibration timer is also reset, which means that next auto-calibration + * is supposed to be carried out after `PLATFORM_CFG_RT_CLK_CALI_PERIOD` seconds. * * @return Calibration value. **************************************************************************************** */ -uint32_t platform_calibrate_32k(void); +uint32_t platform_calibrate_rt_clk(void); /** **************************************************************************************** - * @brief Tune internal the 32k RC clock with `value`. + * @brief Tune internal the real-time RC clock with `value`. * - * @param[in] value Value used to tune the clock (returned by `platform_32k_rc_auto_tune`) + * @param[in] value Value used to tune the clock (returned by `platform_rt_rc_auto_tune`) **************************************************************************************** */ -void platform_32k_rc_tune(uint16_t value); +void platform_rt_rc_tune(uint16_t value); /** **************************************************************************************** - * @brief Automatically tune the internal 32k RC clock, and get the tuning value. + * @brief Automatically tune the internal real time RC clock, and get the tuning value. * - * Note: This operation costs ~250ms. It is recommended to call this once and store the - * returned value into NVM for later usage. + * This is equivalent to `platform_rt_rc_auto_tune2(65536000000 / frequency)`. * * @return Value used to tune the clock **************************************************************************************** */ -uint16_t platform_32k_rc_auto_tune(void); +uint16_t platform_rt_rc_auto_tune(void); + +#define platform_calibrate_32k platform_calibrate_rt_clk +#define platform_32k_rc_tune platform_rt_rc_tune +#define platform_32k_rc_auto_tune platform_rt_rc_auto_tune + +/** + **************************************************************************************** + * @brief Automatically tune the internal real-time RC clock to a target frequency, and + * get the tuning value. + * + * Note: This operation costs ~250ms. + * + * @param[in] target_frequency target frequency of tuning (Hz) + * @return Value used to tune the clock + **************************************************************************************** + */ +uint16_t platform_rt_rc_auto_tune2(uint32_t target_frequency); /** **************************************************************************************** diff --git a/bundles/noos_exp/inc/sm.h b/bundles/noos_exp/inc/sm.h index 6dfc62bab..47c743c56 100644 --- a/bundles/noos_exp/inc/sm.h +++ b/bundles/noos_exp/inc/sm.h @@ -112,9 +112,7 @@ void sm_register_oob_data_callback( int (*get_oob_data_callback)(uint8_t addres_ * @brief Registers secure pairing OOB Data Callback. The callback should set the peer_confirm & peer_random and return 1 if OOB data is availble * @param get_oob_data_callback */ -// void sm_register_sc_oob_data_callback( int (*get_sc_oob_data_callback)(uint8_t addres_type, bd_addr_t addr, uint8_t *peer_confirm, uint8_t *peer_random)); -// WARNING: ^^^ this API is not available in this release - +void sm_register_sc_oob_data_callback( int (*get_sc_oob_data_callback)(uint8_t addres_type, bd_addr_t addr, uint8_t *peer_confirm, uint8_t *peer_random)); /** * @brief Limit the STK generation methods. Bonding is stopped if the resulting one isn't in the list @@ -231,17 +229,13 @@ int sm_le_device_key(hci_con_handle_t con_handle); * @brief To confirm numeric comparison when SM_EVENT_NUMERIC_COMPARISON_REQUEST is called. * @param handle */ -// void sm_numeric_comparison_confirm(hci_con_handle_t con_handle); -// WARNING: ^^^ this API is not available in this release - +void sm_numeric_comparison_confirm(hci_con_handle_t con_handle); /** * @brief When secure pairing is used and OOB is selected, use this function to prepare OOB data and share to peer. * @param handle */ -// int sm_sc_generate_oob_data(void (*callback)(uint8_t *peer_confirm, uint8_t *peer_random)); -// WARNING: ^^^ this API is not available in this release - +int sm_sc_generate_oob_data(void (*callback)(uint8_t *peer_confirm, uint8_t *peer_random)); /** * diff --git a/bundles/noos_extension/ING9168xx/apis.json b/bundles/noos_extension/ING9168xx/apis.json index 292b2b343..9787d3b20 100644 --- a/bundles/noos_extension/ING9168xx/apis.json +++ b/bundles/noos_extension/ING9168xx/apis.json @@ -17,284 +17,284 @@ "att_set_db": "0x02004e51", "att_set_read_callback": "0x02004e65", "att_set_write_callback": "0x02004e71", - "bd_addr_cmp": "0x02005045", - "bd_addr_copy": "0x0200504b", - "bd_addr_to_str": "0x02005055", - "big_endian_read_16": "0x0200508d", - "big_endian_read_32": "0x02005095", - "big_endian_store_16": "0x020050a9", - "big_endian_store_32": "0x020050b5", - "btstack_config": "0x020051f9", - "btstack_memory_pool_create": "0x02005347", - "btstack_memory_pool_free": "0x02005371", - "btstack_memory_pool_get": "0x020053d1", - "btstack_push_user_msg": "0x02005419", - "btstack_push_user_runnable": "0x02005425", - "btstack_reset": "0x02005431", - "char_for_nibble": "0x02005741", - "gap_add_dev_to_periodic_list": "0x0200612d", - "gap_add_whitelist": "0x0200613d", - "gap_aes_encrypt": "0x02006149", - "gap_clear_white_lists": "0x02006181", - "gap_clr_adv_set": "0x0200618d", - "gap_clr_periodic_adv_list": "0x02006199", - "gap_create_connection_cancel": "0x020061a5", - "gap_default_periodic_adv_sync_transfer_param": "0x020061b1", - "gap_disconnect": "0x020061c9", - "gap_disconnect_all": "0x020061f5", - "gap_ext_create_connection": "0x02006235", - "gap_get_connection_parameter_range": "0x0200630d", - "gap_le_read_channel_map": "0x02006349", - "gap_periodic_adv_create_sync": "0x020063b5", - "gap_periodic_adv_create_sync_cancel": "0x020063d9", - "gap_periodic_adv_set_info_transfer": "0x020063e5", - "gap_periodic_adv_sync_transfer": "0x020063f5", - "gap_periodic_adv_sync_transfer_param": "0x02006405", - "gap_periodic_adv_term_sync": "0x02006421", - "gap_read_antenna_info": "0x020064a9", - "gap_read_periodic_adv_list_size": "0x020064b5", - "gap_read_phy": "0x020064c1", - "gap_read_remote_used_features": "0x020064cd", - "gap_read_remote_version": "0x020064d9", - "gap_read_rssi": "0x020064e5", - "gap_remove_whitelist": "0x020064f1", - "gap_rmv_adv_set": "0x0200656d", - "gap_rmv_dev_from_periodic_list": "0x02006579", - "gap_rx_test_v2": "0x02006589", - "gap_rx_test_v3": "0x02006599", - "gap_set_adv_set_random_addr": "0x020065e5", - "gap_set_callback_for_next_hci": "0x02006621", - "gap_set_connection_cte_request_enable": "0x02006641", - "gap_set_connection_cte_response_enable": "0x0200665d", - "gap_set_connection_cte_rx_param": "0x0200666d", - "gap_set_connection_cte_tx_param": "0x020066c1", - "gap_set_connection_parameter_range": "0x0200670d", - "gap_set_connectionless_cte_tx_enable": "0x02006725", - "gap_set_connectionless_cte_tx_param": "0x02006735", - "gap_set_connectionless_iq_sampling_enable": "0x02006791", - "gap_set_data_length": "0x020067ed", - "gap_set_def_phy": "0x02006805", - "gap_set_ext_adv_data": "0x02006815", - "gap_set_ext_adv_enable": "0x0200682d", - "gap_set_ext_adv_para": "0x0200689d", - "gap_set_ext_scan_enable": "0x0200696d", - "gap_set_ext_scan_para": "0x02006985", - "gap_set_ext_scan_response_data": "0x02006a25", - "gap_set_host_channel_classification": "0x02006a3d", - "gap_set_periodic_adv_data": "0x02006a4d", - "gap_set_periodic_adv_enable": "0x02006abd", - "gap_set_periodic_adv_para": "0x02006acd", - "gap_set_periodic_adv_rx_enable": "0x02006ae5", - "gap_set_phy": "0x02006af5", - "gap_set_random_device_address": "0x02006b11", - "gap_start_ccm": "0x02006b41", - "gap_test_end": "0x02006b89", - "gap_tx_test_v2": "0x02006b95", - "gap_tx_test_v4": "0x02006bad", - "gap_update_connection_parameters": "0x02006bd1", - "gap_vendor_tx_continuous_wave": "0x02006c15", - "gatt_client_cancel_write": "0x0200713d", - "gatt_client_discover_characteristic_descriptors": "0x02007163", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020071a3", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x020071f3", - "gatt_client_discover_characteristics_for_service": "0x02007243", - "gatt_client_discover_primary_services": "0x02007279", - "gatt_client_discover_primary_services_by_uuid128": "0x020072ab", - "gatt_client_discover_primary_services_by_uuid16": "0x020072ef", - "gatt_client_execute_write": "0x0200732d", - "gatt_client_find_included_services_for_service": "0x02007353", - "gatt_client_get_mtu": "0x02007381", - "gatt_client_is_ready": "0x02007445", - "gatt_client_listen_for_characteristic_value_updates": "0x0200745b", - "gatt_client_prepare_write": "0x0200747d", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020074b9", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020074e3", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020074e9", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x02007517", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x0200751d", - "gatt_client_read_multiple_characteristic_values": "0x0200754b", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x0200757b", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x020075a9", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x020075f5", - "gatt_client_register_handler": "0x02007641", - "gatt_client_reliable_write_long_value_of_characteristic": "0x0200764d", - "gatt_client_signed_write_without_response": "0x02007a81", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007b45", - "gatt_client_write_client_characteristic_configuration": "0x02007b7f", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007bd1", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007be1", - "gatt_client_write_long_value_of_characteristic": "0x02007c1d", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007c2d", - "gatt_client_write_value_of_characteristic": "0x02007c69", - "gatt_client_write_value_of_characteristic_without_response": "0x02007c9f", - "hci_add_event_handler": "0x020092c1", - "hci_power_control": "0x02009a69", - "hci_register_acl_packet_handler": "0x02009c1d", - "kv_commit": "0x0200a379", - "kv_get": "0x0200a3d5", - "kv_init": "0x0200a3e1", - "kv_init_backend": "0x0200a461", - "kv_put": "0x0200a475", - "kv_remove": "0x0200a481", - "kv_remove_all": "0x0200a4b5", - "kv_value_modified": "0x0200a4e5", - "kv_value_modified_of_key": "0x0200a501", - "kv_visit": "0x0200a50d", - "l2cap_add_event_handler": "0x0200a59d", - "l2cap_can_send_packet_now": "0x0200a5ad", - "l2cap_create_le_credit_based_connection_request": "0x0200a771", - "l2cap_credit_based_send": "0x0200a8b9", - "l2cap_credit_based_send_continue": "0x0200a8e5", - "l2cap_disconnect": "0x0200a961", - "l2cap_get_le_credit_based_connection_credits": "0x0200ab4d", - "l2cap_get_peer_mtu_for_local_cid": "0x0200ab69", - "l2cap_init": "0x0200afa9", - "l2cap_le_send_flow_control_credit": "0x0200b09f", - "l2cap_max_le_mtu": "0x0200b3ad", - "l2cap_register_packet_handler": "0x0200b4d5", - "l2cap_register_service": "0x0200b4e1", - "l2cap_request_can_send_now_event": "0x0200b5f1", - "l2cap_request_connection_parameter_update": "0x0200b60b", - "l2cap_send_echo_request": "0x0200baed", - "l2cap_unregister_service": "0x0200bbcd", - "le_device_db_add": "0x0200bc25", - "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": "0x0200becf", - "ll_ackable_packet_run": "0x0200bf3d", - "ll_ackable_packet_set_tx_data": "0x0200bff5", - "ll_adjust_conn_peer_tx_power": "0x0200c011", - "ll_aes_encrypt": "0x0200c03d", - "ll_allow_nonstandard_adv_type": "0x0200c0b1", - "ll_attach_cte_to_adv_set": "0x0200c0c9", - "ll_channel_monitor_alloc": "0x0200c261", - "ll_channel_monitor_check_each_pdu": "0x0200c2e3", - "ll_channel_monitor_run": "0x0200c345", - "ll_config": "0x0200c415", - "ll_create_conn": "0x0200c431", - "ll_free": "0x0200c66b", - "ll_get_conn_events_info": "0x0200c675", - "ll_get_conn_info": "0x0200c75d", - "ll_get_heap_free_size": "0x0200c7ad", - "ll_hint_on_ce_len": "0x0200c7c1", - "ll_legacy_adv_set_interval": "0x0200c7f9", - "ll_lock_frequency": "0x0200c809", - "ll_malloc": "0x0200c86d", - "ll_override_whitening_init_value": "0x0200c875", - "ll_raw_packet_alloc": "0x0200c99d", - "ll_raw_packet_free": "0x0200ca71", - "ll_raw_packet_get_bare_rx_data": "0x0200caa9", - "ll_raw_packet_get_iq_samples": "0x0200cb69", - "ll_raw_packet_get_rx_data": "0x0200cc03", - "ll_raw_packet_recv": "0x0200ccb5", - "ll_raw_packet_send": "0x0200cd89", - "ll_raw_packet_set_bare_data": "0x0200cea5", - "ll_raw_packet_set_bare_mode": "0x0200cee3", - "ll_raw_packet_set_fake_cte_info": "0x0200cfe7", - "ll_raw_packet_set_param": "0x0200d009", - "ll_raw_packet_set_rx_cte": "0x0200d06b", - "ll_raw_packet_set_tx_cte": "0x0200d101", - "ll_raw_packet_set_tx_data": "0x0200d141", - "ll_register_hci_acl_previewer": "0x0200d1a9", - "ll_scan_set_fixed_channel": "0x0200d20d", - "ll_scanner_enable_iq_sampling": "0x0200d219", - "ll_scanner_enable_iq_sampling_on_legacy": "0x0200d2c1", - "ll_set_adv_access_address": "0x0200d5b1", - "ll_set_adv_coded_scheme": "0x0200d5bd", - "ll_set_conn_acl_report_latency": "0x0200d5f5", - "ll_set_conn_coded_scheme": "0x0200d625", - "ll_set_conn_interval_unit": "0x0200d651", - "ll_set_conn_latency": "0x0200d65d", - "ll_set_conn_tx_power": "0x0200d68d", - "ll_set_cte_bit": "0x0200d6bd", - "ll_set_def_antenna": "0x0200d6e5", - "ll_set_initiating_coded_scheme": "0x0200d705", - "ll_set_max_conn_number": "0x0200d711", - "ll_set_tx_power_range": "0x0200d7a5", - "ll_unlock_frequency": "0x0200d7cd", - "nibble_for_char": "0x020206bd", - "platform_32k_rc_auto_tune": "0x02020755", - "platform_32k_rc_tune": "0x020207a1", - "platform_calibrate_32k": "0x020207bd", + "bd_addr_cmp": "0x02005041", + "bd_addr_copy": "0x02005047", + "bd_addr_to_str": "0x02005051", + "big_endian_read_16": "0x02005089", + "big_endian_read_32": "0x02005091", + "big_endian_store_16": "0x020050a5", + "big_endian_store_32": "0x020050b1", + "btstack_config": "0x020051f5", + "btstack_memory_pool_create": "0x02005343", + "btstack_memory_pool_free": "0x0200536d", + "btstack_memory_pool_get": "0x020053cd", + "btstack_push_user_msg": "0x02005415", + "btstack_push_user_runnable": "0x02005421", + "btstack_reset": "0x0200542d", + "char_for_nibble": "0x0200573d", + "gap_add_dev_to_periodic_list": "0x02006129", + "gap_add_whitelist": "0x02006139", + "gap_aes_encrypt": "0x02006145", + "gap_clear_white_lists": "0x0200617d", + "gap_clr_adv_set": "0x02006189", + "gap_clr_periodic_adv_list": "0x02006195", + "gap_create_connection_cancel": "0x020061a1", + "gap_default_periodic_adv_sync_transfer_param": "0x020061ad", + "gap_disconnect": "0x020061c5", + "gap_disconnect_all": "0x020061f1", + "gap_ext_create_connection": "0x02006231", + "gap_get_connection_parameter_range": "0x02006309", + "gap_le_read_channel_map": "0x02006345", + "gap_periodic_adv_create_sync": "0x020063b1", + "gap_periodic_adv_create_sync_cancel": "0x020063d5", + "gap_periodic_adv_set_info_transfer": "0x020063e1", + "gap_periodic_adv_sync_transfer": "0x020063f1", + "gap_periodic_adv_sync_transfer_param": "0x02006401", + "gap_periodic_adv_term_sync": "0x0200641d", + "gap_read_antenna_info": "0x020064a5", + "gap_read_periodic_adv_list_size": "0x020064b1", + "gap_read_phy": "0x020064bd", + "gap_read_remote_used_features": "0x020064c9", + "gap_read_remote_version": "0x020064d5", + "gap_read_rssi": "0x020064e1", + "gap_remove_whitelist": "0x020064ed", + "gap_rmv_adv_set": "0x02006569", + "gap_rmv_dev_from_periodic_list": "0x02006575", + "gap_rx_test_v2": "0x02006585", + "gap_rx_test_v3": "0x02006595", + "gap_set_adv_set_random_addr": "0x020065e1", + "gap_set_callback_for_next_hci": "0x0200661d", + "gap_set_connection_cte_request_enable": "0x0200663d", + "gap_set_connection_cte_response_enable": "0x02006659", + "gap_set_connection_cte_rx_param": "0x02006669", + "gap_set_connection_cte_tx_param": "0x020066bd", + "gap_set_connection_parameter_range": "0x02006709", + "gap_set_connectionless_cte_tx_enable": "0x02006721", + "gap_set_connectionless_cte_tx_param": "0x02006731", + "gap_set_connectionless_iq_sampling_enable": "0x0200678d", + "gap_set_data_length": "0x020067e9", + "gap_set_def_phy": "0x02006801", + "gap_set_ext_adv_data": "0x02006811", + "gap_set_ext_adv_enable": "0x02006829", + "gap_set_ext_adv_para": "0x02006899", + "gap_set_ext_scan_enable": "0x02006969", + "gap_set_ext_scan_para": "0x02006981", + "gap_set_ext_scan_response_data": "0x02006a21", + "gap_set_host_channel_classification": "0x02006a39", + "gap_set_periodic_adv_data": "0x02006a49", + "gap_set_periodic_adv_enable": "0x02006ab9", + "gap_set_periodic_adv_para": "0x02006ac9", + "gap_set_periodic_adv_rx_enable": "0x02006ae1", + "gap_set_phy": "0x02006af1", + "gap_set_random_device_address": "0x02006b0d", + "gap_start_ccm": "0x02006b3d", + "gap_test_end": "0x02006b85", + "gap_tx_test_v2": "0x02006b91", + "gap_tx_test_v4": "0x02006ba9", + "gap_update_connection_parameters": "0x02006bcd", + "gap_vendor_tx_continuous_wave": "0x02006c11", + "gatt_client_cancel_write": "0x02007139", + "gatt_client_discover_characteristic_descriptors": "0x0200715f", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0200719f", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x020071ef", + "gatt_client_discover_characteristics_for_service": "0x0200723f", + "gatt_client_discover_primary_services": "0x02007275", + "gatt_client_discover_primary_services_by_uuid128": "0x020072a7", + "gatt_client_discover_primary_services_by_uuid16": "0x020072eb", + "gatt_client_execute_write": "0x02007329", + "gatt_client_find_included_services_for_service": "0x0200734f", + "gatt_client_get_mtu": "0x0200737d", + "gatt_client_is_ready": "0x02007441", + "gatt_client_listen_for_characteristic_value_updates": "0x02007457", + "gatt_client_prepare_write": "0x02007479", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020074b5", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020074df", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020074e5", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x02007513", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02007519", + "gatt_client_read_multiple_characteristic_values": "0x02007547", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007577", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x020075a5", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x020075f1", + "gatt_client_register_handler": "0x0200763d", + "gatt_client_reliable_write_long_value_of_characteristic": "0x02007649", + "gatt_client_signed_write_without_response": "0x02007a7d", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007b41", + "gatt_client_write_client_characteristic_configuration": "0x02007b7b", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007bcd", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007bdd", + "gatt_client_write_long_value_of_characteristic": "0x02007c19", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007c29", + "gatt_client_write_value_of_characteristic": "0x02007c65", + "gatt_client_write_value_of_characteristic_without_response": "0x02007c9b", + "hci_add_event_handler": "0x020092bd", + "hci_power_control": "0x02009a65", + "hci_register_acl_packet_handler": "0x02009c19", + "kv_commit": "0x0200a375", + "kv_get": "0x0200a3d1", + "kv_init": "0x0200a3dd", + "kv_init_backend": "0x0200a45d", + "kv_put": "0x0200a471", + "kv_remove": "0x0200a47d", + "kv_remove_all": "0x0200a4b1", + "kv_value_modified": "0x0200a4e1", + "kv_value_modified_of_key": "0x0200a4fd", + "kv_visit": "0x0200a509", + "l2cap_add_event_handler": "0x0200a599", + "l2cap_can_send_packet_now": "0x0200a5a9", + "l2cap_create_le_credit_based_connection_request": "0x0200a76d", + "l2cap_credit_based_send": "0x0200a8b5", + "l2cap_credit_based_send_continue": "0x0200a8e1", + "l2cap_disconnect": "0x0200a95d", + "l2cap_get_le_credit_based_connection_credits": "0x0200ab49", + "l2cap_get_peer_mtu_for_local_cid": "0x0200ab65", + "l2cap_init": "0x0200afa5", + "l2cap_le_send_flow_control_credit": "0x0200b09b", + "l2cap_max_le_mtu": "0x0200b3a9", + "l2cap_register_packet_handler": "0x0200b4d1", + "l2cap_register_service": "0x0200b4dd", + "l2cap_request_can_send_now_event": "0x0200b5ed", + "l2cap_request_connection_parameter_update": "0x0200b607", + "l2cap_send_echo_request": "0x0200bae9", + "l2cap_unregister_service": "0x0200bbc9", + "le_device_db_add": "0x0200bc21", + "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_ackable_packet_alloc": "0x0200bd8f", + "ll_ackable_packet_get_status": "0x0200becb", + "ll_ackable_packet_run": "0x0200bf39", + "ll_ackable_packet_set_tx_data": "0x0200bff1", + "ll_adjust_conn_peer_tx_power": "0x0200c00d", + "ll_aes_encrypt": "0x0200c039", + "ll_allow_nonstandard_adv_type": "0x0200c0ad", + "ll_attach_cte_to_adv_set": "0x0200c0c5", + "ll_channel_monitor_alloc": "0x0200c25d", + "ll_channel_monitor_check_each_pdu": "0x0200c2df", + "ll_channel_monitor_run": "0x0200c341", + "ll_config": "0x0200c411", + "ll_free": "0x0200c447", + "ll_get_conn_events_info": "0x0200c451", + "ll_get_conn_info": "0x0200c539", + "ll_get_heap_free_size": "0x0200c589", + "ll_hint_on_ce_len": "0x0200c59d", + "ll_legacy_adv_set_interval": "0x0200c5d5", + "ll_lock_frequency": "0x0200c5e5", + "ll_malloc": "0x0200c649", + "ll_override_whitening_init_value": "0x0200c651", + "ll_raw_packet_alloc": "0x0200c779", + "ll_raw_packet_free": "0x0200c84d", + "ll_raw_packet_get_bare_rx_data": "0x0200c885", + "ll_raw_packet_get_iq_samples": "0x0200c945", + "ll_raw_packet_get_rx_data": "0x0200c9df", + "ll_raw_packet_recv": "0x0200ca91", + "ll_raw_packet_send": "0x0200cb65", + "ll_raw_packet_set_bare_data": "0x0200cc81", + "ll_raw_packet_set_bare_mode": "0x0200ccbf", + "ll_raw_packet_set_fake_cte_info": "0x0200cdc3", + "ll_raw_packet_set_param": "0x0200cde5", + "ll_raw_packet_set_rx_cte": "0x0200ce47", + "ll_raw_packet_set_tx_cte": "0x0200cedd", + "ll_raw_packet_set_tx_data": "0x0200cf1d", + "ll_register_hci_acl_previewer": "0x0200cf85", + "ll_scan_set_fixed_channel": "0x0200cfe9", + "ll_scanner_enable_iq_sampling": "0x0200cff5", + "ll_scanner_enable_iq_sampling_on_legacy": "0x0200d09d", + "ll_set_adv_access_address": "0x0200d38d", + "ll_set_adv_coded_scheme": "0x0200d399", + "ll_set_conn_acl_report_latency": "0x0200d3d1", + "ll_set_conn_coded_scheme": "0x0200d401", + "ll_set_conn_interval_unit": "0x0200d42d", + "ll_set_conn_latency": "0x0200d439", + "ll_set_conn_tx_power": "0x0200d469", + "ll_set_cte_bit": "0x0200d499", + "ll_set_def_antenna": "0x0200d4c1", + "ll_set_initiating_coded_scheme": "0x0200d4e1", + "ll_set_max_conn_number": "0x0200d4ed", + "ll_set_tx_power_range": "0x0200d581", + "ll_unlock_frequency": "0x0200d5a9", + "nibble_for_char": "0x0202046d", + "platform_calibrate_rt_clk": "0x02020505", "platform_call_on_stack": "0x0200213f", - "platform_config": "0x020207c1", - "platform_controller_run": "0x020208e9", - "platform_delete_timer": "0x0202091d", - "platform_enable_irq": "0x02020925", - "platform_get_gen_os_driver": "0x02020959", - "platform_get_link_layer_interf": "0x02020965", - "platform_get_task_handle": "0x0202096d", - "platform_get_timer_counter": "0x02020985", - "platform_get_us_time": "0x02020989", - "platform_get_version": "0x0202098d", - "platform_hrng": "0x02020995", - "platform_init_controller": "0x0202099d", - "platform_os_idle_resumed_hook": "0x020209b9", - "platform_patch_rf_init_data": "0x020209bd", - "platform_post_sleep_processing": "0x020209c9", - "platform_pre_sleep_processing": "0x020209cf", - "platform_pre_suppress_ticks_and_sleep_processing": "0x020209d5", - "platform_printf": "0x020209d9", - "platform_raise_assertion": "0x020209ed", - "platform_rand": "0x02020a01", - "platform_read_info": "0x02020a05", - "platform_read_persistent_reg": "0x02020a35", - "platform_reset": "0x02020a41", - "platform_set_abs_timer": "0x02020a55", - "platform_set_evt_callback": "0x02020a59", - "platform_set_evt_callback_table": "0x02020a6d", - "platform_set_irq_callback": "0x02020a79", - "platform_set_irq_callback_table": "0x02020a95", - "platform_set_rf_clk_source": "0x02020aa1", - "platform_set_rf_init_data": "0x02020aad", - "platform_set_rf_power_mapping": "0x02020ab9", - "platform_set_timer": "0x02020ac5", - "platform_shutdown": "0x02020ac9", - "platform_switch_app": "0x02020acd", - "platform_trace_raw": "0x02020ae5", - "platform_write_persistent_reg": "0x02020afd", - "printf_hexdump": "0x02020b11", - "reverse_128": "0x02020e89", - "reverse_24": "0x02020e8f", - "reverse_256": "0x02020e95", - "reverse_48": "0x02020e9b", - "reverse_56": "0x02020ea1", - "reverse_64": "0x02020ea7", - "reverse_bd_addr": "0x02020ead", - "reverse_bytes": "0x02020eb3", - "sm_add_event_handler": "0x02021241", - "sm_address_resolution_lookup": "0x02021399", - "sm_authenticated": "0x02021715", - "sm_authorization_decline": "0x02021723", - "sm_authorization_grant": "0x02021743", - "sm_authorization_state": "0x02021763", - "sm_bonding_decline": "0x0202177d", - "sm_config": "0x02021bd1", - "sm_config_conn": "0x02021be9", - "sm_encryption_key_size": "0x02021d9f", - "sm_just_works_confirm": "0x02022325", - "sm_le_device_key": "0x0202265d", - "sm_passkey_input": "0x020226f3", - "sm_private_random_address_generation_get": "0x02022aad", - "sm_private_random_address_generation_get_mode": "0x02022ab5", - "sm_private_random_address_generation_set_mode": "0x02022ac1", - "sm_private_random_address_generation_set_update_period": "0x02022ae9", - "sm_register_external_ltk_callback": "0x02022c25", - "sm_register_oob_data_callback": "0x02022c31", - "sm_request_pairing": "0x02022c3d", - "sm_send_security_request": "0x02023713", - "sm_set_accepted_stk_generation_methods": "0x02023739", - "sm_set_authentication_requirements": "0x02023745", - "sm_set_encryption_key_size_range": "0x02023751", - "sscanf_bd_addr": "0x02023b29", - "sysSetPublicDeviceAddr": "0x02024055", - "uuid128_to_str": "0x020248b1", - "uuid_add_bluetooth_prefix": "0x02024909", - "uuid_has_bluetooth_prefix": "0x02024929" + "platform_config": "0x02020509", + "platform_controller_run": "0x02020631", + "platform_delete_timer": "0x02020665", + "platform_enable_irq": "0x0202066d", + "platform_get_gen_os_driver": "0x020206a1", + "platform_get_link_layer_interf": "0x020206ad", + "platform_get_task_handle": "0x020206b5", + "platform_get_timer_counter": "0x020206cd", + "platform_get_us_time": "0x020206d1", + "platform_get_version": "0x020206d5", + "platform_hrng": "0x020206dd", + "platform_init_controller": "0x020206e5", + "platform_os_idle_resumed_hook": "0x02020701", + "platform_patch_rf_init_data": "0x02020705", + "platform_post_sleep_processing": "0x02020711", + "platform_pre_sleep_processing": "0x02020717", + "platform_pre_suppress_ticks_and_sleep_processing": "0x0202071d", + "platform_printf": "0x02020721", + "platform_raise_assertion": "0x02020735", + "platform_rand": "0x02020749", + "platform_read_info": "0x0202074d", + "platform_read_persistent_reg": "0x0202077d", + "platform_reset": "0x02020789", + "platform_rt_rc_auto_tune": "0x0202079d", + "platform_rt_rc_auto_tune2": "0x020207a5", + "platform_rt_rc_tune": "0x02020829", + "platform_set_abs_timer": "0x02020845", + "platform_set_evt_callback": "0x02020849", + "platform_set_evt_callback_table": "0x0202085d", + "platform_set_irq_callback": "0x02020869", + "platform_set_irq_callback_table": "0x02020885", + "platform_set_rf_clk_source": "0x02020891", + "platform_set_rf_init_data": "0x0202089d", + "platform_set_rf_power_mapping": "0x020208a9", + "platform_set_timer": "0x020208b5", + "platform_shutdown": "0x020208b9", + "platform_switch_app": "0x020208bd", + "platform_trace_raw": "0x020208d5", + "platform_write_persistent_reg": "0x020208ed", + "printf_hexdump": "0x02020901", + "reverse_128": "0x02020c79", + "reverse_24": "0x02020c7f", + "reverse_256": "0x02020c85", + "reverse_48": "0x02020c8b", + "reverse_56": "0x02020c91", + "reverse_64": "0x02020c97", + "reverse_bd_addr": "0x02020c9d", + "reverse_bytes": "0x02020ca3", + "sm_add_event_handler": "0x02021031", + "sm_address_resolution_lookup": "0x02021189", + "sm_authenticated": "0x02021505", + "sm_authorization_decline": "0x02021513", + "sm_authorization_grant": "0x02021533", + "sm_authorization_state": "0x02021553", + "sm_bonding_decline": "0x0202156d", + "sm_config": "0x020219c1", + "sm_config_conn": "0x020219d9", + "sm_encryption_key_size": "0x02021b8f", + "sm_just_works_confirm": "0x02022115", + "sm_le_device_key": "0x0202244d", + "sm_passkey_input": "0x020224e3", + "sm_private_random_address_generation_get": "0x0202289d", + "sm_private_random_address_generation_get_mode": "0x020228a5", + "sm_private_random_address_generation_set_mode": "0x020228b1", + "sm_private_random_address_generation_set_update_period": "0x020228d9", + "sm_register_external_ltk_callback": "0x02022a15", + "sm_register_oob_data_callback": "0x02022a21", + "sm_request_pairing": "0x02022a2d", + "sm_send_security_request": "0x02023503", + "sm_set_accepted_stk_generation_methods": "0x02023529", + "sm_set_authentication_requirements": "0x02023535", + "sm_set_encryption_key_size_range": "0x02023541", + "sscanf_bd_addr": "0x02023919", + "sysSetPublicDeviceAddr": "0x02023e45", + "uuid128_to_str": "0x020246a1", + "uuid_add_bluetooth_prefix": "0x020246f9", + "uuid_has_bluetooth_prefix": "0x02024719" } \ No newline at end of file diff --git a/bundles/noos_extension/ING9168xx/meta.json b/bundles/noos_extension/ING9168xx/meta.json index f844720d7..b66655b56 100644 --- a/bundles/noos_extension/ING9168xx/meta.json +++ b/bundles/noos_extension/ING9168xx/meta.json @@ -4,15 +4,15 @@ }, "ram": { "base": 536870912, - "size": 3236 + "size": 3244 }, "rom": { "base": 33562624, - "size": 151000 + "size": 150464 }, "version": [ 2, 3, - 0 + 1 ] } \ No newline at end of file diff --git a/bundles/noos_extension/ING9168xx/platform.bin b/bundles/noos_extension/ING9168xx/platform.bin index 2254d9ba4a051c1f89844fe12f3de8bd1826efa7..5cc1013c57eac7745a3aeb474a062353738fd785 100644 GIT binary patch delta 34982 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 MngewiN<3%(2eTamNdN!< delta 35415 zcmZs@2V4}__BcLwwo`ZMo!JFsQ4~;7Y;i#y7DPc~jcsjlu`U`7ni#=oL=zMB#tf!H zVqT0Xib@m}#U!Td1C5DBOx83+lQ`IBw*SwaMc#Y=?@vE4bMM@C&OP_^OADvD{F-Km zFOH&YH2sUHZKe1l4$4dw>YRu^aF?pui(^qD{YC-KLu-%?A3$%w?{W0}u&vW5+7>`D zZBr?Fbt*;coQFT9*CBe^eEf*Kf3IotX`A1GtRJe&YYxFHv6~CpsO(H+Zrzla5 zW32g$jnZ@!^5Df!!{>YlIfe(%8d11mQC<4$fy+qNCbFK@BR50X}D z{?!xTmC!V84v|JYdfX2MZ4Q;n2YSkZQu)1}a+p+ptEU_;mARg>PAb3DUA8p_jCvZqGJ8-j$%3Rf2E5h7L`K9ZJ3;}9J&p&W7EX^PAQ0ecp zbxQgYf^MRtPL3``@k^b!CU{Md+Bw!t@6l$5@wpxx5Ms>#)>(L%I=x#wM#+rYwqW}b zJEi|Z4APm(wS1)urB7t#?^nvB_@mChI>Pu>o|hWzitz7OFH_vqD2y;$KfEd=EoP3> zqKv$hyF9mntjPp(8(BTS(uog-lni+sKB7yJ{9K2B!5i*t50E8mV9Ci&O-CpomVb$$ zQD>qkttk^WvsOtlH8?kPux?Bf`9iigUP90aygroM&~@x#ZKPD&*;9^^%GZ0!Dye*> zr<^2}+j`20Qu*tiapL8owvejyr+x9ZbT3U1Kn%7-^c zEXFtW&(N)l@nXXx%9e7PPF;dOHe}MXUAWzl87c3Zd_h}Mdhg{mlf*QNY073P{t`}1 zNmLj_6+Z}%Oqn%I(InTa_=qODNNthpX|syobj$=h9a}`vbdkBcZe35ET(9JB9V305 z_{Wq1>PI}veGFgf#9^r|K?~h-(GzN96Zv=t{yCM2(uzvz?^b4Q&bpd{&bD&al9<4M z=f)9f1@TFIwfL^6Mo%{%5@jX^miClL83o{i4Y(rhC3GF5UVYIwIIC9?26I`EG4q?FU1zd91w1`%cJSsDMm_YbKg%ck(dy1jTsdL$Z$H>YQ0+;gAk zpmz0!mN~vpy5ADq4c%{7oF8_--N8Sm-$$|doUt#WvCB9I{fuX1JcS;|KW6MverTm> zixscwU4S;@rrybDHNMh2M}N;prP~{hh;kHajJbG3RH8)Q?xKw0ZATnxq~g7}PoEr9KM*s9~A2&~CgZGk$1>yYNo-MAMy(`2-OmZu0v#S2lYdSZl5sxP7C7 z4KxRogs`J6a{eEu+N{nVZAswYcjA9CA44N>QQvWyf4D0fkWtsVxq;#kN7m4X?az`8 z(|EHhWkywNU%P*0BYgPNz7sXK+=%&}FmIgLZ-qR84;1l^enud&rhY}53n$2=G~XKs zW;Jf$7t!=1jX~^oQB5iLd?ad^bDdPUEQQ`L*E6h=?{YuV+_#f2+`~q*A*_P^MJ%b( z+4sd#w_0tZwM8t$9xF7Bq1);X0h`%EUy*kq1+wq$LdwR1Ti1%%Z1_H!tt&tm4<7ov zqlh&^xvqe^uqZH(jp?WK+A zB4V`76#1dFjdIo_7(5`@YU)R!Dk3&Kf)UGd`WWO=t-hx=pt+SMB9N+VQK7atzV$RN z%js?T*p^H)Uw(3ehXrD5h$GRoE% zY^G}Jn!@={e5O0Uj*+wb3W6_c%%){!O>w;1o7WW2zvejnQ%(e;PdG5&KOy)dr-D+q z)&ergDq{yMf>T~S;4o^(xdX=rv}^O4Unr*OC&uD!1OKJ?ju|L^gL88S#F9!|V-Tfa zQ7d97JH;$EDC@n#JGeS`7*J?)?&{EDFJq+|5c9b~0bfSp{6Pcg!sB?&pp|sA8{ZtX zAAN>*4<3iChkqMff#@-Tc*>CB{gkXJDUl6gsZ3cbK~)6*`Z25= znv`_WsbG(E-5IHA-34o=7_VS<8`z9DTrw^S~o7)-*9G$B~fR; zEKXsX=qw@|4NE_p&0iv4JC9r&omni z!Dmb<%BRQDw7dl0G!<|7kSJ*^GRyeX6CXl#Hn0!{yY*l!s|60Xz)2Z{Kq?s7IDVH` z{yqcG7rpZRa8_@Deo$fIAuMwE*i3L+!Q>M~f_t1|u*55=7AcmYNO zzwjzyng7{4qZ7H@EShiZLEw(~ZuPUaDTC2RZOf1d{ zuvFE^>;+2$EPy?#rs`o|Bq1Z|_;)a_48|#5N?RI4v$h&qkTD3`LaZEite;3{BD`wU ztbQ+d1NS2+VXwnG00wOc=;xd4(C0tpFPbhFWACUq<_1*zn;dG|3ti;q>UAhX)<)~A zS0?cLPvX4MnWzje9G$*l%mRuo14Zw95c*`y)iBG;-Dq9`?_ZIjpuQa5KPM}ZW}ep+ z(epmD>3h;%s-M!dwCBC7X%oErx4*dQ2)u)Y$PZyvAcBKL1*L7xV<{XsCKye}v16th zCjAd=@}?vIQ+6Mt#^POL477GE{$xyE$*z&l*WfCG2|_GqkNNi|6Z#NdM+0uF|7*`= z#o^YN`C4oKeBfK%`-q^8dI7;Z9?Hgr9RolgA{N7NEyeh8b|}c!dN!KgSB#Id15p&d z%|`Y<2rcDBv{hrx2QnzI7F(*UHQhw;aD*%vp|%+JD>R`W@QT7%dIu@Q;I|8nXdnKz zFt&FcnXhT|ogIdU8%XnCf;t%VUtrVxsnZE1IK&)94==&J%!}!g61>Ztigx0o=3FJA zn1Lnuj(HossRTb$^eX*y363j{3mXk%_*X*n@0@~-8;jZE^vSU}q$G|uj>Wx8%HqCq((HqTfP;q* z4FRJcr<^bTseftSOG^^|#ZX)vAM3ymN>|brCth4Oke=qnb!ByQg$EZ*=ta-+;KdVI zdWZ)fnvjX!#J^0?(>f2PC-$b7xNyIT3G`oXTrx46zUao!OzclLx$&Wiy-_m0HZhv! z-1xynW5gXN#kV+!6ec`F4QpKM#{C~P(hJ;p=A+|LDE{ElW&L;=#VCuQh1qOTvxqP9 z5fLmiyM<3q|FMdq7r>U}ETw?&#PW?U%uX6jf9Jydj2OIkQXGBAgpGWE>1Ccl#szH(d)-zIu}Mqa z!W8`Xl#KXTK18g4sU@kVK=%{b5*3KJ`j^f?pAwuiH3bdDlc%nwA9LZ>sS!!RKB@Cd zN>~-LZxX30%|VHnN@Mx5lbD`19Hrxt(=t#PE}y24bUUftk&-f-&7$3MewVl*L5|;= zHhEUtiBuTkKb=EP8lh}>sUB7rz>xKMgnu9F{XcCwPGtU1*>|EBl;vIHL9ibYOPKnt zbV?ZG5eDN4(_^DPIFbE7t=~Km#~%}M)pQ2v`=E&TP6wPj@rCKV5RVH9`*(axDtxRQ1!)``wo&rA% z8^e$Av?T2-KtFL%re3Mv+J_y=P6Vjd;EOX?r)7Ak(+T`}2W51%5t2*bk2lGUvI}(4 z1d$=!0oX8)m(9u=@Rl>Ba$ZfEZDAFCa0nOzfYba~zW;Gq3T3$8L8VZ;(e8s_%+Q8d z)?SG0Zs9rn?^y$4?at-``Q^lhpTtx|?O^RFWrE$xx`j9#KRZ5plE>Io@BkrFGu~rq z$Y&Wq(Fr_mb_y6c6|=*GH@T)YHH&I(6x8p*J7?#p_d8%dYTqLK&FtB+1$D7a!?sqzEg{f?Q7@E7xpXfeJ$FFJOwvl$T0 zAKq6`deJnd?DDnFM7)ajvOq-AzPe*j_{0C5|aE{IKj(nHqYpDkidKnJbfK*@J>qI>-l@sF$36&sdm+e#Or(92eUgTmsRp z&0+|3MiG9=q|#lY-#5VshjG_Jf}`BWQ_u!H{qa8Z*B<=b<0Z(6FFrmF)nNUi@Q`Vb z(zFOaF_S^@oPrA$<)MG!rxs2Ae}BHS=!p#{oyrtsQ0O)0X#PW&x~M_S)9)0A>I!aF z>roXbPqs~xAsNkw!kNmY5LE+iSfBokjnY?FMDz0If;$6Io%pDh(xZy%iVgZRQ0q8Z zaHmYF-C%fj?U}^KCPnkNPx|!vq?gSn{Bl~6f@c+ztX9B$Ci?iVOp2dCO_u0iGW2o^Ul50@aK~V;(=Rr}SJyR9Ue{%vSEa{c?$qB8# zdNs_t8f?2lZ6jp}EmAPi{6sONgt4ld>LhE@bZ64UzkIdNwB8Ei7~q9wLWD3_4zeJD2Z~NAoEnes0B30O-sL{qTD} zd6l98^?J@$C(5g~SO^n|=4XJ;8Vb8)Ym8unS(=rlDD-l36o1X9sM=)nW3;FVC)r{K ze&bU@Rh=j+^H&dSl2eNR)A8tkbxdi(i)~LcyhxUQ(TgNI_6lJ8qWk7r-@OkB`M@Xwft1iqMEAj*L?2|?L2W6~7SR*Dos~k;TVko*& z%8Q!p*kX19)aQw$PI*CoOGAC#1unSJ4q>t=4ve?Q+m&|uTz0J1;1JS8?Z7Z7sd*or z9qSMh@%1OdQ8>Q;M0%9msJK8(AatvWGL`!!0xY5b>M7tF+qybEK%Q~;>R-T+q4M}@ zMlUy_tHie>D`Ki1_R>mT5mj;akud8d>{=a5fQVW%2pRFXHR(eMa@39UnC&73dd_wc zQMBF)yLH8A1~sM*A$>-xNFU$y{*~+XkzkO{;LUN zmFdAor?!hUMFw2rBmNn@{7FlcdcKi;&_QM((Cj%y{XgY{qN15*E z3^X`QoPyVlzpG5zP_8XXNN$U1&=qNFste-U^j38ON|T=yh?9w|-6#0m+7g-tVsVsfLjVOMJkmRLu*)}6+s0TUij6ewzBZm9{<*b-hMuj3BhNoLLGu$%QD$3VHo)vRpxY@z=L8O7K+n#hTh(Bw`S)Gg zGG9z8GgeZOHm+9`LAYGL5aV-#8;Ie;dU#WJo(lw%n8;H@dG<{1gZI2B170jmq(! zr_;f!cjoC_kn+OQdV=-1_5Fx5qj>$A4gN*%I5^M{Uu0!P;awLYPRbL!FP4}2qDq4I z?H#VSj?MuYBI>Qpa4PD>NkAoU02x;UQW@(t5C|r5O7b;PrOmgHav+pvLpc=6q)#~X zxeR@p#YlMjiP9d_HfQ^7`wjW=B{e|Tj8$)qVh@VXQC}}EtvHpey8LSsNgXp<8W$h zGbpU3GbGH<8i*Suz}jljSZON&t!A}7eiWC`0w%)s8ghKs;w#UL9YF9CX4W<$D{zNZu-Q}ZJ5ne zIH=6)tt&tAcF-B}R(ZzNHk!|KUG6|&gv$6IL@ckGMxS%w*;O&L@;I)nGNJ{zzG@ND zU`=%v>cT^+wDG!$yUd)L-P%co$pHlwca9TD^s|l)RT!AhN zx`92rj$;|O5DkyXK6QHZjq+Rbbv|Ah}Hyfi6p0TATU z{`2SBn7+)aC+0q}kV#t&B7mw{inqNqUSpS2%ts$lbnM~lFHM%AI6N5Q>fnWV4i7?V z+>Gxg-Gdf>yV@tDKpcm@N*Cpe*(P%I0krck_YPd_8{Ck=M%M|#LM+>T2HEl1-6;g_ zo4XgF(}zo6`4ORuIKB37_!7A%3#9m%J!vQhFWK`H1QR><>_q$V+E+2M;NaJu3Y9DT z6Q0>FhY{m3_gX$d$!l9k@ay#qv;sf>dSWl^(i)0bc~=1SKp5a&w1BE@Iph_R+#wBA zZ8j*0tspKxD#GVqAFq%DK_Ppm!4HKf&4;moy7-F zozE^k4|timLHzfkk|nkKytws^oAhN5KKW*uJcti)VC`EBx{q_-8m!*ryFzLyW~zXVvoZP*)T z4}{qsqAru;0@4`2Qx{85IDt>q#h`5bV_jc)7=cw?{|LH?3+qS3X!*CrH^e?veNEnI z%iTa-eN_OUhw-)*I{00%9uP@eCJGP6VJBYq&WwoFxW8>Qf(T`&*auSJ4RH!pBSup(wdyXNO5H^(ko7B3ucg-JtzNr6uGX^Q zt{kmh9aRgVuzc#yb<;st7hhQ&T`N{^7U>;5(=mvj>ZI&)ySZUsR}2--Z*)HphC&oT za@@S6s%`3`LXq{XsL@u{yekG%>RM8gNhKAfgjnDgcTI?Hwc0Yk>0`8&+ltL(^bKXA zzD&+2x^~Dni<@@rv&7cYU{*rNZ%4m!C9@Z_j2}f6#Vq_$45Taz#iurj)2M5mNoY{w zahUS+&L9|6Zb!_Y9c#A+-pmi!D~_+z*KQIm)Df`tpoX$-hVbJBnz3z;s$~`&5yyj) zR-reKvMium^&6H#tm+E0)Utp;kOC8L5|>ghixw?(r_2KbdAp~sO2t>W8OtkRv_sMk z^&C76wTPweC)faAUD+?py*r-D-o#fj{L@rWHg5~H``^{@PI}4o5BoiAYlF6kve`<* zYvFvZHYI&}D6CfYnknhbA#ii?2Yn_soFC$)QcHksnBmy91CQ^AqyZ!q?V0@FtT*|2R;z~ zbl{SAvoo)PO+=0@X+)dR_LlAHIHDPWj{kHgfn5~c;1wV+dICMqoN>f71A+-$|)or0*^rvFqy92VSn#O?Jv}z7b8|69^ zq9_AJg_&r5IA0B(Zu!{9DlK;@dhXpq`Y~G=zXH$wS9n>XL(T#RrWCDX8tN+d6{sOL zsj?4Y5#tu-x+vl)tfm;#ouvMndO@H)3$5=|+AA}Ho-Lp*%UDfQ>AkwS(kahZ7{dAU zr*LaSgaV?kybE9ZS1g)`g@28r{}J)<_u{7ibF5XQbb3o`XF=E(Al+L#M{Cb^Qrg=c z1lkDRc#PmMm{meBp0Js4{x^?2X*{r*`@&U^pZQzFIty$umDCUj?9OhX?ZEQ!f%m3^ zq|xjfj2^}L`=T?ZI<8yu8`RdAhUx;;8p!(`cHsMN2UD(we*cm-L~DZaaW(Ww!%h40 zY087$`}TsXrT+asA)H5U-$<30o7wxqPB;GPeHK+<{r-{Y5T3hVPY-wFP5XDq?+cU< z$9#|-cg<^;B*%S$2akZa`Jv=!5b?YZo>nh+SHn1ay!g)#%xYFDRCw{A5Bp`7_H>*F z9jkj7AS8m&8$jeJfa4OOb6)_5^^Ol;Mt|e9kMdD(yy&C)pm4YSNw82UukeN!M|?aj z_-~Ku))s9GSc~EO61?`~S#+2aU;cPFeHX&R2a1!tMq{@z;Y{zE~M8=yXwaZ#rS8(q#=&&|hGb*YU^JPGgxa+`R)st=+ z6UH+*>tHPU2p1h3sT<;0kU(c%yn0_Kb5CPG>)40)94u8uOYK_lZD=jS-J@ARySlZ4}>b;Vla!cLI0oOR6^LCGTvzI&0bH)1`NI~;?ElffwY+H z!`=o1ycGCw>Y?G_QJi}y8j4Xq{Pdx?85@1}N^3(fm}!)q5bx0b!SxRWkJrf7TZx-Q zT{sR@L(`p+{Z&xk<+WH*5Zx*RPI<3`5Hx9{Fof}coqFgMnzOL{apD=O!Ci;O(gQsB zk;5_I*_e7bQQzh?5RsH)gh>ChV3gWS_k~Lk&qYON#P4W=sNIJL7x?XG5=B-RLoQI6 zL4cswz#&!!8BW>;s=P|P*J^j zgA6X2<^Ewqp;@_8B@Jn8*dcDxq72klC;rhraCvv%hr@*XLV73MI0w|jwJ zUNvsim@2Z6Fy4oE9*IOH_`M@JIx-JQu_L>GQv#~GxJ&HLL&euCPi=$+=W;MM=TomhlG5tavsCS;B#7~q(~0O4EWqz{9NChOlz3{39@QRR+fs<=4_x@u zGXr%dhpi#beytOQrK}^ls|&E|(?UAJfy+KkrQa9vnooNTIO_&S>708)A*6f|QKn*J z&EPQ8mx<}7Y*4Se#40weoSZrpL+kq{>UazO_osd05BMYvAz#M-cp{JJ3i&~LIX@jd z>g_o4Gkr>x%MK1(HD!N7+iYu0VC5C`)GdV} z0KC;2Gi5SyoiR`L%I@V^@ z@slz7GJ4R7lhfB0DHWF{f@rgVKjUx5?;Vt30=z}Je(88Yd{I9gw9a{zRpNH=An;oV zJJnk7_%9Q{Mqlz}8mJIEzl=v?@JC-pXZRdSJC#xldzcNRl%e-qG@>8SGf>ZtN1D!^5C|9l?b--dtW8S?h#{}UKT$>lrge3$Q+c? zABNTD>G(zX+E=lG-@$=pR>F#^+cEk&k^bC;nXd<-7xC1u)8%)CZ+&><*G9e zBvID;b#LVX_g MW=}RMvVoWmL41#fc`Qm+?=X5}W^<0}%%cS+EvT<8+YLx#}A| z>cqRhNvH2S@u_bH!9wqUlK~Wz{B4m2gZMH5=V-?j-^S)@9ZH+L;vuCy1>aKPTi;G` zR4r&HK`ii=bS(@zTdaXR&d}C6;0HJH>2IUaa{S}B`bdIcM&d)k<3iY=5^b)G-;IO6 zO9QXcfbUZB_KTydloblel-BW)FuqZ04H-pDFbfjO01^t~A3Akl1m5Kl%oj-VQC~EH5eB5CGLAZIyJ{3XBgYT8puDr z=PRS`x7rR?$-6YL4mGUEk|5*dK5RYTFFdM=C?6m{=FER$ z75{fM!<_yDS>3w{1}|`@94|} z|I-z|B9wYpsBmKE#kjNzxUE6dL=xqc7lDhDKPB0_ z5s(UhM_6{+JcXv)@sRJI>iZD4DmFnfPBlyj-{s3|NMU=!=K7@##s71Rg8D!3_3sCa zddXD_Fy#PDG{6K5YDZ1Q6+~MuG{!${k zj89*BCs{m6Rt%7tBz83(xJw#gT2sU{o0h+VtA7}f_zeV#(!7w}Mu z+kV)hTYvI~#7G#n%y(cBdmQjhEJ; zxf~B^5owomqd)2X9wBZHWq6vp4ekDcaVjqBr!IHO**Xzf_CWl>Zqu1}fTkP4f9bJQ z*elfy5b(RAOH7Pe^l=yd{3i?g5~p2V zk{Az7$z3CUO9A+qgJ9J(L+&{djMdKq#evpyW0c zKOLWI9}@Zm#HWZHqkG+x+D2YWPT1g+j!0UTy>3Y;zW_*}Za!fiUZDdLOs>Uk_}*DJ z-`Y^X<|N(`_BxsJE>M-3thsl`gwZz35^aOru1ZtdRs0%{Wj|7yz`fE*yDG9$w%Mej$cwB zr7qAuLJpoLFD|ji^w4=2fh0AGFb!J`OTl>vB`3k2rFkA8xFsRE$sUgm;7j&ldarO3 z@(3vd@s<7I9RTS~1$WkgCMOExq4i~0f6n#TAy0T1V4-lrjT76Dola%#?K$8jFH( z{I7$vj(6Ah>_vVwoZuj7-M_l00nuc%GATn@nLfrG%0G##e~sP{E@}<+VCCO|on#=6 zT%Rx*)HLdTGw>RPsINiHWYA0@tPEHV<-hP!X(=^i_v26=Kvvl^Bays>+9ifb^wC}_ zevC^_JrtLB44V48!Xa;%UcaiY#=sJh$z<2z=-+ZRI!M&dgV9&u$-kwAF9mE#(4`SF z?n|UO-u@fW4B!7P1@iIF{WePfHk_lI9bTc_1H1ud?FX%FjYKQ*?-If}zej_;R`h$k zra`i}2)A4Id-Bwat}?*Cx`)g1Ta1AH^Bxu3r-tkpBsBwE+uWrM3_Hvasz-dNlhzX& zX1!7NX`qGd1mRKJpajlKr9?T^a1(`Oy2?Ym2TPt95pV@1oPzK&;CdU58kam(&(vP9QJ3w#J(;n4g9t6 zag(PHTL3vyGIKD$0hmrR5WuWIqZ5B|ngJ|T>%aydc#GFVV1XQwXS&(V&ObMREvV~Q zL9ce>jUD@e*Y>@!9ukW`xRHfE##e8|#=qwMp~JG)1W`ggYlh@@#M?zZ1SY-0&p5O* zC2*HhaZrNcrFJ}`Ge7(>NYz`@ii}hnO8Z{i0oq3>-r1=SUh7%{5@$NdBM-zQPj`+$ z@z~Ru9`&R{(L)RQcNWr%fEr?5c<9ZzkzL?UqKJS4W#*nR#a*|UYI=8GmoUah+uw)( z@7TM99G`u$wn@boIqdKy&sV=Bwt*?965Yag7~dQm?sc5)3_-n@R>f50p9KfJjBmo% zZtet|V8yMuurY17hR~2!5%gETsYw&RL+)xz<=7~=iY=$rvDW`WWA^W z8){6|5s+rp)ssY&oNt*6nfpX33+3%i{ej-(Qfi_WJU$;oa*m6nCP43x{)!Hr4EpkO z)qagRlyAWo|0va(b(KRqdWTp=tq0!>DKEjge{PvpcROiidbnXnG;=szM588J0jNUK z$yW0H{K~NE;pr~Dw|ONw-?gB?-5!rx@$_X<#w`UvUE>Y2=_iAfuQxNW#M3cZCtyO*Q90nt!s>AaVa+vcjPdK)xdTXQ5Fc8dSZYu#E` zWou?2ukbVY)(Ygem5X{90TdjAo?NX1LA-E z{dXX!uYVAU7U97U^k@p6{y;zV6Av+Rf*@yPJ(X93crTn@u~|GA0O; zGvKNqWMdH{EeMP>l{ti;;gU;c|LCd=Yrdttn^;4@fz|dP9_8b|AN0|@0Z2+C<6*rJ zu1SQek=d}?r|<}2fUW`-N+3z;p05^H3$dD;pmOCw8#8`K$jI65o+_qk?_{fI(ss3^ zeueRUyi7%Qjiri#Rs&!R!sZM;V|awbz&g0NMLbV%!waX0xx=P={$F0EE@7aE_@A8= zmt79#jI02#od>ymDb8v(yPUjx1P<>Ov(jTln*X=U2=l!uB{GPkLijz$h{9}ZB<_%4 zz>yMe@7xk|Aby_ch^Ak2;X#g}zy>ND(GX1E>gW?$3cjKNuuMpgg^Qp5jajCJdWIfxs~4Kf=|{XyB%MoM~{~^t5wo;yH*ckT0`gR|?uf z^ypTR%m6+H26m+q4{$9p?SLDa%{SbIA^hay@C0Qk52p5u0q>}4Fua1n)Kc*6kY=j{ z`}yIqavDvPYW+)eq4iV%K|NWA-m+qCHPJdLX0N$7eQp-J4} zi`G@ZJ+heAAXth*9|TMJ7GLqDrSr$^+y?;jz$aPr+A6J5P`}dp1Q+RPlkoX9E3n~Ew__K!{`TY?mUf# z%Wn(2eO!nPrNUdaj~gUI8?%0M{;zkU^xj`91M9nlao+#-PJ~E)1{q&)v_l3#3Z&pUCGvG35FkFdwNRe(~Ghy$XMuig5b6mO#Woe3?L|;(wEH{VL zwsY%MXjtk;5Dy?qIQa$!jpuVQbI13cYV>)h5@HLa?y`q#S0Mv3aXuB&$ELZjFEO%3 z2`+&Whq41;o6o`R4+Y=G4N;?X#U}UL9qrsgHA+rePi|3k1*s$%Xk_4;6M|S)h9Ml# z{D+HsTaC==&z$@}&LhCjL;0yBS;aufgE^fBP+0Fe+FOGn5VCV41JDrk8Mih7&5Atf zMr^Yvr>fyTL9;_i<$#~-5O*s8#nX{)P92DbqbIpBfoN9j<>Qjh0W;VdskBTM^-|uF z10x#Fod`tny_M`79;sBftk6%d8LEo8d5NkOQ8Xbsp={){f8UI2XT4nirK>yDuGbnp!<rr$uiuOd z4o0U@Eq5*$t$@df5R?Lsxglt*6fEMoh7gn-=5sKW2OH+qd@lx2K}EL(!NL6+f@adU z9h@l?y+Hbh0_;U1cQX_{pcmS?U$tm7I>M#v&}LHnSci;qUYOwHe$t_0c+-ZlnXExD5Ak4>Yk4Js!&s^Nec$5IGuf(H5c<2*QdLo%r zR@73nQ@k98Ztc*T4*4UO+D0v(#Vt%g9NNcu63|5rX;}>5)Nof4(I^GU8iz5GP-5Uc zp-I|&NPgmql2AH~U6BMlY!A0J2@QxG;x#serN|69V3BC}QD6>|HMJ$7l(-1z*rF11 z03=j>mHiJSW%wZES7iQ2Ku#_s8I2E)_OyVtA-}&Bd|A<4c`}->6&zZ~6R>;44kOzo z*d1JZGBQW)1!ZjRP$cC-6TJU$YU_*3W^h9p^c<|_3%mb9tO_`U5_aMvQDIi+!LG?nD*Af{4EGlxA57a^$Hf}Zn2-wa zuxSmQiA>@@!V-~NYCs9vnPOg(KdFwP{(%&BuGWACh5aq~e1yG_FDmwLLG*EU1KJhH z`0e8@1bgdKPG+3+<`|=OGg%D^Bw>}LGrhP8%lQfj7`pYE%tKG+4 zPeTjoPh6b27s`}a`Y1xcY-q8zahEtU{9BcxHONqKXBdL8po@FC7cv40n|nbgvx`ej zmx|-k(V`Iqm9|E5J0j2=2r8SL4H!op!Mh<29m)^&THtLIyybf9!2cG=kA$@m5j+Ow z1F+Lku9g=ZVDp(C$ns^(J>j&I8)QVoK~p3RgHrEz0J@B*T=lqAQOo^pM8n9oW}s2< zSeAjt0_8Skpd8ijU<4DA>&ifnYK{_%7!-GTXqe_%sX%bs*c%;9 zPJ!Zmf);><2>V3VFg^mJO8X()6~a^8^L@~alqXzX;ewlHKP;eI3-06tr!Ke?h!{Zk z6>xjqkg%%Bg!6YwQW zL*(A7ZUD+iT zz>~TNsn`IVeh|7SsoTg*@f@IO9|sy20Wfzk8Wr^coF@`+2;gnfQ5gwP%^b(QI2e_n z%iPt$Xc71w{$T8@_r(t$eHL0xJR6=V#+`&9FTlJx& z_0@8bL(l=3qq>G5AMoR@p=b*c4Qq#^`KUK{Z8-W7N{u6c2p4dU5$O3|X^=h% z3jLe_{w56MerqPdayLaqfwZq;|04Wu|0C!X=$Stf#&d9AkCXuN_#ZhYl&on01ySoK z3KM90qaEBUCiHsJUjpX~D+*-Pkh@A`OMZ`R`A7J|%a!G$IQiegmebtwd=xc^Ox&%0 zNSg(J=mYXz{u17E(ac|h#YeQM5dNe{O5|d%%>>_0aL4n}JXl;}0m`8*B3D*`A|hvs zB#W=~-o^^r{FgBK*i9IE61TPhl}f@CsPB9MdRu-=`1myU#3;nXdPKg7=y}A(M-UMW zG9XCfb_sRdN27ohw{zDN?5g8T6KWw@_>a}|Z?N! zvl-=v4g!8i&_ILdmjDM=$1p(Lh$1vr16MF5#?pRtXAyc0X^1*E6doKyM{{$> zqWtg(Ulg-hd>ZV016X2anCTMNI2Prkyy-h$xwev6ihq0m^RYp+OAc0oI*_g<0B|{% zUxM^wU-kXnp@18sySxf2rd7tu?~DvncOk@p`7+T*rTD{KE@83wviJ(+Gyc#sqDs+h#YoQ|Fv8kWG$Q?Dcd*^>KphJ1$bAwpCqV#^%s8h2u}B7z8UXLt zO3~n)4Q`!10M2ERtV*T2v@(I5FDHn8nnG=Idz_&c(2`S_4vgx$G+!+@rVQnv7q}H^6R(5Rg;o>rvRZh!}<> z^>P?=H7vS%0(x@9I#;wk1~f40{tLES!UDMbkxHRnJ4C%s(^Mtu=Mt}ye~=53AFfK= zH5Z(a9sc8xI}wf2ukxsh!WhU?0#85C2GCI$%;XaCT_TVxxU9H66H!j+<8B(zvl;wT zq)9t>1^R{~mI?t_q|%rr41j>Tm?iuwXw&UzGO1q+f=NcrRP+@43#jL=ZG!v1z8 zmEuQh3n!Zd=eV6qn}imk&$;I(q1-Vm#NRq@9zyVkU!1}<*EL8b(ZPDwIp9O%>AW%e6~oWeU?{!~!x-{odaMahv@o$y!Iv_8q(_jb>M zcTPn+Q|AGlo$onz{w$wc!gMj*{I_rl95T0rxgy6-1Mz=@+d2(xhd;c)#Y{(eblOwg z#Odf6da{eVFdYq|uRp~FJciDf-O#{(HU7r|?=*zg|0R6kyeYW7I&>??3vp=hX@1HnRtyJdSHsYIC!_*X{S=mfC1^yJr%m=&m1~*~`$c(6yoNWeLKtJl_ zewcxV)1RNviVic`L8rL%ETSiD;sR!&z4V(P z&1a!ZdUrGT^DMY|{lLXpW~0XfdpY0_g8^=JrW@SZ+2{cM)i`d=9JKfm5e6bLe7Ly8 zsQ6zYU-8olx%sBB%RyF5@e1%QUk0Yl!xdHk$csO`q9ZE_l*@9;?Qh(h?K5kdJ)b3wC?qoU2gs)XT?yqum58lFj z-0zD~e|YQka&b#gURhj?UT*0UfUU{Py|M%iWZv|`L6+L| z?esx7A&B(};~~uw!o-jn^P7Xa38SG1E@df7XAZ$$_^Qc(WCH=2g>=z3OKHnj@HcqK zAl%}mfNprcvJ@E}iS???ax1tkfH7ID`#@nQ#OrA56yhMm+ty6RA-7b|g0(UY?3PZ5 zK9%0v0i@R{M7X#IOHopgzYUezDg5c-m}Mv;pp#_HNMLb~EJF$O4hJ`L8LADvCR&$H zI}93MK7xh+z{!@QWg&jp!PgA~fS&oxaulP^g8|6o+?&f$FZER*E7FS7E&wR)%aJ@x z=J5(TpSCH;oWC@-p;OR!xChITAx;1(;GY?8FF>XVxdhn_cmEZzsoO_B(eE#AxvSD{T_4E*$X#EFmIRPQ3Uak;`!7eQtOEWezagl7 z-0M#u3w_$dd7nU!DM^#uU%A<<5!-jQPs!FTJ_s49->AY{JJ*sitJfPKUD@hWu{TJT zDqXj@dVLVo%;DNrqu9KO|MS6Ut*RkQ2;f;?-sr)l%F)XEudJc$xuurn2M<$>=|Nim z0f2|T9?q}^mCEhbgq5bqO7gzHXs)hdgr_uk{*SCO0Rjq&TwPpqe9B{Y_ z2)GAO@s8KPGzSy}uXxwe1TTe_C)7;56j+vE-n!_*juv!I9qUwowG0*UQfg}d5o!NBG^F815@jS!t-D|JgUTf`lz3;o$diVCYbFR?J81!Ql?Kyd+ zL#0{YVOv^RtMZ#e)URcc{G%;3H`lW1jCZk%$6jJRVXZo7x#l$|Iy(77vX;^hW>i7mj$tpr#W-Zzl<*rxQUS^4)egV^Y1uSlzN34E@J&usI zUUBIaID6{j5lQP|&~8yidc~OaER9PZv35O+K}ft;RIY~)gYVtKvYyRmr^N7Ap(Cwx zi`B2PjXmD=6z?O6M`x1mPcmw({k$=UNcZ?%Nr9_{-<1uj@!?m|=QY;W@!TQqTe!lz zgn?Ws`fOmIqdOWmuqghPTi7nm#reBoOOu_b4jKum~0E(*(gIw4Xv*-wJ0;( zqPQI9HmlfN&d#!3Vnzk}>}ByfL8v%Z!9Kvfg&Wz^%v$r^Mi$FD-1G?&Bul|o@jA=o z$8BQJCN_q@V-sbYU|U%#KH7xfSf{wVi46*R4)Oh_j2@fW@J`+SOwJ(bk;5Ll>)&K0 z+052J1^m@3T$|Y_ov-^u_7*n0!#(JZex(w%+`{JaHoN$33yU*Nal{-VQI%Uiw$X~i zB-objDPs_s%A=0!u@z$5J*78-itDnHlomY8R#uua)>gIHTv8U;|A(Ry+H9bKqL*Mn zbJ+im)98huCfkL68=KD4?V?~CTh^%Pj1JCjP;5iV|BOoI|AWin2;J zsBeP9e1BwNnB1boILPm#*~(ZFuEHD>AB-xD1Z8meHKltvL?W6h@m^U)_D=RRf5Rm{ z+sP7DQ+dNq*bZPbdWVgTrPk7_1_8a#*i2)YOiFd{uv)}g^;b5Dzw8wM`&X8$rjOml z>=>F6yVLWNsA6C=pW0uKqG{rv`Wi&EAxXH)s7ypwz$>xi*|HO;iPxSwU z{hPn#5J{i1tUqJ>V=|u6So6ZC%*?pKAr5|qbqR+;+giE347TljrO{-%3E{w zb9R!&ulG!}b`9R`)M-RY?)1ut=h+hw|H~D^#DE<=7D|^JY zFWF4qh!OZDxNf~$7;4y8tU#QvVR^As`*zzLF=-kTFtSN|MgN0rE5^WygX{_4G!oG z{g6+0umt9%<>;)n4*kAxa1`QTq#4UT{z4Te1Leo!^4HLg-x3{80#=LRCs{w8|Hjgj zm@6sXCKJnTRyrL!Bic@~xxPLr#*O<_`qzZkorVTiDR!S`UC0J|^fcCQV4gmW#RsDZ`vwhlMvVW)w-m9|58JgH*6xH>lxUp%0>1WRs(RKVX=Xlx?&t5Ef)!ASwc*eQ!*9fgtOJ{ z7n_=un=t5}WsgOd8~)Sz#przY8~pJ8CO$li+I%K1o@ISHf%&JlG?4QK|DsXLrDnXz zl_K^W%kKEGPszU7Ts~C1w{` zHXmTC$-MwI7cIW-2ey?TpDV&Ivb9kb7eiA$bQKio_uW(ejbX*C-;2LpWaIgGhq!-{ zrLip{`A3+I=0F%=)@8n!ca@FeZ$Gjrk+*9xPnso@LCxU-sqeAOF`BOEp zedfjAP|kV8?4MX-DfX3{7Q`RPy7-IKLszf2v2BZTG)QyW73bRkj2$-1Nvbnol}U^6 z!@j*AMzaxH3D+O&+Goge=rfZ3z_KqTQ$LL6pB;Vkp#2nUtxvf6fYMsubM}V7uZ2J4 z-g!N9`;5~U^qNor3&V#6P0E{{-Kpc@qJ3q-;MAOqoEr$LaNkyXxo#*=xkTh8mh$9S zw*~r-zM-J##Nzav^3g+KF|r`u2)EW$1YWwrD^)frY3?vMur9+2oF49wbtvvUT1CQH zfg4Jsx1i|wGi9SaEfDmh`@v6}>T%70}%#rS+IuWL##QLw9?0*!EVkPoHyx#O`^Q*$^Ea z$!-+8FS9P%CS`|L9KX!uAUv#(LChAnkdEnv?q@c_*x5Ppen+XOtY5j5(xi;@im5-d zVQCK?RoM)QBp;YOuUt*r?=_bUtmvlI6?iE?MYb^`HuRm8@e}l_;W_)-0-jVWz&b9kIF6 zo%PbFqISM6lEP6yzQaT!VJmRxoS@e99=LcJF4e5$u zX5)c$lPQY%W=xxXL=4&f9c%)@w1wFa`c2DF9D&+E!3hHo7@e`_vjL73&syg2?*VRg^O#j zNi~Rt*I3tp5?hnvt9K<%7>4`F_?L>tIjA^N;vtW!ilc~gFVJX-|qHAPbA8A(p;WZp; zQhs#?W8i;`fggr}Pa%!Y>q?`ixK4Xdve1AkUiRGlh0B+NXVV}mY-FbVW@U}HvpS6a zyWh?CP2u6y&C0Xh_Q5sr!5hm$5HjCO@ggo)6^)8*H`z^muzgto?oIQG3yqkbXN!lZ zSzxo$@0hVpFHB8L1jnFH8u2lhHmCTi33Iky+-qV}VE1tT}a!R#5lwar#A|FW;t!3uSMVSwzNtuOY-wlv&DckEh z2zeLO!tyoP!*VPev3Pia`Uu+lQF7`ZnA~wpqA6Iu zu4KBjIhvf1F&#~?*DFI^g;M72u3xC%d+gfN~ zrQvLo#=27!-eA*;ijOS({bkn05|eAfk1)YPk&IZ5%Rfd`{rd}S2f6Yud`LE42rg2Cz{`4AaF6=wt%cxGqD3N%RrIhw{UsqC487Uy( zqLf5!5|*QrHP)m$;tF&G@s3h?lvtbm z3W>E@Oebt*thmmb$2rS2`*@zO)ZF6H*Ab@8i@|nt4a^(GqtBGW8=rnLWlsgg9aEI5 zI`ZY_!sJo0|Dn%_PgmZYDK zDZO~KH&49K!n$ehD!at!RyLTAJtkgiW$Cd`9@SV8g);+ot!Te0dUJp9$gc{#%3g84 zm5rRx&9xx@lPnv~Wfz;ZRZU9b5#ng@U_VpFGX~>VzW0`r;c8VzcqLP-vdwc_Np&#m z<4zjI45N6d^QQ6yq>@&$a1`8P-MHB%%5O0_Nt@dFLW=^29H}u4*Oe_eArVnuVro>r zcYU}n4Wr!a73XeYZu-$FthZQ9&_%pR9+VDc=Qiuq`TPUExFsrXvtInfVe#c{XaRLc#k@Og0Ke=KJMO?V+vpU> z@37*S&po|Ijmp0BORddd)b7<)VFsMrq|_c3xp&zY!7CkdS!zzBvfUv9?y&)JJ0P&f z(}vhRUgbwGOI{3zuQKlMv)4?%2fJSX_YUh1oY*YA@yh0xE3*F3FumNY+;!>e)>W{i z7|>e}lLc6tv!NnjYxY*Skr$_a!=^#VFs;9_o>TJi4X6LkfQL~ApCAMM0ro7i-O9JF zs|ZKfqwvjWJ3vSK$bZEhMPO62RGGhzlxnKcW$b5{cHUJg#KM2G^U=-9tz&mFRA|d$ zV9slMAA`~V8Mhc?g(-QDO}t=bgABvmY=8CoUg-F8oA}ZSgH@ngM7OcE=4NG{w}Yh! z-L$~FZgsWq6BpPMp3tb=wpHz;@R1O^e?!N1urVp5e$%qlqTGT#<@$9xNP1yl&24O0 z@FthGZK`xz+2j&2_t_3G$BkaG|2|YPqfJ=vvr(il5BZ%9$}4xT+uzl8vP-Wjk8<7K zqr9j*)BI6cDz2{B6R?WB2+NXQWw|R9f?cz+RE^yQ_rJ5JmVZ=^H@7SSSEt42zq9RO z2M%fSjQtnr(ajrxR}K2yH+(Sb#5{44>m4nqU)y?DiqSyAK1T?9VvePgJl_} z)){?%vMkC2w@6jk5x(6mZYpdHOB4NVEP@|*i5wfYvlNJb+1POIb%}60TO5+&x`A`u zwu#K@Iw*?@JG&CM2CoclI%rlRV0NLi!^P%MQ?p_?EXo`#e&$t&-q*br$LJzDsVO1u z!O_&XUt!a5TLZm`|7jMZuUT?jsYO)fscRI0bwc8;!VY4S+b+O*DUjhWkB|vIOc(5{7>XA-E_R0WjGTVRV`Vf zt7DKh*)GbwY**H+ZbPoNZ8kQ<8uNpFUfx@j5w-x69xEb`;5_jH7Kl)47ky5vQgw)) zwyHKnI*@?xF?8oVA%6Rl`~{w1-~J>2kf+$hON>Wz!xFKB@xC~`CQdUxTYlN4eYkCv z-lE%cODS>DuDIYdi}H7yZ6AfKbcrlDOA5W~=GfrZ*U2&m9-vz_J3eIZR}FzQrsdthw4M{0*%+J0~~OCFja;XLGD9qEuWHaRS7%08D@m3%(RvK36GRq2H_8Y!VkIRt;3 z8713M+6qT{N%flYtbm5s@&b}3^iNN?rsQD;H1K#HWf!3#JSM$W(Rf$*(kt*kbE;vP zk8bnO8C53VXkoHPDX~-Cf}GcEwm0&8_3q&mPloV81|!a0%H;u=tvfo!yCHnC@fhCd zy$#NrU)WQmRvh`>5z5ozo^w>fN-J%vwDGh`89Ny%Ud9_S`3Z&C*ikLDbwiun>C%tIadBhhbwq(K%5 zd&z=%@-qup!PjJOv9BXf6l**3aGfqtBXtsQb>ze2Tz)^Pnd=vC+KXky-h=8>@dPc( zPgp4Jh|d1WCSr^jdd_x1=&I5&r0L$oU`Q>q#lT_bh8Zv=mzmKrWZ@S(v=A~}D6hqyadL`U+Tx)8L5 zB(fuUh4w0BCvhQ?ySURW>Z5oXj~*|;N%ryzxA-EOzpZNqA2W*ao%q~g%i)EL#EOz^5m?Ri!M| zgwv-6te&(s+*ICkJW!Hduvf-aFOsa$I4TuwxoA6{{{Y)FI?`5rlO7M)gyr=@czpP~ zw=8y5=0oMaQ)9WQtaFIZ;`jiTU(*=JS1~>StJCqkTkm3fqcYUK)0QZW&oS4wmL3n} z4SR~r@z2y32hO?Js6^T??bFD6Rz9H337^IDGJKgpq$ThyzRW3}Pr$B+d~qUyXYe0w z!j-_^;WlXg7)H^_Q2Fa^ks70wX<36;IpMvkbax9!BJa)4iSAwaKK_wQ{M?0q$)9kE zH)Y=Q@kd-<<*d&`EqWZ9iyr=TA^o!BziZM0QdvWza>S0UIWA4^iA5%>nVl%4E`T`> z`i)C@r`#*qofBMY^6j3yM1UQhDlf$B3jPJ}Um8Cpjko_waSQf(1oAbNsoIY)~*pyqv^S zc%?_|N#b(uRJBgUJ_%KeZH?XS=ESo7uV(2lkPbG*=Ygmg#>Yk_p|)Ua>ZpPZ-JtW4 z*mYvFE~h$+U20U~?ZTMMV+M_M6mHcc1~H!DFs4(?uJ}Sj3+q6J6$m*&SMjLH@HMuySfJ%ecpGt2si^+2_)6f44kE2KMp*C>nDKaz}dhO;2dBXkh$=AGT=a5 zF8~gbrDSO;h=~Z;3tR)-1ndH&KaK>u7K!2!JW4#;gLmyor6y=mn`fXx8~l;h0-wjV zF47;alTqq3Vq*`USh^PB;kYJ@0G0tGf#tv`AmtOSVkh7xT*m$qFCkeOV1RC($47x(x>&ZtXJ_Ol@-wpgIpUr0^{@iJauR^pF*QxB$CT;| z@EI!%MJ6#RK&wHQFlkb`gw8=Xt28s{^{`q<2jCf;I*Ws*zdi6NTOE&6DO)ya2hQkt#%VpiJMv@K;bT%MPZ72Z5&6pg6%YRn|{; zkOKp|sAU^uj0%+wkz-@g8dT2WKD=)!r3*(~w1h8@2stz~Kz;Z~S*Ht9!=sQ#pc)CQ;oL8arN?RM(R!>0d)21t}O)6kI8 zJ<#-ikx7UCWK<|bO<dT``sd4+u8cm8? z$pLuSFg4vkSu?o<%BV)1L9*6Y{->Y^BTfjyvq29*gN3T}BeK`qQKi#CQ}0lm3^_VF z3^X;uP?^qi`#b7UJYYmW9#%?`==F&}B>H;{1%Ms+5|2PeQ7Ual>qLX5j56`y{g6=t zzQB@&hfPx-V5B^3SSQ3;S0Ulm3JvYAhSTdc05tvOARi`arDl{nTGmJCQ`Jbh7-l_u zwD__gAL{G=iSlG$D^Q{Na-gpjzDB}Ha(;dcGNZ~*MuxE}Jw={0iL04UMVxT8HK)lF zCq}6Bbl(H|-=P_3{U|kjrc6h?{gs?0Ys7PDTvtl9d>l_0twwqR0#Ay0c1`AkTP}UL|WvH3{m)YK)ykm0p9T zdm4|_Dr=Exoci=H%E7^ps0F+v8w_34_{^1?-Tj)xJ-|G03nvSZ z>DmeVn;%PqR3cc#P!)|ThN&2?Vx%86U1Vi5GQtq`6@UUYxOPY(a^40Mi0d_*{CEll z({(@GCsfq%wUGA4TM!-?fz2WixBogcv!eHGyy z{TSBCj~$uIU%?pvbx^#D{rsp)_9IInEJYLc^alj?Qn9xWsbVWpumf`lHK{{N@S#)N z$52Quq18o>1ya0T7{ngj@1b7jp+%_A-P9G@SUC@`s|S9o+YTI~`N|a09hWha~y0lpzXy<4wvq?av1o zOYu=)tcpEUoTTFBQV`C77yeA}o_fPg86si!Mn6`oxD<$B={q20JV%W`U&SC`>MTs_ z_@!YE)=Ka#jwE@Z3`~hjbwCb0(19TzCY7GLhxrf0(ipnIq#Lo!H&DWC z=DQMy@4`|k%7Y!42-waTCvNtlSK`FUVkO2Sfem(v69-%3kiedq^pQ*A#GuAIB~Hxg zEQfIks6#qpI2RF*m`x$_{lBk?@z{|s@tjwIi4xww1P!)@B49hv3|w)Gn)v_SWSO|1 z{VV1K$^bYL*!TzL0^ljMKsK1H0o8Xp zaMcTp&j8LsJ~M$kmoYvIcyT%7j|1-^e(4h+DxQapk^+Ep2vM^qfghnlbLl=d-WCAo z{DtvCpzb-w=K;4r!}xsQfyIn308Yd8Lf{SHQ@~q`7=Ic#3HOVD{fil21YCsAWG@CD zcn+t&pP?J5*|Wd~+*ksfhJ=3so&rt=Uxy0EQKr;)~EFOC7&BcH~fMw$c+1+GB2k-~u_J7tcdVW*KkMY;%}9q}T8>wqNI zoC1*ai{1l`6!kd6dw>sD&tj!`K{Qg>JbEECQX?W@GLWX>ngq}aAW64N z$Iy$Vk#?IIUM!7t76^BnQU&6Zu-Fv^$iR!J7>OQd$1_f1M-Y(aHmWE|x_yuiQZBwn zz&Ob|>vBsO?*`(#T*gVz${xpfPvGVp#(M$hH3KK%5)I3#O4iC`E>yK|}%Lff=Ys0x%2} zNd!Jbh9q}nBO!?p)d(l?;UY31abXVb)2x09;p9VL-B=oSxCRyg2cu$zz_W-y515H? zdO;6O@$vs3OYTxct#ksY0cIkc zay@Mx+lbrhq}MS)*$_^VR<%Ou#$Y!<;vsqrXi|=d9t)Zx5lt+jQzz(+ zbU}O~1QQX_#48vkAEJq0w9~{h+7lDs2!cLAafo-c)5Jg8;}Z{Qr-_dQ1o-0x#Kcr$Af-~K#8}#CVlEmyGKCX=Y0s2+Ogl|{rad3xHSIL|48`s2!%uFs->ZaUhIkh>i+NQ zh(SqG!~YP2g3S8`O^}jwXdf{uNeZeVMg{rxb7E9bJrIvnnR}lSqmrb3hlo*0lIb8Z zD$MD)CM7c)_i64o0ZEYzLph|n-1>~(zETwM32`z>ssqv(p9LgMGy^px1#rnx;-tt3 z2}l_K8<13z#=Z3Z<4J%dn7@dMlE8iFF!2pZvg5)2e=UJ1k|frQ;2p#D^Zc)dF9`qS zc{N#?+!Hjtc!{rVCJi)LmbM^;t%xef!rGd9gg zmr=YqWp1RoIGsdV8iT|)D&EqL0=Q98>o&v#_R{uF$KgOljo(yo?Jc_;2oYD((13c6 zWp=gP?j0!viLtaLAQ4W{u)txkqheN|uLf*1KXjX)XB+9>RCZKWgLh=$4@YGe2oh~H zyvqc*U6J4A9e{e;8g>xc>BoE&Or~e~OPtDDu~pv_K(44aL;$=?o5K@BEA1-rj>TJ~ zc26!s zUvQd%JkFWwyWipl@)ca_Y=?B{KYvI(o@w?dtYbNiQk;m)#hToBdz;}1kokYK7#_=HNw%>CqvvCwisMW z32&Fe+9QS9`?*Gcap_4{J~CHo&aIvK_VoF)dd(oYmF^=mpYgowsHT~n#TE2)bgcK= z*3RPlR)6t*n_2J{4^!ybJ>XXx*{=R8B)jCVkgOHu!263=Y@NmLDu(o&sN&SNitVw5 z;NQu>5mQ=5|6#8V8~sZEh`8Q)gbd_qulWA3isrk260;h z@nv{ChQFj`y`$l6db9Ts{2Q9E-(?r(;z-UXbnfvC8{kaDyh+|p6v``Wsm^dSkClIk z<+6sGQ?u5Zi?VXlv3Q3*27{6f&T)QFeFLkiu;}mwTvnMpNmo?pEHz4ioG|GM9mv zMaqEZa2`efMFQ1uUvuD0ojGMDGU!XP0G83ta?bH&U;iFTb@!T~Pc|9;(^n#nKjeRU z>si+`oZ9>Pb0fp4f4{l#IxXrq!$qk(G@Sm?ZyjuFO+JralA428s5+LO8+wNJV+Fz~inH(;d?CYJahu z77S>CQFPY8aF|Nh4vhD?YKs>l1tRWp0G13A@6ihbGoXU{4H^djpi>6*3%=IQ3EFl+&?85+RGO z8Bz+{Xq2%#6w$H9bZ%-JT{<+7mK*zWi7$d&N=Lq;o$yWXyYhT45yRUEf3G>W(nSan z`~)qIMb}3Aq{M+lXQd>-O}Zl`4UW^BDcyYsv=i~LMG=IG$Ww}bLIYBxU@c8aoyK+I z=|59v!vpG;HjLvebWB=rxKCH6#lvM>Ef_ii1pFK7 zwO8(3m?EfKLr9Q#mbMO!Qu&L)G&9YQ_8#_`&b7UCHT4!A+1JPl(XYBIPR#9ya~U)J#c}j(dbm$?b373>L(iA7uHcQK06KC+U_h-+O;inhUSQcaUaox=zsfZF(t;6Fe7?2@isp6_ zX>C+ahCuNZ+B{++6juxx=?$*L{=AtGGo3KX0);elbOm&ys?7D!RIxF$7Vw09-h8BD z?AQQ+#WZK!Hi)E-aX-MxiXX-&1L&#OgfG0V_25WeG)D@1a%2)cJK^L1Ps)N<7kI6( zyM%*5qjxj;ie}pUYG}*_l!uY1Lfm&JyhC4~OY}txJBg>NQ=jyK5_!Ci=wV^e!sYsU zOs%Bx6Mf+eI&5NWIK_I(xfYn@C+tXdy^{I|=ne%CJ43_!igEPQ$^BGY z>ULFJpS+fXlXS-G`4CTUzFq*abn?{612~(yP*Voo-p?(O)rD)aa4)C$ia96|ym3Cc zm7N4HffH2W8oe54`@pIxT$QVg&R3jBA5INQxMp?1loDAr=0$31t(s{5fA!A(SG{O;PjBqR&A4z{IJD4h({NL?(Hql_bWjAFBBG0DI7Rf%tS+dI&|_Jt z3fQyyD$qB3Fha#Yvfl@1>h$*&cz=d7^W+SJ61y|w4ZYHqwsJbZK_;k)Y>2hE-t02^rj%sQn?|5>xWl`6{qweozSr?`wBp0$Ka>PEZG9`4kSF3}~k z3tnnU&u5QNYNgH*dR&b7_woDZOG*6V_jIX(Q9PE^j*dOkVz zv{3gl>&cuRN`qa@Un%gD`Ar3coZ+Ki49aCBZ$4$#m7Ow^vchz|Sgk5&VJ_hLVZFr?;R!b-n`Dko_ibkZ$~8)9eMCdhqs`ZCRfGsK9>bfFNJM_klblcy4cD{5b_+KkHS zQl#uI!oN*Za+^^|MlJjl#ENqZYg911V&#&%9DGc3@+NY8SNe5c5(*e=UKCubh{*4! zhPNxGF7r^s#fqGw04*G?C|c_ZTxcj=w{A4oCxZU6?!5#bk(1SASwmO7B%QSC1uc)t zsG}syfmr2ea^iRgpY108!{Q<+sUs`aukQ!&IX(TsWY+}8eX~{^K*KkTfZp`24Svu} zS8o{av0m00QUq_4MtqJA0&I;!gdZLz%lF5714A@B*Z%Xz%8qbkPwVM$LF?0fVBd6DinY4b>6xdHgHz&e( zbo}O)0Xng*E~Z6H@e*8w0DJ<7LRt0I!%5-nqAhCtW42Cx|C_f{X5}qzq#3jyjG#sI2e?fqY>k0^bmi6`0tUDJha#U@c)?z)P~3X+syLDlK)NFiQu9ieTta~yLM&(V~ReBm*j@X>ytwEd$LxI%}pA}-iL zzh)x5Sy8b)0pJL2-jNQ&Y3$B-a0Be$8HN2f?ri5ewbO==zXzUvx+^xkq)lrAvtIOu zwIPrN$PF5cGVs5o-*DqyR1yAYMeDBP00s2WC&>{W4lN%sbCo=jIP|XK_4cOeC36GI zv`vm?;LkS`eVpJbnyAO8-SMbT`1I4D;d06QN9AO)RZh}rhZ;i)%eTrVomL!7AAFjh ze6UR;xD>jY^nxzVTU;lrG31M()p8`-FrGFPDz%|bx$Tkh^;3_oI$^Bbb&R+8nC>o_ z0j(8KI)nosnzAR1L%nJGo;ci1bdTOck~O&AI<&~1(7HXF@gN_&H(XQH<{~bk`Fs0y z*@3oI2l1NSh<~rz-H#}H(kK>^gLvEyjHlo4?S}f#^S#U9-HOHgS^=KZS^L8}EwL2} z`{n{46G|Sq@|@mVL_KHw{$7wnzug}jUTeu(%8Nj<-d2pe5J4TT-mNsR&K*{$946kV ztOXq?;J9}B(SeWrX4t`eN%qne79Wy*h*zsCaTPDnl!LRl&K7#$;2rpguKzp~EcD># z(eRXB{alZdK>ECr)3nq7`@+BTypzT9md&rpJb5>-P~NP^Ijk9oJ7s8Z`mZlSz(}oM z=y6Mjei;nAX!4g4&_<_y83c(m|H~2JMbCbjgUU+mp@e`QHdj65s-OS#_OL>|IVCF_ z4XF;|W}1H}n={xeZX9w4I8U4ZPY-F-?eJRYNa^7Wm_~0N)_dP*bIDaNd@;WcVmkFY z5)4r^>PS8+qkE2o_seS=TIjM+<2+(Jh`${tB-pu}Y5{mJfjm$f)Xt;0gE#|A{=3{| z+J0m#_L*5W!Q*zjRd3XdbvCsuG9F67$~OGDx%;JU5nw@E2=6~kolASNBKMO z60g`xa$Lm6R-$j3>yY+Z)U8RxMI2yLx5gp%vt`ZKmbr-IZB27sM7y7dF`D5;oIi9U@(wCJmaaF0Iyih2)h zSN0pP=S zp{vV}e7>jXpq67P@FN{?oWU#fhvS*PJ#CXJATp|f5AQFi^noTXv7RQL7^bvzA_hX~ z!4nhRrr6YiGOZfwRvQ6d(OCRT>4e%rkV$E+K4^xux(p)y8u;P?25&uxD`gIagBKb> zmuiPVKk9Wd8M!n4WHxF?2TyKOjGwx2MWL&k=Jls7T1XW#1eM7{jHj3DLLt54VVxVG zogXg$G(W;wk=#8bDW4m_Mm34oT-F zK9b`F=b4|PFs&CVu$RA$N52z%HxWuJCVv+LFq*D8R|Iv`?R*uK(fad4U_FHk39ybP zUicOFtIx#=(ZAcVS)C{UU2ak_hyagxR1$G9D%DFCwPhn zY1E|z_>@k)6y+9(X_1(QhS#NjK7ZIZS)Ysi!noqBLLO76)1NQJdt9=<5WJq^chvX$ zOjt^1d_TVHM<~uc#j6&D5OSKQ*ieJGQW>?Pj;naJsIk*uzVC%h>UMb^S}sd2NB9<= z=;jm^IxM2deot`@J#={i%%s5$mEcAj8_wa`_Hko0d`Q1-OvDv$Z;bIVIY?wsg9|cl zir|G4IY|dx=?)=u#+4Dc-40)g_dad)FeMAdkROqIJjE0A@s&ihULt;&3je5B`9mqd zEgEq(20pA9f7K5Hc367g$*cI|&dBQU*Eo&78xnaJUH(%L2Q_r(PrXoyF*u6c0CO3>&EM|I9uJ8L!IczUv!XGG4+>NfZynbUz6b* z`t7e%{Z6Adq863DqEz*@T8j&b$J4WhCf^v3JiXz@0N6y&-3SeO?W9u=cQOo#=qW%q zmj`N`%}MIG5!}B}fbO27wN0eX^?^DfQt%M>Ta9HiL-v+`By*~g)Th_nc;%ct`_w~! zKqflEOL$tETnSHy-ZbD!&$*d^9esQ=*3E8JM4z{~i2iUh8DcBE{#5`z%Pf4}k+SK< zKg#aJGvkT0gzmUC6&6tG)8Z*ISfk(4{pC?^-(8HI-S@jFk! zlOF!G!4e{vF<}j%Bsisz` z3tjVQkp7Z|UqrgkS+sxAD%mh@sC+-CgZS8T3YGe3Qz3TrnBILf&3m6sSLQCJw#m(r z!c*x(I{tB##)P)*K3eqHmrIPNA3gpYdRL@~Du5+)SnD#*-cHZ74n$^yCxd*F9HgdC zZVw^#$uvk3{*tO`=97GQM9)2m^*Zb5jp;+dgy}1(=4l!Xpczji(Aa(`g8<{ z^w!gKxJbJ{TkkX9ItAA4?lxJY>LAXfr=RJ)-mwyc@h?@1ivLTRLtCFMfH*qs zc?-IBGXAQE*QkdSj9PPdX-aTmyImUY;Dj$zxrWpyDF98WPdtFf-hJq9=^eOA{p8HB zLv8*|si^F%l0n6Vs|@ZYHxVrYVXL#xRdl87G%MTWPdH;Yy3_J5n5bV{cZC##+j_$1 z74zDB03zrzYbeg)V{4Az{GtY{eucal$qEb=_m>Hmm2b?6E3u6_lyq39EO3%P^;EvnvDx1hGR}SPcS8aDx>1 zKeogTs-T|5xI-wMWFy=m9#m|ZJA`wNlkA`Fuqxtvt2P5|iMZF2OXU?rWBNe)F%}5Fg|JvbBy54z=o{e28*s@HA+ht!R;sxwTq-QEn7^HQS`F?05&H?^n##8?xQ3 za(-T%V38iOh2Ag>&a*0Sm*k;TP=qn$~ z%g>9%1poH`WTvs}Ivm&*7VLwhtY^tS5FGu`LBbVTnZq`HIne&f<~W& z4W!GB&910I*rZR`avvDr^Rq3krX(LCH4TBzg+? z-o^fE6EAq{ZPID$SPXSGJZ)Aab)cakE=qVL{lYGHgn8Y*L~V|Q2O6Sq3_Tt0O-<#* zV3j7=HBD<|hLlp$<#v|k3-9^7*&f)Wob^f*@z}(0_ShGKIn4I#1h2qymfZ;#_ILJ9 zCme=`m34v)AKB*8GzROCb$ktvZQWoVelU@fWj50fUV~g#=LgFmo(=Mc*l?@mUh|!D z5Oi2Dw7sdB7<_Q@1KQ^0-6_}LjIGi!w$UF_+@4!s@JTDX?hoN%D!W(Hq7c2%nYT)n zZ5^Bo%q*%VPYhY5`z$yBvf(LP766%Wfn5rK7%#I;-9!w41uW7?<{AiVK+84;LX`fh z?9-%bx?hg-wt6;g@BOrSOun&1p44X&k+ zrDL|PX43O%Bf-VcVx!-omYi#RBy~Q?3Ohq5Ru}@k;a{vG1ZKfR78DADaQ93^2nu>> zdb^6RAIn1-thfO5qdmmc>`*AO+e&sp0S#*jg^4bkrvvet!Gtcb7cQ~~T_75_WIz}! zfh4ve4B31MyBh|FVG`TM1C996>8c>2rW*aS*tQ8!>{JRPf!CX}o)XY!iBfdcC_QxN zU=3Rm4iT_|eXKw>s}F~Gw?E{)a;I^Rq;bp|jwAPB*Kae|>WtnU5+cy&4+8onj&)kGg`yzovJd$$Rp6;+8dQ^>w zL~cXoTO9?l*j!~4cKr(bH45d&D5mLwv7Rit2hOr9o2bN4fc1bV&Sqx^dO$DuiT&II zBrvnf(b)44rs;`m7t2z5A}jl|i9N9yZ&uV3^PaJ)o=C>-?5dKuoH=^prn9r|F^~iK zY;z0*g}>X*3%Rvs^daji9nueNYGI7t!}L&E)0X+{n`~ZqD6L?ZVsPR9#XNe!4(x7U zFL=jKRa<-ChAuLtVs0hslU*N52U&b91i|NQL@dN$r}?oE=Cj0RmnJxLHJ+yWc|m0l zr2=*^7R6o;yA%uQaGm+ZA%)efAP!|sE31uz3Rue)#zR0*SQ~GSEOSVYj#10HRl*Xr>}9rsip2>dR2Q89&+$2 zyVM^FV0~4_0ENlw*z$o85b%4O$BrY`)+b=?NQ@zog}^^VEia|&&_E<2{K*~=c+&^-TWiH{J-yNQ=s%wSxhudC7rBW=LKN{8SiMzhmHUy>)|Ukg z#o3j!8AGxDN33orGS4j5J`^@UC0joXf?S`Y1b;4Vsrq6Vo}+j;)d}z`e9S&hhd~@4 z&wfb}-(U7%|=oq+yN7|aP z5YGj)v14Q5dpOM2j)OF$&82bhF%+sNz3-(A4r9kqq2$^MF0cF@-3OqhGuud(A!QE zC`k~dcUa@AC<}|KiY7uMjfYa3M22#XU z&xCF8PZm52k0=YPSD>8DnT_l+uj=`19f zfRnko1T35)mGf{^*l#{A+{UU|`2ZYTubNYU!T_24)1`0|R#q)T)dAoScKAI!ck$3z z4gcUjqT2tXyAonMa9{#9mKj#UP+=t785QeP{CRh*@oH5I~} zP|PxmU@{jM&ps~#qxU0=0kyLiey;n{EM_T!sNfVit42}5JxvXAluuOF5jh6jon7@| zgI2ug>eUs{AFr6$mY4Yb3S{`NtMn_8!m6hy_p*npaO$r!@6~w7{KO(wL#F2WH$akE z{%SnL-eU(>qs*VfeqN26{u`F?K5mq4RlDCu;RS^(s2B<~>+mRUWIKvcetg5EVq}<- zsUiA{HxR*Ax9J>XK&3h{vIF%;?Y?Cf7v7^j*vog4cJ8zQQL0re^66Tb~TV zYjgV`EpvU|da8w#XO9=2!f*=u=f$xpS!%J#8iQrj;y`Q93_wgmj5fuL)MiDGo`gE# zXIagGQm7?z)Fl0+#7N<8R=V| z#zh;-tef%VHnOlSFhloGOXd@AVlIp=CS98)OB>s=1^W9fvy=>j>n~Kq%x60mC6(Tn z7PH%1@X(pftXuFP8PD_-*||R(Pm!Ub*b<8Jco92JQCR-Y925flaQ17Dr2e~^?FKJw zGRc(dPn4c}KsP3JSlT@Vc zNBpZ3!Mm-oS-NidQSPZyZY$l4y2>QI#&i#rZInNusEUMbgCPHl_*7=p&p>`e;y{Lq zC+G-syT(RugIrWo>b60%&m-9duRyd(#Lyz0l$#~gvOa>C_~&v^)6uq7;;Gg!a;Ds+ zC!Pt;5$-d1lr~G#9hwKL)VMr2?$7Y`ShIw>2!m*SsT^r)k@li1x>-7i7X@(*4$03^ zh-UkD1_KsLVA%}(0wNtITisvIF;hJsY+Y_P|5dvJ+OqdbZ$Wq<|pXT0F=xQjEs`0u!@Gd}O{xK@dGlxF;$;N~nag~fb|TQY-<{S-1M zDc9b(&&?^%h!12bmZ%H=P#RpVCay*gfkPWy9qHPLnjq4k?xcdvlIt<$<%VJkelLU2 zw5}*sbw!a6kECy^b+syS2Hpm-;u1*pkF@f6v!1GTQ<@Z##%AaQmDv9TYbt?7=^c;H zdb)xHHu;!1{1OGTa?wJ_HR^=N(mrRXq5QFw=L~Hw*LgmYO6q1kJ&ndgE^bByP#f#n zj#7wN-eA2ijYL1B!t2DK48}*$@G9}lab@2sck+*<{&k9%G`G@A@W}9dl^5d{ zo24{7Q-uxVke630f1gyV#Pc=YM|G8|gWUFe(wjEjiK%iYD2I^=|AYa{M?M)7claqOR3tWs4iMhtt-p)!Yc(jbyOi9+ z2e8H`8~u$>9G&8V$b$x4)+FH%>22HUR8`{;^$<_jhVZ5XC{^DJAx%rWe3ts)W*p|v zw7H_Z|3k{M9ZrQG@`FiJOE8xD!HA*A&PA!@S|4G5d6GbeiheSwQ;Ekc$~&ke#jRVU z5YU+VcJ`t^WYh+?UR?%zY?5qFC8JSj;(&v2LHC zKV&7F{24@f>+K~qnkLs`vyhBC=_=d&8O#WK-qv&I&|wdLJuZ9d)JHTWiu3%Q)KXJ~ z#Z=-}=DQ!Z#jmW^R@QGIn^$gFu{QND6=+dVU2N0V7Oe$CAchxL$Fw+7)WVvzE*pn! zREZne_5FC(9%0t~5IugUBMhG%{iiuW1vKDN4%+gP-=Bc=u6<4d{HPv{`b zMW@;$$p`P2$o4U1iUW`r?nh>bdk zUW~6;{y_-SyULkjKlgw#^qMvLH>von#oe&Xdoq-lu8PK${)p8aM9U|G1$_?7qdK;G zG?{S?I<*(QTk3r09VL*^yOO)Dq)bVFY9o=4@I*h(>OV&-vYuW290s|4?@+hCLLQ>J z5c~x?E4H)BFVGlxjXnJW&k2Dge+h{hgRMp75%QU^=n}h>Yl$j07pE8x7Di$$#}dll zY0kk*HHS35y#uOR%~JQ5rNc0PvL&+kU@;1h!cdHjV^v?G=5T?HIs{`qXd7RqHoX#u zo)dQP5T12!va^Rk@3zybMsnSiCRaT^q1x%=H_8Y^O#<%Gw1~~*6YNgkHB%HVe=8l4*K4vH<98~8rQ3QiP}KSWK#~l>fyw2 zmR*L1~ z+R7Xi5am_ZrZ29&pJY^FpOaYPQ8>=EwXr8hVV9d{TU5asOy18}B_w-4upF4%Qm{$x z$}h#lmF!j}Bm|td1UA()MI!ZowH}zOGtjsk?81*leFgJ;*IIfkJy)jZ@>wK1|`S6 zNb55oId&kESxybw#536K8rU7a6^ZO>ikgd5mm}w{N`nT%C)EOe6|tj1`7@uD9z&bS zoi!fAkxgX}k3mY$R^ zFZaOCzBvwt@LP71qF1_Vu3j|g@Daxy^1C#`sxx2+Tv|;S>&iS%K(u$Y9TT5#U+B`> z2NPY{uoIBz@sa(Hf~chtIEXm5`UHf9{M;6~G&lEt!I9j^_f+V#A-tHY+J371fn;lA zr%pg;)Fyw$=Dc22t4OYT5|TtkmNMU3u%KY{ItjBpcDDD<(-&;VHv6z;Cn1M(w6pss zQE-0Eg6lx(JzeaQ5jbv>%BZ8+Zl=vYGXe<+r2F#YB3l-_|rV zmk^!sO?4cE!JKS>0aaIqVj$6H@dJAo3xsZ{Thvw(N*t!4FFyN))@tc zg3`P&?Cc0zeHsmWG*wPRxX15p${_qO{XN!l8l5>0*?=?XBM4yI&cLW3f-g@<`1#>E z_-4wt$u6ysiT*pZHB8KU2Eu&v?2npHm`rhZrEl#ZoWxdcu$Z%u7&UC=K7XfjHI8*ZbC7M-??QP0P@=a>tSt%oB1vv4;PHnr z`h0C#pN64Lz+0L>M6vXzGz&eNiU6Hs=Y-_Et=MNlTT)(WL2;@}=(BGtN zdvRGw!S=Eu6C4~JXP2&6Hw}k_uC4Cmw|VzQOV8VnVB`EkbF*^WUTkq|ddJ!LkhUdG zOlTvK-!?9ChGW`vWojHib2DJsMHXcqqwKe2d9%qm#|3P`H^@S-%X}GM?BaCp9r^~w zdaLauvaGS~9uk=RDV<|p-=e*^jt%)1H_KTzY+15+~V`_;;K2#Yt#d728#Ya1>T{Db~K^p0artKE&T-sW?)~LcfCn{%0|& z?9HM0es<<`e%`EnK4M8vR{tH^Bp-YS9W`oK74c_#zQcP9&+r#_6|3fca0I>HJ^M67 z;@JN{E6ws9M7Rx=qY5M(&n?#d9C{|TY|1%2(!ONJ&!M>4$!?v)<8T%8IFF|Jb{2ge zVgrWB>gTI+(f5P0Ua+|cYP?6gE2Xf7=V2Z?+i#vnvr5l`E?|u)mV5za?PqMt1xzef zAe0@w0DVEn9$dgvV~XQu^MsPyIloD-vgC_sVPXA?kmgqU0Eij~ZevlGZ~z%>!X>;s zn!;{gf_BibU%!VKm(2F0S|NgUxC}?oF|lC;b)kz5=0c%j_;fQl1T6 z5{XyPS=yB?yMoTm?QGf)FehkJ5kB8pc%ZeD+cg=*Y&Ud~KZEYK;5Ce zs|p;cY|4)iJZO9SFLI%7jBqY3D*HT!4lYwi`CdsbBhOQE6Ejk>(U3wnD`eF@&Dkv|}}SlN#d6fhaxhr2f6w*-W9_}tze0y$#@mI z;c1+374&|DY*(xTbUYBW#|Tjyi6e{6yNWU;k(FMBBD|vr{|QFLw#sO|n$csShDL|< zwc|JGFXU-mZ6}rDv%sHspdRj!{=hdh*2ZVj820H;sM}PryFWqe@{!dqoLWi;ZpKy4 z4%Nm@=y}ss{wBrB4(X}WaQRK@hh|F%x~GcggqTvzUq4lK-i1$UCD3K0a>+GGZHqb!)KaRpSz)sR+1i8 z`z5nn!yU4L1zkreQOy#s<6Yca@&?&0YlG}=3>VZ`rH3%n?BT3nuRX&SUWZ}9gXM6+ z1+zBD+N_!89>RaZHGc#pLiyA+nMPSsvftWR)W zXXY9SS`U6TSsNpVX07RlrmdnX)o;)UrKxc3cWEh`_6r2{8DPoYsKo+`pu!&^mMH}z z@T=J2r#2L)YOg6xevg+V%1%(4yi?7-`~_Lbo&E3&gh!8TKbi_x7JX%JPQWL4$$0hp zr*uUw30_rR9kiyL^t|1u8lEAHL1pEwD*dm>!}Iz(Ivn9liv4^b3@=30e=BhYb;cb@ zgIoFEZzF$~-Z;J;%b-gX^GN6&Dc1SRN?k4B+YLf?IrE-L*;bzs#LM^x#7#Eii>50( z)@g@M%5q5i*oGUpU*BhkZ$LyiiR2pGBAvh3OgDA`Ly&oe(I<`YL1-o`)3r&ju*Wwb zRI}|qkhN7lH{mxfx~&gK5^$#s!k@qPK^%x!fGA>m7^3pwY=rboACUi#ZiWrQjRNxVnh75?^5#ta&5aSV*dG6kDC6H*b4FAJt1DjlREjzmmD9E&&< zaU$X{MCBv!F9w>9I3CkY3RdO+hBsX3bl-g!rg4Gs%zhWfaRYm^ardAH>}JdE;jy-x zl_CV~z6PYgljGC`h!S4vsaB%~N_MlG_h3Ahif@K+FD1u?_ts&Ln3LTM0fUqzH=al5 z6((WWod;08414gdt^xR7NJ;nPIWF*J*ozMe!llM0Dw`qJ*=k2Ds&yu{VyoDn+kNNY zV(#Pp+irI5MeN~yJdby?Q7z6PmA2qLv(k1NKX70GR(`+;Ql>+PZc0C_vE}86O}thc z=1hV=U_gdaBaO791WzOf)nxK zGU9H;WW<8yt!~6k=R}lv)_zGT)A!bYfG8j=a8ORXC=NLC49(ol>3W4b)WgL)H zOvoRPR6#7l0z(nwv4LTT+YklB793bQ;tm{;2{CF6HjZdP9FDkqERYe1H#32ZRPqr= zA#P^vk08J;XEmTJ3pXlj6(M-}b`17MifDX0`E`yOfWHG%k*P^QJP;d`aqST+G46$U z6R`uL1=DqihY)=bhs6Wwh!~IgzKF{(y%VArq90-gqCeu@{>Wp9OHz;(5ff8kIdR26 zBPOWuUnM>m(IP@B;E=E*j4L@Y8ECU3KJ0_)6ynVoq$48!B%Qb+9>n?zvmV3_6h@tl z*cCCNAO8FwaaLa-3JWL$4MyCM03-zQdctxboiX5s1$e~USU``c$Bse~4J zpfW>_)FR?fr-;u0Als2C<1qUaO5OYHst5!06Y#=MnK~dU^&UFo9BD;Vsx4&ktq|<> zI{xrSg9TP0?qZW$VZ`u|-W=(Q-%F^GC~YXUr+)vUQw5dU*@*xCsIjaf0~`(%f1ePn zp&_NaP~`WndejQWgu=ddt3nBM z4X;ziM#wBgH^gl?07a5SVFSGp^_cF07=h@Dcyq17T!cLQNZ~?4&f&lmIkFl%Qe?<) zh>C2Oh55adbZk$d*8fgegXG!?%H9d`sZMx7D=g;xG_W1dpde!v3UU1KH;@c%sC8Y# zIEMK#ILf3ENYeT0P%)hA=;&zdl%2?Rj#PK{Rd>!(zcx)5rG9O?`ZbS`sIF0-uXSWu V&!LM~zwmBclo~=*z4#FF{{R=iKAr#o delta 17123 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 delta 18048 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 E0RT5mMF0Q* diff --git a/bundles/noos_extension/inc/bluetooth.h b/bundles/noos_extension/inc/bluetooth.h index a7d216362..44c58585a 100644 --- a/bundles/noos_extension/inc/bluetooth.h +++ b/bundles/noos_extension/inc/bluetooth.h @@ -521,6 +521,7 @@ typedef enum { #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2 0x29 // Vendor specific subevents +#define HCI_SUBEVENT_LE_VENDOR_CONNECTION_ABORTED 0xFD #define HCI_SUBEVENT_LE_VENDOR_CHANNEL_MAP_UPDATE 0xFE #define HCI_SUBEVENT_LE_VENDOR_PRO_CONNECTIONLESS_IQ_REPORT 0xFF diff --git a/bundles/noos_extension/inc/btstack_event.h b/bundles/noos_extension/inc/btstack_event.h index 20ae54c5d..e5ab49a55 100644 --- a/bundles/noos_extension/inc/btstack_event.h +++ b/bundles/noos_extension/inc/btstack_event.h @@ -1386,6 +1386,43 @@ typedef struct le_meta_subrate_change // Time Range: 100 ms to 32 s } le_meta_subrate_change_t; +typedef struct le_meta_event_vendor_channel_map_update +{ + // connection handle + uint16_t conn_handle; + // current channel map (the lower 37 bits are used) + // channel `n` is identified by bit `(channel_map & 0x7)` of `channel_map[n / 8]` + uint8_t channel_map[5]; +} le_meta_event_vendor_channel_map_update_t; + +// @brief BLE Link Layer security context +typedef struct le_security_ctx +{ + uint8_t opaque[40]; +} le_security_ctx_t; + +typedef struct le_meta_event_vendor_connection_aborted +{ + uint16_t conn_handle; // connection handle + uint8_t role; // role (0: master, 1: slave) + phy_type_t rx_phy; // Rx PHY + phy_type_t tx_phy; // Tx PHY + uint32_t access_addr; // Access address + uint32_t crc_init; // CRC init value + uint32_t interval; // interval in us + uint16_t sup_timeout; // supervision timeout in 10ms + uint8_t channel_map[5]; // channel map (lower 37 bits) + uint8_t ch_sel_algo; // channel selection algorithm (0: ALG #1, 1: ALG #2) + uint8_t hop_inc; // frequency hopping increment (only for ALG #1) + uint8_t last_unmapped_ch; // last unmapped channel (only for ALG #1) + uint16_t slave_latency; // slave latency + uint8_t sleep_clk_acc; // sleep clock accuracy + uint64_t next_event_time; // start time of next connection event + uint16_t next_event_counter; // event counter for next connection event + uint8_t security_enabled; // is security enabled + le_security_ctx_t security; // security context (available when enabled) +} le_meta_event_vendor_connection_aborted_t; + typedef struct le_mete_event_prd_adv_subevent_data_req { uint8_t adv_handle; // Used to identify a periodic advertising train diff --git a/bundles/noos_extension/inc/ll_api.h b/bundles/noos_extension/inc/ll_api.h index 40dfae771..1f2d03ac3 100644 --- a/bundles/noos_extension/inc/ll_api.h +++ b/bundles/noos_extension/inc/ll_api.h @@ -100,14 +100,15 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co /** **************************************************************************************** - * @brief Create a connection directly (without advertising & initiating) + * @brief Create/Resume a connection directly (without advertising & initiating) * * @param[in] role connection role. master (0), slave (1) * @param[in] addr_types address types for advertiser and initiator - * bit [0] for slave, bit [1] for master + * bit [0] for slave (advertiser) + * bit [1] for master (initiator) * 0: public address; 1: random address - * @param[in] adv_addr address of advertiser - * @param[in] init_addr address of initiator + * @param[in] adv_addr address of advertiser (little-endian) + * @param[in] init_addr address of initiator (little-endian) * @param[in] rx_phy Rx PHY (1: 1M, 2: 2M, 3: Coded) * @param[in] tx_phy Tx PHY (1: 1M, 2: 2M, 3: Coded) * @param[in] access_addr access address @@ -115,39 +116,49 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co * @param[in] interval connection interval (unit: us) * @param[in] sup_timeout supervision timeout (unit: 10ms) * @param[in] channel_map channel map - * @param[in] ch_sel_algo channel selection algorithm (1 or 2) - * @param[in] hop_inc hop increment for CSA#1 ([5..16]) + * @param[in] ch_sel_algo channel selection algorithm (0: ALG #1, 1: ALG #2) + * @param[in] hop_inc hop increment for CSA#1 ([5..16]) (only for ALG #1) + * @param[in] last_unmapped_ch last unmapped channel index (only for ALG #1) * @param[in] min_ce_len information parameter about the minimum length of connection * event needed for this LE connection. * @param[in] max_ce_len information parameter about the maximum length of connection * event needed for this LE connection. - * @param[in] start_time start time of the 1st connectin event + * @param[in] start_time start time of the 1st connection event + * @param[in] event_counter event counter for the 1st connection event * @param[in] slave_latency slave latency - * @param[in] sleep_clk_acc sleep clock accuracy + * @param[in] sleep_clk_acc sleep clock accuracy (only for SLAVE role) * @param[in] sync_window slave's sync window for 1st connection event + * @param[in] security link layer security context + * NULL: security not used + * otherwise: security is used, which is `le_security_ctx_t *` in + * `le_meta_event_vendor_connection_aborted_t`. * @return 0 if successful else error code **************************************************************************************** */ -int ll_create_conn( - uint8_t role, - uint8_t addr_types, - const uint8_t *adv_addr, - const uint8_t *init_addr, - uint8_t rx_phy, - uint8_t tx_phy, - uint32_t access_addr, - uint32_t crc_init, - uint32_t interval, - uint16_t sup_timeout, - const uint8_t *channel_map, - uint8_t ch_sel_algo, - uint8_t hop_inc, - uint16_t min_ce_len, - uint16_t max_ce_len, - uint64_t start_time, - uint16_t slave_latency, - uint8_t sleep_clk_acc, - uint32_t sync_window); +// int ll_create_conn(uint8_t role, +// uint8_t addr_types, +// const uint8_t *adv_addr, +// const uint8_t *init_addr, +// uint8_t rx_phy, +// uint8_t tx_phy, +// uint32_t access_addr, +// uint32_t crc_init, +// uint32_t interval, +// uint16_t sup_timeout, +// const uint8_t *channel_map, +// uint8_t ch_sel_algo, +// uint8_t hop_inc, +// uint8_t last_unmapped_ch, +// uint16_t min_ce_len, +// uint16_t max_ce_len, +// uint64_t start_time, +// uint16_t event_counter, +// uint16_t slave_latency, +// uint8_t sleep_clk_acc, +// uint32_t sync_window, +// const void *security); +// WARNING: ^^^ this API is not available in this release + /** **************************************************************************************** @@ -236,6 +247,20 @@ int ll_get_conn_events_info(const uint16_t conn_handle, uint16_t *event_count, uint8_t *channel_ids); +/** + **************************************************************************************** + * @brief Abort an existing connection + * + * After a connection is aborted, `HCI_SUBEVENT_VENDOR_CONNECTION_ABORTED` is emitted. + * + * @param[in] conn_handle handle of an existing connection + * @return 0 if aborting is ongoing else non-0 + **************************************************************************************** + */ +// int ll_conn_abort(uint16_t conn_handle); +// WARNING: ^^^ this API is not available in this release + + /** **************************************************************************************** * @brief Set default antenna ID diff --git a/bundles/noos_extension/inc/platform_api.h b/bundles/noos_extension/inc/platform_api.h index 2c7815798..bbc633bd3 100644 --- a/bundles/noos_extension/inc/platform_api.h +++ b/bundles/noos_extension/inc/platform_api.h @@ -409,7 +409,7 @@ uint8_t platform_read_persistent_reg(void); * ING918: starting from 0x20000000, 64KiB * ING916: starting from 0x20000000, 16KiB * - * @param[in] duration_cycles Duration before power on again (measured in cycles of 32k clock) + * @param[in] duration_cycles Duration before power on again (measured in cycles of real time clock) * Minimum value: 825 cycles (about 25.18ms) * When = 0: only power on when external wake up source is asserted * @param[in] p_retention_data Pointer to the start of data to be retained @@ -430,13 +430,18 @@ typedef enum PLATFORM_CFG_LOG_HCI, // flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_POWER_SAVING, // flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_TRACE_MASK, // flag is bitmap of platform_trace_item_t. default: 0 - PLATFORM_CFG_RC32K_EN, // Enable/Disable RC 32k clock. Default: Enable - PLATFORM_CFG_OSC32K_EN, // Enable/Disable 32k crystal oscillator. Default: Enable - PLATFORM_CFG_32K_CLK, // 32k clock selection. flag is platform_32k_clk_src_t. default: PLATFORM_32K_RC - // Note 1: When modifying this configuration, both RC32K and OSC32K should be ENABLED. + PLATFORM_CFG_RT_RC_EN, // Enable/Disable internal real time RC clock. Default: Enable + PLATFORM_CFG_RC32K_EN = PLATFORM_CFG_RT_RC_EN, + PLATFORM_CFG_RT_OSC_EN, // Enable/Disable external real time crystal oscillator. Default: Enable + PLATFORM_CFG_OSC32K_EN = PLATFORM_CFG_RT_OSC_EN, + PLATFORM_CFG_RT_CLK, // real time clock selection. flag is platform_rt_clk_src_t. default: PLATFORM_RT_RC + // Note 1: When modifying this configuration, both RT_RC and RT_OSC should be ENABLED. // Note 2: Unused clock can be disabled. - PLATFORM_CFG_32K_CLK_ACC, // Configure 32k clock accuracy in ppm. - PLATFORM_CFG_32K_CALI_PERIOD, // 32K clock auto-calibration period in seconds. Default: 3600 * 2 + PLATFORM_CFG_32K_CLK = PLATFORM_CFG_RT_CLK, + PLATFORM_CFG_RT_CLK_ACC, // Configure real time clock accuracy in ppm. + PLATFORM_CFG_32K_CLK_ACC = PLATFORM_CFG_RT_CLK_ACC, + PLATFORM_CFG_RT_CLK_CALI_PERIOD, // real time clock auto-calibration period in seconds. Default: 3600 * 2 + PLATFORM_CFG_32K_CALI_PERIOD = PLATFORM_CFG_RT_CLK_CALI_PERIOD, PLATFORM_CFG_PS_DBG_0, // debugging parameter PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION, // sleep time reduction (deep sleep mode) in us. (default: ~550us) PLATFORM_CFG_PS_DBG_1 = PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION, // obsoleted @@ -469,9 +474,13 @@ typedef enum typedef enum { - PLATFORM_32K_OSC, // external 32k crystal oscillator - PLATFORM_32K_RC // internal RC 32k clock -} platform_32k_clk_src_t; + PLATFORM_RT_OSC, // external crystal oscillator + PLATFORM_32K_OSC = PLATFORM_RT_OSC, + PLATFORM_RT_RC, // internal RC clock + PLATFORM_32K_RC = PLATFORM_RT_RC, +} platform_rt_clk_src_t; + +#define platform_32k_clk_src_t platform_rt_clk_src_t #define PLATFORM_CFG_ENABLE 1 #define PLATFORM_CFG_DISABLE 0 @@ -488,11 +497,13 @@ void platform_config(const platform_cfg_item_t item, const uint32_t flag); typedef enum { - PLATFORM_INFO_OSC32K_STATUS, // Read status of 32k crystal oscillator. (0: not OK; Non-0: OK) + PLATFORM_INFO_RT_OSC_STATUS, // Read status of real time crystal oscillator. (0: not OK; Non-0: OK) // "OK" means running. - // For ING916: this clock become running **after** selected as 32k + // For ING916: this clock become running **after** selected as real time clock // clock source. - PLATFORM_INFO_32K_CALI_VALUE, // Read current 32k clock calibration result. + PLATFORM_INFO_OSC32K_STATUS = PLATFORM_INFO_RT_OSC_STATUS, + PLATFORM_INFO_RT_CLK_CALI_VALUE, // Read current real time clock calibration result. + PLATFORM_INFO_32K_CALI_VALUE = PLATFORM_INFO_RT_CLK_CALI_VALUE, PLATFOFM_INFO_IRQ_NUMBER = 50, // Get the underline IRQ number of a platform IRQ // for example, platform_read_info(PLATFOFM_INFO_IRQ_NUMBER + PLATFORM_CB_IRQ_UART0) PLATFOFM_INFO_NUMBER = 255, @@ -510,36 +521,52 @@ uint32_t platform_read_info(const platform_info_item_t item); /** **************************************************************************************** - * @brief Do 32k clock calibration and get the calibration value. + * @brief Calibrate real-time RC clock and get the calibration value. * - * 32K clock auto-calibration timer is also reset, which means that next auto-calibration - * is supposed to be carried out after `PLATFORM_CFG_32K_CALI_PERIOD` seconds. + * Real time clock auto-calibration timer is also reset, which means that next auto-calibration + * is supposed to be carried out after `PLATFORM_CFG_RT_CLK_CALI_PERIOD` seconds. * * @return Calibration value. **************************************************************************************** */ -uint32_t platform_calibrate_32k(void); +uint32_t platform_calibrate_rt_clk(void); /** **************************************************************************************** - * @brief Tune internal the 32k RC clock with `value`. + * @brief Tune internal the real-time RC clock with `value`. * - * @param[in] value Value used to tune the clock (returned by `platform_32k_rc_auto_tune`) + * @param[in] value Value used to tune the clock (returned by `platform_rt_rc_auto_tune`) **************************************************************************************** */ -void platform_32k_rc_tune(uint16_t value); +void platform_rt_rc_tune(uint16_t value); /** **************************************************************************************** - * @brief Automatically tune the internal 32k RC clock, and get the tuning value. + * @brief Automatically tune the internal real time RC clock, and get the tuning value. * - * Note: This operation costs ~250ms. It is recommended to call this once and store the - * returned value into NVM for later usage. + * This is equivalent to `platform_rt_rc_auto_tune2(65536000000 / frequency)`. * * @return Value used to tune the clock **************************************************************************************** */ -uint16_t platform_32k_rc_auto_tune(void); +uint16_t platform_rt_rc_auto_tune(void); + +#define platform_calibrate_32k platform_calibrate_rt_clk +#define platform_32k_rc_tune platform_rt_rc_tune +#define platform_32k_rc_auto_tune platform_rt_rc_auto_tune + +/** + **************************************************************************************** + * @brief Automatically tune the internal real-time RC clock to a target frequency, and + * get the tuning value. + * + * Note: This operation costs ~250ms. + * + * @param[in] target_frequency target frequency of tuning (Hz) + * @return Value used to tune the clock + **************************************************************************************** + */ +uint16_t platform_rt_rc_auto_tune2(uint32_t target_frequency); /** **************************************************************************************** diff --git a/bundles/noos_mass_conn/ING9168xx/apis.json b/bundles/noos_mass_conn/ING9168xx/apis.json index 2555eab95..73544a58e 100644 --- a/bundles/noos_mass_conn/ING9168xx/apis.json +++ b/bundles/noos_mass_conn/ING9168xx/apis.json @@ -17,251 +17,252 @@ "att_set_db": "0x02004e51", "att_set_read_callback": "0x02004e65", "att_set_write_callback": "0x02004e71", - "bd_addr_cmp": "0x02005045", - "bd_addr_copy": "0x0200504b", - "bd_addr_to_str": "0x02005055", - "big_endian_read_16": "0x0200508d", - "big_endian_read_32": "0x02005095", - "big_endian_store_16": "0x020050a9", - "big_endian_store_32": "0x020050b5", - "btstack_config": "0x020051f9", - "btstack_memory_pool_create": "0x02005347", - "btstack_memory_pool_free": "0x02005371", - "btstack_memory_pool_get": "0x020053d1", - "btstack_push_user_msg": "0x02005419", - "btstack_push_user_runnable": "0x02005425", - "btstack_reset": "0x02005431", - "char_for_nibble": "0x0200570b", - "gap_add_dev_to_periodic_list": "0x020060f1", - "gap_add_whitelist": "0x02006101", - "gap_aes_encrypt": "0x0200610d", - "gap_clear_white_lists": "0x02006145", - "gap_clr_adv_set": "0x02006151", - "gap_clr_periodic_adv_list": "0x0200615d", - "gap_create_connection_cancel": "0x02006169", - "gap_default_periodic_adv_sync_transfer_param": "0x02006175", - "gap_disconnect": "0x0200618d", - "gap_disconnect_all": "0x020061b9", - "gap_ext_create_connection": "0x020061f9", - "gap_get_connection_parameter_range": "0x020062d1", - "gap_le_read_channel_map": "0x0200630d", - "gap_periodic_adv_create_sync": "0x02006379", - "gap_periodic_adv_create_sync_cancel": "0x0200639d", - "gap_periodic_adv_set_info_transfer": "0x020063a9", - "gap_periodic_adv_sync_transfer": "0x020063b9", - "gap_periodic_adv_sync_transfer_param": "0x020063c9", - "gap_periodic_adv_term_sync": "0x020063e5", - "gap_read_antenna_info": "0x0200646d", - "gap_read_periodic_adv_list_size": "0x02006479", - "gap_read_phy": "0x02006485", - "gap_read_remote_used_features": "0x02006491", - "gap_read_remote_version": "0x0200649d", - "gap_read_rssi": "0x020064a9", - "gap_remove_whitelist": "0x020064b5", - "gap_rmv_adv_set": "0x02006531", - "gap_rmv_dev_from_periodic_list": "0x0200653d", - "gap_rx_test_v2": "0x0200654d", - "gap_rx_test_v3": "0x0200655d", - "gap_set_adv_set_random_addr": "0x020065a9", - "gap_set_callback_for_next_hci": "0x020065e5", - "gap_set_connection_cte_request_enable": "0x02006605", - "gap_set_connection_cte_response_enable": "0x02006621", - "gap_set_connection_cte_rx_param": "0x02006631", - "gap_set_connection_cte_tx_param": "0x02006685", - "gap_set_connection_parameter_range": "0x020066d1", - "gap_set_connectionless_cte_tx_enable": "0x020066e9", - "gap_set_connectionless_cte_tx_param": "0x020066f9", - "gap_set_connectionless_iq_sampling_enable": "0x02006755", - "gap_set_data_length": "0x020067b1", - "gap_set_def_phy": "0x020067c9", - "gap_set_ext_adv_data": "0x020067d9", - "gap_set_ext_adv_enable": "0x020067f1", - "gap_set_ext_adv_para": "0x02006861", - "gap_set_ext_scan_enable": "0x02006931", - "gap_set_ext_scan_para": "0x02006949", - "gap_set_ext_scan_response_data": "0x020069e9", - "gap_set_host_channel_classification": "0x02006a01", - "gap_set_periodic_adv_data": "0x02006a11", - "gap_set_periodic_adv_enable": "0x02006a81", - "gap_set_periodic_adv_para": "0x02006a91", - "gap_set_periodic_adv_rx_enable": "0x02006aa9", - "gap_set_phy": "0x02006ab9", - "gap_set_random_device_address": "0x02006ad5", - "gap_start_ccm": "0x02006b05", - "gap_test_end": "0x02006b4d", - "gap_tx_test_v2": "0x02006b59", - "gap_tx_test_v4": "0x02006b71", - "gap_update_connection_parameters": "0x02006b95", - "gap_vendor_tx_continuous_wave": "0x02006bd9", - "gatt_client_cancel_write": "0x02007101", - "gatt_client_discover_characteristic_descriptors": "0x02007127", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x02007167", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x020071b7", - "gatt_client_discover_characteristics_for_service": "0x02007207", - "gatt_client_discover_primary_services": "0x0200723d", - "gatt_client_discover_primary_services_by_uuid128": "0x0200726f", - "gatt_client_discover_primary_services_by_uuid16": "0x020072b3", - "gatt_client_execute_write": "0x020072f1", - "gatt_client_find_included_services_for_service": "0x02007317", - "gatt_client_get_mtu": "0x02007345", - "gatt_client_is_ready": "0x02007409", - "gatt_client_listen_for_characteristic_value_updates": "0x0200741f", - "gatt_client_prepare_write": "0x02007441", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x0200747d", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020074a7", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020074ad", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x020074db", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020074e1", - "gatt_client_read_multiple_characteristic_values": "0x0200750f", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x0200753f", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x0200756d", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x020075b9", - "gatt_client_register_handler": "0x02007605", - "gatt_client_reliable_write_long_value_of_characteristic": "0x02007611", - "gatt_client_signed_write_without_response": "0x02007a45", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007b09", - "gatt_client_write_client_characteristic_configuration": "0x02007b43", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007b95", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007ba5", - "gatt_client_write_long_value_of_characteristic": "0x02007be1", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007bf1", - "gatt_client_write_value_of_characteristic": "0x02007c2d", - "gatt_client_write_value_of_characteristic_without_response": "0x02007c63", - "hci_add_event_handler": "0x02009259", - "hci_power_control": "0x02009a01", - "hci_register_acl_packet_handler": "0x02009bb5", - "kv_commit": "0x0200a311", - "kv_get": "0x0200a36d", - "kv_init": "0x0200a379", - "kv_init_backend": "0x0200a3f9", - "kv_put": "0x0200a40d", - "kv_remove": "0x0200a419", - "kv_remove_all": "0x0200a44d", - "kv_value_modified": "0x0200a47d", - "kv_value_modified_of_key": "0x0200a499", - "kv_visit": "0x0200a4a5", - "l2cap_add_event_handler": "0x0200a535", - "l2cap_can_send_packet_now": "0x0200a545", - "l2cap_create_le_credit_based_connection_request": "0x0200a709", - "l2cap_credit_based_send": "0x0200a851", - "l2cap_credit_based_send_continue": "0x0200a87d", - "l2cap_disconnect": "0x0200a8f9", - "l2cap_get_le_credit_based_connection_credits": "0x0200aae5", - "l2cap_get_peer_mtu_for_local_cid": "0x0200ab01", - "l2cap_init": "0x0200af41", - "l2cap_le_send_flow_control_credit": "0x0200b037", - "l2cap_max_le_mtu": "0x0200b345", - "l2cap_register_packet_handler": "0x0200b46d", - "l2cap_register_service": "0x0200b479", - "l2cap_request_can_send_now_event": "0x0200b589", - "l2cap_request_connection_parameter_update": "0x0200b5a3", - "l2cap_send_echo_request": "0x0200ba85", - "l2cap_unregister_service": "0x0200bb65", - "le_device_db_add": "0x0200bbbd", - "le_device_db_find": "0x0200bc95", - "le_device_db_from_key": "0x0200bcc1", - "le_device_db_iter_cur": "0x0200bcc9", - "le_device_db_iter_cur_key": "0x0200bccd", - "le_device_db_iter_init": "0x0200bcd1", - "le_device_db_iter_next": "0x0200bcd9", - "le_device_db_remove_key": "0x0200bcff", - "ll_adjust_conn_peer_tx_power": "0x0200bd2d", - "ll_aes_encrypt": "0x0200bd59", - "ll_config": "0x0200bdcd", - "ll_free": "0x0200be03", - "ll_get_heap_free_size": "0x0200be0d", - "ll_hint_on_ce_len": "0x0200be21", - "ll_legacy_adv_set_interval": "0x0200be59", - "ll_malloc": "0x0200be69", - "ll_register_hci_acl_previewer": "0x0200bf81", - "ll_scan_set_fixed_channel": "0x0200bfe5", - "ll_set_adv_access_address": "0x0200c1fd", - "ll_set_adv_coded_scheme": "0x0200c209", - "ll_set_conn_acl_report_latency": "0x0200c241", - "ll_set_conn_coded_scheme": "0x0200c271", - "ll_set_conn_latency": "0x0200c29d", - "ll_set_conn_tx_power": "0x0200c2cd", - "ll_set_def_antenna": "0x0200c309", - "ll_set_initiating_coded_scheme": "0x0200c329", - "ll_set_max_conn_number": "0x0200c335", - "ll_set_tx_power_range": "0x0200c3c9", - "nibble_for_char": "0x0201ee1d", - "platform_32k_rc_auto_tune": "0x0201eeb5", - "platform_32k_rc_tune": "0x0201ef01", - "platform_calibrate_32k": "0x0201ef1d", + "bd_addr_cmp": "0x02005041", + "bd_addr_copy": "0x02005047", + "bd_addr_to_str": "0x02005051", + "big_endian_read_16": "0x02005089", + "big_endian_read_32": "0x02005091", + "big_endian_store_16": "0x020050a5", + "big_endian_store_32": "0x020050b1", + "btstack_config": "0x020051f5", + "btstack_memory_pool_create": "0x02005343", + "btstack_memory_pool_free": "0x0200536d", + "btstack_memory_pool_get": "0x020053cd", + "btstack_push_user_msg": "0x02005415", + "btstack_push_user_runnable": "0x02005421", + "btstack_reset": "0x0200542d", + "char_for_nibble": "0x02005707", + "gap_add_dev_to_periodic_list": "0x020060ed", + "gap_add_whitelist": "0x020060fd", + "gap_aes_encrypt": "0x02006109", + "gap_clear_white_lists": "0x02006141", + "gap_clr_adv_set": "0x0200614d", + "gap_clr_periodic_adv_list": "0x02006159", + "gap_create_connection_cancel": "0x02006165", + "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": "0x020062cd", + "gap_le_read_channel_map": "0x02006309", + "gap_periodic_adv_create_sync": "0x02006375", + "gap_periodic_adv_create_sync_cancel": "0x02006399", + "gap_periodic_adv_set_info_transfer": "0x020063a5", + "gap_periodic_adv_sync_transfer": "0x020063b5", + "gap_periodic_adv_sync_transfer_param": "0x020063c5", + "gap_periodic_adv_term_sync": "0x020063e1", + "gap_read_antenna_info": "0x02006469", + "gap_read_periodic_adv_list_size": "0x02006475", + "gap_read_phy": "0x02006481", + "gap_read_remote_used_features": "0x0200648d", + "gap_read_remote_version": "0x02006499", + "gap_read_rssi": "0x020064a5", + "gap_remove_whitelist": "0x020064b1", + "gap_rmv_adv_set": "0x0200652d", + "gap_rmv_dev_from_periodic_list": "0x02006539", + "gap_rx_test_v2": "0x02006549", + "gap_rx_test_v3": "0x02006559", + "gap_set_adv_set_random_addr": "0x020065a5", + "gap_set_callback_for_next_hci": "0x020065e1", + "gap_set_connection_cte_request_enable": "0x02006601", + "gap_set_connection_cte_response_enable": "0x0200661d", + "gap_set_connection_cte_rx_param": "0x0200662d", + "gap_set_connection_cte_tx_param": "0x02006681", + "gap_set_connection_parameter_range": "0x020066cd", + "gap_set_connectionless_cte_tx_enable": "0x020066e5", + "gap_set_connectionless_cte_tx_param": "0x020066f5", + "gap_set_connectionless_iq_sampling_enable": "0x02006751", + "gap_set_data_length": "0x020067ad", + "gap_set_def_phy": "0x020067c5", + "gap_set_ext_adv_data": "0x020067d5", + "gap_set_ext_adv_enable": "0x020067ed", + "gap_set_ext_adv_para": "0x0200685d", + "gap_set_ext_scan_enable": "0x0200692d", + "gap_set_ext_scan_para": "0x02006945", + "gap_set_ext_scan_response_data": "0x020069e5", + "gap_set_host_channel_classification": "0x020069fd", + "gap_set_periodic_adv_data": "0x02006a0d", + "gap_set_periodic_adv_enable": "0x02006a7d", + "gap_set_periodic_adv_para": "0x02006a8d", + "gap_set_periodic_adv_rx_enable": "0x02006aa5", + "gap_set_phy": "0x02006ab5", + "gap_set_random_device_address": "0x02006ad1", + "gap_start_ccm": "0x02006b01", + "gap_test_end": "0x02006b49", + "gap_tx_test_v2": "0x02006b55", + "gap_tx_test_v4": "0x02006b6d", + "gap_update_connection_parameters": "0x02006b91", + "gap_vendor_tx_continuous_wave": "0x02006bd5", + "gatt_client_cancel_write": "0x020070fd", + "gatt_client_discover_characteristic_descriptors": "0x02007123", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x02007163", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x020071b3", + "gatt_client_discover_characteristics_for_service": "0x02007203", + "gatt_client_discover_primary_services": "0x02007239", + "gatt_client_discover_primary_services_by_uuid128": "0x0200726b", + "gatt_client_discover_primary_services_by_uuid16": "0x020072af", + "gatt_client_execute_write": "0x020072ed", + "gatt_client_find_included_services_for_service": "0x02007313", + "gatt_client_get_mtu": "0x02007341", + "gatt_client_is_ready": "0x02007405", + "gatt_client_listen_for_characteristic_value_updates": "0x0200741b", + "gatt_client_prepare_write": "0x0200743d", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007479", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020074a3", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020074a9", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x020074d7", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020074dd", + "gatt_client_read_multiple_characteristic_values": "0x0200750b", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x0200753b", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007569", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x020075b5", + "gatt_client_register_handler": "0x02007601", + "gatt_client_reliable_write_long_value_of_characteristic": "0x0200760d", + "gatt_client_signed_write_without_response": "0x02007a41", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007b05", + "gatt_client_write_client_characteristic_configuration": "0x02007b3f", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007b91", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007ba1", + "gatt_client_write_long_value_of_characteristic": "0x02007bdd", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007bed", + "gatt_client_write_value_of_characteristic": "0x02007c29", + "gatt_client_write_value_of_characteristic_without_response": "0x02007c5f", + "hci_add_event_handler": "0x02009255", + "hci_power_control": "0x020099fd", + "hci_register_acl_packet_handler": "0x02009bb1", + "kv_commit": "0x0200a30d", + "kv_get": "0x0200a369", + "kv_init": "0x0200a375", + "kv_init_backend": "0x0200a3f5", + "kv_put": "0x0200a409", + "kv_remove": "0x0200a415", + "kv_remove_all": "0x0200a449", + "kv_value_modified": "0x0200a479", + "kv_value_modified_of_key": "0x0200a495", + "kv_visit": "0x0200a4a1", + "l2cap_add_event_handler": "0x0200a531", + "l2cap_can_send_packet_now": "0x0200a541", + "l2cap_create_le_credit_based_connection_request": "0x0200a705", + "l2cap_credit_based_send": "0x0200a84d", + "l2cap_credit_based_send_continue": "0x0200a879", + "l2cap_disconnect": "0x0200a8f5", + "l2cap_get_le_credit_based_connection_credits": "0x0200aae1", + "l2cap_get_peer_mtu_for_local_cid": "0x0200aafd", + "l2cap_init": "0x0200af3d", + "l2cap_le_send_flow_control_credit": "0x0200b033", + "l2cap_max_le_mtu": "0x0200b341", + "l2cap_register_packet_handler": "0x0200b469", + "l2cap_register_service": "0x0200b475", + "l2cap_request_can_send_now_event": "0x0200b585", + "l2cap_request_connection_parameter_update": "0x0200b59f", + "l2cap_send_echo_request": "0x0200ba81", + "l2cap_unregister_service": "0x0200bb61", + "le_device_db_add": "0x0200bbb9", + "le_device_db_find": "0x0200bc91", + "le_device_db_from_key": "0x0200bcbd", + "le_device_db_iter_cur": "0x0200bcc5", + "le_device_db_iter_cur_key": "0x0200bcc9", + "le_device_db_iter_init": "0x0200bccd", + "le_device_db_iter_next": "0x0200bcd5", + "le_device_db_remove_key": "0x0200bcfb", + "ll_adjust_conn_peer_tx_power": "0x0200bd29", + "ll_aes_encrypt": "0x0200bd55", + "ll_config": "0x0200bdc9", + "ll_free": "0x0200bdff", + "ll_get_heap_free_size": "0x0200be09", + "ll_hint_on_ce_len": "0x0200be1d", + "ll_legacy_adv_set_interval": "0x0200be55", + "ll_malloc": "0x0200be65", + "ll_register_hci_acl_previewer": "0x0200bf7d", + "ll_scan_set_fixed_channel": "0x0200bfe1", + "ll_set_adv_access_address": "0x0200c1f9", + "ll_set_adv_coded_scheme": "0x0200c205", + "ll_set_conn_acl_report_latency": "0x0200c23d", + "ll_set_conn_coded_scheme": "0x0200c26d", + "ll_set_conn_latency": "0x0200c299", + "ll_set_conn_tx_power": "0x0200c2c9", + "ll_set_def_antenna": "0x0200c305", + "ll_set_initiating_coded_scheme": "0x0200c325", + "ll_set_max_conn_number": "0x0200c331", + "ll_set_tx_power_range": "0x0200c3c5", + "nibble_for_char": "0x0201ee29", + "platform_calibrate_rt_clk": "0x0201eec1", "platform_call_on_stack": "0x0200213f", - "platform_config": "0x0201ef21", - "platform_controller_run": "0x0201f049", - "platform_delete_timer": "0x0201f07d", - "platform_enable_irq": "0x0201f085", - "platform_get_gen_os_driver": "0x0201f0b9", - "platform_get_link_layer_interf": "0x0201f0c5", - "platform_get_task_handle": "0x0201f0cd", - "platform_get_timer_counter": "0x0201f0e5", - "platform_get_us_time": "0x0201f0e9", - "platform_get_version": "0x0201f0ed", - "platform_hrng": "0x0201f0f5", - "platform_init_controller": "0x0201f0fd", - "platform_os_idle_resumed_hook": "0x0201f119", - "platform_patch_rf_init_data": "0x0201f11d", - "platform_post_sleep_processing": "0x0201f129", - "platform_pre_sleep_processing": "0x0201f12f", - "platform_pre_suppress_ticks_and_sleep_processing": "0x0201f135", - "platform_printf": "0x0201f139", - "platform_raise_assertion": "0x0201f14d", - "platform_rand": "0x0201f161", - "platform_read_info": "0x0201f165", - "platform_read_persistent_reg": "0x0201f195", - "platform_reset": "0x0201f1a1", - "platform_set_abs_timer": "0x0201f1b5", - "platform_set_evt_callback": "0x0201f1b9", - "platform_set_evt_callback_table": "0x0201f1cd", - "platform_set_irq_callback": "0x0201f1d9", - "platform_set_irq_callback_table": "0x0201f1f5", - "platform_set_rf_clk_source": "0x0201f201", - "platform_set_rf_init_data": "0x0201f20d", - "platform_set_rf_power_mapping": "0x0201f219", - "platform_set_timer": "0x0201f225", - "platform_shutdown": "0x0201f229", - "platform_switch_app": "0x0201f22d", - "platform_trace_raw": "0x0201f245", - "platform_write_persistent_reg": "0x0201f25d", - "printf_hexdump": "0x0201f271", - "reverse_128": "0x0201f5e9", - "reverse_24": "0x0201f5ef", - "reverse_256": "0x0201f5f5", - "reverse_48": "0x0201f5fb", - "reverse_56": "0x0201f601", - "reverse_64": "0x0201f607", - "reverse_bd_addr": "0x0201f60d", - "reverse_bytes": "0x0201f613", - "sm_add_event_handler": "0x0201f971", - "sm_address_resolution_lookup": "0x0201fac9", - "sm_authenticated": "0x0201fe45", - "sm_authorization_decline": "0x0201fe53", - "sm_authorization_grant": "0x0201fe73", - "sm_authorization_state": "0x0201fe93", - "sm_bonding_decline": "0x0201fead", - "sm_config": "0x02020301", - "sm_config_conn": "0x02020319", - "sm_encryption_key_size": "0x020204cf", - "sm_just_works_confirm": "0x02020a55", - "sm_le_device_key": "0x02020d8d", - "sm_passkey_input": "0x02020e23", - "sm_private_random_address_generation_get": "0x020211dd", - "sm_private_random_address_generation_get_mode": "0x020211e5", - "sm_private_random_address_generation_set_mode": "0x020211f1", - "sm_private_random_address_generation_set_update_period": "0x02021219", - "sm_register_external_ltk_callback": "0x02021355", - "sm_register_oob_data_callback": "0x02021361", - "sm_request_pairing": "0x0202136d", - "sm_send_security_request": "0x02021e43", - "sm_set_accepted_stk_generation_methods": "0x02021e69", - "sm_set_authentication_requirements": "0x02021e75", - "sm_set_encryption_key_size_range": "0x02021e81", - "sscanf_bd_addr": "0x020221e1", - "sysSetPublicDeviceAddr": "0x0202270d", - "uuid128_to_str": "0x02022f69", - "uuid_add_bluetooth_prefix": "0x02022fc1", - "uuid_has_bluetooth_prefix": "0x02022fe1" + "platform_config": "0x0201eec5", + "platform_controller_run": "0x0201efed", + "platform_delete_timer": "0x0201f021", + "platform_enable_irq": "0x0201f029", + "platform_get_gen_os_driver": "0x0201f05d", + "platform_get_link_layer_interf": "0x0201f069", + "platform_get_task_handle": "0x0201f071", + "platform_get_timer_counter": "0x0201f089", + "platform_get_us_time": "0x0201f08d", + "platform_get_version": "0x0201f091", + "platform_hrng": "0x0201f099", + "platform_init_controller": "0x0201f0a1", + "platform_os_idle_resumed_hook": "0x0201f0bd", + "platform_patch_rf_init_data": "0x0201f0c1", + "platform_post_sleep_processing": "0x0201f0cd", + "platform_pre_sleep_processing": "0x0201f0d3", + "platform_pre_suppress_ticks_and_sleep_processing": "0x0201f0d9", + "platform_printf": "0x0201f0dd", + "platform_raise_assertion": "0x0201f0f1", + "platform_rand": "0x0201f105", + "platform_read_info": "0x0201f109", + "platform_read_persistent_reg": "0x0201f139", + "platform_reset": "0x0201f145", + "platform_rt_rc_auto_tune": "0x0201f159", + "platform_rt_rc_auto_tune2": "0x0201f161", + "platform_rt_rc_tune": "0x0201f1e5", + "platform_set_abs_timer": "0x0201f201", + "platform_set_evt_callback": "0x0201f205", + "platform_set_evt_callback_table": "0x0201f219", + "platform_set_irq_callback": "0x0201f225", + "platform_set_irq_callback_table": "0x0201f241", + "platform_set_rf_clk_source": "0x0201f24d", + "platform_set_rf_init_data": "0x0201f259", + "platform_set_rf_power_mapping": "0x0201f265", + "platform_set_timer": "0x0201f271", + "platform_shutdown": "0x0201f275", + "platform_switch_app": "0x0201f279", + "platform_trace_raw": "0x0201f291", + "platform_write_persistent_reg": "0x0201f2a9", + "printf_hexdump": "0x0201f2bd", + "reverse_128": "0x0201f635", + "reverse_24": "0x0201f63b", + "reverse_256": "0x0201f641", + "reverse_48": "0x0201f647", + "reverse_56": "0x0201f64d", + "reverse_64": "0x0201f653", + "reverse_bd_addr": "0x0201f659", + "reverse_bytes": "0x0201f65f", + "sm_add_event_handler": "0x0201f9bd", + "sm_address_resolution_lookup": "0x0201fb15", + "sm_authenticated": "0x0201fe91", + "sm_authorization_decline": "0x0201fe9f", + "sm_authorization_grant": "0x0201febf", + "sm_authorization_state": "0x0201fedf", + "sm_bonding_decline": "0x0201fef9", + "sm_config": "0x0202034d", + "sm_config_conn": "0x02020365", + "sm_encryption_key_size": "0x0202051b", + "sm_just_works_confirm": "0x02020aa1", + "sm_le_device_key": "0x02020dd9", + "sm_passkey_input": "0x02020e6f", + "sm_private_random_address_generation_get": "0x02021229", + "sm_private_random_address_generation_get_mode": "0x02021231", + "sm_private_random_address_generation_set_mode": "0x0202123d", + "sm_private_random_address_generation_set_update_period": "0x02021265", + "sm_register_external_ltk_callback": "0x020213a1", + "sm_register_oob_data_callback": "0x020213ad", + "sm_request_pairing": "0x020213b9", + "sm_send_security_request": "0x02021e8f", + "sm_set_accepted_stk_generation_methods": "0x02021eb5", + "sm_set_authentication_requirements": "0x02021ec1", + "sm_set_encryption_key_size_range": "0x02021ecd", + "sscanf_bd_addr": "0x0202222d", + "sysSetPublicDeviceAddr": "0x02022759", + "uuid128_to_str": "0x02022fb5", + "uuid_add_bluetooth_prefix": "0x0202300d", + "uuid_has_bluetooth_prefix": "0x0202302d" } \ 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 75068ea9d..215fae868 100644 --- a/bundles/noos_mass_conn/ING9168xx/meta.json +++ b/bundles/noos_mass_conn/ING9168xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 33562624, - "size": 144384 + "size": 144472 }, "version": [ 2, 3, - 0 + 1 ] } \ 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 63f6dbeae7b3a1e63360dfa41ac51237ba3405f5..5b397780c13a32bc656f5fe15c9959c69bceda8c 100644 GIT binary patch delta 24578 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 K};h!*+jir%#)^Asvdfp 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 V6+%7BLZ0Cwl@O?Sh7ZJM{~zE)?708{ diff --git a/bundles/noos_mass_conn/ING9188xx/apis.json b/bundles/noos_mass_conn/ING9188xx/apis.json index 290cd6dd1..b2e8c42ff 100644 --- a/bundles/noos_mass_conn/ING9188xx/apis.json +++ b/bundles/noos_mass_conn/ING9188xx/apis.json @@ -184,83 +184,84 @@ "ll_set_def_antenna": "0x0000d571", "ll_set_initiating_coded_scheme": "0x0000d58d", "ll_set_max_conn_number": "0x0000d599", - "nibble_for_char": "0x0001e60d", - "platform_32k_rc_auto_tune": "0x0001e6a9", - "platform_32k_rc_tune": "0x0001e725", - "platform_calibrate_32k": "0x0001e739", + "nibble_for_char": "0x0001e61d", + "platform_calibrate_rt_clk": "0x0001e6b7", "platform_call_on_stack": "0x000040ef", - "platform_config": "0x0001e73d", - "platform_controller_run": "0x0001e861", - "platform_delete_timer": "0x0001e895", - "platform_enable_irq": "0x0001e89d", - "platform_get_gen_os_driver": "0x0001e8d5", - "platform_get_link_layer_interf": "0x0001e8e1", - "platform_get_task_handle": "0x0001e8e9", - "platform_get_timer_counter": "0x0001e901", - "platform_get_us_time": "0x0001e905", - "platform_get_version": "0x0001e909", - "platform_hrng": "0x0001e911", - "platform_init_controller": "0x0001e919", - "platform_os_idle_resumed_hook": "0x0001e935", - "platform_patch_rf_init_data": "0x0001e939", - "platform_post_sleep_processing": "0x0001e945", - "platform_pre_sleep_processing": "0x0001e94b", - "platform_pre_suppress_ticks_and_sleep_processing": "0x0001e951", - "platform_printf": "0x0001e955", - "platform_raise_assertion": "0x0001e969", - "platform_rand": "0x0001e97d", - "platform_read_info": "0x0001e981", - "platform_read_persistent_reg": "0x0001e9b1", - "platform_reset": "0x0001e9c1", - "platform_set_abs_timer": "0x0001e9e5", - "platform_set_evt_callback": "0x0001e9e9", - "platform_set_evt_callback_table": "0x0001e9fd", - "platform_set_irq_callback": "0x0001ea09", - "platform_set_irq_callback_table": "0x0001ea25", - "platform_set_rf_clk_source": "0x0001ea31", - "platform_set_rf_init_data": "0x0001ea3d", - "platform_set_rf_power_mapping": "0x0001ea49", - "platform_set_timer": "0x0001ea55", - "platform_shutdown": "0x0001ea59", - "platform_switch_app": "0x0001ea5d", - "platform_trace_raw": "0x0001ea89", - "platform_write_persistent_reg": "0x0001eaa1", - "printf_hexdump": "0x0001eab1", - "reverse_128": "0x0001ee29", - "reverse_24": "0x0001ee2f", - "reverse_256": "0x0001ee35", - "reverse_48": "0x0001ee3b", - "reverse_56": "0x0001ee41", - "reverse_64": "0x0001ee47", - "reverse_bd_addr": "0x0001ee4d", - "reverse_bytes": "0x0001ee53", - "sm_add_event_handler": "0x0001f141", - "sm_address_resolution_lookup": "0x0001f299", - "sm_authenticated": "0x0001f615", - "sm_authorization_decline": "0x0001f623", - "sm_authorization_grant": "0x0001f643", - "sm_authorization_state": "0x0001f663", - "sm_bonding_decline": "0x0001f67d", - "sm_config": "0x0001fad9", - "sm_config_conn": "0x0001faf1", - "sm_encryption_key_size": "0x0001fca7", - "sm_just_works_confirm": "0x0002022d", - "sm_le_device_key": "0x00020565", - "sm_passkey_input": "0x000205fb", - "sm_private_random_address_generation_get": "0x000209b5", - "sm_private_random_address_generation_get_mode": "0x000209bd", - "sm_private_random_address_generation_set_mode": "0x000209c9", - "sm_private_random_address_generation_set_update_period": "0x000209f1", - "sm_register_external_ltk_callback": "0x00020b2d", - "sm_register_oob_data_callback": "0x00020b39", - "sm_request_pairing": "0x00020b45", - "sm_send_security_request": "0x0002161b", - "sm_set_accepted_stk_generation_methods": "0x00021641", - "sm_set_authentication_requirements": "0x0002164d", - "sm_set_encryption_key_size_range": "0x00021659", - "sscanf_bd_addr": "0x000219b5", - "sysSetPublicDeviceAddr": "0x00021d69", - "uuid128_to_str": "0x00022509", - "uuid_add_bluetooth_prefix": "0x00022561", - "uuid_has_bluetooth_prefix": "0x00022581" + "platform_config": "0x0001e6bd", + "platform_controller_run": "0x0001e7e1", + "platform_delete_timer": "0x0001e815", + "platform_enable_irq": "0x0001e81d", + "platform_get_gen_os_driver": "0x0001e855", + "platform_get_link_layer_interf": "0x0001e861", + "platform_get_task_handle": "0x0001e869", + "platform_get_timer_counter": "0x0001e881", + "platform_get_us_time": "0x0001e885", + "platform_get_version": "0x0001e889", + "platform_hrng": "0x0001e891", + "platform_init_controller": "0x0001e899", + "platform_os_idle_resumed_hook": "0x0001e8b5", + "platform_patch_rf_init_data": "0x0001e8b9", + "platform_post_sleep_processing": "0x0001e8c5", + "platform_pre_sleep_processing": "0x0001e8cb", + "platform_pre_suppress_ticks_and_sleep_processing": "0x0001e8d1", + "platform_printf": "0x0001e8d5", + "platform_raise_assertion": "0x0001e8e9", + "platform_rand": "0x0001e8fd", + "platform_read_info": "0x0001e901", + "platform_read_persistent_reg": "0x0001e931", + "platform_reset": "0x0001e941", + "platform_rt_rc_auto_tune": "0x0001e965", + "platform_rt_rc_auto_tune2": "0x0001e96d", + "platform_rt_rc_tune": "0x0001ea11", + "platform_set_abs_timer": "0x0001ea25", + "platform_set_evt_callback": "0x0001ea29", + "platform_set_evt_callback_table": "0x0001ea3d", + "platform_set_irq_callback": "0x0001ea49", + "platform_set_irq_callback_table": "0x0001ea65", + "platform_set_rf_clk_source": "0x0001ea71", + "platform_set_rf_init_data": "0x0001ea7d", + "platform_set_rf_power_mapping": "0x0001ea89", + "platform_set_timer": "0x0001ea95", + "platform_shutdown": "0x0001ea99", + "platform_switch_app": "0x0001ea9d", + "platform_trace_raw": "0x0001eac9", + "platform_write_persistent_reg": "0x0001eae1", + "printf_hexdump": "0x0001eaf1", + "reverse_128": "0x0001ee69", + "reverse_24": "0x0001ee6f", + "reverse_256": "0x0001ee75", + "reverse_48": "0x0001ee7b", + "reverse_56": "0x0001ee81", + "reverse_64": "0x0001ee87", + "reverse_bd_addr": "0x0001ee8d", + "reverse_bytes": "0x0001ee93", + "sm_add_event_handler": "0x0001f181", + "sm_address_resolution_lookup": "0x0001f2d9", + "sm_authenticated": "0x0001f655", + "sm_authorization_decline": "0x0001f663", + "sm_authorization_grant": "0x0001f683", + "sm_authorization_state": "0x0001f6a3", + "sm_bonding_decline": "0x0001f6bd", + "sm_config": "0x0001fb19", + "sm_config_conn": "0x0001fb31", + "sm_encryption_key_size": "0x0001fce7", + "sm_just_works_confirm": "0x0002026d", + "sm_le_device_key": "0x000205a5", + "sm_passkey_input": "0x0002063b", + "sm_private_random_address_generation_get": "0x000209f5", + "sm_private_random_address_generation_get_mode": "0x000209fd", + "sm_private_random_address_generation_set_mode": "0x00020a09", + "sm_private_random_address_generation_set_update_period": "0x00020a31", + "sm_register_external_ltk_callback": "0x00020b6d", + "sm_register_oob_data_callback": "0x00020b79", + "sm_request_pairing": "0x00020b85", + "sm_send_security_request": "0x0002165b", + "sm_set_accepted_stk_generation_methods": "0x00021681", + "sm_set_authentication_requirements": "0x0002168d", + "sm_set_encryption_key_size_range": "0x00021699", + "sscanf_bd_addr": "0x000219f5", + "sysSetPublicDeviceAddr": "0x00021da9", + "uuid128_to_str": "0x00022555", + "uuid_add_bluetooth_prefix": "0x000225ad", + "uuid_has_bluetooth_prefix": "0x000225cd" } \ 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 68a18759e..df15d9711 100644 --- a/bundles/noos_mass_conn/ING9188xx/meta.json +++ b/bundles/noos_mass_conn/ING9188xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 131084 + "size": 131168 }, "version": [ 1, 9, - 40 + 41 ] } \ 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 7b9be1918bdf6a0bac725fc6a76c82bb499a0d30..b7efe292b746ca5f128c77bef40cf6c37a5419bd 100644 GIT binary patch delta 17248 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 ka`G+ZgkVK)J{Vj2e+SuNH2?qr delta 17128 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 E0QC+GRsaA1 diff --git a/bundles/noos_mass_conn/inc/bluetooth.h b/bundles/noos_mass_conn/inc/bluetooth.h index a7d216362..44c58585a 100644 --- a/bundles/noos_mass_conn/inc/bluetooth.h +++ b/bundles/noos_mass_conn/inc/bluetooth.h @@ -521,6 +521,7 @@ typedef enum { #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2 0x29 // Vendor specific subevents +#define HCI_SUBEVENT_LE_VENDOR_CONNECTION_ABORTED 0xFD #define HCI_SUBEVENT_LE_VENDOR_CHANNEL_MAP_UPDATE 0xFE #define HCI_SUBEVENT_LE_VENDOR_PRO_CONNECTIONLESS_IQ_REPORT 0xFF diff --git a/bundles/noos_mass_conn/inc/btstack_event.h b/bundles/noos_mass_conn/inc/btstack_event.h index 20ae54c5d..e5ab49a55 100644 --- a/bundles/noos_mass_conn/inc/btstack_event.h +++ b/bundles/noos_mass_conn/inc/btstack_event.h @@ -1386,6 +1386,43 @@ typedef struct le_meta_subrate_change // Time Range: 100 ms to 32 s } le_meta_subrate_change_t; +typedef struct le_meta_event_vendor_channel_map_update +{ + // connection handle + uint16_t conn_handle; + // current channel map (the lower 37 bits are used) + // channel `n` is identified by bit `(channel_map & 0x7)` of `channel_map[n / 8]` + uint8_t channel_map[5]; +} le_meta_event_vendor_channel_map_update_t; + +// @brief BLE Link Layer security context +typedef struct le_security_ctx +{ + uint8_t opaque[40]; +} le_security_ctx_t; + +typedef struct le_meta_event_vendor_connection_aborted +{ + uint16_t conn_handle; // connection handle + uint8_t role; // role (0: master, 1: slave) + phy_type_t rx_phy; // Rx PHY + phy_type_t tx_phy; // Tx PHY + uint32_t access_addr; // Access address + uint32_t crc_init; // CRC init value + uint32_t interval; // interval in us + uint16_t sup_timeout; // supervision timeout in 10ms + uint8_t channel_map[5]; // channel map (lower 37 bits) + uint8_t ch_sel_algo; // channel selection algorithm (0: ALG #1, 1: ALG #2) + uint8_t hop_inc; // frequency hopping increment (only for ALG #1) + uint8_t last_unmapped_ch; // last unmapped channel (only for ALG #1) + uint16_t slave_latency; // slave latency + uint8_t sleep_clk_acc; // sleep clock accuracy + uint64_t next_event_time; // start time of next connection event + uint16_t next_event_counter; // event counter for next connection event + uint8_t security_enabled; // is security enabled + le_security_ctx_t security; // security context (available when enabled) +} le_meta_event_vendor_connection_aborted_t; + typedef struct le_mete_event_prd_adv_subevent_data_req { uint8_t adv_handle; // Used to identify a periodic advertising train diff --git a/bundles/noos_mass_conn/inc/ll_api.h b/bundles/noos_mass_conn/inc/ll_api.h index 275c71b50..24558161d 100644 --- a/bundles/noos_mass_conn/inc/ll_api.h +++ b/bundles/noos_mass_conn/inc/ll_api.h @@ -100,14 +100,15 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co /** **************************************************************************************** - * @brief Create a connection directly (without advertising & initiating) + * @brief Create/Resume a connection directly (without advertising & initiating) * * @param[in] role connection role. master (0), slave (1) * @param[in] addr_types address types for advertiser and initiator - * bit [0] for slave, bit [1] for master + * bit [0] for slave (advertiser) + * bit [1] for master (initiator) * 0: public address; 1: random address - * @param[in] adv_addr address of advertiser - * @param[in] init_addr address of initiator + * @param[in] adv_addr address of advertiser (little-endian) + * @param[in] init_addr address of initiator (little-endian) * @param[in] rx_phy Rx PHY (1: 1M, 2: 2M, 3: Coded) * @param[in] tx_phy Tx PHY (1: 1M, 2: 2M, 3: Coded) * @param[in] access_addr access address @@ -115,21 +116,26 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co * @param[in] interval connection interval (unit: us) * @param[in] sup_timeout supervision timeout (unit: 10ms) * @param[in] channel_map channel map - * @param[in] ch_sel_algo channel selection algorithm (1 or 2) - * @param[in] hop_inc hop increment for CSA#1 ([5..16]) + * @param[in] ch_sel_algo channel selection algorithm (0: ALG #1, 1: ALG #2) + * @param[in] hop_inc hop increment for CSA#1 ([5..16]) (only for ALG #1) + * @param[in] last_unmapped_ch last unmapped channel index (only for ALG #1) * @param[in] min_ce_len information parameter about the minimum length of connection * event needed for this LE connection. * @param[in] max_ce_len information parameter about the maximum length of connection * event needed for this LE connection. - * @param[in] start_time start time of the 1st connectin event + * @param[in] start_time start time of the 1st connection event + * @param[in] event_counter event counter for the 1st connection event * @param[in] slave_latency slave latency - * @param[in] sleep_clk_acc sleep clock accuracy + * @param[in] sleep_clk_acc sleep clock accuracy (only for SLAVE role) * @param[in] sync_window slave's sync window for 1st connection event + * @param[in] security link layer security context + * NULL: security not used + * otherwise: security is used, which is `le_security_ctx_t *` in + * `le_meta_event_vendor_connection_aborted_t`. * @return 0 if successful else error code **************************************************************************************** */ -// int ll_create_conn( -// uint8_t role, +// int ll_create_conn(uint8_t role, // uint8_t addr_types, // const uint8_t *adv_addr, // const uint8_t *init_addr, @@ -142,12 +148,15 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co // const uint8_t *channel_map, // uint8_t ch_sel_algo, // uint8_t hop_inc, +// uint8_t last_unmapped_ch, // uint16_t min_ce_len, // uint16_t max_ce_len, // uint64_t start_time, +// uint16_t event_counter, // uint16_t slave_latency, // uint8_t sleep_clk_acc, -// uint32_t sync_window); +// uint32_t sync_window, +// const void *security); // WARNING: ^^^ this API is not available in this release @@ -242,6 +251,20 @@ void ll_set_conn_latency(uint16_t conn_handle, int latency); // WARNING: ^^^ this API is not available in this release +/** + **************************************************************************************** + * @brief Abort an existing connection + * + * After a connection is aborted, `HCI_SUBEVENT_VENDOR_CONNECTION_ABORTED` is emitted. + * + * @param[in] conn_handle handle of an existing connection + * @return 0 if aborting is ongoing else non-0 + **************************************************************************************** + */ +// int ll_conn_abort(uint16_t conn_handle); +// WARNING: ^^^ this API is not available in this release + + /** **************************************************************************************** * @brief Set default antenna ID diff --git a/bundles/noos_mass_conn/inc/platform_api.h b/bundles/noos_mass_conn/inc/platform_api.h index 2c7815798..bbc633bd3 100644 --- a/bundles/noos_mass_conn/inc/platform_api.h +++ b/bundles/noos_mass_conn/inc/platform_api.h @@ -409,7 +409,7 @@ uint8_t platform_read_persistent_reg(void); * ING918: starting from 0x20000000, 64KiB * ING916: starting from 0x20000000, 16KiB * - * @param[in] duration_cycles Duration before power on again (measured in cycles of 32k clock) + * @param[in] duration_cycles Duration before power on again (measured in cycles of real time clock) * Minimum value: 825 cycles (about 25.18ms) * When = 0: only power on when external wake up source is asserted * @param[in] p_retention_data Pointer to the start of data to be retained @@ -430,13 +430,18 @@ typedef enum PLATFORM_CFG_LOG_HCI, // flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_POWER_SAVING, // flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_TRACE_MASK, // flag is bitmap of platform_trace_item_t. default: 0 - PLATFORM_CFG_RC32K_EN, // Enable/Disable RC 32k clock. Default: Enable - PLATFORM_CFG_OSC32K_EN, // Enable/Disable 32k crystal oscillator. Default: Enable - PLATFORM_CFG_32K_CLK, // 32k clock selection. flag is platform_32k_clk_src_t. default: PLATFORM_32K_RC - // Note 1: When modifying this configuration, both RC32K and OSC32K should be ENABLED. + PLATFORM_CFG_RT_RC_EN, // Enable/Disable internal real time RC clock. Default: Enable + PLATFORM_CFG_RC32K_EN = PLATFORM_CFG_RT_RC_EN, + PLATFORM_CFG_RT_OSC_EN, // Enable/Disable external real time crystal oscillator. Default: Enable + PLATFORM_CFG_OSC32K_EN = PLATFORM_CFG_RT_OSC_EN, + PLATFORM_CFG_RT_CLK, // real time clock selection. flag is platform_rt_clk_src_t. default: PLATFORM_RT_RC + // Note 1: When modifying this configuration, both RT_RC and RT_OSC should be ENABLED. // Note 2: Unused clock can be disabled. - PLATFORM_CFG_32K_CLK_ACC, // Configure 32k clock accuracy in ppm. - PLATFORM_CFG_32K_CALI_PERIOD, // 32K clock auto-calibration period in seconds. Default: 3600 * 2 + PLATFORM_CFG_32K_CLK = PLATFORM_CFG_RT_CLK, + PLATFORM_CFG_RT_CLK_ACC, // Configure real time clock accuracy in ppm. + PLATFORM_CFG_32K_CLK_ACC = PLATFORM_CFG_RT_CLK_ACC, + PLATFORM_CFG_RT_CLK_CALI_PERIOD, // real time clock auto-calibration period in seconds. Default: 3600 * 2 + PLATFORM_CFG_32K_CALI_PERIOD = PLATFORM_CFG_RT_CLK_CALI_PERIOD, PLATFORM_CFG_PS_DBG_0, // debugging parameter PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION, // sleep time reduction (deep sleep mode) in us. (default: ~550us) PLATFORM_CFG_PS_DBG_1 = PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION, // obsoleted @@ -469,9 +474,13 @@ typedef enum typedef enum { - PLATFORM_32K_OSC, // external 32k crystal oscillator - PLATFORM_32K_RC // internal RC 32k clock -} platform_32k_clk_src_t; + PLATFORM_RT_OSC, // external crystal oscillator + PLATFORM_32K_OSC = PLATFORM_RT_OSC, + PLATFORM_RT_RC, // internal RC clock + PLATFORM_32K_RC = PLATFORM_RT_RC, +} platform_rt_clk_src_t; + +#define platform_32k_clk_src_t platform_rt_clk_src_t #define PLATFORM_CFG_ENABLE 1 #define PLATFORM_CFG_DISABLE 0 @@ -488,11 +497,13 @@ void platform_config(const platform_cfg_item_t item, const uint32_t flag); typedef enum { - PLATFORM_INFO_OSC32K_STATUS, // Read status of 32k crystal oscillator. (0: not OK; Non-0: OK) + PLATFORM_INFO_RT_OSC_STATUS, // Read status of real time crystal oscillator. (0: not OK; Non-0: OK) // "OK" means running. - // For ING916: this clock become running **after** selected as 32k + // For ING916: this clock become running **after** selected as real time clock // clock source. - PLATFORM_INFO_32K_CALI_VALUE, // Read current 32k clock calibration result. + PLATFORM_INFO_OSC32K_STATUS = PLATFORM_INFO_RT_OSC_STATUS, + PLATFORM_INFO_RT_CLK_CALI_VALUE, // Read current real time clock calibration result. + PLATFORM_INFO_32K_CALI_VALUE = PLATFORM_INFO_RT_CLK_CALI_VALUE, PLATFOFM_INFO_IRQ_NUMBER = 50, // Get the underline IRQ number of a platform IRQ // for example, platform_read_info(PLATFOFM_INFO_IRQ_NUMBER + PLATFORM_CB_IRQ_UART0) PLATFOFM_INFO_NUMBER = 255, @@ -510,36 +521,52 @@ uint32_t platform_read_info(const platform_info_item_t item); /** **************************************************************************************** - * @brief Do 32k clock calibration and get the calibration value. + * @brief Calibrate real-time RC clock and get the calibration value. * - * 32K clock auto-calibration timer is also reset, which means that next auto-calibration - * is supposed to be carried out after `PLATFORM_CFG_32K_CALI_PERIOD` seconds. + * Real time clock auto-calibration timer is also reset, which means that next auto-calibration + * is supposed to be carried out after `PLATFORM_CFG_RT_CLK_CALI_PERIOD` seconds. * * @return Calibration value. **************************************************************************************** */ -uint32_t platform_calibrate_32k(void); +uint32_t platform_calibrate_rt_clk(void); /** **************************************************************************************** - * @brief Tune internal the 32k RC clock with `value`. + * @brief Tune internal the real-time RC clock with `value`. * - * @param[in] value Value used to tune the clock (returned by `platform_32k_rc_auto_tune`) + * @param[in] value Value used to tune the clock (returned by `platform_rt_rc_auto_tune`) **************************************************************************************** */ -void platform_32k_rc_tune(uint16_t value); +void platform_rt_rc_tune(uint16_t value); /** **************************************************************************************** - * @brief Automatically tune the internal 32k RC clock, and get the tuning value. + * @brief Automatically tune the internal real time RC clock, and get the tuning value. * - * Note: This operation costs ~250ms. It is recommended to call this once and store the - * returned value into NVM for later usage. + * This is equivalent to `platform_rt_rc_auto_tune2(65536000000 / frequency)`. * * @return Value used to tune the clock **************************************************************************************** */ -uint16_t platform_32k_rc_auto_tune(void); +uint16_t platform_rt_rc_auto_tune(void); + +#define platform_calibrate_32k platform_calibrate_rt_clk +#define platform_32k_rc_tune platform_rt_rc_tune +#define platform_32k_rc_auto_tune platform_rt_rc_auto_tune + +/** + **************************************************************************************** + * @brief Automatically tune the internal real-time RC clock to a target frequency, and + * get the tuning value. + * + * Note: This operation costs ~250ms. + * + * @param[in] target_frequency target frequency of tuning (Hz) + * @return Value used to tune the clock + **************************************************************************************** + */ +uint16_t platform_rt_rc_auto_tune2(uint32_t target_frequency); /** **************************************************************************************** diff --git a/bundles/noos_mini/ING9168xx/apis.json b/bundles/noos_mini/ING9168xx/apis.json index cf9886307..646b1421a 100644 --- a/bundles/noos_mini/ING9168xx/apis.json +++ b/bundles/noos_mini/ING9168xx/apis.json @@ -17,21 +17,21 @@ "att_set_db": "0x02004c35", "att_set_read_callback": "0x02004c49", "att_set_write_callback": "0x02004c55", - "bd_addr_cmp": "0x02004e29", - "bd_addr_copy": "0x02004e2f", - "bd_addr_to_str": "0x02004e39", - "big_endian_read_16": "0x02004e71", - "big_endian_read_32": "0x02004e79", - "big_endian_store_16": "0x02004e8d", - "big_endian_store_32": "0x02004e99", - "btstack_config": "0x02004ec5", - "btstack_memory_pool_create": "0x02005013", - "btstack_memory_pool_free": "0x0200503d", - "btstack_memory_pool_get": "0x0200509d", - "btstack_push_user_msg": "0x020050e5", - "btstack_push_user_runnable": "0x020050f1", - "btstack_reset": "0x020050fd", - "char_for_nibble": "0x0200530b", + "bd_addr_cmp": "0x02004e25", + "bd_addr_copy": "0x02004e2b", + "bd_addr_to_str": "0x02004e35", + "big_endian_read_16": "0x02004e6d", + "big_endian_read_32": "0x02004e75", + "big_endian_store_16": "0x02004e89", + "big_endian_store_32": "0x02004e95", + "btstack_config": "0x02004ec1", + "btstack_memory_pool_create": "0x0200500f", + "btstack_memory_pool_free": "0x02005039", + "btstack_memory_pool_get": "0x02005099", + "btstack_push_user_msg": "0x020050e1", + "btstack_push_user_runnable": "0x020050ed", + "btstack_reset": "0x020050f9", + "char_for_nibble": "0x02005307", "gap_add_dev_to_periodic_list": "0x02005c75", "gap_add_whitelist": "0x02005c85", "gap_aes_encrypt": "0x02005c91", @@ -185,83 +185,84 @@ "ll_set_initiating_coded_scheme": "0x0200bd41", "ll_set_max_conn_number": "0x0200bd4d", "ll_set_tx_power_range": "0x0200bde1", - "nibble_for_char": "0x0201bf09", - "platform_32k_rc_auto_tune": "0x0201bf81", - "platform_32k_rc_tune": "0x0201bfcd", - "platform_calibrate_32k": "0x0201bfe9", + "nibble_for_char": "0x0201bf19", + "platform_calibrate_rt_clk": "0x0201bf8f", "platform_call_on_stack": "0x0200213f", - "platform_config": "0x0201bfed", + "platform_config": "0x0201bf95", "platform_controller_run": "0x2000015b", - "platform_delete_timer": "0x0201c115", - "platform_enable_irq": "0x0201c11d", - "platform_get_gen_os_driver": "0x0201c171", - "platform_get_link_layer_interf": "0x0201c17d", - "platform_get_task_handle": "0x0201c185", - "platform_get_timer_counter": "0x0201c19d", - "platform_get_us_time": "0x0201c1a1", - "platform_get_version": "0x0201c1a5", - "platform_hrng": "0x0201c1ad", + "platform_delete_timer": "0x0201c0bd", + "platform_enable_irq": "0x0201c0c5", + "platform_get_gen_os_driver": "0x0201c119", + "platform_get_link_layer_interf": "0x0201c125", + "platform_get_task_handle": "0x0201c12d", + "platform_get_timer_counter": "0x0201c145", + "platform_get_us_time": "0x0201c149", + "platform_get_version": "0x0201c14d", + "platform_hrng": "0x0201c155", "platform_init_controller": "0x20000145", "platform_os_idle_resumed_hook": "0x200003cf", - "platform_patch_rf_init_data": "0x0201c1b5", + "platform_patch_rf_init_data": "0x0201c15d", "platform_post_sleep_processing": "0x200003c9", "platform_pre_sleep_processing": "0x200003c3", "platform_pre_suppress_ticks_and_sleep_processing": "0x200003bf", - "platform_printf": "0x0201c1c1", - "platform_raise_assertion": "0x0201c1d5", - "platform_rand": "0x0201c1e9", - "platform_read_info": "0x0201c1ed", - "platform_read_persistent_reg": "0x0201c21d", - "platform_reset": "0x0201c229", - "platform_set_abs_timer": "0x0201c23d", - "platform_set_evt_callback": "0x0201c241", - "platform_set_evt_callback_table": "0x0201c255", - "platform_set_irq_callback": "0x0201c261", - "platform_set_irq_callback_table": "0x0201c27d", - "platform_set_rf_clk_source": "0x0201c289", - "platform_set_rf_init_data": "0x0201c295", - "platform_set_rf_power_mapping": "0x0201c2a1", - "platform_set_timer": "0x0201c2ad", - "platform_shutdown": "0x0201c2b1", - "platform_switch_app": "0x0201c2b5", - "platform_trace_raw": "0x0201c2cd", - "platform_write_persistent_reg": "0x0201c2e5", - "printf_hexdump": "0x0201c2f9", - "reverse_128": "0x0201c5f9", - "reverse_24": "0x0201c5ff", - "reverse_256": "0x0201c605", - "reverse_48": "0x0201c60b", - "reverse_56": "0x0201c611", - "reverse_64": "0x0201c617", - "reverse_bd_addr": "0x0201c61d", - "reverse_bytes": "0x0201c623", - "sm_add_event_handler": "0x0201c929", - "sm_address_resolution_lookup": "0x0201ca81", - "sm_authenticated": "0x0201cdfd", - "sm_authorization_decline": "0x0201ce0b", - "sm_authorization_grant": "0x0201ce2b", - "sm_authorization_state": "0x0201ce4b", - "sm_bonding_decline": "0x0201ce65", - "sm_config": "0x0201d2b9", - "sm_config_conn": "0x0201d2d1", - "sm_encryption_key_size": "0x0201d487", - "sm_just_works_confirm": "0x0201da0d", - "sm_le_device_key": "0x0201dd45", - "sm_passkey_input": "0x0201dddb", - "sm_private_random_address_generation_get": "0x0201e195", - "sm_private_random_address_generation_get_mode": "0x0201e19d", - "sm_private_random_address_generation_set_mode": "0x0201e1a9", - "sm_private_random_address_generation_set_update_period": "0x0201e1d1", - "sm_register_external_ltk_callback": "0x0201e30d", - "sm_register_oob_data_callback": "0x0201e319", - "sm_request_pairing": "0x0201e325", - "sm_send_security_request": "0x0201edfb", - "sm_set_accepted_stk_generation_methods": "0x0201ee21", - "sm_set_authentication_requirements": "0x0201ee2d", - "sm_set_encryption_key_size_range": "0x0201ee39", - "sscanf_bd_addr": "0x0201f199", - "sysSetPublicDeviceAddr": "0x0201f24d", - "uuid128_to_str": "0x0201fa09", - "uuid_add_bluetooth_prefix": "0x0201fa61", - "uuid_has_bluetooth_prefix": "0x0201fa81" + "platform_printf": "0x0201c169", + "platform_raise_assertion": "0x0201c17d", + "platform_rand": "0x0201c191", + "platform_read_info": "0x0201c195", + "platform_read_persistent_reg": "0x0201c1c5", + "platform_reset": "0x0201c1d1", + "platform_rt_rc_auto_tune": "0x0201c1e5", + "platform_rt_rc_auto_tune2": "0x0201c1ed", + "platform_rt_rc_tune": "0x0201c271", + "platform_set_abs_timer": "0x0201c28d", + "platform_set_evt_callback": "0x0201c291", + "platform_set_evt_callback_table": "0x0201c2a5", + "platform_set_irq_callback": "0x0201c2b1", + "platform_set_irq_callback_table": "0x0201c2cd", + "platform_set_rf_clk_source": "0x0201c2d9", + "platform_set_rf_init_data": "0x0201c2e5", + "platform_set_rf_power_mapping": "0x0201c2f1", + "platform_set_timer": "0x0201c2fd", + "platform_shutdown": "0x0201c301", + "platform_switch_app": "0x0201c305", + "platform_trace_raw": "0x0201c31d", + "platform_write_persistent_reg": "0x0201c335", + "printf_hexdump": "0x0201c349", + "reverse_128": "0x0201c649", + "reverse_24": "0x0201c64f", + "reverse_256": "0x0201c655", + "reverse_48": "0x0201c65b", + "reverse_56": "0x0201c661", + "reverse_64": "0x0201c667", + "reverse_bd_addr": "0x0201c66d", + "reverse_bytes": "0x0201c673", + "sm_add_event_handler": "0x0201c979", + "sm_address_resolution_lookup": "0x0201cad1", + "sm_authenticated": "0x0201ce4d", + "sm_authorization_decline": "0x0201ce5b", + "sm_authorization_grant": "0x0201ce7b", + "sm_authorization_state": "0x0201ce9b", + "sm_bonding_decline": "0x0201ceb5", + "sm_config": "0x0201d309", + "sm_config_conn": "0x0201d321", + "sm_encryption_key_size": "0x0201d4d7", + "sm_just_works_confirm": "0x0201da5d", + "sm_le_device_key": "0x0201dd95", + "sm_passkey_input": "0x0201de2b", + "sm_private_random_address_generation_get": "0x0201e1e5", + "sm_private_random_address_generation_get_mode": "0x0201e1ed", + "sm_private_random_address_generation_set_mode": "0x0201e1f9", + "sm_private_random_address_generation_set_update_period": "0x0201e221", + "sm_register_external_ltk_callback": "0x0201e35d", + "sm_register_oob_data_callback": "0x0201e369", + "sm_request_pairing": "0x0201e375", + "sm_send_security_request": "0x0201ee4b", + "sm_set_accepted_stk_generation_methods": "0x0201ee71", + "sm_set_authentication_requirements": "0x0201ee7d", + "sm_set_encryption_key_size_range": "0x0201ee89", + "sscanf_bd_addr": "0x0201f1e9", + "sysSetPublicDeviceAddr": "0x0201f29d", + "uuid128_to_str": "0x0201fa59", + "uuid_add_bluetooth_prefix": "0x0201fab1", + "uuid_has_bluetooth_prefix": "0x0201fad1" } \ No newline at end of file diff --git a/bundles/noos_mini/ING9168xx/meta.json b/bundles/noos_mini/ING9168xx/meta.json index d76a23456..e13905dde 100644 --- a/bundles/noos_mini/ING9168xx/meta.json +++ b/bundles/noos_mini/ING9168xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 33562624, - "size": 144840 + "size": 144932 }, "version": [ 2, 3, - 0 + 1 ] } \ No newline at end of file diff --git a/bundles/noos_mini/ING9168xx/platform.bin b/bundles/noos_mini/ING9168xx/platform.bin index 3244dbfd96609f5ed03d5f1b8739d87a0c902029..01554f8eedefeae987ff648cf702683120f2c714 100644 GIT binary patch delta 18766 zcmZv^3tUx2_XfPzKId?_%0WaxK+XY?gQ$RtfLAWM0TI!ZOw9x@3FZZFiK(xUnwX;4 z&PHFeu(Gr=1tdhpOKD|hL22e&7G{b!hRHgxJ?`v z-kpMK=7i@f=|}PF$Xzb019?6+P<&DUrr%C07uj5O#Hb{1eZWsgj4l*tSTA}<<T&8V&LZO#ki?ll%AYf6Mn;b{76sfwmhbD5#xwqfJpRQ{@KJ1MDo ze>a>DQN)YeF%%yYUgxHHik2sXV>9X!Rh2fe*D<}=UtObI? zu*t#c+nPwLG&Gu38A`)OBd7nPsZRmvUNtsq5*z-q5dWPxCGL+1IaO4v61W0SfvY0z zmtk&uZPF2owm^P58>Yh3L2>$kDP$Du2E@>Mv1Pz2uNceTO~K*wgvtWWFk4(Sa3s0c z92)oxMRT5lS0mq_eo|NI`*B`pn^4#UcOP9e(zM7EvD`98qY} z7;3B2(tJXJRE)oi`^CC%n+=*<2tvq?fF;X>Y1aQ=?INdY~{w zh!T|A=5)CvQ!E{P(f1d}Ize@>j5}=NHSs1r*WK_#O@2ZePa1JwlFm>V6VHLX! z??WfVq~Rm+yK?wPaetu+dG0l}oME?#(<__g!Iod{eoTWZ!%)s=a0L~{)m%}!+?xp_ z{IO&UM}+F+dgScG@AbVvr^s|Gc>N_lZ_~EYl1|zKBNolQ|CC8q55|!0WJ+drYkeXZ z{lDke>SOU7T&sNh;vH_#|1tlHDHxn2%N=*VZArZq?I<%!U!f>P6R#^>5@7g1TszWV z?P^kHIHYUho{=GI-A(EYENflrd^xYp*x4_K^u^IlGdR9^IHw((#A#(d;=$Q{xpkyt zkk&p;MHqZl z>`_m&`G37War8N>_@Cr3DiCeSS%LDPu15uV+3^_A(tid%KgHL}IpoOAm{pYimspw- z)K!BQ%CjspKk+EX1z5$;Ql8;CtH`I0;a#obxYX`GaS&ZHk7o@#JABb1erm5tXw}?rj zHq&q7xlz06l9)d_sO#IP`S<%~ox~_Y!bdOkIs0GP;mH0@^b-90o%pX@Z{+IHqyM)M z@CM#43&Cn}f)L~Eu^e1m%M$O)mpSQ5#0BXS=&X1u-5>kPmGnEbK|GTYPI2PRj5r@J zdmPj_XL!d!P~ZWEAH~SbOnO&boH?346YDY)=u@#RGcYF9zPFq{=HAc>v$lq9wM%30 ztQ9=M0u0OSJ}vTYGu3>&TDNUpuvYLhEEE&Q%%Y#g-DA=)HGhnWqbSiQ%fD;AZR;)F zwwc>r3jR>bF+YQ!LmZN|gx(PkX2sJ^@kZ7P$`_}NjiM@X!`MjLBOV-^PAkR7V{^nu zW3^r%7<-hYKx+ka0S2&`9YTG@ZP{_WuSNVKdjOfl$JuFgMNAqO<=flN8BUsH^{lB? z3a;R(UR*vd3e)}WxM`FqTE^v4v^XIr0kt;e^b2_Xl%}EI9YYE>!aFX-!Ppe#I$maR z{Nw=fR!$FkDAM>i`j0qp{6OrSbI13i1L6++zJYvS@#pbjv_dqE&!P$V4f!8VE5$_< zqWDM?n(8KgHsMY0o%X%kPWLQJ_4$uh=w{e1PI#scBkne_AFUD-Ca$C`v1($zkL$5s zT5XZrVXc7eH^|wu@@xKrwjo02+%_62&-a z-kIFP|GG`dDH^rK0aZJ+#)fC{C-eWK_`~Ev-yj=z%HQy;jniA4s@LC;DrP-5k*3zX z`7Z>Lr@;a=9>80ZNA{U-75&O-2|9^98uFX^^_~#trpK~VB3u3~H3Ciz| zXEyf{F?yV+|#EDYm){-+H!&*#-#eW{+jKRWuiM*1dS)<}C7gkp0zvmgz>s)Y&o z9lmfR{Z+GO;VSZwNfRMdR;gN46stI?u%MjjmA8*yZFuP&X`#cB&1)SD(Cd9b(FVSbkanN5} z5rduEwnA=aL2;1xJ!|)|Ui&{7rYlH{>uR_wvf^wi6K@vB2M)1N$llv|6jt!#9XCGz zwvyKtXk#tX6>;Fos04Ym6q)V?jd^Ybd_iV`tDs5$X9T6^&Af2E%)QbiMO$U9VUgNk z7+WN75k>>v+_W;&|FqLSkn6}Jbl5ocsTz)ZaSX_^B8CAlnk@9RlK%7%FoZHf{dCaf7_Yzy{XDZIc*h#Hl+F8v38c+vzC_q zUD7Bn-7sO~=hhqp=iaTE507tFA5L;Aro>94#GRCDAGFfey|9l{%a5h*R+a#l>xZ&vIx1SqM*813bNc;FoZ;UVx5Jpsb+GO*nJ2^v zoBa9bLTcu1>c-QcnzfsgC~269>!o%!Gu)&UDvbTOqZl~(MOv7g9Zg){cN(>VzBwS% zb-!zzS?XnqXm&+uZ?Sz#7Tptvmq+s5Y~qXMpL@J+NOsa$N` z8bsG?+_nW$@-jC`zlfO?wH|?vfZm@r zEBBkE9-`a!IclR_FPNlMaryRl{jNDuJ2Xp@J4$`zye}N`FB7BQNTTOzX1x)rfOc88 zBgN;kRf~dPTf^<5WOuxxLcF|VH(eJOzZFe3anD;hs^_6aOk(?6Uwbr}G+`-1mkgER zyP7ZAJ>qX2uQ|NyHR8i;HHo{A@IEhDRM{JhdVaQcRGPM0W0+NA+tWhfgDkvu-^}&K zO`JpLW_aG5m#;0Uud#HueB?@ka)1tbvp4N(IDg$Xr&99Y#O4=bl{vZ@Ki{HLD znlGmBlNF`%CqQ&Cz8#Sj9;_KU7p6$WJ3vepyhN;>4$+tUB%rW zh0tiR{-cpfUqdgWX#ME0ueYg0h$tj2cTcV5b^SuT4PS|;_Qz1N*tY*1T@z~$9P&SH zp@NG>ou;JhpfQ5;Y7e4h!PW4Exa#9+^k>bLkB1X@_4`yu?qUMW<7P4b;0F3iJbrL4 z71xA+7DV)V&B#M7JXvcZt5xJN!Q!e@wtH|2!&ot)<|P+H9@iIC{NR{Q#94*1kN!gR)q_Fgg7BlUcf1w z!Elt*dKspO`Nw8aWX-u_>v*~;W;Wd5eQjd@ld)v3nQ`)vlIGWVe`%xc-qxKp&BYsx zDO6cpqIS8YUFm61S!=@1{YG$`9baYgv_;H3pGNb<^79FlCZ0RLhF6+vMtvJbFbU^g znBkRbiWX84VNhgv7}9Hgx}Z|hI`Qfc7kqw#HR{x{C=AY6L`&Uh16Ya`Rxv+h)vfvL)lLM9UbUe^HK8; zL?73z_%n(qw`T8+9i+Tuz272^YwBJz{$?NI2b>V|KI>LfaccxYr~S~9MCV1f+td8L z4ZM+r2BVTIO;!HVU~=K&gf0-&Rkv$ss~B@<;E)o5B0a~sHgl)c_mmNOp+l-QCRfc4 z{-F9TV{g7P_2DmWT3Lk8J@nA+H*y+IE5UZskKnZ8mOH6f13%mu7*gWkw3-IOpI#@m z+#bSdJFQn2ZHE*qhTipauXA`tMizB3D6Ha$yNUe5<1)YEmb>m0EV8>{NH6&qfuNrpq z$qw=5_D0QT7Uf~5jLmRJ^G_x_YM$*FMU3gXr-jTaX`4h;-D<`b?6>zWZ& z*e-Q7D+NuMCQ}|qUOezPlDC;^eti5PQGaozltyZ?L5hS$cvA}HyW2z;<5W_J`Nq*u zD<2t|$3|mdhC(M-epSpgMbc7nu_+LC!)DVux+;2`(*jR8)Xki>a~o4+<{?3yZr^qJk*q8AL-5ZkRHJu7aoT@A0YDG|nUHR#QWRa&(4 znQe7L0iIuQ+-mutJ%BSvAB&}Sf2tFA*{3HRH5XNB!tR72`Eb?XL2HBgnCrhD zZRfmw{-f@_wE6GS_sxm*ny^e*Nm{h=wix3`@(#1fPjaprZweAuI7E7WhX*aD@EvO? zleb%Ud_#$Joe|M+pGqTFKd7jWklHbW60x})V>v|2X)rrS6z)IUDzA#8FB+t4mI0s{ zMH!$eV-BMDfj(9)O!lnbd+~{sV%7Z9@ne=QIw~5aODQr)^%j`j4W3TACsKblm!}YV zhi%{~n#x%fPr68>#iu#Nz|*V7h_1Y#2v_OU7`^!xDD9(}mzl=f z?mFpsXM1;^(oJ#FsKNsUPf%QC-b#uXe&K0hItpb0D5{ki_5eXWMBhD|gO9ocR)LqH z!<2_q6jH6G$|8Bv53kuHXF=8EBamo0LoKnh`- zTq&M-cFL7zQ6md?qoGvIX1Jm36SmTgW&|!b$}`(JoSND|!3{&H&S;ZvvvxP~r5jA; zPT`ZYjlRvP2IAHmBY1hRT|x1MLnXY4k?}Ox?FB`gR$rtS+N2ZE_C*cyn2vusIZDvG zfc|604BeR`i%u2>PNa#q5qd1qHnT&y|YQnN`MPa?{!>;|Z(=g{Dn@D4ls(UXQy81wSN+{CjaFA8z*ZLgdcP}L@x>@3fVdeA+#$_o;a z!p?Y+uTT7N`E;N=&O3s${_xYHE`%)qRb~2AsjVA2hU=+~w9awQhzG6MLmAtw(oo;Isw| zuJI-RwLw_y@(N3R+B13VU7t>(D^_f2i9Cg8iq4eClc;o3r+`+bOL;0jkFboA!(6a~ zv`K$qv1ze%+N1~0Wj7MENB(P0-7u%WVKt=`$?J%iZ#VJ@|LN%pO@7+2I~w+qr49|t z&3PE?EWI04L=`LShH+cV4t0Z0DqueDTGd4>-WR61Xf9%orv3h7m4?WTPV0eL?iH7lA`&04`I z?Xh!CtFxQ4w$;qGXel7v&!(>;y`nJ+!C|BH3uxqy`3YT|9n%O8BqjS=3%&6+yQjq( zn$J9RSTFChI2{G4OW;#JkWR9RI*R0tMz&f<0hxQOT{Ffz`@UM^h;nc26XxpdJO7mN zkKiO0HK4N^igLlobe2AZPn2OH8L|MX$rfhqfoWps>eHCWQs6~quneXBT2*9 z`o-oM(xtWb~9?#7rNqwUU)>uDlgV%|{{N#C)AD9ZKf>X_c#GtB7Z zdnwx$MFVLdyBI}TKF94Fjjt!m9A*m7fy2uzst@U+2jgYGIQ^>=*p}?IUPAXwtZ8j` zVS-Vc>?3r`XqDO=u@J$2Ypy`e7>Z4;5|5%#b}Rxtr#Q3CgPOHr$IhDG(Vsn#sg5VkFrB1hggc{R)P+Cz)*q`3>m+k$Oc z(d_A**^N$*fP31OpHsOxmKx_J&vW6=#QNTTYtZ_bMurp8VyKJTH}PCn6Z^s zxtnz?KMvAg$~MJOj8~RX*~~e&8lx1$&c#u7>6?sql5L}jDl*vcdiwgwIZw)7qF0I z@dZ0$EJ~ykS@}S$$)Y#d` z06~o=ICHN8uJ6Mp4pQ$5Zf?VMFG_BebnJLM#RLvMCZD)a*rhw*+n_Rb23O_Q6@zJx z&mL1=VXO4W^mld}TRE6Q125Y`5m*ZyOL-}IrFm!a5VBgV74A#tS=C?++B9}?FfFCc zEF}S*OlC_Hpqu)$y$O`XYaQ%C0`>LmW|u7pEU)@l2kV_kFM4kC3Cc#!}W{;C7 zn@+N{Av9O_fumI_H|kJtn-O;zCZ`Ewgb4!wR;#oH2Nn0FUF^aTDn#Gnhf;)Y*wKD> z969R_s|3ydE<(j^&ilTU>bNi2ai_-{ZA7wFLn%ZZ=BygS-bEdiKiC*FPTAj zUsAI+ltj1L?@PZp!h~pndy7@wm##Y~{GySoxOj)wO#>I6|GqE%=&bMu8#xTi{R_5e z82qtq?5AP0f+n)8;h2OhHg`CDwP?0yIK_nfI|drZdnfk{D7i0nMTlH>(GWq!vh57Z#39?%YOEb zlI}~_!0r{6GXisboUIu_f#EgKPB50xyr$M6wOEzHbMS@lOW&Gv9%-C{a*oxHpy;5D zHgyISsG7^>?N6m9>cuy^6>w2f(|u_zbBus*Igbq;Ntw|JHbutiJDyJAxG%*!n^xi6 zj-ag6S`6O_3gdNh>M=Wn3W1r{R|RdsnUy7ok}CKE^G-ihYc{QMGYn@w$&k!=wjmjM zdloy8jKw{%?tC)g-$HgF1%`+#b4x|xan>&tX3a%5ITgcL&dO6Mz2C297ol?AVYn;b zs(l;ptdv_XT@$8tGkkAW3%6Htc&?mRy2cYZ=NJs}z=Wg!Q=l&>DU+FTGkj`J9F>sc zGRo!gTQ76X@i}=557%JjKZzJHaPNI7icLs^ThFog(`bQP`Uk{M!CyQJ97R)lc$)va zcUAxNj)Unsie{sG?W3?gj;-?;jlIMx3m1wswI%aTuXZ!oSdsv?qUzQNpn##z(&-Z# zP?wegIU4?)smsm)-0bpmo(FmCOm_9Ch=s&#HG1qiY-#TxOII#ASYJZgR;d2M7i6DO zDX4fogtvkn%0w{9h3Ur76?Lv7ui(Dai#f(nL|~2GWz-R48HXb@-bcu*3ed`(b~Sv& zhG${_+RbvaAh%6*7qehR_(wWC1pZ@Ahh^6_s(^>Z>lX4v8o|P|DIMbcQZ|G;jBU(z zhJ6lZ!&uzImcqY)wYy^+e6h*w@i>UiM=UM}nG4y(9PD-qwkHP){1H2sLvbNLTldSe z;Iqd#i*xV6-SeQdK$mt;E@0F>$(Q+#$BRB-)5g>EkUFcjz_rQ_O{@*EOK+H!pt>h{ zL%{FBs<=F!LPt-Asc)C&I|-IQCFsDRYc~)+ur?RolPaxT#LfK5d77$w(!Z_yW;Q!h zJFGWn=E0%n8}CWmSkeTF3jN%A8Xh;rmSL*H| z+SW3Ww$T!{ViHaE{oTa1zol+o1<56S0T*%)mizTdr1L%d|0xJ(ez_RYNh~3krXgA< z=0fSrXHqV0peVNHS*oS)*}%zoKSDy2VVv(a5#FiLyTg}}4Uu+f3;RSaSdIb@6sS=k z?{4kzVx-9w#rxP;*mIQV7Hz7~CFb3g3~bhOSbam;uIDJmUx8|#sOH+}*((fT$6+K_ z?O=aAhY7pHBBx+y-OrXzp-ouYwkcS|lbLQR#Qg&{XDZkVWZS1wg3=%xsNYScVTeY# zO{1*vNJr(oWSr>4T`DLhIWPl*JEZxpw8!y*@pUdAshw=aG&m=1?1yPkAIU83d3xyo zon7`1yGAB8dqyTS*Bcew_^P{-56hm8b?_=XH60AZvK!MOsI!>c3nT`*+bc2U0igQD zcGlRdA`rt;Iq$Btn$^C5-S!=1>MQc*Y3n&%fcCERC5xUxXXq|#ok5{)LDoD3J?=`s zGQT{mli@5k8k%A-|sEG{1%J;LVZQv$7L@8;7Sn!!{vArvFn#F^Nu6s%z;B?Puw ziXmg(=%ibtXM`N#9YL`OL;lLVW??rx%2H+_PIrLi&O#((Gi#VdQ9gRBi{TPHV4IX{ zP6P{>bY!PR+LAlc@_oQ*nC%F)@+E)7#27OeW_+I%|S@>753{Ky6oj`)>ftBtZpFMxyKq_q`BUgO^>Sj z6c+}|tMD!ab>Lh~%6n|{T&(al?DAZMKF6|@0_;Swb&Co}MQ}Bj7ed8*vK@sqP?cbE zG2CDm3o&3zSmr#+Qm4SlQ5XiZ-SaS{h3waPh-FM*aW7Fnm-$8)Lx6?Neu>_|x{_Xk zaMiN3`IPB58bhHl46z$lCgJv%f-fj`F+65_=hJlZXO8(;4ingh1=K_!m;^Ca_LObciTTeBD|%adJQOl#e??<2naLs{wP zFM(RS$<8dnj8w6xrPK!BIdBGfGmcfv`&puj4wdy4n+J6V0%&g@wxEv;S zcsa#l*-@O`p z#0pls8e7CHmcIrA*`1ZHp(*qt`*jUeK`yhc0qI|LU;YdGXXwi|hpsuFikb^cj9QJR z!81csJF4Kd!+8bTnYX2Cc4I9z)CtV1gaW5uw01?1Ykg6A5rV6EqZiBPvA3nKPiSg` z1q#0{HCUC-5ExSbSA#sIpbY;vsdSOr+tP>DQ6+NNR<ATsC+nO6^E>OvK^g4MdaTHJ=Dh)tu5N6?2J8zQTe$(EG@CVTzyy5A`n`tURj{1b z(B%zm(QDxQD#J0q2vyW?qjMaxH)2%&Q)k+U`J+)RViWz)uctM!-f3tzyJp7X4tIB} zYgJe1af0J0yE|_>Lphzn@mi*P9oBIhn<&H2Y{To=fooaq>r{$}VZvrir-3crOmXU0 z9p|cBU=bbIOjCTHap($?Q_rO6@?;ZEj*A~=ep@KT`$Kye7E9;JcniYqbGCr#Cbn%0 z1qPlqKjlNKEs8DB=N&HFUm}}%wd~9m$o(TmU`fIZ}K~iyP3FW z7MA}|#T6}&6?BCy*eer6*hI+)v&$!>=h#7!4g`GyC#-ofX)71s4mwvoVw59%3<56R z87=kR^>5@(W*7cV(Z24-Veuw&IT9D??@NfwA~cC)`-1%cJPVR%fE6_szz5MRTK&e)VOc%Asb&C zIWA(UY_@sgX0Q_Z&E`%YOrzrrr;kVU8@yD@ahz-IlFzMSu&X8w#3i^}QVh--v_gxt z#uS^8mlvCf%V$LjLy@&VQVPQnOTSD49=7!Bo7p#`|5(?&zT@)XG4 zb46afUPuydBFER-B83|7NY`1!+Z2)3VQ((jpX%C_S8!%tqEMDD-@tDM*)6+LR{%XY z-^}g2g{{>$gDWnT4CV~Zbr`F<-GCD83K=T+@w@a8>}Og798J#w5C>-$>VTysFS8I z?l#|&rm^xp(7oR<-*+%I@3ZOeP>AoFw!fX~oJZT2c}B$8_x4nRgJxi zIxmCVl73^yQ2MiLFc5g3*yKXruw>sIvy1z%g({mni z$%h_tC5g4TWFGFH;jOzRJvQPhfZ$ho3+H!gEmz^6)icZ;@!Q+de{kf@Rdmbp4&$89 zKiWvh5VSC>tzZ`!fcS>P+24A^YnzTY9R9tfEviv1;=Pc6>(Z&`>#3mNIL+-ga zBk@D=r_4-N@ougKimZTSO`2<-!T{q5gXD0Kp$+l(k?&DF?>Na`eh+8cdF;@8@Hd`k zU%y9bJ{rgD;7?PHzsdux1gEYn=zR(dnuS|&-J5Pp-gYJD(^!noykOi{Dzn~=<-AY2 z;2Tz6S8jCG95lLd+zv%J|FIHFh;}@X{&cV{?^AHJ!LDr2<9f|ip;8UhvTvqbz1iOR zol;5lP~9wIM!za6gs$Rvnw2 zW%bSpQFHQ08yO(&`A~+0f`pyQFtS zl@*kwBp)cz<4NZT(f-*|2oJ^~)mghh+hP8mQir14$DuDfP=-ZV5`rgp_Q|KTgD$X? zgEYZoj73|e%$S6evTbb7L8zAqR(}x3FV%RcCW*LiG34TS`KXp?VjW1F<47s!|6IFKGq zmveAgq6P+F2s>W`5jo86)xZ@y%5+EQI89~Oj?g}wGp(zobpD2oeOF5v&`Exu({i_U zwy0GvRNjQiB7P1-cBDCq9?u*3%09rkQPN8Cw9Dfu<22aY#i|KYw*N^k?HSx( zIG~h{LlE9!aVId}6>RYdn3)UN_7fDy8;tDJ6FAe)V_%=3Xs>6L3a&`m2!<8hYUVgW zCPktONVuF2^SMPjh|TNoud7@#HMJSDT~~8@mqsP_*gZHXmT8W&J7*}}>#?o0 zdY|ztO=zV}N@2slpa|YztDF4=c@k;Z;x8dE|6(6~N&WcW?d<0-X*{*E$g{8k_ps8l zkOd|C;ViUQF>5(Xp}uch9<&_K$cViq6sHqIHT4K`w<*HHVg1>qIQxoQvh**%NW9Mt;`cGt zH#F4kJRW5!pU*PCq2Vf}8h2ILW+VeA;Ug;9F<(D#3u4$@-$9LfaCHw+$m`$0nNDHe z=OIq+EbTmWO@H?Od6;d%?CbLst#h${*s`rzr7brGaN2*B8v}7~k>1jm@!>8X%N=`% z`F=|=0UueEkJlG*IyENauE|AE;wS#AWt5F|xk!EZ z(SNcb7ilZ}4s_i{bJ*A4!x6yEjqhzbU`h3BocT!g2CYft1vAL;A{kLt4*jf5gP}W;cGMDqnBQAI4uwxKqD?>a^Mdnk@Fw zPf*WCS@tE0*6%Un^GWC8z9GGhV6ZFv@8@OrZeHk`r8Oy&6Hium%*O1K?s(?w9S8nu3 z4i}VT`(V?VT~HuYrrR6dl<7hd4k^8i9k7z^xlE&jhFQV|m$6gIUL zaYvc$GFT;J4Al1V6z%ukh?7TMZnAXH~b(e3cgO4Q5+^qn>NWBEKu1W%LD( z2X+HK2lNBV?R0;N{=nz)8~~L61!_4i56?Y-1;8MnOs@sX?Suj617m?jz&N1XuK~bi zc#hX{Yn?A1jEvRDNC0jDCO*X^pgiEifNvsy_){DK+==Irz)D~;P^L=($}dO-?niza z@Gx)`@F;LJQ2r-qI~h&adT`un6l5UdG^@Qv4Ay1#@30VdvVFfJ%K1xOJHS;{tjE!%soR_H5#( z0v`jX0b9Y?^S}dOXgUyQ#JI;!-1KzfX8=_h#ODEbj3PcCSer)tOkggaX8~^lX9Mw- z0Y3+b(>MM_U|c5gbAg3ph%eyMP!SCk$_3zT9IREKXW@L>$MJ(_q=;9@*`0e1nr0PB&j0WJXg z$oV~q?+Sbzg|EVi;PP{8@JzreAP;Ql1qT}loz1I&{eW)3S~M66oP!r=fquXkppTyTSm1<6;&nio z(JIb%X<^w2Y4OoG8%XQ`H{d}Fwht12h;=mp*#v0 z5&?S!xDO-HALs^*11`|v>lC0ajCg+9~cbWfC?eN zDPW{0a5x$q2;7c}gMfFC9}kSe3kC!Cp{EHzFZ5LYT;egn6z8fWl7|?>uZSj2Htr^mPn3^FOemZ<5sSg zC6eRni)D#K=yHWDksNpJRaqiAF1u8gNGQI3$bh2e*1RlB6vs^gB8tKd$BX=dIy4Xu zY+o*mEEoXFec29l1jdocAJ`s-N__MkA2piVW zel#*BisO4d%Wm1|3x2Gn?qfT>*Nd*#WryN+IsPwFwf4YO~o0p!`;rBe- zI)ER-X9lxxfopw+o$er%jDB)(_1~$$zf&Cxp8q?q?rC0X$IW4Xx25{0)XVcJT}LhQ zI^VRo@85OHpVrOkIQTSg+>`Q7I<{^g@9z;8+)0|#k<0cC{Mr?YNydPc`(5X#Mrd6GS>GbKEEjF-rH!jtSyLJZrPr*xyAJbs#&@uZdQ7{vcJ zInfS*baYMbc`1bF&nkPIQ1)n4PW?s`rJVYUGOH*!II35aXOAPUQOc-Zfur4KUtByu l$)8tsr8%-){>C?7{qDu{YkhI?rqWx{r%|mKpbds>{67wAN#Xzi delta 18680 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 P(qv(jVK!2bVPF6N#*9<< delta 22856 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 VSxnxQ5}nJ@tmSEyj`(g`z5%tgVXy!I diff --git a/bundles/noos_mini/ING9188xx/apis.json b/bundles/noos_mini/ING9188xx/apis.json index f951f50e6..a1a08071d 100644 --- a/bundles/noos_mini/ING9188xx/apis.json +++ b/bundles/noos_mini/ING9188xx/apis.json @@ -32,235 +32,236 @@ "btstack_push_user_runnable": "0x000067c5", "btstack_reset": "0x000067d1", "char_for_nibble": "0x00006a95", - "gap_add_dev_to_periodic_list": "0x000073a5", - "gap_add_whitelist": "0x000073b5", - "gap_aes_encrypt": "0x000073c1", - "gap_clear_white_lists": "0x000073f9", - "gap_clr_adv_set": "0x00007405", - "gap_clr_periodic_adv_list": "0x00007411", - "gap_create_connection_cancel": "0x0000741d", - "gap_default_periodic_adv_sync_transfer_param": "0x00007429", - "gap_disconnect": "0x00007441", - "gap_disconnect_all": "0x0000746d", - "gap_ext_create_connection": "0x000074ad", - "gap_get_connection_parameter_range": "0x00007585", - "gap_le_read_channel_map": "0x000075bd", - "gap_periodic_adv_create_sync": "0x00007629", - "gap_periodic_adv_create_sync_cancel": "0x0000764d", - "gap_periodic_adv_set_info_transfer": "0x00007659", - "gap_periodic_adv_sync_transfer": "0x00007669", - "gap_periodic_adv_sync_transfer_param": "0x00007679", - "gap_periodic_adv_term_sync": "0x00007695", - "gap_read_antenna_info": "0x0000771d", - "gap_read_periodic_adv_list_size": "0x00007729", - "gap_read_phy": "0x00007735", - "gap_read_remote_used_features": "0x00007741", - "gap_read_remote_version": "0x0000774d", - "gap_read_rssi": "0x00007759", - "gap_remove_whitelist": "0x00007765", - "gap_rmv_adv_set": "0x000077e1", - "gap_rmv_dev_from_periodic_list": "0x000077ed", - "gap_rx_test_v2": "0x000077fd", - "gap_rx_test_v3": "0x0000780d", - "gap_set_adv_set_random_addr": "0x00007859", - "gap_set_callback_for_next_hci": "0x00007895", - "gap_set_connection_cte_request_enable": "0x000078b5", - "gap_set_connection_cte_response_enable": "0x000078d1", - "gap_set_connection_cte_rx_param": "0x000078e1", - "gap_set_connection_cte_tx_param": "0x00007935", - "gap_set_connection_parameter_range": "0x00007981", - "gap_set_connectionless_cte_tx_enable": "0x00007999", - "gap_set_connectionless_cte_tx_param": "0x000079a9", - "gap_set_connectionless_iq_sampling_enable": "0x00007a05", - "gap_set_data_length": "0x00007a61", - "gap_set_def_phy": "0x00007a79", - "gap_set_ext_adv_data": "0x00007a89", - "gap_set_ext_adv_enable": "0x00007aa1", - "gap_set_ext_adv_para": "0x00007b11", - "gap_set_ext_scan_enable": "0x00007be9", - "gap_set_ext_scan_para": "0x00007c01", - "gap_set_ext_scan_response_data": "0x00007ca1", - "gap_set_host_channel_classification": "0x00007cb9", - "gap_set_periodic_adv_data": "0x00007cc9", - "gap_set_periodic_adv_enable": "0x00007d39", - "gap_set_periodic_adv_para": "0x00007d49", - "gap_set_periodic_adv_rx_enable": "0x00007d61", - "gap_set_phy": "0x00007d71", - "gap_set_random_device_address": "0x00007d8d", - "gap_start_ccm": "0x00007dbd", - "gap_test_end": "0x00007e05", - "gap_tx_test_v2": "0x00007e11", - "gap_tx_test_v4": "0x00007e29", - "gap_update_connection_parameters": "0x00007e4d", - "gap_vendor_tx_continuous_wave": "0x00007e8d", - "gatt_client_cancel_write": "0x000083b5", - "gatt_client_discover_characteristic_descriptors": "0x000083db", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0000841b", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0000846b", - "gatt_client_discover_characteristics_for_service": "0x000084bb", - "gatt_client_discover_primary_services": "0x000084f1", - "gatt_client_discover_primary_services_by_uuid128": "0x00008523", - "gatt_client_discover_primary_services_by_uuid16": "0x00008567", - "gatt_client_execute_write": "0x000085a3", - "gatt_client_find_included_services_for_service": "0x000085c9", - "gatt_client_get_mtu": "0x000085f7", - "gatt_client_is_ready": "0x00008695", - "gatt_client_listen_for_characteristic_value_updates": "0x000086ab", - "gatt_client_prepare_write": "0x000086cb", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008707", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008731", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008737", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008765", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x0000876b", - "gatt_client_read_multiple_characteristic_values": "0x00008799", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x000087c9", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x000087f7", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008843", - "gatt_client_register_handler": "0x0000888d", - "gatt_client_reliable_write_long_value_of_characteristic": "0x00008899", - "gatt_client_signed_write_without_response": "0x00008c9d", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008d61", - "gatt_client_write_client_characteristic_configuration": "0x00008d9b", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008ded", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008dfd", - "gatt_client_write_long_value_of_characteristic": "0x00008e39", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008e49", - "gatt_client_write_value_of_characteristic": "0x00008e85", - "gatt_client_write_value_of_characteristic_without_response": "0x00008ebb", - "hci_add_event_handler": "0x0000a3f1", - "hci_power_control": "0x0000ab79", - "hci_register_acl_packet_handler": "0x0000ad2d", - "kv_commit": "0x0000b4bd", - "kv_get": "0x0000b519", - "kv_init": "0x0000b525", - "kv_init_backend": "0x0000b5a1", - "kv_put": "0x0000b5b5", - "kv_remove": "0x0000b5c1", - "kv_remove_all": "0x0000b5f5", - "kv_value_modified": "0x0000b625", - "kv_value_modified_of_key": "0x0000b641", - "kv_visit": "0x0000b64d", - "l2cap_add_event_handler": "0x0000b6dd", - "l2cap_can_send_packet_now": "0x0000b6ed", - "l2cap_create_le_credit_based_connection_request": "0x0000b8a9", - "l2cap_credit_based_send": "0x0000b9ed", - "l2cap_credit_based_send_continue": "0x0000ba19", - "l2cap_disconnect": "0x0000ba95", - "l2cap_get_le_credit_based_connection_credits": "0x0000bce5", - "l2cap_get_peer_mtu_for_local_cid": "0x0000bd01", - "l2cap_init": "0x0000c0d5", - "l2cap_le_send_flow_control_credit": "0x0000c1cb", - "l2cap_max_le_mtu": "0x0000c4d5", - "l2cap_register_packet_handler": "0x0000c5fd", - "l2cap_register_service": "0x0000c609", - "l2cap_request_can_send_now_event": "0x0000c719", - "l2cap_request_connection_parameter_update": "0x0000c733", - "l2cap_send_echo_request": "0x0000cc0d", - "l2cap_unregister_service": "0x0000cccd", - "le_device_db_add": "0x0000cd25", - "le_device_db_find": "0x0000cded", - "le_device_db_from_key": "0x0000ce19", - "le_device_db_iter_cur": "0x0000ce21", - "le_device_db_iter_cur_key": "0x0000ce25", - "le_device_db_iter_init": "0x0000ce29", - "le_device_db_iter_next": "0x0000ce31", - "le_device_db_remove_key": "0x0000ce57", - "ll_aes_encrypt": "0x0000ce85", - "ll_config": "0x0000cf01", - "ll_free": "0x0000cf37", - "ll_get_heap_free_size": "0x0000cf41", - "ll_hint_on_ce_len": "0x0000cf55", - "ll_legacy_adv_set_interval": "0x0000cf8d", - "ll_malloc": "0x0000cf9d", - "ll_query_timing_info": "0x0000d0d5", - "ll_register_hci_acl_previewer": "0x0000d121", - "ll_scan_set_fixed_channel": "0x0000d185", - "ll_set_adv_access_address": "0x0000d39d", - "ll_set_adv_coded_scheme": "0x0000d3a9", - "ll_set_conn_acl_report_latency": "0x0000d3d1", - "ll_set_conn_coded_scheme": "0x0000d3fd", - "ll_set_conn_latency": "0x0000d425", - "ll_set_conn_tx_power": "0x0000d451", - "ll_set_def_antenna": "0x0000d495", - "ll_set_initiating_coded_scheme": "0x0000d4b1", - "ll_set_max_conn_number": "0x0000d4bd", - "nibble_for_char": "0x0001e3f9", - "platform_32k_rc_auto_tune": "0x0001e489", - "platform_32k_rc_tune": "0x0001e505", - "platform_calibrate_32k": "0x0001e519", + "gap_add_dev_to_periodic_list": "0x000073a9", + "gap_add_whitelist": "0x000073b9", + "gap_aes_encrypt": "0x000073c5", + "gap_clear_white_lists": "0x000073fd", + "gap_clr_adv_set": "0x00007409", + "gap_clr_periodic_adv_list": "0x00007415", + "gap_create_connection_cancel": "0x00007421", + "gap_default_periodic_adv_sync_transfer_param": "0x0000742d", + "gap_disconnect": "0x00007445", + "gap_disconnect_all": "0x00007471", + "gap_ext_create_connection": "0x000074b1", + "gap_get_connection_parameter_range": "0x00007589", + "gap_le_read_channel_map": "0x000075c1", + "gap_periodic_adv_create_sync": "0x0000762d", + "gap_periodic_adv_create_sync_cancel": "0x00007651", + "gap_periodic_adv_set_info_transfer": "0x0000765d", + "gap_periodic_adv_sync_transfer": "0x0000766d", + "gap_periodic_adv_sync_transfer_param": "0x0000767d", + "gap_periodic_adv_term_sync": "0x00007699", + "gap_read_antenna_info": "0x00007721", + "gap_read_periodic_adv_list_size": "0x0000772d", + "gap_read_phy": "0x00007739", + "gap_read_remote_used_features": "0x00007745", + "gap_read_remote_version": "0x00007751", + "gap_read_rssi": "0x0000775d", + "gap_remove_whitelist": "0x00007769", + "gap_rmv_adv_set": "0x000077e5", + "gap_rmv_dev_from_periodic_list": "0x000077f1", + "gap_rx_test_v2": "0x00007801", + "gap_rx_test_v3": "0x00007811", + "gap_set_adv_set_random_addr": "0x0000785d", + "gap_set_callback_for_next_hci": "0x00007899", + "gap_set_connection_cte_request_enable": "0x000078b9", + "gap_set_connection_cte_response_enable": "0x000078d5", + "gap_set_connection_cte_rx_param": "0x000078e5", + "gap_set_connection_cte_tx_param": "0x00007939", + "gap_set_connection_parameter_range": "0x00007985", + "gap_set_connectionless_cte_tx_enable": "0x0000799d", + "gap_set_connectionless_cte_tx_param": "0x000079ad", + "gap_set_connectionless_iq_sampling_enable": "0x00007a09", + "gap_set_data_length": "0x00007a65", + "gap_set_def_phy": "0x00007a7d", + "gap_set_ext_adv_data": "0x00007a8d", + "gap_set_ext_adv_enable": "0x00007aa5", + "gap_set_ext_adv_para": "0x00007b15", + "gap_set_ext_scan_enable": "0x00007bed", + "gap_set_ext_scan_para": "0x00007c05", + "gap_set_ext_scan_response_data": "0x00007ca5", + "gap_set_host_channel_classification": "0x00007cbd", + "gap_set_periodic_adv_data": "0x00007ccd", + "gap_set_periodic_adv_enable": "0x00007d3d", + "gap_set_periodic_adv_para": "0x00007d4d", + "gap_set_periodic_adv_rx_enable": "0x00007d65", + "gap_set_phy": "0x00007d75", + "gap_set_random_device_address": "0x00007d91", + "gap_start_ccm": "0x00007dc1", + "gap_test_end": "0x00007e09", + "gap_tx_test_v2": "0x00007e15", + "gap_tx_test_v4": "0x00007e2d", + "gap_update_connection_parameters": "0x00007e51", + "gap_vendor_tx_continuous_wave": "0x00007e91", + "gatt_client_cancel_write": "0x000083b9", + "gatt_client_discover_characteristic_descriptors": "0x000083df", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0000841f", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0000846f", + "gatt_client_discover_characteristics_for_service": "0x000084bf", + "gatt_client_discover_primary_services": "0x000084f5", + "gatt_client_discover_primary_services_by_uuid128": "0x00008527", + "gatt_client_discover_primary_services_by_uuid16": "0x0000856b", + "gatt_client_execute_write": "0x000085a7", + "gatt_client_find_included_services_for_service": "0x000085cd", + "gatt_client_get_mtu": "0x000085fb", + "gatt_client_is_ready": "0x00008699", + "gatt_client_listen_for_characteristic_value_updates": "0x000086af", + "gatt_client_prepare_write": "0x000086cf", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x0000870b", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008735", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x0000873b", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008769", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x0000876f", + "gatt_client_read_multiple_characteristic_values": "0x0000879d", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x000087cd", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x000087fb", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008847", + "gatt_client_register_handler": "0x00008891", + "gatt_client_reliable_write_long_value_of_characteristic": "0x0000889d", + "gatt_client_signed_write_without_response": "0x00008ca1", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008d65", + "gatt_client_write_client_characteristic_configuration": "0x00008d9f", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008df1", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008e01", + "gatt_client_write_long_value_of_characteristic": "0x00008e3d", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008e4d", + "gatt_client_write_value_of_characteristic": "0x00008e89", + "gatt_client_write_value_of_characteristic_without_response": "0x00008ebf", + "hci_add_event_handler": "0x0000a3f5", + "hci_power_control": "0x0000ab7d", + "hci_register_acl_packet_handler": "0x0000ad31", + "kv_commit": "0x0000b4c1", + "kv_get": "0x0000b51d", + "kv_init": "0x0000b529", + "kv_init_backend": "0x0000b5a5", + "kv_put": "0x0000b5b9", + "kv_remove": "0x0000b5c5", + "kv_remove_all": "0x0000b5f9", + "kv_value_modified": "0x0000b629", + "kv_value_modified_of_key": "0x0000b645", + "kv_visit": "0x0000b651", + "l2cap_add_event_handler": "0x0000b6e1", + "l2cap_can_send_packet_now": "0x0000b6f1", + "l2cap_create_le_credit_based_connection_request": "0x0000b8ad", + "l2cap_credit_based_send": "0x0000b9f1", + "l2cap_credit_based_send_continue": "0x0000ba1d", + "l2cap_disconnect": "0x0000ba99", + "l2cap_get_le_credit_based_connection_credits": "0x0000bce9", + "l2cap_get_peer_mtu_for_local_cid": "0x0000bd05", + "l2cap_init": "0x0000c0d9", + "l2cap_le_send_flow_control_credit": "0x0000c1cf", + "l2cap_max_le_mtu": "0x0000c4d9", + "l2cap_register_packet_handler": "0x0000c601", + "l2cap_register_service": "0x0000c60d", + "l2cap_request_can_send_now_event": "0x0000c71d", + "l2cap_request_connection_parameter_update": "0x0000c737", + "l2cap_send_echo_request": "0x0000cc11", + "l2cap_unregister_service": "0x0000ccd1", + "le_device_db_add": "0x0000cd29", + "le_device_db_find": "0x0000cdf1", + "le_device_db_from_key": "0x0000ce1d", + "le_device_db_iter_cur": "0x0000ce25", + "le_device_db_iter_cur_key": "0x0000ce29", + "le_device_db_iter_init": "0x0000ce2d", + "le_device_db_iter_next": "0x0000ce35", + "le_device_db_remove_key": "0x0000ce5b", + "ll_aes_encrypt": "0x0000ce89", + "ll_config": "0x0000cf05", + "ll_free": "0x0000cf3b", + "ll_get_heap_free_size": "0x0000cf45", + "ll_hint_on_ce_len": "0x0000cf59", + "ll_legacy_adv_set_interval": "0x0000cf91", + "ll_malloc": "0x0000cfa1", + "ll_query_timing_info": "0x0000d0d9", + "ll_register_hci_acl_previewer": "0x0000d125", + "ll_scan_set_fixed_channel": "0x0000d189", + "ll_set_adv_access_address": "0x0000d3a1", + "ll_set_adv_coded_scheme": "0x0000d3ad", + "ll_set_conn_acl_report_latency": "0x0000d3d5", + "ll_set_conn_coded_scheme": "0x0000d401", + "ll_set_conn_latency": "0x0000d429", + "ll_set_conn_tx_power": "0x0000d455", + "ll_set_def_antenna": "0x0000d499", + "ll_set_initiating_coded_scheme": "0x0000d4b5", + "ll_set_max_conn_number": "0x0000d4c1", + "nibble_for_char": "0x0001e40d", + "platform_calibrate_rt_clk": "0x0001e49b", "platform_call_on_stack": "0x000040ef", - "platform_config": "0x0001e51d", - "platform_controller_run": "0x0001e641", - "platform_delete_timer": "0x0001e675", - "platform_enable_irq": "0x0001e67d", - "platform_get_gen_os_driver": "0x0001e6b5", - "platform_get_link_layer_interf": "0x0001e6c1", - "platform_get_task_handle": "0x0001e6c9", - "platform_get_timer_counter": "0x0001e6e1", - "platform_get_us_time": "0x0001e6e5", - "platform_get_version": "0x0001e6e9", - "platform_hrng": "0x0001e6f1", - "platform_init_controller": "0x0001e6f9", - "platform_os_idle_resumed_hook": "0x0001e715", - "platform_patch_rf_init_data": "0x0001e719", - "platform_post_sleep_processing": "0x0001e725", - "platform_pre_sleep_processing": "0x0001e72b", - "platform_pre_suppress_ticks_and_sleep_processing": "0x0001e731", - "platform_printf": "0x0001e735", - "platform_raise_assertion": "0x0001e749", - "platform_rand": "0x0001e75d", - "platform_read_info": "0x0001e761", - "platform_read_persistent_reg": "0x0001e791", - "platform_reset": "0x0001e7a1", - "platform_set_abs_timer": "0x0001e7c5", - "platform_set_evt_callback": "0x0001e7c9", - "platform_set_evt_callback_table": "0x0001e7dd", - "platform_set_irq_callback": "0x0001e7e9", - "platform_set_irq_callback_table": "0x0001e805", - "platform_set_rf_clk_source": "0x0001e811", - "platform_set_rf_init_data": "0x0001e81d", - "platform_set_rf_power_mapping": "0x0001e829", - "platform_set_timer": "0x0001e835", - "platform_shutdown": "0x0001e839", - "platform_switch_app": "0x0001e83d", - "platform_trace_raw": "0x0001e869", - "platform_write_persistent_reg": "0x0001e881", - "printf_hexdump": "0x0001e891", - "reverse_128": "0x0001ec01", - "reverse_24": "0x0001ec07", - "reverse_256": "0x0001ec0d", - "reverse_48": "0x0001ec13", - "reverse_56": "0x0001ec19", - "reverse_64": "0x0001ec1f", - "reverse_bd_addr": "0x0001ec25", - "reverse_bytes": "0x0001ec2b", - "sm_add_event_handler": "0x0001ef19", - "sm_address_resolution_lookup": "0x0001f071", - "sm_authenticated": "0x0001f3ed", - "sm_authorization_decline": "0x0001f3fb", - "sm_authorization_grant": "0x0001f41b", - "sm_authorization_state": "0x0001f43b", - "sm_bonding_decline": "0x0001f455", - "sm_config": "0x0001f8b1", - "sm_config_conn": "0x0001f8c9", - "sm_encryption_key_size": "0x0001fa7f", - "sm_just_works_confirm": "0x00020005", - "sm_le_device_key": "0x0002033d", - "sm_passkey_input": "0x000203d3", - "sm_private_random_address_generation_get": "0x0002078d", - "sm_private_random_address_generation_get_mode": "0x00020795", - "sm_private_random_address_generation_set_mode": "0x000207a1", - "sm_private_random_address_generation_set_update_period": "0x000207c9", - "sm_register_external_ltk_callback": "0x00020905", - "sm_register_oob_data_callback": "0x00020911", - "sm_request_pairing": "0x0002091d", - "sm_send_security_request": "0x000213f3", - "sm_set_accepted_stk_generation_methods": "0x00021419", - "sm_set_authentication_requirements": "0x00021425", - "sm_set_encryption_key_size_range": "0x00021431", - "sscanf_bd_addr": "0x0002178d", - "sysSetPublicDeviceAddr": "0x00021b41", - "uuid128_to_str": "0x000222e1", - "uuid_add_bluetooth_prefix": "0x00022339", - "uuid_has_bluetooth_prefix": "0x00022359" + "platform_config": "0x0001e4a1", + "platform_controller_run": "0x0001e5c5", + "platform_delete_timer": "0x0001e5f9", + "platform_enable_irq": "0x0001e601", + "platform_get_gen_os_driver": "0x0001e639", + "platform_get_link_layer_interf": "0x0001e645", + "platform_get_task_handle": "0x0001e64d", + "platform_get_timer_counter": "0x0001e665", + "platform_get_us_time": "0x0001e669", + "platform_get_version": "0x0001e66d", + "platform_hrng": "0x0001e675", + "platform_init_controller": "0x0001e67d", + "platform_os_idle_resumed_hook": "0x0001e699", + "platform_patch_rf_init_data": "0x0001e69d", + "platform_post_sleep_processing": "0x0001e6a9", + "platform_pre_sleep_processing": "0x0001e6af", + "platform_pre_suppress_ticks_and_sleep_processing": "0x0001e6b5", + "platform_printf": "0x0001e6b9", + "platform_raise_assertion": "0x0001e6cd", + "platform_rand": "0x0001e6e1", + "platform_read_info": "0x0001e6e5", + "platform_read_persistent_reg": "0x0001e715", + "platform_reset": "0x0001e725", + "platform_rt_rc_auto_tune": "0x0001e749", + "platform_rt_rc_auto_tune2": "0x0001e751", + "platform_rt_rc_tune": "0x0001e7f5", + "platform_set_abs_timer": "0x0001e809", + "platform_set_evt_callback": "0x0001e80d", + "platform_set_evt_callback_table": "0x0001e821", + "platform_set_irq_callback": "0x0001e82d", + "platform_set_irq_callback_table": "0x0001e849", + "platform_set_rf_clk_source": "0x0001e855", + "platform_set_rf_init_data": "0x0001e861", + "platform_set_rf_power_mapping": "0x0001e86d", + "platform_set_timer": "0x0001e879", + "platform_shutdown": "0x0001e87d", + "platform_switch_app": "0x0001e881", + "platform_trace_raw": "0x0001e8ad", + "platform_write_persistent_reg": "0x0001e8c5", + "printf_hexdump": "0x0001e8d5", + "reverse_128": "0x0001ec45", + "reverse_24": "0x0001ec4b", + "reverse_256": "0x0001ec51", + "reverse_48": "0x0001ec57", + "reverse_56": "0x0001ec5d", + "reverse_64": "0x0001ec63", + "reverse_bd_addr": "0x0001ec69", + "reverse_bytes": "0x0001ec6f", + "sm_add_event_handler": "0x0001ef5d", + "sm_address_resolution_lookup": "0x0001f0b5", + "sm_authenticated": "0x0001f431", + "sm_authorization_decline": "0x0001f43f", + "sm_authorization_grant": "0x0001f45f", + "sm_authorization_state": "0x0001f47f", + "sm_bonding_decline": "0x0001f499", + "sm_config": "0x0001f8f5", + "sm_config_conn": "0x0001f90d", + "sm_encryption_key_size": "0x0001fac3", + "sm_just_works_confirm": "0x00020049", + "sm_le_device_key": "0x00020381", + "sm_passkey_input": "0x00020417", + "sm_private_random_address_generation_get": "0x000207d1", + "sm_private_random_address_generation_get_mode": "0x000207d9", + "sm_private_random_address_generation_set_mode": "0x000207e5", + "sm_private_random_address_generation_set_update_period": "0x0002080d", + "sm_register_external_ltk_callback": "0x00020949", + "sm_register_oob_data_callback": "0x00020955", + "sm_request_pairing": "0x00020961", + "sm_send_security_request": "0x00021437", + "sm_set_accepted_stk_generation_methods": "0x0002145d", + "sm_set_authentication_requirements": "0x00021469", + "sm_set_encryption_key_size_range": "0x00021475", + "sscanf_bd_addr": "0x000217d1", + "sysSetPublicDeviceAddr": "0x00021b85", + "uuid128_to_str": "0x00022331", + "uuid_add_bluetooth_prefix": "0x00022389", + "uuid_has_bluetooth_prefix": "0x000223a9" } \ No newline at end of file diff --git a/bundles/noos_mini/ING9188xx/meta.json b/bundles/noos_mini/ING9188xx/meta.json index 5c325c1df..be1894dda 100644 --- a/bundles/noos_mini/ING9188xx/meta.json +++ b/bundles/noos_mini/ING9188xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 130516 + "size": 130608 }, "version": [ 1, 9, - 40 + 41 ] } \ No newline at end of file diff --git a/bundles/noos_mini/ING9188xx/platform.bin b/bundles/noos_mini/ING9188xx/platform.bin index 0a59dec03e20b8db296687590cc276fae2287809..2a128a13dbef8157d674eee22334b81986af621f 100644 GIT binary patch delta 24541 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 gnmkonwYDldd3s>aO;Bq713=EC$N&HU delta 24167 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 WrQat@?o8D@8i;vrd$2yb-Tni~Xa0l$ diff --git a/bundles/noos_mini/inc/bluetooth.h b/bundles/noos_mini/inc/bluetooth.h index a7d216362..44c58585a 100644 --- a/bundles/noos_mini/inc/bluetooth.h +++ b/bundles/noos_mini/inc/bluetooth.h @@ -521,6 +521,7 @@ typedef enum { #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2 0x29 // Vendor specific subevents +#define HCI_SUBEVENT_LE_VENDOR_CONNECTION_ABORTED 0xFD #define HCI_SUBEVENT_LE_VENDOR_CHANNEL_MAP_UPDATE 0xFE #define HCI_SUBEVENT_LE_VENDOR_PRO_CONNECTIONLESS_IQ_REPORT 0xFF diff --git a/bundles/noos_mini/inc/btstack_event.h b/bundles/noos_mini/inc/btstack_event.h index 20ae54c5d..e5ab49a55 100644 --- a/bundles/noos_mini/inc/btstack_event.h +++ b/bundles/noos_mini/inc/btstack_event.h @@ -1386,6 +1386,43 @@ typedef struct le_meta_subrate_change // Time Range: 100 ms to 32 s } le_meta_subrate_change_t; +typedef struct le_meta_event_vendor_channel_map_update +{ + // connection handle + uint16_t conn_handle; + // current channel map (the lower 37 bits are used) + // channel `n` is identified by bit `(channel_map & 0x7)` of `channel_map[n / 8]` + uint8_t channel_map[5]; +} le_meta_event_vendor_channel_map_update_t; + +// @brief BLE Link Layer security context +typedef struct le_security_ctx +{ + uint8_t opaque[40]; +} le_security_ctx_t; + +typedef struct le_meta_event_vendor_connection_aborted +{ + uint16_t conn_handle; // connection handle + uint8_t role; // role (0: master, 1: slave) + phy_type_t rx_phy; // Rx PHY + phy_type_t tx_phy; // Tx PHY + uint32_t access_addr; // Access address + uint32_t crc_init; // CRC init value + uint32_t interval; // interval in us + uint16_t sup_timeout; // supervision timeout in 10ms + uint8_t channel_map[5]; // channel map (lower 37 bits) + uint8_t ch_sel_algo; // channel selection algorithm (0: ALG #1, 1: ALG #2) + uint8_t hop_inc; // frequency hopping increment (only for ALG #1) + uint8_t last_unmapped_ch; // last unmapped channel (only for ALG #1) + uint16_t slave_latency; // slave latency + uint8_t sleep_clk_acc; // sleep clock accuracy + uint64_t next_event_time; // start time of next connection event + uint16_t next_event_counter; // event counter for next connection event + uint8_t security_enabled; // is security enabled + le_security_ctx_t security; // security context (available when enabled) +} le_meta_event_vendor_connection_aborted_t; + typedef struct le_mete_event_prd_adv_subevent_data_req { uint8_t adv_handle; // Used to identify a periodic advertising train diff --git a/bundles/noos_mini/inc/ll_api.h b/bundles/noos_mini/inc/ll_api.h index 275c71b50..24558161d 100644 --- a/bundles/noos_mini/inc/ll_api.h +++ b/bundles/noos_mini/inc/ll_api.h @@ -100,14 +100,15 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co /** **************************************************************************************** - * @brief Create a connection directly (without advertising & initiating) + * @brief Create/Resume a connection directly (without advertising & initiating) * * @param[in] role connection role. master (0), slave (1) * @param[in] addr_types address types for advertiser and initiator - * bit [0] for slave, bit [1] for master + * bit [0] for slave (advertiser) + * bit [1] for master (initiator) * 0: public address; 1: random address - * @param[in] adv_addr address of advertiser - * @param[in] init_addr address of initiator + * @param[in] adv_addr address of advertiser (little-endian) + * @param[in] init_addr address of initiator (little-endian) * @param[in] rx_phy Rx PHY (1: 1M, 2: 2M, 3: Coded) * @param[in] tx_phy Tx PHY (1: 1M, 2: 2M, 3: Coded) * @param[in] access_addr access address @@ -115,21 +116,26 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co * @param[in] interval connection interval (unit: us) * @param[in] sup_timeout supervision timeout (unit: 10ms) * @param[in] channel_map channel map - * @param[in] ch_sel_algo channel selection algorithm (1 or 2) - * @param[in] hop_inc hop increment for CSA#1 ([5..16]) + * @param[in] ch_sel_algo channel selection algorithm (0: ALG #1, 1: ALG #2) + * @param[in] hop_inc hop increment for CSA#1 ([5..16]) (only for ALG #1) + * @param[in] last_unmapped_ch last unmapped channel index (only for ALG #1) * @param[in] min_ce_len information parameter about the minimum length of connection * event needed for this LE connection. * @param[in] max_ce_len information parameter about the maximum length of connection * event needed for this LE connection. - * @param[in] start_time start time of the 1st connectin event + * @param[in] start_time start time of the 1st connection event + * @param[in] event_counter event counter for the 1st connection event * @param[in] slave_latency slave latency - * @param[in] sleep_clk_acc sleep clock accuracy + * @param[in] sleep_clk_acc sleep clock accuracy (only for SLAVE role) * @param[in] sync_window slave's sync window for 1st connection event + * @param[in] security link layer security context + * NULL: security not used + * otherwise: security is used, which is `le_security_ctx_t *` in + * `le_meta_event_vendor_connection_aborted_t`. * @return 0 if successful else error code **************************************************************************************** */ -// int ll_create_conn( -// uint8_t role, +// int ll_create_conn(uint8_t role, // uint8_t addr_types, // const uint8_t *adv_addr, // const uint8_t *init_addr, @@ -142,12 +148,15 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co // const uint8_t *channel_map, // uint8_t ch_sel_algo, // uint8_t hop_inc, +// uint8_t last_unmapped_ch, // uint16_t min_ce_len, // uint16_t max_ce_len, // uint64_t start_time, +// uint16_t event_counter, // uint16_t slave_latency, // uint8_t sleep_clk_acc, -// uint32_t sync_window); +// uint32_t sync_window, +// const void *security); // WARNING: ^^^ this API is not available in this release @@ -242,6 +251,20 @@ void ll_set_conn_latency(uint16_t conn_handle, int latency); // WARNING: ^^^ this API is not available in this release +/** + **************************************************************************************** + * @brief Abort an existing connection + * + * After a connection is aborted, `HCI_SUBEVENT_VENDOR_CONNECTION_ABORTED` is emitted. + * + * @param[in] conn_handle handle of an existing connection + * @return 0 if aborting is ongoing else non-0 + **************************************************************************************** + */ +// int ll_conn_abort(uint16_t conn_handle); +// WARNING: ^^^ this API is not available in this release + + /** **************************************************************************************** * @brief Set default antenna ID diff --git a/bundles/noos_mini/inc/platform_api.h b/bundles/noos_mini/inc/platform_api.h index 2c7815798..bbc633bd3 100644 --- a/bundles/noos_mini/inc/platform_api.h +++ b/bundles/noos_mini/inc/platform_api.h @@ -409,7 +409,7 @@ uint8_t platform_read_persistent_reg(void); * ING918: starting from 0x20000000, 64KiB * ING916: starting from 0x20000000, 16KiB * - * @param[in] duration_cycles Duration before power on again (measured in cycles of 32k clock) + * @param[in] duration_cycles Duration before power on again (measured in cycles of real time clock) * Minimum value: 825 cycles (about 25.18ms) * When = 0: only power on when external wake up source is asserted * @param[in] p_retention_data Pointer to the start of data to be retained @@ -430,13 +430,18 @@ typedef enum PLATFORM_CFG_LOG_HCI, // flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_POWER_SAVING, // flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_TRACE_MASK, // flag is bitmap of platform_trace_item_t. default: 0 - PLATFORM_CFG_RC32K_EN, // Enable/Disable RC 32k clock. Default: Enable - PLATFORM_CFG_OSC32K_EN, // Enable/Disable 32k crystal oscillator. Default: Enable - PLATFORM_CFG_32K_CLK, // 32k clock selection. flag is platform_32k_clk_src_t. default: PLATFORM_32K_RC - // Note 1: When modifying this configuration, both RC32K and OSC32K should be ENABLED. + PLATFORM_CFG_RT_RC_EN, // Enable/Disable internal real time RC clock. Default: Enable + PLATFORM_CFG_RC32K_EN = PLATFORM_CFG_RT_RC_EN, + PLATFORM_CFG_RT_OSC_EN, // Enable/Disable external real time crystal oscillator. Default: Enable + PLATFORM_CFG_OSC32K_EN = PLATFORM_CFG_RT_OSC_EN, + PLATFORM_CFG_RT_CLK, // real time clock selection. flag is platform_rt_clk_src_t. default: PLATFORM_RT_RC + // Note 1: When modifying this configuration, both RT_RC and RT_OSC should be ENABLED. // Note 2: Unused clock can be disabled. - PLATFORM_CFG_32K_CLK_ACC, // Configure 32k clock accuracy in ppm. - PLATFORM_CFG_32K_CALI_PERIOD, // 32K clock auto-calibration period in seconds. Default: 3600 * 2 + PLATFORM_CFG_32K_CLK = PLATFORM_CFG_RT_CLK, + PLATFORM_CFG_RT_CLK_ACC, // Configure real time clock accuracy in ppm. + PLATFORM_CFG_32K_CLK_ACC = PLATFORM_CFG_RT_CLK_ACC, + PLATFORM_CFG_RT_CLK_CALI_PERIOD, // real time clock auto-calibration period in seconds. Default: 3600 * 2 + PLATFORM_CFG_32K_CALI_PERIOD = PLATFORM_CFG_RT_CLK_CALI_PERIOD, PLATFORM_CFG_PS_DBG_0, // debugging parameter PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION, // sleep time reduction (deep sleep mode) in us. (default: ~550us) PLATFORM_CFG_PS_DBG_1 = PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION, // obsoleted @@ -469,9 +474,13 @@ typedef enum typedef enum { - PLATFORM_32K_OSC, // external 32k crystal oscillator - PLATFORM_32K_RC // internal RC 32k clock -} platform_32k_clk_src_t; + PLATFORM_RT_OSC, // external crystal oscillator + PLATFORM_32K_OSC = PLATFORM_RT_OSC, + PLATFORM_RT_RC, // internal RC clock + PLATFORM_32K_RC = PLATFORM_RT_RC, +} platform_rt_clk_src_t; + +#define platform_32k_clk_src_t platform_rt_clk_src_t #define PLATFORM_CFG_ENABLE 1 #define PLATFORM_CFG_DISABLE 0 @@ -488,11 +497,13 @@ void platform_config(const platform_cfg_item_t item, const uint32_t flag); typedef enum { - PLATFORM_INFO_OSC32K_STATUS, // Read status of 32k crystal oscillator. (0: not OK; Non-0: OK) + PLATFORM_INFO_RT_OSC_STATUS, // Read status of real time crystal oscillator. (0: not OK; Non-0: OK) // "OK" means running. - // For ING916: this clock become running **after** selected as 32k + // For ING916: this clock become running **after** selected as real time clock // clock source. - PLATFORM_INFO_32K_CALI_VALUE, // Read current 32k clock calibration result. + PLATFORM_INFO_OSC32K_STATUS = PLATFORM_INFO_RT_OSC_STATUS, + PLATFORM_INFO_RT_CLK_CALI_VALUE, // Read current real time clock calibration result. + PLATFORM_INFO_32K_CALI_VALUE = PLATFORM_INFO_RT_CLK_CALI_VALUE, PLATFOFM_INFO_IRQ_NUMBER = 50, // Get the underline IRQ number of a platform IRQ // for example, platform_read_info(PLATFOFM_INFO_IRQ_NUMBER + PLATFORM_CB_IRQ_UART0) PLATFOFM_INFO_NUMBER = 255, @@ -510,36 +521,52 @@ uint32_t platform_read_info(const platform_info_item_t item); /** **************************************************************************************** - * @brief Do 32k clock calibration and get the calibration value. + * @brief Calibrate real-time RC clock and get the calibration value. * - * 32K clock auto-calibration timer is also reset, which means that next auto-calibration - * is supposed to be carried out after `PLATFORM_CFG_32K_CALI_PERIOD` seconds. + * Real time clock auto-calibration timer is also reset, which means that next auto-calibration + * is supposed to be carried out after `PLATFORM_CFG_RT_CLK_CALI_PERIOD` seconds. * * @return Calibration value. **************************************************************************************** */ -uint32_t platform_calibrate_32k(void); +uint32_t platform_calibrate_rt_clk(void); /** **************************************************************************************** - * @brief Tune internal the 32k RC clock with `value`. + * @brief Tune internal the real-time RC clock with `value`. * - * @param[in] value Value used to tune the clock (returned by `platform_32k_rc_auto_tune`) + * @param[in] value Value used to tune the clock (returned by `platform_rt_rc_auto_tune`) **************************************************************************************** */ -void platform_32k_rc_tune(uint16_t value); +void platform_rt_rc_tune(uint16_t value); /** **************************************************************************************** - * @brief Automatically tune the internal 32k RC clock, and get the tuning value. + * @brief Automatically tune the internal real time RC clock, and get the tuning value. * - * Note: This operation costs ~250ms. It is recommended to call this once and store the - * returned value into NVM for later usage. + * This is equivalent to `platform_rt_rc_auto_tune2(65536000000 / frequency)`. * * @return Value used to tune the clock **************************************************************************************** */ -uint16_t platform_32k_rc_auto_tune(void); +uint16_t platform_rt_rc_auto_tune(void); + +#define platform_calibrate_32k platform_calibrate_rt_clk +#define platform_32k_rc_tune platform_rt_rc_tune +#define platform_32k_rc_auto_tune platform_rt_rc_auto_tune + +/** + **************************************************************************************** + * @brief Automatically tune the internal real-time RC clock to a target frequency, and + * get the tuning value. + * + * Note: This operation costs ~250ms. + * + * @param[in] target_frequency target frequency of tuning (Hz) + * @return Value used to tune the clock + **************************************************************************************** + */ +uint16_t platform_rt_rc_auto_tune2(uint32_t target_frequency); /** **************************************************************************************** diff --git a/bundles/noos_typical/ING9168xx/apis.json b/bundles/noos_typical/ING9168xx/apis.json index 2555eab95..73544a58e 100644 --- a/bundles/noos_typical/ING9168xx/apis.json +++ b/bundles/noos_typical/ING9168xx/apis.json @@ -17,251 +17,252 @@ "att_set_db": "0x02004e51", "att_set_read_callback": "0x02004e65", "att_set_write_callback": "0x02004e71", - "bd_addr_cmp": "0x02005045", - "bd_addr_copy": "0x0200504b", - "bd_addr_to_str": "0x02005055", - "big_endian_read_16": "0x0200508d", - "big_endian_read_32": "0x02005095", - "big_endian_store_16": "0x020050a9", - "big_endian_store_32": "0x020050b5", - "btstack_config": "0x020051f9", - "btstack_memory_pool_create": "0x02005347", - "btstack_memory_pool_free": "0x02005371", - "btstack_memory_pool_get": "0x020053d1", - "btstack_push_user_msg": "0x02005419", - "btstack_push_user_runnable": "0x02005425", - "btstack_reset": "0x02005431", - "char_for_nibble": "0x0200570b", - "gap_add_dev_to_periodic_list": "0x020060f1", - "gap_add_whitelist": "0x02006101", - "gap_aes_encrypt": "0x0200610d", - "gap_clear_white_lists": "0x02006145", - "gap_clr_adv_set": "0x02006151", - "gap_clr_periodic_adv_list": "0x0200615d", - "gap_create_connection_cancel": "0x02006169", - "gap_default_periodic_adv_sync_transfer_param": "0x02006175", - "gap_disconnect": "0x0200618d", - "gap_disconnect_all": "0x020061b9", - "gap_ext_create_connection": "0x020061f9", - "gap_get_connection_parameter_range": "0x020062d1", - "gap_le_read_channel_map": "0x0200630d", - "gap_periodic_adv_create_sync": "0x02006379", - "gap_periodic_adv_create_sync_cancel": "0x0200639d", - "gap_periodic_adv_set_info_transfer": "0x020063a9", - "gap_periodic_adv_sync_transfer": "0x020063b9", - "gap_periodic_adv_sync_transfer_param": "0x020063c9", - "gap_periodic_adv_term_sync": "0x020063e5", - "gap_read_antenna_info": "0x0200646d", - "gap_read_periodic_adv_list_size": "0x02006479", - "gap_read_phy": "0x02006485", - "gap_read_remote_used_features": "0x02006491", - "gap_read_remote_version": "0x0200649d", - "gap_read_rssi": "0x020064a9", - "gap_remove_whitelist": "0x020064b5", - "gap_rmv_adv_set": "0x02006531", - "gap_rmv_dev_from_periodic_list": "0x0200653d", - "gap_rx_test_v2": "0x0200654d", - "gap_rx_test_v3": "0x0200655d", - "gap_set_adv_set_random_addr": "0x020065a9", - "gap_set_callback_for_next_hci": "0x020065e5", - "gap_set_connection_cte_request_enable": "0x02006605", - "gap_set_connection_cte_response_enable": "0x02006621", - "gap_set_connection_cte_rx_param": "0x02006631", - "gap_set_connection_cte_tx_param": "0x02006685", - "gap_set_connection_parameter_range": "0x020066d1", - "gap_set_connectionless_cte_tx_enable": "0x020066e9", - "gap_set_connectionless_cte_tx_param": "0x020066f9", - "gap_set_connectionless_iq_sampling_enable": "0x02006755", - "gap_set_data_length": "0x020067b1", - "gap_set_def_phy": "0x020067c9", - "gap_set_ext_adv_data": "0x020067d9", - "gap_set_ext_adv_enable": "0x020067f1", - "gap_set_ext_adv_para": "0x02006861", - "gap_set_ext_scan_enable": "0x02006931", - "gap_set_ext_scan_para": "0x02006949", - "gap_set_ext_scan_response_data": "0x020069e9", - "gap_set_host_channel_classification": "0x02006a01", - "gap_set_periodic_adv_data": "0x02006a11", - "gap_set_periodic_adv_enable": "0x02006a81", - "gap_set_periodic_adv_para": "0x02006a91", - "gap_set_periodic_adv_rx_enable": "0x02006aa9", - "gap_set_phy": "0x02006ab9", - "gap_set_random_device_address": "0x02006ad5", - "gap_start_ccm": "0x02006b05", - "gap_test_end": "0x02006b4d", - "gap_tx_test_v2": "0x02006b59", - "gap_tx_test_v4": "0x02006b71", - "gap_update_connection_parameters": "0x02006b95", - "gap_vendor_tx_continuous_wave": "0x02006bd9", - "gatt_client_cancel_write": "0x02007101", - "gatt_client_discover_characteristic_descriptors": "0x02007127", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x02007167", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x020071b7", - "gatt_client_discover_characteristics_for_service": "0x02007207", - "gatt_client_discover_primary_services": "0x0200723d", - "gatt_client_discover_primary_services_by_uuid128": "0x0200726f", - "gatt_client_discover_primary_services_by_uuid16": "0x020072b3", - "gatt_client_execute_write": "0x020072f1", - "gatt_client_find_included_services_for_service": "0x02007317", - "gatt_client_get_mtu": "0x02007345", - "gatt_client_is_ready": "0x02007409", - "gatt_client_listen_for_characteristic_value_updates": "0x0200741f", - "gatt_client_prepare_write": "0x02007441", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x0200747d", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020074a7", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020074ad", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x020074db", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020074e1", - "gatt_client_read_multiple_characteristic_values": "0x0200750f", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x0200753f", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x0200756d", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x020075b9", - "gatt_client_register_handler": "0x02007605", - "gatt_client_reliable_write_long_value_of_characteristic": "0x02007611", - "gatt_client_signed_write_without_response": "0x02007a45", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007b09", - "gatt_client_write_client_characteristic_configuration": "0x02007b43", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007b95", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007ba5", - "gatt_client_write_long_value_of_characteristic": "0x02007be1", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007bf1", - "gatt_client_write_value_of_characteristic": "0x02007c2d", - "gatt_client_write_value_of_characteristic_without_response": "0x02007c63", - "hci_add_event_handler": "0x02009259", - "hci_power_control": "0x02009a01", - "hci_register_acl_packet_handler": "0x02009bb5", - "kv_commit": "0x0200a311", - "kv_get": "0x0200a36d", - "kv_init": "0x0200a379", - "kv_init_backend": "0x0200a3f9", - "kv_put": "0x0200a40d", - "kv_remove": "0x0200a419", - "kv_remove_all": "0x0200a44d", - "kv_value_modified": "0x0200a47d", - "kv_value_modified_of_key": "0x0200a499", - "kv_visit": "0x0200a4a5", - "l2cap_add_event_handler": "0x0200a535", - "l2cap_can_send_packet_now": "0x0200a545", - "l2cap_create_le_credit_based_connection_request": "0x0200a709", - "l2cap_credit_based_send": "0x0200a851", - "l2cap_credit_based_send_continue": "0x0200a87d", - "l2cap_disconnect": "0x0200a8f9", - "l2cap_get_le_credit_based_connection_credits": "0x0200aae5", - "l2cap_get_peer_mtu_for_local_cid": "0x0200ab01", - "l2cap_init": "0x0200af41", - "l2cap_le_send_flow_control_credit": "0x0200b037", - "l2cap_max_le_mtu": "0x0200b345", - "l2cap_register_packet_handler": "0x0200b46d", - "l2cap_register_service": "0x0200b479", - "l2cap_request_can_send_now_event": "0x0200b589", - "l2cap_request_connection_parameter_update": "0x0200b5a3", - "l2cap_send_echo_request": "0x0200ba85", - "l2cap_unregister_service": "0x0200bb65", - "le_device_db_add": "0x0200bbbd", - "le_device_db_find": "0x0200bc95", - "le_device_db_from_key": "0x0200bcc1", - "le_device_db_iter_cur": "0x0200bcc9", - "le_device_db_iter_cur_key": "0x0200bccd", - "le_device_db_iter_init": "0x0200bcd1", - "le_device_db_iter_next": "0x0200bcd9", - "le_device_db_remove_key": "0x0200bcff", - "ll_adjust_conn_peer_tx_power": "0x0200bd2d", - "ll_aes_encrypt": "0x0200bd59", - "ll_config": "0x0200bdcd", - "ll_free": "0x0200be03", - "ll_get_heap_free_size": "0x0200be0d", - "ll_hint_on_ce_len": "0x0200be21", - "ll_legacy_adv_set_interval": "0x0200be59", - "ll_malloc": "0x0200be69", - "ll_register_hci_acl_previewer": "0x0200bf81", - "ll_scan_set_fixed_channel": "0x0200bfe5", - "ll_set_adv_access_address": "0x0200c1fd", - "ll_set_adv_coded_scheme": "0x0200c209", - "ll_set_conn_acl_report_latency": "0x0200c241", - "ll_set_conn_coded_scheme": "0x0200c271", - "ll_set_conn_latency": "0x0200c29d", - "ll_set_conn_tx_power": "0x0200c2cd", - "ll_set_def_antenna": "0x0200c309", - "ll_set_initiating_coded_scheme": "0x0200c329", - "ll_set_max_conn_number": "0x0200c335", - "ll_set_tx_power_range": "0x0200c3c9", - "nibble_for_char": "0x0201ee1d", - "platform_32k_rc_auto_tune": "0x0201eeb5", - "platform_32k_rc_tune": "0x0201ef01", - "platform_calibrate_32k": "0x0201ef1d", + "bd_addr_cmp": "0x02005041", + "bd_addr_copy": "0x02005047", + "bd_addr_to_str": "0x02005051", + "big_endian_read_16": "0x02005089", + "big_endian_read_32": "0x02005091", + "big_endian_store_16": "0x020050a5", + "big_endian_store_32": "0x020050b1", + "btstack_config": "0x020051f5", + "btstack_memory_pool_create": "0x02005343", + "btstack_memory_pool_free": "0x0200536d", + "btstack_memory_pool_get": "0x020053cd", + "btstack_push_user_msg": "0x02005415", + "btstack_push_user_runnable": "0x02005421", + "btstack_reset": "0x0200542d", + "char_for_nibble": "0x02005707", + "gap_add_dev_to_periodic_list": "0x020060ed", + "gap_add_whitelist": "0x020060fd", + "gap_aes_encrypt": "0x02006109", + "gap_clear_white_lists": "0x02006141", + "gap_clr_adv_set": "0x0200614d", + "gap_clr_periodic_adv_list": "0x02006159", + "gap_create_connection_cancel": "0x02006165", + "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": "0x020062cd", + "gap_le_read_channel_map": "0x02006309", + "gap_periodic_adv_create_sync": "0x02006375", + "gap_periodic_adv_create_sync_cancel": "0x02006399", + "gap_periodic_adv_set_info_transfer": "0x020063a5", + "gap_periodic_adv_sync_transfer": "0x020063b5", + "gap_periodic_adv_sync_transfer_param": "0x020063c5", + "gap_periodic_adv_term_sync": "0x020063e1", + "gap_read_antenna_info": "0x02006469", + "gap_read_periodic_adv_list_size": "0x02006475", + "gap_read_phy": "0x02006481", + "gap_read_remote_used_features": "0x0200648d", + "gap_read_remote_version": "0x02006499", + "gap_read_rssi": "0x020064a5", + "gap_remove_whitelist": "0x020064b1", + "gap_rmv_adv_set": "0x0200652d", + "gap_rmv_dev_from_periodic_list": "0x02006539", + "gap_rx_test_v2": "0x02006549", + "gap_rx_test_v3": "0x02006559", + "gap_set_adv_set_random_addr": "0x020065a5", + "gap_set_callback_for_next_hci": "0x020065e1", + "gap_set_connection_cte_request_enable": "0x02006601", + "gap_set_connection_cte_response_enable": "0x0200661d", + "gap_set_connection_cte_rx_param": "0x0200662d", + "gap_set_connection_cte_tx_param": "0x02006681", + "gap_set_connection_parameter_range": "0x020066cd", + "gap_set_connectionless_cte_tx_enable": "0x020066e5", + "gap_set_connectionless_cte_tx_param": "0x020066f5", + "gap_set_connectionless_iq_sampling_enable": "0x02006751", + "gap_set_data_length": "0x020067ad", + "gap_set_def_phy": "0x020067c5", + "gap_set_ext_adv_data": "0x020067d5", + "gap_set_ext_adv_enable": "0x020067ed", + "gap_set_ext_adv_para": "0x0200685d", + "gap_set_ext_scan_enable": "0x0200692d", + "gap_set_ext_scan_para": "0x02006945", + "gap_set_ext_scan_response_data": "0x020069e5", + "gap_set_host_channel_classification": "0x020069fd", + "gap_set_periodic_adv_data": "0x02006a0d", + "gap_set_periodic_adv_enable": "0x02006a7d", + "gap_set_periodic_adv_para": "0x02006a8d", + "gap_set_periodic_adv_rx_enable": "0x02006aa5", + "gap_set_phy": "0x02006ab5", + "gap_set_random_device_address": "0x02006ad1", + "gap_start_ccm": "0x02006b01", + "gap_test_end": "0x02006b49", + "gap_tx_test_v2": "0x02006b55", + "gap_tx_test_v4": "0x02006b6d", + "gap_update_connection_parameters": "0x02006b91", + "gap_vendor_tx_continuous_wave": "0x02006bd5", + "gatt_client_cancel_write": "0x020070fd", + "gatt_client_discover_characteristic_descriptors": "0x02007123", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x02007163", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x020071b3", + "gatt_client_discover_characteristics_for_service": "0x02007203", + "gatt_client_discover_primary_services": "0x02007239", + "gatt_client_discover_primary_services_by_uuid128": "0x0200726b", + "gatt_client_discover_primary_services_by_uuid16": "0x020072af", + "gatt_client_execute_write": "0x020072ed", + "gatt_client_find_included_services_for_service": "0x02007313", + "gatt_client_get_mtu": "0x02007341", + "gatt_client_is_ready": "0x02007405", + "gatt_client_listen_for_characteristic_value_updates": "0x0200741b", + "gatt_client_prepare_write": "0x0200743d", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007479", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020074a3", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020074a9", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x020074d7", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020074dd", + "gatt_client_read_multiple_characteristic_values": "0x0200750b", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x0200753b", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007569", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x020075b5", + "gatt_client_register_handler": "0x02007601", + "gatt_client_reliable_write_long_value_of_characteristic": "0x0200760d", + "gatt_client_signed_write_without_response": "0x02007a41", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007b05", + "gatt_client_write_client_characteristic_configuration": "0x02007b3f", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007b91", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007ba1", + "gatt_client_write_long_value_of_characteristic": "0x02007bdd", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007bed", + "gatt_client_write_value_of_characteristic": "0x02007c29", + "gatt_client_write_value_of_characteristic_without_response": "0x02007c5f", + "hci_add_event_handler": "0x02009255", + "hci_power_control": "0x020099fd", + "hci_register_acl_packet_handler": "0x02009bb1", + "kv_commit": "0x0200a30d", + "kv_get": "0x0200a369", + "kv_init": "0x0200a375", + "kv_init_backend": "0x0200a3f5", + "kv_put": "0x0200a409", + "kv_remove": "0x0200a415", + "kv_remove_all": "0x0200a449", + "kv_value_modified": "0x0200a479", + "kv_value_modified_of_key": "0x0200a495", + "kv_visit": "0x0200a4a1", + "l2cap_add_event_handler": "0x0200a531", + "l2cap_can_send_packet_now": "0x0200a541", + "l2cap_create_le_credit_based_connection_request": "0x0200a705", + "l2cap_credit_based_send": "0x0200a84d", + "l2cap_credit_based_send_continue": "0x0200a879", + "l2cap_disconnect": "0x0200a8f5", + "l2cap_get_le_credit_based_connection_credits": "0x0200aae1", + "l2cap_get_peer_mtu_for_local_cid": "0x0200aafd", + "l2cap_init": "0x0200af3d", + "l2cap_le_send_flow_control_credit": "0x0200b033", + "l2cap_max_le_mtu": "0x0200b341", + "l2cap_register_packet_handler": "0x0200b469", + "l2cap_register_service": "0x0200b475", + "l2cap_request_can_send_now_event": "0x0200b585", + "l2cap_request_connection_parameter_update": "0x0200b59f", + "l2cap_send_echo_request": "0x0200ba81", + "l2cap_unregister_service": "0x0200bb61", + "le_device_db_add": "0x0200bbb9", + "le_device_db_find": "0x0200bc91", + "le_device_db_from_key": "0x0200bcbd", + "le_device_db_iter_cur": "0x0200bcc5", + "le_device_db_iter_cur_key": "0x0200bcc9", + "le_device_db_iter_init": "0x0200bccd", + "le_device_db_iter_next": "0x0200bcd5", + "le_device_db_remove_key": "0x0200bcfb", + "ll_adjust_conn_peer_tx_power": "0x0200bd29", + "ll_aes_encrypt": "0x0200bd55", + "ll_config": "0x0200bdc9", + "ll_free": "0x0200bdff", + "ll_get_heap_free_size": "0x0200be09", + "ll_hint_on_ce_len": "0x0200be1d", + "ll_legacy_adv_set_interval": "0x0200be55", + "ll_malloc": "0x0200be65", + "ll_register_hci_acl_previewer": "0x0200bf7d", + "ll_scan_set_fixed_channel": "0x0200bfe1", + "ll_set_adv_access_address": "0x0200c1f9", + "ll_set_adv_coded_scheme": "0x0200c205", + "ll_set_conn_acl_report_latency": "0x0200c23d", + "ll_set_conn_coded_scheme": "0x0200c26d", + "ll_set_conn_latency": "0x0200c299", + "ll_set_conn_tx_power": "0x0200c2c9", + "ll_set_def_antenna": "0x0200c305", + "ll_set_initiating_coded_scheme": "0x0200c325", + "ll_set_max_conn_number": "0x0200c331", + "ll_set_tx_power_range": "0x0200c3c5", + "nibble_for_char": "0x0201ee29", + "platform_calibrate_rt_clk": "0x0201eec1", "platform_call_on_stack": "0x0200213f", - "platform_config": "0x0201ef21", - "platform_controller_run": "0x0201f049", - "platform_delete_timer": "0x0201f07d", - "platform_enable_irq": "0x0201f085", - "platform_get_gen_os_driver": "0x0201f0b9", - "platform_get_link_layer_interf": "0x0201f0c5", - "platform_get_task_handle": "0x0201f0cd", - "platform_get_timer_counter": "0x0201f0e5", - "platform_get_us_time": "0x0201f0e9", - "platform_get_version": "0x0201f0ed", - "platform_hrng": "0x0201f0f5", - "platform_init_controller": "0x0201f0fd", - "platform_os_idle_resumed_hook": "0x0201f119", - "platform_patch_rf_init_data": "0x0201f11d", - "platform_post_sleep_processing": "0x0201f129", - "platform_pre_sleep_processing": "0x0201f12f", - "platform_pre_suppress_ticks_and_sleep_processing": "0x0201f135", - "platform_printf": "0x0201f139", - "platform_raise_assertion": "0x0201f14d", - "platform_rand": "0x0201f161", - "platform_read_info": "0x0201f165", - "platform_read_persistent_reg": "0x0201f195", - "platform_reset": "0x0201f1a1", - "platform_set_abs_timer": "0x0201f1b5", - "platform_set_evt_callback": "0x0201f1b9", - "platform_set_evt_callback_table": "0x0201f1cd", - "platform_set_irq_callback": "0x0201f1d9", - "platform_set_irq_callback_table": "0x0201f1f5", - "platform_set_rf_clk_source": "0x0201f201", - "platform_set_rf_init_data": "0x0201f20d", - "platform_set_rf_power_mapping": "0x0201f219", - "platform_set_timer": "0x0201f225", - "platform_shutdown": "0x0201f229", - "platform_switch_app": "0x0201f22d", - "platform_trace_raw": "0x0201f245", - "platform_write_persistent_reg": "0x0201f25d", - "printf_hexdump": "0x0201f271", - "reverse_128": "0x0201f5e9", - "reverse_24": "0x0201f5ef", - "reverse_256": "0x0201f5f5", - "reverse_48": "0x0201f5fb", - "reverse_56": "0x0201f601", - "reverse_64": "0x0201f607", - "reverse_bd_addr": "0x0201f60d", - "reverse_bytes": "0x0201f613", - "sm_add_event_handler": "0x0201f971", - "sm_address_resolution_lookup": "0x0201fac9", - "sm_authenticated": "0x0201fe45", - "sm_authorization_decline": "0x0201fe53", - "sm_authorization_grant": "0x0201fe73", - "sm_authorization_state": "0x0201fe93", - "sm_bonding_decline": "0x0201fead", - "sm_config": "0x02020301", - "sm_config_conn": "0x02020319", - "sm_encryption_key_size": "0x020204cf", - "sm_just_works_confirm": "0x02020a55", - "sm_le_device_key": "0x02020d8d", - "sm_passkey_input": "0x02020e23", - "sm_private_random_address_generation_get": "0x020211dd", - "sm_private_random_address_generation_get_mode": "0x020211e5", - "sm_private_random_address_generation_set_mode": "0x020211f1", - "sm_private_random_address_generation_set_update_period": "0x02021219", - "sm_register_external_ltk_callback": "0x02021355", - "sm_register_oob_data_callback": "0x02021361", - "sm_request_pairing": "0x0202136d", - "sm_send_security_request": "0x02021e43", - "sm_set_accepted_stk_generation_methods": "0x02021e69", - "sm_set_authentication_requirements": "0x02021e75", - "sm_set_encryption_key_size_range": "0x02021e81", - "sscanf_bd_addr": "0x020221e1", - "sysSetPublicDeviceAddr": "0x0202270d", - "uuid128_to_str": "0x02022f69", - "uuid_add_bluetooth_prefix": "0x02022fc1", - "uuid_has_bluetooth_prefix": "0x02022fe1" + "platform_config": "0x0201eec5", + "platform_controller_run": "0x0201efed", + "platform_delete_timer": "0x0201f021", + "platform_enable_irq": "0x0201f029", + "platform_get_gen_os_driver": "0x0201f05d", + "platform_get_link_layer_interf": "0x0201f069", + "platform_get_task_handle": "0x0201f071", + "platform_get_timer_counter": "0x0201f089", + "platform_get_us_time": "0x0201f08d", + "platform_get_version": "0x0201f091", + "platform_hrng": "0x0201f099", + "platform_init_controller": "0x0201f0a1", + "platform_os_idle_resumed_hook": "0x0201f0bd", + "platform_patch_rf_init_data": "0x0201f0c1", + "platform_post_sleep_processing": "0x0201f0cd", + "platform_pre_sleep_processing": "0x0201f0d3", + "platform_pre_suppress_ticks_and_sleep_processing": "0x0201f0d9", + "platform_printf": "0x0201f0dd", + "platform_raise_assertion": "0x0201f0f1", + "platform_rand": "0x0201f105", + "platform_read_info": "0x0201f109", + "platform_read_persistent_reg": "0x0201f139", + "platform_reset": "0x0201f145", + "platform_rt_rc_auto_tune": "0x0201f159", + "platform_rt_rc_auto_tune2": "0x0201f161", + "platform_rt_rc_tune": "0x0201f1e5", + "platform_set_abs_timer": "0x0201f201", + "platform_set_evt_callback": "0x0201f205", + "platform_set_evt_callback_table": "0x0201f219", + "platform_set_irq_callback": "0x0201f225", + "platform_set_irq_callback_table": "0x0201f241", + "platform_set_rf_clk_source": "0x0201f24d", + "platform_set_rf_init_data": "0x0201f259", + "platform_set_rf_power_mapping": "0x0201f265", + "platform_set_timer": "0x0201f271", + "platform_shutdown": "0x0201f275", + "platform_switch_app": "0x0201f279", + "platform_trace_raw": "0x0201f291", + "platform_write_persistent_reg": "0x0201f2a9", + "printf_hexdump": "0x0201f2bd", + "reverse_128": "0x0201f635", + "reverse_24": "0x0201f63b", + "reverse_256": "0x0201f641", + "reverse_48": "0x0201f647", + "reverse_56": "0x0201f64d", + "reverse_64": "0x0201f653", + "reverse_bd_addr": "0x0201f659", + "reverse_bytes": "0x0201f65f", + "sm_add_event_handler": "0x0201f9bd", + "sm_address_resolution_lookup": "0x0201fb15", + "sm_authenticated": "0x0201fe91", + "sm_authorization_decline": "0x0201fe9f", + "sm_authorization_grant": "0x0201febf", + "sm_authorization_state": "0x0201fedf", + "sm_bonding_decline": "0x0201fef9", + "sm_config": "0x0202034d", + "sm_config_conn": "0x02020365", + "sm_encryption_key_size": "0x0202051b", + "sm_just_works_confirm": "0x02020aa1", + "sm_le_device_key": "0x02020dd9", + "sm_passkey_input": "0x02020e6f", + "sm_private_random_address_generation_get": "0x02021229", + "sm_private_random_address_generation_get_mode": "0x02021231", + "sm_private_random_address_generation_set_mode": "0x0202123d", + "sm_private_random_address_generation_set_update_period": "0x02021265", + "sm_register_external_ltk_callback": "0x020213a1", + "sm_register_oob_data_callback": "0x020213ad", + "sm_request_pairing": "0x020213b9", + "sm_send_security_request": "0x02021e8f", + "sm_set_accepted_stk_generation_methods": "0x02021eb5", + "sm_set_authentication_requirements": "0x02021ec1", + "sm_set_encryption_key_size_range": "0x02021ecd", + "sscanf_bd_addr": "0x0202222d", + "sysSetPublicDeviceAddr": "0x02022759", + "uuid128_to_str": "0x02022fb5", + "uuid_add_bluetooth_prefix": "0x0202300d", + "uuid_has_bluetooth_prefix": "0x0202302d" } \ No newline at end of file diff --git a/bundles/noos_typical/ING9168xx/meta.json b/bundles/noos_typical/ING9168xx/meta.json index 8da04c7a0..29cf48521 100644 --- a/bundles/noos_typical/ING9168xx/meta.json +++ b/bundles/noos_typical/ING9168xx/meta.json @@ -4,15 +4,15 @@ }, "ram": { "base": 536870912, - "size": 3228 + "size": 3244 }, "rom": { "base": 33562624, - "size": 144384 + "size": 144468 }, "version": [ 2, 3, - 0 + 1 ] } \ No newline at end of file diff --git a/bundles/noos_typical/ING9168xx/platform.bin b/bundles/noos_typical/ING9168xx/platform.bin index ec4d510ed17632da0902cb7de10971b190d71ff3..fff631e5ba5b20b5f592e5cf6098fd72b4eeffed 100644 GIT binary patch delta 30051 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 diff --git a/bundles/noos_typical/ING9187xx/apis.json b/bundles/noos_typical/ING9187xx/apis.json index b1732bfd9..a896c3c77 100644 --- a/bundles/noos_typical/ING9187xx/apis.json +++ b/bundles/noos_typical/ING9187xx/apis.json @@ -170,83 +170,84 @@ "ll_set_def_antenna": "0x0000d16d", "ll_set_initiating_coded_scheme": "0x0000d189", "ll_set_max_conn_number": "0x0000d195", - "nibble_for_char": "0x0001d311", - "platform_32k_rc_auto_tune": "0x0001d3ad", - "platform_32k_rc_tune": "0x0001d429", - "platform_calibrate_32k": "0x0001d43d", + "nibble_for_char": "0x0001d321", + "platform_calibrate_rt_clk": "0x0001d3bb", "platform_call_on_stack": "0x000040ef", - "platform_config": "0x0001d441", - "platform_controller_run": "0x0001d565", - "platform_delete_timer": "0x0001d599", - "platform_enable_irq": "0x0001d5a1", - "platform_get_gen_os_driver": "0x0001d5d9", - "platform_get_link_layer_interf": "0x0001d5e5", - "platform_get_task_handle": "0x0001d5ed", - "platform_get_timer_counter": "0x0001d605", - "platform_get_us_time": "0x0001d609", - "platform_get_version": "0x0001d60d", - "platform_hrng": "0x0001d615", - "platform_init_controller": "0x0001d61d", - "platform_os_idle_resumed_hook": "0x0001d639", - "platform_patch_rf_init_data": "0x0001d63d", - "platform_post_sleep_processing": "0x0001d649", - "platform_pre_sleep_processing": "0x0001d64f", - "platform_pre_suppress_ticks_and_sleep_processing": "0x0001d655", - "platform_printf": "0x0001d659", - "platform_raise_assertion": "0x0001d66d", - "platform_rand": "0x0001d681", - "platform_read_info": "0x0001d685", - "platform_read_persistent_reg": "0x0001d6b5", - "platform_reset": "0x0001d6c5", - "platform_set_abs_timer": "0x0001d6e9", - "platform_set_evt_callback": "0x0001d6ed", - "platform_set_evt_callback_table": "0x0001d701", - "platform_set_irq_callback": "0x0001d70d", - "platform_set_irq_callback_table": "0x0001d729", - "platform_set_rf_clk_source": "0x0001d735", - "platform_set_rf_init_data": "0x0001d741", - "platform_set_rf_power_mapping": "0x0001d74d", - "platform_set_timer": "0x0001d759", - "platform_shutdown": "0x0001d75d", - "platform_switch_app": "0x0001d761", - "platform_trace_raw": "0x0001d78d", - "platform_write_persistent_reg": "0x0001d7a5", - "printf_hexdump": "0x0001d7b5", - "reverse_128": "0x0001daf5", - "reverse_24": "0x0001dafb", - "reverse_256": "0x0001db01", - "reverse_48": "0x0001db07", - "reverse_56": "0x0001db0d", - "reverse_64": "0x0001db13", - "reverse_bd_addr": "0x0001db19", - "reverse_bytes": "0x0001db1f", - "sm_add_event_handler": "0x0001dcbd", - "sm_address_resolution_lookup": "0x0001de15", - "sm_authenticated": "0x0001e191", - "sm_authorization_decline": "0x0001e19f", - "sm_authorization_grant": "0x0001e1bf", - "sm_authorization_state": "0x0001e1df", - "sm_bonding_decline": "0x0001e1f9", - "sm_config": "0x0001e655", - "sm_config_conn": "0x0001e66d", - "sm_encryption_key_size": "0x0001e823", - "sm_just_works_confirm": "0x0001eda9", - "sm_le_device_key": "0x0001f0e1", - "sm_passkey_input": "0x0001f177", - "sm_private_random_address_generation_get": "0x0001f531", - "sm_private_random_address_generation_get_mode": "0x0001f539", - "sm_private_random_address_generation_set_mode": "0x0001f545", - "sm_private_random_address_generation_set_update_period": "0x0001f56d", - "sm_register_external_ltk_callback": "0x0001f6a9", - "sm_register_oob_data_callback": "0x0001f6b5", - "sm_request_pairing": "0x0001f6c1", - "sm_send_security_request": "0x00020197", - "sm_set_accepted_stk_generation_methods": "0x000201bd", - "sm_set_authentication_requirements": "0x000201c9", - "sm_set_encryption_key_size_range": "0x000201d5", - "sscanf_bd_addr": "0x00020531", - "sysSetPublicDeviceAddr": "0x000208e5", - "uuid128_to_str": "0x00020ef1", - "uuid_add_bluetooth_prefix": "0x00020f49", - "uuid_has_bluetooth_prefix": "0x00020f69" + "platform_config": "0x0001d3c1", + "platform_controller_run": "0x0001d4e5", + "platform_delete_timer": "0x0001d519", + "platform_enable_irq": "0x0001d521", + "platform_get_gen_os_driver": "0x0001d559", + "platform_get_link_layer_interf": "0x0001d565", + "platform_get_task_handle": "0x0001d56d", + "platform_get_timer_counter": "0x0001d585", + "platform_get_us_time": "0x0001d589", + "platform_get_version": "0x0001d58d", + "platform_hrng": "0x0001d595", + "platform_init_controller": "0x0001d59d", + "platform_os_idle_resumed_hook": "0x0001d5b9", + "platform_patch_rf_init_data": "0x0001d5bd", + "platform_post_sleep_processing": "0x0001d5c9", + "platform_pre_sleep_processing": "0x0001d5cf", + "platform_pre_suppress_ticks_and_sleep_processing": "0x0001d5d5", + "platform_printf": "0x0001d5d9", + "platform_raise_assertion": "0x0001d5ed", + "platform_rand": "0x0001d601", + "platform_read_info": "0x0001d605", + "platform_read_persistent_reg": "0x0001d635", + "platform_reset": "0x0001d645", + "platform_rt_rc_auto_tune": "0x0001d669", + "platform_rt_rc_auto_tune2": "0x0001d671", + "platform_rt_rc_tune": "0x0001d715", + "platform_set_abs_timer": "0x0001d729", + "platform_set_evt_callback": "0x0001d72d", + "platform_set_evt_callback_table": "0x0001d741", + "platform_set_irq_callback": "0x0001d74d", + "platform_set_irq_callback_table": "0x0001d769", + "platform_set_rf_clk_source": "0x0001d775", + "platform_set_rf_init_data": "0x0001d781", + "platform_set_rf_power_mapping": "0x0001d78d", + "platform_set_timer": "0x0001d799", + "platform_shutdown": "0x0001d79d", + "platform_switch_app": "0x0001d7a1", + "platform_trace_raw": "0x0001d7cd", + "platform_write_persistent_reg": "0x0001d7e5", + "printf_hexdump": "0x0001d7f5", + "reverse_128": "0x0001db35", + "reverse_24": "0x0001db3b", + "reverse_256": "0x0001db41", + "reverse_48": "0x0001db47", + "reverse_56": "0x0001db4d", + "reverse_64": "0x0001db53", + "reverse_bd_addr": "0x0001db59", + "reverse_bytes": "0x0001db5f", + "sm_add_event_handler": "0x0001dcfd", + "sm_address_resolution_lookup": "0x0001de55", + "sm_authenticated": "0x0001e1d1", + "sm_authorization_decline": "0x0001e1df", + "sm_authorization_grant": "0x0001e1ff", + "sm_authorization_state": "0x0001e21f", + "sm_bonding_decline": "0x0001e239", + "sm_config": "0x0001e695", + "sm_config_conn": "0x0001e6ad", + "sm_encryption_key_size": "0x0001e863", + "sm_just_works_confirm": "0x0001ede9", + "sm_le_device_key": "0x0001f121", + "sm_passkey_input": "0x0001f1b7", + "sm_private_random_address_generation_get": "0x0001f571", + "sm_private_random_address_generation_get_mode": "0x0001f579", + "sm_private_random_address_generation_set_mode": "0x0001f585", + "sm_private_random_address_generation_set_update_period": "0x0001f5ad", + "sm_register_external_ltk_callback": "0x0001f6e9", + "sm_register_oob_data_callback": "0x0001f6f5", + "sm_request_pairing": "0x0001f701", + "sm_send_security_request": "0x000201d7", + "sm_set_accepted_stk_generation_methods": "0x000201fd", + "sm_set_authentication_requirements": "0x00020209", + "sm_set_encryption_key_size_range": "0x00020215", + "sscanf_bd_addr": "0x00020571", + "sysSetPublicDeviceAddr": "0x00020925", + "uuid128_to_str": "0x00020f39", + "uuid_add_bluetooth_prefix": "0x00020f91", + "uuid_has_bluetooth_prefix": "0x00020fb1" } \ No newline at end of file diff --git a/bundles/noos_typical/ING9187xx/meta.json b/bundles/noos_typical/ING9187xx/meta.json index 5c58b147c..d7d72e6ab 100644 --- a/bundles/noos_typical/ING9187xx/meta.json +++ b/bundles/noos_typical/ING9187xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 124964 + "size": 125044 }, "version": [ 1, 9, - 40 + 41 ] } \ No newline at end of file diff --git a/bundles/noos_typical/ING9187xx/platform.bin b/bundles/noos_typical/ING9187xx/platform.bin index 656719441d8316dbd9a171d8dfe43564fe8082f7..d09b74d587ae5b7c38525c8b2a3e80976b1d57f3 100644 GIT binary patch delta 16211 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 F{{s@$zrO$g delta 16164 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 Ni%>$4;we6e{69e(ev|+J diff --git a/bundles/noos_typical/ING9188xx/apis.json b/bundles/noos_typical/ING9188xx/apis.json index 355e8fac1..cc414eef4 100644 --- a/bundles/noos_typical/ING9188xx/apis.json +++ b/bundles/noos_typical/ING9188xx/apis.json @@ -184,83 +184,84 @@ "ll_set_def_antenna": "0x0000d545", "ll_set_initiating_coded_scheme": "0x0000d561", "ll_set_max_conn_number": "0x0000d56d", - "nibble_for_char": "0x0001e5c9", - "platform_32k_rc_auto_tune": "0x0001e665", - "platform_32k_rc_tune": "0x0001e6e1", - "platform_calibrate_32k": "0x0001e6f5", + "nibble_for_char": "0x0001e5d9", + "platform_calibrate_rt_clk": "0x0001e673", "platform_call_on_stack": "0x000040ef", - "platform_config": "0x0001e6f9", - "platform_controller_run": "0x0001e81d", - "platform_delete_timer": "0x0001e851", - "platform_enable_irq": "0x0001e859", - "platform_get_gen_os_driver": "0x0001e891", - "platform_get_link_layer_interf": "0x0001e89d", - "platform_get_task_handle": "0x0001e8a5", - "platform_get_timer_counter": "0x0001e8bd", - "platform_get_us_time": "0x0001e8c1", - "platform_get_version": "0x0001e8c5", - "platform_hrng": "0x0001e8cd", - "platform_init_controller": "0x0001e8d5", - "platform_os_idle_resumed_hook": "0x0001e8f1", - "platform_patch_rf_init_data": "0x0001e8f5", - "platform_post_sleep_processing": "0x0001e901", - "platform_pre_sleep_processing": "0x0001e907", - "platform_pre_suppress_ticks_and_sleep_processing": "0x0001e90d", - "platform_printf": "0x0001e911", - "platform_raise_assertion": "0x0001e925", - "platform_rand": "0x0001e939", - "platform_read_info": "0x0001e93d", - "platform_read_persistent_reg": "0x0001e96d", - "platform_reset": "0x0001e97d", - "platform_set_abs_timer": "0x0001e9a1", - "platform_set_evt_callback": "0x0001e9a5", - "platform_set_evt_callback_table": "0x0001e9b9", - "platform_set_irq_callback": "0x0001e9c5", - "platform_set_irq_callback_table": "0x0001e9e1", - "platform_set_rf_clk_source": "0x0001e9ed", - "platform_set_rf_init_data": "0x0001e9f9", - "platform_set_rf_power_mapping": "0x0001ea05", - "platform_set_timer": "0x0001ea11", - "platform_shutdown": "0x0001ea15", - "platform_switch_app": "0x0001ea19", - "platform_trace_raw": "0x0001ea45", - "platform_write_persistent_reg": "0x0001ea5d", - "printf_hexdump": "0x0001ea6d", - "reverse_128": "0x0001ede5", - "reverse_24": "0x0001edeb", - "reverse_256": "0x0001edf1", - "reverse_48": "0x0001edf7", - "reverse_56": "0x0001edfd", - "reverse_64": "0x0001ee03", - "reverse_bd_addr": "0x0001ee09", - "reverse_bytes": "0x0001ee0f", - "sm_add_event_handler": "0x0001f0fd", - "sm_address_resolution_lookup": "0x0001f255", - "sm_authenticated": "0x0001f5d1", - "sm_authorization_decline": "0x0001f5df", - "sm_authorization_grant": "0x0001f5ff", - "sm_authorization_state": "0x0001f61f", - "sm_bonding_decline": "0x0001f639", - "sm_config": "0x0001fa95", - "sm_config_conn": "0x0001faad", - "sm_encryption_key_size": "0x0001fc63", - "sm_just_works_confirm": "0x000201e9", - "sm_le_device_key": "0x00020521", - "sm_passkey_input": "0x000205b7", - "sm_private_random_address_generation_get": "0x00020971", - "sm_private_random_address_generation_get_mode": "0x00020979", - "sm_private_random_address_generation_set_mode": "0x00020985", - "sm_private_random_address_generation_set_update_period": "0x000209ad", - "sm_register_external_ltk_callback": "0x00020ae9", - "sm_register_oob_data_callback": "0x00020af5", - "sm_request_pairing": "0x00020b01", - "sm_send_security_request": "0x000215d7", - "sm_set_accepted_stk_generation_methods": "0x000215fd", - "sm_set_authentication_requirements": "0x00021609", - "sm_set_encryption_key_size_range": "0x00021615", - "sscanf_bd_addr": "0x00021971", - "sysSetPublicDeviceAddr": "0x00021d25", - "uuid128_to_str": "0x000224c5", - "uuid_add_bluetooth_prefix": "0x0002251d", - "uuid_has_bluetooth_prefix": "0x0002253d" + "platform_config": "0x0001e679", + "platform_controller_run": "0x0001e79d", + "platform_delete_timer": "0x0001e7d1", + "platform_enable_irq": "0x0001e7d9", + "platform_get_gen_os_driver": "0x0001e811", + "platform_get_link_layer_interf": "0x0001e81d", + "platform_get_task_handle": "0x0001e825", + "platform_get_timer_counter": "0x0001e83d", + "platform_get_us_time": "0x0001e841", + "platform_get_version": "0x0001e845", + "platform_hrng": "0x0001e84d", + "platform_init_controller": "0x0001e855", + "platform_os_idle_resumed_hook": "0x0001e871", + "platform_patch_rf_init_data": "0x0001e875", + "platform_post_sleep_processing": "0x0001e881", + "platform_pre_sleep_processing": "0x0001e887", + "platform_pre_suppress_ticks_and_sleep_processing": "0x0001e88d", + "platform_printf": "0x0001e891", + "platform_raise_assertion": "0x0001e8a5", + "platform_rand": "0x0001e8b9", + "platform_read_info": "0x0001e8bd", + "platform_read_persistent_reg": "0x0001e8ed", + "platform_reset": "0x0001e8fd", + "platform_rt_rc_auto_tune": "0x0001e921", + "platform_rt_rc_auto_tune2": "0x0001e929", + "platform_rt_rc_tune": "0x0001e9cd", + "platform_set_abs_timer": "0x0001e9e1", + "platform_set_evt_callback": "0x0001e9e5", + "platform_set_evt_callback_table": "0x0001e9f9", + "platform_set_irq_callback": "0x0001ea05", + "platform_set_irq_callback_table": "0x0001ea21", + "platform_set_rf_clk_source": "0x0001ea2d", + "platform_set_rf_init_data": "0x0001ea39", + "platform_set_rf_power_mapping": "0x0001ea45", + "platform_set_timer": "0x0001ea51", + "platform_shutdown": "0x0001ea55", + "platform_switch_app": "0x0001ea59", + "platform_trace_raw": "0x0001ea85", + "platform_write_persistent_reg": "0x0001ea9d", + "printf_hexdump": "0x0001eaad", + "reverse_128": "0x0001ee25", + "reverse_24": "0x0001ee2b", + "reverse_256": "0x0001ee31", + "reverse_48": "0x0001ee37", + "reverse_56": "0x0001ee3d", + "reverse_64": "0x0001ee43", + "reverse_bd_addr": "0x0001ee49", + "reverse_bytes": "0x0001ee4f", + "sm_add_event_handler": "0x0001f13d", + "sm_address_resolution_lookup": "0x0001f295", + "sm_authenticated": "0x0001f611", + "sm_authorization_decline": "0x0001f61f", + "sm_authorization_grant": "0x0001f63f", + "sm_authorization_state": "0x0001f65f", + "sm_bonding_decline": "0x0001f679", + "sm_config": "0x0001fad5", + "sm_config_conn": "0x0001faed", + "sm_encryption_key_size": "0x0001fca3", + "sm_just_works_confirm": "0x00020229", + "sm_le_device_key": "0x00020561", + "sm_passkey_input": "0x000205f7", + "sm_private_random_address_generation_get": "0x000209b1", + "sm_private_random_address_generation_get_mode": "0x000209b9", + "sm_private_random_address_generation_set_mode": "0x000209c5", + "sm_private_random_address_generation_set_update_period": "0x000209ed", + "sm_register_external_ltk_callback": "0x00020b29", + "sm_register_oob_data_callback": "0x00020b35", + "sm_request_pairing": "0x00020b41", + "sm_send_security_request": "0x00021617", + "sm_set_accepted_stk_generation_methods": "0x0002163d", + "sm_set_authentication_requirements": "0x00021649", + "sm_set_encryption_key_size_range": "0x00021655", + "sscanf_bd_addr": "0x000219b1", + "sysSetPublicDeviceAddr": "0x00021d65", + "uuid128_to_str": "0x00022511", + "uuid_add_bluetooth_prefix": "0x00022569", + "uuid_has_bluetooth_prefix": "0x00022589" } \ No newline at end of file diff --git a/bundles/noos_typical/ING9188xx/meta.json b/bundles/noos_typical/ING9188xx/meta.json index ff9fbbcf1..7f258e2e3 100644 --- a/bundles/noos_typical/ING9188xx/meta.json +++ b/bundles/noos_typical/ING9188xx/meta.json @@ -1,6 +1,6 @@ { "app": { - "base": 147456 + "base": 155648 }, "ram": { "base": 536870912, @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 131012 + "size": 131092 }, "version": [ 1, 9, - 40 + 41 ] } \ No newline at end of file diff --git a/bundles/noos_typical/ING9188xx/platform.bin b/bundles/noos_typical/ING9188xx/platform.bin index 2ac758f21d61171b15196f0b772b500dd91db07b..a44f684bf4a0b9e84db82aabb784e97bf2200825 100644 GIT binary patch delta 17351 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 delta 17172 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 diff --git a/bundles/noos_typical/inc/bluetooth.h b/bundles/noos_typical/inc/bluetooth.h index a7d216362..44c58585a 100644 --- a/bundles/noos_typical/inc/bluetooth.h +++ b/bundles/noos_typical/inc/bluetooth.h @@ -521,6 +521,7 @@ typedef enum { #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2 0x29 // Vendor specific subevents +#define HCI_SUBEVENT_LE_VENDOR_CONNECTION_ABORTED 0xFD #define HCI_SUBEVENT_LE_VENDOR_CHANNEL_MAP_UPDATE 0xFE #define HCI_SUBEVENT_LE_VENDOR_PRO_CONNECTIONLESS_IQ_REPORT 0xFF diff --git a/bundles/noos_typical/inc/btstack_event.h b/bundles/noos_typical/inc/btstack_event.h index 20ae54c5d..e5ab49a55 100644 --- a/bundles/noos_typical/inc/btstack_event.h +++ b/bundles/noos_typical/inc/btstack_event.h @@ -1386,6 +1386,43 @@ typedef struct le_meta_subrate_change // Time Range: 100 ms to 32 s } le_meta_subrate_change_t; +typedef struct le_meta_event_vendor_channel_map_update +{ + // connection handle + uint16_t conn_handle; + // current channel map (the lower 37 bits are used) + // channel `n` is identified by bit `(channel_map & 0x7)` of `channel_map[n / 8]` + uint8_t channel_map[5]; +} le_meta_event_vendor_channel_map_update_t; + +// @brief BLE Link Layer security context +typedef struct le_security_ctx +{ + uint8_t opaque[40]; +} le_security_ctx_t; + +typedef struct le_meta_event_vendor_connection_aborted +{ + uint16_t conn_handle; // connection handle + uint8_t role; // role (0: master, 1: slave) + phy_type_t rx_phy; // Rx PHY + phy_type_t tx_phy; // Tx PHY + uint32_t access_addr; // Access address + uint32_t crc_init; // CRC init value + uint32_t interval; // interval in us + uint16_t sup_timeout; // supervision timeout in 10ms + uint8_t channel_map[5]; // channel map (lower 37 bits) + uint8_t ch_sel_algo; // channel selection algorithm (0: ALG #1, 1: ALG #2) + uint8_t hop_inc; // frequency hopping increment (only for ALG #1) + uint8_t last_unmapped_ch; // last unmapped channel (only for ALG #1) + uint16_t slave_latency; // slave latency + uint8_t sleep_clk_acc; // sleep clock accuracy + uint64_t next_event_time; // start time of next connection event + uint16_t next_event_counter; // event counter for next connection event + uint8_t security_enabled; // is security enabled + le_security_ctx_t security; // security context (available when enabled) +} le_meta_event_vendor_connection_aborted_t; + typedef struct le_mete_event_prd_adv_subevent_data_req { uint8_t adv_handle; // Used to identify a periodic advertising train diff --git a/bundles/noos_typical/inc/ll_api.h b/bundles/noos_typical/inc/ll_api.h index 275c71b50..24558161d 100644 --- a/bundles/noos_typical/inc/ll_api.h +++ b/bundles/noos_typical/inc/ll_api.h @@ -100,14 +100,15 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co /** **************************************************************************************** - * @brief Create a connection directly (without advertising & initiating) + * @brief Create/Resume a connection directly (without advertising & initiating) * * @param[in] role connection role. master (0), slave (1) * @param[in] addr_types address types for advertiser and initiator - * bit [0] for slave, bit [1] for master + * bit [0] for slave (advertiser) + * bit [1] for master (initiator) * 0: public address; 1: random address - * @param[in] adv_addr address of advertiser - * @param[in] init_addr address of initiator + * @param[in] adv_addr address of advertiser (little-endian) + * @param[in] init_addr address of initiator (little-endian) * @param[in] rx_phy Rx PHY (1: 1M, 2: 2M, 3: Coded) * @param[in] tx_phy Tx PHY (1: 1M, 2: 2M, 3: Coded) * @param[in] access_addr access address @@ -115,21 +116,26 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co * @param[in] interval connection interval (unit: us) * @param[in] sup_timeout supervision timeout (unit: 10ms) * @param[in] channel_map channel map - * @param[in] ch_sel_algo channel selection algorithm (1 or 2) - * @param[in] hop_inc hop increment for CSA#1 ([5..16]) + * @param[in] ch_sel_algo channel selection algorithm (0: ALG #1, 1: ALG #2) + * @param[in] hop_inc hop increment for CSA#1 ([5..16]) (only for ALG #1) + * @param[in] last_unmapped_ch last unmapped channel index (only for ALG #1) * @param[in] min_ce_len information parameter about the minimum length of connection * event needed for this LE connection. * @param[in] max_ce_len information parameter about the maximum length of connection * event needed for this LE connection. - * @param[in] start_time start time of the 1st connectin event + * @param[in] start_time start time of the 1st connection event + * @param[in] event_counter event counter for the 1st connection event * @param[in] slave_latency slave latency - * @param[in] sleep_clk_acc sleep clock accuracy + * @param[in] sleep_clk_acc sleep clock accuracy (only for SLAVE role) * @param[in] sync_window slave's sync window for 1st connection event + * @param[in] security link layer security context + * NULL: security not used + * otherwise: security is used, which is `le_security_ctx_t *` in + * `le_meta_event_vendor_connection_aborted_t`. * @return 0 if successful else error code **************************************************************************************** */ -// int ll_create_conn( -// uint8_t role, +// int ll_create_conn(uint8_t role, // uint8_t addr_types, // const uint8_t *adv_addr, // const uint8_t *init_addr, @@ -142,12 +148,15 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co // const uint8_t *channel_map, // uint8_t ch_sel_algo, // uint8_t hop_inc, +// uint8_t last_unmapped_ch, // uint16_t min_ce_len, // uint16_t max_ce_len, // uint64_t start_time, +// uint16_t event_counter, // uint16_t slave_latency, // uint8_t sleep_clk_acc, -// uint32_t sync_window); +// uint32_t sync_window, +// const void *security); // WARNING: ^^^ this API is not available in this release @@ -242,6 +251,20 @@ void ll_set_conn_latency(uint16_t conn_handle, int latency); // WARNING: ^^^ this API is not available in this release +/** + **************************************************************************************** + * @brief Abort an existing connection + * + * After a connection is aborted, `HCI_SUBEVENT_VENDOR_CONNECTION_ABORTED` is emitted. + * + * @param[in] conn_handle handle of an existing connection + * @return 0 if aborting is ongoing else non-0 + **************************************************************************************** + */ +// int ll_conn_abort(uint16_t conn_handle); +// WARNING: ^^^ this API is not available in this release + + /** **************************************************************************************** * @brief Set default antenna ID diff --git a/bundles/noos_typical/inc/platform_api.h b/bundles/noos_typical/inc/platform_api.h index 2c7815798..bbc633bd3 100644 --- a/bundles/noos_typical/inc/platform_api.h +++ b/bundles/noos_typical/inc/platform_api.h @@ -409,7 +409,7 @@ uint8_t platform_read_persistent_reg(void); * ING918: starting from 0x20000000, 64KiB * ING916: starting from 0x20000000, 16KiB * - * @param[in] duration_cycles Duration before power on again (measured in cycles of 32k clock) + * @param[in] duration_cycles Duration before power on again (measured in cycles of real time clock) * Minimum value: 825 cycles (about 25.18ms) * When = 0: only power on when external wake up source is asserted * @param[in] p_retention_data Pointer to the start of data to be retained @@ -430,13 +430,18 @@ typedef enum PLATFORM_CFG_LOG_HCI, // flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_POWER_SAVING, // flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_TRACE_MASK, // flag is bitmap of platform_trace_item_t. default: 0 - PLATFORM_CFG_RC32K_EN, // Enable/Disable RC 32k clock. Default: Enable - PLATFORM_CFG_OSC32K_EN, // Enable/Disable 32k crystal oscillator. Default: Enable - PLATFORM_CFG_32K_CLK, // 32k clock selection. flag is platform_32k_clk_src_t. default: PLATFORM_32K_RC - // Note 1: When modifying this configuration, both RC32K and OSC32K should be ENABLED. + PLATFORM_CFG_RT_RC_EN, // Enable/Disable internal real time RC clock. Default: Enable + PLATFORM_CFG_RC32K_EN = PLATFORM_CFG_RT_RC_EN, + PLATFORM_CFG_RT_OSC_EN, // Enable/Disable external real time crystal oscillator. Default: Enable + PLATFORM_CFG_OSC32K_EN = PLATFORM_CFG_RT_OSC_EN, + PLATFORM_CFG_RT_CLK, // real time clock selection. flag is platform_rt_clk_src_t. default: PLATFORM_RT_RC + // Note 1: When modifying this configuration, both RT_RC and RT_OSC should be ENABLED. // Note 2: Unused clock can be disabled. - PLATFORM_CFG_32K_CLK_ACC, // Configure 32k clock accuracy in ppm. - PLATFORM_CFG_32K_CALI_PERIOD, // 32K clock auto-calibration period in seconds. Default: 3600 * 2 + PLATFORM_CFG_32K_CLK = PLATFORM_CFG_RT_CLK, + PLATFORM_CFG_RT_CLK_ACC, // Configure real time clock accuracy in ppm. + PLATFORM_CFG_32K_CLK_ACC = PLATFORM_CFG_RT_CLK_ACC, + PLATFORM_CFG_RT_CLK_CALI_PERIOD, // real time clock auto-calibration period in seconds. Default: 3600 * 2 + PLATFORM_CFG_32K_CALI_PERIOD = PLATFORM_CFG_RT_CLK_CALI_PERIOD, PLATFORM_CFG_PS_DBG_0, // debugging parameter PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION, // sleep time reduction (deep sleep mode) in us. (default: ~550us) PLATFORM_CFG_PS_DBG_1 = PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION, // obsoleted @@ -469,9 +474,13 @@ typedef enum typedef enum { - PLATFORM_32K_OSC, // external 32k crystal oscillator - PLATFORM_32K_RC // internal RC 32k clock -} platform_32k_clk_src_t; + PLATFORM_RT_OSC, // external crystal oscillator + PLATFORM_32K_OSC = PLATFORM_RT_OSC, + PLATFORM_RT_RC, // internal RC clock + PLATFORM_32K_RC = PLATFORM_RT_RC, +} platform_rt_clk_src_t; + +#define platform_32k_clk_src_t platform_rt_clk_src_t #define PLATFORM_CFG_ENABLE 1 #define PLATFORM_CFG_DISABLE 0 @@ -488,11 +497,13 @@ void platform_config(const platform_cfg_item_t item, const uint32_t flag); typedef enum { - PLATFORM_INFO_OSC32K_STATUS, // Read status of 32k crystal oscillator. (0: not OK; Non-0: OK) + PLATFORM_INFO_RT_OSC_STATUS, // Read status of real time crystal oscillator. (0: not OK; Non-0: OK) // "OK" means running. - // For ING916: this clock become running **after** selected as 32k + // For ING916: this clock become running **after** selected as real time clock // clock source. - PLATFORM_INFO_32K_CALI_VALUE, // Read current 32k clock calibration result. + PLATFORM_INFO_OSC32K_STATUS = PLATFORM_INFO_RT_OSC_STATUS, + PLATFORM_INFO_RT_CLK_CALI_VALUE, // Read current real time clock calibration result. + PLATFORM_INFO_32K_CALI_VALUE = PLATFORM_INFO_RT_CLK_CALI_VALUE, PLATFOFM_INFO_IRQ_NUMBER = 50, // Get the underline IRQ number of a platform IRQ // for example, platform_read_info(PLATFOFM_INFO_IRQ_NUMBER + PLATFORM_CB_IRQ_UART0) PLATFOFM_INFO_NUMBER = 255, @@ -510,36 +521,52 @@ uint32_t platform_read_info(const platform_info_item_t item); /** **************************************************************************************** - * @brief Do 32k clock calibration and get the calibration value. + * @brief Calibrate real-time RC clock and get the calibration value. * - * 32K clock auto-calibration timer is also reset, which means that next auto-calibration - * is supposed to be carried out after `PLATFORM_CFG_32K_CALI_PERIOD` seconds. + * Real time clock auto-calibration timer is also reset, which means that next auto-calibration + * is supposed to be carried out after `PLATFORM_CFG_RT_CLK_CALI_PERIOD` seconds. * * @return Calibration value. **************************************************************************************** */ -uint32_t platform_calibrate_32k(void); +uint32_t platform_calibrate_rt_clk(void); /** **************************************************************************************** - * @brief Tune internal the 32k RC clock with `value`. + * @brief Tune internal the real-time RC clock with `value`. * - * @param[in] value Value used to tune the clock (returned by `platform_32k_rc_auto_tune`) + * @param[in] value Value used to tune the clock (returned by `platform_rt_rc_auto_tune`) **************************************************************************************** */ -void platform_32k_rc_tune(uint16_t value); +void platform_rt_rc_tune(uint16_t value); /** **************************************************************************************** - * @brief Automatically tune the internal 32k RC clock, and get the tuning value. + * @brief Automatically tune the internal real time RC clock, and get the tuning value. * - * Note: This operation costs ~250ms. It is recommended to call this once and store the - * returned value into NVM for later usage. + * This is equivalent to `platform_rt_rc_auto_tune2(65536000000 / frequency)`. * * @return Value used to tune the clock **************************************************************************************** */ -uint16_t platform_32k_rc_auto_tune(void); +uint16_t platform_rt_rc_auto_tune(void); + +#define platform_calibrate_32k platform_calibrate_rt_clk +#define platform_32k_rc_tune platform_rt_rc_tune +#define platform_32k_rc_auto_tune platform_rt_rc_auto_tune + +/** + **************************************************************************************** + * @brief Automatically tune the internal real-time RC clock to a target frequency, and + * get the tuning value. + * + * Note: This operation costs ~250ms. + * + * @param[in] target_frequency target frequency of tuning (Hz) + * @return Value used to tune the clock + **************************************************************************************** + */ +uint16_t platform_rt_rc_auto_tune2(uint32_t target_frequency); /** **************************************************************************************** diff --git a/bundles/typical/ING9168xx/apis.json b/bundles/typical/ING9168xx/apis.json index 6c142a8f2..1ebffd184 100644 --- a/bundles/typical/ING9168xx/apis.json +++ b/bundles/typical/ING9168xx/apis.json @@ -17,330 +17,331 @@ "att_set_db": "0x02004f6d", "att_set_read_callback": "0x02004f81", "att_set_write_callback": "0x02004f8d", - "bd_addr_cmp": "0x02005161", - "bd_addr_copy": "0x02005167", - "bd_addr_to_str": "0x02005171", - "big_endian_read_16": "0x020051a9", - "big_endian_read_32": "0x020051b1", - "big_endian_store_16": "0x020051c5", - "big_endian_store_32": "0x020051d1", - "btstack_config": "0x02005331", - "btstack_memory_pool_create": "0x0200546f", - "btstack_memory_pool_free": "0x02005499", - "btstack_memory_pool_get": "0x020054f9", - "btstack_push_user_msg": "0x02005561", - "btstack_push_user_runnable": "0x0200556d", - "btstack_reset": "0x02005579", - "char_for_nibble": "0x0200586b", - "eTaskConfirmSleepModeStatus": "0x02005c1d", - "gap_add_dev_to_periodic_list": "0x0200628d", - "gap_add_whitelist": "0x0200629d", - "gap_aes_encrypt": "0x020062a9", - "gap_clear_white_lists": "0x020062e1", - "gap_clr_adv_set": "0x020062ed", - "gap_clr_periodic_adv_list": "0x020062f9", - "gap_create_connection_cancel": "0x02006305", - "gap_default_periodic_adv_sync_transfer_param": "0x02006311", - "gap_disconnect": "0x02006329", - "gap_disconnect_all": "0x02006355", - "gap_ext_create_connection": "0x02006395", - "gap_get_connection_parameter_range": "0x0200646d", - "gap_le_read_channel_map": "0x020064a9", - "gap_periodic_adv_create_sync": "0x02006515", - "gap_periodic_adv_create_sync_cancel": "0x02006539", - "gap_periodic_adv_set_info_transfer": "0x02006545", - "gap_periodic_adv_sync_transfer": "0x02006555", - "gap_periodic_adv_sync_transfer_param": "0x02006565", - "gap_periodic_adv_term_sync": "0x02006581", - "gap_read_antenna_info": "0x02006609", - "gap_read_periodic_adv_list_size": "0x02006615", - "gap_read_phy": "0x02006621", - "gap_read_remote_used_features": "0x0200662d", - "gap_read_remote_version": "0x02006639", - "gap_read_rssi": "0x02006645", - "gap_remove_whitelist": "0x02006651", - "gap_rmv_adv_set": "0x020066cd", - "gap_rmv_dev_from_periodic_list": "0x020066d9", - "gap_rx_test_v2": "0x020066e9", - "gap_rx_test_v3": "0x020066f9", - "gap_set_adv_set_random_addr": "0x02006745", - "gap_set_callback_for_next_hci": "0x02006781", - "gap_set_connection_cte_request_enable": "0x020067a1", - "gap_set_connection_cte_response_enable": "0x020067bd", - "gap_set_connection_cte_rx_param": "0x020067cd", - "gap_set_connection_cte_tx_param": "0x02006821", - "gap_set_connection_parameter_range": "0x0200686d", - "gap_set_connectionless_cte_tx_enable": "0x02006885", - "gap_set_connectionless_cte_tx_param": "0x02006895", - "gap_set_connectionless_iq_sampling_enable": "0x020068f1", - "gap_set_data_length": "0x0200694d", - "gap_set_def_phy": "0x02006965", - "gap_set_ext_adv_data": "0x02006975", - "gap_set_ext_adv_enable": "0x0200698d", - "gap_set_ext_adv_para": "0x020069fd", - "gap_set_ext_scan_enable": "0x02006acd", - "gap_set_ext_scan_para": "0x02006ae5", - "gap_set_ext_scan_response_data": "0x02006b85", - "gap_set_host_channel_classification": "0x02006b9d", - "gap_set_periodic_adv_data": "0x02006bad", - "gap_set_periodic_adv_enable": "0x02006c1d", - "gap_set_periodic_adv_para": "0x02006c2d", - "gap_set_periodic_adv_rx_enable": "0x02006c45", - "gap_set_phy": "0x02006c55", - "gap_set_random_device_address": "0x02006c71", - "gap_start_ccm": "0x02006ca1", - "gap_test_end": "0x02006ce9", - "gap_tx_test_v2": "0x02006cf5", - "gap_tx_test_v4": "0x02006d0d", - "gap_update_connection_parameters": "0x02006d31", - "gap_vendor_tx_continuous_wave": "0x02006d75", - "gatt_client_cancel_write": "0x0200729d", - "gatt_client_discover_characteristic_descriptors": "0x020072c3", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x02007303", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x02007353", - "gatt_client_discover_characteristics_for_service": "0x020073a3", - "gatt_client_discover_primary_services": "0x020073d9", - "gatt_client_discover_primary_services_by_uuid128": "0x0200740b", - "gatt_client_discover_primary_services_by_uuid16": "0x0200744f", - "gatt_client_execute_write": "0x0200748d", - "gatt_client_find_included_services_for_service": "0x020074b3", - "gatt_client_get_mtu": "0x020074e1", - "gatt_client_is_ready": "0x020075a5", - "gatt_client_listen_for_characteristic_value_updates": "0x020075bb", - "gatt_client_prepare_write": "0x020075dd", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007619", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x02007643", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007649", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x02007677", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x0200767d", - "gatt_client_read_multiple_characteristic_values": "0x020076ab", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x020076db", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007709", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x02007755", - "gatt_client_register_handler": "0x020077a1", - "gatt_client_reliable_write_long_value_of_characteristic": "0x020077ad", - "gatt_client_signed_write_without_response": "0x02007be1", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007ca5", - "gatt_client_write_client_characteristic_configuration": "0x02007cdf", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007d31", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007d41", - "gatt_client_write_long_value_of_characteristic": "0x02007d7d", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007d8d", - "gatt_client_write_value_of_characteristic": "0x02007dc9", - "gatt_client_write_value_of_characteristic_without_response": "0x02007dff", - "hci_add_event_handler": "0x020093f5", - "hci_power_control": "0x02009b9d", - "hci_register_acl_packet_handler": "0x02009d51", - "kv_commit": "0x0200a485", - "kv_get": "0x0200a4e1", - "kv_init": "0x0200a4ed", - "kv_init_backend": "0x0200a56d", - "kv_put": "0x0200a581", - "kv_remove": "0x0200a58d", - "kv_remove_all": "0x0200a5c1", - "kv_value_modified": "0x0200a5f1", - "kv_value_modified_of_key": "0x0200a60d", - "kv_visit": "0x0200a619", - "l2cap_add_event_handler": "0x0200a6a9", - "l2cap_can_send_packet_now": "0x0200a6b9", - "l2cap_create_le_credit_based_connection_request": "0x0200a87d", - "l2cap_credit_based_send": "0x0200a9c5", - "l2cap_credit_based_send_continue": "0x0200a9f1", - "l2cap_disconnect": "0x0200aa6d", - "l2cap_get_le_credit_based_connection_credits": "0x0200ac59", - "l2cap_get_peer_mtu_for_local_cid": "0x0200ac75", - "l2cap_init": "0x0200b0b5", - "l2cap_le_send_flow_control_credit": "0x0200b1ab", - "l2cap_max_le_mtu": "0x0200b4b9", - "l2cap_register_packet_handler": "0x0200b5e1", - "l2cap_register_service": "0x0200b5ed", - "l2cap_request_can_send_now_event": "0x0200b6fd", - "l2cap_request_connection_parameter_update": "0x0200b717", - "l2cap_send_echo_request": "0x0200bbf9", - "l2cap_unregister_service": "0x0200bcd9", - "le_device_db_add": "0x0200bd31", - "le_device_db_find": "0x0200be09", - "le_device_db_from_key": "0x0200be35", - "le_device_db_iter_cur": "0x0200be3d", - "le_device_db_iter_cur_key": "0x0200be41", - "le_device_db_iter_init": "0x0200be45", - "le_device_db_iter_next": "0x0200be4d", - "le_device_db_remove_key": "0x0200be73", - "ll_adjust_conn_peer_tx_power": "0x0200bea1", - "ll_aes_encrypt": "0x0200becd", - "ll_config": "0x0200bf41", - "ll_free": "0x0200bf77", - "ll_get_heap_free_size": "0x0200bf81", - "ll_hint_on_ce_len": "0x0200bf95", - "ll_legacy_adv_set_interval": "0x0200bfcd", - "ll_malloc": "0x0200bfdd", - "ll_register_hci_acl_previewer": "0x0200c0f5", - "ll_scan_set_fixed_channel": "0x0200c159", - "ll_set_adv_access_address": "0x0200c371", - "ll_set_adv_coded_scheme": "0x0200c37d", - "ll_set_conn_acl_report_latency": "0x0200c3b5", - "ll_set_conn_coded_scheme": "0x0200c3e5", - "ll_set_conn_latency": "0x0200c411", - "ll_set_conn_tx_power": "0x0200c441", - "ll_set_def_antenna": "0x0200c47d", - "ll_set_initiating_coded_scheme": "0x0200c49d", - "ll_set_max_conn_number": "0x0200c4a9", - "ll_set_tx_power_range": "0x0200c53d", - "nibble_for_char": "0x0201efbd", - "platform_32k_rc_auto_tune": "0x0201f069", - "platform_32k_rc_tune": "0x0201f0b5", - "platform_calibrate_32k": "0x0201f0d1", + "bd_addr_cmp": "0x0200515d", + "bd_addr_copy": "0x02005163", + "bd_addr_to_str": "0x0200516d", + "big_endian_read_16": "0x020051a5", + "big_endian_read_32": "0x020051ad", + "big_endian_store_16": "0x020051c1", + "big_endian_store_32": "0x020051cd", + "btstack_config": "0x0200532d", + "btstack_memory_pool_create": "0x0200546b", + "btstack_memory_pool_free": "0x02005495", + "btstack_memory_pool_get": "0x020054f5", + "btstack_push_user_msg": "0x0200555d", + "btstack_push_user_runnable": "0x02005569", + "btstack_reset": "0x02005575", + "char_for_nibble": "0x02005867", + "eTaskConfirmSleepModeStatus": "0x02005c19", + "gap_add_dev_to_periodic_list": "0x02006289", + "gap_add_whitelist": "0x02006299", + "gap_aes_encrypt": "0x020062a5", + "gap_clear_white_lists": "0x020062dd", + "gap_clr_adv_set": "0x020062e9", + "gap_clr_periodic_adv_list": "0x020062f5", + "gap_create_connection_cancel": "0x02006301", + "gap_default_periodic_adv_sync_transfer_param": "0x0200630d", + "gap_disconnect": "0x02006325", + "gap_disconnect_all": "0x02006351", + "gap_ext_create_connection": "0x02006391", + "gap_get_connection_parameter_range": "0x02006469", + "gap_le_read_channel_map": "0x020064a5", + "gap_periodic_adv_create_sync": "0x02006511", + "gap_periodic_adv_create_sync_cancel": "0x02006535", + "gap_periodic_adv_set_info_transfer": "0x02006541", + "gap_periodic_adv_sync_transfer": "0x02006551", + "gap_periodic_adv_sync_transfer_param": "0x02006561", + "gap_periodic_adv_term_sync": "0x0200657d", + "gap_read_antenna_info": "0x02006605", + "gap_read_periodic_adv_list_size": "0x02006611", + "gap_read_phy": "0x0200661d", + "gap_read_remote_used_features": "0x02006629", + "gap_read_remote_version": "0x02006635", + "gap_read_rssi": "0x02006641", + "gap_remove_whitelist": "0x0200664d", + "gap_rmv_adv_set": "0x020066c9", + "gap_rmv_dev_from_periodic_list": "0x020066d5", + "gap_rx_test_v2": "0x020066e5", + "gap_rx_test_v3": "0x020066f5", + "gap_set_adv_set_random_addr": "0x02006741", + "gap_set_callback_for_next_hci": "0x0200677d", + "gap_set_connection_cte_request_enable": "0x0200679d", + "gap_set_connection_cte_response_enable": "0x020067b9", + "gap_set_connection_cte_rx_param": "0x020067c9", + "gap_set_connection_cte_tx_param": "0x0200681d", + "gap_set_connection_parameter_range": "0x02006869", + "gap_set_connectionless_cte_tx_enable": "0x02006881", + "gap_set_connectionless_cte_tx_param": "0x02006891", + "gap_set_connectionless_iq_sampling_enable": "0x020068ed", + "gap_set_data_length": "0x02006949", + "gap_set_def_phy": "0x02006961", + "gap_set_ext_adv_data": "0x02006971", + "gap_set_ext_adv_enable": "0x02006989", + "gap_set_ext_adv_para": "0x020069f9", + "gap_set_ext_scan_enable": "0x02006ac9", + "gap_set_ext_scan_para": "0x02006ae1", + "gap_set_ext_scan_response_data": "0x02006b81", + "gap_set_host_channel_classification": "0x02006b99", + "gap_set_periodic_adv_data": "0x02006ba9", + "gap_set_periodic_adv_enable": "0x02006c19", + "gap_set_periodic_adv_para": "0x02006c29", + "gap_set_periodic_adv_rx_enable": "0x02006c41", + "gap_set_phy": "0x02006c51", + "gap_set_random_device_address": "0x02006c6d", + "gap_start_ccm": "0x02006c9d", + "gap_test_end": "0x02006ce5", + "gap_tx_test_v2": "0x02006cf1", + "gap_tx_test_v4": "0x02006d09", + "gap_update_connection_parameters": "0x02006d2d", + "gap_vendor_tx_continuous_wave": "0x02006d71", + "gatt_client_cancel_write": "0x02007299", + "gatt_client_discover_characteristic_descriptors": "0x020072bf", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020072ff", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200734f", + "gatt_client_discover_characteristics_for_service": "0x0200739f", + "gatt_client_discover_primary_services": "0x020073d5", + "gatt_client_discover_primary_services_by_uuid128": "0x02007407", + "gatt_client_discover_primary_services_by_uuid16": "0x0200744b", + "gatt_client_execute_write": "0x02007489", + "gatt_client_find_included_services_for_service": "0x020074af", + "gatt_client_get_mtu": "0x020074dd", + "gatt_client_is_ready": "0x020075a1", + "gatt_client_listen_for_characteristic_value_updates": "0x020075b7", + "gatt_client_prepare_write": "0x020075d9", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007615", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200763f", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007645", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x02007673", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02007679", + "gatt_client_read_multiple_characteristic_values": "0x020076a7", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x020076d7", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007705", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x02007751", + "gatt_client_register_handler": "0x0200779d", + "gatt_client_reliable_write_long_value_of_characteristic": "0x020077a9", + "gatt_client_signed_write_without_response": "0x02007bdd", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007ca1", + "gatt_client_write_client_characteristic_configuration": "0x02007cdb", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007d2d", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007d3d", + "gatt_client_write_long_value_of_characteristic": "0x02007d79", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007d89", + "gatt_client_write_value_of_characteristic": "0x02007dc5", + "gatt_client_write_value_of_characteristic_without_response": "0x02007dfb", + "hci_add_event_handler": "0x020093f1", + "hci_power_control": "0x02009b99", + "hci_register_acl_packet_handler": "0x02009d4d", + "kv_commit": "0x0200a481", + "kv_get": "0x0200a4dd", + "kv_init": "0x0200a4e9", + "kv_init_backend": "0x0200a569", + "kv_put": "0x0200a57d", + "kv_remove": "0x0200a589", + "kv_remove_all": "0x0200a5bd", + "kv_value_modified": "0x0200a5ed", + "kv_value_modified_of_key": "0x0200a609", + "kv_visit": "0x0200a615", + "l2cap_add_event_handler": "0x0200a6a5", + "l2cap_can_send_packet_now": "0x0200a6b5", + "l2cap_create_le_credit_based_connection_request": "0x0200a879", + "l2cap_credit_based_send": "0x0200a9c1", + "l2cap_credit_based_send_continue": "0x0200a9ed", + "l2cap_disconnect": "0x0200aa69", + "l2cap_get_le_credit_based_connection_credits": "0x0200ac55", + "l2cap_get_peer_mtu_for_local_cid": "0x0200ac71", + "l2cap_init": "0x0200b0b1", + "l2cap_le_send_flow_control_credit": "0x0200b1a7", + "l2cap_max_le_mtu": "0x0200b4b5", + "l2cap_register_packet_handler": "0x0200b5dd", + "l2cap_register_service": "0x0200b5e9", + "l2cap_request_can_send_now_event": "0x0200b6f9", + "l2cap_request_connection_parameter_update": "0x0200b713", + "l2cap_send_echo_request": "0x0200bbf5", + "l2cap_unregister_service": "0x0200bcd5", + "le_device_db_add": "0x0200bd2d", + "le_device_db_find": "0x0200be05", + "le_device_db_from_key": "0x0200be31", + "le_device_db_iter_cur": "0x0200be39", + "le_device_db_iter_cur_key": "0x0200be3d", + "le_device_db_iter_init": "0x0200be41", + "le_device_db_iter_next": "0x0200be49", + "le_device_db_remove_key": "0x0200be6f", + "ll_adjust_conn_peer_tx_power": "0x0200be9d", + "ll_aes_encrypt": "0x0200bec9", + "ll_config": "0x0200bf3d", + "ll_free": "0x0200bf73", + "ll_get_heap_free_size": "0x0200bf7d", + "ll_hint_on_ce_len": "0x0200bf91", + "ll_legacy_adv_set_interval": "0x0200bfc9", + "ll_malloc": "0x0200bfd9", + "ll_register_hci_acl_previewer": "0x0200c0f1", + "ll_scan_set_fixed_channel": "0x0200c155", + "ll_set_adv_access_address": "0x0200c36d", + "ll_set_adv_coded_scheme": "0x0200c379", + "ll_set_conn_acl_report_latency": "0x0200c3b1", + "ll_set_conn_coded_scheme": "0x0200c3e1", + "ll_set_conn_latency": "0x0200c40d", + "ll_set_conn_tx_power": "0x0200c43d", + "ll_set_def_antenna": "0x0200c479", + "ll_set_initiating_coded_scheme": "0x0200c499", + "ll_set_max_conn_number": "0x0200c4a5", + "ll_set_tx_power_range": "0x0200c539", + "nibble_for_char": "0x0201efc9", + "platform_calibrate_rt_clk": "0x0201f073", "platform_call_on_stack": "0x020021fb", - "platform_config": "0x0201f0d5", - "platform_delete_timer": "0x0201f1fd", - "platform_enable_irq": "0x0201f205", - "platform_get_current_task": "0x0201f239", - "platform_get_gen_os_driver": "0x0201f25d", - "platform_get_heap_status": "0x0201f265", - "platform_get_link_layer_interf": "0x0201f27d", - "platform_get_task_handle": "0x0201f285", - "platform_get_timer_counter": "0x0201f2a5", - "platform_get_us_time": "0x0201f2a9", - "platform_get_version": "0x0201f2ad", - "platform_hrng": "0x0201f2b5", - "platform_install_isr_stack": "0x0201f2bd", - "platform_install_task_stack": "0x0201f2c9", - "platform_patch_rf_init_data": "0x0201f301", - "platform_printf": "0x0201f30d", - "platform_raise_assertion": "0x0201f321", - "platform_rand": "0x0201f335", - "platform_read_info": "0x0201f339", - "platform_read_persistent_reg": "0x0201f369", - "platform_reset": "0x0201f375", - "platform_set_abs_timer": "0x0201f389", - "platform_set_evt_callback": "0x0201f38d", - "platform_set_evt_callback_table": "0x0201f3a1", - "platform_set_irq_callback": "0x0201f3ad", - "platform_set_irq_callback_table": "0x0201f3c9", - "platform_set_rf_clk_source": "0x0201f3d5", - "platform_set_rf_init_data": "0x0201f3e1", - "platform_set_rf_power_mapping": "0x0201f3ed", - "platform_set_timer": "0x0201f3f9", - "platform_shutdown": "0x0201f3fd", - "platform_switch_app": "0x0201f401", - "platform_trace_raw": "0x0201f419", - "platform_write_persistent_reg": "0x0201f431", - "printf_hexdump": "0x0201f5e9", - "pvPortMalloc": "0x020200c1", - "pvTaskIncrementMutexHeldCount": "0x020201a9", - "pvTimerGetTimerID": "0x020201c1", - "pxPortInitialiseStack": "0x020201ed", - "reverse_128": "0x020203d5", - "reverse_24": "0x020203db", - "reverse_256": "0x020203e1", - "reverse_48": "0x020203e7", - "reverse_56": "0x020203ed", - "reverse_64": "0x020203f3", - "reverse_bd_addr": "0x020203f9", - "reverse_bytes": "0x020203ff", - "sm_add_event_handler": "0x0202075d", - "sm_address_resolution_lookup": "0x020208b5", - "sm_authenticated": "0x02020c31", - "sm_authorization_decline": "0x02020c3f", - "sm_authorization_grant": "0x02020c5f", - "sm_authorization_state": "0x02020c7f", - "sm_bonding_decline": "0x02020c99", - "sm_config": "0x020210ed", - "sm_config_conn": "0x02021105", - "sm_encryption_key_size": "0x020212bb", - "sm_just_works_confirm": "0x02021841", - "sm_le_device_key": "0x02021b79", - "sm_passkey_input": "0x02021c0f", - "sm_private_random_address_generation_get": "0x02021fc9", - "sm_private_random_address_generation_get_mode": "0x02021fd1", - "sm_private_random_address_generation_set_mode": "0x02021fdd", - "sm_private_random_address_generation_set_update_period": "0x02022005", - "sm_register_external_ltk_callback": "0x02022141", - "sm_register_oob_data_callback": "0x0202214d", - "sm_request_pairing": "0x02022159", - "sm_send_security_request": "0x02022c2f", - "sm_set_accepted_stk_generation_methods": "0x02022c55", - "sm_set_authentication_requirements": "0x02022c61", - "sm_set_encryption_key_size_range": "0x02022c6d", - "sscanf_bd_addr": "0x02022fcd", - "sysSetPublicDeviceAddr": "0x020234f9", - "uuid128_to_str": "0x02023d55", - "uuid_add_bluetooth_prefix": "0x02023dad", - "uuid_has_bluetooth_prefix": "0x02023dcd", - "uxListRemove": "0x02023de9", - "uxQueueMessagesWaiting": "0x02023e11", - "uxQueueMessagesWaitingFromISR": "0x02023e39", - "uxQueueSpacesAvailable": "0x02023e55", - "uxTaskGetStackHighWaterMark": "0x02023e81", - "uxTaskPriorityGet": "0x02023ea1", - "uxTaskPriorityGetFromISR": "0x02023ebd", - "vListInitialise": "0x02023f7b", - "vListInitialiseItem": "0x02023f91", - "vListInsert": "0x02023f97", - "vListInsertEnd": "0x02023fc7", - "vPortEndScheduler": "0x02023fe1", - "vPortEnterCritical": "0x0202400d", - "vPortExitCritical": "0x02024051", - "vPortFree": "0x02024085", - "vPortSuppressTicksAndSleep": "0x02024129", - "vPortValidateInterruptPriority": "0x02024251", - "vQueueDelete": "0x020242ad", - "vQueueWaitForMessageRestricted": "0x020242d9", - "vTaskDelay": "0x0202431d", - "vTaskInternalSetTimeOutState": "0x02024369", - "vTaskMissedYield": "0x02024379", - "vTaskPlaceOnEventList": "0x02024385", - "vTaskPlaceOnEventListRestricted": "0x020243bd", - "vTaskPriorityDisinheritAfterTimeout": "0x020243fd", - "vTaskPrioritySet": "0x020244a9", - "vTaskResume": "0x02024571", - "vTaskStartScheduler": "0x020245f5", - "vTaskStepTick": "0x02024685", - "vTaskSuspend": "0x020246b5", - "vTaskSuspendAll": "0x02024771", - "vTaskSwitchContext": "0x02024781", - "xPortStartScheduler": "0x02024829", - "xQueueAddToSet": "0x0202492d", - "xQueueCreateCountingSemaphore": "0x02024951", - "xQueueCreateCountingSemaphoreStatic": "0x0202498d", - "xQueueCreateMutex": "0x020249d1", - "xQueueCreateMutexStatic": "0x020249e7", - "xQueueCreateSet": "0x02024a01", - "xQueueGenericCreate": "0x02024a09", - "xQueueGenericCreateStatic": "0x02024a55", - "xQueueGenericReset": "0x02024abd", - "xQueueGenericSend": "0x02024b49", - "xQueueGenericSendFromISR": "0x02024cb5", - "xQueueGiveFromISR": "0x02024d75", - "xQueueGiveMutexRecursive": "0x02024e19", - "xQueueIsQueueEmptyFromISR": "0x02024e59", - "xQueueIsQueueFullFromISR": "0x02024e7d", - "xQueuePeek": "0x02024ea5", - "xQueuePeekFromISR": "0x02024fcd", - "xQueueReceive": "0x02025039", - "xQueueReceiveFromISR": "0x02025165", - "xQueueRemoveFromSet": "0x020251f9", - "xQueueSelectFromSet": "0x0202521b", - "xQueueSelectFromSetFromISR": "0x0202522d", - "xQueueSemaphoreTake": "0x02025241", - "xQueueTakeMutexRecursive": "0x020253ad", - "xTaskCheckForTimeOut": "0x020253f1", - "xTaskCreate": "0x02025461", - "xTaskCreateStatic": "0x020254bd", - "xTaskGetCurrentTaskHandle": "0x0202552d", - "xTaskGetSchedulerState": "0x02025539", - "xTaskGetTickCount": "0x02025555", - "xTaskGetTickCountFromISR": "0x02025561", - "xTaskIncrementTick": "0x02025571", - "xTaskPriorityDisinherit": "0x0202563d", - "xTaskPriorityInherit": "0x020256d1", - "xTaskRemoveFromEventList": "0x02025765", - "xTaskResumeAll": "0x020257e5", - "xTaskResumeFromISR": "0x020258ad", - "xTimerCreate": "0x02025939", - "xTimerCreateStatic": "0x0202596d", - "xTimerCreateTimerTask": "0x020259a5", - "xTimerGenericCommand": "0x02025a11", - "xTimerGetExpiryTime": "0x02025a81", - "xTimerGetTimerDaemonTaskHandle": "0x02025aa1" + "platform_config": "0x0201f079", + "platform_delete_timer": "0x0201f1a1", + "platform_enable_irq": "0x0201f1a9", + "platform_get_current_task": "0x0201f1dd", + "platform_get_gen_os_driver": "0x0201f201", + "platform_get_heap_status": "0x0201f209", + "platform_get_link_layer_interf": "0x0201f221", + "platform_get_task_handle": "0x0201f229", + "platform_get_timer_counter": "0x0201f249", + "platform_get_us_time": "0x0201f24d", + "platform_get_version": "0x0201f251", + "platform_hrng": "0x0201f259", + "platform_install_isr_stack": "0x0201f261", + "platform_install_task_stack": "0x0201f26d", + "platform_patch_rf_init_data": "0x0201f2a5", + "platform_printf": "0x0201f2b1", + "platform_raise_assertion": "0x0201f2c5", + "platform_rand": "0x0201f2d9", + "platform_read_info": "0x0201f2dd", + "platform_read_persistent_reg": "0x0201f30d", + "platform_reset": "0x0201f319", + "platform_rt_rc_auto_tune": "0x0201f32d", + "platform_rt_rc_auto_tune2": "0x0201f335", + "platform_rt_rc_tune": "0x0201f3b9", + "platform_set_abs_timer": "0x0201f3d5", + "platform_set_evt_callback": "0x0201f3d9", + "platform_set_evt_callback_table": "0x0201f3ed", + "platform_set_irq_callback": "0x0201f3f9", + "platform_set_irq_callback_table": "0x0201f415", + "platform_set_rf_clk_source": "0x0201f421", + "platform_set_rf_init_data": "0x0201f42d", + "platform_set_rf_power_mapping": "0x0201f439", + "platform_set_timer": "0x0201f445", + "platform_shutdown": "0x0201f449", + "platform_switch_app": "0x0201f44d", + "platform_trace_raw": "0x0201f465", + "platform_write_persistent_reg": "0x0201f47d", + "printf_hexdump": "0x0201f635", + "pvPortMalloc": "0x0202010d", + "pvTaskIncrementMutexHeldCount": "0x020201f5", + "pvTimerGetTimerID": "0x0202020d", + "pxPortInitialiseStack": "0x02020239", + "reverse_128": "0x02020421", + "reverse_24": "0x02020427", + "reverse_256": "0x0202042d", + "reverse_48": "0x02020433", + "reverse_56": "0x02020439", + "reverse_64": "0x0202043f", + "reverse_bd_addr": "0x02020445", + "reverse_bytes": "0x0202044b", + "sm_add_event_handler": "0x020207a9", + "sm_address_resolution_lookup": "0x02020901", + "sm_authenticated": "0x02020c7d", + "sm_authorization_decline": "0x02020c8b", + "sm_authorization_grant": "0x02020cab", + "sm_authorization_state": "0x02020ccb", + "sm_bonding_decline": "0x02020ce5", + "sm_config": "0x02021139", + "sm_config_conn": "0x02021151", + "sm_encryption_key_size": "0x02021307", + "sm_just_works_confirm": "0x0202188d", + "sm_le_device_key": "0x02021bc5", + "sm_passkey_input": "0x02021c5b", + "sm_private_random_address_generation_get": "0x02022015", + "sm_private_random_address_generation_get_mode": "0x0202201d", + "sm_private_random_address_generation_set_mode": "0x02022029", + "sm_private_random_address_generation_set_update_period": "0x02022051", + "sm_register_external_ltk_callback": "0x0202218d", + "sm_register_oob_data_callback": "0x02022199", + "sm_request_pairing": "0x020221a5", + "sm_send_security_request": "0x02022c7b", + "sm_set_accepted_stk_generation_methods": "0x02022ca1", + "sm_set_authentication_requirements": "0x02022cad", + "sm_set_encryption_key_size_range": "0x02022cb9", + "sscanf_bd_addr": "0x02023019", + "sysSetPublicDeviceAddr": "0x02023545", + "uuid128_to_str": "0x02023da1", + "uuid_add_bluetooth_prefix": "0x02023df9", + "uuid_has_bluetooth_prefix": "0x02023e19", + "uxListRemove": "0x02023e35", + "uxQueueMessagesWaiting": "0x02023e5d", + "uxQueueMessagesWaitingFromISR": "0x02023e85", + "uxQueueSpacesAvailable": "0x02023ea1", + "uxTaskGetStackHighWaterMark": "0x02023ecd", + "uxTaskPriorityGet": "0x02023eed", + "uxTaskPriorityGetFromISR": "0x02023f09", + "vListInitialise": "0x02023fc7", + "vListInitialiseItem": "0x02023fdd", + "vListInsert": "0x02023fe3", + "vListInsertEnd": "0x02024013", + "vPortEndScheduler": "0x0202402d", + "vPortEnterCritical": "0x02024059", + "vPortExitCritical": "0x0202409d", + "vPortFree": "0x020240d1", + "vPortSuppressTicksAndSleep": "0x02024175", + "vPortValidateInterruptPriority": "0x0202429d", + "vQueueDelete": "0x020242f9", + "vQueueWaitForMessageRestricted": "0x02024325", + "vTaskDelay": "0x02024369", + "vTaskInternalSetTimeOutState": "0x020243b5", + "vTaskMissedYield": "0x020243c5", + "vTaskPlaceOnEventList": "0x020243d1", + "vTaskPlaceOnEventListRestricted": "0x02024409", + "vTaskPriorityDisinheritAfterTimeout": "0x02024449", + "vTaskPrioritySet": "0x020244f5", + "vTaskResume": "0x020245bd", + "vTaskStartScheduler": "0x02024641", + "vTaskStepTick": "0x020246d1", + "vTaskSuspend": "0x02024701", + "vTaskSuspendAll": "0x020247bd", + "vTaskSwitchContext": "0x020247cd", + "xPortStartScheduler": "0x0202487d", + "xQueueAddToSet": "0x02024981", + "xQueueCreateCountingSemaphore": "0x020249a5", + "xQueueCreateCountingSemaphoreStatic": "0x020249e1", + "xQueueCreateMutex": "0x02024a25", + "xQueueCreateMutexStatic": "0x02024a3b", + "xQueueCreateSet": "0x02024a55", + "xQueueGenericCreate": "0x02024a5d", + "xQueueGenericCreateStatic": "0x02024aa9", + "xQueueGenericReset": "0x02024b11", + "xQueueGenericSend": "0x02024b9d", + "xQueueGenericSendFromISR": "0x02024d09", + "xQueueGiveFromISR": "0x02024dc9", + "xQueueGiveMutexRecursive": "0x02024e6d", + "xQueueIsQueueEmptyFromISR": "0x02024ead", + "xQueueIsQueueFullFromISR": "0x02024ed1", + "xQueuePeek": "0x02024ef9", + "xQueuePeekFromISR": "0x02025021", + "xQueueReceive": "0x0202508d", + "xQueueReceiveFromISR": "0x020251b9", + "xQueueRemoveFromSet": "0x0202524d", + "xQueueSelectFromSet": "0x0202526f", + "xQueueSelectFromSetFromISR": "0x02025281", + "xQueueSemaphoreTake": "0x02025295", + "xQueueTakeMutexRecursive": "0x02025401", + "xTaskCheckForTimeOut": "0x02025445", + "xTaskCreate": "0x020254b5", + "xTaskCreateStatic": "0x02025511", + "xTaskGetCurrentTaskHandle": "0x02025581", + "xTaskGetSchedulerState": "0x0202558d", + "xTaskGetTickCount": "0x020255a9", + "xTaskGetTickCountFromISR": "0x020255b5", + "xTaskIncrementTick": "0x020255c5", + "xTaskPriorityDisinherit": "0x02025691", + "xTaskPriorityInherit": "0x02025725", + "xTaskRemoveFromEventList": "0x020257b9", + "xTaskResumeAll": "0x02025839", + "xTaskResumeFromISR": "0x02025901", + "xTimerCreate": "0x0202598d", + "xTimerCreateStatic": "0x020259c1", + "xTimerCreateTimerTask": "0x020259f9", + "xTimerGenericCommand": "0x02025a65", + "xTimerGetExpiryTime": "0x02025ad5", + "xTimerGetTimerDaemonTaskHandle": "0x02025af5" } \ No newline at end of file diff --git a/bundles/typical/ING9168xx/meta.json b/bundles/typical/ING9168xx/meta.json index 71b309016..d52be60fd 100644 --- a/bundles/typical/ING9168xx/meta.json +++ b/bundles/typical/ING9168xx/meta.json @@ -4,15 +4,15 @@ }, "ram": { "base": 536870912, - "size": 21580 + "size": 21588 }, "rom": { "base": 33562624, - "size": 155260 + "size": 155348 }, "version": [ 2, 3, - 0 + 1 ] } \ No newline at end of file diff --git a/bundles/typical/ING9168xx/platform.bin b/bundles/typical/ING9168xx/platform.bin index ea76c72e43f871fbe45499e8c7e4ce9b7e1da4dc..e64ac1205665c2c5423c74756307df7be3619073 100644 GIT binary patch delta 33872 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 z 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 delta 33462 zcma&Odt4M%8#q4Cuosr=0wS!iG7AzA5+IVIkqgMMsD$P{HNi_RUJ5nymI+=GD^ok# z(aM6<%FGg#6cxqF%E|&SZ<+bFriOT_LByF|mfi1j7PQ{q@B7DBKkUpobLO1qJkN8U z+j-8MtJ67;>NdE0a9kPB|E}m8IH|jXvv7IW{s8{7R<3LqF@OgGD_>-JqAII?-u^fMG|7x$L02~2z8vdrMqtwbWo)6zYUY)F2UU!6J z{{$}!ShFMnpa_IWY2qP{3o-K+ovF;Km3DWvDXj^~Z*1m3BW-Hu1YXK$*AFX{+>Ztp z1lfc|oJMt?iw+W1f*=LBc*)%UPn{a;RIXGp-Wn}Mw{!7Ljiq%Q_sdiKa^8%C>+z4b z=skli=o(CA;j9o{-|7uIVQo*Xv=Qr7w>g^^*4L|{(Ij21EzSG?);S;4@fPs(SJ2fT zZ{a=V+^({|=1c2^edJ}oMfn`E_GOjS zTUC466L0C`BhE=Y&szdKoqcl{apwU(&{IDCpzP}@AAC>__LM(+P!92wKYUOQ@|54} zDwo#y7Fhk}m^DG?dp~PNRQr=l{t*yG?EZOBOtJz(jc1&K$V;a?xVT+nrG`Hb*s7R((p4^fze>NPtTuDlj5;oE_qx6ji$xsk%w0+_##7q@?!s z)i!m=xdn67H+1TF>~$EK92gr`;wsXFo=<-^y?Tqnab_GNUKFG!$lHMhx<&3H4V({= z){~aN5Mz70t|<@^B&}!I2r_e=-i$wj`3X))AtrslpwYGL38Qj^XQBn9L_cTw^GdnZ zYa?em-3)q_#aA5Cvqa>qCaHIaZZB8Y+ta?Ar#(D)Kh#sUBZGGK*WFWYc~I7R%FPeT zJw4^i56VVQ`2s6H<{2Q$Q_=XKf#4~hdQdib$|oL_qdnzXvN7oQ5%~{l!#%ZG56T8l zIpaau+fz<`P>%7G6CRW~PuWCH1SjLtZV7IN@5sdvQ}N2<_a~~t78+^kgRk6@RTP!C~G|Bkz`W0C@3e(y7hzd{Waav{h=?pX-b5@NLciA7)zE# z$3YI+8J(`0Sa);@`ET?~u!u~G85Cn(!t*~Y<@wSYwWzfWF6m`d-8{)q(a7l|B`6sk&!I)l>U?xq(;DY2YTn<8@36_U}*s2;3nrANqwUXuoP98#II zl3y*K?_H!a@fNN0;-RBRqx2yh&*xjZ>gGMDQ<*f<70)|&NNcY&?HIS_qbMnaB*mWa zo$gX89f9#;q!dByv8L{kiiW%0AS_N@Qjy)?NhwW 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 _~2? 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 delta 20460 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 AiU0rr diff --git a/bundles/typical/ING9188xx/apis.json b/bundles/typical/ING9188xx/apis.json index 454174f4c..bd0c252fa 100644 --- a/bundles/typical/ING9188xx/apis.json +++ b/bundles/typical/ING9188xx/apis.json @@ -185,161 +185,162 @@ "ll_set_def_antenna": "0x0000d691", "ll_set_initiating_coded_scheme": "0x0000d6ad", "ll_set_max_conn_number": "0x0000d6b9", - "nibble_for_char": "0x0001e741", - "platform_32k_rc_auto_tune": "0x0001e7ed", - "platform_32k_rc_tune": "0x0001e869", - "platform_calibrate_32k": "0x0001e87d", + "nibble_for_char": "0x0001e751", + "platform_calibrate_rt_clk": "0x0001e7fd", "platform_call_on_stack": "0x00004183", - "platform_config": "0x0001e881", - "platform_delete_timer": "0x0001e9a5", - "platform_enable_irq": "0x0001e9ad", - "platform_get_current_task": "0x0001e9e5", - "platform_get_gen_os_driver": "0x0001ea09", - "platform_get_heap_status": "0x0001ea11", - "platform_get_link_layer_interf": "0x0001ea29", - "platform_get_task_handle": "0x0001ea31", - "platform_get_timer_counter": "0x0001ea51", - "platform_get_us_time": "0x0001ea55", - "platform_get_version": "0x0001ea59", - "platform_hrng": "0x0001ea61", - "platform_install_isr_stack": "0x0001ea69", - "platform_install_task_stack": "0x0001ea75", - "platform_patch_rf_init_data": "0x0001eaad", - "platform_printf": "0x0001eab9", - "platform_raise_assertion": "0x0001eacd", - "platform_rand": "0x0001eae1", - "platform_read_info": "0x0001eae5", - "platform_read_persistent_reg": "0x0001eb15", - "platform_reset": "0x0001eb25", - "platform_set_abs_timer": "0x0001eb49", - "platform_set_evt_callback": "0x0001eb4d", - "platform_set_evt_callback_table": "0x0001eb61", - "platform_set_irq_callback": "0x0001eb6d", - "platform_set_irq_callback_table": "0x0001eb89", - "platform_set_rf_clk_source": "0x0001eb95", - "platform_set_rf_init_data": "0x0001eba1", - "platform_set_rf_power_mapping": "0x0001ebad", - "platform_set_timer": "0x0001ebb9", - "platform_shutdown": "0x0001ebbd", - "platform_switch_app": "0x0001ebc1", - "platform_trace_raw": "0x0001ebed", - "platform_write_persistent_reg": "0x0001ec05", - "printf_hexdump": "0x0001edb9", - "pvPortMalloc": "0x0001f8ad", - "pvTaskIncrementMutexHeldCount": "0x0001f995", - "pvTimerGetTimerID": "0x0001f9ad", - "pxPortInitialiseStack": "0x0001f9d9", - "reverse_128": "0x0001fbb9", - "reverse_24": "0x0001fbbf", - "reverse_256": "0x0001fbc5", - "reverse_48": "0x0001fbcb", - "reverse_56": "0x0001fbd1", - "reverse_64": "0x0001fbd7", - "reverse_bd_addr": "0x0001fbdd", - "reverse_bytes": "0x0001fbe3", - "sm_add_event_handler": "0x0001fed1", - "sm_address_resolution_lookup": "0x00020029", - "sm_authenticated": "0x000203a5", - "sm_authorization_decline": "0x000203b3", - "sm_authorization_grant": "0x000203d3", - "sm_authorization_state": "0x000203f3", - "sm_bonding_decline": "0x0002040d", - "sm_config": "0x00020869", - "sm_config_conn": "0x00020881", - "sm_encryption_key_size": "0x00020a37", - "sm_just_works_confirm": "0x00020fbd", - "sm_le_device_key": "0x000212f5", - "sm_passkey_input": "0x0002138b", - "sm_private_random_address_generation_get": "0x00021745", - "sm_private_random_address_generation_get_mode": "0x0002174d", - "sm_private_random_address_generation_set_mode": "0x00021759", - "sm_private_random_address_generation_set_update_period": "0x00021781", - "sm_register_external_ltk_callback": "0x000218bd", - "sm_register_oob_data_callback": "0x000218c9", - "sm_request_pairing": "0x000218d5", - "sm_send_security_request": "0x000223ab", - "sm_set_accepted_stk_generation_methods": "0x000223d1", - "sm_set_authentication_requirements": "0x000223dd", - "sm_set_encryption_key_size_range": "0x000223e9", - "sscanf_bd_addr": "0x00022745", - "sysSetPublicDeviceAddr": "0x00022af9", - "uuid128_to_str": "0x00023299", - "uuid_add_bluetooth_prefix": "0x000232f1", - "uuid_has_bluetooth_prefix": "0x00023311", - "uxListRemove": "0x0002332d", - "uxQueueMessagesWaiting": "0x00023355", - "uxQueueMessagesWaitingFromISR": "0x0002337d", - "uxQueueSpacesAvailable": "0x00023399", - "uxTaskGetStackHighWaterMark": "0x000233c5", - "uxTaskPriorityGet": "0x000233e5", - "uxTaskPriorityGetFromISR": "0x00023401", - "vListInitialise": "0x000234bb", - "vListInitialiseItem": "0x000234d1", - "vListInsert": "0x000234d7", - "vListInsertEnd": "0x00023507", - "vPortEndScheduler": "0x00023521", - "vPortEnterCritical": "0x0002354d", - "vPortExitCritical": "0x00023591", - "vPortFree": "0x000235c5", - "vPortSuppressTicksAndSleep": "0x00023659", - "vPortValidateInterruptPriority": "0x00023781", - "vQueueDelete": "0x000237dd", - "vQueueWaitForMessageRestricted": "0x00023809", - "vTaskDelay": "0x00023851", - "vTaskInternalSetTimeOutState": "0x0002389d", - "vTaskMissedYield": "0x000238ad", - "vTaskPlaceOnEventList": "0x000238b9", - "vTaskPlaceOnEventListRestricted": "0x000238f1", - "vTaskPriorityDisinheritAfterTimeout": "0x00023931", - "vTaskPrioritySet": "0x000239dd", - "vTaskResume": "0x00023aa5", - "vTaskStartScheduler": "0x00023b29", - "vTaskStepTick": "0x00023bb9", - "vTaskSuspend": "0x00023be9", - "vTaskSuspendAll": "0x00023ca5", - "vTaskSwitchContext": "0x00023cb5", - "xPortStartScheduler": "0x00023d5d", - "xQueueAddToSet": "0x00023e25", - "xQueueCreateCountingSemaphore": "0x00023e49", - "xQueueCreateCountingSemaphoreStatic": "0x00023e85", - "xQueueCreateMutex": "0x00023ec9", - "xQueueCreateMutexStatic": "0x00023edf", - "xQueueCreateSet": "0x00023ef9", - "xQueueGenericCreate": "0x00023f01", - "xQueueGenericCreateStatic": "0x00023f4d", - "xQueueGenericReset": "0x00023fb5", - "xQueueGenericSend": "0x00024041", - "xQueueGenericSendFromISR": "0x000241ad", - "xQueueGiveFromISR": "0x0002426d", - "xQueueGiveMutexRecursive": "0x00024311", - "xQueueIsQueueEmptyFromISR": "0x00024351", - "xQueueIsQueueFullFromISR": "0x00024375", - "xQueuePeek": "0x0002439d", - "xQueuePeekFromISR": "0x000244c5", - "xQueueReceive": "0x00024531", - "xQueueReceiveFromISR": "0x0002465d", - "xQueueRemoveFromSet": "0x000246f1", - "xQueueSelectFromSet": "0x00024713", - "xQueueSelectFromSetFromISR": "0x00024725", - "xQueueSemaphoreTake": "0x00024739", - "xQueueTakeMutexRecursive": "0x000248a5", - "xTaskCheckForTimeOut": "0x000248e9", - "xTaskCreate": "0x00024959", - "xTaskCreateStatic": "0x000249b5", - "xTaskGetCurrentTaskHandle": "0x00024a25", - "xTaskGetSchedulerState": "0x00024a31", - "xTaskGetTickCount": "0x00024a4d", - "xTaskGetTickCountFromISR": "0x00024a59", - "xTaskIncrementTick": "0x00024a69", - "xTaskPriorityDisinherit": "0x00024b35", - "xTaskPriorityInherit": "0x00024bc9", - "xTaskRemoveFromEventList": "0x00024c5d", - "xTaskResumeAll": "0x00024cdd", - "xTaskResumeFromISR": "0x00024da5", - "xTimerCreate": "0x00024e31", - "xTimerCreateStatic": "0x00024e65", - "xTimerCreateTimerTask": "0x00024e9d", - "xTimerGenericCommand": "0x00024f09", - "xTimerGetExpiryTime": "0x00024f79", - "xTimerGetTimerDaemonTaskHandle": "0x00024f99" + "platform_config": "0x0001e801", + "platform_delete_timer": "0x0001e925", + "platform_enable_irq": "0x0001e92d", + "platform_get_current_task": "0x0001e965", + "platform_get_gen_os_driver": "0x0001e989", + "platform_get_heap_status": "0x0001e991", + "platform_get_link_layer_interf": "0x0001e9a9", + "platform_get_task_handle": "0x0001e9b1", + "platform_get_timer_counter": "0x0001e9d1", + "platform_get_us_time": "0x0001e9d5", + "platform_get_version": "0x0001e9d9", + "platform_hrng": "0x0001e9e1", + "platform_install_isr_stack": "0x0001e9e9", + "platform_install_task_stack": "0x0001e9f5", + "platform_patch_rf_init_data": "0x0001ea2d", + "platform_printf": "0x0001ea39", + "platform_raise_assertion": "0x0001ea4d", + "platform_rand": "0x0001ea61", + "platform_read_info": "0x0001ea65", + "platform_read_persistent_reg": "0x0001ea95", + "platform_reset": "0x0001eaa5", + "platform_rt_rc_auto_tune": "0x0001eac9", + "platform_rt_rc_auto_tune2": "0x0001ead1", + "platform_rt_rc_tune": "0x0001eb75", + "platform_set_abs_timer": "0x0001eb89", + "platform_set_evt_callback": "0x0001eb8d", + "platform_set_evt_callback_table": "0x0001eba1", + "platform_set_irq_callback": "0x0001ebad", + "platform_set_irq_callback_table": "0x0001ebc9", + "platform_set_rf_clk_source": "0x0001ebd5", + "platform_set_rf_init_data": "0x0001ebe1", + "platform_set_rf_power_mapping": "0x0001ebed", + "platform_set_timer": "0x0001ebf9", + "platform_shutdown": "0x0001ebfd", + "platform_switch_app": "0x0001ec01", + "platform_trace_raw": "0x0001ec2d", + "platform_write_persistent_reg": "0x0001ec45", + "printf_hexdump": "0x0001edf9", + "pvPortMalloc": "0x0001f8ed", + "pvTaskIncrementMutexHeldCount": "0x0001f9d5", + "pvTimerGetTimerID": "0x0001f9ed", + "pxPortInitialiseStack": "0x0001fa19", + "reverse_128": "0x0001fbf9", + "reverse_24": "0x0001fbff", + "reverse_256": "0x0001fc05", + "reverse_48": "0x0001fc0b", + "reverse_56": "0x0001fc11", + "reverse_64": "0x0001fc17", + "reverse_bd_addr": "0x0001fc1d", + "reverse_bytes": "0x0001fc23", + "sm_add_event_handler": "0x0001ff11", + "sm_address_resolution_lookup": "0x00020069", + "sm_authenticated": "0x000203e5", + "sm_authorization_decline": "0x000203f3", + "sm_authorization_grant": "0x00020413", + "sm_authorization_state": "0x00020433", + "sm_bonding_decline": "0x0002044d", + "sm_config": "0x000208a9", + "sm_config_conn": "0x000208c1", + "sm_encryption_key_size": "0x00020a77", + "sm_just_works_confirm": "0x00020ffd", + "sm_le_device_key": "0x00021335", + "sm_passkey_input": "0x000213cb", + "sm_private_random_address_generation_get": "0x00021785", + "sm_private_random_address_generation_get_mode": "0x0002178d", + "sm_private_random_address_generation_set_mode": "0x00021799", + "sm_private_random_address_generation_set_update_period": "0x000217c1", + "sm_register_external_ltk_callback": "0x000218fd", + "sm_register_oob_data_callback": "0x00021909", + "sm_request_pairing": "0x00021915", + "sm_send_security_request": "0x000223eb", + "sm_set_accepted_stk_generation_methods": "0x00022411", + "sm_set_authentication_requirements": "0x0002241d", + "sm_set_encryption_key_size_range": "0x00022429", + "sscanf_bd_addr": "0x00022785", + "sysSetPublicDeviceAddr": "0x00022b39", + "uuid128_to_str": "0x000232e5", + "uuid_add_bluetooth_prefix": "0x0002333d", + "uuid_has_bluetooth_prefix": "0x0002335d", + "uxListRemove": "0x00023379", + "uxQueueMessagesWaiting": "0x000233a1", + "uxQueueMessagesWaitingFromISR": "0x000233c9", + "uxQueueSpacesAvailable": "0x000233e5", + "uxTaskGetStackHighWaterMark": "0x00023411", + "uxTaskPriorityGet": "0x00023431", + "uxTaskPriorityGetFromISR": "0x0002344d", + "vListInitialise": "0x00023507", + "vListInitialiseItem": "0x0002351d", + "vListInsert": "0x00023523", + "vListInsertEnd": "0x00023553", + "vPortEndScheduler": "0x0002356d", + "vPortEnterCritical": "0x00023599", + "vPortExitCritical": "0x000235dd", + "vPortFree": "0x00023611", + "vPortSuppressTicksAndSleep": "0x000236a5", + "vPortValidateInterruptPriority": "0x000237cd", + "vQueueDelete": "0x00023829", + "vQueueWaitForMessageRestricted": "0x00023855", + "vTaskDelay": "0x0002389d", + "vTaskInternalSetTimeOutState": "0x000238e9", + "vTaskMissedYield": "0x000238f9", + "vTaskPlaceOnEventList": "0x00023905", + "vTaskPlaceOnEventListRestricted": "0x0002393d", + "vTaskPriorityDisinheritAfterTimeout": "0x0002397d", + "vTaskPrioritySet": "0x00023a29", + "vTaskResume": "0x00023af1", + "vTaskStartScheduler": "0x00023b75", + "vTaskStepTick": "0x00023c05", + "vTaskSuspend": "0x00023c35", + "vTaskSuspendAll": "0x00023cf1", + "vTaskSwitchContext": "0x00023d01", + "xPortStartScheduler": "0x00023db1", + "xQueueAddToSet": "0x00023e79", + "xQueueCreateCountingSemaphore": "0x00023e9d", + "xQueueCreateCountingSemaphoreStatic": "0x00023ed9", + "xQueueCreateMutex": "0x00023f1d", + "xQueueCreateMutexStatic": "0x00023f33", + "xQueueCreateSet": "0x00023f4d", + "xQueueGenericCreate": "0x00023f55", + "xQueueGenericCreateStatic": "0x00023fa1", + "xQueueGenericReset": "0x00024009", + "xQueueGenericSend": "0x00024095", + "xQueueGenericSendFromISR": "0x00024201", + "xQueueGiveFromISR": "0x000242c1", + "xQueueGiveMutexRecursive": "0x00024365", + "xQueueIsQueueEmptyFromISR": "0x000243a5", + "xQueueIsQueueFullFromISR": "0x000243c9", + "xQueuePeek": "0x000243f1", + "xQueuePeekFromISR": "0x00024519", + "xQueueReceive": "0x00024585", + "xQueueReceiveFromISR": "0x000246b1", + "xQueueRemoveFromSet": "0x00024745", + "xQueueSelectFromSet": "0x00024767", + "xQueueSelectFromSetFromISR": "0x00024779", + "xQueueSemaphoreTake": "0x0002478d", + "xQueueTakeMutexRecursive": "0x000248f9", + "xTaskCheckForTimeOut": "0x0002493d", + "xTaskCreate": "0x000249ad", + "xTaskCreateStatic": "0x00024a09", + "xTaskGetCurrentTaskHandle": "0x00024a79", + "xTaskGetSchedulerState": "0x00024a85", + "xTaskGetTickCount": "0x00024aa1", + "xTaskGetTickCountFromISR": "0x00024aad", + "xTaskIncrementTick": "0x00024abd", + "xTaskPriorityDisinherit": "0x00024b89", + "xTaskPriorityInherit": "0x00024c1d", + "xTaskRemoveFromEventList": "0x00024cb1", + "xTaskResumeAll": "0x00024d31", + "xTaskResumeFromISR": "0x00024df9", + "xTimerCreate": "0x00024e85", + "xTimerCreateStatic": "0x00024eb9", + "xTimerCreateTimerTask": "0x00024ef1", + "xTimerGenericCommand": "0x00024f5d", + "xTimerGetExpiryTime": "0x00024fcd", + "xTimerGetTimerDaemonTaskHandle": "0x00024fed" } \ No newline at end of file diff --git a/bundles/typical/ING9188xx/meta.json b/bundles/typical/ING9188xx/meta.json index f8b8fd7c1..7d7c9ba22 100644 --- a/bundles/typical/ING9188xx/meta.json +++ b/bundles/typical/ING9188xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 141788 + "size": 141872 }, "version": [ 1, 9, - 40 + 41 ] } \ No newline at end of file diff --git a/bundles/typical/ING9188xx/platform.bin b/bundles/typical/ING9188xx/platform.bin index f444c96e57d33aeb3a6128cad2653f37c378407a..eb163318a7872d5a19d03189025166dee69ea6e4 100644 GIT binary patch delta 21656 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

    ;p92#0sP9ba=pI7KI%L_^kt)}4gq=`UNoOa{~% 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 _r;} -uint32_t platform_calibrate_32k(void){LOG_D("platform_calibrate_32k...");; +uint32_t platform_calibrate_rt_clk(void){LOG_D("platform_calibrate_rt_clk...");; #pragma pack (push, 1) struct _param { } _param = {}; #pragma pack (pop) struct node * _node = call_fun(1007,&_param,sizeof(_param));uint32_t _r= *(uint32_t *)extract_ret_param(_node, NULL);GEN_OS()->free(_node);return _r;} -void platform_32k_rc_tune(uint16_t value){LOG_D("platform_32k_rc_tune...");; +void platform_rt_rc_tune(uint16_t value){LOG_D("platform_rt_rc_tune...");; #pragma pack (push, 1) struct _param { uint16_t value;} _param = {.value = value}; #pragma pack (pop) call_void_fun(1008,&_param,sizeof(_param));} -uint16_t platform_32k_rc_auto_tune(void){LOG_D("platform_32k_rc_auto_tune...");; +uint16_t platform_rt_rc_auto_tune(void){LOG_D("platform_rt_rc_auto_tune...");; #pragma pack (push, 1) struct _param { } _param = {}; diff --git a/example_host/rpc_client/inc/brpc_fun_names.inc b/example_host/rpc_client/inc/brpc_fun_names.inc index 235069986..862cfd34b 100644 --- a/example_host/rpc_client/inc/brpc_fun_names.inc +++ b/example_host/rpc_client/inc/brpc_fun_names.inc @@ -4,9 +4,9 @@ case 1003: return "platform_write_persistent_reg"; case 1004: return "platform_read_persistent_reg"; case 1005: return "platform_config"; case 1006: return "platform_read_info"; -case 1007: return "platform_calibrate_32k"; -case 1008: return "platform_32k_rc_tune"; -case 1009: return "platform_32k_rc_auto_tune"; +case 1007: return "platform_calibrate_rt_clk"; +case 1008: return "platform_rt_rc_tune"; +case 1009: return "platform_rt_rc_auto_tune"; case 1010: return "platform_rand"; case 1011: return "platform_get_us_time"; case 1012: return "platform_set_rf_clk_source"; diff --git a/examples-gcc/central_fota/central_fota.ingw b/examples-gcc/central_fota/central_fota.ingw index 3606ae8e2..2665b1ba3 100644 --- a/examples-gcc/central_fota/central_fota.ingw +++ b/examples-gcc/central_fota/central_fota.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Programs\\gcc-arm-none-eabi-10.3-2021.10\\bin", "eflash_addr": "0x42000", diff --git a/examples-gcc/get_started/get_started.ingw b/examples-gcc/get_started/get_started.ingw index 91360dd40..086abfb19 100644 --- a/examples-gcc/get_started/get_started.ingw +++ b/examples-gcc/get_started/get_started.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Programs\\gcc-arm-none-eabi-10.3-2021.10\\bin", "eflash_addr": "0x42000", diff --git a/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw b/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw index 3942f1db8..257c16a3b 100644 --- a/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw +++ b/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 124964, + "size": 125044, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 147456 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Programs\\gcc-arm-none-eabi-10.3-2021.10\\bin", "eflash_addr": "0x42000", diff --git a/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw b/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw index d01e4c9c3..9cd648ee9 100644 --- a/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw +++ b/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Programs\\gcc-arm-none-eabi-10.3-2021.10\\bin", "ide_ver": "", diff --git a/examples-gcc/smart_home_hub/nimmodules/bundle/platform_api.nim b/examples-gcc/smart_home_hub/nimmodules/bundle/platform_api.nim index 742d06d4e..f7668a9ce 100644 --- a/examples-gcc/smart_home_hub/nimmodules/bundle/platform_api.nim +++ b/examples-gcc/smart_home_hub/nimmodules/bundle/platform_api.nim @@ -224,21 +224,21 @@ type PLATFORM_CFG_LOG_HCI, ## flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_POWER_SAVING, ## flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_TRACE_MASK, ## flag is bitmap of platform_trace_item_t. default: 0 - PLATFORM_CFG_RC32K_EN, ## Enable/Disable RC 32k clock. Default: Enable - PLATFORM_CFG_OSC32K_EN, ## Enable/Disable 32k crystal oscillator. Default: Enable - PLATFORM_CFG_32K_CLK, ## 32k clock selection. flag is platform_32k_clk_src_t. default: PLATFORM_32K_RC + PLATFORM_CFG_RT_RC_EN, ## Enable/Disable RC 32k clock. Default: Enable + PLATFORM_CFG_RT_OSC_EN, ## Enable/Disable 32k crystal oscillator. Default: Enable + PLATFORM_CFG_RT_CLK, ## 32k clock selection. flag is platform_32k_clk_src_t. default: PLATFORM_32K_RC ## Note: When modifying this configuration, both RC32K and OSC32K should be ENABLED and *run*. ## For OSC32K, wait until status of OSC32K is OK; ## For RC32K, wait 100us after enabled. ## Note: Wait another 100us before disabling the unused clock. - PLATFORM_CFG_32K_CLK_ACC, ## Configure 32k clock accurary in ppm. - PLATFORM_CFG_32K_CALI_PERIOD, ## 32K clock auto-calibartion period in seconds. Default: 3600 * 2 + PLATFORM_CFG_RT_CLK_ACC, ## Configure 32k clock accurary in ppm. + PLATFORM_CFG_RT_CLK_CALI_PERIOD, ## 32K clock auto-calibartion period in seconds. Default: 3600 * 2 PLATFORM_CFG_PS_DBG_0, ## debugging parameter PLATFORM_CFG_PS_DBG_1, ## debugging parameter PLATFORM_CFG_PS_DBG_2, ## debugging parameter PLATFORM_CFG_LL_DBG_FLAGS ## debugging parameter platform_32k_clk_src_t* {.size: sizeof(cint).} = enum - PLATFORM_32K_OSC, ## external 32k crystal oscillator + PLATFORM_RT_OSC, ## external 32k crystal oscillator PLATFORM_32K_RC ## internal RC 32k clock @@ -283,17 +283,17 @@ proc platform_read_info*(item: platform_info_item_t): uint32 {. ## *************************************************************************************** ## -proc platform_calibrate_32k*(): uint32 {.importc: "platform_calibrate_32k", +proc platform_calibrate_rt_clk*(): uint32 {.importc: "platform_calibrate_rt_clk", header: "platform_api.h".} ## * ## *************************************************************************************** ## @brief Tune internal the 32k RC clock with `value`. ## -## @param[in] value Value used to tune the clock (returned by `platform_32k_rc_auto_tune`) +## @param[in] value Value used to tune the clock (returned by `platform_rt_rc_auto_tune`) ## *************************************************************************************** ## -proc platform_32k_rc_tune*(value: uint16) {.importc: "platform_32k_rc_tune", +proc platform_rt_rc_tune*(value: uint16) {.importc: "platform_rt_rc_tune", header: "platform_api.h".} ## * ## *************************************************************************************** @@ -306,7 +306,7 @@ proc platform_32k_rc_tune*(value: uint16) {.importc: "platform_32k_rc_tune", ## *************************************************************************************** ## -proc platform_32k_rc_auto_tune*(): uint16 {.importc: "platform_32k_rc_auto_tune", +proc platform_rt_rc_auto_tune*(): uint16 {.importc: "platform_rt_rc_auto_tune", header: "platform_api.h".} ## * ## *************************************************************************************** diff --git a/examples-gcc/smart_home_hub/smart_home_hub.ingw b/examples-gcc/smart_home_hub/smart_home_hub.ingw index 1dec1168d..96a86a8ab 100644 --- a/examples-gcc/smart_home_hub/smart_home_hub.ingw +++ b/examples-gcc/smart_home_hub/smart_home_hub.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Programs\\gcc-arm-none-eabi-10.3-2021.10\\bin", "eflash_addr": "0x42000", diff --git a/examples-iar/peripheral_ibeacon/generic_cortex.icf b/examples-iar/peripheral_ibeacon/generic_cortex.icf index f39e430bc..0445480b4 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__ = 536900792; +define symbol __ICFEDIT_region_IRAM1_start__ = 536900792; 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.ingw b/examples-iar/peripheral_ibeacon/peripheral_ibeacon.ingw index e3595516a..93c31cf60 100644 --- a/examples-iar/peripheral_ibeacon/peripheral_ibeacon.ingw +++ b/examples-iar/peripheral_ibeacon/peripheral_ibeacon.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "", "ide_ver": "", diff --git a/examples-rowley/peripheral_ibeacon/peripheral_ibeacon.ingw b/examples-rowley/peripheral_ibeacon/peripheral_ibeacon.ingw index 421620334..4b2efe6d3 100644 --- a/examples-rowley/peripheral_ibeacon/peripheral_ibeacon.ingw +++ b/examples-rowley/peripheral_ibeacon/peripheral_ibeacon.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "", "ide_ver": "", diff --git a/examples-segger/peripheral_ibeacon/peripheral_ibeacon.ingw b/examples-segger/peripheral_ibeacon/peripheral_ibeacon.ingw index a6074dd28..b39a50aa6 100644 --- a/examples-segger/peripheral_ibeacon/peripheral_ibeacon.ingw +++ b/examples-segger/peripheral_ibeacon/peripheral_ibeacon.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "", "ide_ver": "", diff --git a/examples/anti_lost_mas/anti_lost_mas.ingw b/examples/anti_lost_mas/anti_lost_mas.ingw index 738e13cd4..61d157ae5 100644 --- a/examples/anti_lost_mas/anti_lost_mas.ingw +++ b/examples/anti_lost_mas/anti_lost_mas.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/anti_lost_sla/anti_lost_sla.ingw b/examples/anti_lost_sla/anti_lost_sla.ingw index c334d1bea..f88951392 100644 --- a/examples/anti_lost_sla/anti_lost_sla.ingw +++ b/examples/anti_lost_sla/anti_lost_sla.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/ble_rpc/ble_rpc.ingw b/examples/ble_rpc/ble_rpc.ingw index 0c175a261..4d74288c0 100644 --- a/examples/ble_rpc/ble_rpc.ingw +++ b/examples/ble_rpc/ble_rpc.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 146444, + "size": 146528, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 163840 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/ble_rpc/data/brpc_handlers.inc b/examples/ble_rpc/data/brpc_handlers.inc index 484e53bbe..622559753 100644 --- a/examples/ble_rpc/data/brpc_handlers.inc +++ b/examples/ble_rpc/data/brpc_handlers.inc @@ -32,17 +32,17 @@ case 1007 :{ #pragma pack (push, 1) struct _param {} *_param = (struct _param *)call->body; #pragma pack (pop) -uint32_t _ret = platform_calibrate_32k();send_ret_response(1007,sizeof(_ret),&_ret);}break; +uint32_t _ret = platform_calibrate_rt_clk();send_ret_response(1007,sizeof(_ret),&_ret);}break; case 1008 :{ #pragma pack (push, 1) struct _param {uint16_t value;} *_param = (struct _param *)call->body; #pragma pack (pop) -platform_32k_rc_tune(_param->value);}break; +platform_rt_rc_tune(_param->value);}break; case 1009 :{ #pragma pack (push, 1) struct _param {} *_param = (struct _param *)call->body; #pragma pack (pop) -uint16_t _ret = platform_32k_rc_auto_tune();send_ret_response(1009,sizeof(_ret),&_ret);}break; +uint16_t _ret = platform_rt_rc_auto_tune();send_ret_response(1009,sizeof(_ret),&_ret);}break; case 1010 :{ #pragma pack (push, 1) struct _param {} *_param = (struct _param *)call->body; diff --git a/examples/ble_rpc/data/brpc_handlers_weak.inc b/examples/ble_rpc/data/brpc_handlers_weak.inc index fb844af67..60f050da9 100644 --- a/examples/ble_rpc/data/brpc_handlers_weak.inc +++ b/examples/ble_rpc/data/brpc_handlers_weak.inc @@ -4,9 +4,9 @@ __attribute((weak)) void platform_write_persistent_reg(const uint8_t value) {UND __attribute((weak)) uint8_t platform_read_persistent_reg() {UNDEF_FUN(1004); return (uint8_t)0; } __attribute((weak)) void platform_config(const platform_cfg_item_t item,const uint32_t flag) {UNDEF_FUN(1005); } __attribute((weak)) uint32_t platform_read_info(const platform_info_item_t item) {UNDEF_FUN(1006); return (uint32_t)0; } -__attribute((weak)) uint32_t platform_calibrate_32k() {UNDEF_FUN(1007); return (uint32_t)0; } -__attribute((weak)) void platform_32k_rc_tune(uint16_t value) {UNDEF_FUN(1008); } -__attribute((weak)) uint16_t platform_32k_rc_auto_tune() {UNDEF_FUN(1009); return (uint16_t)0; } +__attribute((weak)) uint32_t platform_calibrate_rt_clk() {UNDEF_FUN(1007); return (uint32_t)0; } +__attribute((weak)) void platform_rt_rc_tune(uint16_t value) {UNDEF_FUN(1008); } +__attribute((weak)) uint16_t platform_rt_rc_auto_tune() {UNDEF_FUN(1009); return (uint16_t)0; } __attribute((weak)) int platform_rand() {UNDEF_FUN(1010); return (int)0; } __attribute((weak)) uint64_t platform_get_us_time() {UNDEF_FUN(1011); return (uint64_t)0; } __attribute((weak)) void platform_set_rf_clk_source(const uint8_t source) {UNDEF_FUN(1012); } diff --git a/examples/bqb_rf/bqb_rf.ingw b/examples/bqb_rf/bqb_rf.ingw index 08f4929c3..2f002dcd0 100644 --- a/examples/bqb_rf/bqb_rf.ingw +++ b/examples/bqb_rf/bqb_rf.ingw @@ -2,18 +2,18 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 161868, + "size": 161340, "base": 33562624 }, "ram": { - "size": 21580, + "size": 21596, "base": 536870912 }, "app": { "base": 33726464 }, "version": [ - 2,3,0] + 2,3,1] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", @@ -70,8 +70,8 @@ }, "keil": true, "cmsis": "", - "app_ram_size": 11184, - "app_ram_addr": 536892496, + "app_ram_size": 11168, + "app_ram_addr": 536892512, "k5_cc_ver": "6", "printf_enable": true, "ota_ver_patch": "0", diff --git a/examples/bqb_rf/bqb_rf.uvproj b/examples/bqb_rf/bqb_rf.uvproj index 8cc81c33e..d88bd8b33 100644 --- a/examples/bqb_rf/bqb_rf.uvproj +++ b/examples/bqb_rf/bqb_rf.uvproj @@ -319,8 +319,8 @@ 0 - 536892496 - 11184 + 536892512 + 11168 0 diff --git a/examples/bqb_rf/bqb_rf.uvprojx b/examples/bqb_rf/bqb_rf.uvprojx index efdc8439e..7eb49db8d 100644 --- a/examples/bqb_rf/bqb_rf.uvprojx +++ b/examples/bqb_rf/bqb_rf.uvprojx @@ -298,8 +298,8 @@ 0 - 536892496 - 11184 + 536892512 + 11168 0 diff --git a/examples/central_cte/central_cte.ingw b/examples/central_cte/central_cte.ingw index fa3b30279..a6ba59868 100644 --- a/examples/central_cte/central_cte.ingw +++ b/examples/central_cte/central_cte.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 146444, + "size": 146528, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 163840 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/central_fota/central_fota.ingw b/examples/central_fota/central_fota.ingw index ef4ce1a6b..5df3c8a04 100644 --- a/examples/central_fota/central_fota.ingw +++ b/examples/central_fota/central_fota.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/central_mass_conn/central_mass_conn.ingw b/examples/central_mass_conn/central_mass_conn.ingw index 5155a12aa..ebba4adac 100644 --- a/examples/central_mass_conn/central_mass_conn.ingw +++ b/examples/central_mass_conn/central_mass_conn.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135824, + "size": 135900, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/central_throughput/central_throughput.ingw b/examples/central_throughput/central_throughput.ingw index d1cd1d83d..5b0ad7050 100644 --- a/examples/central_throughput/central_throughput.ingw +++ b/examples/central_throughput/central_throughput.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/coremark/coremark.ingw b/examples/coremark/coremark.ingw index 58ef4d608..5f4410c7c 100644 --- a/examples/coremark/coremark.ingw +++ b/examples/coremark/coremark.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 141788, + "size": 141872, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 163840 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/coremark/data/setup_soc.cgen b/examples/coremark/data/setup_soc.cgen index 1b99d3b08..b325378bd 100644 --- a/examples/coremark/data/setup_soc.cgen +++ b/examples/coremark/data/setup_soc.cgen @@ -1,7 +1,7 @@ void cube_soc_init(void) { -platform_config(PLATFORM_CFG_OSC32K_EN, PLATFORM_CFG_DISABLE); -platform_config(PLATFORM_CFG_32K_CLK_ACC, 500); +platform_config(PLATFORM_CFG_RT_OSC_EN, PLATFORM_CFG_DISABLE); +platform_config(PLATFORM_CFG_RT_CLK_ACC, 500); SYSCTRL_ConfigPLLClk(5, 42, 1); SYSCTRL_SelectHClk(SYSCTRL_CLK_PLL_DIV_1 + 0); } diff --git a/examples/data_logger/data_logger.ingw b/examples/data_logger/data_logger.ingw index 27ebdaa1c..e88585a0b 100644 --- a/examples/data_logger/data_logger.ingw +++ b/examples/data_logger/data_logger.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/direct_conn/data/setup_soc.cgen b/examples/direct_conn/data/setup_soc.cgen index 22dbecea4..69cd54310 100644 --- a/examples/direct_conn/data/setup_soc.cgen +++ b/examples/direct_conn/data/setup_soc.cgen @@ -1,7 +1,7 @@ void cube_soc_init(void) { -platform_config(PLATFORM_CFG_OSC32K_EN, PLATFORM_CFG_DISABLE); -platform_config(PLATFORM_CFG_32K_CLK_ACC, 500); +platform_config(PLATFORM_CFG_RT_OSC_EN, PLATFORM_CFG_DISABLE); +platform_config(PLATFORM_CFG_RT_CLK_ACC, 500); } void cube_setup_peripherals(void) diff --git a/examples/direct_conn/direct_conn.ingw b/examples/direct_conn/direct_conn.ingw index cbfb5c088..4ddc180b7 100644 --- a/examples/direct_conn/direct_conn.ingw +++ b/examples/direct_conn/direct_conn.ingw @@ -2,18 +2,18 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 147152, + "size": 152028, "base": 16384 }, "ram": { - "size": 29980, + "size": 30268, "base": 536870912 }, "app": { - "base": 163840 + "base": 172032 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", @@ -54,8 +54,8 @@ "power_saving": false, "secondary": false, "bundle": "exp", - "app_rom_size": "376832", - "app_rom_addr": "163840", + "app_rom_size": "368640", + "app_rom_addr": "172032", "family": "ing918", "vcode": false, "heap_override": false, @@ -71,8 +71,8 @@ }, "keil": true, "cmsis": "", - "app_ram_size": 35552, - "app_ram_addr": 536900896, + "app_ram_size": 35264, + "app_ram_addr": 536901184, "k5_cc_ver": "6", "printf_enable": true, "ota_ver_patch": "0", diff --git a/examples/direct_conn/direct_conn.uvproj b/examples/direct_conn/direct_conn.uvproj index 9fe4e665f..f6e97837b 100644 --- a/examples/direct_conn/direct_conn.uvproj +++ b/examples/direct_conn/direct_conn.uvproj @@ -294,8 +294,8 @@ 1 - 163840 - 376832 + 172032 + 368640 1 @@ -319,8 +319,8 @@ 0 - 536900896 - 35552 + 536901184 + 35264 0 diff --git a/examples/direct_conn/direct_conn.uvprojx b/examples/direct_conn/direct_conn.uvprojx index 66669e873..d53fff6ae 100644 --- a/examples/direct_conn/direct_conn.uvprojx +++ b/examples/direct_conn/direct_conn.uvprojx @@ -272,8 +272,8 @@ 1 - 163840 - 376832 + 172032 + 368640 1 @@ -297,8 +297,8 @@ 0 - 536900896 - 35552 + 536901184 + 35264 0 diff --git a/examples/direct_conn/flash_download.ini b/examples/direct_conn/flash_download.ini index d84a2c9f6..0b45364e7 100644 --- a/examples/direct_conn/flash_download.ini +++ b/examples/direct_conn/flash_download.ini @@ -35,7 +35,7 @@ Address=16384 [bin-1] Name=Burn Bin #2 Checked=1 -Address=163840 +Address=172032 FileName=direct_conn.bin [bin-2] diff --git a/examples/direct_conn/src/profile.c b/examples/direct_conn/src/profile.c index 55a01f670..c3ad3e54e 100644 --- a/examples/direct_conn/src/profile.c +++ b/examples/direct_conn/src/profile.c @@ -55,8 +55,8 @@ static struct paging_pkt paging_pkt = { .acc_offset = ACC_OFFSET, .start_time_offset = ACC_OFFSET + ACC_OFFSET, - .rx_phy = 1, - .tx_phy = 1, + .rx_phy = PHY_1M, + .tx_phy = PHY_1M, .access_addr = 0x91809160, .crc_init = 0x912, .interval = 1250 * 20, @@ -135,20 +135,23 @@ static void user_msg_handler(uint32_t msg_id, void *data, uint16_t size) paging_pkt.channel_map, paging_pkt.ch_sel_algo, paging_pkt.hop_inc, + 0, // last_unmapped_ch paging_pkt.min_ce_len, paging_pkt.max_ce_len, #if (CONN_ROLE == HCI_ROLE_MASTER) paging_time + paging_pkt.start_time_offset, + 0, // event_counter paging_pkt.slave_latency, paging_pkt.sleep_clk_acc, - 0 + 0, #else paging_time + paging_pkt.start_time_offset - JITTER, + 0, // event_counter paging_pkt.slave_latency, paging_pkt.sleep_clk_acc, - JITTER * 2 + JITTER * 2, #endif - ); + NULL); break; default: ; diff --git a/examples/ext_ackable_packet/ext_ackable_packet.ingw b/examples/ext_ackable_packet/ext_ackable_packet.ingw index e52dc153d..cb67b79aa 100644 --- a/examples/ext_ackable_packet/ext_ackable_packet.ingw +++ b/examples/ext_ackable_packet/ext_ackable_packet.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 146444, + "size": 146528, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 163840 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/ext_raw_packet/ext_raw_packet.ingw b/examples/ext_raw_packet/ext_raw_packet.ingw index 7cbce03c0..974e92b69 100644 --- a/examples/ext_raw_packet/ext_raw_packet.ingw +++ b/examples/ext_raw_packet/ext_raw_packet.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 146444, + "size": 146528, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 163840 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/ext_raw_packet_noos/ext_raw_packet_noos.ingw b/examples/ext_raw_packet_noos/ext_raw_packet_noos.ingw index 00e6ed05f..de22f2848 100644 --- a/examples/ext_raw_packet_noos/ext_raw_packet_noos.ingw +++ b/examples/ext_raw_packet_noos/ext_raw_packet_noos.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135664, + "size": 135748, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/gatt_relay/gatt_relay.ingw b/examples/gatt_relay/gatt_relay.ingw index 3fe448a20..689421986 100644 --- a/examples/gatt_relay/gatt_relay.ingw +++ b/examples/gatt_relay/gatt_relay.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/get_started/get_started.ingw b/examples/get_started/get_started.ingw index 3bbe6f942..e130557f2 100644 --- a/examples/get_started/get_started.ingw +++ b/examples/get_started/get_started.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/hid_keyboard/hid_keyboard.ingw b/examples/hid_keyboard/hid_keyboard.ingw index 8749df26d..df927a0dd 100644 --- a/examples/hid_keyboard/hid_keyboard.ingw +++ b/examples/hid_keyboard/hid_keyboard.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/hid_mouse/hid_mouse.ingw b/examples/hid_mouse/hid_mouse.ingw index bff1288f7..8f8cea343 100644 --- a/examples/hid_mouse/hid_mouse.ingw +++ b/examples/hid_mouse/hid_mouse.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/ibeacon_scanner/ibeacon_scanner.ingw b/examples/ibeacon_scanner/ibeacon_scanner.ingw index 1bf3d69fa..58ac593c0 100644 --- a/examples/ibeacon_scanner/ibeacon_scanner.ingw +++ b/examples/ibeacon_scanner/ibeacon_scanner.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/io_over_ble_mas/io_over_ble_mas.ingw b/examples/io_over_ble_mas/io_over_ble_mas.ingw index 2c98820a1..b405b7119 100644 --- a/examples/io_over_ble_mas/io_over_ble_mas.ingw +++ b/examples/io_over_ble_mas/io_over_ble_mas.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/io_over_ble_sla/io_over_ble_sla.ingw b/examples/io_over_ble_sla/io_over_ble_sla.ingw index a0d546921..2cff2e360 100644 --- a/examples/io_over_ble_sla/io_over_ble_sla.ingw +++ b/examples/io_over_ble_sla/io_over_ble_sla.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/l2cap_psm/data/setup_soc.cgen b/examples/l2cap_psm/data/setup_soc.cgen index 6ca9ed63d..9226520fb 100644 --- a/examples/l2cap_psm/data/setup_soc.cgen +++ b/examples/l2cap_psm/data/setup_soc.cgen @@ -1,7 +1,7 @@ void cube_soc_init(void) { -platform_config(PLATFORM_CFG_OSC32K_EN, PLATFORM_CFG_DISABLE); -platform_config(PLATFORM_CFG_32K_CLK_ACC, 500); +platform_config(PLATFORM_CFG_RT_OSC_EN, PLATFORM_CFG_DISABLE); +platform_config(PLATFORM_CFG_RT_CLK_ACC, 500); } void cube_setup_peripherals(void) diff --git a/examples/l2cap_psm/l2cap_psm.ingw b/examples/l2cap_psm/l2cap_psm.ingw index 99547f855..2b6feee6e 100644 --- a/examples/l2cap_psm/l2cap_psm.ingw +++ b/examples/l2cap_psm/l2cap_psm.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/littleVGL/littleVGL.ingw b/examples/littleVGL/littleVGL.ingw index feb775d4a..3bb868284 100644 --- a/examples/littleVGL/littleVGL.ingw +++ b/examples/littleVGL/littleVGL.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/llsync_light/llsync_light.ingw b/examples/llsync_light/llsync_light.ingw index 40cf59387..d71a1228d 100644 --- a/examples/llsync_light/llsync_light.ingw +++ b/examples/llsync_light/llsync_light.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/mesh-light/flash_download.ini b/examples/mesh-light/flash_download.ini index be0e9a93c..ceabbab34 100644 --- a/examples/mesh-light/flash_download.ini +++ b/examples/mesh-light/flash_download.ini @@ -5,7 +5,7 @@ Name=Burn Bin #1 Checked=1 [bin-1] -Address=155648 +Address=163840 Name=Burn Bin #2 Checked=1 FileName=mesh-light.bin diff --git a/examples/mesh-light/mesh-light.ingw b/examples/mesh-light/mesh-light.ingw index e95ac7f52..a8827902c 100644 --- a/examples/mesh-light/mesh-light.ingw +++ b/examples/mesh-light/mesh-light.ingw @@ -1,18 +1,18 @@ { "bundle_meta": { "rom": { - "size": 136368, + "size": 141236, "base": 16384 }, "ram": { - "size": 3476, + "size": 3764, "base": 536870912 }, "app": { - "base": 155648 + "base": 163840 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", @@ -37,14 +37,14 @@ "deep_sleep": true, "proj_dir": "C:\/projects\/ingchips\/SDK_Release\/examples\\mesh-light", "bundle": "noos_exp", - "app_rom_size": "385024", - "app_rom_addr": "155648", + "app_rom_size": "376832", + "app_rom_addr": "163840", "family": "ing918", "role": "light", "keil": true, "cmsis": "", - "app_ram_size": 62056, - "app_ram_addr": 536874392, + "app_ram_size": 61768, + "app_ram_addr": 536874680, "uart_log": true, "ota_ver_patch": "0", "profile_data": "0, 0\r\n", diff --git a/examples/mesh-light/mesh-light.uvproj b/examples/mesh-light/mesh-light.uvproj index ffbe305fe..3222e9abb 100644 --- a/examples/mesh-light/mesh-light.uvproj +++ b/examples/mesh-light/mesh-light.uvproj @@ -294,8 +294,8 @@ 1 - 155648 - 385024 + 163840 + 376832 1 @@ -319,8 +319,8 @@ 0 - 536874392 - 62056 + 536874680 + 61768 0 diff --git a/examples/mesh-light/mesh-light.uvprojx b/examples/mesh-light/mesh-light.uvprojx index ebd47fb70..ddac32969 100644 --- a/examples/mesh-light/mesh-light.uvprojx +++ b/examples/mesh-light/mesh-light.uvprojx @@ -272,8 +272,8 @@ 1 - 155648 - 385024 + 163840 + 376832 1 @@ -297,8 +297,8 @@ 0 - 536874392 - 62056 + 536874680 + 61768 0 diff --git a/examples/mesh-light/src/main.c b/examples/mesh-light/src/main.c index e7d195baf..ff7e261c5 100644 --- a/examples/mesh-light/src/main.c +++ b/examples/mesh-light/src/main.c @@ -64,10 +64,10 @@ void __aeabi_assert(const char *a ,const char* b, int c) static void uart_gpio_init(void){ SYSCTRL_ClearClkGateMulti(1 << SYSCTRL_ClkGate_APB_UART0); - SYSCTRL_ClearClkGateMulti( (1 << SYSCTRL_ClkGate_APB_GPIO) | - (1 << SYSCTRL_ClkGate_APB_PWM) | + SYSCTRL_ClearClkGateMulti( (1 << SYSCTRL_ClkGate_APB_GPIO) | + (1 << SYSCTRL_ClkGate_APB_PWM) | (1 << SYSCTRL_ClkGate_APB_PinCtrl)); - + PINCTRL_SetPadMux(USER_UART0_IO_RX, IO_SOURCE_GENERAL); PINCTRL_SetPadPwmSel(USER_UART0_IO_RX, 0); PINCTRL_SetPadMux(USER_UART0_IO_TX, IO_SOURCE_UART0_TXD); @@ -102,7 +102,7 @@ void setup_peripherals(void) { uart_gpio_init(); config_uart(OSC_CLK_FREQ, PRINT_UART_BAUD); - + setup_rgb_led(); #ifdef ENABLE_BUTTON_TEST @@ -119,9 +119,9 @@ int app_main() // If there are *three* crystals on board, *uncomment* below line. // Otherwise, below line should be kept commented out. // platform_set_rf_clk_source(0); - - platform_config(PLATFORM_CFG_32K_CLK_ACC, 200); - + + platform_config(PLATFORM_CFG_RT_CLK_ACC, 200); + setup_peripherals(); // setup putc handle diff --git a/examples/mesh-light/src/mesh_profile.c b/examples/mesh-light/src/mesh_profile.c index 7d9aa0b86..f0206efe3 100644 --- a/examples/mesh-light/src/mesh_profile.c +++ b/examples/mesh-light/src/mesh_profile.c @@ -13,7 +13,7 @@ #include "profile.h" #include "mesh.h" #include "mesh_port_stack.h" -#include "mesh_storage_app.h" +#include "mesh_storage_app.h" #include "app_debug.h" #include "board.h" #include "ble_status.h" @@ -63,19 +63,19 @@ const uint8_t gatt_data_proxy[] = ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// static void mesh_adv_set_params(uint8_t adv_handle, - uint16_t adv_int_min, - uint16_t adv_int_max, + uint16_t adv_int_min, + uint16_t adv_int_max, uint8_t adv_type, - uint8_t direct_address_typ, - bd_addr_t direct_address, - uint8_t channel_map, + uint8_t direct_address_typ, + bd_addr_t direct_address, + uint8_t channel_map, uint8_t filter_policy){ - + gap_set_ext_adv_para( adv_handle, adv_type, adv_int_min, adv_int_max, - channel_map, + channel_map, BD_ADDR_TYPE_LE_RANDOM, (bd_addr_type_t)direct_address_typ, direct_address, @@ -100,22 +100,22 @@ static void mesh_advertisements_enable(uint8_t adv_handle, int enabled){ } /* API START */ -void mesh_profile_adv_proxy_set_params( uint16_t adv_int_min, - uint16_t adv_int_max, +void mesh_profile_adv_proxy_set_params( uint16_t adv_int_min, + uint16_t adv_int_max, uint8_t adv_type, - uint8_t direct_address_typ, - bd_addr_t direct_address, - uint8_t channel_map, + uint8_t direct_address_typ, + bd_addr_t direct_address, + uint8_t channel_map, uint8_t filter_policy){ mesh_adv_set_params(MESH_PROXY_ADV_HANDLE, adv_int_min, adv_int_max, adv_type, direct_address_typ, direct_address, channel_map, filter_policy); } -void mesh_profile_adv_pb_set_params(uint16_t adv_int_min, - uint16_t adv_int_max, +void mesh_profile_adv_pb_set_params(uint16_t adv_int_min, + uint16_t adv_int_max, uint8_t adv_type, - uint8_t direct_address_typ, - bd_addr_t direct_address, - uint8_t channel_map, + uint8_t direct_address_typ, + bd_addr_t direct_address, + uint8_t channel_map, uint8_t filter_policy){ mesh_adv_set_params(MESH_PB_ADV_HANDLE, adv_int_min, adv_int_max, adv_type, direct_address_typ, direct_address, channel_map, filter_policy); } @@ -193,8 +193,8 @@ void mesh_profile_scan_param_set(uint16_t interval_ms, uint16_t window_ms){ bd_addr_type_t own_addr_type = BD_ADDR_TYPE_LE_RANDOM; scan_filter_policy_t filter_policy = SCAN_ACCEPT_ALL_EXCEPT_NOT_DIRECTED; uint8_t config_num = 1; - scan_phy_config_t scan_config[1] = {{ .phy = PHY_1M, .type = SCAN_PASSIVE, - .interval = SCAN_SET_TIME_MS(interval_ms), + scan_phy_config_t scan_config[1] = {{ .phy = PHY_1M, .type = SCAN_PASSIVE, + .interval = SCAN_SET_TIME_MS(interval_ms), .window = SCAN_SET_TIME_MS(window_ms)}}; if (0 != gap_set_ext_scan_para(own_addr_type, filter_policy, config_num, scan_config)){ app_log_error("=============>ERR - %s\n", __func__); @@ -260,7 +260,7 @@ void mesh_setup_adv(void) { mesh_profile_adv_proxy_enable(0); mesh_profile_adv_pb_enable(0); - + mesh_proxy_adv_setup(); mesh_pb_adv_setup(); } @@ -277,7 +277,7 @@ void mesh_server_restart(void) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// static void user_msg_handler(btstack_user_msg_t * usrmsg) -{ +{ #ifdef ENABLE_BUTTON_TEST #include "BUTTON_TEST.h" button_msg_handler(usrmsg); @@ -318,7 +318,7 @@ static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uin { case HCI_SUBEVENT_LE_EXTENDED_ADVERTISING_REPORT:{ const le_ext_adv_report_t *report = decode_hci_le_meta_event(packet, le_meta_event_ext_adv_report_t)->reports; - + // only non-connectable ind if (report->evt_type != 0x10) break; @@ -341,7 +341,7 @@ static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uin } break; - + case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE:{ const le_meta_event_enh_create_conn_complete_t *create_conn = decode_hci_le_meta_event(packet, le_meta_event_enh_create_conn_complete_t); @@ -349,11 +349,11 @@ static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uin app_log_debug("connect.\n"); att_set_db(my_conn_handle, ( mesh_is_provisioned()? gatt_data_proxy : gatt_data_pb )); mesh_connected(my_conn_handle); - platform_calibrate_32k(); + platform_calibrate_rt_clk(); } break; case HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE:{ - const le_meta_event_conn_update_complete_t *conn_update = + const le_meta_event_conn_update_complete_t *conn_update = decode_hci_le_meta_event(packet, le_meta_event_conn_update_complete_t); app_log_debug("\nconn update complete:%d\n", conn_update->status); if(conn_update->status == ERROR_CODE_SUCCESS){ @@ -368,11 +368,11 @@ static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uin } break; case HCI_SUBEVENT_LE_ADVERTISING_SET_TERMINATED:{ - const le_meta_event_adv_set_terminate_t *adv_term = + const le_meta_event_adv_set_terminate_t *adv_term = decode_hci_le_meta_event(packet, le_meta_event_adv_set_terminate_t); if(MESH_PB_ADV_HANDLE == adv_term->adv_handle){ } - } + } break; default: break; @@ -481,6 +481,6 @@ uint32_t setup_profile(void *data, void *user_data) // ble status init. ble_status_init(); - + return 0; } diff --git a/examples/pawr/data/setup_soc.cgen b/examples/pawr/data/setup_soc.cgen index 07079da89..77ae15293 100644 --- a/examples/pawr/data/setup_soc.cgen +++ b/examples/pawr/data/setup_soc.cgen @@ -1,7 +1,7 @@ void cube_soc_init(void) { -platform_config(PLATFORM_CFG_OSC32K_EN, PLATFORM_CFG_DISABLE); -platform_config(PLATFORM_CFG_32K_CLK_ACC, 500); +platform_config(PLATFORM_CFG_RT_OSC_EN, PLATFORM_CFG_DISABLE); +platform_config(PLATFORM_CFG_RT_CLK_ACC, 500); } diff --git a/examples/pawr/flash_download.ini b/examples/pawr/flash_download.ini index 8d282c7db..a7ebf6322 100644 --- a/examples/pawr/flash_download.ini +++ b/examples/pawr/flash_download.ini @@ -35,7 +35,7 @@ Address=33562624 [bin-1] Name=Burn Bin #2 Checked=1 -Address=33734656 +Address=33738752 FileName=pawr.bin [bin-2] diff --git a/examples/pawr/pawr.ingw b/examples/pawr/pawr.ingw index 3b58e6ccd..7ce6a5b28 100644 --- a/examples/pawr/pawr.ingw +++ b/examples/pawr/pawr.ingw @@ -2,18 +2,18 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 168988, + "size": 173892, "base": 33562624 }, "ram": { - "size": 21524, + "size": 21828, "base": 536870912 }, "app": { - "base": 33734656 + "base": 33738752 }, "version": [ - 2,3,0] + 2,3,1] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", @@ -54,8 +54,8 @@ "power_saving": false, "secondary": false, "bundle": "exp", - "app_rom_size": "344064", - "app_rom_addr": "33734656", + "app_rom_size": "339968", + "app_rom_addr": "33738752", "family": "ing916", "vcode": false, "heap_override": false, @@ -72,8 +72,8 @@ "keil": true, "cmsis": "", "cube": true, - "app_ram_size": 11240, - "app_ram_addr": 536892440, + "app_ram_size": 10936, + "app_ram_addr": 536892744, "k5_cc_ver": "6", "printf_enable": true, "ota_ver_patch": "0", diff --git a/examples/pawr/pawr.uvproj b/examples/pawr/pawr.uvproj index e4d744a29..223807b1b 100644 --- a/examples/pawr/pawr.uvproj +++ b/examples/pawr/pawr.uvproj @@ -294,8 +294,8 @@ 1 - 33734656 - 344064 + 33738752 + 339968 1 @@ -319,8 +319,8 @@ 0 - 536892440 - 11240 + 536892744 + 10936 0 diff --git a/examples/pawr/pawr.uvprojx b/examples/pawr/pawr.uvprojx index 5c89f2b41..b8e233db2 100644 --- a/examples/pawr/pawr.uvprojx +++ b/examples/pawr/pawr.uvprojx @@ -273,8 +273,8 @@ 1 - 33734656 - 344064 + 33738752 + 339968 1 @@ -298,8 +298,8 @@ 0 - 536892440 - 11240 + 536892744 + 10936 0 diff --git a/examples/periodic_advertiser/periodic_advertiser.ingw b/examples/periodic_advertiser/periodic_advertiser.ingw index b40771f7e..5ff64af6e 100644 --- a/examples/periodic_advertiser/periodic_advertiser.ingw +++ b/examples/periodic_advertiser/periodic_advertiser.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 141788, + "size": 141872, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 163840 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/periodic_scanner/periodic_scanner.ingw b/examples/periodic_scanner/periodic_scanner.ingw index 209ac1c7e..2f016488a 100644 --- a/examples/periodic_scanner/periodic_scanner.ingw +++ b/examples/periodic_scanner/periodic_scanner.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 141788, + "size": 141872, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 163840 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/peripheral_ancs/peripheral_ancs.ingw b/examples/peripheral_ancs/peripheral_ancs.ingw index e629215a4..121b87554 100644 --- a/examples/peripheral_ancs/peripheral_ancs.ingw +++ b/examples/peripheral_ancs/peripheral_ancs.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/peripheral_band/peripheral_band.ingw b/examples/peripheral_band/peripheral_band.ingw index e5e32fedd..0a688a08c 100644 --- a/examples/peripheral_band/peripheral_band.ingw +++ b/examples/peripheral_band/peripheral_band.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_battery/peripheral_battery.ingw b/examples/peripheral_battery/peripheral_battery.ingw index 7a2f2a9b0..fccf63a1f 100644 --- a/examples/peripheral_battery/peripheral_battery.ingw +++ b/examples/peripheral_battery/peripheral_battery.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_battery/src/profile.c b/examples/peripheral_battery/src/profile.c index ae6a879ff..51f6818e4 100644 --- a/examples/peripheral_battery/src/profile.c +++ b/examples/peripheral_battery/src/profile.c @@ -31,7 +31,7 @@ static uint8_t profile_data[] = { #include "../data/gatt.profile" }; -static uint16_t att_read_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t offset, +static uint16_t att_read_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t offset, uint8_t * buffer, uint16_t buffer_size) { switch (att_handle) @@ -44,7 +44,7 @@ static uint16_t att_read_callback(hci_con_handle_t connection_handle, uint16_t a static btstack_packet_callback_registration_t hci_event_callback_registration; -static int att_write_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t transaction_mode, +static int att_write_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t transaction_mode, uint16_t offset, const uint8_t *buffer, uint16_t buffer_size) { switch (att_handle) @@ -84,7 +84,7 @@ static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uin break; gap_set_adv_set_random_addr(0, rand_addr); - gap_set_ext_adv_para(0, + gap_set_ext_adv_para(0, CONNECTABLE_ADV_BIT | SCANNABLE_ADV_BIT | LEGACY_PDU_BIT, 0x00a1, 0x00a1, // Primary_Advertising_Interval_Min, Primary_Advertising_Interval_Max PRIMARY_ADV_ALL_CHANNELS, // Primary_Advertising_Channel_Map @@ -145,7 +145,7 @@ uint16_t read_adc(uint8_t channel) SYSCTRL_WaitForLDO(); ADC_Reset(); - ADC_PowerCtrl(1); + ADC_PowerCtrl(1); ADC_SetClkSel(ADC_CLK_EN | ADC_CLK_128); ADC_SetMode(ADC_MODE_LOOP); @@ -165,7 +165,7 @@ uint16_t read_adc(uint8_t channel) return adc_calibrate(ADC_SAMPLE_MODE_SLOW, channel, voltage); #elif (INGCHIPS_FAMILY == INGCHIPS_FAMILY_916) - ADC_ConvCfg(CONTINUES_MODE, PGA_PARA_1, 1, (SADC_channelId)channel, AVE_NUM, 0, + ADC_ConvCfg(CONTINUES_MODE, PGA_PARA_1, 1, (SADC_channelId)channel, AVE_NUM, 0, SINGLE_END_MODE, LOOP_DELAY(ADC_CLK_MHZ, SAMPLERATE, ADC_CH_NUM)); ADC_AveInit(); ADC_Start(1); @@ -198,7 +198,7 @@ static void battery_task(void *pdata) { vTaskDelayUntil(&xPreviousWakeTime, AccurateMS_TO_TICKS(900)); -#ifndef SIMULATION +#ifndef SIMULATION printf("U = %d", read_adc(ADC_CHANNEL)); #else voltage = 800 + rand() % 200; @@ -211,7 +211,7 @@ static void battery_task(void *pdata) *battery_level = (uint32_t)(voltage - MIN_VOLT) * 100 / (MAX_VOLT - MIN_VOLT); else *battery_level = 0; - + // add a random delay. see how ADC is sampled at fixed intervals. vTaskDelay(pdMS_TO_TICKS(100 + (platform_rand() & 0xf) * 10)); } @@ -235,8 +235,8 @@ static void battery_task(void *pdata) BaseType_t r = xSemaphoreTake(sem_battery, portMAX_DELAY); if (r != pdTRUE) continue; - -#ifndef SIMULATION + +#ifndef SIMULATION printf("U = %d\n", read_adc(ADC_CHANNEL)); #else voltage = 800 + rand() % 200; @@ -274,7 +274,7 @@ uint32_t setup_profile(void *data, void *user_data) battery_level = profile_data + HANDLE_BATTERY_LEVEL_OFFSET; #ifdef DEMO_TASK_DELAY_UNTIL - platform_32k_rc_auto_tune(); + platform_rt_rc_auto_tune(); vUpdateTicksClockFrequency(); #else sem_battery = xSemaphoreCreateBinary(); diff --git a/examples/peripheral_console/peripheral_console.ingw b/examples/peripheral_console/peripheral_console.ingw index c2a5cde03..764db2eda 100644 --- a/examples/peripheral_console/peripheral_console.ingw +++ b/examples/peripheral_console/peripheral_console.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135264, + "size": 135356, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_console/src/main_shared.c b/examples/peripheral_console/src/main_shared.c index 5c7db9e76..06578e1ce 100644 --- a/examples/peripheral_console/src/main_shared.c +++ b/examples/peripheral_console/src/main_shared.c @@ -222,12 +222,12 @@ void _app_main() #endif #ifdef USE_OSC32K - platform_config(PLATFORM_CFG_OSC32K_EN, PLATFORM_CFG_ENABLE); - platform_config(PLATFORM_CFG_32K_CLK, PLATFORM_32K_OSC); - platform_config(PLATFORM_CFG_RC32K_EN, PLATFORM_CFG_DISABLE); + platform_config(PLATFORM_CFG_RT_OSC_EN, PLATFORM_CFG_ENABLE); + platform_config(PLATFORM_CFG_RT_CLK, PLATFORM_RT_OSC); + platform_config(PLATFORM_CFG_RT_RC_EN, PLATFORM_CFG_DISABLE); #else - platform_config(PLATFORM_CFG_OSC32K_EN, PLATFORM_CFG_DISABLE); - platform_config(PLATFORM_CFG_32K_CLK_ACC, 500); + platform_config(PLATFORM_CFG_RT_OSC_EN, PLATFORM_CFG_DISABLE); + platform_config(PLATFORM_CFG_RT_CLK_ACC, 500); #endif // setup handlers diff --git a/examples/peripheral_console/src/profile.c b/examples/peripheral_console/src/profile.c index 716af6db2..5ee7208d9 100644 --- a/examples/peripheral_console/src/profile.c +++ b/examples/peripheral_console/src/profile.c @@ -125,7 +125,7 @@ static void user_msg_handler(uint32_t msg_id, void *data, uint16_t size) } break; case USER_MSG_ID_FIRST_WAKE_UP: - platform_32k_rc_auto_tune(); + platform_rt_rc_auto_tune(); gap_set_ext_adv_enable(1, sizeof(adv_sets_en) / sizeof(adv_sets_en[0]), adv_sets_en); break; default: @@ -179,7 +179,7 @@ static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uin case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE: att_set_db(decode_hci_le_meta_event(packet, le_meta_event_enh_create_conn_complete_t)->handle, profile_data); - platform_calibrate_32k(); + platform_calibrate_rt_clk(); #if (INGCHIPS_FAMILY == INGCHIPS_FAMILY_916) #ifdef OPT_RAM_CODE platform_config(PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION, 4100 - 400); diff --git a/examples/peripheral_console_freertos/peripheral_console_freertos.ingw b/examples/peripheral_console_freertos/peripheral_console_freertos.ingw index a3cc7dfe2..b84623bf6 100644 --- a/examples/peripheral_console_freertos/peripheral_console_freertos.ingw +++ b/examples/peripheral_console_freertos/peripheral_console_freertos.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 124964, + "size": 125044, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 147456 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/peripheral_console_realtime/peripheral_console_realtime.ingw b/examples/peripheral_console_realtime/peripheral_console_realtime.ingw index fd67bd2aa..34895df64 100644 --- a/examples/peripheral_console_realtime/peripheral_console_realtime.ingw +++ b/examples/peripheral_console_realtime/peripheral_console_realtime.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 144840, + "size": 144932, "base": 33562624 }, "ram": { @@ -13,7 +13,7 @@ "base": 33710080 }, "version": [ - 2,3,0] + 2,3,1] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/peripheral_console_realtime/src/main.c b/examples/peripheral_console_realtime/src/main.c index 3844d3be7..4bf04515f 100644 --- a/examples/peripheral_console_realtime/src/main.c +++ b/examples/peripheral_console_realtime/src/main.c @@ -115,8 +115,8 @@ ADDITIONAL_ATTRIBUTE uint32_t query_deep_sleep_allowed(void *dummy, void *user_d uintptr_t app_main() { - platform_config(PLATFORM_CFG_OSC32K_EN, PLATFORM_CFG_DISABLE); - platform_config(PLATFORM_CFG_32K_CLK_ACC, 500); + platform_config(PLATFORM_CFG_RT_OSC_EN, PLATFORM_CFG_DISABLE); + platform_config(PLATFORM_CFG_RT_CLK_ACC, 500); #ifdef USE_POWER_LIB power_ctrl_init(); diff --git a/examples/peripheral_console_rt-thread/peripheral_console_rt-thread.ingw b/examples/peripheral_console_rt-thread/peripheral_console_rt-thread.ingw index d2b19ff15..7d4768363 100644 --- a/examples/peripheral_console_rt-thread/peripheral_console_rt-thread.ingw +++ b/examples/peripheral_console_rt-thread/peripheral_console_rt-thread.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 124964, + "size": 125044, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 147456 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/peripheral_etag/peripheral_etag.ingw b/examples/peripheral_etag/peripheral_etag.ingw index dbfdc203b..8120d06d3 100644 --- a/examples/peripheral_etag/peripheral_etag.ingw +++ b/examples/peripheral_etag/peripheral_etag.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_ibeacon/peripheral_ibeacon.ingw b/examples/peripheral_ibeacon/peripheral_ibeacon.ingw index 3dabc4a40..a25af95dd 100644 --- a/examples/peripheral_ibeacon/peripheral_ibeacon.ingw +++ b/examples/peripheral_ibeacon/peripheral_ibeacon.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_irc/peripheral_irc.ingw b/examples/peripheral_irc/peripheral_irc.ingw index 8fa3f6725..728105779 100644 --- a/examples/peripheral_irc/peripheral_irc.ingw +++ b/examples/peripheral_irc/peripheral_irc.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/peripheral_led/peripheral_led.ingw b/examples/peripheral_led/peripheral_led.ingw index 14f39131a..b9465c06b 100644 --- a/examples/peripheral_led/peripheral_led.ingw +++ b/examples/peripheral_led/peripheral_led.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 146444, + "size": 146528, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 163840 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_mass_conn/peripheral_mass_conn.ingw b/examples/peripheral_mass_conn/peripheral_mass_conn.ingw index 04a3e716e..720d6e266 100644 --- a/examples/peripheral_mass_conn/peripheral_mass_conn.ingw +++ b/examples/peripheral_mass_conn/peripheral_mass_conn.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135824, + "size": 135900, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/peripheral_pedometer/peripheral_pedometer.ingw b/examples/peripheral_pedometer/peripheral_pedometer.ingw index 8640d7fdc..2d42c4775 100644 --- a/examples/peripheral_pedometer/peripheral_pedometer.ingw +++ b/examples/peripheral_pedometer/peripheral_pedometer.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_piano/peripheral_piano.ingw b/examples/peripheral_piano/peripheral_piano.ingw index fa547db69..5bef058dd 100644 --- a/examples/peripheral_piano/peripheral_piano.ingw +++ b/examples/peripheral_piano/peripheral_piano.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/peripheral_throughput/peripheral_throughput.ingw b/examples/peripheral_throughput/peripheral_throughput.ingw index c4faaf746..3c2bf0bde 100644 --- a/examples/peripheral_throughput/peripheral_throughput.ingw +++ b/examples/peripheral_throughput/peripheral_throughput.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/reset_handler/reset_handler.ingw b/examples/reset_handler/reset_handler.ingw index 49bafb03d..b6f306120 100644 --- a/examples/reset_handler/reset_handler.ingw +++ b/examples/reset_handler/reset_handler.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/secondary_fota/secondary_fota.ingw b/examples/secondary_fota/secondary_fota.ingw index f4cd54b54..95498e0e1 100644 --- a/examples/secondary_fota/secondary_fota.ingw +++ b/examples/secondary_fota/secondary_fota.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/smart_meter/smart_meter.ingw b/examples/smart_meter/smart_meter.ingw index a269c2ea0..45decdcc8 100644 --- a/examples/smart_meter/smart_meter.ingw +++ b/examples/smart_meter/smart_meter.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/thermo_ota/thermo_ota.ingw b/examples/thermo_ota/thermo_ota.ingw index 70e8ca4e6..bd8f12c80 100644 --- a/examples/thermo_ota/thermo_ota.ingw +++ b/examples/thermo_ota/thermo_ota.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135744, + "size": 135828, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 155648 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/uart_console/README.md b/examples/uart_console/README.md index ece1135bb..07a95ceb6 100644 --- a/examples/uart_console/README.md +++ b/examples/uart_console/README.md @@ -8,6 +8,7 @@ This example demonstrates how to: * Trace Demo: SWD/UART/Flash/Air. * Power Control * Subrating +* Connection abort & resume * Dump through UART Note: Use a serial tool to communicate. CR/LF is used diff --git a/examples/uart_console/doc/index.md b/examples/uart_console/doc/index.md index 7ff135bba..3bc43e716 100644 --- a/examples/uart_console/doc/index.md +++ b/examples/uart_console/doc/index.md @@ -156,6 +156,17 @@ Firstly, connect to a device with Connection Subrating feature. +### Connection Abort & Resume + +Firstly, start advertising and get connected with _ING BLE_ app. + +* `re-conn` + + This command will abort current connection (SLAVE role), and resume it immediately. + + Pass `HCI_SUBEVENT_LE_VENDOR_CONNECTION_ABORTED` and timing information to + another device, then the connection can be resumed on that device, and _handover_ is achieved. + ## Trace This example has 4 trace sink drivers (i.e. how to export/save trace data): diff --git a/examples/uart_console/flash_download.ini b/examples/uart_console/flash_download.ini index dce963642..7c7fe9618 100644 --- a/examples/uart_console/flash_download.ini +++ b/examples/uart_console/flash_download.ini @@ -22,7 +22,7 @@ Address=16384 [bin-1] Name=Burn Bin #2 Checked=1 -Address=163840 +Address=172032 FileName=uart_console.bin [uart] diff --git a/examples/uart_console/src/profile.c b/examples/uart_console/src/profile.c index 7ae657843..c517c6a2f 100644 --- a/examples/uart_console/src/profile.c +++ b/examples/uart_console/src/profile.c @@ -15,6 +15,7 @@ #include "sm.h" #include "trace.h" #include "btstack_mt.h" +#include "ll_api.h" #include "uart_console.h" #include "gatt_client_util.h" @@ -77,6 +78,12 @@ uint8_t peer_feature_power_control = 0; uint8_t peer_feature_subrate = 0; uint8_t auto_power_ctrl = 0; +static le_meta_event_vendor_connection_aborted_t aborted = {0}; +uint8_t aborted_received = 0; +uint8_t peer_addr_type = 0; +uint8_t reconnecting_after_aborted = 0; +bd_addr_t peer_addr; + static uint16_t att_read_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t offset, uint8_t * buffer, uint16_t buffer_size) { @@ -93,6 +100,7 @@ static btstack_packet_callback_registration_t hci_event_callback_registration; static int att_write_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t transaction_mode, uint16_t offset, const uint8_t *buffer, uint16_t buffer_size) { + platform_printf("ATT Write: handle = %d, size = %d\n", att_handle, buffer_size); switch (att_handle) { @@ -628,6 +636,23 @@ void ble_set_auto_power_control(int enable) iprintf("Auto power control %s.\n", enable ? "enabled" : "disabled"); } +static void abort_connection(void *data, uint16_t value) +{ + if (sla_conn_handle != INVALID_HANDLE) + ll_conn_abort(sla_conn_handle); + else + { + platform_printf("ERR: a connection (SLAVE role) is needed.\n"); + return; + } + reconnecting_after_aborted = 1; +} + +void ble_re_connect(void) +{ + btstack_push_user_runnable(abort_connection, NULL, 0); +} + static void demo_synced_gap_apis(struct btstack_synced_runner *runner, void *user_data) { int err; @@ -707,14 +732,14 @@ void ble_sync_gap(void) void change_conn_param(int interval, int latency, int timeout) { - if (interval > 0) conn_param_requst.interval = interval; + if (interval > 0) conn_param_requst.interval = interval; if (timeout > 0) conn_param_requst.timeout = timeout; conn_param_requst.latency = latency; - + uint16_t ce_len = (conn_param_requst.interval << 1) - 2; mt_gap_update_connection_parameters( mas_conn_handle != INVALID_HANDLE ? mas_conn_handle : sla_conn_handle, - conn_param_requst.interval, + conn_param_requst.interval, conn_param_requst.interval, conn_param_requst.latency, conn_param_requst.timeout, @@ -940,6 +965,9 @@ static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uin if (complete->status != 0) break; + peer_addr_type = complete->peer_addr_type; + memcpy(peer_addr, complete->peer_addr, sizeof(peer_addr)); + if (HCI_ROLE_SLAVE == complete->role) { sla_conn_handle = complete->handle; @@ -953,6 +981,12 @@ static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uin mas_conn_handle = complete->handle; } + if (reconnecting_after_aborted) + { + reconnecting_after_aborted = 0; + platform_printf("CONN RESUMED.\n"); + break; + } gap_read_remote_version(complete->handle); } @@ -1045,6 +1079,15 @@ static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uin ); } break; + case HCI_SUBEVENT_LE_VENDOR_CONNECTION_ABORTED: + { + const le_meta_event_vendor_connection_aborted_t *abort = + decode_hci_le_meta_event(packet, le_meta_event_vendor_connection_aborted_t); + memcpy(&aborted, abort, sizeof(aborted)); + aborted_received = 1; + platform_printf("[evt]: CONNECTION_ABORTED\n"); + } + break; default: break; } @@ -1084,6 +1127,38 @@ static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uin discoverer = NULL; } } + + if (aborted_received) + { + bd_addr_t rev_local; + aborted_received = 0; + reverse_bd_addr(sm_persistent.identity_addr, rev_local); + + ll_create_conn( + aborted.role, + sm_persistent.identity_addr_type | (peer_addr_type << 1), // bit[1] initiator, bit[0] advertiser + rev_local, // const uint8_t *adv_addr, + peer_addr, // const uint8_t *init_addr, + aborted.rx_phy, + aborted.tx_phy, + aborted.access_addr, + aborted.crc_init, + aborted.interval, + aborted.sup_timeout, + aborted.channel_map, + aborted.ch_sel_algo, + aborted.hop_inc, + aborted.last_unmapped_ch, + 20, // uint16_t min_ce_len, + 20, // uint16_t max_ce_len, + aborted.next_event_time - 20,// uint64_t start_time, + aborted.next_event_counter, // uint16_t event_counter, + aborted.slave_latency, + aborted.sleep_clk_acc, + 10, // uint32_t sync_window, + aborted.security_enabled ? &aborted.security : NULL + ); + } } break; diff --git a/examples/uart_console/src/uart_console.c b/examples/uart_console/src/uart_console.c index 6a8b48782..5a130814e 100644 --- a/examples/uart_console/src/uart_console.c +++ b/examples/uart_console/src/uart_console.c @@ -68,7 +68,8 @@ static const char help[] = "commands:\n" "auto 0/1 enable/disable auto power control\n" "subr factor subrate with factor\n" "syncgap demo sync GAP APIs\n" - "lock freq lock to freq (MHz). 0 to unlock" + "lock freq lock to freq (MHz). 0 to unlock\n" + "re-conn demo of abort & re-connect\n" ; void cmd_help(const char *param) @@ -402,6 +403,7 @@ void cmd_stop(const char *param) void set_phy(int phy); void change_conn_param(int interval, int latency, int timeout); +void ble_re_connect(void); void cmd_phy(const char *param) { @@ -445,6 +447,11 @@ void cmd_lock(const char *param) } } +static void cmd_reconn(const char *param) +{ + ble_re_connect(); +} + static cmd_t cmds[] = { { @@ -582,6 +589,10 @@ static cmd_t cmds[] = { .cmd = "lock", .handler = cmd_lock + }, + { + .cmd = "re-conn", + .handler = cmd_reconn } }; diff --git a/examples/uart_console/uart_console.ingw b/examples/uart_console/uart_console.ingw index d4986e49c..89a369b91 100644 --- a/examples/uart_console/uart_console.ingw +++ b/examples/uart_console/uart_console.ingw @@ -1,18 +1,18 @@ { "bundle_meta": { "rom": { - "size": 147152, + "size": 152028, "base": 16384 }, "ram": { - "size": 29980, + "size": 30268, "base": 536870912 }, "app": { - "base": 163840 + "base": 172032 }, "version": [ - 1,9,40] + 1,9,41] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", @@ -39,8 +39,8 @@ "power_saving": false, "gatt_handle_value": "3", "bundle": "exp", - "app_rom_size": "376832", - "app_rom_addr": "163840", + "app_rom_size": "368640", + "app_rom_addr": "172032", "family": "ing918", "vcode": false, "role": "peripheral", @@ -53,8 +53,8 @@ "keil": true, "cmsis": "", "gatt_handle_name": "HANDLE_DEVICE_NAME", - "app_ram_size": 35552, - "app_ram_addr": 536900896, + "app_ram_size": 35264, + "app_ram_addr": 536901184, "uart_log": true, "ota_ver_patch": "0", "profile_data": "\/\/ Service Generic Access: 1800\r\n0x0A, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x28,\r\n0x00, 0x18, \r\n\/\/ Characteristic Device Name: 2A00\r\n0x0D, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x28,\r\n0x02, 0x03, 0x00, 0x00, 0x2A, \r\n0x14, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x2A,\r\n0x55, 0x41, 0x52, 0x54, 0x20, 0x43, 0x6F, 0x6E, \r\n0x73, 0x6F, 0x6C, 0x65, \r\n\r\n0x00,0x00\r\n\/\/ total size = 45\r\n\r\n\/\/ HANDLE_DEVICE_NAME=3\r\n\r\n\/\/ HANDLE_DEVICE_NAME_OFFSET=31\r\n", diff --git a/examples/uart_console/uart_console.uvproj b/examples/uart_console/uart_console.uvproj index dc9e9fbea..543f9a021 100644 --- a/examples/uart_console/uart_console.uvproj +++ b/examples/uart_console/uart_console.uvproj @@ -294,8 +294,8 @@ 1 - 163840 - 376832 + 172032 + 368640 1 @@ -319,8 +319,8 @@ 0 - 536900896 - 35552 + 536901184 + 35264 0 diff --git a/examples/uart_console/uart_console.uvprojx b/examples/uart_console/uart_console.uvprojx index 20b48f587..2ed3122b4 100644 --- a/examples/uart_console/uart_console.uvprojx +++ b/examples/uart_console/uart_console.uvprojx @@ -273,8 +273,8 @@ 1 - 163840 - 376832 + 172032 + 368640 1 @@ -298,8 +298,8 @@ 0 - 536900896 - 35552 + 536901184 + 35264 0 diff --git a/examples/voice_remote_ctrl/voice_remote_ctrl.ingw b/examples/voice_remote_ctrl/voice_remote_ctrl.ingw index ca719a7cf..589549409 100644 --- a/examples/voice_remote_ctrl/voice_remote_ctrl.ingw +++ b/examples/voice_remote_ctrl/voice_remote_ctrl.ingw @@ -1,18 +1,18 @@ { "bundle_meta": { "rom": { - "size": 155260, + "size": 155348, "base": 33562624 }, "ram": { - "size": 21580, + "size": 21588, "base": 536870912 }, "app": { "base": 33718272 }, "version": [ - 2,3,0] + 2,3,1] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", @@ -53,8 +53,8 @@ "keil": true, "cmsis": "", "gatt_handle_name": "HANDLE_VOICE_CONTROL", - "app_ram_size": 11184, - "app_ram_addr": 536892496, + "app_ram_size": 11176, + "app_ram_addr": 536892504, "uart_log": true, "ota_ver_patch": "0", "profile_data": "\/\/ Service Generic Access: 1800\r\n0x0A, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x28,\r\n0x00, 0x18, \r\n\/\/ Characteristic Device Name: 2A00\r\n0x0D, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x28,\r\n0x02, 0x03, 0x00, 0x00, 0x2A, \r\n0x20, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x2A,\r\n0x49, 0x4E, 0x47, 0x20, 0x56, 0x6F, 0x69, 0x63, \r\n0x65, 0x20, 0x52, 0x65, 0x6D, 0x6F, 0x74, 0x65, \r\n0x20, 0x43, 0x6F, 0x6E, 0x74, 0x72, 0x6F, 0x6C, \r\n\r\n\/\/ Service INGChips Voice Output Service: {00000001-494e-4743-4849-505355554944}\r\n0x18, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x28,\r\n0x44, 0x49, 0x55, 0x55, 0x53, 0x50, 0x49, 0x48, \r\n0x43, 0x47, 0x4E, 0x49, 0x01, 0x00, 0x00, 0x00, \r\n\/\/ Characteristic Voice Control: {bf83f3f1-399a-414d-9035-ce64ceb3ff67}\r\n0x1B, 0x00, 0x02, 0x00, 0x05, 0x00, 0x03, 0x28,\r\n0x06, 0x06, 0x00, 0x67, 0xFF, 0xB3, 0xCE, 0x64, \r\n0xCE, 0x35, 0x90, 0x4D, 0x41, 0x9A, 0x39, 0xF1, \r\n0xF3, 0x83, 0xBF, \r\n0x16, 0x00, 0x06, 0x03, 0x06, 0x00,\r\n0x67, 0xFF, 0xB3, 0xCE, 0x64, 0xCE, 0x35, 0x90, \r\n0x4D, 0x41, 0x9A, 0x39, 0xF1, 0xF3, 0x83, 0xBF, \r\n\/\/ Characteristic Voice Output: {bf83f3f2-399a-414d-9035-ce64ceb3ff67}\r\n0x1B, 0x00, 0x02, 0x00, 0x07, 0x00, 0x03, 0x28,\r\n0x10, 0x08, 0x00, 0x67, 0xFF, 0xB3, 0xCE, 0x64, \r\n0xCE, 0x35, 0x90, 0x4D, 0x41, 0x9A, 0x39, 0xF2, \r\n0xF3, 0x83, 0xBF, \r\n0x16, 0x00, 0x10, 0x02, 0x08, 0x00,\r\n0x67, 0xFF, 0xB3, 0xCE, 0x64, 0xCE, 0x35, 0x90, \r\n0x4D, 0x41, 0x9A, 0x39, 0xF2, 0xF3, 0x83, 0xBF, \r\n0x0A, 0x00, 0x0A, 0x01, 0x09, 0x00, 0x02, 0x29,\r\n0x00, 0x00, \r\n\r\n0x00,0x00\r\n\/\/ total size = 189\r\n\r\n\/\/ HANDLE_DEVICE_NAME=3\r\n\/\/ HANDLE_VOICE_CONTROL=6\r\n\/\/ HANDLE_VOICE_OUTPUT=8\r\n\r\n\/\/ HANDLE_DEVICE_NAME_OFFSET=31\r\n\/\/ HANDLE_VOICE_CONTROL_OFFSET=128\r\n\/\/ HANDLE_VOICE_OUTPUT_OFFSET=177\r\n", diff --git a/examples/voice_remote_ctrl/voice_remote_ctrl.uvproj b/examples/voice_remote_ctrl/voice_remote_ctrl.uvproj index 1e52bcc92..70dfadc6a 100644 --- a/examples/voice_remote_ctrl/voice_remote_ctrl.uvproj +++ b/examples/voice_remote_ctrl/voice_remote_ctrl.uvproj @@ -319,8 +319,8 @@ 0 - 536892496 - 11184 + 536892504 + 11176 0 diff --git a/examples/voice_remote_ctrl/voice_remote_ctrl.uvprojx b/examples/voice_remote_ctrl/voice_remote_ctrl.uvprojx index aceb38fd8..905b57037 100644 --- a/examples/voice_remote_ctrl/voice_remote_ctrl.uvprojx +++ b/examples/voice_remote_ctrl/voice_remote_ctrl.uvprojx @@ -298,8 +298,8 @@ 0 - 536892496 - 11184 + 536892504 + 11176 0 diff --git a/src/StartUP/ing918/ingsoc.h b/src/StartUP/ing918/ingsoc.h index d8d804ba1..51270bcf9 100644 --- a/src/StartUP/ing918/ingsoc.h +++ b/src/StartUP/ing918/ingsoc.h @@ -269,7 +269,7 @@ typedef struct{ #define OSC_CLK_FREQ 16000000UL // 16MHz, Apb Clock #endif -#define RTC_CLK_FREQ 32768 +#define RTC_CLK_FREQ 50000 #ifdef __cplusplus } diff --git a/src/Tools/str_util.c b/src/Tools/str_util.c index ba6815008..b66bf97b7 100644 --- a/src/Tools/str_util.c +++ b/src/Tools/str_util.c @@ -4,6 +4,10 @@ #include "str_util.h" #include "ingsoc.h" +#ifndef EFFECTIVE_RTC_CLK_FREQ +#define EFFECTIVE_RTC_CLK_FREQ RTC_CLK_FREQ +#endif + static char nibble_to_char(int v) { return v <= 9 ? v - 0 + '0' : v - 10 + 'A'; @@ -80,10 +84,10 @@ char *base64_encode(const uint8_t *data, int data_len, const char *fmt_rtc_timestamp(char *str, uint32_t rtc_value) { uint32_t t = rtc_value; - uint32_t sec = t / RTC_CLK_FREQ; - uint32_t sub_sec = t - sec * RTC_CLK_FREQ; - uint32_t msec = 1000 * sub_sec / RTC_CLK_FREQ; - uint32_t usec = 1000 * (1000 * sub_sec - msec * RTC_CLK_FREQ) / RTC_CLK_FREQ; + uint32_t sec = t / EFFECTIVE_RTC_CLK_FREQ; + uint32_t sub_sec = t - sec * EFFECTIVE_RTC_CLK_FREQ; + uint32_t msec = 1000 * sub_sec / EFFECTIVE_RTC_CLK_FREQ; + uint32_t usec = 1000 * (1000 * sub_sec - msec * EFFECTIVE_RTC_CLK_FREQ) / EFFECTIVE_RTC_CLK_FREQ; uint32_t min = sec / 60; uint32_t hour = min / 60; sec -= min * 60; @@ -110,10 +114,10 @@ const char *fmt_us_timestamp(char *str, uint64_t us_time) const char *fmt_rtc_timestamp_full(char *str, uint64_t rtc_value) { uint64_t t = rtc_value; - uint64_t sec = t / RTC_CLK_FREQ; - uint32_t sub_sec = t % RTC_CLK_FREQ; - uint32_t msec = 1000 * sub_sec / RTC_CLK_FREQ; - uint32_t usec = 1000 * (1000 * sub_sec - msec * RTC_CLK_FREQ) / RTC_CLK_FREQ; + uint64_t sec = t / EFFECTIVE_RTC_CLK_FREQ; + uint32_t sub_sec = t % EFFECTIVE_RTC_CLK_FREQ; + uint32_t msec = 1000 * sub_sec / EFFECTIVE_RTC_CLK_FREQ; + uint32_t usec = 1000 * (1000 * sub_sec - msec * EFFECTIVE_RTC_CLK_FREQ) / EFFECTIVE_RTC_CLK_FREQ; uint64_t min = sec / 60; uint64_t hour = min / 60; sec -= min * 60; diff --git a/src/Tools/uart_driver.c b/src/Tools/uart_driver.c index 305292e42..5fb16c825 100644 --- a/src/Tools/uart_driver.c +++ b/src/Tools/uart_driver.c @@ -110,13 +110,11 @@ int uart_add_buffer(uart_driver_ctx_t *ctx, const void *buffer, int size, int st int driver_get_free_size(void) { - uint16_t next; int16_t free_size; uint8_t use_mutex = !IS_IN_INTERRUPT(); if (use_mutex) GEN_OS->enter_critical(); - next = ctx.write_next; free_size = ctx.read_next - ctx.write_next; if (free_size <= 0) free_size += UART_BUFF_SIZE; if (free_size > 0) free_size--; From adbdb4f6829443e8ec590f44de8ab8bc12f3759a Mon Sep 17 00:00:00 2001 From: zjli2019 Date: Sat, 18 Nov 2023 15:02:40 +0800 Subject: [PATCH 06/13] prepare 8.4.6: rebuilt all bundles. --- bundles/exp/ING9168xx/apis.json | 270 +++++++++--------- bundles/exp/ING9168xx/meta.json | 2 +- bundles/exp/ING9168xx/platform.bin | Bin 173892 -> 173864 bytes bundles/exp/ING9187xx/apis.json | 270 +++++++++--------- bundles/exp/ING9187xx/meta.json | 2 +- bundles/exp/ING9187xx/platform.bin | Bin 152028 -> 151996 bytes bundles/exp/ING9188xx/apis.json | 270 +++++++++--------- bundles/exp/ING9188xx/meta.json | 2 +- bundles/exp/ING9188xx/platform.bin | Bin 158940 -> 158908 bytes bundles/extension/ING9168xx/apis.json | 264 ++++++++--------- bundles/extension/ING9168xx/meta.json | 2 +- bundles/extension/ING9168xx/platform.bin | Bin 161340 -> 161312 bytes bundles/extension/ING9187xx/apis.json | 264 ++++++++--------- bundles/extension/ING9187xx/meta.json | 2 +- bundles/extension/ING9187xx/platform.bin | Bin 139252 -> 139224 bytes bundles/extension/ING9188xx/apis.json | 264 ++++++++--------- bundles/extension/ING9188xx/meta.json | 2 +- bundles/extension/ING9188xx/platform.bin | Bin 146528 -> 146500 bytes bundles/mass_conn/ING9168xx/apis.json | 264 ++++++++--------- bundles/mass_conn/ING9168xx/meta.json | 2 +- bundles/mass_conn/ING9168xx/platform.bin | Bin 155352 -> 155320 bytes bundles/mass_conn/ING9187xx/apis.json | 264 ++++++++--------- bundles/mass_conn/ING9187xx/meta.json | 2 +- bundles/mass_conn/ING9187xx/platform.bin | Bin 135900 -> 135872 bytes bundles/mass_conn/ING9188xx/apis.json | 264 ++++++++--------- bundles/mass_conn/ING9188xx/meta.json | 2 +- bundles/mass_conn/ING9188xx/platform.bin | Bin 141948 -> 141920 bytes bundles/mini/ING9168xx/apis.json | 250 ++++++++-------- bundles/mini/ING9168xx/meta.json | 2 +- bundles/mini/ING9168xx/platform.bin | Bin 155824 -> 155804 bytes bundles/mini/ING9187xx/apis.json | 264 ++++++++--------- bundles/mini/ING9187xx/meta.json | 2 +- bundles/mini/ING9187xx/platform.bin | Bin 135356 -> 135328 bytes bundles/mini/ING9188xx/apis.json | 264 ++++++++--------- bundles/mini/ING9188xx/meta.json | 2 +- bundles/mini/ING9188xx/platform.bin | Bin 141388 -> 141360 bytes bundles/noos_exp/ING9168xx/apis.json | 110 +++---- bundles/noos_exp/ING9168xx/meta.json | 2 +- bundles/noos_exp/ING9168xx/platform.bin | Bin 163016 -> 162988 bytes bundles/noos_exp/ING9187xx/apis.json | 110 +++---- bundles/noos_exp/ING9187xx/meta.json | 2 +- bundles/noos_exp/ING9187xx/platform.bin | Bin 141236 -> 141212 bytes bundles/noos_exp/ING9188xx/apis.json | 110 +++---- bundles/noos_exp/ING9188xx/meta.json | 2 +- bundles/noos_exp/ING9188xx/platform.bin | Bin 148148 -> 148124 bytes bundles/noos_extension/ING9168xx/apis.json | 104 +++---- bundles/noos_extension/ING9168xx/meta.json | 2 +- bundles/noos_extension/ING9168xx/platform.bin | Bin 150464 -> 150436 bytes bundles/noos_extension/ING9187xx/apis.json | 104 +++---- bundles/noos_extension/ING9187xx/meta.json | 2 +- bundles/noos_extension/ING9187xx/platform.bin | Bin 128472 -> 128444 bytes bundles/noos_extension/ING9188xx/apis.json | 104 +++---- bundles/noos_extension/ING9188xx/meta.json | 2 +- bundles/noos_extension/ING9188xx/platform.bin | Bin 135748 -> 135720 bytes bundles/noos_mass_conn/ING9168xx/apis.json | 104 +++---- bundles/noos_mass_conn/ING9168xx/meta.json | 2 +- bundles/noos_mass_conn/ING9168xx/platform.bin | Bin 144472 -> 144440 bytes bundles/noos_mass_conn/ING9187xx/apis.json | 104 +++---- bundles/noos_mass_conn/ING9187xx/meta.json | 2 +- bundles/noos_mass_conn/ING9187xx/platform.bin | Bin 125120 -> 125092 bytes bundles/noos_mass_conn/ING9188xx/apis.json | 104 +++---- bundles/noos_mass_conn/ING9188xx/meta.json | 2 +- bundles/noos_mass_conn/ING9188xx/platform.bin | Bin 131168 -> 131140 bytes bundles/noos_mini/ING9168xx/apis.json | 104 +++---- bundles/noos_mini/ING9168xx/meta.json | 2 +- bundles/noos_mini/ING9168xx/platform.bin | Bin 144932 -> 144904 bytes bundles/noos_mini/ING9187xx/apis.json | 104 +++---- bundles/noos_mini/ING9187xx/meta.json | 2 +- bundles/noos_mini/ING9187xx/platform.bin | Bin 124576 -> 124548 bytes bundles/noos_mini/ING9188xx/apis.json | 104 +++---- bundles/noos_mini/ING9188xx/meta.json | 2 +- bundles/noos_mini/ING9188xx/platform.bin | Bin 130608 -> 130580 bytes bundles/noos_typical/ING9168xx/apis.json | 104 +++---- bundles/noos_typical/ING9168xx/meta.json | 2 +- bundles/noos_typical/ING9168xx/platform.bin | Bin 144468 -> 144440 bytes bundles/noos_typical/ING9187xx/apis.json | 104 +++---- bundles/noos_typical/ING9187xx/meta.json | 2 +- bundles/noos_typical/ING9187xx/platform.bin | Bin 125044 -> 125016 bytes bundles/noos_typical/ING9188xx/apis.json | 104 +++---- bundles/noos_typical/ING9188xx/meta.json | 4 +- bundles/noos_typical/ING9188xx/platform.bin | Bin 131092 -> 131064 bytes bundles/typical/ING9168xx/apis.json | 264 ++++++++--------- bundles/typical/ING9168xx/meta.json | 2 +- bundles/typical/ING9168xx/platform.bin | Bin 155348 -> 155316 bytes bundles/typical/ING9187xx/apis.json | 264 ++++++++--------- bundles/typical/ING9187xx/meta.json | 2 +- bundles/typical/ING9187xx/platform.bin | Bin 135828 -> 135796 bytes bundles/typical/ING9188xx/apis.json | 264 ++++++++--------- bundles/typical/ING9188xx/meta.json | 2 +- bundles/typical/ING9188xx/platform.bin | Bin 141872 -> 141844 bytes examples-gcc/central_fota/central_fota.ingw | 2 +- examples-gcc/get_started/get_started.ingw | 2 +- .../peripheral_console_liteos.ingw | 2 +- .../peripheral_ibeacon.ingw | 2 +- .../smart_home_hub/smart_home_hub.ingw | 2 +- .../peripheral_ibeacon/generic_cortex.icf | 6 +- .../peripheral_ibeacon.ingw | 2 +- .../peripheral_ibeacon.ingw | 2 +- .../peripheral_ibeacon.ingw | 2 +- examples/anti_lost_mas/anti_lost_mas.ingw | 2 +- examples/anti_lost_sla/anti_lost_sla.ingw | 2 +- examples/ble_rpc/ble_rpc.ingw | 2 +- examples/bqb_rf/bqb_rf.ingw | 2 +- examples/central_cte/central_cte.ingw | 2 +- examples/central_fota/central_fota.ingw | 2 +- .../central_mass_conn/central_mass_conn.ingw | 2 +- .../central_throughput.ingw | 2 +- examples/coremark/coremark.ingw | 2 +- examples/data_logger/data_logger.ingw | 2 +- examples/direct_conn/direct_conn.ingw | 2 +- .../ext_ackable_packet.ingw | 2 +- examples/ext_raw_packet/ext_raw_packet.ingw | 2 +- .../ext_raw_packet_noos.ingw | 2 +- examples/gatt_relay/gatt_relay.ingw | 2 +- examples/get_started/get_started.ingw | 2 +- examples/hid_keyboard/hid_keyboard.ingw | 2 +- examples/hid_mouse/hid_mouse.ingw | 2 +- examples/ibeacon_scanner/ibeacon_scanner.ingw | 2 +- examples/io_over_ble_mas/io_over_ble_mas.ingw | 2 +- examples/io_over_ble_sla/io_over_ble_sla.ingw | 2 +- examples/l2cap_psm/l2cap_psm.ingw | 2 +- examples/littleVGL/littleVGL.ingw | 2 +- examples/llsync_light/llsync_light.ingw | 2 +- examples/mesh-light/mesh-light.ingw | 2 +- examples/pawr/pawr.ingw | 2 +- .../periodic_advertiser.ingw | 2 +- .../periodic_scanner/periodic_scanner.ingw | 2 +- examples/peripheral_ancs/peripheral_ancs.ingw | 2 +- examples/peripheral_band/peripheral_band.ingw | 2 +- .../peripheral_battery.ingw | 2 +- .../peripheral_console.ingw | 2 +- .../peripheral_console_freertos.ingw | 2 +- .../peripheral_console_realtime.ingw | 2 +- .../peripheral_console_rt-thread.ingw | 2 +- examples/peripheral_etag/peripheral_etag.ingw | 2 +- .../peripheral_ibeacon.ingw | 2 +- examples/peripheral_irc/peripheral_irc.ingw | 2 +- examples/peripheral_led/peripheral_led.ingw | 2 +- .../peripheral_mass_conn.ingw | 2 +- .../peripheral_pedometer.ingw | 2 +- .../peripheral_piano/peripheral_piano.ingw | 2 +- .../peripheral_throughput.ingw | 2 +- examples/reset_handler/reset_handler.ingw | 2 +- examples/secondary_fota/secondary_fota.ingw | 2 +- examples/smart_meter/smart_meter.ingw | 2 +- examples/thermo_ota/thermo_ota.ingw | 2 +- examples/uart_console/uart_console.ingw | 2 +- .../voice_remote_ctrl/voice_remote_ctrl.ingw | 2 +- src/Tools/power_ctrl.lib | Bin 5644 -> 8004 bytes 149 files changed, 2862 insertions(+), 2862 deletions(-) diff --git a/bundles/exp/ING9168xx/apis.json b/bundles/exp/ING9168xx/apis.json index 5c7d3152e..008a94081 100644 --- a/bundles/exp/ING9168xx/apis.json +++ b/bundles/exp/ING9168xx/apis.json @@ -261,139 +261,139 @@ "platform_reset": "0x020227e5", "platform_rt_rc_auto_tune": "0x020227f9", "platform_rt_rc_auto_tune2": "0x02022801", - "platform_rt_rc_tune": "0x02022885", - "platform_set_abs_timer": "0x020228a1", - "platform_set_evt_callback": "0x020228a5", - "platform_set_evt_callback_table": "0x020228b9", - "platform_set_irq_callback": "0x020228c5", - "platform_set_irq_callback_table": "0x020228e1", - "platform_set_rf_clk_source": "0x020228ed", - "platform_set_rf_init_data": "0x020228f9", - "platform_set_rf_power_mapping": "0x02022905", - "platform_set_timer": "0x02022911", - "platform_shutdown": "0x02022915", - "platform_switch_app": "0x02022919", - "platform_trace_raw": "0x02022931", - "platform_write_persistent_reg": "0x02022949", - "printf_hexdump": "0x02022b01", - "pvPortMalloc": "0x020235d9", - "pvTaskIncrementMutexHeldCount": "0x020236c1", - "pvTimerGetTimerID": "0x020236d9", - "pxPortInitialiseStack": "0x02023705", - "reverse_128": "0x020238ed", - "reverse_24": "0x020238f3", - "reverse_256": "0x020238f9", - "reverse_48": "0x020238ff", - "reverse_56": "0x02023905", - "reverse_64": "0x0202390b", - "reverse_bd_addr": "0x02023911", - "reverse_bytes": "0x02023917", - "sm_add_event_handler": "0x02023c95", - "sm_address_resolution_lookup": "0x02023dd9", - "sm_authenticated": "0x02024205", - "sm_authorization_decline": "0x02024213", - "sm_authorization_grant": "0x02024233", - "sm_authorization_state": "0x02024253", - "sm_bonding_decline": "0x0202426d", - "sm_config": "0x020246e9", - "sm_config_conn": "0x02024701", - "sm_encryption_key_size": "0x020248b7", - "sm_just_works_confirm": "0x02025609", - "sm_le_device_key": "0x020259e9", - "sm_numeric_comparison_confirm": "0x02025b3b", - "sm_passkey_input": "0x02025b79", - "sm_private_random_address_generation_get": "0x0202617d", - "sm_private_random_address_generation_get_mode": "0x02026185", - "sm_private_random_address_generation_set_mode": "0x02026191", - "sm_private_random_address_generation_set_update_period": "0x020261b9", - "sm_register_external_ltk_callback": "0x02026445", - "sm_register_oob_data_callback": "0x02026451", - "sm_register_sc_oob_data_callback": "0x0202645d", - "sm_request_pairing": "0x02026469", - "sm_sc_generate_oob_data": "0x020270a5", - "sm_send_security_request": "0x020271d5", - "sm_set_accepted_stk_generation_methods": "0x020271fd", - "sm_set_authentication_requirements": "0x02027209", - "sm_set_encryption_key_size_range": "0x02027215", - "sscanf_bd_addr": "0x02027639", - "sysSetPublicDeviceAddr": "0x02027b65", - "uuid128_to_str": "0x020283e5", - "uuid_add_bluetooth_prefix": "0x0202843d", - "uuid_has_bluetooth_prefix": "0x0202845d", - "uxListRemove": "0x02028479", - "uxQueueMessagesWaiting": "0x020284a1", - "uxQueueMessagesWaitingFromISR": "0x020284c9", - "uxQueueSpacesAvailable": "0x020284e5", - "uxTaskGetStackHighWaterMark": "0x02028511", - "uxTaskPriorityGet": "0x02028531", - "uxTaskPriorityGetFromISR": "0x0202854d", - "vListInitialise": "0x0202860b", - "vListInitialiseItem": "0x02028621", - "vListInsert": "0x02028627", - "vListInsertEnd": "0x02028657", - "vPortEndScheduler": "0x02028671", - "vPortEnterCritical": "0x0202869d", - "vPortExitCritical": "0x020286e1", - "vPortFree": "0x02028715", - "vPortSuppressTicksAndSleep": "0x020287b9", - "vPortValidateInterruptPriority": "0x020288e1", - "vQueueDelete": "0x0202893d", - "vQueueWaitForMessageRestricted": "0x02028969", - "vTaskDelay": "0x020289ad", - "vTaskInternalSetTimeOutState": "0x020289f9", - "vTaskMissedYield": "0x02028a09", - "vTaskPlaceOnEventList": "0x02028a15", - "vTaskPlaceOnEventListRestricted": "0x02028a4d", - "vTaskPriorityDisinheritAfterTimeout": "0x02028a8d", - "vTaskPrioritySet": "0x02028b39", - "vTaskResume": "0x02028c01", - "vTaskStartScheduler": "0x02028c85", - "vTaskStepTick": "0x02028d15", - "vTaskSuspend": "0x02028d45", - "vTaskSuspendAll": "0x02028e01", - "vTaskSwitchContext": "0x02028e11", - "xPortStartScheduler": "0x02028ec1", - "xQueueAddToSet": "0x02028fc5", - "xQueueCreateCountingSemaphore": "0x02028fe9", - "xQueueCreateCountingSemaphoreStatic": "0x02029025", - "xQueueCreateMutex": "0x02029069", - "xQueueCreateMutexStatic": "0x0202907f", - "xQueueCreateSet": "0x02029099", - "xQueueGenericCreate": "0x020290a1", - "xQueueGenericCreateStatic": "0x020290ed", - "xQueueGenericReset": "0x02029155", - "xQueueGenericSend": "0x020291e1", - "xQueueGenericSendFromISR": "0x0202934d", - "xQueueGiveFromISR": "0x0202940d", - "xQueueGiveMutexRecursive": "0x020294b1", - "xQueueIsQueueEmptyFromISR": "0x020294f1", - "xQueueIsQueueFullFromISR": "0x02029515", - "xQueuePeek": "0x0202953d", - "xQueuePeekFromISR": "0x02029665", - "xQueueReceive": "0x020296d1", - "xQueueReceiveFromISR": "0x020297fd", - "xQueueRemoveFromSet": "0x02029891", - "xQueueSelectFromSet": "0x020298b3", - "xQueueSelectFromSetFromISR": "0x020298c5", - "xQueueSemaphoreTake": "0x020298d9", - "xQueueTakeMutexRecursive": "0x02029a45", - "xTaskCheckForTimeOut": "0x02029a89", - "xTaskCreate": "0x02029af9", - "xTaskCreateStatic": "0x02029b55", - "xTaskGetCurrentTaskHandle": "0x02029bc5", - "xTaskGetSchedulerState": "0x02029bd1", - "xTaskGetTickCount": "0x02029bed", - "xTaskGetTickCountFromISR": "0x02029bf9", - "xTaskIncrementTick": "0x02029c09", - "xTaskPriorityDisinherit": "0x02029cd5", - "xTaskPriorityInherit": "0x02029d69", - "xTaskRemoveFromEventList": "0x02029dfd", - "xTaskResumeAll": "0x02029e7d", - "xTaskResumeFromISR": "0x02029f45", - "xTimerCreate": "0x02029fd1", - "xTimerCreateStatic": "0x0202a005", - "xTimerCreateTimerTask": "0x0202a03d", - "xTimerGenericCommand": "0x0202a0a9", - "xTimerGetExpiryTime": "0x0202a119", - "xTimerGetTimerDaemonTaskHandle": "0x0202a139" + "platform_rt_rc_tune": "0x02022869", + "platform_set_abs_timer": "0x02022885", + "platform_set_evt_callback": "0x02022889", + "platform_set_evt_callback_table": "0x0202289d", + "platform_set_irq_callback": "0x020228a9", + "platform_set_irq_callback_table": "0x020228c5", + "platform_set_rf_clk_source": "0x020228d1", + "platform_set_rf_init_data": "0x020228dd", + "platform_set_rf_power_mapping": "0x020228e9", + "platform_set_timer": "0x020228f5", + "platform_shutdown": "0x020228f9", + "platform_switch_app": "0x020228fd", + "platform_trace_raw": "0x02022915", + "platform_write_persistent_reg": "0x0202292d", + "printf_hexdump": "0x02022ae5", + "pvPortMalloc": "0x020235bd", + "pvTaskIncrementMutexHeldCount": "0x020236a5", + "pvTimerGetTimerID": "0x020236bd", + "pxPortInitialiseStack": "0x020236e9", + "reverse_128": "0x020238d1", + "reverse_24": "0x020238d7", + "reverse_256": "0x020238dd", + "reverse_48": "0x020238e3", + "reverse_56": "0x020238e9", + "reverse_64": "0x020238ef", + "reverse_bd_addr": "0x020238f5", + "reverse_bytes": "0x020238fb", + "sm_add_event_handler": "0x02023c79", + "sm_address_resolution_lookup": "0x02023dbd", + "sm_authenticated": "0x020241e9", + "sm_authorization_decline": "0x020241f7", + "sm_authorization_grant": "0x02024217", + "sm_authorization_state": "0x02024237", + "sm_bonding_decline": "0x02024251", + "sm_config": "0x020246cd", + "sm_config_conn": "0x020246e5", + "sm_encryption_key_size": "0x0202489b", + "sm_just_works_confirm": "0x020255ed", + "sm_le_device_key": "0x020259cd", + "sm_numeric_comparison_confirm": "0x02025b1f", + "sm_passkey_input": "0x02025b5d", + "sm_private_random_address_generation_get": "0x02026161", + "sm_private_random_address_generation_get_mode": "0x02026169", + "sm_private_random_address_generation_set_mode": "0x02026175", + "sm_private_random_address_generation_set_update_period": "0x0202619d", + "sm_register_external_ltk_callback": "0x02026429", + "sm_register_oob_data_callback": "0x02026435", + "sm_register_sc_oob_data_callback": "0x02026441", + "sm_request_pairing": "0x0202644d", + "sm_sc_generate_oob_data": "0x02027089", + "sm_send_security_request": "0x020271b9", + "sm_set_accepted_stk_generation_methods": "0x020271e1", + "sm_set_authentication_requirements": "0x020271ed", + "sm_set_encryption_key_size_range": "0x020271f9", + "sscanf_bd_addr": "0x0202761d", + "sysSetPublicDeviceAddr": "0x02027b49", + "uuid128_to_str": "0x020283c9", + "uuid_add_bluetooth_prefix": "0x02028421", + "uuid_has_bluetooth_prefix": "0x02028441", + "uxListRemove": "0x0202845d", + "uxQueueMessagesWaiting": "0x02028485", + "uxQueueMessagesWaitingFromISR": "0x020284ad", + "uxQueueSpacesAvailable": "0x020284c9", + "uxTaskGetStackHighWaterMark": "0x020284f5", + "uxTaskPriorityGet": "0x02028515", + "uxTaskPriorityGetFromISR": "0x02028531", + "vListInitialise": "0x020285ef", + "vListInitialiseItem": "0x02028605", + "vListInsert": "0x0202860b", + "vListInsertEnd": "0x0202863b", + "vPortEndScheduler": "0x02028655", + "vPortEnterCritical": "0x02028681", + "vPortExitCritical": "0x020286c5", + "vPortFree": "0x020286f9", + "vPortSuppressTicksAndSleep": "0x0202879d", + "vPortValidateInterruptPriority": "0x020288c5", + "vQueueDelete": "0x02028921", + "vQueueWaitForMessageRestricted": "0x0202894d", + "vTaskDelay": "0x02028991", + "vTaskInternalSetTimeOutState": "0x020289dd", + "vTaskMissedYield": "0x020289ed", + "vTaskPlaceOnEventList": "0x020289f9", + "vTaskPlaceOnEventListRestricted": "0x02028a31", + "vTaskPriorityDisinheritAfterTimeout": "0x02028a71", + "vTaskPrioritySet": "0x02028b1d", + "vTaskResume": "0x02028be5", + "vTaskStartScheduler": "0x02028c69", + "vTaskStepTick": "0x02028cf9", + "vTaskSuspend": "0x02028d29", + "vTaskSuspendAll": "0x02028de5", + "vTaskSwitchContext": "0x02028df5", + "xPortStartScheduler": "0x02028ea5", + "xQueueAddToSet": "0x02028fa9", + "xQueueCreateCountingSemaphore": "0x02028fcd", + "xQueueCreateCountingSemaphoreStatic": "0x02029009", + "xQueueCreateMutex": "0x0202904d", + "xQueueCreateMutexStatic": "0x02029063", + "xQueueCreateSet": "0x0202907d", + "xQueueGenericCreate": "0x02029085", + "xQueueGenericCreateStatic": "0x020290d1", + "xQueueGenericReset": "0x02029139", + "xQueueGenericSend": "0x020291c5", + "xQueueGenericSendFromISR": "0x02029331", + "xQueueGiveFromISR": "0x020293f1", + "xQueueGiveMutexRecursive": "0x02029495", + "xQueueIsQueueEmptyFromISR": "0x020294d5", + "xQueueIsQueueFullFromISR": "0x020294f9", + "xQueuePeek": "0x02029521", + "xQueuePeekFromISR": "0x02029649", + "xQueueReceive": "0x020296b5", + "xQueueReceiveFromISR": "0x020297e1", + "xQueueRemoveFromSet": "0x02029875", + "xQueueSelectFromSet": "0x02029897", + "xQueueSelectFromSetFromISR": "0x020298a9", + "xQueueSemaphoreTake": "0x020298bd", + "xQueueTakeMutexRecursive": "0x02029a29", + "xTaskCheckForTimeOut": "0x02029a6d", + "xTaskCreate": "0x02029add", + "xTaskCreateStatic": "0x02029b39", + "xTaskGetCurrentTaskHandle": "0x02029ba9", + "xTaskGetSchedulerState": "0x02029bb5", + "xTaskGetTickCount": "0x02029bd1", + "xTaskGetTickCountFromISR": "0x02029bdd", + "xTaskIncrementTick": "0x02029bed", + "xTaskPriorityDisinherit": "0x02029cb9", + "xTaskPriorityInherit": "0x02029d4d", + "xTaskRemoveFromEventList": "0x02029de1", + "xTaskResumeAll": "0x02029e61", + "xTaskResumeFromISR": "0x02029f29", + "xTimerCreate": "0x02029fb5", + "xTimerCreateStatic": "0x02029fe9", + "xTimerCreateTimerTask": "0x0202a021", + "xTimerGenericCommand": "0x0202a08d", + "xTimerGetExpiryTime": "0x0202a0fd", + "xTimerGetTimerDaemonTaskHandle": "0x0202a11d" } \ No newline at end of file diff --git a/bundles/exp/ING9168xx/meta.json b/bundles/exp/ING9168xx/meta.json index 63f64defb..94a29412c 100644 --- a/bundles/exp/ING9168xx/meta.json +++ b/bundles/exp/ING9168xx/meta.json @@ -8,7 +8,7 @@ }, "rom": { "base": 33562624, - "size": 173892 + "size": 173864 }, "version": [ 2, diff --git a/bundles/exp/ING9168xx/platform.bin b/bundles/exp/ING9168xx/platform.bin index cd7cdf4def59b28106cf70387b4ffcbfe6a5cc11..e4b8de46858650cef360ba4163581c02f08ce988 100644 GIT binary patch delta 10361 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 delta 10175 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 B)Rq7M diff --git a/bundles/exp/ING9187xx/apis.json b/bundles/exp/ING9187xx/apis.json index 076bcc32a..d4978b88d 100644 --- a/bundles/exp/ING9187xx/apis.json +++ b/bundles/exp/ING9187xx/apis.json @@ -232,139 +232,139 @@ "platform_reset": "0x00020229", "platform_rt_rc_auto_tune": "0x0002024d", "platform_rt_rc_auto_tune2": "0x00020255", - "platform_rt_rc_tune": "0x000202f9", - "platform_set_abs_timer": "0x0002030d", - "platform_set_evt_callback": "0x00020311", - "platform_set_evt_callback_table": "0x00020325", - "platform_set_irq_callback": "0x00020331", - "platform_set_irq_callback_table": "0x0002034d", - "platform_set_rf_clk_source": "0x00020359", - "platform_set_rf_init_data": "0x00020365", - "platform_set_rf_power_mapping": "0x00020371", - "platform_set_timer": "0x0002037d", - "platform_shutdown": "0x00020381", - "platform_switch_app": "0x00020385", - "platform_trace_raw": "0x000203b1", - "platform_write_persistent_reg": "0x000203c9", - "printf_hexdump": "0x0002057d", - "pvPortMalloc": "0x00021071", - "pvTaskIncrementMutexHeldCount": "0x00021159", - "pvTimerGetTimerID": "0x00021171", - "pxPortInitialiseStack": "0x0002119d", - "reverse_128": "0x00021345", - "reverse_24": "0x0002134b", - "reverse_256": "0x00021351", - "reverse_48": "0x00021357", - "reverse_56": "0x0002135d", - "reverse_64": "0x00021363", - "reverse_bd_addr": "0x00021369", - "reverse_bytes": "0x0002136f", - "sm_add_event_handler": "0x0002155d", - "sm_address_resolution_lookup": "0x000216a1", - "sm_authenticated": "0x00021acd", - "sm_authorization_decline": "0x00021adb", - "sm_authorization_grant": "0x00021afb", - "sm_authorization_state": "0x00021b1b", - "sm_bonding_decline": "0x00021b35", - "sm_config": "0x00021fb5", - "sm_config_conn": "0x00021fcd", - "sm_encryption_key_size": "0x00022183", - "sm_just_works_confirm": "0x00022ed1", - "sm_le_device_key": "0x000232b1", - "sm_numeric_comparison_confirm": "0x00023403", - "sm_passkey_input": "0x00023441", - "sm_private_random_address_generation_get": "0x00023a41", - "sm_private_random_address_generation_get_mode": "0x00023a49", - "sm_private_random_address_generation_set_mode": "0x00023a55", - "sm_private_random_address_generation_set_update_period": "0x00023a7d", - "sm_register_external_ltk_callback": "0x00023d09", - "sm_register_oob_data_callback": "0x00023d15", - "sm_register_sc_oob_data_callback": "0x00023d21", - "sm_request_pairing": "0x00023d2d", - "sm_sc_generate_oob_data": "0x00024965", - "sm_send_security_request": "0x00024a95", - "sm_set_accepted_stk_generation_methods": "0x00024abd", - "sm_set_authentication_requirements": "0x00024ac9", - "sm_set_encryption_key_size_range": "0x00024ad5", - "sscanf_bd_addr": "0x00024ef1", - "sysSetPublicDeviceAddr": "0x000252a5", - "uuid128_to_str": "0x000258e1", - "uuid_add_bluetooth_prefix": "0x00025939", - "uuid_has_bluetooth_prefix": "0x00025959", - "uxListRemove": "0x00025975", - "uxQueueMessagesWaiting": "0x0002599d", - "uxQueueMessagesWaitingFromISR": "0x000259c5", - "uxQueueSpacesAvailable": "0x000259e1", - "uxTaskGetStackHighWaterMark": "0x00025a0d", - "uxTaskPriorityGet": "0x00025a2d", - "uxTaskPriorityGetFromISR": "0x00025a49", - "vListInitialise": "0x00025b03", - "vListInitialiseItem": "0x00025b19", - "vListInsert": "0x00025b1f", - "vListInsertEnd": "0x00025b4f", - "vPortEndScheduler": "0x00025b69", - "vPortEnterCritical": "0x00025b95", - "vPortExitCritical": "0x00025bd9", - "vPortFree": "0x00025c0d", - "vPortSuppressTicksAndSleep": "0x00025ca1", - "vPortValidateInterruptPriority": "0x00025dc9", - "vQueueDelete": "0x00025e25", - "vQueueWaitForMessageRestricted": "0x00025e51", - "vTaskDelay": "0x00025e99", - "vTaskInternalSetTimeOutState": "0x00025ee5", - "vTaskMissedYield": "0x00025ef5", - "vTaskPlaceOnEventList": "0x00025f01", - "vTaskPlaceOnEventListRestricted": "0x00025f39", - "vTaskPriorityDisinheritAfterTimeout": "0x00025f79", - "vTaskPrioritySet": "0x00026025", - "vTaskResume": "0x000260ed", - "vTaskStartScheduler": "0x00026171", - "vTaskStepTick": "0x00026201", - "vTaskSuspend": "0x00026231", - "vTaskSuspendAll": "0x000262ed", - "vTaskSwitchContext": "0x000262fd", - "xPortStartScheduler": "0x000263ad", - "xQueueAddToSet": "0x00026475", - "xQueueCreateCountingSemaphore": "0x00026499", - "xQueueCreateCountingSemaphoreStatic": "0x000264d5", - "xQueueCreateMutex": "0x00026519", - "xQueueCreateMutexStatic": "0x0002652f", - "xQueueCreateSet": "0x00026549", - "xQueueGenericCreate": "0x00026551", - "xQueueGenericCreateStatic": "0x0002659d", - "xQueueGenericReset": "0x00026605", - "xQueueGenericSend": "0x00026691", - "xQueueGenericSendFromISR": "0x000267fd", - "xQueueGiveFromISR": "0x000268bd", - "xQueueGiveMutexRecursive": "0x00026961", - "xQueueIsQueueEmptyFromISR": "0x000269a1", - "xQueueIsQueueFullFromISR": "0x000269c5", - "xQueuePeek": "0x000269ed", - "xQueuePeekFromISR": "0x00026b15", - "xQueueReceive": "0x00026b81", - "xQueueReceiveFromISR": "0x00026cad", - "xQueueRemoveFromSet": "0x00026d41", - "xQueueSelectFromSet": "0x00026d63", - "xQueueSelectFromSetFromISR": "0x00026d75", - "xQueueSemaphoreTake": "0x00026d89", - "xQueueTakeMutexRecursive": "0x00026ef5", - "xTaskCheckForTimeOut": "0x00026f39", - "xTaskCreate": "0x00026fa9", - "xTaskCreateStatic": "0x00027005", - "xTaskGetCurrentTaskHandle": "0x00027075", - "xTaskGetSchedulerState": "0x00027081", - "xTaskGetTickCount": "0x0002709d", - "xTaskGetTickCountFromISR": "0x000270a9", - "xTaskIncrementTick": "0x000270b9", - "xTaskPriorityDisinherit": "0x00027185", - "xTaskPriorityInherit": "0x00027219", - "xTaskRemoveFromEventList": "0x000272ad", - "xTaskResumeAll": "0x0002732d", - "xTaskResumeFromISR": "0x000273f5", - "xTimerCreate": "0x00027481", - "xTimerCreateStatic": "0x000274b5", - "xTimerCreateTimerTask": "0x000274ed", - "xTimerGenericCommand": "0x00027559", - "xTimerGetExpiryTime": "0x000275c9", - "xTimerGetTimerDaemonTaskHandle": "0x000275e9" + "platform_rt_rc_tune": "0x000202dd", + "platform_set_abs_timer": "0x000202f1", + "platform_set_evt_callback": "0x000202f5", + "platform_set_evt_callback_table": "0x00020309", + "platform_set_irq_callback": "0x00020315", + "platform_set_irq_callback_table": "0x00020331", + "platform_set_rf_clk_source": "0x0002033d", + "platform_set_rf_init_data": "0x00020349", + "platform_set_rf_power_mapping": "0x00020355", + "platform_set_timer": "0x00020361", + "platform_shutdown": "0x00020365", + "platform_switch_app": "0x00020369", + "platform_trace_raw": "0x00020395", + "platform_write_persistent_reg": "0x000203ad", + "printf_hexdump": "0x00020561", + "pvPortMalloc": "0x00021055", + "pvTaskIncrementMutexHeldCount": "0x0002113d", + "pvTimerGetTimerID": "0x00021155", + "pxPortInitialiseStack": "0x00021181", + "reverse_128": "0x00021329", + "reverse_24": "0x0002132f", + "reverse_256": "0x00021335", + "reverse_48": "0x0002133b", + "reverse_56": "0x00021341", + "reverse_64": "0x00021347", + "reverse_bd_addr": "0x0002134d", + "reverse_bytes": "0x00021353", + "sm_add_event_handler": "0x00021541", + "sm_address_resolution_lookup": "0x00021685", + "sm_authenticated": "0x00021ab1", + "sm_authorization_decline": "0x00021abf", + "sm_authorization_grant": "0x00021adf", + "sm_authorization_state": "0x00021aff", + "sm_bonding_decline": "0x00021b19", + "sm_config": "0x00021f99", + "sm_config_conn": "0x00021fb1", + "sm_encryption_key_size": "0x00022167", + "sm_just_works_confirm": "0x00022eb5", + "sm_le_device_key": "0x00023295", + "sm_numeric_comparison_confirm": "0x000233e7", + "sm_passkey_input": "0x00023425", + "sm_private_random_address_generation_get": "0x00023a25", + "sm_private_random_address_generation_get_mode": "0x00023a2d", + "sm_private_random_address_generation_set_mode": "0x00023a39", + "sm_private_random_address_generation_set_update_period": "0x00023a61", + "sm_register_external_ltk_callback": "0x00023ced", + "sm_register_oob_data_callback": "0x00023cf9", + "sm_register_sc_oob_data_callback": "0x00023d05", + "sm_request_pairing": "0x00023d11", + "sm_sc_generate_oob_data": "0x00024949", + "sm_send_security_request": "0x00024a79", + "sm_set_accepted_stk_generation_methods": "0x00024aa1", + "sm_set_authentication_requirements": "0x00024aad", + "sm_set_encryption_key_size_range": "0x00024ab9", + "sscanf_bd_addr": "0x00024ed5", + "sysSetPublicDeviceAddr": "0x00025289", + "uuid128_to_str": "0x000258c5", + "uuid_add_bluetooth_prefix": "0x0002591d", + "uuid_has_bluetooth_prefix": "0x0002593d", + "uxListRemove": "0x00025959", + "uxQueueMessagesWaiting": "0x00025981", + "uxQueueMessagesWaitingFromISR": "0x000259a9", + "uxQueueSpacesAvailable": "0x000259c5", + "uxTaskGetStackHighWaterMark": "0x000259f1", + "uxTaskPriorityGet": "0x00025a11", + "uxTaskPriorityGetFromISR": "0x00025a2d", + "vListInitialise": "0x00025ae7", + "vListInitialiseItem": "0x00025afd", + "vListInsert": "0x00025b03", + "vListInsertEnd": "0x00025b33", + "vPortEndScheduler": "0x00025b4d", + "vPortEnterCritical": "0x00025b79", + "vPortExitCritical": "0x00025bbd", + "vPortFree": "0x00025bf1", + "vPortSuppressTicksAndSleep": "0x00025c85", + "vPortValidateInterruptPriority": "0x00025dad", + "vQueueDelete": "0x00025e09", + "vQueueWaitForMessageRestricted": "0x00025e35", + "vTaskDelay": "0x00025e7d", + "vTaskInternalSetTimeOutState": "0x00025ec9", + "vTaskMissedYield": "0x00025ed9", + "vTaskPlaceOnEventList": "0x00025ee5", + "vTaskPlaceOnEventListRestricted": "0x00025f1d", + "vTaskPriorityDisinheritAfterTimeout": "0x00025f5d", + "vTaskPrioritySet": "0x00026009", + "vTaskResume": "0x000260d1", + "vTaskStartScheduler": "0x00026155", + "vTaskStepTick": "0x000261e5", + "vTaskSuspend": "0x00026215", + "vTaskSuspendAll": "0x000262d1", + "vTaskSwitchContext": "0x000262e1", + "xPortStartScheduler": "0x00026391", + "xQueueAddToSet": "0x00026459", + "xQueueCreateCountingSemaphore": "0x0002647d", + "xQueueCreateCountingSemaphoreStatic": "0x000264b9", + "xQueueCreateMutex": "0x000264fd", + "xQueueCreateMutexStatic": "0x00026513", + "xQueueCreateSet": "0x0002652d", + "xQueueGenericCreate": "0x00026535", + "xQueueGenericCreateStatic": "0x00026581", + "xQueueGenericReset": "0x000265e9", + "xQueueGenericSend": "0x00026675", + "xQueueGenericSendFromISR": "0x000267e1", + "xQueueGiveFromISR": "0x000268a1", + "xQueueGiveMutexRecursive": "0x00026945", + "xQueueIsQueueEmptyFromISR": "0x00026985", + "xQueueIsQueueFullFromISR": "0x000269a9", + "xQueuePeek": "0x000269d1", + "xQueuePeekFromISR": "0x00026af9", + "xQueueReceive": "0x00026b65", + "xQueueReceiveFromISR": "0x00026c91", + "xQueueRemoveFromSet": "0x00026d25", + "xQueueSelectFromSet": "0x00026d47", + "xQueueSelectFromSetFromISR": "0x00026d59", + "xQueueSemaphoreTake": "0x00026d6d", + "xQueueTakeMutexRecursive": "0x00026ed9", + "xTaskCheckForTimeOut": "0x00026f1d", + "xTaskCreate": "0x00026f8d", + "xTaskCreateStatic": "0x00026fe9", + "xTaskGetCurrentTaskHandle": "0x00027059", + "xTaskGetSchedulerState": "0x00027065", + "xTaskGetTickCount": "0x00027081", + "xTaskGetTickCountFromISR": "0x0002708d", + "xTaskIncrementTick": "0x0002709d", + "xTaskPriorityDisinherit": "0x00027169", + "xTaskPriorityInherit": "0x000271fd", + "xTaskRemoveFromEventList": "0x00027291", + "xTaskResumeAll": "0x00027311", + "xTaskResumeFromISR": "0x000273d9", + "xTimerCreate": "0x00027465", + "xTimerCreateStatic": "0x00027499", + "xTimerCreateTimerTask": "0x000274d1", + "xTimerGenericCommand": "0x0002753d", + "xTimerGetExpiryTime": "0x000275ad", + "xTimerGetTimerDaemonTaskHandle": "0x000275cd" } \ No newline at end of file diff --git a/bundles/exp/ING9187xx/meta.json b/bundles/exp/ING9187xx/meta.json index 5d6eef7ae..2f5b38ea3 100644 --- a/bundles/exp/ING9187xx/meta.json +++ b/bundles/exp/ING9187xx/meta.json @@ -8,7 +8,7 @@ }, "rom": { "base": 16384, - "size": 152028 + "size": 151996 }, "version": [ 1, diff --git a/bundles/exp/ING9187xx/platform.bin b/bundles/exp/ING9187xx/platform.bin index 613004d46e6eb2fd59acb03c2a4f9ef3a55e85cb..0efb4887271e71a07a7e246094603521a9d15fb0 100644 GIT binary patch delta 9291 zcmY*93s_S}*7r;j5`;(sB1FL4fGCI*D848n0pt?!fmE&a(G}|}h*t2?V$mX13$9wV zS9a=lt?<`YskMTU2C6Kw)~>d?g4S)Vwt|X?j~Y;V^C00r7iqW6_uYGD&YU@C=FEA_ z%*~CD+)sVvzWXi|?`dBJUzujZEH{~c4`H%R)$)}vVwejo|8=qjjGOc-6RhTBENdC! zis8bH!4`iz6V~3GSI;m~KGi+am(=B@Vfhi$A~7(=(=uq*S%&Z>?lw^H#RK+eSVyr@ zvWL-K>;RS2;K5}K&EXiM&T^2C@JNHbrZpb320#;k-uI;TyEh4wS0m%(25HW)AnAj% zOtO&~DQiy3E@c8NKbSrmybR>;I^7PlmN~rIztJPTM{0F?g>iwF4*nD8cftF8sKkY0yWLl|x10a%bV=KYT@6v_C z5x!1$5f+$Af+GQLm}){&L3!DxsAocka2k%ad|{G@E(2NDDXrz7rZvOIfHJ@;ZOOFs zKA*#BEerUX5hXfyJz=T}2{XP%iamz(5Dwd;ncYkX=(2NI%PRhru%M7^7sF;RWZ3cb z&*<^^o!VnG&5=-Eh_YfOhAsx%-j|qSs{LV1};Vjk(8s2W}`;2Ia zqWY!j?#3+Zk5ME$!X&}87Nv{j zKANv4jr>Loa7MqcNFY+9~J?l}3^_ij!oZ&hwGaG;7 z^;+$8vm%w zAMQ7fidxH`>P+n@K79P-IB~{CY+BI@ht zc)xJ5_kg-dUAu#SlSC|s8W_g#2U*1OVZ+P(qwxWn4M?r1@!**E2*>DfRV=Sr(Rr8x zUKf`OrTosgMKY0N9^W0e9ZvJbFMI&Cd{BIVZWHo*HWOmW|0nA05A__Zui&dE`0;u1 zQdrEdi(eIf_z&#?*j|NoMGeD08znIii^?TRF6WgK0w9|YpAZl#NhK(O5`&M%YWwop;P2Pn(v$t0uy-OgcM>e=j<{XI)sub`{-w+!ZQCUih2e|};JsQE_|W4zbfFs`C2{i7F< zGRR_e@X?6|Xy(@^ros@uA#q&54m;r#<4zv0*j8?I36fq$H>MRTje#1=c3!R5`2O9Y zZfB9jT>Hu6x?RfyMKAo3Pt-4hWd0+43UX=J$BcBhqb)a?`njxjy}*U*M1eQ$@7~qz zdUaQB;3q6YHI{B0pPaNBzT#_=#(<)yB^Hu+XG#ia`J_oBeCF60%P|{TS-lFwqJs0c5Wa9yI6UG% zp0t2i3wXEGrI5+5Oid+At$g-WfBr(MsLJ-#7>MOHTr6n#sazz+utI!4;48T?m@{s2 zli^c*2l0k9Pq@v`N{fIZQ*l~8;FO;jVqiQUnqC6+{L%DW@48dNST@hSs&6$i{Vl(q z;zwo#t1q1z^(S;Y|4K%TFMlffPuO=(X>i0JW$1{*#($kL3M2B9j7DXIQ_3*~)9Vb} z5K9iSSn0#KW z2ieEg?)JT=t26un{P;&R%isdPdDazp)inF1IDoVKp4mr~Pqz?e?^eQm_6}iA@aZpq z@Mnyv^W}B|gZOLnwu98PWPYp!;!OJ%^n&_N9ZQgjsdAwio<&fM5v7a77_oAZ79;4+ zMJf1hUNjEh?u!#KQKc^~0TH#N1mAO(iVb^~hTywq=>mNFE)(#rG%myUIwKEzdH0;j zSe}(r)E6MC_-lRj(B*0Bu%h1r{KI}1-MHKjY0H*J;Ja~oU*hU3L#`Pyb-AnX9lk>3 zw{C?vys{PA--m7J8+PLgaYVKi4fw8G8HK5(W91uIUieyo*D~wiDaykeCg_YaV+LEY z`R%Vwg@5qZUK881R*BMun70dtfm?_AxEtJSvV00f%0uC0^6^QOdtHUd6;XyI(^v#~G^*V35`hh-@EUglUz%dg@$TSeT6G!-TrlPT%TEHc_-$un zV1nu7*)|W@Y^rEpQVNL;_%1Z#_e>8$Z$Uv)FrRj{%got=V-#yCQv?R&Dvow8pt#3h$cL1iS#$W}O5C zqU3u{<3=^gut}@3@HEs74#7X@MK|z+9NOjvN8mr^J#zRrf#v2o1E2#utbcbLDh6LLzy) z8^`8WSwZ!U+_$M?y+~EOF_`tVyknPh_trC5XLE};dLm{cEuH~E@EScZ19kbT**pU< z5TCRCQ9{h`5>A;VvtTE{dGnr^V4nn%%n@^8ANb94$tIn!?q>3;nP6G>-`1%)f7Zh? zonD^@0g!AK=0S-9-ZK|1Mo}=+ynhMk0Dh(oOHtTY<|j+RN#KyVGe=bIbLQKxftJAg zW=TF=m%s`0&9zXdfY<4~jc`ex;b2&qC5pzp1;@ZdTi-%Gou&(lpv-rPU2Mv*Th_;6 zrj!t4fx9Kn?7j&?WN?T^ZiQXAob_9w7~n&iSORk(-@LB`&U&D=E#M*EV???&x-J;^ zHS!j>bh#zjs;KtHd=|`sE{t;shpb|DW0)M;_#s5WP}=z+#DI*39DqnPoU8+|2GEYq zmcx1?xTwAY{5AJo&v*dlnrLHKc2()&O(K^ZnqL7aXoEEsFauTN{(tZ-o=51_kKiOs zqk9e_%W>w0gHSJei}|fXP#}}vz_}AkGj)Cj@i2&A&EBV(ry&(5 zT6P*T-929yPbO}b8v5uogur;JZUn9N={mx=rH55Rn5>E5gKL;}Zh2msA~!EhZkb3k z8zB**>8?g7l)qIgwt7ar&-ZgY{j#gQ7LegQmPR)p+inaKpJZ zS<;*+P4tvEg|r+_hHGyHGA$d1evU9RybB3m#fjAgVi_TzZnPxt82E&oJ zr(<#8XUW#WlUSM@;{5=y_k{{qyU^Gx zmOiAn&tkYzQ{~qX8Ze}X3G;8hD~z&A8K0&C-EHAh*C)l%T$^x-P8A8PE~49MRj7_y z-5I7#5<)(e>Y_O)dni1iJHG~P#AkMCXErlznT)$D+_naDKIvgt8e~iBihfbwRh%T& zx~<~-EA#hX1LoXxT6YeEOFX@L4xKQV%Fm-aO{bI3!+JPE&z^@GsHKJ9VC?2-?>88C zmeHVZVGnxkv2WqA&nNcs+}7OEWa$vuIK?B*0i&B!ZQ+z8P)ONh2>~ zkXuX_UdHbG==RHy@At$xYSN_C2iH$pJyp^wSvl?+7TgxrQ=coaA4bsXE8wHd!^21M zHVF1-?+AXh`3g>QJe7P05jfYV@4z=98VM9Nu!7mMc^BDLyv-X4>w6XT)*4@KAh(+i{9klwy*DeNz#YB}N=Sr&L3=f1*y6!5D za~wTz6=FPW4me)1C9M3mprO~VVx0PhM*SByCj7J4qs7SG5l;6OzgdwiYjz6`=a`^d z!Uk7)wTM5^%Y^;X+$Jor0;6o&u{z9X$Ua=ED3%%S2rFsFe<8trxZ#1URd5k0Xe^)t zgIOL=de~~2VSe-jL7=VIU>vTK=0}Vm_i5aZkO`%9+mE1g{{>G1F{s2fX48-8PoScY zu0w!_qz4$%6k2{ua8jQeXb#`gg*Px5#L$Wxkm9koK^3gyjM(ov`uGM0_a=JeC&+;w z>iaWXhe+D_GY(`XU2+q;vkusTIZyPAJA%zNl8Z(U&(jaY@X=N0s&V568Ui_Au4K7i zHKUWVwP^#=jhuhX9pQpq(YGA`v8NeBxRIE@qPf~MQ72XONDD^O<@9U|X57oPy#?bz z0S#)!ZID0xsTCT*Ob^_`D9O|ITd)upKK(Y#2pHcJ)xriZ3@kCU3eCOm7}#KGrw-WY zR^c0JzKsU*J#D=Weq=xowcm!JqQ34xnfozEc;QM^#1U$~1DoA*9J;~`tS+G`ZK%c= zGv5YDpp191!Ev0la|+WcjG?V}A%L_Er>?sY48By?jss1gDeV~EwdSIBbaCa&PE}ur zB<%1aJ#-J!wRvw5#y7nG297;w-GEmp(#}yBqGepGFqC?AfJP<~d`crbAY5bbF|h0! z@c=!|YG`@J?gX;?g|6zrl<_^?-+|koZ)r^jhDZzj3Hyk~cpr{xCikd<=OFV5NS=!2 z--ez@FW$#l`I>_sfDgp%bg;om{j(}@h;}CJT!CGR9Wn#6`-F7^8;>r@axUS5tNxyK zb2?r45PW^_Iuz+uj?OM{c$4zwp1R@Dw}ppv`$P1C&9wO;#+qI9@k2N;DbVU^kajMH zuR6S^dl(Ga3a(waYj@MR8#;tr=u9g>j#$xP6qqk&pTaXG`gZwAC9_dSm_4Hj)25}D zAHitldAqc0j!LE5gqk`-eSX1!`7z!33!H(!(5%O(hI2IMF@~Es`oUw!9ns>Fb?+|l zY>`*>Wt`2j!yUq9*MMjhPPbLKU}H=orkO@sAVPW7Mz}JoUY%RsDtt$mSYX7^eJ&{{ zQc#y<_qXlX2$Cbnadi^cA;?_xQwxmsnq^Z3%Q|m?w9|kpLr1aT@~db>C)&$&y0Q~} z@h08b2@!rCb_tueM)H2umSOFfh}xseCHq>@oiBBwombP2PH2O*^imft>ImxWLjA2b z2RuP-N^c8{l`eh?!OB;A#pRKq5?X}$lz)n0dMlN5qi^=mhHi|oYV(6`jCK%46NSDL z!c753aM9c=00m4r)Q0{)ls4O7yRW*}&A^P3u9Y?27SeHLRr=c)Mf2?t;BM=$#?mr7 zq$!W}6dylm{aUrU+#x)o9d@*|N~(51$Uu*0X4N+!Sr1KifL?hAZ3s=R5BD?0y<8?d zPj5Of$*E{a55}khInl2Zc z%Y=NNk;AE?eOjEtyEaC5)o@$LrVm`8^?BR=OZ$1lbPSAd*n#`DyhXqu(FE% zdcQbY3fXFg)vZ^g#5YZD0oK<30fyRpg3TrGOB#N7^A%T6finGE;|nSZOOxH2-%EE3 zeko>rP>axJJ6&B~*i>C^*lqn-1>xGJP1cXI|7w8Bm!h3zUc?KmWm@7l_JZrJKCY)- zOxWq>!oKpCE>*P@CAOobIE50sIPkmnn^yL{xqXvzbCj(hqdht>`m?2Ox_iRIvLj@j z*LJ+BIndmC_k?X2b5EE=qkzOfH(dzCPgFCIU4%I4078ZYc{wD(A$Y^)6yEEdfA^Wo zrE3UNF@Z4aX%Zoc?)$MS-UsB-ZG;qQ#^Ws}Cfv*|%W0L2V@Aa_g`wzn44FC!iG&3- zQ$iA;knWU_SQt(lB_u*jG9bPJaL79XU za_gtRQxrSJeiIFCn1m-Q$Tqk{uPR8UF4n2+)S$cHVyfFAxV1f)4O8V_z6XYCocVK3@e7SjkL_2WWsIQ=1#&rKI~zG<>?0Qrhxfp0143QG6=IV zUHri0F=emy6Gj&1)hz8aGZf zdy`x!rt7>(G2EqsH<{|A6%&wAWdSKP_X_{&y(zGCwhxZr9Np|gQsF0h-iLHXy!Isy zq=aGQdWLb=E2QFpqxOSE`orM^Vxw*^m4 zqM2)J6d6)Z{*Cyp>ZWj-Uh*Zru$$@z6F=JHOB6vL+hI2z1G0BoJ@g@*bjnEF@GLeO zx$-nu{XaxHEtJrt!6X0<(^m$Q)PR@lA)MP3*p26h?8U~BoICFJL}G?HP3s4fP~33e z9!zwRC;CT_*SG(ba&}>KkACQ;<6Dyzm&LvBW0!a>oTq1Wt-{AN#*b*=F`ev35|yX= zT2y^4t10y(BXDvJek3H~?cNi~aC!9?uJ%|inTz8ThI_(9S9!pel%Negvld3zB9zu|C=fO387xg_f_@evoeB(& zs(R=%^G!5gL*nrKdPGA;1bOz9=c?-S*DYDM^<5w2yOrDVcHyyx)WH~9 zIfTTq!|TQGvZ|;0qV6VDeITx#RN}4&{D3HD+XUq)N&-j$9v=z=ND2(54FM#afP>x- zAQQb>?W~cl)_3`-2O{4e>9|1hZ`eS41Ia~bqZfm4J$mV*AQB+$tW(v~O#x&OWrq@P zT=>|bWIY_9M~9L{c-&EIap-se(~=~JqC2&?GJ({jB_;3!jb}*%x|)L}jo?S?btIP9 z+-a8%ZMK7Ig3+4F>5*Wx*#$H*ge(Lr-4#O8$beq@LkM|6{m_-YTpA{A(sxCvy~=IE z9U3wWgXJokHH^&ms&IXlEWM`h`mfFn+x||?!$_3Z+x^Hdb#g=&((Yjx3MbJ;p=8Fe zA+BL{nNJVoi>wB@hE}Iyts$3FXc&I~gyxW_E?B zsV?1AB>9_@M9Q06a-nZrPjm*v?Qk-d?|P!^r0}i0Xy7xFqY>Xzl|<`;dsQg(1?-5p?%dc zwvJs9U7h*#!9q2n=Q>b!oxW>Mz7lIQXlew>3LokCqZXuD6S0X!o<@6govd%h?pbk& z8*FZfAOKKC8%JSo+D@;IBIiSf+n-IREGrXfwD_@TneDf+{5>lJalW)M5|h|ns(p^M z!5S)yBB{#hwqbSpU(1rbksyQ4jw0VG?^qGlHBF~N)Xy|3n$$xPeH2Zqy@p%M#bN*Y zbH2YQ!+bP`r~&>)8=fbd@racYOU^(Sm5(M@@Jx4oG@0!;-zCSdMbYT4n=p9IT)CQ^ z@%kdBj;4=6`+9-CF@`K416=fnF@z1WIkSzTV~dn)b5<@{y$0P9e@TM~qo%%NNn!#f zW2PIQ7#U%%B3y?L-sm$)_^9!zmtZ?S=kb}PB24Ez+$Z2ukIyXgp0UJ4a<1(rOf1VV zW`v^=eu1zMVFN-fLh(m>7)F8r<#?TCnDdB#qaPL^Jc0G~{q;8yp2Ye_gjW#0h43=M zzaYF|J{m`S$Vjn&kd$HWAe4AAeZLI|?_ymx=owyy^!Inu`|)IGQ3v9^u`WU%gbxu8 zLiiM+FG7*e;C|?bP{6uBLh+|z8ODzFAqW{9e*i*}o<%6~2}USEd^Ey#tj8b}_3%7G zIpW8#Oi`cUv4~J2VjRLCgyZ{R9KuuBVFJP?gbDp{BEk@)OGG#np&p?~mxNFhkc==4 z@hJ!+5l%uFi!c?T_~Y1T15IN+7$yoE42Xy_s}sl!f;*=ri3Gps(E3EO4Az=M_2i6P zHvg}L*2J2b4RoeLS+>g5p1;>!y%G<=!2razvd% z_#JglA(Le@cM@hkojR37XeMA$f~~#14C7nDFo3jK2N-6tdCycbLZV)~>sdRJ^!;|w z^V12h&c@N=kIlw4{+j`r)0J7oe|X?V;@#`5AC$0%43SC)eYcwonV^^(uL_sWohY5# R9vD6>+;i>~dMt}X{y#GH$tM5+ delta 9366 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 delta 9812 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 delta 9246 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 D$h@

    ### uVision Project, (C) Keil Software
    + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + + + + 0 + 0 + + + + Target 1 + 0x4 + ARM-ADS + + 32000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\listing\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 0 + + SARMCM3.DLL + + DCM.DLL + -pCM3 + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 7 + + + + + ..\map.ini + + + + + .\init.ini + Segger\JL2CM3.dll + + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + + + + 0 + JL2CM3 + -O78 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO6 -FD20000000 -FC8800 -FN1 -FF0ING91800 -FS04000 -FL080000 + + + 0 + UL2CM3 + -U -O14 -S0 -C-1 -P00 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO2 -FD20000000 -FC8000 -FN1 -FF0ING91800 -FS04000 -FL080000 + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + APP + 0 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 1 + 57608268 + 0 + 0 + 5 + 0 + .\src\main.c + main.c + 0 + 0 + + + 1 + 2 + 1 + 0 + 1 + 2 + 0 + 8 + 33 + 0 + .\src\profile.c + profile.c + 0 + 0 + + + + + StartUP + 0 + 0 + 0 + 0 + + 2 + 3 + 2 + 0 + 1 + 57608268 + 0 + 0 + 5 + 0 + .\src\startup_ing91800.s + startup_ing91800.s + 0 + 0 + + + 2 + 4 + 3 + 0 + 1 + 57608268 + 0 + 0 + 5 + 0 + ../..\bundles\typical\ING9187xx\symdefs.m + symdefs.m + 0 + 0 + + + + + BSP + 0 + 0 + 0 + 0 + + 3 + 5 + 1 + 0 + 1 + 57608268 + 0 + 0 + 5 + 0 + ../..\src\BSP\eflash.c + eflash.c + 0 + 0 + + + + + FWlib + 0 + 0 + 0 + 0 + + 4 + 6 + 1 + 0 + 1 + 57608268 + 0 + 0 + 5 + 0 + ../..\src\FWlib\peripheral_adc.c + peripheral_adc.c + 0 + 0 + + + 4 + 7 + 1 + 0 + 1 + 57608268 + 0 + 0 + 5 + 0 + ../..\src\FWlib\peripheral_gpio.c + peripheral_gpio.c + 0 + 0 + + + 4 + 8 + 1 + 0 + 1 + 57608268 + 0 + 0 + 5 + 0 + ../..\src\FWlib\peripheral_i2c.c + peripheral_i2c.c + 0 + 0 + + + 4 + 9 + 1 + 0 + 1 + 57608268 + 0 + 0 + 5 + 0 + ../..\src\FWlib\peripheral_pinctrl.c + peripheral_pinctrl.c + 0 + 0 + + + 4 + 10 + 1 + 0 + 1 + 57608268 + 0 + 0 + 5 + 0 + ../..\src\FWlib\peripheral_pwm.c + peripheral_pwm.c + 0 + 0 + + + 4 + 11 + 1 + 0 + 1 + 57608268 + 0 + 0 + 5 + 0 + ../..\src\FWlib\peripheral_rtc.c + peripheral_rtc.c + 0 + 0 + + + 4 + 12 + 1 + 0 + 1 + 57608268 + 0 + 0 + 5 + 0 + ../..\src\FWlib\peripheral_ssp.c + peripheral_ssp.c + 0 + 0 + + + 4 + 13 + 1 + 0 + 1 + 57608268 + 0 + 0 + 5 + 0 + ../..\src\FWlib\peripheral_sysctrl.c + peripheral_sysctrl.c + 0 + 0 + + + 4 + 14 + 1 + 0 + 1 + 57608268 + 0 + 0 + 5 + 0 + ../..\src\FWlib\peripheral_timer.c + peripheral_timer.c + 0 + 0 + + + 4 + 15 + 1 + 0 + 1 + 57608268 + 0 + 0 + 5 + 0 + ../..\src\FWlib\peripheral_uart.c + peripheral_uart.c + 0 + 0 + + + + + Tools + 0 + 0 + 0 + 0 + + 5 + 16 + 1 + 0 + 1 + 57608268 + 0 + 0 + 5 + 0 + ../..\src\Tools\trace.c + trace.c + 0 + 0 + + + + diff --git a/examples/pairing_with_oob/pairing_with_oob.uvoptx b/examples/pairing_with_oob/pairing_with_oob.uvoptx new file mode 100644 index 000000000..e99baa4e0 --- /dev/null +++ b/examples/pairing_with_oob/pairing_with_oob.uvoptx @@ -0,0 +1,437 @@ + + + + 1.0 + +
    ### uVision Project, (C) Keil Software
    + + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + Target 1 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\listing\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + 0 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 4 + + + + + .\init.ini + + + + + .\init.ini + Segger\JL2CM3.dll + + + + 0 + DLGUARM + d + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + JL2CM3 + -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC8000 -FN1 -FF0ING91800.flm -FS04000 -FL080000 -FP0($$Device:ING91800$Flash\ING91800.flm) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0NEW_DEVICE -FS00 -FL040000 -FP0($$Device:ARMCM3$Device\ARM\Flash\NEW_DEVICE.FLM)) + + + + + 0 + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + APP + 0 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + .\src\main.c + main.c + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + .\src\profile.c + profile.c + 0 + 0 + + + + + StartUP + 0 + 0 + 0 + 0 + + 2 + 3 + 2 + 0 + 0 + 0 + .\src\startup_ing91800.s + startup_ing91800.s + 0 + 0 + + + 2 + 4 + 3 + 0 + 0 + 0 + ../..\bundles\typical\ING9187xx\symdefs.m + symdefs.m + 0 + 0 + + + + + BSP + 0 + 0 + 0 + 0 + + 3 + 5 + 1 + 0 + 0 + 0 + ../..\src\BSP\eflash.c + eflash.c + 0 + 0 + + + + + FWlib + 0 + 0 + 0 + 0 + + 4 + 6 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_adc.c + peripheral_adc.c + 0 + 0 + + + 4 + 7 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_gpio.c + peripheral_gpio.c + 0 + 0 + + + 4 + 8 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_i2c.c + peripheral_i2c.c + 0 + 0 + + + 4 + 9 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_pinctrl.c + peripheral_pinctrl.c + 0 + 0 + + + 4 + 10 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_pwm.c + peripheral_pwm.c + 0 + 0 + + + 4 + 11 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_rtc.c + peripheral_rtc.c + 0 + 0 + + + 4 + 12 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_ssp.c + peripheral_ssp.c + 0 + 0 + + + 4 + 13 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_sysctrl.c + peripheral_sysctrl.c + 0 + 0 + + + 4 + 14 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_timer.c + peripheral_timer.c + 0 + 0 + + + 4 + 15 + 1 + 0 + 0 + 0 + ../..\src\FWlib\peripheral_uart.c + peripheral_uart.c + 0 + 0 + + + + + Tools + 0 + 0 + 0 + 0 + + 5 + 16 + 1 + 0 + 0 + 0 + ../..\src\Tools\trace.c + trace.c + 0 + 0 + + + + + ::CMSIS + 0 + 0 + 0 + 1 + + +
    diff --git a/examples/pairing_with_oob/pairing_with_oob.uvproj b/examples/pairing_with_oob/pairing_with_oob.uvproj new file mode 100644 index 000000000..5bca3d5c6 --- /dev/null +++ b/examples/pairing_with_oob/pairing_with_oob.uvproj @@ -0,0 +1,497 @@ + + + 1.1 +
    ### uVision Project, (C) Keil Software
    + + + Target 1 + 0x4 + ARM-ADS + + + ING91800 + INGCHIPS + CLOCK(32000000) CPUTYPE("Cortex-M3") ELITTLE IROM(0x4000-0x43fff) IRAM(0x20000000-0x2000ffff) + + + + 0 + + + + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\output\ + pairing_with_oob + 1 + 0 + 1 + 1 + 1 + .\listing\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf.exe --bin -o pairing_with_oob.bin ./output/pairing_with_oob.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DCM.DLL + -pCM3 + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + + 0 + 7 + + + + + + ..\map.ini + + + + + + + .\init.ini + Segger\JL2CM3.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x10000 + + + 1 + 0x4000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 155648 + 385024 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 536900792 + 35656 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + + --gnu + USE_STDPERIPH_DRIVER,ROLE=1 + + ../../bundles/typical/inc;../../bundles/typical/inc/os;../../src/BSP;../../src/FWlib;../../src/StartUP/ing918;../../src/Tools;../../src + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x00000000 + + + + + + + + + + + + APP + + + main.c + 1 + .\src\main.c + + + profile.c + 1 + .\src\profile.c + + + + + StartUP + + + startup_ing91800.s + 2 + .\src\startup_ing91800.s + + + symdefs.m + 3 + ../..\bundles\typical\ING9187xx\symdefs.m + + + + + BSP + + + eflash.c + 1 + ../..\src\BSP\eflash.c + + + + + FWlib + + + peripheral_adc.c + 1 + ../..\src\FWlib\peripheral_adc.c + + + peripheral_gpio.c + 1 + ../..\src\FWlib\peripheral_gpio.c + + + peripheral_i2c.c + 1 + ../..\src\FWlib\peripheral_i2c.c + + + peripheral_pinctrl.c + 1 + ../..\src\FWlib\peripheral_pinctrl.c + + + peripheral_pwm.c + 1 + ../..\src\FWlib\peripheral_pwm.c + + + peripheral_rtc.c + 1 + ../..\src\FWlib\peripheral_rtc.c + + + peripheral_ssp.c + 1 + ../..\src\FWlib\peripheral_ssp.c + + + peripheral_sysctrl.c + 1 + ../..\src\FWlib\peripheral_sysctrl.c + + + peripheral_timer.c + 1 + ../..\src\FWlib\peripheral_timer.c + + + peripheral_uart.c + 1 + ../..\src\FWlib\peripheral_uart.c + + + + + Tools + + + trace.c + 1 + ../..\src\Tools\trace.c + + + + + + +
    diff --git a/examples/pairing_with_oob/pairing_with_oob.uvprojx b/examples/pairing_with_oob/pairing_with_oob.uvprojx new file mode 100644 index 000000000..f2c2c7d98 --- /dev/null +++ b/examples/pairing_with_oob/pairing_with_oob.uvprojx @@ -0,0 +1,504 @@ + + + 2.1 +
    ### uVision Project, (C) Keil Software
    + + + Target 1 + 0x4 + ARM-ADS + 6190000::V6.19::ARMCLANG + 1 + + + ING91800 + INGChips + INGChips.INGCHIPS_DeviceFamilyPack.0.9.0 + http://www.ingchips.com + CLOCK(32000000) CPUTYPE("Cortex-M3") ELITTLE IROM(0x4000-0x43fff) IRAM(0x20000000-0x2000ffff) + + + + 0 + + + + + + + + + + + $$Device:ING91800$SVD\ING91800.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\output\ + pairing_with_oob + 1 + 0 + 1 + 1 + 1 + .\listing\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf.exe --bin -o pairing_with_oob.bin ./output/pairing_with_oob.axf + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM3 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 0 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 0 + 3 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x10000 + + + 1 + 0x4000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 155648 + 385024 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 536900792 + 35656 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 3 + 0 + 0 + 0 + 0 + 0 + 3 + 3 + 1 + 1 + 0 + 0 + 0 + + + USE_STDPERIPH_DRIVER, ROLE=1 + + ../../bundles/typical/inc;../../bundles/typical/inc/os;../../src/BSP;../../src/FWlib;../../src/StartUP/ing918;../../src/Tools;../../src + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x00000000 + + + + + + + + + + + + + APP + + + main.c + 1 + .\src\main.c + + + profile.c + 1 + .\src\profile.c + + + + + StartUP + + + startup_ing91800.s + 2 + .\src\startup_ing91800.s + + + symdefs.m + 3 + ../..\bundles\typical\ING9187xx\symdefs.m + + + + + BSP + + + eflash.c + 1 + ../..\src\BSP\eflash.c + + + + + FWlib + + + peripheral_adc.c + 1 + ../..\src\FWlib\peripheral_adc.c + + + peripheral_gpio.c + 1 + ../..\src\FWlib\peripheral_gpio.c + + + peripheral_i2c.c + 1 + ../..\src\FWlib\peripheral_i2c.c + + + peripheral_pinctrl.c + 1 + ../..\src\FWlib\peripheral_pinctrl.c + + + peripheral_pwm.c + 1 + ../..\src\FWlib\peripheral_pwm.c + + + peripheral_rtc.c + 1 + ../..\src\FWlib\peripheral_rtc.c + + + peripheral_ssp.c + 1 + ../..\src\FWlib\peripheral_ssp.c + + + peripheral_sysctrl.c + 1 + ../..\src\FWlib\peripheral_sysctrl.c + + + peripheral_timer.c + 1 + ../..\src\FWlib\peripheral_timer.c + + + peripheral_uart.c + 1 + ../..\src\FWlib\peripheral_uart.c + + + + + Tools + + + trace.c + 1 + ../..\src\Tools\trace.c + + + + + ::CMSIS + + + + + + + + + + + + + + + + +
    diff --git a/examples/pairing_with_oob/src/main.c b/examples/pairing_with_oob/src/main.c new file mode 100644 index 000000000..adf336ee9 --- /dev/null +++ b/examples/pairing_with_oob/src/main.c @@ -0,0 +1,146 @@ +#include +#include +#include "profile.h" +#include "ingsoc.h" +#include "platform_api.h" +#include "FreeRTOS.h" +#include "task.h" +#include "trace.h" +#include "../data/setup_soc.cgen" + +static uint32_t cb_hard_fault(hard_fault_info_t *info, void *_) +{ + platform_printf("HARDFAULT:\nPC : 0x%08X\nLR : 0x%08X\nPSR: 0x%08X\n" + "R0 : 0x%08X\nR1 : 0x%08X\nR2 : 0x%08X\nP3 : 0x%08X\n" + "R12: 0x%08X\n", + info->pc, info->lr, info->psr, + info->r0, info->r1, info->r2, info->r3, info->r12); + for (;;); +} + +static uint32_t cb_assertion(assertion_info_t *info, void *_) +{ + platform_printf("[ASSERTION] @ %s:%d\n", + info->file_name, + info->line_no); + for (;;); +} + +static uint32_t cb_heap_out_of_mem(uint32_t tag, void *_) +{ + platform_printf("[OOM] @ %d\n", tag); + for (;;); +} + +#define PRINT_PORT APB_UART0 + +uint32_t cb_putc(char *c, void *dummy) +{ + while (apUART_Check_TXFIFO_FULL(PRINT_PORT) == 1); + UART_SendData(PRINT_PORT, (uint8_t)*c); + return 0; +} + +int fputc(int ch, FILE *f) +{ + cb_putc((char *)&ch, NULL); + return ch; +} + +void setup_peripherals(void) +{ + cube_setup_peripherals(); +} + +uint32_t on_lle_init(void *dummy, void *user_data) +{ + (void)(dummy); + (void)(user_data); + cube_on_lle_init(); + return 0; +} + +uint32_t on_deep_sleep_wakeup(void *dummy, void *user_data) +{ + (void)(dummy); + (void)(user_data); + setup_peripherals(); + return 0; +} + +uint32_t query_deep_sleep_allowed(void *dummy, void *user_data) +{ + (void)(dummy); + (void)(user_data); + // TODO: return 0 if deep sleep is not allowed now; else deep sleep is allowed + return 0; +} + +static void watchdog_task(void *pdata) +{ + for (;;) + { + vTaskDelay(pdMS_TO_TICKS(5000)); + TMR_WatchDogRestart(); + } +} + +trace_rtt_t trace_ctx = {0}; + + +static const platform_evt_cb_table_t evt_cb_table = +{ + .callbacks = { + [PLATFORM_CB_EVT_HARD_FAULT] = { + .f = (f_platform_evt_cb)cb_hard_fault, + }, + [PLATFORM_CB_EVT_ASSERTION] = { + .f = (f_platform_evt_cb)cb_assertion, + }, + [PLATFORM_CB_EVT_HEAP_OOM] = { + .f = (f_platform_evt_cb)cb_heap_out_of_mem, + }, + [PLATFORM_CB_EVT_PROFILE_INIT] = { + .f = setup_profile, + }, + [PLATFORM_CB_EVT_LLE_INIT] = { + .f = on_lle_init, + }, + [PLATFORM_CB_EVT_ON_DEEP_SLEEP_WAKEUP] = { + .f = (f_platform_evt_cb)on_deep_sleep_wakeup, + }, + [PLATFORM_CB_EVT_QUERY_DEEP_SLEEP_ALLOWED] = { + .f = query_deep_sleep_allowed, + }, + [PLATFORM_CB_EVT_PUTC] = { + .f = (f_platform_evt_cb)cb_putc, + }, + [PLATFORM_CB_EVT_TRACE] = { + .f = (f_platform_evt_cb)cb_trace_rtt, + .user_data = &trace_ctx, + }, + } +}; + +int app_main() +{ + cube_soc_init(); + + // setup event handlers + platform_set_evt_callback_table(&evt_cb_table); + + setup_peripherals(); + SYSCTRL_Init(); + xTaskCreate(watchdog_task, + "w", + configMINIMAL_STACK_SIZE, + NULL, + (configMAX_PRIORITIES - 1), + NULL); + + trace_rtt_init(&trace_ctx); + platform_config(PLATFORM_CFG_TRACE_MASK, 0x1ff); + + return 0; +} + diff --git a/examples/pairing_with_oob/src/profile.c b/examples/pairing_with_oob/src/profile.c new file mode 100644 index 000000000..21260b0ce --- /dev/null +++ b/examples/pairing_with_oob/src/profile.c @@ -0,0 +1,320 @@ +#include +#include +#include "profile.h" +#include "platform_api.h" +#include "att_db.h" +#include "gap.h" +#include "btstack_event.h" +#include "btstack_defines.h" +#include "sm.h" +#include "gatt_client_util.h" + +#define SLAVE_ADDR {0xFA, 0x69, 0x77, 0xCC, 0xC2, 0x7E} + +#if (ROLE == HCI_ROLE_SLAVE) + +// GATT characteristic handles +#include "../data/gatt.const" + +const static uint8_t adv_data[] = { + #include "../data/advertising.adv" +}; + +#include "../data/advertising.const" + +const static uint8_t scan_data[] = { + #include "../data/scan_response.adv" +}; + +#include "../data/scan_response.const" + +const static uint8_t profile_data[] = { + #include "../data/gatt.profile" +}; + +const sm_persistent_t sm_persistent = +{ + .er = {9, 1, 8}, + .ir = {9, 1, 6}, + .identity_addr_type = BD_ADDR_TYPE_LE_RANDOM, + .identity_addr = SLAVE_ADDR +}; + +static uint16_t att_read_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t offset, + uint8_t * buffer, uint16_t buffer_size) +{ + switch (att_handle) + { + case HANDLE_GENERIC_INPUT: + if (buffer) + { + // add your code + return buffer_size; + } + else + return 1; // TODO: return required buffer size + + default: + return 0; + } +} + +static int att_write_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t transaction_mode, + uint16_t offset, const uint8_t *buffer, uint16_t buffer_size) +{ + switch (att_handle) + { + case HANDLE_GENERIC_INPUT: + // add your code + return 0; + + default: + return 0; + } +} + +#else + +const sm_persistent_t sm_persistent = +{ + .er = {9, 1, 8}, + .ir = {9, 1, 6}, + .identity_addr_type = BD_ADDR_TYPE_LE_RANDOM, + .identity_addr = {0xFA, 0x69, 0x77, 0xCC, 0xC2, 0x7F} +}; + +static const bd_addr_t peer_addr = SLAVE_ADDR; + +static struct gatt_client_discoverer *discoverer = NULL; + +#define iprintf platform_printf + +#include "gatt_client_util.c" + +#endif + +static void user_msg_handler(uint32_t msg_id, void *data, uint16_t size) +{ + switch (msg_id) + { + // add your code + //case MY_MESSAGE_ID: + // break; + default: + ; + } +} + +#if (ROLE == HCI_ROLE_SLAVE) + +const static ext_adv_set_en_t adv_sets_en[] = { {.handle = 0, .duration = 0, .max_events = 0} }; + +static void setup_adv(void) +{ + gap_set_adv_set_random_addr(0, sm_persistent.identity_addr); + gap_set_ext_adv_para(0, + CONNECTABLE_ADV_BIT | SCANNABLE_ADV_BIT | LEGACY_PDU_BIT, + 0x00a1, 0x00a1, // Primary_Advertising_Interval_Min, Primary_Advertising_Interval_Max + PRIMARY_ADV_ALL_CHANNELS, // Primary_Advertising_Channel_Map + BD_ADDR_TYPE_LE_RANDOM, // Own_Address_Type + BD_ADDR_TYPE_LE_PUBLIC, // Peer_Address_Type (ignore) + NULL, // Peer_Address (ignore) + ADV_FILTER_ALLOW_ALL, // Advertising_Filter_Policy + 0x00, // Advertising_Tx_Power + PHY_1M, // Primary_Advertising_PHY + 0, // Secondary_Advertising_Max_Skip + PHY_1M, // Secondary_Advertising_PHY + 0x00, // Advertising_SID + 0x00); // Scan_Request_Notification_Enable + gap_set_ext_adv_data(0, sizeof(adv_data), (uint8_t*)adv_data); + gap_set_ext_scan_response_data(0, sizeof(scan_data), (uint8_t*)scan_data); + gap_set_ext_adv_enable(1, sizeof(adv_sets_en) / sizeof(adv_sets_en[0]), adv_sets_en); +} + +#else + +static initiating_phy_config_t phy_configs[] = +{ + { + .phy = PHY_1M, + .conn_param = + { + .scan_int = 200, + .scan_win = 180, + .interval_min = 50, + .interval_max = 50, + .latency = 0, + .supervision_timeout = 600, + .min_ce_len = 90, + .max_ce_len = 90 + } + } +}; + +static void setup_initiating(void) +{ + gap_set_random_device_address(sm_persistent.identity_addr); + gap_ext_create_connection(INITIATING_ADVERTISER_FROM_PARAM, // Initiator_Filter_Policy, + BD_ADDR_TYPE_LE_RANDOM, // Own_Address_Type, + BD_ADDR_TYPE_LE_RANDOM, // Peer_Address_Type, + peer_addr, // Peer_Address, + sizeof(phy_configs) / sizeof(phy_configs[0]), + phy_configs); +} +#endif + +static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uint8_t *packet, uint16_t size) +{ + uint8_t event = hci_event_packet_get_type(packet); + const btstack_user_msg_t *p_user_msg; + if (packet_type != HCI_EVENT_PACKET) return; + + switch (event) + { + case BTSTACK_EVENT_STATE: + if (btstack_event_state_get_state(packet) != HCI_STATE_WORKING) + break; +#if (ROLE == HCI_ROLE_SLAVE) + setup_adv(); +#else + setup_initiating(); +#endif + break; + + case HCI_EVENT_COMMAND_COMPLETE: + switch (hci_event_command_complete_get_command_opcode(packet)) + { + // add your code to check command complete response + // case : + // break; + default: + break; + } + break; + + case HCI_EVENT_LE_META: + switch (hci_event_le_meta_get_subevent_code(packet)) + { + case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE: + { + const le_meta_event_enh_create_conn_complete_t *complete = + decode_hci_le_meta_event(packet, le_meta_event_enh_create_conn_complete_t); + platform_printf("connected: %d\n", complete->status); +#if (ROLE == HCI_ROLE_SLAVE) + att_set_db(complete->handle, profile_data); + sm_request_pairing(complete->handle); +#else + if (complete->status == 0) + { + if (discoverer) gatt_client_util_free(discoverer); + discoverer = gatt_client_util_discover_all(complete->handle, + gatt_client_util_dump_profile, + NULL); + } + else + { + setup_initiating(); + } +#endif + } + break; + default: + break; + } + + break; + + case HCI_EVENT_DISCONNECTION_COMPLETE: +#if (ROLE == HCI_ROLE_SLAVE) + gap_set_ext_adv_enable(1, sizeof(adv_sets_en) / sizeof(adv_sets_en[0]), adv_sets_en); +#else + setup_initiating(); +#endif + break; + + case ATT_EVENT_CAN_SEND_NOW: + // add your code + break; + + case BTSTACK_EVENT_USER_MSG: + p_user_msg = hci_event_packet_get_user_msg(packet); + user_msg_handler(p_user_msg->msg_id, p_user_msg->data, p_user_msg->len); + break; + + default: + break; + } +} + +static void sm_packet_handler(uint8_t packet_type, uint16_t channel, const uint8_t *packet, uint16_t size) +{ + uint8_t event = hci_event_packet_get_type(packet); + + if (packet_type != HCI_EVENT_PACKET) return; + + switch (event) + { + case SM_EVENT_JUST_WORKS_REQUEST: + platform_printf("JUST_WORKS?\n"); + sm_bonding_decline(sm_event_just_works_request_get_handle(packet)); + break; + case SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED: + break; + case SM_EVENT_PASSKEY_INPUT_NUMBER: + break; + case SM_EVENT_STATE_CHANGED: + { + const sm_event_state_changed_t *state_changed = decode_hci_event(packet, sm_event_state_changed_t); + switch (state_changed->reason) + { + case SM_STARTED: + platform_printf("SM: STARTED\n"); + break; + case SM_FINAL_PAIRED: + platform_printf("SM: PAIRED\n"); + break; + case SM_FINAL_REESTABLISHED: + platform_printf("SM: REESTABLISHED\n"); + break; + default: + platform_printf("SM: FINAL ERROR: %d\n", state_changed->reason); + break; + } + } + break; + default: + break; + } +} + +static btstack_packet_callback_registration_t sm_event_callback_registration = {.callback = &sm_packet_handler}; +static btstack_packet_callback_registration_t hci_event_callback_registration; + +static int get_oob_data_callback(uint8_t addres_type, bd_addr_t addr, uint8_t * oob_data) +{ + // random OOB data + const static sm_key_t _oob_data = { + 52, 29, 200, 119, 171, 76, 33, 1, 56, 153, 91, 155, 26, 42, 243, 57 + }; + platform_printf("get_oob\n"); + memcpy(oob_data, _oob_data, sizeof(_oob_data)); + return 1; +} + +uint32_t setup_profile(void *data, void *user_data) +{ + platform_printf("setup profile\n"); + sm_add_event_handler(&sm_event_callback_registration); +#if (ROLE == HCI_ROLE_SLAVE) + att_server_init(att_read_callback, att_write_callback); +#endif + hci_event_callback_registration.callback = &user_packet_handler; + hci_add_event_handler(&hci_event_callback_registration); + att_server_register_packet_handler(&user_packet_handler); + sm_config(1, IO_CAPABILITY_NO_INPUT_NO_OUTPUT, + 0, + &sm_persistent); + sm_set_authentication_requirements(SM_AUTHREQ_BONDING); + sm_register_oob_data_callback(get_oob_data_callback); + return 0; +} diff --git a/examples/pairing_with_oob/src/profile.h b/examples/pairing_with_oob/src/profile.h new file mode 100644 index 000000000..b08a4e348 --- /dev/null +++ b/examples/pairing_with_oob/src/profile.h @@ -0,0 +1,15 @@ +#ifndef _PROFILESTASK_H_ +#define _PROFILESTASK_H_ + +#include +#include "bluetooth.h" + +#ifndef ROLE +#define ROLE HCI_ROLE_SLAVE +#endif + +uint32_t setup_profile(void *data, void *user_data); + +#endif + + diff --git a/examples/pairing_with_oob/src/startup_ing91800.s b/examples/pairing_with_oob/src/startup_ing91800.s new file mode 100644 index 000000000..0d8a4a9a3 --- /dev/null +++ b/examples/pairing_with_oob/src/startup_ing91800.s @@ -0,0 +1,102 @@ +;/**************************************************************************//** +; * @file startup_ARMCM3.s +; * @brief CMSIS Core Device Startup File for +; * ARMCM3 Device Series +; * @version V1.08 +; * @date 03. February 2012 +; * +; * @note +; * Copyright (C) 2012 ARM Limited. All rights reserved. +; * +; * @par +; * ARM Limited (ARM) is supplying this software for use with Cortex-M +; * processor based microcontrollers. This file can be freely distributed +; * within development tools that are supporting such ARM based processors. +; * +; * @par +; * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED +; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF +; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. +; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR +; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. +; * +; ******************************************************************************/ +;/* +;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------ +;*/ + +Stack_Size EQU 0x00000004 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +Stack_Mem SPACE Stack_Size +__initial_sp + EXPORT __initial_sp + + + EXPORT __heap_base + EXPORT __heap_limit + +Heap_Size EQU 8192 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + PRESERVE8 + THUMB + +; Vector Table Mapped to Address 0 at Reset + + AREA RESET, DATA, READONLY + EXPORT __Vectors + +__Vectors DCD 0 ; Top of Stack + DCD Reset_Handler ; Reset Handler + +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + + + AREA |.text|, CODE, READONLY + + +; Reset Handler + +Reset_Handler PROC + EXPORT Reset_Handler + IMPORT __scatterload + + ; this push is consumed by main + PUSH {R1, LR} + + ; save msp + MRS R1, MSP + MSR PSP, R1 + + LDR R0, =__scatterload + BX R0 + + ENDP + + ALIGN + +main PROC + EXPORT main + IMPORT app_main + + LDR R0, =app_main + BLX R0 + + ; restore msp + MRS R1, PSP + MSR MSP, R1 + + POP {R1, PC} + + ENDP + + ALIGN + + END From fb6ba8058d53d2423c626e3119ab6b6fdb436676 Mon Sep 17 00:00:00 2001 From: IngchipsLiqi <103230654+IngchipsLiqi@users.noreply.github.com> Date: Tue, 21 Nov 2023 19:56:38 +0800 Subject: [PATCH 08/13] clear warning --- src/FWlib/peripheral_comparator.c | 2 +- src/FWlib/peripheral_keyscan.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/FWlib/peripheral_comparator.c b/src/FWlib/peripheral_comparator.c index 6564381ec..18c5e2f66 100644 --- a/src/FWlib/peripheral_comparator.c +++ b/src/FWlib/peripheral_comparator.c @@ -167,7 +167,7 @@ COMPARATOR_INTERRUPT_MODE_t COMPARATOR_GetIntStatusAndClear(void) COMPARATOR_INTERRUPT_MODE_t ret; uint32_t reg_data; - ret = COMPARATOR_reg_read_bits(&APB_SYSCTRL->AnaCtrl, offset, bits_width); + ret = (COMPARATOR_INTERRUPT_MODE_t)COMPARATOR_reg_read_bits(&APB_SYSCTRL->AnaCtrl, offset, bits_width); reg_data = COMPARATOR_reg_read_bits(&APB_SYSCTRL->AnaCtrl, 0, SYSCTRL_ANA_CTRL_W1C_BITS); COMPARATOR_reg_write_bits(®_data, offset, bits_width, ret); COMPARATOR_reg_write_bits(&APB_SYSCTRL->AnaCtrl, 0, 32, reg_data); diff --git a/src/FWlib/peripheral_keyscan.c b/src/FWlib/peripheral_keyscan.c index caa9a6abb..9b8065872 100644 --- a/src/FWlib/peripheral_keyscan.c +++ b/src/FWlib/peripheral_keyscan.c @@ -260,11 +260,11 @@ void KEYSCAN_InitKeyScanToIdx(const KEYSCAN_SetStateStruct* keyscan_set, KEYSCAN static uint8_t KEYSCAN_CheckStatePara(const KEYSCAN_SetStateStruct* keyscan_set) { if (keyscan_set == 0) { - return -1; + return 1; } if ((keyscan_set->row == 0) || (keyscan_set->col == 0)) { - return -1; + return 1; } return 0; @@ -295,8 +295,9 @@ int KEYSCAN_Initialize(const KEYSCAN_SetStateStruct* keyscan_set) row = 0; for (i = 0; i < keyscan_set->row_num; i++) { + int io_source = IO_SOURCE_KEYSCN_ROW_0 + keyscan_set->row[i].out_row; row = row | (0x1 << keyscan_set->row[i].out_row); - r = PINCTRL_SetPadMux(keyscan_set->row[i].gpio, keyscan_set->row[i].out_row + IO_SOURCE_KEYSCN_ROW_0); + r = PINCTRL_SetPadMux(keyscan_set->row[i].gpio, (io_source_t)io_source); if (r) return r; PINCTRL_Pull(keyscan_set->row[i].gpio, PINCTRL_PULL_DOWN); } From 3f8af795031fbf11bdb6f45b527d633f85f728f0 Mon Sep 17 00:00:00 2001 From: zjli2019 Date: Thu, 23 Nov 2023 16:55:21 +0800 Subject: [PATCH 09/13] update 916: * [UPD] ING916: platform struct * [FIX] ING916: sleep for very long time unexpectedly --- bundles/exp/ING9168xx/apis.json | 794 +++++++++--------- bundles/exp/ING9168xx/meta.json | 6 +- bundles/exp/ING9168xx/platform.bin | Bin 173864 -> 177740 bytes bundles/extension/ING9168xx/apis.json | 754 ++++++++--------- bundles/extension/ING9168xx/meta.json | 6 +- bundles/extension/ING9168xx/platform.bin | Bin 161312 -> 165188 bytes bundles/mass_conn/ING9168xx/apis.json | 690 +++++++-------- bundles/mass_conn/ING9168xx/meta.json | 6 +- bundles/mass_conn/ING9168xx/platform.bin | Bin 155320 -> 159200 bytes bundles/mini/ING9168xx/apis.json | 676 +++++++-------- bundles/mini/ING9168xx/meta.json | 6 +- bundles/mini/ING9168xx/platform.bin | Bin 155804 -> 159684 bytes bundles/noos_exp/ING9168xx/apis.json | 636 +++++++------- bundles/noos_exp/ING9168xx/meta.json | 6 +- bundles/noos_exp/ING9168xx/platform.bin | Bin 162988 -> 166876 bytes bundles/noos_extension/ING9168xx/apis.json | 596 ++++++------- bundles/noos_extension/ING9168xx/meta.json | 6 +- bundles/noos_extension/ING9168xx/platform.bin | Bin 150436 -> 154332 bytes bundles/noos_mass_conn/ING9168xx/apis.json | 532 ++++++------ bundles/noos_mass_conn/ING9168xx/meta.json | 6 +- bundles/noos_mass_conn/ING9168xx/platform.bin | Bin 144440 -> 148328 bytes bundles/noos_mini/ING9168xx/apis.json | 520 ++++++------ bundles/noos_mini/ING9168xx/meta.json | 8 +- bundles/noos_mini/ING9168xx/platform.bin | Bin 144904 -> 148808 bytes bundles/noos_typical/ING9168xx/apis.json | 532 ++++++------ bundles/noos_typical/ING9168xx/meta.json | 6 +- bundles/noos_typical/ING9168xx/platform.bin | Bin 144440 -> 148328 bytes bundles/typical/ING9168xx/apis.json | 690 +++++++-------- bundles/typical/ING9168xx/meta.json | 6 +- bundles/typical/ING9168xx/platform.bin | Bin 155316 -> 159196 bytes .../peripheral_ibeacon/generic_cortex.icf | 6 +- examples/bqb_rf/bqb_rf.ingw | 10 +- examples/bqb_rf/bqb_rf.uvproj | 4 +- examples/bqb_rf/bqb_rf.uvprojx | 4 +- examples/bqb_rf/flash_download.ini | 2 +- examples/bqb_rf/init.ini | 4 +- .../pairing_with_oob/pairing_with_oob.ingw | 2 +- examples/pawr/flash_download.ini | 2 +- examples/pawr/init.ini | 4 +- examples/pawr/pawr.ingw | 10 +- examples/pawr/pawr.uvproj | 4 +- examples/pawr/pawr.uvprojx | 4 +- .../flash_download.ini | 2 +- examples/peripheral_console_realtime/init.ini | 4 +- .../peripheral_console_realtime.ingw | 16 +- .../peripheral_console_realtime.sct | 6 +- .../peripheral_console_realtime.uvproj | 8 +- .../peripheral_console_realtime.uvprojx | 8 +- examples/voice_remote_ctrl/flash_download.ini | 2 +- examples/voice_remote_ctrl/init.ini | 4 +- .../voice_remote_ctrl/voice_remote_ctrl.ingw | 10 +- .../voice_remote_ctrl.uvproj | 4 +- .../voice_remote_ctrl.uvprojx | 4 +- src/Tools/platform_util.c | 16 +- src/Tools/platform_util.h | 12 +- 55 files changed, 3328 insertions(+), 3306 deletions(-) diff --git a/bundles/exp/ING9168xx/apis.json b/bundles/exp/ING9168xx/apis.json index 008a94081..cf43988de 100644 --- a/bundles/exp/ING9168xx/apis.json +++ b/bundles/exp/ING9168xx/apis.json @@ -1,399 +1,399 @@ { - "att_dispatch_client_can_send_now": "0x020044bd", - "att_dispatch_client_request_can_send_now_event": "0x020044c3", - "att_dispatch_register_client": "0x020044c9", - "att_dispatch_register_server": "0x020044dd", - "att_dispatch_server_can_send_now": "0x020044f1", - "att_dispatch_server_request_can_send_now_event": "0x020044f7", - "att_emit_general_event": "0x020045a9", - "att_server_can_send_packet_now": "0x02004ce1", - "att_server_deferred_read_response": "0x02004ce5", - "att_server_get_mtu": "0x02004cfd", - "att_server_indicate": "0x02004d75", - "att_server_init": "0x02004df9", - "att_server_notify": "0x02004e35", - "att_server_register_packet_handler": "0x02004f4d", - "att_server_request_can_send_now_event": "0x02004f59", - "att_set_db": "0x02004f75", - "att_set_read_callback": "0x02004f89", - "att_set_write_callback": "0x02004f95", - "bd_addr_cmp": "0x02005165", - "bd_addr_copy": "0x0200516b", - "bd_addr_to_str": "0x02005175", - "big_endian_read_16": "0x020051ad", - "big_endian_read_32": "0x020051b5", - "big_endian_store_16": "0x020051c9", - "big_endian_store_32": "0x020051d5", - "btstack_config": "0x02005335", - "btstack_memory_pool_create": "0x02005475", - "btstack_memory_pool_free": "0x0200549d", - "btstack_memory_pool_get": "0x020054fd", - "btstack_push_user_msg": "0x02005565", - "btstack_push_user_runnable": "0x02005571", - "btstack_reset": "0x0200557d", - "char_for_nibble": "0x020058b3", - "eTaskConfirmSleepModeStatus": "0x02005c65", - "gap_add_dev_to_periodic_list": "0x020062d5", - "gap_add_whitelist": "0x020062e5", - "gap_aes_encrypt": "0x020062f1", - "gap_clear_white_lists": "0x02006329", - "gap_clr_adv_set": "0x02006335", - "gap_clr_periodic_adv_list": "0x02006341", - "gap_create_connection_cancel": "0x0200634d", - "gap_default_periodic_adv_sync_transfer_param": "0x02006359", - "gap_disconnect": "0x02006371", - "gap_disconnect_all": "0x0200639d", - "gap_ext_create_connection": "0x020063dd", - "gap_ext_create_connection_v2": "0x02006489", - "gap_get_connection_parameter_range": "0x02006589", - "gap_le_read_channel_map": "0x020065c5", - "gap_periodic_adv_create_sync": "0x02006631", - "gap_periodic_adv_create_sync_cancel": "0x02006655", - "gap_periodic_adv_set_info_transfer": "0x02006661", - "gap_periodic_adv_sync_transfer": "0x02006671", - "gap_periodic_adv_sync_transfer_param": "0x02006681", - "gap_periodic_adv_term_sync": "0x0200669d", - "gap_read_antenna_info": "0x02006725", - "gap_read_local_tx_power_level": "0x0200673d", - "gap_read_periodic_adv_list_size": "0x0200674d", - "gap_read_phy": "0x02006759", - "gap_read_remote_tx_power_level": "0x02006765", - "gap_read_remote_used_features": "0x02006775", - "gap_read_remote_version": "0x02006781", - "gap_read_rssi": "0x0200678d", - "gap_remove_whitelist": "0x02006799", - "gap_rmv_adv_set": "0x02006815", - "gap_rmv_dev_from_periodic_list": "0x02006821", - "gap_rx_test_v2": "0x02006831", - "gap_rx_test_v3": "0x02006841", - "gap_set_adv_set_random_addr": "0x0200688d", - "gap_set_callback_for_next_hci": "0x020068c9", - "gap_set_connection_cte_request_enable": "0x020068e9", - "gap_set_connection_cte_response_enable": "0x02006905", - "gap_set_connection_cte_rx_param": "0x02006915", - "gap_set_connection_cte_tx_param": "0x02006969", - "gap_set_connection_parameter_range": "0x020069b5", - "gap_set_connectionless_cte_tx_enable": "0x020069cd", - "gap_set_connectionless_cte_tx_param": "0x020069dd", - "gap_set_connectionless_iq_sampling_enable": "0x02006a39", - "gap_set_data_length": "0x02006a95", - "gap_set_def_phy": "0x02006aad", - "gap_set_default_subrate": "0x02006abd", - "gap_set_ext_adv_data": "0x02006ad9", - "gap_set_ext_adv_enable": "0x02006af1", - "gap_set_ext_adv_para": "0x02006b61", - "gap_set_ext_scan_enable": "0x02006c31", - "gap_set_ext_scan_para": "0x02006c49", - "gap_set_ext_scan_response_data": "0x02006ce9", - "gap_set_host_channel_classification": "0x02006d01", - "gap_set_path_loss_reporting_enable": "0x02006d11", - "gap_set_path_loss_reporting_param": "0x02006d21", - "gap_set_periodic_adv_data": "0x02006d3d", - "gap_set_periodic_adv_enable": "0x02006dad", - "gap_set_periodic_adv_para": "0x02006dbd", - "gap_set_periodic_adv_para_v2": "0x02006dd5", - "gap_set_periodic_adv_rsp_data": "0x02006df9", - "gap_set_periodic_adv_rx_enable": "0x02006e1d", - "gap_set_periodic_adv_subevent_data": "0x02006e2d", - "gap_set_periodic_sync_subevent": "0x02006ec5", - "gap_set_phy": "0x02006edd", - "gap_set_random_device_address": "0x02006ef9", - "gap_set_tx_power_reporting_enable": "0x02006f19", - "gap_start_ccm": "0x02006f39", - "gap_subrate_request": "0x02006f81", - "gap_test_end": "0x02006f9d", - "gap_tx_test_v2": "0x02006fa9", - "gap_tx_test_v4": "0x02006fc1", - "gap_update_connection_parameters": "0x02006fe5", - "gap_vendor_tx_continuous_wave": "0x02007029", - "gatt_client_cancel_write": "0x02007551", - "gatt_client_discover_characteristic_descriptors": "0x02007577", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020075b7", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x02007607", - "gatt_client_discover_characteristics_for_service": "0x02007657", - "gatt_client_discover_primary_services": "0x0200768d", - "gatt_client_discover_primary_services_by_uuid128": "0x020076bf", - "gatt_client_discover_primary_services_by_uuid16": "0x02007703", - "gatt_client_execute_write": "0x02007741", - "gatt_client_find_included_services_for_service": "0x02007767", - "gatt_client_get_mtu": "0x02007795", - "gatt_client_is_ready": "0x02007859", - "gatt_client_listen_for_characteristic_value_updates": "0x0200786f", - "gatt_client_prepare_write": "0x02007891", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020078cd", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020078f7", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020078fd", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0200792b", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02007931", - "gatt_client_read_multiple_characteristic_values": "0x0200795f", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x0200798f", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x020079bd", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x02007a09", - "gatt_client_register_handler": "0x02007a55", - "gatt_client_reliable_write_long_value_of_characteristic": "0x02007a61", - "gatt_client_signed_write_without_response": "0x02007e95", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007f59", - "gatt_client_write_client_characteristic_configuration": "0x02007f93", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007fe5", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007ff5", - "gatt_client_write_long_value_of_characteristic": "0x02008031", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x02008041", - "gatt_client_write_value_of_characteristic": "0x0200807d", - "gatt_client_write_value_of_characteristic_without_response": "0x020080b3", - "hci_add_event_handler": "0x02009761", - "hci_power_control": "0x02009f09", - "hci_register_acl_packet_handler": "0x0200a0bd", - "kv_commit": "0x0200a7f5", - "kv_get": "0x0200a851", - "kv_init": "0x0200a85d", - "kv_init_backend": "0x0200a8dd", - "kv_put": "0x0200a8f1", - "kv_remove": "0x0200a8fd", - "kv_remove_all": "0x0200a931", - "kv_value_modified": "0x0200a961", - "kv_value_modified_of_key": "0x0200a97d", - "kv_visit": "0x0200a989", - "l2cap_add_event_handler": "0x0200aa19", - "l2cap_can_send_packet_now": "0x0200aa29", - "l2cap_create_le_credit_based_connection_request": "0x0200abed", - "l2cap_credit_based_send": "0x0200ad35", - "l2cap_credit_based_send_continue": "0x0200ad61", - "l2cap_disconnect": "0x0200addd", - "l2cap_get_le_credit_based_connection_credits": "0x0200afc9", - "l2cap_get_peer_mtu_for_local_cid": "0x0200afe5", - "l2cap_init": "0x0200b425", - "l2cap_le_send_flow_control_credit": "0x0200b51b", - "l2cap_max_le_mtu": "0x0200b829", - "l2cap_register_packet_handler": "0x0200b951", - "l2cap_register_service": "0x0200b95d", - "l2cap_request_can_send_now_event": "0x0200ba6d", - "l2cap_request_connection_parameter_update": "0x0200ba87", - "l2cap_send_echo_request": "0x0200bf69", - "l2cap_unregister_service": "0x0200c049", - "le_device_db_add": "0x0200c0a1", - "le_device_db_find": "0x0200c179", - "le_device_db_from_key": "0x0200c1a5", - "le_device_db_iter_cur": "0x0200c1ad", - "le_device_db_iter_cur_key": "0x0200c1b1", - "le_device_db_iter_init": "0x0200c1b5", - "le_device_db_iter_next": "0x0200c1bd", - "le_device_db_remove_key": "0x0200c1e3", - "ll_ackable_packet_alloc": "0x0200c20f", - "ll_ackable_packet_get_status": "0x0200c34b", - "ll_ackable_packet_run": "0x0200c3b9", - "ll_ackable_packet_set_tx_data": "0x0200c471", - "ll_adjust_conn_peer_tx_power": "0x0200c48d", - "ll_aes_encrypt": "0x0200c4b9", - "ll_allow_nonstandard_adv_type": "0x0200c52d", - "ll_attach_cte_to_adv_set": "0x0200c545", - "ll_channel_monitor_alloc": "0x0200c6dd", - "ll_channel_monitor_check_each_pdu": "0x0200c75f", - "ll_channel_monitor_run": "0x0200c7c1", - "ll_config": "0x0200c891", - "ll_conn_abort": "0x0200c8ad", - "ll_create_conn": "0x0200c8e1", - "ll_dhkey_generated": "0x0200cb5d", - "ll_free": "0x0200cb91", - "ll_get_conn_events_info": "0x0200cb9d", - "ll_get_conn_info": "0x0200cc85", - "ll_get_heap_free_size": "0x0200ccd5", - "ll_hint_on_ce_len": "0x0200cce9", - "ll_install_ecc_engine": "0x0200cd21", - "ll_legacy_adv_set_interval": "0x0200cd2d", - "ll_lock_frequency": "0x0200cd3d", - "ll_malloc": "0x0200cda1", - "ll_override_whitening_init_value": "0x0200cda9", - "ll_p256_key_pair_generated": "0x0200cdc1", - "ll_raw_packet_alloc": "0x0200cf05", - "ll_raw_packet_free": "0x0200cfd9", - "ll_raw_packet_get_bare_rx_data": "0x0200d011", - "ll_raw_packet_get_iq_samples": "0x0200d0d1", - "ll_raw_packet_get_rx_data": "0x0200d16b", - "ll_raw_packet_recv": "0x0200d21d", - "ll_raw_packet_send": "0x0200d2f1", - "ll_raw_packet_set_bare_data": "0x0200d40d", - "ll_raw_packet_set_bare_mode": "0x0200d44b", - "ll_raw_packet_set_fake_cte_info": "0x0200d54f", - "ll_raw_packet_set_param": "0x0200d571", - "ll_raw_packet_set_rx_cte": "0x0200d5d3", - "ll_raw_packet_set_tx_cte": "0x0200d669", - "ll_raw_packet_set_tx_data": "0x0200d6a9", - "ll_register_hci_acl_previewer": "0x0200d711", - "ll_scan_set_fixed_channel": "0x0200d775", - "ll_scanner_enable_iq_sampling": "0x0200d781", - "ll_scanner_enable_iq_sampling_on_legacy": "0x0200d829", - "ll_set_adv_access_address": "0x0200db19", - "ll_set_adv_coded_scheme": "0x0200db25", - "ll_set_conn_acl_report_latency": "0x0200db5d", - "ll_set_conn_coded_scheme": "0x0200db8d", - "ll_set_conn_interval_unit": "0x0200dbb9", - "ll_set_conn_latency": "0x0200dbc5", - "ll_set_conn_tx_power": "0x0200dbf5", - "ll_set_cte_bit": "0x0200dc25", - "ll_set_def_antenna": "0x0200dc4d", - "ll_set_initiating_coded_scheme": "0x0200dc6d", - "ll_set_max_conn_number": "0x0200dc79", - "ll_set_tx_power_range": "0x0200dd21", - "ll_unlock_frequency": "0x0200dd49", - "nibble_for_char": "0x02022495", - "platform_calibrate_rt_clk": "0x0202253f", - "platform_call_on_stack": "0x020021fb", - "platform_config": "0x02022545", - "platform_delete_timer": "0x0202266d", - "platform_enable_irq": "0x02022675", - "platform_get_current_task": "0x020226a9", - "platform_get_gen_os_driver": "0x020226cd", - "platform_get_heap_status": "0x020226d5", - "platform_get_link_layer_interf": "0x020226ed", - "platform_get_task_handle": "0x020226f5", - "platform_get_timer_counter": "0x02022715", - "platform_get_us_time": "0x02022719", - "platform_get_version": "0x0202271d", - "platform_hrng": "0x02022725", - "platform_install_isr_stack": "0x0202272d", - "platform_install_task_stack": "0x02022739", - "platform_patch_rf_init_data": "0x02022771", - "platform_printf": "0x0202277d", - "platform_raise_assertion": "0x02022791", - "platform_rand": "0x020227a5", - "platform_read_info": "0x020227a9", - "platform_read_persistent_reg": "0x020227d9", - "platform_reset": "0x020227e5", - "platform_rt_rc_auto_tune": "0x020227f9", - "platform_rt_rc_auto_tune2": "0x02022801", - "platform_rt_rc_tune": "0x02022869", - "platform_set_abs_timer": "0x02022885", - "platform_set_evt_callback": "0x02022889", - "platform_set_evt_callback_table": "0x0202289d", - "platform_set_irq_callback": "0x020228a9", - "platform_set_irq_callback_table": "0x020228c5", - "platform_set_rf_clk_source": "0x020228d1", - "platform_set_rf_init_data": "0x020228dd", - "platform_set_rf_power_mapping": "0x020228e9", - "platform_set_timer": "0x020228f5", - "platform_shutdown": "0x020228f9", - "platform_switch_app": "0x020228fd", - "platform_trace_raw": "0x02022915", - "platform_write_persistent_reg": "0x0202292d", - "printf_hexdump": "0x02022ae5", - "pvPortMalloc": "0x020235bd", - "pvTaskIncrementMutexHeldCount": "0x020236a5", - "pvTimerGetTimerID": "0x020236bd", - "pxPortInitialiseStack": "0x020236e9", - "reverse_128": "0x020238d1", - "reverse_24": "0x020238d7", - "reverse_256": "0x020238dd", - "reverse_48": "0x020238e3", - "reverse_56": "0x020238e9", - "reverse_64": "0x020238ef", - "reverse_bd_addr": "0x020238f5", - "reverse_bytes": "0x020238fb", - "sm_add_event_handler": "0x02023c79", - "sm_address_resolution_lookup": "0x02023dbd", - "sm_authenticated": "0x020241e9", - "sm_authorization_decline": "0x020241f7", - "sm_authorization_grant": "0x02024217", - "sm_authorization_state": "0x02024237", - "sm_bonding_decline": "0x02024251", - "sm_config": "0x020246cd", - "sm_config_conn": "0x020246e5", - "sm_encryption_key_size": "0x0202489b", - "sm_just_works_confirm": "0x020255ed", - "sm_le_device_key": "0x020259cd", - "sm_numeric_comparison_confirm": "0x02025b1f", - "sm_passkey_input": "0x02025b5d", - "sm_private_random_address_generation_get": "0x02026161", - "sm_private_random_address_generation_get_mode": "0x02026169", - "sm_private_random_address_generation_set_mode": "0x02026175", - "sm_private_random_address_generation_set_update_period": "0x0202619d", - "sm_register_external_ltk_callback": "0x02026429", - "sm_register_oob_data_callback": "0x02026435", - "sm_register_sc_oob_data_callback": "0x02026441", - "sm_request_pairing": "0x0202644d", - "sm_sc_generate_oob_data": "0x02027089", - "sm_send_security_request": "0x020271b9", - "sm_set_accepted_stk_generation_methods": "0x020271e1", - "sm_set_authentication_requirements": "0x020271ed", - "sm_set_encryption_key_size_range": "0x020271f9", - "sscanf_bd_addr": "0x0202761d", - "sysSetPublicDeviceAddr": "0x02027b49", - "uuid128_to_str": "0x020283c9", - "uuid_add_bluetooth_prefix": "0x02028421", - "uuid_has_bluetooth_prefix": "0x02028441", - "uxListRemove": "0x0202845d", - "uxQueueMessagesWaiting": "0x02028485", - "uxQueueMessagesWaitingFromISR": "0x020284ad", - "uxQueueSpacesAvailable": "0x020284c9", - "uxTaskGetStackHighWaterMark": "0x020284f5", - "uxTaskPriorityGet": "0x02028515", - "uxTaskPriorityGetFromISR": "0x02028531", - "vListInitialise": "0x020285ef", - "vListInitialiseItem": "0x02028605", - "vListInsert": "0x0202860b", - "vListInsertEnd": "0x0202863b", - "vPortEndScheduler": "0x02028655", - "vPortEnterCritical": "0x02028681", - "vPortExitCritical": "0x020286c5", - "vPortFree": "0x020286f9", - "vPortSuppressTicksAndSleep": "0x0202879d", - "vPortValidateInterruptPriority": "0x020288c5", - "vQueueDelete": "0x02028921", - "vQueueWaitForMessageRestricted": "0x0202894d", - "vTaskDelay": "0x02028991", - "vTaskInternalSetTimeOutState": "0x020289dd", - "vTaskMissedYield": "0x020289ed", - "vTaskPlaceOnEventList": "0x020289f9", - "vTaskPlaceOnEventListRestricted": "0x02028a31", - "vTaskPriorityDisinheritAfterTimeout": "0x02028a71", - "vTaskPrioritySet": "0x02028b1d", - "vTaskResume": "0x02028be5", - "vTaskStartScheduler": "0x02028c69", - "vTaskStepTick": "0x02028cf9", - "vTaskSuspend": "0x02028d29", - "vTaskSuspendAll": "0x02028de5", - "vTaskSwitchContext": "0x02028df5", - "xPortStartScheduler": "0x02028ea5", - "xQueueAddToSet": "0x02028fa9", - "xQueueCreateCountingSemaphore": "0x02028fcd", - "xQueueCreateCountingSemaphoreStatic": "0x02029009", - "xQueueCreateMutex": "0x0202904d", - "xQueueCreateMutexStatic": "0x02029063", - "xQueueCreateSet": "0x0202907d", - "xQueueGenericCreate": "0x02029085", - "xQueueGenericCreateStatic": "0x020290d1", - "xQueueGenericReset": "0x02029139", - "xQueueGenericSend": "0x020291c5", - "xQueueGenericSendFromISR": "0x02029331", - "xQueueGiveFromISR": "0x020293f1", - "xQueueGiveMutexRecursive": "0x02029495", - "xQueueIsQueueEmptyFromISR": "0x020294d5", - "xQueueIsQueueFullFromISR": "0x020294f9", - "xQueuePeek": "0x02029521", - "xQueuePeekFromISR": "0x02029649", - "xQueueReceive": "0x020296b5", - "xQueueReceiveFromISR": "0x020297e1", - "xQueueRemoveFromSet": "0x02029875", - "xQueueSelectFromSet": "0x02029897", - "xQueueSelectFromSetFromISR": "0x020298a9", - "xQueueSemaphoreTake": "0x020298bd", - "xQueueTakeMutexRecursive": "0x02029a29", - "xTaskCheckForTimeOut": "0x02029a6d", - "xTaskCreate": "0x02029add", - "xTaskCreateStatic": "0x02029b39", - "xTaskGetCurrentTaskHandle": "0x02029ba9", - "xTaskGetSchedulerState": "0x02029bb5", - "xTaskGetTickCount": "0x02029bd1", - "xTaskGetTickCountFromISR": "0x02029bdd", - "xTaskIncrementTick": "0x02029bed", - "xTaskPriorityDisinherit": "0x02029cb9", - "xTaskPriorityInherit": "0x02029d4d", - "xTaskRemoveFromEventList": "0x02029de1", - "xTaskResumeAll": "0x02029e61", - "xTaskResumeFromISR": "0x02029f29", - "xTimerCreate": "0x02029fb5", - "xTimerCreateStatic": "0x02029fe9", - "xTimerCreateTimerTask": "0x0202a021", - "xTimerGenericCommand": "0x0202a08d", - "xTimerGetExpiryTime": "0x0202a0fd", - "xTimerGetTimerDaemonTaskHandle": "0x0202a11d" + "att_dispatch_client_can_send_now": "0x020053bd", + "att_dispatch_client_request_can_send_now_event": "0x020053c3", + "att_dispatch_register_client": "0x020053c9", + "att_dispatch_register_server": "0x020053dd", + "att_dispatch_server_can_send_now": "0x020053f1", + "att_dispatch_server_request_can_send_now_event": "0x020053f7", + "att_emit_general_event": "0x020054a9", + "att_server_can_send_packet_now": "0x02005be1", + "att_server_deferred_read_response": "0x02005be5", + "att_server_get_mtu": "0x02005bfd", + "att_server_indicate": "0x02005c75", + "att_server_init": "0x02005cf9", + "att_server_notify": "0x02005d35", + "att_server_register_packet_handler": "0x02005e4d", + "att_server_request_can_send_now_event": "0x02005e59", + "att_set_db": "0x02005e75", + "att_set_read_callback": "0x02005e89", + "att_set_write_callback": "0x02005e95", + "bd_addr_cmp": "0x02006065", + "bd_addr_copy": "0x0200606b", + "bd_addr_to_str": "0x02006075", + "big_endian_read_16": "0x020060ad", + "big_endian_read_32": "0x020060b5", + "big_endian_store_16": "0x020060c9", + "big_endian_store_32": "0x020060d5", + "btstack_config": "0x02006235", + "btstack_memory_pool_create": "0x02006375", + "btstack_memory_pool_free": "0x0200639d", + "btstack_memory_pool_get": "0x020063fd", + "btstack_push_user_msg": "0x02006465", + "btstack_push_user_runnable": "0x02006471", + "btstack_reset": "0x0200647d", + "char_for_nibble": "0x020067b3", + "eTaskConfirmSleepModeStatus": "0x02006b65", + "gap_add_dev_to_periodic_list": "0x020071d5", + "gap_add_whitelist": "0x020071e5", + "gap_aes_encrypt": "0x020071f1", + "gap_clear_white_lists": "0x02007229", + "gap_clr_adv_set": "0x02007235", + "gap_clr_periodic_adv_list": "0x02007241", + "gap_create_connection_cancel": "0x0200724d", + "gap_default_periodic_adv_sync_transfer_param": "0x02007259", + "gap_disconnect": "0x02007271", + "gap_disconnect_all": "0x0200729d", + "gap_ext_create_connection": "0x020072dd", + "gap_ext_create_connection_v2": "0x02007389", + "gap_get_connection_parameter_range": "0x02007489", + "gap_le_read_channel_map": "0x020074c5", + "gap_periodic_adv_create_sync": "0x02007531", + "gap_periodic_adv_create_sync_cancel": "0x02007555", + "gap_periodic_adv_set_info_transfer": "0x02007561", + "gap_periodic_adv_sync_transfer": "0x02007571", + "gap_periodic_adv_sync_transfer_param": "0x02007581", + "gap_periodic_adv_term_sync": "0x0200759d", + "gap_read_antenna_info": "0x02007625", + "gap_read_local_tx_power_level": "0x0200763d", + "gap_read_periodic_adv_list_size": "0x0200764d", + "gap_read_phy": "0x02007659", + "gap_read_remote_tx_power_level": "0x02007665", + "gap_read_remote_used_features": "0x02007675", + "gap_read_remote_version": "0x02007681", + "gap_read_rssi": "0x0200768d", + "gap_remove_whitelist": "0x02007699", + "gap_rmv_adv_set": "0x02007715", + "gap_rmv_dev_from_periodic_list": "0x02007721", + "gap_rx_test_v2": "0x02007731", + "gap_rx_test_v3": "0x02007741", + "gap_set_adv_set_random_addr": "0x0200778d", + "gap_set_callback_for_next_hci": "0x020077c9", + "gap_set_connection_cte_request_enable": "0x020077e9", + "gap_set_connection_cte_response_enable": "0x02007805", + "gap_set_connection_cte_rx_param": "0x02007815", + "gap_set_connection_cte_tx_param": "0x02007869", + "gap_set_connection_parameter_range": "0x020078b5", + "gap_set_connectionless_cte_tx_enable": "0x020078cd", + "gap_set_connectionless_cte_tx_param": "0x020078dd", + "gap_set_connectionless_iq_sampling_enable": "0x02007939", + "gap_set_data_length": "0x02007995", + "gap_set_def_phy": "0x020079ad", + "gap_set_default_subrate": "0x020079bd", + "gap_set_ext_adv_data": "0x020079d9", + "gap_set_ext_adv_enable": "0x020079f1", + "gap_set_ext_adv_para": "0x02007a61", + "gap_set_ext_scan_enable": "0x02007b31", + "gap_set_ext_scan_para": "0x02007b49", + "gap_set_ext_scan_response_data": "0x02007be9", + "gap_set_host_channel_classification": "0x02007c01", + "gap_set_path_loss_reporting_enable": "0x02007c11", + "gap_set_path_loss_reporting_param": "0x02007c21", + "gap_set_periodic_adv_data": "0x02007c3d", + "gap_set_periodic_adv_enable": "0x02007cad", + "gap_set_periodic_adv_para": "0x02007cbd", + "gap_set_periodic_adv_para_v2": "0x02007cd5", + "gap_set_periodic_adv_rsp_data": "0x02007cf9", + "gap_set_periodic_adv_rx_enable": "0x02007d1d", + "gap_set_periodic_adv_subevent_data": "0x02007d2d", + "gap_set_periodic_sync_subevent": "0x02007dc5", + "gap_set_phy": "0x02007ddd", + "gap_set_random_device_address": "0x02007df9", + "gap_set_tx_power_reporting_enable": "0x02007e19", + "gap_start_ccm": "0x02007e39", + "gap_subrate_request": "0x02007e81", + "gap_test_end": "0x02007e9d", + "gap_tx_test_v2": "0x02007ea9", + "gap_tx_test_v4": "0x02007ec1", + "gap_update_connection_parameters": "0x02007ee5", + "gap_vendor_tx_continuous_wave": "0x02007f29", + "gatt_client_cancel_write": "0x02008451", + "gatt_client_discover_characteristic_descriptors": "0x02008477", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020084b7", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x02008507", + "gatt_client_discover_characteristics_for_service": "0x02008557", + "gatt_client_discover_primary_services": "0x0200858d", + "gatt_client_discover_primary_services_by_uuid128": "0x020085bf", + "gatt_client_discover_primary_services_by_uuid16": "0x02008603", + "gatt_client_execute_write": "0x02008641", + "gatt_client_find_included_services_for_service": "0x02008667", + "gatt_client_get_mtu": "0x02008695", + "gatt_client_is_ready": "0x02008759", + "gatt_client_listen_for_characteristic_value_updates": "0x0200876f", + "gatt_client_prepare_write": "0x02008791", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020087cd", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020087f7", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020087fd", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0200882b", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02008831", + "gatt_client_read_multiple_characteristic_values": "0x0200885f", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x0200888f", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x020088bd", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x02008909", + "gatt_client_register_handler": "0x02008955", + "gatt_client_reliable_write_long_value_of_characteristic": "0x02008961", + "gatt_client_signed_write_without_response": "0x02008d95", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02008e59", + "gatt_client_write_client_characteristic_configuration": "0x02008e93", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02008ee5", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02008ef5", + "gatt_client_write_long_value_of_characteristic": "0x02008f31", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x02008f41", + "gatt_client_write_value_of_characteristic": "0x02008f7d", + "gatt_client_write_value_of_characteristic_without_response": "0x02008fb3", + "hci_add_event_handler": "0x0200a661", + "hci_power_control": "0x0200ae09", + "hci_register_acl_packet_handler": "0x0200afbd", + "kv_commit": "0x0200b6f5", + "kv_get": "0x0200b751", + "kv_init": "0x0200b75d", + "kv_init_backend": "0x0200b7dd", + "kv_put": "0x0200b7f1", + "kv_remove": "0x0200b7fd", + "kv_remove_all": "0x0200b831", + "kv_value_modified": "0x0200b861", + "kv_value_modified_of_key": "0x0200b87d", + "kv_visit": "0x0200b889", + "l2cap_add_event_handler": "0x0200b919", + "l2cap_can_send_packet_now": "0x0200b929", + "l2cap_create_le_credit_based_connection_request": "0x0200baed", + "l2cap_credit_based_send": "0x0200bc35", + "l2cap_credit_based_send_continue": "0x0200bc61", + "l2cap_disconnect": "0x0200bcdd", + "l2cap_get_le_credit_based_connection_credits": "0x0200bec9", + "l2cap_get_peer_mtu_for_local_cid": "0x0200bee5", + "l2cap_init": "0x0200c325", + "l2cap_le_send_flow_control_credit": "0x0200c41b", + "l2cap_max_le_mtu": "0x0200c729", + "l2cap_register_packet_handler": "0x0200c851", + "l2cap_register_service": "0x0200c85d", + "l2cap_request_can_send_now_event": "0x0200c96d", + "l2cap_request_connection_parameter_update": "0x0200c987", + "l2cap_send_echo_request": "0x0200ce69", + "l2cap_unregister_service": "0x0200cf49", + "le_device_db_add": "0x0200cfa1", + "le_device_db_find": "0x0200d079", + "le_device_db_from_key": "0x0200d0a5", + "le_device_db_iter_cur": "0x0200d0ad", + "le_device_db_iter_cur_key": "0x0200d0b1", + "le_device_db_iter_init": "0x0200d0b5", + "le_device_db_iter_next": "0x0200d0bd", + "le_device_db_remove_key": "0x0200d0e3", + "ll_ackable_packet_alloc": "0x0200d10f", + "ll_ackable_packet_get_status": "0x0200d24b", + "ll_ackable_packet_run": "0x0200d2b9", + "ll_ackable_packet_set_tx_data": "0x0200d371", + "ll_adjust_conn_peer_tx_power": "0x0200d38d", + "ll_aes_encrypt": "0x0200d3b9", + "ll_allow_nonstandard_adv_type": "0x0200d42d", + "ll_attach_cte_to_adv_set": "0x0200d445", + "ll_channel_monitor_alloc": "0x0200d5dd", + "ll_channel_monitor_check_each_pdu": "0x0200d65f", + "ll_channel_monitor_run": "0x0200d6c1", + "ll_config": "0x0200d791", + "ll_conn_abort": "0x0200d7ad", + "ll_create_conn": "0x0200d7e1", + "ll_dhkey_generated": "0x0200da5d", + "ll_free": "0x0200da91", + "ll_get_conn_events_info": "0x0200da9d", + "ll_get_conn_info": "0x0200db85", + "ll_get_heap_free_size": "0x0200dbd5", + "ll_hint_on_ce_len": "0x0200dbe9", + "ll_install_ecc_engine": "0x0200dc21", + "ll_legacy_adv_set_interval": "0x0200dc2d", + "ll_lock_frequency": "0x0200dc3d", + "ll_malloc": "0x0200dca1", + "ll_override_whitening_init_value": "0x0200dca9", + "ll_p256_key_pair_generated": "0x0200dcc1", + "ll_raw_packet_alloc": "0x0200de05", + "ll_raw_packet_free": "0x0200ded9", + "ll_raw_packet_get_bare_rx_data": "0x0200df11", + "ll_raw_packet_get_iq_samples": "0x0200dfd1", + "ll_raw_packet_get_rx_data": "0x0200e06b", + "ll_raw_packet_recv": "0x0200e11d", + "ll_raw_packet_send": "0x0200e1f1", + "ll_raw_packet_set_bare_data": "0x0200e30d", + "ll_raw_packet_set_bare_mode": "0x0200e34b", + "ll_raw_packet_set_fake_cte_info": "0x0200e44f", + "ll_raw_packet_set_param": "0x0200e471", + "ll_raw_packet_set_rx_cte": "0x0200e4d3", + "ll_raw_packet_set_tx_cte": "0x0200e569", + "ll_raw_packet_set_tx_data": "0x0200e5a9", + "ll_register_hci_acl_previewer": "0x0200e611", + "ll_scan_set_fixed_channel": "0x0200e675", + "ll_scanner_enable_iq_sampling": "0x0200e681", + "ll_scanner_enable_iq_sampling_on_legacy": "0x0200e729", + "ll_set_adv_access_address": "0x0200ea19", + "ll_set_adv_coded_scheme": "0x0200ea25", + "ll_set_conn_acl_report_latency": "0x0200ea5d", + "ll_set_conn_coded_scheme": "0x0200ea8d", + "ll_set_conn_interval_unit": "0x0200eab9", + "ll_set_conn_latency": "0x0200eac5", + "ll_set_conn_tx_power": "0x0200eaf5", + "ll_set_cte_bit": "0x0200eb25", + "ll_set_def_antenna": "0x0200eb4d", + "ll_set_initiating_coded_scheme": "0x0200eb6d", + "ll_set_max_conn_number": "0x0200eb79", + "ll_set_tx_power_range": "0x0200ec21", + "ll_unlock_frequency": "0x0200ec49", + "nibble_for_char": "0x020233a9", + "platform_calibrate_rt_clk": "0x02023453", + "platform_call_on_stack": "0x020030fb", + "platform_config": "0x02023459", + "platform_delete_timer": "0x02023581", + "platform_enable_irq": "0x02023589", + "platform_get_current_task": "0x020235bd", + "platform_get_gen_os_driver": "0x020235e1", + "platform_get_heap_status": "0x020235e9", + "platform_get_link_layer_interf": "0x02023601", + "platform_get_task_handle": "0x02023609", + "platform_get_timer_counter": "0x02023629", + "platform_get_us_time": "0x0202362d", + "platform_get_version": "0x02023631", + "platform_hrng": "0x0202364d", + "platform_install_isr_stack": "0x02023655", + "platform_install_task_stack": "0x02023661", + "platform_patch_rf_init_data": "0x02023699", + "platform_printf": "0x020236a5", + "platform_raise_assertion": "0x020236b9", + "platform_rand": "0x020236cd", + "platform_read_info": "0x020236d1", + "platform_read_persistent_reg": "0x02023701", + "platform_reset": "0x0202370d", + "platform_rt_rc_auto_tune": "0x02023721", + "platform_rt_rc_auto_tune2": "0x02023729", + "platform_rt_rc_tune": "0x02023791", + "platform_set_abs_timer": "0x020237ad", + "platform_set_evt_callback": "0x020237b1", + "platform_set_evt_callback_table": "0x020237c5", + "platform_set_irq_callback": "0x020237d1", + "platform_set_irq_callback_table": "0x020237ed", + "platform_set_rf_clk_source": "0x020237f9", + "platform_set_rf_init_data": "0x02023805", + "platform_set_rf_power_mapping": "0x02023811", + "platform_set_timer": "0x0202381d", + "platform_shutdown": "0x02023821", + "platform_switch_app": "0x02023825", + "platform_trace_raw": "0x0202383d", + "platform_write_persistent_reg": "0x02023855", + "printf_hexdump": "0x02023a0d", + "pvPortMalloc": "0x020244e5", + "pvTaskIncrementMutexHeldCount": "0x020245cd", + "pvTimerGetTimerID": "0x020245e5", + "pxPortInitialiseStack": "0x02024611", + "reverse_128": "0x020247f9", + "reverse_24": "0x020247ff", + "reverse_256": "0x02024805", + "reverse_48": "0x0202480b", + "reverse_56": "0x02024811", + "reverse_64": "0x02024817", + "reverse_bd_addr": "0x0202481d", + "reverse_bytes": "0x02024823", + "sm_add_event_handler": "0x02024ba1", + "sm_address_resolution_lookup": "0x02024ce5", + "sm_authenticated": "0x02025111", + "sm_authorization_decline": "0x0202511f", + "sm_authorization_grant": "0x0202513f", + "sm_authorization_state": "0x0202515f", + "sm_bonding_decline": "0x02025179", + "sm_config": "0x020255f5", + "sm_config_conn": "0x0202560d", + "sm_encryption_key_size": "0x020257c3", + "sm_just_works_confirm": "0x02026515", + "sm_le_device_key": "0x020268f5", + "sm_numeric_comparison_confirm": "0x02026a47", + "sm_passkey_input": "0x02026a85", + "sm_private_random_address_generation_get": "0x02027089", + "sm_private_random_address_generation_get_mode": "0x02027091", + "sm_private_random_address_generation_set_mode": "0x0202709d", + "sm_private_random_address_generation_set_update_period": "0x020270c5", + "sm_register_external_ltk_callback": "0x02027351", + "sm_register_oob_data_callback": "0x0202735d", + "sm_register_sc_oob_data_callback": "0x02027369", + "sm_request_pairing": "0x02027375", + "sm_sc_generate_oob_data": "0x02027fb1", + "sm_send_security_request": "0x020280e1", + "sm_set_accepted_stk_generation_methods": "0x02028109", + "sm_set_authentication_requirements": "0x02028115", + "sm_set_encryption_key_size_range": "0x02028121", + "sscanf_bd_addr": "0x02028545", + "sysSetPublicDeviceAddr": "0x02028a6d", + "uuid128_to_str": "0x020292ed", + "uuid_add_bluetooth_prefix": "0x02029345", + "uuid_has_bluetooth_prefix": "0x02029365", + "uxListRemove": "0x02029381", + "uxQueueMessagesWaiting": "0x020293a9", + "uxQueueMessagesWaitingFromISR": "0x020293d1", + "uxQueueSpacesAvailable": "0x020293ed", + "uxTaskGetStackHighWaterMark": "0x02029419", + "uxTaskPriorityGet": "0x02029439", + "uxTaskPriorityGetFromISR": "0x02029455", + "vListInitialise": "0x02029513", + "vListInitialiseItem": "0x02029529", + "vListInsert": "0x0202952f", + "vListInsertEnd": "0x0202955f", + "vPortEndScheduler": "0x02029579", + "vPortEnterCritical": "0x020295a5", + "vPortExitCritical": "0x020295e9", + "vPortFree": "0x0202961d", + "vPortSuppressTicksAndSleep": "0x020296c1", + "vPortValidateInterruptPriority": "0x020297e9", + "vQueueDelete": "0x02029845", + "vQueueWaitForMessageRestricted": "0x02029871", + "vTaskDelay": "0x020298b5", + "vTaskInternalSetTimeOutState": "0x02029901", + "vTaskMissedYield": "0x02029911", + "vTaskPlaceOnEventList": "0x0202991d", + "vTaskPlaceOnEventListRestricted": "0x02029955", + "vTaskPriorityDisinheritAfterTimeout": "0x02029995", + "vTaskPrioritySet": "0x02029a41", + "vTaskResume": "0x02029b09", + "vTaskStartScheduler": "0x02029b8d", + "vTaskStepTick": "0x02029c1d", + "vTaskSuspend": "0x02029c4d", + "vTaskSuspendAll": "0x02029d09", + "vTaskSwitchContext": "0x02029d19", + "xPortStartScheduler": "0x02029dc9", + "xQueueAddToSet": "0x02029ecd", + "xQueueCreateCountingSemaphore": "0x02029ef1", + "xQueueCreateCountingSemaphoreStatic": "0x02029f2d", + "xQueueCreateMutex": "0x02029f71", + "xQueueCreateMutexStatic": "0x02029f87", + "xQueueCreateSet": "0x02029fa1", + "xQueueGenericCreate": "0x02029fa9", + "xQueueGenericCreateStatic": "0x02029ff5", + "xQueueGenericReset": "0x0202a05d", + "xQueueGenericSend": "0x0202a0e9", + "xQueueGenericSendFromISR": "0x0202a255", + "xQueueGiveFromISR": "0x0202a315", + "xQueueGiveMutexRecursive": "0x0202a3b9", + "xQueueIsQueueEmptyFromISR": "0x0202a3f9", + "xQueueIsQueueFullFromISR": "0x0202a41d", + "xQueuePeek": "0x0202a445", + "xQueuePeekFromISR": "0x0202a56d", + "xQueueReceive": "0x0202a5d9", + "xQueueReceiveFromISR": "0x0202a705", + "xQueueRemoveFromSet": "0x0202a799", + "xQueueSelectFromSet": "0x0202a7bb", + "xQueueSelectFromSetFromISR": "0x0202a7cd", + "xQueueSemaphoreTake": "0x0202a7e1", + "xQueueTakeMutexRecursive": "0x0202a94d", + "xTaskCheckForTimeOut": "0x0202a991", + "xTaskCreate": "0x0202aa01", + "xTaskCreateStatic": "0x0202aa5d", + "xTaskGetCurrentTaskHandle": "0x0202aacd", + "xTaskGetSchedulerState": "0x0202aad9", + "xTaskGetTickCount": "0x0202aaf5", + "xTaskGetTickCountFromISR": "0x0202ab01", + "xTaskIncrementTick": "0x0202ab11", + "xTaskPriorityDisinherit": "0x0202abdd", + "xTaskPriorityInherit": "0x0202ac71", + "xTaskRemoveFromEventList": "0x0202ad05", + "xTaskResumeAll": "0x0202ad85", + "xTaskResumeFromISR": "0x0202ae4d", + "xTimerCreate": "0x0202aed9", + "xTimerCreateStatic": "0x0202af0d", + "xTimerCreateTimerTask": "0x0202af45", + "xTimerGenericCommand": "0x0202afb1", + "xTimerGetExpiryTime": "0x0202b021", + "xTimerGetTimerDaemonTaskHandle": "0x0202b041" } \ No newline at end of file diff --git a/bundles/exp/ING9168xx/meta.json b/bundles/exp/ING9168xx/meta.json index 94a29412c..5f31ac633 100644 --- a/bundles/exp/ING9168xx/meta.json +++ b/bundles/exp/ING9168xx/meta.json @@ -1,6 +1,6 @@ { "app": { - "base": 33738752 + "base": 33742848 }, "ram": { "base": 536870912, @@ -8,11 +8,11 @@ }, "rom": { "base": 33562624, - "size": 173864 + "size": 177740 }, "version": [ 2, 3, - 1 + 2 ] } \ No newline at end of file diff --git a/bundles/exp/ING9168xx/platform.bin b/bundles/exp/ING9168xx/platform.bin index e4b8de46858650cef360ba4163581c02f08ce988..e1df61644310d36853cd39dc281a1dfd8cd88d0e 100644 GIT binary patch delta 28649 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≪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 Vr|;rtt?v{B%dX@G(dr7$>~E7dqF?|3 diff --git a/bundles/extension/ING9168xx/apis.json b/bundles/extension/ING9168xx/apis.json index bdd86bcfe..0ca0b2a99 100644 --- a/bundles/extension/ING9168xx/apis.json +++ b/bundles/extension/ING9168xx/apis.json @@ -1,379 +1,379 @@ { - "att_dispatch_client_can_send_now": "0x020044b5", - "att_dispatch_client_request_can_send_now_event": "0x020044bb", - "att_dispatch_register_client": "0x020044c1", - "att_dispatch_register_server": "0x020044d5", - "att_dispatch_server_can_send_now": "0x020044e9", - "att_dispatch_server_request_can_send_now_event": "0x020044ef", - "att_emit_general_event": "0x020045a1", - "att_server_can_send_packet_now": "0x02004cd9", - "att_server_deferred_read_response": "0x02004cdd", - "att_server_get_mtu": "0x02004cf5", - "att_server_indicate": "0x02004d6d", - "att_server_init": "0x02004df1", - "att_server_notify": "0x02004e2d", - "att_server_register_packet_handler": "0x02004f45", - "att_server_request_can_send_now_event": "0x02004f51", - "att_set_db": "0x02004f6d", - "att_set_read_callback": "0x02004f81", - "att_set_write_callback": "0x02004f8d", - "bd_addr_cmp": "0x0200515d", - "bd_addr_copy": "0x02005163", - "bd_addr_to_str": "0x0200516d", - "big_endian_read_16": "0x020051a5", - "big_endian_read_32": "0x020051ad", - "big_endian_store_16": "0x020051c1", - "big_endian_store_32": "0x020051cd", - "btstack_config": "0x0200532d", - "btstack_memory_pool_create": "0x0200546b", - "btstack_memory_pool_free": "0x02005495", - "btstack_memory_pool_get": "0x020054f5", - "btstack_push_user_msg": "0x0200555d", - "btstack_push_user_runnable": "0x02005569", - "btstack_reset": "0x02005575", - "char_for_nibble": "0x0200589d", - "eTaskConfirmSleepModeStatus": "0x02005c55", - "gap_add_dev_to_periodic_list": "0x020062c5", - "gap_add_whitelist": "0x020062d5", - "gap_aes_encrypt": "0x020062e1", - "gap_clear_white_lists": "0x02006319", - "gap_clr_adv_set": "0x02006325", - "gap_clr_periodic_adv_list": "0x02006331", - "gap_create_connection_cancel": "0x0200633d", - "gap_default_periodic_adv_sync_transfer_param": "0x02006349", - "gap_disconnect": "0x02006361", - "gap_disconnect_all": "0x0200638d", - "gap_ext_create_connection": "0x020063cd", - "gap_get_connection_parameter_range": "0x020064a5", - "gap_le_read_channel_map": "0x020064e1", - "gap_periodic_adv_create_sync": "0x0200654d", - "gap_periodic_adv_create_sync_cancel": "0x02006571", - "gap_periodic_adv_set_info_transfer": "0x0200657d", - "gap_periodic_adv_sync_transfer": "0x0200658d", - "gap_periodic_adv_sync_transfer_param": "0x0200659d", - "gap_periodic_adv_term_sync": "0x020065b9", - "gap_read_antenna_info": "0x02006641", - "gap_read_periodic_adv_list_size": "0x0200664d", - "gap_read_phy": "0x02006659", - "gap_read_remote_used_features": "0x02006665", - "gap_read_remote_version": "0x02006671", - "gap_read_rssi": "0x0200667d", - "gap_remove_whitelist": "0x02006689", - "gap_rmv_adv_set": "0x02006705", - "gap_rmv_dev_from_periodic_list": "0x02006711", - "gap_rx_test_v2": "0x02006721", - "gap_rx_test_v3": "0x02006731", - "gap_set_adv_set_random_addr": "0x0200677d", - "gap_set_callback_for_next_hci": "0x020067b9", - "gap_set_connection_cte_request_enable": "0x020067d9", - "gap_set_connection_cte_response_enable": "0x020067f5", - "gap_set_connection_cte_rx_param": "0x02006805", - "gap_set_connection_cte_tx_param": "0x02006859", - "gap_set_connection_parameter_range": "0x020068a5", - "gap_set_connectionless_cte_tx_enable": "0x020068bd", - "gap_set_connectionless_cte_tx_param": "0x020068cd", - "gap_set_connectionless_iq_sampling_enable": "0x02006929", - "gap_set_data_length": "0x02006985", - "gap_set_def_phy": "0x0200699d", - "gap_set_ext_adv_data": "0x020069ad", - "gap_set_ext_adv_enable": "0x020069c5", - "gap_set_ext_adv_para": "0x02006a35", - "gap_set_ext_scan_enable": "0x02006b05", - "gap_set_ext_scan_para": "0x02006b1d", - "gap_set_ext_scan_response_data": "0x02006bbd", - "gap_set_host_channel_classification": "0x02006bd5", - "gap_set_periodic_adv_data": "0x02006be5", - "gap_set_periodic_adv_enable": "0x02006c55", - "gap_set_periodic_adv_para": "0x02006c65", - "gap_set_periodic_adv_rx_enable": "0x02006c7d", - "gap_set_phy": "0x02006c8d", - "gap_set_random_device_address": "0x02006ca9", - "gap_start_ccm": "0x02006cd9", - "gap_test_end": "0x02006d21", - "gap_tx_test_v2": "0x02006d2d", - "gap_tx_test_v4": "0x02006d45", - "gap_update_connection_parameters": "0x02006d69", - "gap_vendor_tx_continuous_wave": "0x02006dad", - "gatt_client_cancel_write": "0x020072d5", - "gatt_client_discover_characteristic_descriptors": "0x020072fb", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0200733b", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200738b", - "gatt_client_discover_characteristics_for_service": "0x020073db", - "gatt_client_discover_primary_services": "0x02007411", - "gatt_client_discover_primary_services_by_uuid128": "0x02007443", - "gatt_client_discover_primary_services_by_uuid16": "0x02007487", - "gatt_client_execute_write": "0x020074c5", - "gatt_client_find_included_services_for_service": "0x020074eb", - "gatt_client_get_mtu": "0x02007519", - "gatt_client_is_ready": "0x020075dd", - "gatt_client_listen_for_characteristic_value_updates": "0x020075f3", - "gatt_client_prepare_write": "0x02007615", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007651", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200767b", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007681", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x020076af", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020076b5", - "gatt_client_read_multiple_characteristic_values": "0x020076e3", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007713", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007741", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x0200778d", - "gatt_client_register_handler": "0x020077d9", - "gatt_client_reliable_write_long_value_of_characteristic": "0x020077e5", - "gatt_client_signed_write_without_response": "0x02007c19", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007cdd", - "gatt_client_write_client_characteristic_configuration": "0x02007d17", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007d69", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007d79", - "gatt_client_write_long_value_of_characteristic": "0x02007db5", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007dc5", - "gatt_client_write_value_of_characteristic": "0x02007e01", - "gatt_client_write_value_of_characteristic_without_response": "0x02007e37", - "hci_add_event_handler": "0x02009459", - "hci_power_control": "0x02009c01", - "hci_register_acl_packet_handler": "0x02009db5", - "kv_commit": "0x0200a4e9", - "kv_get": "0x0200a545", - "kv_init": "0x0200a551", - "kv_init_backend": "0x0200a5d1", - "kv_put": "0x0200a5e5", - "kv_remove": "0x0200a5f1", - "kv_remove_all": "0x0200a625", - "kv_value_modified": "0x0200a655", - "kv_value_modified_of_key": "0x0200a671", - "kv_visit": "0x0200a67d", - "l2cap_add_event_handler": "0x0200a70d", - "l2cap_can_send_packet_now": "0x0200a71d", - "l2cap_create_le_credit_based_connection_request": "0x0200a8e1", - "l2cap_credit_based_send": "0x0200aa29", - "l2cap_credit_based_send_continue": "0x0200aa55", - "l2cap_disconnect": "0x0200aad1", - "l2cap_get_le_credit_based_connection_credits": "0x0200acbd", - "l2cap_get_peer_mtu_for_local_cid": "0x0200acd9", - "l2cap_init": "0x0200b119", - "l2cap_le_send_flow_control_credit": "0x0200b20f", - "l2cap_max_le_mtu": "0x0200b51d", - "l2cap_register_packet_handler": "0x0200b645", - "l2cap_register_service": "0x0200b651", - "l2cap_request_can_send_now_event": "0x0200b761", - "l2cap_request_connection_parameter_update": "0x0200b77b", - "l2cap_send_echo_request": "0x0200bc5d", - "l2cap_unregister_service": "0x0200bd3d", - "le_device_db_add": "0x0200bd95", - "le_device_db_find": "0x0200be6d", - "le_device_db_from_key": "0x0200be99", - "le_device_db_iter_cur": "0x0200bea1", - "le_device_db_iter_cur_key": "0x0200bea5", - "le_device_db_iter_init": "0x0200bea9", - "le_device_db_iter_next": "0x0200beb1", - "le_device_db_remove_key": "0x0200bed7", - "ll_ackable_packet_alloc": "0x0200bf03", - "ll_ackable_packet_get_status": "0x0200c03f", - "ll_ackable_packet_run": "0x0200c0ad", - "ll_ackable_packet_set_tx_data": "0x0200c165", - "ll_adjust_conn_peer_tx_power": "0x0200c181", - "ll_aes_encrypt": "0x0200c1ad", - "ll_allow_nonstandard_adv_type": "0x0200c221", - "ll_attach_cte_to_adv_set": "0x0200c239", - "ll_channel_monitor_alloc": "0x0200c3d1", - "ll_channel_monitor_check_each_pdu": "0x0200c453", - "ll_channel_monitor_run": "0x0200c4b5", - "ll_config": "0x0200c585", - "ll_free": "0x0200c5bb", - "ll_get_conn_events_info": "0x0200c5c5", - "ll_get_conn_info": "0x0200c6ad", - "ll_get_heap_free_size": "0x0200c6fd", - "ll_hint_on_ce_len": "0x0200c711", - "ll_legacy_adv_set_interval": "0x0200c749", - "ll_lock_frequency": "0x0200c759", - "ll_malloc": "0x0200c7bd", - "ll_override_whitening_init_value": "0x0200c7c5", - "ll_raw_packet_alloc": "0x0200c8ed", - "ll_raw_packet_free": "0x0200c9c1", - "ll_raw_packet_get_bare_rx_data": "0x0200c9f9", - "ll_raw_packet_get_iq_samples": "0x0200cab9", - "ll_raw_packet_get_rx_data": "0x0200cb53", - "ll_raw_packet_recv": "0x0200cc05", - "ll_raw_packet_send": "0x0200ccd9", - "ll_raw_packet_set_bare_data": "0x0200cdf5", - "ll_raw_packet_set_bare_mode": "0x0200ce33", - "ll_raw_packet_set_fake_cte_info": "0x0200cf37", - "ll_raw_packet_set_param": "0x0200cf59", - "ll_raw_packet_set_rx_cte": "0x0200cfbb", - "ll_raw_packet_set_tx_cte": "0x0200d051", - "ll_raw_packet_set_tx_data": "0x0200d091", - "ll_register_hci_acl_previewer": "0x0200d0f9", - "ll_scan_set_fixed_channel": "0x0200d15d", - "ll_scanner_enable_iq_sampling": "0x0200d169", - "ll_scanner_enable_iq_sampling_on_legacy": "0x0200d211", - "ll_set_adv_access_address": "0x0200d501", - "ll_set_adv_coded_scheme": "0x0200d50d", - "ll_set_conn_acl_report_latency": "0x0200d545", - "ll_set_conn_coded_scheme": "0x0200d575", - "ll_set_conn_interval_unit": "0x0200d5a1", - "ll_set_conn_latency": "0x0200d5ad", - "ll_set_conn_tx_power": "0x0200d5dd", - "ll_set_cte_bit": "0x0200d60d", - "ll_set_def_antenna": "0x0200d635", - "ll_set_initiating_coded_scheme": "0x0200d655", - "ll_set_max_conn_number": "0x0200d661", - "ll_set_tx_power_range": "0x0200d6f5", - "ll_unlock_frequency": "0x0200d71d", - "nibble_for_char": "0x0202060d", - "platform_calibrate_rt_clk": "0x020206b7", - "platform_call_on_stack": "0x020021fb", - "platform_config": "0x020206bd", - "platform_delete_timer": "0x020207e5", - "platform_enable_irq": "0x020207ed", - "platform_get_current_task": "0x02020821", - "platform_get_gen_os_driver": "0x02020845", - "platform_get_heap_status": "0x0202084d", - "platform_get_link_layer_interf": "0x02020865", - "platform_get_task_handle": "0x0202086d", - "platform_get_timer_counter": "0x0202088d", - "platform_get_us_time": "0x02020891", - "platform_get_version": "0x02020895", - "platform_hrng": "0x0202089d", - "platform_install_isr_stack": "0x020208a5", - "platform_install_task_stack": "0x020208b1", - "platform_patch_rf_init_data": "0x020208e9", - "platform_printf": "0x020208f5", - "platform_raise_assertion": "0x02020909", - "platform_rand": "0x0202091d", - "platform_read_info": "0x02020921", - "platform_read_persistent_reg": "0x02020951", - "platform_reset": "0x0202095d", - "platform_rt_rc_auto_tune": "0x02020971", - "platform_rt_rc_auto_tune2": "0x02020979", - "platform_rt_rc_tune": "0x020209e1", - "platform_set_abs_timer": "0x020209fd", - "platform_set_evt_callback": "0x02020a01", - "platform_set_evt_callback_table": "0x02020a15", - "platform_set_irq_callback": "0x02020a21", - "platform_set_irq_callback_table": "0x02020a3d", - "platform_set_rf_clk_source": "0x02020a49", - "platform_set_rf_init_data": "0x02020a55", - "platform_set_rf_power_mapping": "0x02020a61", - "platform_set_timer": "0x02020a6d", - "platform_shutdown": "0x02020a71", - "platform_switch_app": "0x02020a75", - "platform_trace_raw": "0x02020a8d", - "platform_write_persistent_reg": "0x02020aa5", - "printf_hexdump": "0x02020c5d", - "pvPortMalloc": "0x02021735", - "pvTaskIncrementMutexHeldCount": "0x0202181d", - "pvTimerGetTimerID": "0x02021835", - "pxPortInitialiseStack": "0x02021861", - "reverse_128": "0x02021a49", - "reverse_24": "0x02021a4f", - "reverse_256": "0x02021a55", - "reverse_48": "0x02021a5b", - "reverse_56": "0x02021a61", - "reverse_64": "0x02021a67", - "reverse_bd_addr": "0x02021a6d", - "reverse_bytes": "0x02021a73", - "sm_add_event_handler": "0x02021e01", - "sm_address_resolution_lookup": "0x02021f59", - "sm_authenticated": "0x020222d5", - "sm_authorization_decline": "0x020222e3", - "sm_authorization_grant": "0x02022303", - "sm_authorization_state": "0x02022323", - "sm_bonding_decline": "0x0202233d", - "sm_config": "0x02022791", - "sm_config_conn": "0x020227a9", - "sm_encryption_key_size": "0x0202295f", - "sm_just_works_confirm": "0x02022ee5", - "sm_le_device_key": "0x0202321d", - "sm_passkey_input": "0x020232b3", - "sm_private_random_address_generation_get": "0x0202366d", - "sm_private_random_address_generation_get_mode": "0x02023675", - "sm_private_random_address_generation_set_mode": "0x02023681", - "sm_private_random_address_generation_set_update_period": "0x020236a9", - "sm_register_external_ltk_callback": "0x020237e5", - "sm_register_oob_data_callback": "0x020237f1", - "sm_request_pairing": "0x020237fd", - "sm_send_security_request": "0x020242d3", - "sm_set_accepted_stk_generation_methods": "0x020242f9", - "sm_set_authentication_requirements": "0x02024305", - "sm_set_encryption_key_size_range": "0x02024311", - "sscanf_bd_addr": "0x020246e9", - "sysSetPublicDeviceAddr": "0x02024c15", - "uuid128_to_str": "0x02025471", - "uuid_add_bluetooth_prefix": "0x020254c9", - "uuid_has_bluetooth_prefix": "0x020254e9", - "uxListRemove": "0x02025505", - "uxQueueMessagesWaiting": "0x0202552d", - "uxQueueMessagesWaitingFromISR": "0x02025555", - "uxQueueSpacesAvailable": "0x02025571", - "uxTaskGetStackHighWaterMark": "0x0202559d", - "uxTaskPriorityGet": "0x020255bd", - "uxTaskPriorityGetFromISR": "0x020255d9", - "vListInitialise": "0x02025697", - "vListInitialiseItem": "0x020256ad", - "vListInsert": "0x020256b3", - "vListInsertEnd": "0x020256e3", - "vPortEndScheduler": "0x020256fd", - "vPortEnterCritical": "0x02025729", - "vPortExitCritical": "0x0202576d", - "vPortFree": "0x020257a1", - "vPortSuppressTicksAndSleep": "0x02025845", - "vPortValidateInterruptPriority": "0x0202596d", - "vQueueDelete": "0x020259c9", - "vQueueWaitForMessageRestricted": "0x020259f5", - "vTaskDelay": "0x02025a39", - "vTaskInternalSetTimeOutState": "0x02025a85", - "vTaskMissedYield": "0x02025a95", - "vTaskPlaceOnEventList": "0x02025aa1", - "vTaskPlaceOnEventListRestricted": "0x02025ad9", - "vTaskPriorityDisinheritAfterTimeout": "0x02025b19", - "vTaskPrioritySet": "0x02025bc5", - "vTaskResume": "0x02025c8d", - "vTaskStartScheduler": "0x02025d11", - "vTaskStepTick": "0x02025da1", - "vTaskSuspend": "0x02025dd1", - "vTaskSuspendAll": "0x02025e8d", - "vTaskSwitchContext": "0x02025e9d", - "xPortStartScheduler": "0x02025f4d", - "xQueueAddToSet": "0x02026051", - "xQueueCreateCountingSemaphore": "0x02026075", - "xQueueCreateCountingSemaphoreStatic": "0x020260b1", - "xQueueCreateMutex": "0x020260f5", - "xQueueCreateMutexStatic": "0x0202610b", - "xQueueCreateSet": "0x02026125", - "xQueueGenericCreate": "0x0202612d", - "xQueueGenericCreateStatic": "0x02026179", - "xQueueGenericReset": "0x020261e1", - "xQueueGenericSend": "0x0202626d", - "xQueueGenericSendFromISR": "0x020263d9", - "xQueueGiveFromISR": "0x02026499", - "xQueueGiveMutexRecursive": "0x0202653d", - "xQueueIsQueueEmptyFromISR": "0x0202657d", - "xQueueIsQueueFullFromISR": "0x020265a1", - "xQueuePeek": "0x020265c9", - "xQueuePeekFromISR": "0x020266f1", - "xQueueReceive": "0x0202675d", - "xQueueReceiveFromISR": "0x02026889", - "xQueueRemoveFromSet": "0x0202691d", - "xQueueSelectFromSet": "0x0202693f", - "xQueueSelectFromSetFromISR": "0x02026951", - "xQueueSemaphoreTake": "0x02026965", - "xQueueTakeMutexRecursive": "0x02026ad1", - "xTaskCheckForTimeOut": "0x02026b15", - "xTaskCreate": "0x02026b85", - "xTaskCreateStatic": "0x02026be1", - "xTaskGetCurrentTaskHandle": "0x02026c51", - "xTaskGetSchedulerState": "0x02026c5d", - "xTaskGetTickCount": "0x02026c79", - "xTaskGetTickCountFromISR": "0x02026c85", - "xTaskIncrementTick": "0x02026c95", - "xTaskPriorityDisinherit": "0x02026d61", - "xTaskPriorityInherit": "0x02026df5", - "xTaskRemoveFromEventList": "0x02026e89", - "xTaskResumeAll": "0x02026f09", - "xTaskResumeFromISR": "0x02026fd1", - "xTimerCreate": "0x0202705d", - "xTimerCreateStatic": "0x02027091", - "xTimerCreateTimerTask": "0x020270c9", - "xTimerGenericCommand": "0x02027135", - "xTimerGetExpiryTime": "0x020271a5", - "xTimerGetTimerDaemonTaskHandle": "0x020271c5" + "att_dispatch_client_can_send_now": "0x020053b5", + "att_dispatch_client_request_can_send_now_event": "0x020053bb", + "att_dispatch_register_client": "0x020053c1", + "att_dispatch_register_server": "0x020053d5", + "att_dispatch_server_can_send_now": "0x020053e9", + "att_dispatch_server_request_can_send_now_event": "0x020053ef", + "att_emit_general_event": "0x020054a1", + "att_server_can_send_packet_now": "0x02005bd9", + "att_server_deferred_read_response": "0x02005bdd", + "att_server_get_mtu": "0x02005bf5", + "att_server_indicate": "0x02005c6d", + "att_server_init": "0x02005cf1", + "att_server_notify": "0x02005d2d", + "att_server_register_packet_handler": "0x02005e45", + "att_server_request_can_send_now_event": "0x02005e51", + "att_set_db": "0x02005e6d", + "att_set_read_callback": "0x02005e81", + "att_set_write_callback": "0x02005e8d", + "bd_addr_cmp": "0x0200605d", + "bd_addr_copy": "0x02006063", + "bd_addr_to_str": "0x0200606d", + "big_endian_read_16": "0x020060a5", + "big_endian_read_32": "0x020060ad", + "big_endian_store_16": "0x020060c1", + "big_endian_store_32": "0x020060cd", + "btstack_config": "0x0200622d", + "btstack_memory_pool_create": "0x0200636b", + "btstack_memory_pool_free": "0x02006395", + "btstack_memory_pool_get": "0x020063f5", + "btstack_push_user_msg": "0x0200645d", + "btstack_push_user_runnable": "0x02006469", + "btstack_reset": "0x02006475", + "char_for_nibble": "0x0200679d", + "eTaskConfirmSleepModeStatus": "0x02006b55", + "gap_add_dev_to_periodic_list": "0x020071c5", + "gap_add_whitelist": "0x020071d5", + "gap_aes_encrypt": "0x020071e1", + "gap_clear_white_lists": "0x02007219", + "gap_clr_adv_set": "0x02007225", + "gap_clr_periodic_adv_list": "0x02007231", + "gap_create_connection_cancel": "0x0200723d", + "gap_default_periodic_adv_sync_transfer_param": "0x02007249", + "gap_disconnect": "0x02007261", + "gap_disconnect_all": "0x0200728d", + "gap_ext_create_connection": "0x020072cd", + "gap_get_connection_parameter_range": "0x020073a5", + "gap_le_read_channel_map": "0x020073e1", + "gap_periodic_adv_create_sync": "0x0200744d", + "gap_periodic_adv_create_sync_cancel": "0x02007471", + "gap_periodic_adv_set_info_transfer": "0x0200747d", + "gap_periodic_adv_sync_transfer": "0x0200748d", + "gap_periodic_adv_sync_transfer_param": "0x0200749d", + "gap_periodic_adv_term_sync": "0x020074b9", + "gap_read_antenna_info": "0x02007541", + "gap_read_periodic_adv_list_size": "0x0200754d", + "gap_read_phy": "0x02007559", + "gap_read_remote_used_features": "0x02007565", + "gap_read_remote_version": "0x02007571", + "gap_read_rssi": "0x0200757d", + "gap_remove_whitelist": "0x02007589", + "gap_rmv_adv_set": "0x02007605", + "gap_rmv_dev_from_periodic_list": "0x02007611", + "gap_rx_test_v2": "0x02007621", + "gap_rx_test_v3": "0x02007631", + "gap_set_adv_set_random_addr": "0x0200767d", + "gap_set_callback_for_next_hci": "0x020076b9", + "gap_set_connection_cte_request_enable": "0x020076d9", + "gap_set_connection_cte_response_enable": "0x020076f5", + "gap_set_connection_cte_rx_param": "0x02007705", + "gap_set_connection_cte_tx_param": "0x02007759", + "gap_set_connection_parameter_range": "0x020077a5", + "gap_set_connectionless_cte_tx_enable": "0x020077bd", + "gap_set_connectionless_cte_tx_param": "0x020077cd", + "gap_set_connectionless_iq_sampling_enable": "0x02007829", + "gap_set_data_length": "0x02007885", + "gap_set_def_phy": "0x0200789d", + "gap_set_ext_adv_data": "0x020078ad", + "gap_set_ext_adv_enable": "0x020078c5", + "gap_set_ext_adv_para": "0x02007935", + "gap_set_ext_scan_enable": "0x02007a05", + "gap_set_ext_scan_para": "0x02007a1d", + "gap_set_ext_scan_response_data": "0x02007abd", + "gap_set_host_channel_classification": "0x02007ad5", + "gap_set_periodic_adv_data": "0x02007ae5", + "gap_set_periodic_adv_enable": "0x02007b55", + "gap_set_periodic_adv_para": "0x02007b65", + "gap_set_periodic_adv_rx_enable": "0x02007b7d", + "gap_set_phy": "0x02007b8d", + "gap_set_random_device_address": "0x02007ba9", + "gap_start_ccm": "0x02007bd9", + "gap_test_end": "0x02007c21", + "gap_tx_test_v2": "0x02007c2d", + "gap_tx_test_v4": "0x02007c45", + "gap_update_connection_parameters": "0x02007c69", + "gap_vendor_tx_continuous_wave": "0x02007cad", + "gatt_client_cancel_write": "0x020081d5", + "gatt_client_discover_characteristic_descriptors": "0x020081fb", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0200823b", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200828b", + "gatt_client_discover_characteristics_for_service": "0x020082db", + "gatt_client_discover_primary_services": "0x02008311", + "gatt_client_discover_primary_services_by_uuid128": "0x02008343", + "gatt_client_discover_primary_services_by_uuid16": "0x02008387", + "gatt_client_execute_write": "0x020083c5", + "gatt_client_find_included_services_for_service": "0x020083eb", + "gatt_client_get_mtu": "0x02008419", + "gatt_client_is_ready": "0x020084dd", + "gatt_client_listen_for_characteristic_value_updates": "0x020084f3", + "gatt_client_prepare_write": "0x02008515", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02008551", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200857b", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02008581", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x020085af", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020085b5", + "gatt_client_read_multiple_characteristic_values": "0x020085e3", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x02008613", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x02008641", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x0200868d", + "gatt_client_register_handler": "0x020086d9", + "gatt_client_reliable_write_long_value_of_characteristic": "0x020086e5", + "gatt_client_signed_write_without_response": "0x02008b19", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02008bdd", + "gatt_client_write_client_characteristic_configuration": "0x02008c17", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02008c69", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02008c79", + "gatt_client_write_long_value_of_characteristic": "0x02008cb5", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x02008cc5", + "gatt_client_write_value_of_characteristic": "0x02008d01", + "gatt_client_write_value_of_characteristic_without_response": "0x02008d37", + "hci_add_event_handler": "0x0200a359", + "hci_power_control": "0x0200ab01", + "hci_register_acl_packet_handler": "0x0200acb5", + "kv_commit": "0x0200b3e9", + "kv_get": "0x0200b445", + "kv_init": "0x0200b451", + "kv_init_backend": "0x0200b4d1", + "kv_put": "0x0200b4e5", + "kv_remove": "0x0200b4f1", + "kv_remove_all": "0x0200b525", + "kv_value_modified": "0x0200b555", + "kv_value_modified_of_key": "0x0200b571", + "kv_visit": "0x0200b57d", + "l2cap_add_event_handler": "0x0200b60d", + "l2cap_can_send_packet_now": "0x0200b61d", + "l2cap_create_le_credit_based_connection_request": "0x0200b7e1", + "l2cap_credit_based_send": "0x0200b929", + "l2cap_credit_based_send_continue": "0x0200b955", + "l2cap_disconnect": "0x0200b9d1", + "l2cap_get_le_credit_based_connection_credits": "0x0200bbbd", + "l2cap_get_peer_mtu_for_local_cid": "0x0200bbd9", + "l2cap_init": "0x0200c019", + "l2cap_le_send_flow_control_credit": "0x0200c10f", + "l2cap_max_le_mtu": "0x0200c41d", + "l2cap_register_packet_handler": "0x0200c545", + "l2cap_register_service": "0x0200c551", + "l2cap_request_can_send_now_event": "0x0200c661", + "l2cap_request_connection_parameter_update": "0x0200c67b", + "l2cap_send_echo_request": "0x0200cb5d", + "l2cap_unregister_service": "0x0200cc3d", + "le_device_db_add": "0x0200cc95", + "le_device_db_find": "0x0200cd6d", + "le_device_db_from_key": "0x0200cd99", + "le_device_db_iter_cur": "0x0200cda1", + "le_device_db_iter_cur_key": "0x0200cda5", + "le_device_db_iter_init": "0x0200cda9", + "le_device_db_iter_next": "0x0200cdb1", + "le_device_db_remove_key": "0x0200cdd7", + "ll_ackable_packet_alloc": "0x0200ce03", + "ll_ackable_packet_get_status": "0x0200cf3f", + "ll_ackable_packet_run": "0x0200cfad", + "ll_ackable_packet_set_tx_data": "0x0200d065", + "ll_adjust_conn_peer_tx_power": "0x0200d081", + "ll_aes_encrypt": "0x0200d0ad", + "ll_allow_nonstandard_adv_type": "0x0200d121", + "ll_attach_cte_to_adv_set": "0x0200d139", + "ll_channel_monitor_alloc": "0x0200d2d1", + "ll_channel_monitor_check_each_pdu": "0x0200d353", + "ll_channel_monitor_run": "0x0200d3b5", + "ll_config": "0x0200d485", + "ll_free": "0x0200d4bb", + "ll_get_conn_events_info": "0x0200d4c5", + "ll_get_conn_info": "0x0200d5ad", + "ll_get_heap_free_size": "0x0200d5fd", + "ll_hint_on_ce_len": "0x0200d611", + "ll_legacy_adv_set_interval": "0x0200d649", + "ll_lock_frequency": "0x0200d659", + "ll_malloc": "0x0200d6bd", + "ll_override_whitening_init_value": "0x0200d6c5", + "ll_raw_packet_alloc": "0x0200d7ed", + "ll_raw_packet_free": "0x0200d8c1", + "ll_raw_packet_get_bare_rx_data": "0x0200d8f9", + "ll_raw_packet_get_iq_samples": "0x0200d9b9", + "ll_raw_packet_get_rx_data": "0x0200da53", + "ll_raw_packet_recv": "0x0200db05", + "ll_raw_packet_send": "0x0200dbd9", + "ll_raw_packet_set_bare_data": "0x0200dcf5", + "ll_raw_packet_set_bare_mode": "0x0200dd33", + "ll_raw_packet_set_fake_cte_info": "0x0200de37", + "ll_raw_packet_set_param": "0x0200de59", + "ll_raw_packet_set_rx_cte": "0x0200debb", + "ll_raw_packet_set_tx_cte": "0x0200df51", + "ll_raw_packet_set_tx_data": "0x0200df91", + "ll_register_hci_acl_previewer": "0x0200dff9", + "ll_scan_set_fixed_channel": "0x0200e05d", + "ll_scanner_enable_iq_sampling": "0x0200e069", + "ll_scanner_enable_iq_sampling_on_legacy": "0x0200e111", + "ll_set_adv_access_address": "0x0200e401", + "ll_set_adv_coded_scheme": "0x0200e40d", + "ll_set_conn_acl_report_latency": "0x0200e445", + "ll_set_conn_coded_scheme": "0x0200e475", + "ll_set_conn_interval_unit": "0x0200e4a1", + "ll_set_conn_latency": "0x0200e4ad", + "ll_set_conn_tx_power": "0x0200e4dd", + "ll_set_cte_bit": "0x0200e50d", + "ll_set_def_antenna": "0x0200e535", + "ll_set_initiating_coded_scheme": "0x0200e555", + "ll_set_max_conn_number": "0x0200e561", + "ll_set_tx_power_range": "0x0200e5f5", + "ll_unlock_frequency": "0x0200e61d", + "nibble_for_char": "0x02021521", + "platform_calibrate_rt_clk": "0x020215cb", + "platform_call_on_stack": "0x020030fb", + "platform_config": "0x020215d1", + "platform_delete_timer": "0x020216f9", + "platform_enable_irq": "0x02021701", + "platform_get_current_task": "0x02021735", + "platform_get_gen_os_driver": "0x02021759", + "platform_get_heap_status": "0x02021761", + "platform_get_link_layer_interf": "0x02021779", + "platform_get_task_handle": "0x02021781", + "platform_get_timer_counter": "0x020217a1", + "platform_get_us_time": "0x020217a5", + "platform_get_version": "0x020217a9", + "platform_hrng": "0x020217c5", + "platform_install_isr_stack": "0x020217cd", + "platform_install_task_stack": "0x020217d9", + "platform_patch_rf_init_data": "0x02021811", + "platform_printf": "0x0202181d", + "platform_raise_assertion": "0x02021831", + "platform_rand": "0x02021845", + "platform_read_info": "0x02021849", + "platform_read_persistent_reg": "0x02021879", + "platform_reset": "0x02021885", + "platform_rt_rc_auto_tune": "0x02021899", + "platform_rt_rc_auto_tune2": "0x020218a1", + "platform_rt_rc_tune": "0x02021909", + "platform_set_abs_timer": "0x02021925", + "platform_set_evt_callback": "0x02021929", + "platform_set_evt_callback_table": "0x0202193d", + "platform_set_irq_callback": "0x02021949", + "platform_set_irq_callback_table": "0x02021965", + "platform_set_rf_clk_source": "0x02021971", + "platform_set_rf_init_data": "0x0202197d", + "platform_set_rf_power_mapping": "0x02021989", + "platform_set_timer": "0x02021995", + "platform_shutdown": "0x02021999", + "platform_switch_app": "0x0202199d", + "platform_trace_raw": "0x020219b5", + "platform_write_persistent_reg": "0x020219cd", + "printf_hexdump": "0x02021b85", + "pvPortMalloc": "0x0202265d", + "pvTaskIncrementMutexHeldCount": "0x02022745", + "pvTimerGetTimerID": "0x0202275d", + "pxPortInitialiseStack": "0x02022789", + "reverse_128": "0x02022971", + "reverse_24": "0x02022977", + "reverse_256": "0x0202297d", + "reverse_48": "0x02022983", + "reverse_56": "0x02022989", + "reverse_64": "0x0202298f", + "reverse_bd_addr": "0x02022995", + "reverse_bytes": "0x0202299b", + "sm_add_event_handler": "0x02022d29", + "sm_address_resolution_lookup": "0x02022e81", + "sm_authenticated": "0x020231fd", + "sm_authorization_decline": "0x0202320b", + "sm_authorization_grant": "0x0202322b", + "sm_authorization_state": "0x0202324b", + "sm_bonding_decline": "0x02023265", + "sm_config": "0x020236b9", + "sm_config_conn": "0x020236d1", + "sm_encryption_key_size": "0x02023887", + "sm_just_works_confirm": "0x02023e0d", + "sm_le_device_key": "0x02024145", + "sm_passkey_input": "0x020241db", + "sm_private_random_address_generation_get": "0x02024595", + "sm_private_random_address_generation_get_mode": "0x0202459d", + "sm_private_random_address_generation_set_mode": "0x020245a9", + "sm_private_random_address_generation_set_update_period": "0x020245d1", + "sm_register_external_ltk_callback": "0x0202470d", + "sm_register_oob_data_callback": "0x02024719", + "sm_request_pairing": "0x02024725", + "sm_send_security_request": "0x020251fb", + "sm_set_accepted_stk_generation_methods": "0x02025221", + "sm_set_authentication_requirements": "0x0202522d", + "sm_set_encryption_key_size_range": "0x02025239", + "sscanf_bd_addr": "0x02025611", + "sysSetPublicDeviceAddr": "0x02025b39", + "uuid128_to_str": "0x02026395", + "uuid_add_bluetooth_prefix": "0x020263ed", + "uuid_has_bluetooth_prefix": "0x0202640d", + "uxListRemove": "0x02026429", + "uxQueueMessagesWaiting": "0x02026451", + "uxQueueMessagesWaitingFromISR": "0x02026479", + "uxQueueSpacesAvailable": "0x02026495", + "uxTaskGetStackHighWaterMark": "0x020264c1", + "uxTaskPriorityGet": "0x020264e1", + "uxTaskPriorityGetFromISR": "0x020264fd", + "vListInitialise": "0x020265bb", + "vListInitialiseItem": "0x020265d1", + "vListInsert": "0x020265d7", + "vListInsertEnd": "0x02026607", + "vPortEndScheduler": "0x02026621", + "vPortEnterCritical": "0x0202664d", + "vPortExitCritical": "0x02026691", + "vPortFree": "0x020266c5", + "vPortSuppressTicksAndSleep": "0x02026769", + "vPortValidateInterruptPriority": "0x02026891", + "vQueueDelete": "0x020268ed", + "vQueueWaitForMessageRestricted": "0x02026919", + "vTaskDelay": "0x0202695d", + "vTaskInternalSetTimeOutState": "0x020269a9", + "vTaskMissedYield": "0x020269b9", + "vTaskPlaceOnEventList": "0x020269c5", + "vTaskPlaceOnEventListRestricted": "0x020269fd", + "vTaskPriorityDisinheritAfterTimeout": "0x02026a3d", + "vTaskPrioritySet": "0x02026ae9", + "vTaskResume": "0x02026bb1", + "vTaskStartScheduler": "0x02026c35", + "vTaskStepTick": "0x02026cc5", + "vTaskSuspend": "0x02026cf5", + "vTaskSuspendAll": "0x02026db1", + "vTaskSwitchContext": "0x02026dc1", + "xPortStartScheduler": "0x02026e71", + "xQueueAddToSet": "0x02026f75", + "xQueueCreateCountingSemaphore": "0x02026f99", + "xQueueCreateCountingSemaphoreStatic": "0x02026fd5", + "xQueueCreateMutex": "0x02027019", + "xQueueCreateMutexStatic": "0x0202702f", + "xQueueCreateSet": "0x02027049", + "xQueueGenericCreate": "0x02027051", + "xQueueGenericCreateStatic": "0x0202709d", + "xQueueGenericReset": "0x02027105", + "xQueueGenericSend": "0x02027191", + "xQueueGenericSendFromISR": "0x020272fd", + "xQueueGiveFromISR": "0x020273bd", + "xQueueGiveMutexRecursive": "0x02027461", + "xQueueIsQueueEmptyFromISR": "0x020274a1", + "xQueueIsQueueFullFromISR": "0x020274c5", + "xQueuePeek": "0x020274ed", + "xQueuePeekFromISR": "0x02027615", + "xQueueReceive": "0x02027681", + "xQueueReceiveFromISR": "0x020277ad", + "xQueueRemoveFromSet": "0x02027841", + "xQueueSelectFromSet": "0x02027863", + "xQueueSelectFromSetFromISR": "0x02027875", + "xQueueSemaphoreTake": "0x02027889", + "xQueueTakeMutexRecursive": "0x020279f5", + "xTaskCheckForTimeOut": "0x02027a39", + "xTaskCreate": "0x02027aa9", + "xTaskCreateStatic": "0x02027b05", + "xTaskGetCurrentTaskHandle": "0x02027b75", + "xTaskGetSchedulerState": "0x02027b81", + "xTaskGetTickCount": "0x02027b9d", + "xTaskGetTickCountFromISR": "0x02027ba9", + "xTaskIncrementTick": "0x02027bb9", + "xTaskPriorityDisinherit": "0x02027c85", + "xTaskPriorityInherit": "0x02027d19", + "xTaskRemoveFromEventList": "0x02027dad", + "xTaskResumeAll": "0x02027e2d", + "xTaskResumeFromISR": "0x02027ef5", + "xTimerCreate": "0x02027f81", + "xTimerCreateStatic": "0x02027fb5", + "xTimerCreateTimerTask": "0x02027fed", + "xTimerGenericCommand": "0x02028059", + "xTimerGetExpiryTime": "0x020280c9", + "xTimerGetTimerDaemonTaskHandle": "0x020280e9" } \ No newline at end of file diff --git a/bundles/extension/ING9168xx/meta.json b/bundles/extension/ING9168xx/meta.json index a95301155..346c16fe6 100644 --- a/bundles/extension/ING9168xx/meta.json +++ b/bundles/extension/ING9168xx/meta.json @@ -1,6 +1,6 @@ { "app": { - "base": 33726464 + "base": 33730560 }, "ram": { "base": 536870912, @@ -8,11 +8,11 @@ }, "rom": { "base": 33562624, - "size": 161312 + "size": 165188 }, "version": [ 2, 3, - 1 + 2 ] } \ No newline at end of file diff --git a/bundles/extension/ING9168xx/platform.bin b/bundles/extension/ING9168xx/platform.bin index 8a09ba8199c15f3effa227dfbceca25f934dbbaf..714201f3500b530eeb7242328efee0ab2fbafe75 100644 GIT binary patch delta 27104 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 delta 23354 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 I^%P_n0Hq+#bN~PV diff --git a/bundles/mass_conn/ING9168xx/apis.json b/bundles/mass_conn/ING9168xx/apis.json index 2ade268c4..1981305f5 100644 --- a/bundles/mass_conn/ING9168xx/apis.json +++ b/bundles/mass_conn/ING9168xx/apis.json @@ -1,347 +1,347 @@ { - "att_dispatch_client_can_send_now": "0x020044b5", - "att_dispatch_client_request_can_send_now_event": "0x020044bb", - "att_dispatch_register_client": "0x020044c1", - "att_dispatch_register_server": "0x020044d5", - "att_dispatch_server_can_send_now": "0x020044e9", - "att_dispatch_server_request_can_send_now_event": "0x020044ef", - "att_emit_general_event": "0x020045a1", - "att_server_can_send_packet_now": "0x02004cd9", - "att_server_deferred_read_response": "0x02004cdd", - "att_server_get_mtu": "0x02004cf5", - "att_server_indicate": "0x02004d6d", - "att_server_init": "0x02004df1", - "att_server_notify": "0x02004e2d", - "att_server_register_packet_handler": "0x02004f45", - "att_server_request_can_send_now_event": "0x02004f51", - "att_set_db": "0x02004f6d", - "att_set_read_callback": "0x02004f81", - "att_set_write_callback": "0x02004f8d", - "bd_addr_cmp": "0x0200515d", - "bd_addr_copy": "0x02005163", - "bd_addr_to_str": "0x0200516d", - "big_endian_read_16": "0x020051a5", - "big_endian_read_32": "0x020051ad", - "big_endian_store_16": "0x020051c1", - "big_endian_store_32": "0x020051cd", - "btstack_config": "0x0200532d", - "btstack_memory_pool_create": "0x0200546b", - "btstack_memory_pool_free": "0x02005495", - "btstack_memory_pool_get": "0x020054f5", - "btstack_push_user_msg": "0x0200555d", - "btstack_push_user_runnable": "0x02005569", - "btstack_reset": "0x02005575", - "char_for_nibble": "0x02005867", - "eTaskConfirmSleepModeStatus": "0x02005c19", - "gap_add_dev_to_periodic_list": "0x02006289", - "gap_add_whitelist": "0x02006299", - "gap_aes_encrypt": "0x020062a5", - "gap_clear_white_lists": "0x020062dd", - "gap_clr_adv_set": "0x020062e9", - "gap_clr_periodic_adv_list": "0x020062f5", - "gap_create_connection_cancel": "0x02006301", - "gap_default_periodic_adv_sync_transfer_param": "0x0200630d", - "gap_disconnect": "0x02006325", - "gap_disconnect_all": "0x02006351", - "gap_ext_create_connection": "0x02006391", - "gap_get_connection_parameter_range": "0x02006469", - "gap_le_read_channel_map": "0x020064a5", - "gap_periodic_adv_create_sync": "0x02006511", - "gap_periodic_adv_create_sync_cancel": "0x02006535", - "gap_periodic_adv_set_info_transfer": "0x02006541", - "gap_periodic_adv_sync_transfer": "0x02006551", - "gap_periodic_adv_sync_transfer_param": "0x02006561", - "gap_periodic_adv_term_sync": "0x0200657d", - "gap_read_antenna_info": "0x02006605", - "gap_read_periodic_adv_list_size": "0x02006611", - "gap_read_phy": "0x0200661d", - "gap_read_remote_used_features": "0x02006629", - "gap_read_remote_version": "0x02006635", - "gap_read_rssi": "0x02006641", - "gap_remove_whitelist": "0x0200664d", - "gap_rmv_adv_set": "0x020066c9", - "gap_rmv_dev_from_periodic_list": "0x020066d5", - "gap_rx_test_v2": "0x020066e5", - "gap_rx_test_v3": "0x020066f5", - "gap_set_adv_set_random_addr": "0x02006741", - "gap_set_callback_for_next_hci": "0x0200677d", - "gap_set_connection_cte_request_enable": "0x0200679d", - "gap_set_connection_cte_response_enable": "0x020067b9", - "gap_set_connection_cte_rx_param": "0x020067c9", - "gap_set_connection_cte_tx_param": "0x0200681d", - "gap_set_connection_parameter_range": "0x02006869", - "gap_set_connectionless_cte_tx_enable": "0x02006881", - "gap_set_connectionless_cte_tx_param": "0x02006891", - "gap_set_connectionless_iq_sampling_enable": "0x020068ed", - "gap_set_data_length": "0x02006949", - "gap_set_def_phy": "0x02006961", - "gap_set_ext_adv_data": "0x02006971", - "gap_set_ext_adv_enable": "0x02006989", - "gap_set_ext_adv_para": "0x020069f9", - "gap_set_ext_scan_enable": "0x02006ac9", - "gap_set_ext_scan_para": "0x02006ae1", - "gap_set_ext_scan_response_data": "0x02006b81", - "gap_set_host_channel_classification": "0x02006b99", - "gap_set_periodic_adv_data": "0x02006ba9", - "gap_set_periodic_adv_enable": "0x02006c19", - "gap_set_periodic_adv_para": "0x02006c29", - "gap_set_periodic_adv_rx_enable": "0x02006c41", - "gap_set_phy": "0x02006c51", - "gap_set_random_device_address": "0x02006c6d", - "gap_start_ccm": "0x02006c9d", - "gap_test_end": "0x02006ce5", - "gap_tx_test_v2": "0x02006cf1", - "gap_tx_test_v4": "0x02006d09", - "gap_update_connection_parameters": "0x02006d2d", - "gap_vendor_tx_continuous_wave": "0x02006d71", - "gatt_client_cancel_write": "0x02007299", - "gatt_client_discover_characteristic_descriptors": "0x020072bf", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020072ff", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200734f", - "gatt_client_discover_characteristics_for_service": "0x0200739f", - "gatt_client_discover_primary_services": "0x020073d5", - "gatt_client_discover_primary_services_by_uuid128": "0x02007407", - "gatt_client_discover_primary_services_by_uuid16": "0x0200744b", - "gatt_client_execute_write": "0x02007489", - "gatt_client_find_included_services_for_service": "0x020074af", - "gatt_client_get_mtu": "0x020074dd", - "gatt_client_is_ready": "0x020075a1", - "gatt_client_listen_for_characteristic_value_updates": "0x020075b7", - "gatt_client_prepare_write": "0x020075d9", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007615", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200763f", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007645", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x02007673", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02007679", - "gatt_client_read_multiple_characteristic_values": "0x020076a7", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x020076d7", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007705", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x02007751", - "gatt_client_register_handler": "0x0200779d", - "gatt_client_reliable_write_long_value_of_characteristic": "0x020077a9", - "gatt_client_signed_write_without_response": "0x02007bdd", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007ca1", - "gatt_client_write_client_characteristic_configuration": "0x02007cdb", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007d2d", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007d3d", - "gatt_client_write_long_value_of_characteristic": "0x02007d79", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007d89", - "gatt_client_write_value_of_characteristic": "0x02007dc5", - "gatt_client_write_value_of_characteristic_without_response": "0x02007dfb", - "hci_add_event_handler": "0x020093f1", - "hci_power_control": "0x02009b99", - "hci_register_acl_packet_handler": "0x02009d4d", - "kv_commit": "0x0200a481", - "kv_get": "0x0200a4dd", - "kv_init": "0x0200a4e9", - "kv_init_backend": "0x0200a569", - "kv_put": "0x0200a57d", - "kv_remove": "0x0200a589", - "kv_remove_all": "0x0200a5bd", - "kv_value_modified": "0x0200a5ed", - "kv_value_modified_of_key": "0x0200a609", - "kv_visit": "0x0200a615", - "l2cap_add_event_handler": "0x0200a6a5", - "l2cap_can_send_packet_now": "0x0200a6b5", - "l2cap_create_le_credit_based_connection_request": "0x0200a879", - "l2cap_credit_based_send": "0x0200a9c1", - "l2cap_credit_based_send_continue": "0x0200a9ed", - "l2cap_disconnect": "0x0200aa69", - "l2cap_get_le_credit_based_connection_credits": "0x0200ac55", - "l2cap_get_peer_mtu_for_local_cid": "0x0200ac71", - "l2cap_init": "0x0200b0b1", - "l2cap_le_send_flow_control_credit": "0x0200b1a7", - "l2cap_max_le_mtu": "0x0200b4b5", - "l2cap_register_packet_handler": "0x0200b5dd", - "l2cap_register_service": "0x0200b5e9", - "l2cap_request_can_send_now_event": "0x0200b6f9", - "l2cap_request_connection_parameter_update": "0x0200b713", - "l2cap_send_echo_request": "0x0200bbf5", - "l2cap_unregister_service": "0x0200bcd5", - "le_device_db_add": "0x0200bd2d", - "le_device_db_find": "0x0200be05", - "le_device_db_from_key": "0x0200be31", - "le_device_db_iter_cur": "0x0200be39", - "le_device_db_iter_cur_key": "0x0200be3d", - "le_device_db_iter_init": "0x0200be41", - "le_device_db_iter_next": "0x0200be49", - "le_device_db_remove_key": "0x0200be6f", - "ll_adjust_conn_peer_tx_power": "0x0200be9d", - "ll_aes_encrypt": "0x0200bec9", - "ll_config": "0x0200bf3d", - "ll_free": "0x0200bf73", - "ll_get_heap_free_size": "0x0200bf7d", - "ll_hint_on_ce_len": "0x0200bf91", - "ll_legacy_adv_set_interval": "0x0200bfc9", - "ll_malloc": "0x0200bfd9", - "ll_register_hci_acl_previewer": "0x0200c0f1", - "ll_scan_set_fixed_channel": "0x0200c155", - "ll_set_adv_access_address": "0x0200c36d", - "ll_set_adv_coded_scheme": "0x0200c379", - "ll_set_conn_acl_report_latency": "0x0200c3b1", - "ll_set_conn_coded_scheme": "0x0200c3e1", - "ll_set_conn_latency": "0x0200c40d", - "ll_set_conn_tx_power": "0x0200c43d", - "ll_set_def_antenna": "0x0200c479", - "ll_set_initiating_coded_scheme": "0x0200c499", - "ll_set_max_conn_number": "0x0200c4a5", - "ll_set_tx_power_range": "0x0200c539", - "nibble_for_char": "0x0201efc9", - "platform_calibrate_rt_clk": "0x0201f073", - "platform_call_on_stack": "0x020021fb", - "platform_config": "0x0201f079", - "platform_delete_timer": "0x0201f1a1", - "platform_enable_irq": "0x0201f1a9", - "platform_get_current_task": "0x0201f1dd", - "platform_get_gen_os_driver": "0x0201f201", - "platform_get_heap_status": "0x0201f209", - "platform_get_link_layer_interf": "0x0201f221", - "platform_get_task_handle": "0x0201f229", - "platform_get_timer_counter": "0x0201f249", - "platform_get_us_time": "0x0201f24d", - "platform_get_version": "0x0201f251", - "platform_hrng": "0x0201f259", - "platform_install_isr_stack": "0x0201f261", - "platform_install_task_stack": "0x0201f26d", - "platform_patch_rf_init_data": "0x0201f2a5", - "platform_printf": "0x0201f2b1", - "platform_raise_assertion": "0x0201f2c5", - "platform_rand": "0x0201f2d9", - "platform_read_info": "0x0201f2dd", - "platform_read_persistent_reg": "0x0201f30d", - "platform_reset": "0x0201f319", - "platform_rt_rc_auto_tune": "0x0201f32d", - "platform_rt_rc_auto_tune2": "0x0201f335", - "platform_rt_rc_tune": "0x0201f39d", - "platform_set_abs_timer": "0x0201f3b9", - "platform_set_evt_callback": "0x0201f3bd", - "platform_set_evt_callback_table": "0x0201f3d1", - "platform_set_irq_callback": "0x0201f3dd", - "platform_set_irq_callback_table": "0x0201f3f9", - "platform_set_rf_clk_source": "0x0201f405", - "platform_set_rf_init_data": "0x0201f411", - "platform_set_rf_power_mapping": "0x0201f41d", - "platform_set_timer": "0x0201f429", - "platform_shutdown": "0x0201f42d", - "platform_switch_app": "0x0201f431", - "platform_trace_raw": "0x0201f449", - "platform_write_persistent_reg": "0x0201f461", - "printf_hexdump": "0x0201f619", - "pvPortMalloc": "0x020200f1", - "pvTaskIncrementMutexHeldCount": "0x020201d9", - "pvTimerGetTimerID": "0x020201f1", - "pxPortInitialiseStack": "0x0202021d", - "reverse_128": "0x02020405", - "reverse_24": "0x0202040b", - "reverse_256": "0x02020411", - "reverse_48": "0x02020417", - "reverse_56": "0x0202041d", - "reverse_64": "0x02020423", - "reverse_bd_addr": "0x02020429", - "reverse_bytes": "0x0202042f", - "sm_add_event_handler": "0x0202078d", - "sm_address_resolution_lookup": "0x020208e5", - "sm_authenticated": "0x02020c61", - "sm_authorization_decline": "0x02020c6f", - "sm_authorization_grant": "0x02020c8f", - "sm_authorization_state": "0x02020caf", - "sm_bonding_decline": "0x02020cc9", - "sm_config": "0x0202111d", - "sm_config_conn": "0x02021135", - "sm_encryption_key_size": "0x020212eb", - "sm_just_works_confirm": "0x02021871", - "sm_le_device_key": "0x02021ba9", - "sm_passkey_input": "0x02021c3f", - "sm_private_random_address_generation_get": "0x02021ff9", - "sm_private_random_address_generation_get_mode": "0x02022001", - "sm_private_random_address_generation_set_mode": "0x0202200d", - "sm_private_random_address_generation_set_update_period": "0x02022035", - "sm_register_external_ltk_callback": "0x02022171", - "sm_register_oob_data_callback": "0x0202217d", - "sm_request_pairing": "0x02022189", - "sm_send_security_request": "0x02022c5f", - "sm_set_accepted_stk_generation_methods": "0x02022c85", - "sm_set_authentication_requirements": "0x02022c91", - "sm_set_encryption_key_size_range": "0x02022c9d", - "sscanf_bd_addr": "0x02022ffd", - "sysSetPublicDeviceAddr": "0x02023529", - "uuid128_to_str": "0x02023d85", - "uuid_add_bluetooth_prefix": "0x02023ddd", - "uuid_has_bluetooth_prefix": "0x02023dfd", - "uxListRemove": "0x02023e19", - "uxQueueMessagesWaiting": "0x02023e41", - "uxQueueMessagesWaitingFromISR": "0x02023e69", - "uxQueueSpacesAvailable": "0x02023e85", - "uxTaskGetStackHighWaterMark": "0x02023eb1", - "uxTaskPriorityGet": "0x02023ed1", - "uxTaskPriorityGetFromISR": "0x02023eed", - "vListInitialise": "0x02023fab", - "vListInitialiseItem": "0x02023fc1", - "vListInsert": "0x02023fc7", - "vListInsertEnd": "0x02023ff7", - "vPortEndScheduler": "0x02024011", - "vPortEnterCritical": "0x0202403d", - "vPortExitCritical": "0x02024081", - "vPortFree": "0x020240b5", - "vPortSuppressTicksAndSleep": "0x02024159", - "vPortValidateInterruptPriority": "0x02024281", - "vQueueDelete": "0x020242dd", - "vQueueWaitForMessageRestricted": "0x02024309", - "vTaskDelay": "0x0202434d", - "vTaskInternalSetTimeOutState": "0x02024399", - "vTaskMissedYield": "0x020243a9", - "vTaskPlaceOnEventList": "0x020243b5", - "vTaskPlaceOnEventListRestricted": "0x020243ed", - "vTaskPriorityDisinheritAfterTimeout": "0x0202442d", - "vTaskPrioritySet": "0x020244d9", - "vTaskResume": "0x020245a1", - "vTaskStartScheduler": "0x02024625", - "vTaskStepTick": "0x020246b5", - "vTaskSuspend": "0x020246e5", - "vTaskSuspendAll": "0x020247a1", - "vTaskSwitchContext": "0x020247b1", - "xPortStartScheduler": "0x02024861", - "xQueueAddToSet": "0x02024965", - "xQueueCreateCountingSemaphore": "0x02024989", - "xQueueCreateCountingSemaphoreStatic": "0x020249c5", - "xQueueCreateMutex": "0x02024a09", - "xQueueCreateMutexStatic": "0x02024a1f", - "xQueueCreateSet": "0x02024a39", - "xQueueGenericCreate": "0x02024a41", - "xQueueGenericCreateStatic": "0x02024a8d", - "xQueueGenericReset": "0x02024af5", - "xQueueGenericSend": "0x02024b81", - "xQueueGenericSendFromISR": "0x02024ced", - "xQueueGiveFromISR": "0x02024dad", - "xQueueGiveMutexRecursive": "0x02024e51", - "xQueueIsQueueEmptyFromISR": "0x02024e91", - "xQueueIsQueueFullFromISR": "0x02024eb5", - "xQueuePeek": "0x02024edd", - "xQueuePeekFromISR": "0x02025005", - "xQueueReceive": "0x02025071", - "xQueueReceiveFromISR": "0x0202519d", - "xQueueRemoveFromSet": "0x02025231", - "xQueueSelectFromSet": "0x02025253", - "xQueueSelectFromSetFromISR": "0x02025265", - "xQueueSemaphoreTake": "0x02025279", - "xQueueTakeMutexRecursive": "0x020253e5", - "xTaskCheckForTimeOut": "0x02025429", - "xTaskCreate": "0x02025499", - "xTaskCreateStatic": "0x020254f5", - "xTaskGetCurrentTaskHandle": "0x02025565", - "xTaskGetSchedulerState": "0x02025571", - "xTaskGetTickCount": "0x0202558d", - "xTaskGetTickCountFromISR": "0x02025599", - "xTaskIncrementTick": "0x020255a9", - "xTaskPriorityDisinherit": "0x02025675", - "xTaskPriorityInherit": "0x02025709", - "xTaskRemoveFromEventList": "0x0202579d", - "xTaskResumeAll": "0x0202581d", - "xTaskResumeFromISR": "0x020258e5", - "xTimerCreate": "0x02025971", - "xTimerCreateStatic": "0x020259a5", - "xTimerCreateTimerTask": "0x020259dd", - "xTimerGenericCommand": "0x02025a49", - "xTimerGetExpiryTime": "0x02025ab9", - "xTimerGetTimerDaemonTaskHandle": "0x02025ad9" + "att_dispatch_client_can_send_now": "0x020053b5", + "att_dispatch_client_request_can_send_now_event": "0x020053bb", + "att_dispatch_register_client": "0x020053c1", + "att_dispatch_register_server": "0x020053d5", + "att_dispatch_server_can_send_now": "0x020053e9", + "att_dispatch_server_request_can_send_now_event": "0x020053ef", + "att_emit_general_event": "0x020054a1", + "att_server_can_send_packet_now": "0x02005bd9", + "att_server_deferred_read_response": "0x02005bdd", + "att_server_get_mtu": "0x02005bf5", + "att_server_indicate": "0x02005c6d", + "att_server_init": "0x02005cf1", + "att_server_notify": "0x02005d2d", + "att_server_register_packet_handler": "0x02005e45", + "att_server_request_can_send_now_event": "0x02005e51", + "att_set_db": "0x02005e6d", + "att_set_read_callback": "0x02005e81", + "att_set_write_callback": "0x02005e8d", + "bd_addr_cmp": "0x0200605d", + "bd_addr_copy": "0x02006063", + "bd_addr_to_str": "0x0200606d", + "big_endian_read_16": "0x020060a5", + "big_endian_read_32": "0x020060ad", + "big_endian_store_16": "0x020060c1", + "big_endian_store_32": "0x020060cd", + "btstack_config": "0x0200622d", + "btstack_memory_pool_create": "0x0200636b", + "btstack_memory_pool_free": "0x02006395", + "btstack_memory_pool_get": "0x020063f5", + "btstack_push_user_msg": "0x0200645d", + "btstack_push_user_runnable": "0x02006469", + "btstack_reset": "0x02006475", + "char_for_nibble": "0x02006767", + "eTaskConfirmSleepModeStatus": "0x02006b19", + "gap_add_dev_to_periodic_list": "0x02007189", + "gap_add_whitelist": "0x02007199", + "gap_aes_encrypt": "0x020071a5", + "gap_clear_white_lists": "0x020071dd", + "gap_clr_adv_set": "0x020071e9", + "gap_clr_periodic_adv_list": "0x020071f5", + "gap_create_connection_cancel": "0x02007201", + "gap_default_periodic_adv_sync_transfer_param": "0x0200720d", + "gap_disconnect": "0x02007225", + "gap_disconnect_all": "0x02007251", + "gap_ext_create_connection": "0x02007291", + "gap_get_connection_parameter_range": "0x02007369", + "gap_le_read_channel_map": "0x020073a5", + "gap_periodic_adv_create_sync": "0x02007411", + "gap_periodic_adv_create_sync_cancel": "0x02007435", + "gap_periodic_adv_set_info_transfer": "0x02007441", + "gap_periodic_adv_sync_transfer": "0x02007451", + "gap_periodic_adv_sync_transfer_param": "0x02007461", + "gap_periodic_adv_term_sync": "0x0200747d", + "gap_read_antenna_info": "0x02007505", + "gap_read_periodic_adv_list_size": "0x02007511", + "gap_read_phy": "0x0200751d", + "gap_read_remote_used_features": "0x02007529", + "gap_read_remote_version": "0x02007535", + "gap_read_rssi": "0x02007541", + "gap_remove_whitelist": "0x0200754d", + "gap_rmv_adv_set": "0x020075c9", + "gap_rmv_dev_from_periodic_list": "0x020075d5", + "gap_rx_test_v2": "0x020075e5", + "gap_rx_test_v3": "0x020075f5", + "gap_set_adv_set_random_addr": "0x02007641", + "gap_set_callback_for_next_hci": "0x0200767d", + "gap_set_connection_cte_request_enable": "0x0200769d", + "gap_set_connection_cte_response_enable": "0x020076b9", + "gap_set_connection_cte_rx_param": "0x020076c9", + "gap_set_connection_cte_tx_param": "0x0200771d", + "gap_set_connection_parameter_range": "0x02007769", + "gap_set_connectionless_cte_tx_enable": "0x02007781", + "gap_set_connectionless_cte_tx_param": "0x02007791", + "gap_set_connectionless_iq_sampling_enable": "0x020077ed", + "gap_set_data_length": "0x02007849", + "gap_set_def_phy": "0x02007861", + "gap_set_ext_adv_data": "0x02007871", + "gap_set_ext_adv_enable": "0x02007889", + "gap_set_ext_adv_para": "0x020078f9", + "gap_set_ext_scan_enable": "0x020079c9", + "gap_set_ext_scan_para": "0x020079e1", + "gap_set_ext_scan_response_data": "0x02007a81", + "gap_set_host_channel_classification": "0x02007a99", + "gap_set_periodic_adv_data": "0x02007aa9", + "gap_set_periodic_adv_enable": "0x02007b19", + "gap_set_periodic_adv_para": "0x02007b29", + "gap_set_periodic_adv_rx_enable": "0x02007b41", + "gap_set_phy": "0x02007b51", + "gap_set_random_device_address": "0x02007b6d", + "gap_start_ccm": "0x02007b9d", + "gap_test_end": "0x02007be5", + "gap_tx_test_v2": "0x02007bf1", + "gap_tx_test_v4": "0x02007c09", + "gap_update_connection_parameters": "0x02007c2d", + "gap_vendor_tx_continuous_wave": "0x02007c71", + "gatt_client_cancel_write": "0x02008199", + "gatt_client_discover_characteristic_descriptors": "0x020081bf", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020081ff", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200824f", + "gatt_client_discover_characteristics_for_service": "0x0200829f", + "gatt_client_discover_primary_services": "0x020082d5", + "gatt_client_discover_primary_services_by_uuid128": "0x02008307", + "gatt_client_discover_primary_services_by_uuid16": "0x0200834b", + "gatt_client_execute_write": "0x02008389", + "gatt_client_find_included_services_for_service": "0x020083af", + "gatt_client_get_mtu": "0x020083dd", + "gatt_client_is_ready": "0x020084a1", + "gatt_client_listen_for_characteristic_value_updates": "0x020084b7", + "gatt_client_prepare_write": "0x020084d9", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02008515", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200853f", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02008545", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x02008573", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02008579", + "gatt_client_read_multiple_characteristic_values": "0x020085a7", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x020085d7", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x02008605", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x02008651", + "gatt_client_register_handler": "0x0200869d", + "gatt_client_reliable_write_long_value_of_characteristic": "0x020086a9", + "gatt_client_signed_write_without_response": "0x02008add", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02008ba1", + "gatt_client_write_client_characteristic_configuration": "0x02008bdb", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02008c2d", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02008c3d", + "gatt_client_write_long_value_of_characteristic": "0x02008c79", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x02008c89", + "gatt_client_write_value_of_characteristic": "0x02008cc5", + "gatt_client_write_value_of_characteristic_without_response": "0x02008cfb", + "hci_add_event_handler": "0x0200a2f1", + "hci_power_control": "0x0200aa99", + "hci_register_acl_packet_handler": "0x0200ac4d", + "kv_commit": "0x0200b381", + "kv_get": "0x0200b3dd", + "kv_init": "0x0200b3e9", + "kv_init_backend": "0x0200b469", + "kv_put": "0x0200b47d", + "kv_remove": "0x0200b489", + "kv_remove_all": "0x0200b4bd", + "kv_value_modified": "0x0200b4ed", + "kv_value_modified_of_key": "0x0200b509", + "kv_visit": "0x0200b515", + "l2cap_add_event_handler": "0x0200b5a5", + "l2cap_can_send_packet_now": "0x0200b5b5", + "l2cap_create_le_credit_based_connection_request": "0x0200b779", + "l2cap_credit_based_send": "0x0200b8c1", + "l2cap_credit_based_send_continue": "0x0200b8ed", + "l2cap_disconnect": "0x0200b969", + "l2cap_get_le_credit_based_connection_credits": "0x0200bb55", + "l2cap_get_peer_mtu_for_local_cid": "0x0200bb71", + "l2cap_init": "0x0200bfb1", + "l2cap_le_send_flow_control_credit": "0x0200c0a7", + "l2cap_max_le_mtu": "0x0200c3b5", + "l2cap_register_packet_handler": "0x0200c4dd", + "l2cap_register_service": "0x0200c4e9", + "l2cap_request_can_send_now_event": "0x0200c5f9", + "l2cap_request_connection_parameter_update": "0x0200c613", + "l2cap_send_echo_request": "0x0200caf5", + "l2cap_unregister_service": "0x0200cbd5", + "le_device_db_add": "0x0200cc2d", + "le_device_db_find": "0x0200cd05", + "le_device_db_from_key": "0x0200cd31", + "le_device_db_iter_cur": "0x0200cd39", + "le_device_db_iter_cur_key": "0x0200cd3d", + "le_device_db_iter_init": "0x0200cd41", + "le_device_db_iter_next": "0x0200cd49", + "le_device_db_remove_key": "0x0200cd6f", + "ll_adjust_conn_peer_tx_power": "0x0200cd9d", + "ll_aes_encrypt": "0x0200cdc9", + "ll_config": "0x0200ce3d", + "ll_free": "0x0200ce73", + "ll_get_heap_free_size": "0x0200ce7d", + "ll_hint_on_ce_len": "0x0200ce91", + "ll_legacy_adv_set_interval": "0x0200cec9", + "ll_malloc": "0x0200ced9", + "ll_register_hci_acl_previewer": "0x0200cff1", + "ll_scan_set_fixed_channel": "0x0200d055", + "ll_set_adv_access_address": "0x0200d26d", + "ll_set_adv_coded_scheme": "0x0200d279", + "ll_set_conn_acl_report_latency": "0x0200d2b1", + "ll_set_conn_coded_scheme": "0x0200d2e1", + "ll_set_conn_latency": "0x0200d30d", + "ll_set_conn_tx_power": "0x0200d33d", + "ll_set_def_antenna": "0x0200d379", + "ll_set_initiating_coded_scheme": "0x0200d399", + "ll_set_max_conn_number": "0x0200d3a5", + "ll_set_tx_power_range": "0x0200d439", + "nibble_for_char": "0x0201fedd", + "platform_calibrate_rt_clk": "0x0201ff87", + "platform_call_on_stack": "0x020030fb", + "platform_config": "0x0201ff8d", + "platform_delete_timer": "0x020200b5", + "platform_enable_irq": "0x020200bd", + "platform_get_current_task": "0x020200f1", + "platform_get_gen_os_driver": "0x02020115", + "platform_get_heap_status": "0x0202011d", + "platform_get_link_layer_interf": "0x02020135", + "platform_get_task_handle": "0x0202013d", + "platform_get_timer_counter": "0x0202015d", + "platform_get_us_time": "0x02020161", + "platform_get_version": "0x02020165", + "platform_hrng": "0x02020181", + "platform_install_isr_stack": "0x02020189", + "platform_install_task_stack": "0x02020195", + "platform_patch_rf_init_data": "0x020201cd", + "platform_printf": "0x020201d9", + "platform_raise_assertion": "0x020201ed", + "platform_rand": "0x02020201", + "platform_read_info": "0x02020205", + "platform_read_persistent_reg": "0x02020235", + "platform_reset": "0x02020241", + "platform_rt_rc_auto_tune": "0x02020255", + "platform_rt_rc_auto_tune2": "0x0202025d", + "platform_rt_rc_tune": "0x020202c5", + "platform_set_abs_timer": "0x020202e1", + "platform_set_evt_callback": "0x020202e5", + "platform_set_evt_callback_table": "0x020202f9", + "platform_set_irq_callback": "0x02020305", + "platform_set_irq_callback_table": "0x02020321", + "platform_set_rf_clk_source": "0x0202032d", + "platform_set_rf_init_data": "0x02020339", + "platform_set_rf_power_mapping": "0x02020345", + "platform_set_timer": "0x02020351", + "platform_shutdown": "0x02020355", + "platform_switch_app": "0x02020359", + "platform_trace_raw": "0x02020371", + "platform_write_persistent_reg": "0x02020389", + "printf_hexdump": "0x02020541", + "pvPortMalloc": "0x02021019", + "pvTaskIncrementMutexHeldCount": "0x02021101", + "pvTimerGetTimerID": "0x02021119", + "pxPortInitialiseStack": "0x02021145", + "reverse_128": "0x0202132d", + "reverse_24": "0x02021333", + "reverse_256": "0x02021339", + "reverse_48": "0x0202133f", + "reverse_56": "0x02021345", + "reverse_64": "0x0202134b", + "reverse_bd_addr": "0x02021351", + "reverse_bytes": "0x02021357", + "sm_add_event_handler": "0x020216b5", + "sm_address_resolution_lookup": "0x0202180d", + "sm_authenticated": "0x02021b89", + "sm_authorization_decline": "0x02021b97", + "sm_authorization_grant": "0x02021bb7", + "sm_authorization_state": "0x02021bd7", + "sm_bonding_decline": "0x02021bf1", + "sm_config": "0x02022045", + "sm_config_conn": "0x0202205d", + "sm_encryption_key_size": "0x02022213", + "sm_just_works_confirm": "0x02022799", + "sm_le_device_key": "0x02022ad1", + "sm_passkey_input": "0x02022b67", + "sm_private_random_address_generation_get": "0x02022f21", + "sm_private_random_address_generation_get_mode": "0x02022f29", + "sm_private_random_address_generation_set_mode": "0x02022f35", + "sm_private_random_address_generation_set_update_period": "0x02022f5d", + "sm_register_external_ltk_callback": "0x02023099", + "sm_register_oob_data_callback": "0x020230a5", + "sm_request_pairing": "0x020230b1", + "sm_send_security_request": "0x02023b87", + "sm_set_accepted_stk_generation_methods": "0x02023bad", + "sm_set_authentication_requirements": "0x02023bb9", + "sm_set_encryption_key_size_range": "0x02023bc5", + "sscanf_bd_addr": "0x02023f25", + "sysSetPublicDeviceAddr": "0x0202444d", + "uuid128_to_str": "0x02024ca9", + "uuid_add_bluetooth_prefix": "0x02024d01", + "uuid_has_bluetooth_prefix": "0x02024d21", + "uxListRemove": "0x02024d3d", + "uxQueueMessagesWaiting": "0x02024d65", + "uxQueueMessagesWaitingFromISR": "0x02024d8d", + "uxQueueSpacesAvailable": "0x02024da9", + "uxTaskGetStackHighWaterMark": "0x02024dd5", + "uxTaskPriorityGet": "0x02024df5", + "uxTaskPriorityGetFromISR": "0x02024e11", + "vListInitialise": "0x02024ecf", + "vListInitialiseItem": "0x02024ee5", + "vListInsert": "0x02024eeb", + "vListInsertEnd": "0x02024f1b", + "vPortEndScheduler": "0x02024f35", + "vPortEnterCritical": "0x02024f61", + "vPortExitCritical": "0x02024fa5", + "vPortFree": "0x02024fd9", + "vPortSuppressTicksAndSleep": "0x0202507d", + "vPortValidateInterruptPriority": "0x020251a5", + "vQueueDelete": "0x02025201", + "vQueueWaitForMessageRestricted": "0x0202522d", + "vTaskDelay": "0x02025271", + "vTaskInternalSetTimeOutState": "0x020252bd", + "vTaskMissedYield": "0x020252cd", + "vTaskPlaceOnEventList": "0x020252d9", + "vTaskPlaceOnEventListRestricted": "0x02025311", + "vTaskPriorityDisinheritAfterTimeout": "0x02025351", + "vTaskPrioritySet": "0x020253fd", + "vTaskResume": "0x020254c5", + "vTaskStartScheduler": "0x02025549", + "vTaskStepTick": "0x020255d9", + "vTaskSuspend": "0x02025609", + "vTaskSuspendAll": "0x020256c5", + "vTaskSwitchContext": "0x020256d5", + "xPortStartScheduler": "0x02025785", + "xQueueAddToSet": "0x02025889", + "xQueueCreateCountingSemaphore": "0x020258ad", + "xQueueCreateCountingSemaphoreStatic": "0x020258e9", + "xQueueCreateMutex": "0x0202592d", + "xQueueCreateMutexStatic": "0x02025943", + "xQueueCreateSet": "0x0202595d", + "xQueueGenericCreate": "0x02025965", + "xQueueGenericCreateStatic": "0x020259b1", + "xQueueGenericReset": "0x02025a19", + "xQueueGenericSend": "0x02025aa5", + "xQueueGenericSendFromISR": "0x02025c11", + "xQueueGiveFromISR": "0x02025cd1", + "xQueueGiveMutexRecursive": "0x02025d75", + "xQueueIsQueueEmptyFromISR": "0x02025db5", + "xQueueIsQueueFullFromISR": "0x02025dd9", + "xQueuePeek": "0x02025e01", + "xQueuePeekFromISR": "0x02025f29", + "xQueueReceive": "0x02025f95", + "xQueueReceiveFromISR": "0x020260c1", + "xQueueRemoveFromSet": "0x02026155", + "xQueueSelectFromSet": "0x02026177", + "xQueueSelectFromSetFromISR": "0x02026189", + "xQueueSemaphoreTake": "0x0202619d", + "xQueueTakeMutexRecursive": "0x02026309", + "xTaskCheckForTimeOut": "0x0202634d", + "xTaskCreate": "0x020263bd", + "xTaskCreateStatic": "0x02026419", + "xTaskGetCurrentTaskHandle": "0x02026489", + "xTaskGetSchedulerState": "0x02026495", + "xTaskGetTickCount": "0x020264b1", + "xTaskGetTickCountFromISR": "0x020264bd", + "xTaskIncrementTick": "0x020264cd", + "xTaskPriorityDisinherit": "0x02026599", + "xTaskPriorityInherit": "0x0202662d", + "xTaskRemoveFromEventList": "0x020266c1", + "xTaskResumeAll": "0x02026741", + "xTaskResumeFromISR": "0x02026809", + "xTimerCreate": "0x02026895", + "xTimerCreateStatic": "0x020268c9", + "xTimerCreateTimerTask": "0x02026901", + "xTimerGenericCommand": "0x0202696d", + "xTimerGetExpiryTime": "0x020269dd", + "xTimerGetTimerDaemonTaskHandle": "0x020269fd" } \ No newline at end of file diff --git a/bundles/mass_conn/ING9168xx/meta.json b/bundles/mass_conn/ING9168xx/meta.json index 9c66f81a9..47ec5edb3 100644 --- a/bundles/mass_conn/ING9168xx/meta.json +++ b/bundles/mass_conn/ING9168xx/meta.json @@ -1,6 +1,6 @@ { "app": { - "base": 33718272 + "base": 33722368 }, "ram": { "base": 536870912, @@ -8,11 +8,11 @@ }, "rom": { "base": 33562624, - "size": 155320 + "size": 159200 }, "version": [ 2, 3, - 1 + 2 ] } \ No newline at end of file diff --git a/bundles/mass_conn/ING9168xx/platform.bin b/bundles/mass_conn/ING9168xx/platform.bin index 89db6dfeb8f33936e6b04543357cfe7c912a62b1..86b80bd00a9f400986b2deea2e9188b63e84d5eb 100644 GIT binary patch delta 26725 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 delta 22667 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 Q57u<3_tmtQ<4}eF4_#vu)Bpeg diff --git a/bundles/mini/ING9168xx/apis.json b/bundles/mini/ING9168xx/apis.json index bd2a23d3e..2e3f54244 100644 --- a/bundles/mini/ING9168xx/apis.json +++ b/bundles/mini/ING9168xx/apis.json @@ -1,347 +1,347 @@ { - "att_dispatch_client_can_send_now": "0x020042e1", - "att_dispatch_client_request_can_send_now_event": "0x020042e7", - "att_dispatch_register_client": "0x020042ed", - "att_dispatch_register_server": "0x02004301", - "att_dispatch_server_can_send_now": "0x02004315", - "att_dispatch_server_request_can_send_now_event": "0x0200431b", - "att_emit_general_event": "0x020043cd", - "att_server_can_send_packet_now": "0x02004b01", - "att_server_deferred_read_response": "0x02004b05", - "att_server_get_mtu": "0x02004b1d", - "att_server_indicate": "0x02004b89", - "att_server_init": "0x02004c0d", - "att_server_notify": "0x02004c49", - "att_server_register_packet_handler": "0x02004d61", - "att_server_request_can_send_now_event": "0x02004d6d", - "att_set_db": "0x02004d89", - "att_set_read_callback": "0x02004d9d", - "att_set_write_callback": "0x02004da9", - "bd_addr_cmp": "0x02004f79", - "bd_addr_copy": "0x02004f7f", - "bd_addr_to_str": "0x02004f89", - "big_endian_read_16": "0x02004fc1", - "big_endian_read_32": "0x02004fc9", - "big_endian_store_16": "0x02004fdd", - "big_endian_store_32": "0x02004fe9", - "btstack_config": "0x02005015", - "btstack_memory_pool_create": "0x02005153", - "btstack_memory_pool_free": "0x0200517d", - "btstack_memory_pool_get": "0x020051dd", - "btstack_push_user_msg": "0x02005245", - "btstack_push_user_runnable": "0x02005251", - "btstack_reset": "0x0200525d", - "char_for_nibble": "0x02005483", - "eTaskConfirmSleepModeStatus": "0x020057bd", - "gap_add_dev_to_periodic_list": "0x02005e2d", - "gap_add_whitelist": "0x02005e3d", - "gap_aes_encrypt": "0x02005e49", - "gap_clear_white_lists": "0x02005e81", - "gap_clr_adv_set": "0x02005e8d", - "gap_clr_periodic_adv_list": "0x02005e99", - "gap_create_connection_cancel": "0x02005ea5", - "gap_default_periodic_adv_sync_transfer_param": "0x02005eb1", - "gap_disconnect": "0x02005ec9", - "gap_disconnect_all": "0x02005ef5", - "gap_ext_create_connection": "0x02005f35", - "gap_get_connection_parameter_range": "0x0200600d", - "gap_le_read_channel_map": "0x02006045", - "gap_periodic_adv_create_sync": "0x020060b1", - "gap_periodic_adv_create_sync_cancel": "0x020060d5", - "gap_periodic_adv_set_info_transfer": "0x020060e1", - "gap_periodic_adv_sync_transfer": "0x020060f1", - "gap_periodic_adv_sync_transfer_param": "0x02006101", - "gap_periodic_adv_term_sync": "0x0200611d", - "gap_read_antenna_info": "0x020061a5", - "gap_read_periodic_adv_list_size": "0x020061b1", - "gap_read_phy": "0x020061bd", - "gap_read_remote_used_features": "0x020061c9", - "gap_read_remote_version": "0x020061d5", - "gap_read_rssi": "0x020061e1", - "gap_remove_whitelist": "0x020061ed", - "gap_rmv_adv_set": "0x02006269", - "gap_rmv_dev_from_periodic_list": "0x02006275", - "gap_rx_test_v2": "0x02006285", - "gap_rx_test_v3": "0x02006295", - "gap_set_adv_set_random_addr": "0x020062e1", - "gap_set_callback_for_next_hci": "0x0200631d", - "gap_set_connection_cte_request_enable": "0x0200633d", - "gap_set_connection_cte_response_enable": "0x02006359", - "gap_set_connection_cte_rx_param": "0x02006369", - "gap_set_connection_cte_tx_param": "0x020063bd", - "gap_set_connection_parameter_range": "0x02006409", - "gap_set_connectionless_cte_tx_enable": "0x02006421", - "gap_set_connectionless_cte_tx_param": "0x02006431", - "gap_set_connectionless_iq_sampling_enable": "0x0200648d", - "gap_set_data_length": "0x020064e9", - "gap_set_def_phy": "0x02006501", - "gap_set_ext_adv_data": "0x02006511", - "gap_set_ext_adv_enable": "0x02006529", - "gap_set_ext_adv_para": "0x02006599", - "gap_set_ext_scan_enable": "0x02006669", - "gap_set_ext_scan_para": "0x02006681", - "gap_set_ext_scan_response_data": "0x02006721", - "gap_set_host_channel_classification": "0x02006739", - "gap_set_periodic_adv_data": "0x02006749", - "gap_set_periodic_adv_enable": "0x020067b9", - "gap_set_periodic_adv_para": "0x020067c9", - "gap_set_periodic_adv_rx_enable": "0x020067e1", - "gap_set_phy": "0x020067f1", - "gap_set_random_device_address": "0x0200680d", - "gap_start_ccm": "0x0200683d", - "gap_test_end": "0x02006885", - "gap_tx_test_v2": "0x02006891", - "gap_tx_test_v4": "0x020068a9", - "gap_update_connection_parameters": "0x020068cd", - "gap_vendor_tx_continuous_wave": "0x0200690d", - "gatt_client_cancel_write": "0x02006e35", - "gatt_client_discover_characteristic_descriptors": "0x02006e5b", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x02006e9b", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x02006eeb", - "gatt_client_discover_characteristics_for_service": "0x02006f3b", - "gatt_client_discover_primary_services": "0x02006f71", - "gatt_client_discover_primary_services_by_uuid128": "0x02006fa3", - "gatt_client_discover_primary_services_by_uuid16": "0x02006fe7", - "gatt_client_execute_write": "0x02007025", - "gatt_client_find_included_services_for_service": "0x0200704b", - "gatt_client_get_mtu": "0x02007079", - "gatt_client_is_ready": "0x0200713d", - "gatt_client_listen_for_characteristic_value_updates": "0x02007153", - "gatt_client_prepare_write": "0x02007173", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020071af", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020071d9", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020071df", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0200720d", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02007213", - "gatt_client_read_multiple_characteristic_values": "0x02007241", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007271", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x0200729f", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x020072eb", - "gatt_client_register_handler": "0x02007335", - "gatt_client_reliable_write_long_value_of_characteristic": "0x02007341", - "gatt_client_signed_write_without_response": "0x02007749", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x0200780d", - "gatt_client_write_client_characteristic_configuration": "0x02007847", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007899", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020078a9", - "gatt_client_write_long_value_of_characteristic": "0x020078e5", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x020078f5", - "gatt_client_write_value_of_characteristic": "0x02007931", - "gatt_client_write_value_of_characteristic_without_response": "0x02007967", - "hci_add_event_handler": "0x02008f41", - "hci_power_control": "0x020096d5", - "hci_register_acl_packet_handler": "0x02009889", - "kv_commit": "0x02009ee5", - "kv_get": "0x02009f41", - "kv_init": "0x02009f4d", - "kv_init_backend": "0x02009fc9", - "kv_put": "0x02009fdd", - "kv_remove": "0x02009fe9", - "kv_remove_all": "0x0200a01d", - "kv_value_modified": "0x0200a04d", - "kv_value_modified_of_key": "0x0200a069", - "kv_visit": "0x0200a075", - "l2cap_add_event_handler": "0x0200a105", - "l2cap_can_send_packet_now": "0x0200a115", - "l2cap_create_le_credit_based_connection_request": "0x0200a2d9", - "l2cap_credit_based_send": "0x0200a421", - "l2cap_credit_based_send_continue": "0x0200a44d", - "l2cap_disconnect": "0x0200a4c9", - "l2cap_get_le_credit_based_connection_credits": "0x0200a6b5", - "l2cap_get_peer_mtu_for_local_cid": "0x0200a6d1", - "l2cap_init": "0x0200ab11", - "l2cap_le_send_flow_control_credit": "0x0200ac07", - "l2cap_max_le_mtu": "0x0200af15", - "l2cap_register_packet_handler": "0x0200b03d", - "l2cap_register_service": "0x0200b049", - "l2cap_request_can_send_now_event": "0x0200b159", - "l2cap_request_connection_parameter_update": "0x0200b173", - "l2cap_send_echo_request": "0x0200b655", - "l2cap_unregister_service": "0x0200b735", - "le_device_db_add": "0x0200b78d", - "le_device_db_find": "0x0200b855", - "le_device_db_from_key": "0x0200b881", - "le_device_db_iter_cur": "0x0200b889", - "le_device_db_iter_cur_key": "0x0200b88d", - "le_device_db_iter_init": "0x0200b891", - "le_device_db_iter_next": "0x0200b899", - "le_device_db_remove_key": "0x0200b8bf", - "ll_adjust_conn_peer_tx_power": "0x0200b8ed", - "ll_aes_encrypt": "0x0200b915", - "ll_config": "0x0200b989", - "ll_free": "0x0200b9bf", - "ll_get_heap_free_size": "0x0200b9c9", - "ll_hint_on_ce_len": "0x0200b9dd", - "ll_legacy_adv_set_interval": "0x0200ba15", - "ll_malloc": "0x0200ba25", - "ll_register_hci_acl_previewer": "0x0200bb3d", - "ll_scan_set_fixed_channel": "0x0200bba1", - "ll_set_adv_access_address": "0x0200bdb9", - "ll_set_adv_coded_scheme": "0x0200bdc5", - "ll_set_conn_acl_report_latency": "0x0200bdf5", - "ll_set_conn_coded_scheme": "0x0200be21", - "ll_set_conn_latency": "0x0200be49", - "ll_set_conn_tx_power": "0x0200be75", - "ll_set_def_antenna": "0x0200bead", - "ll_set_initiating_coded_scheme": "0x0200becd", - "ll_set_max_conn_number": "0x0200bed9", - "ll_set_tx_power_range": "0x0200bf6d", - "nibble_for_char": "0x0201c0d1", - "platform_calibrate_rt_clk": "0x0201c159", - "platform_call_on_stack": "0x020021fb", - "platform_config": "0x0201c15d", - "platform_delete_timer": "0x0201c285", - "platform_enable_irq": "0x0201c28d", - "platform_get_current_task": "0x0201c2e1", - "platform_get_gen_os_driver": "0x0201c305", - "platform_get_heap_status": "0x0201c30d", - "platform_get_link_layer_interf": "0x0201c325", - "platform_get_task_handle": "0x0201c32d", - "platform_get_timer_counter": "0x0201c34d", - "platform_get_us_time": "0x0201c351", - "platform_get_version": "0x0201c355", - "platform_hrng": "0x0201c35d", - "platform_install_isr_stack": "0x0201c365", - "platform_install_task_stack": "0x0201c371", - "platform_patch_rf_init_data": "0x0201c3a9", - "platform_printf": "0x0201c3b5", - "platform_raise_assertion": "0x0201c3c9", - "platform_rand": "0x0201c3dd", - "platform_read_info": "0x0201c3e1", - "platform_read_persistent_reg": "0x0201c411", - "platform_reset": "0x0201c41d", - "platform_rt_rc_auto_tune": "0x0201c431", - "platform_rt_rc_auto_tune2": "0x0201c439", - "platform_rt_rc_tune": "0x0201c4a1", - "platform_set_abs_timer": "0x0201c4bd", - "platform_set_evt_callback": "0x0201c4c1", - "platform_set_evt_callback_table": "0x0201c4d5", - "platform_set_irq_callback": "0x0201c4e1", - "platform_set_irq_callback_table": "0x0201c4fd", - "platform_set_rf_clk_source": "0x0201c509", - "platform_set_rf_init_data": "0x0201c515", - "platform_set_rf_power_mapping": "0x0201c521", - "platform_set_timer": "0x0201c52d", - "platform_shutdown": "0x0201c531", - "platform_switch_app": "0x0201c535", - "platform_trace_raw": "0x0201c54d", - "platform_write_persistent_reg": "0x0201c565", - "printf_hexdump": "0x0201c71d", - "pvPortMalloc": "0x0201d151", - "pvTaskIncrementMutexHeldCount": "0x0201d239", - "pvTimerGetTimerID": "0x0201d251", - "pxPortInitialiseStack": "0x0201d27d", - "reverse_128": "0x0201d465", - "reverse_24": "0x0201d46b", - "reverse_256": "0x0201d471", - "reverse_48": "0x0201d477", - "reverse_56": "0x0201d47d", - "reverse_64": "0x0201d483", - "reverse_bd_addr": "0x0201d489", - "reverse_bytes": "0x0201d48f", - "sm_add_event_handler": "0x0201d795", - "sm_address_resolution_lookup": "0x0201d8ed", - "sm_authenticated": "0x0201dc69", - "sm_authorization_decline": "0x0201dc77", - "sm_authorization_grant": "0x0201dc97", - "sm_authorization_state": "0x0201dcb7", - "sm_bonding_decline": "0x0201dcd1", - "sm_config": "0x0201e125", - "sm_config_conn": "0x0201e13d", - "sm_encryption_key_size": "0x0201e2f3", - "sm_just_works_confirm": "0x0201e879", - "sm_le_device_key": "0x0201ebb1", - "sm_passkey_input": "0x0201ec47", - "sm_private_random_address_generation_get": "0x0201f001", - "sm_private_random_address_generation_get_mode": "0x0201f009", - "sm_private_random_address_generation_set_mode": "0x0201f015", - "sm_private_random_address_generation_set_update_period": "0x0201f03d", - "sm_register_external_ltk_callback": "0x0201f179", - "sm_register_oob_data_callback": "0x0201f185", - "sm_request_pairing": "0x0201f191", - "sm_send_security_request": "0x0201fc67", - "sm_set_accepted_stk_generation_methods": "0x0201fc8d", - "sm_set_authentication_requirements": "0x0201fc99", - "sm_set_encryption_key_size_range": "0x0201fca5", - "sscanf_bd_addr": "0x02020005", - "sysSetPublicDeviceAddr": "0x020200b9", - "uuid128_to_str": "0x02020875", - "uuid_add_bluetooth_prefix": "0x020208cd", - "uuid_has_bluetooth_prefix": "0x020208ed", - "uxListRemove": "0x02020909", - "uxQueueMessagesWaiting": "0x02020931", - "uxQueueMessagesWaitingFromISR": "0x02020959", - "uxQueueSpacesAvailable": "0x02020975", - "uxTaskGetStackHighWaterMark": "0x020209a1", - "uxTaskPriorityGet": "0x020209c1", - "uxTaskPriorityGetFromISR": "0x020209dd", - "vListInitialise": "0x02020a43", - "vListInitialiseItem": "0x02020a59", - "vListInsert": "0x02020a5f", - "vListInsertEnd": "0x02020a8f", - "vPortEndScheduler": "0x02020aa9", + "att_dispatch_client_can_send_now": "0x020051e1", + "att_dispatch_client_request_can_send_now_event": "0x020051e7", + "att_dispatch_register_client": "0x020051ed", + "att_dispatch_register_server": "0x02005201", + "att_dispatch_server_can_send_now": "0x02005215", + "att_dispatch_server_request_can_send_now_event": "0x0200521b", + "att_emit_general_event": "0x020052cd", + "att_server_can_send_packet_now": "0x02005a01", + "att_server_deferred_read_response": "0x02005a05", + "att_server_get_mtu": "0x02005a1d", + "att_server_indicate": "0x02005a89", + "att_server_init": "0x02005b0d", + "att_server_notify": "0x02005b49", + "att_server_register_packet_handler": "0x02005c61", + "att_server_request_can_send_now_event": "0x02005c6d", + "att_set_db": "0x02005c89", + "att_set_read_callback": "0x02005c9d", + "att_set_write_callback": "0x02005ca9", + "bd_addr_cmp": "0x02005e79", + "bd_addr_copy": "0x02005e7f", + "bd_addr_to_str": "0x02005e89", + "big_endian_read_16": "0x02005ec1", + "big_endian_read_32": "0x02005ec9", + "big_endian_store_16": "0x02005edd", + "big_endian_store_32": "0x02005ee9", + "btstack_config": "0x02005f15", + "btstack_memory_pool_create": "0x02006053", + "btstack_memory_pool_free": "0x0200607d", + "btstack_memory_pool_get": "0x020060dd", + "btstack_push_user_msg": "0x02006145", + "btstack_push_user_runnable": "0x02006151", + "btstack_reset": "0x0200615d", + "char_for_nibble": "0x02006383", + "eTaskConfirmSleepModeStatus": "0x020066bd", + "gap_add_dev_to_periodic_list": "0x02006d2d", + "gap_add_whitelist": "0x02006d3d", + "gap_aes_encrypt": "0x02006d49", + "gap_clear_white_lists": "0x02006d81", + "gap_clr_adv_set": "0x02006d8d", + "gap_clr_periodic_adv_list": "0x02006d99", + "gap_create_connection_cancel": "0x02006da5", + "gap_default_periodic_adv_sync_transfer_param": "0x02006db1", + "gap_disconnect": "0x02006dc9", + "gap_disconnect_all": "0x02006df5", + "gap_ext_create_connection": "0x02006e35", + "gap_get_connection_parameter_range": "0x02006f0d", + "gap_le_read_channel_map": "0x02006f45", + "gap_periodic_adv_create_sync": "0x02006fb1", + "gap_periodic_adv_create_sync_cancel": "0x02006fd5", + "gap_periodic_adv_set_info_transfer": "0x02006fe1", + "gap_periodic_adv_sync_transfer": "0x02006ff1", + "gap_periodic_adv_sync_transfer_param": "0x02007001", + "gap_periodic_adv_term_sync": "0x0200701d", + "gap_read_antenna_info": "0x020070a5", + "gap_read_periodic_adv_list_size": "0x020070b1", + "gap_read_phy": "0x020070bd", + "gap_read_remote_used_features": "0x020070c9", + "gap_read_remote_version": "0x020070d5", + "gap_read_rssi": "0x020070e1", + "gap_remove_whitelist": "0x020070ed", + "gap_rmv_adv_set": "0x02007169", + "gap_rmv_dev_from_periodic_list": "0x02007175", + "gap_rx_test_v2": "0x02007185", + "gap_rx_test_v3": "0x02007195", + "gap_set_adv_set_random_addr": "0x020071e1", + "gap_set_callback_for_next_hci": "0x0200721d", + "gap_set_connection_cte_request_enable": "0x0200723d", + "gap_set_connection_cte_response_enable": "0x02007259", + "gap_set_connection_cte_rx_param": "0x02007269", + "gap_set_connection_cte_tx_param": "0x020072bd", + "gap_set_connection_parameter_range": "0x02007309", + "gap_set_connectionless_cte_tx_enable": "0x02007321", + "gap_set_connectionless_cte_tx_param": "0x02007331", + "gap_set_connectionless_iq_sampling_enable": "0x0200738d", + "gap_set_data_length": "0x020073e9", + "gap_set_def_phy": "0x02007401", + "gap_set_ext_adv_data": "0x02007411", + "gap_set_ext_adv_enable": "0x02007429", + "gap_set_ext_adv_para": "0x02007499", + "gap_set_ext_scan_enable": "0x02007569", + "gap_set_ext_scan_para": "0x02007581", + "gap_set_ext_scan_response_data": "0x02007621", + "gap_set_host_channel_classification": "0x02007639", + "gap_set_periodic_adv_data": "0x02007649", + "gap_set_periodic_adv_enable": "0x020076b9", + "gap_set_periodic_adv_para": "0x020076c9", + "gap_set_periodic_adv_rx_enable": "0x020076e1", + "gap_set_phy": "0x020076f1", + "gap_set_random_device_address": "0x0200770d", + "gap_start_ccm": "0x0200773d", + "gap_test_end": "0x02007785", + "gap_tx_test_v2": "0x02007791", + "gap_tx_test_v4": "0x020077a9", + "gap_update_connection_parameters": "0x020077cd", + "gap_vendor_tx_continuous_wave": "0x0200780d", + "gatt_client_cancel_write": "0x02007d35", + "gatt_client_discover_characteristic_descriptors": "0x02007d5b", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x02007d9b", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x02007deb", + "gatt_client_discover_characteristics_for_service": "0x02007e3b", + "gatt_client_discover_primary_services": "0x02007e71", + "gatt_client_discover_primary_services_by_uuid128": "0x02007ea3", + "gatt_client_discover_primary_services_by_uuid16": "0x02007ee7", + "gatt_client_execute_write": "0x02007f25", + "gatt_client_find_included_services_for_service": "0x02007f4b", + "gatt_client_get_mtu": "0x02007f79", + "gatt_client_is_ready": "0x0200803d", + "gatt_client_listen_for_characteristic_value_updates": "0x02008053", + "gatt_client_prepare_write": "0x02008073", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020080af", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020080d9", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020080df", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0200810d", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02008113", + "gatt_client_read_multiple_characteristic_values": "0x02008141", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x02008171", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x0200819f", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x020081eb", + "gatt_client_register_handler": "0x02008235", + "gatt_client_reliable_write_long_value_of_characteristic": "0x02008241", + "gatt_client_signed_write_without_response": "0x02008649", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x0200870d", + "gatt_client_write_client_characteristic_configuration": "0x02008747", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02008799", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020087a9", + "gatt_client_write_long_value_of_characteristic": "0x020087e5", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x020087f5", + "gatt_client_write_value_of_characteristic": "0x02008831", + "gatt_client_write_value_of_characteristic_without_response": "0x02008867", + "hci_add_event_handler": "0x02009e41", + "hci_power_control": "0x0200a5d5", + "hci_register_acl_packet_handler": "0x0200a789", + "kv_commit": "0x0200ade5", + "kv_get": "0x0200ae41", + "kv_init": "0x0200ae4d", + "kv_init_backend": "0x0200aec9", + "kv_put": "0x0200aedd", + "kv_remove": "0x0200aee9", + "kv_remove_all": "0x0200af1d", + "kv_value_modified": "0x0200af4d", + "kv_value_modified_of_key": "0x0200af69", + "kv_visit": "0x0200af75", + "l2cap_add_event_handler": "0x0200b005", + "l2cap_can_send_packet_now": "0x0200b015", + "l2cap_create_le_credit_based_connection_request": "0x0200b1d9", + "l2cap_credit_based_send": "0x0200b321", + "l2cap_credit_based_send_continue": "0x0200b34d", + "l2cap_disconnect": "0x0200b3c9", + "l2cap_get_le_credit_based_connection_credits": "0x0200b5b5", + "l2cap_get_peer_mtu_for_local_cid": "0x0200b5d1", + "l2cap_init": "0x0200ba11", + "l2cap_le_send_flow_control_credit": "0x0200bb07", + "l2cap_max_le_mtu": "0x0200be15", + "l2cap_register_packet_handler": "0x0200bf3d", + "l2cap_register_service": "0x0200bf49", + "l2cap_request_can_send_now_event": "0x0200c059", + "l2cap_request_connection_parameter_update": "0x0200c073", + "l2cap_send_echo_request": "0x0200c555", + "l2cap_unregister_service": "0x0200c635", + "le_device_db_add": "0x0200c68d", + "le_device_db_find": "0x0200c755", + "le_device_db_from_key": "0x0200c781", + "le_device_db_iter_cur": "0x0200c789", + "le_device_db_iter_cur_key": "0x0200c78d", + "le_device_db_iter_init": "0x0200c791", + "le_device_db_iter_next": "0x0200c799", + "le_device_db_remove_key": "0x0200c7bf", + "ll_adjust_conn_peer_tx_power": "0x0200c7ed", + "ll_aes_encrypt": "0x0200c815", + "ll_config": "0x0200c889", + "ll_free": "0x0200c8bf", + "ll_get_heap_free_size": "0x0200c8c9", + "ll_hint_on_ce_len": "0x0200c8dd", + "ll_legacy_adv_set_interval": "0x0200c915", + "ll_malloc": "0x0200c925", + "ll_register_hci_acl_previewer": "0x0200ca3d", + "ll_scan_set_fixed_channel": "0x0200caa1", + "ll_set_adv_access_address": "0x0200ccb9", + "ll_set_adv_coded_scheme": "0x0200ccc5", + "ll_set_conn_acl_report_latency": "0x0200ccf5", + "ll_set_conn_coded_scheme": "0x0200cd21", + "ll_set_conn_latency": "0x0200cd49", + "ll_set_conn_tx_power": "0x0200cd75", + "ll_set_def_antenna": "0x0200cdad", + "ll_set_initiating_coded_scheme": "0x0200cdcd", + "ll_set_max_conn_number": "0x0200cdd9", + "ll_set_tx_power_range": "0x0200ce6d", + "nibble_for_char": "0x0201cfe1", + "platform_calibrate_rt_clk": "0x0201d069", + "platform_call_on_stack": "0x020030fb", + "platform_config": "0x0201d06d", + "platform_delete_timer": "0x0201d195", + "platform_enable_irq": "0x0201d19d", + "platform_get_current_task": "0x0201d1f1", + "platform_get_gen_os_driver": "0x0201d215", + "platform_get_heap_status": "0x0201d21d", + "platform_get_link_layer_interf": "0x0201d235", + "platform_get_task_handle": "0x0201d23d", + "platform_get_timer_counter": "0x0201d25d", + "platform_get_us_time": "0x0201d261", + "platform_get_version": "0x0201d265", + "platform_hrng": "0x0201d281", + "platform_install_isr_stack": "0x0201d289", + "platform_install_task_stack": "0x0201d295", + "platform_patch_rf_init_data": "0x0201d2cd", + "platform_printf": "0x0201d2d9", + "platform_raise_assertion": "0x0201d2ed", + "platform_rand": "0x0201d301", + "platform_read_info": "0x0201d305", + "platform_read_persistent_reg": "0x0201d335", + "platform_reset": "0x0201d341", + "platform_rt_rc_auto_tune": "0x0201d355", + "platform_rt_rc_auto_tune2": "0x0201d35d", + "platform_rt_rc_tune": "0x0201d3c5", + "platform_set_abs_timer": "0x0201d3e1", + "platform_set_evt_callback": "0x0201d3e5", + "platform_set_evt_callback_table": "0x0201d3f9", + "platform_set_irq_callback": "0x0201d405", + "platform_set_irq_callback_table": "0x0201d421", + "platform_set_rf_clk_source": "0x0201d42d", + "platform_set_rf_init_data": "0x0201d439", + "platform_set_rf_power_mapping": "0x0201d445", + "platform_set_timer": "0x0201d451", + "platform_shutdown": "0x0201d455", + "platform_switch_app": "0x0201d459", + "platform_trace_raw": "0x0201d471", + "platform_write_persistent_reg": "0x0201d489", + "printf_hexdump": "0x0201d641", + "pvPortMalloc": "0x0201e075", + "pvTaskIncrementMutexHeldCount": "0x0201e15d", + "pvTimerGetTimerID": "0x0201e175", + "pxPortInitialiseStack": "0x0201e1a1", + "reverse_128": "0x0201e389", + "reverse_24": "0x0201e38f", + "reverse_256": "0x0201e395", + "reverse_48": "0x0201e39b", + "reverse_56": "0x0201e3a1", + "reverse_64": "0x0201e3a7", + "reverse_bd_addr": "0x0201e3ad", + "reverse_bytes": "0x0201e3b3", + "sm_add_event_handler": "0x0201e6b9", + "sm_address_resolution_lookup": "0x0201e811", + "sm_authenticated": "0x0201eb8d", + "sm_authorization_decline": "0x0201eb9b", + "sm_authorization_grant": "0x0201ebbb", + "sm_authorization_state": "0x0201ebdb", + "sm_bonding_decline": "0x0201ebf5", + "sm_config": "0x0201f049", + "sm_config_conn": "0x0201f061", + "sm_encryption_key_size": "0x0201f217", + "sm_just_works_confirm": "0x0201f79d", + "sm_le_device_key": "0x0201fad5", + "sm_passkey_input": "0x0201fb6b", + "sm_private_random_address_generation_get": "0x0201ff25", + "sm_private_random_address_generation_get_mode": "0x0201ff2d", + "sm_private_random_address_generation_set_mode": "0x0201ff39", + "sm_private_random_address_generation_set_update_period": "0x0201ff61", + "sm_register_external_ltk_callback": "0x0202009d", + "sm_register_oob_data_callback": "0x020200a9", + "sm_request_pairing": "0x020200b5", + "sm_send_security_request": "0x02020b8b", + "sm_set_accepted_stk_generation_methods": "0x02020bb1", + "sm_set_authentication_requirements": "0x02020bbd", + "sm_set_encryption_key_size_range": "0x02020bc9", + "sscanf_bd_addr": "0x02020f29", + "sysSetPublicDeviceAddr": "0x02020fdd", + "uuid128_to_str": "0x02021799", + "uuid_add_bluetooth_prefix": "0x020217f1", + "uuid_has_bluetooth_prefix": "0x02021811", + "uxListRemove": "0x0202182d", + "uxQueueMessagesWaiting": "0x02021855", + "uxQueueMessagesWaitingFromISR": "0x0202187d", + "uxQueueSpacesAvailable": "0x02021899", + "uxTaskGetStackHighWaterMark": "0x020218c5", + "uxTaskPriorityGet": "0x020218e5", + "uxTaskPriorityGetFromISR": "0x02021901", + "vListInitialise": "0x02021967", + "vListInitialiseItem": "0x0202197d", + "vListInsert": "0x02021983", + "vListInsertEnd": "0x020219b3", + "vPortEndScheduler": "0x020219cd", "vPortEnterCritical": "0x20000325", "vPortExitCritical": "0x2000035f", - "vPortFree": "0x02020ad5", + "vPortFree": "0x020219f9", "vPortSuppressTicksAndSleep": "0x2000038b", - "vPortValidateInterruptPriority": "0x02020b79", - "vQueueDelete": "0x02020bd5", - "vQueueWaitForMessageRestricted": "0x02020c01", - "vTaskDelay": "0x02020c45", - "vTaskInternalSetTimeOutState": "0x02020c91", - "vTaskMissedYield": "0x02020ca1", - "vTaskPlaceOnEventList": "0x02020cad", - "vTaskPlaceOnEventListRestricted": "0x02020ce5", - "vTaskPriorityDisinheritAfterTimeout": "0x02020d25", - "vTaskPrioritySet": "0x02020dd1", - "vTaskResume": "0x02020e99", - "vTaskStartScheduler": "0x02020f1d", + "vPortValidateInterruptPriority": "0x02021a9d", + "vQueueDelete": "0x02021af9", + "vQueueWaitForMessageRestricted": "0x02021b25", + "vTaskDelay": "0x02021b69", + "vTaskInternalSetTimeOutState": "0x02021bb5", + "vTaskMissedYield": "0x02021bc5", + "vTaskPlaceOnEventList": "0x02021bd1", + "vTaskPlaceOnEventListRestricted": "0x02021c09", + "vTaskPriorityDisinheritAfterTimeout": "0x02021c49", + "vTaskPrioritySet": "0x02021cf5", + "vTaskResume": "0x02021dbd", + "vTaskStartScheduler": "0x02021e41", "vTaskStepTick": "0x2000070b", - "vTaskSuspend": "0x02020fad", + "vTaskSuspend": "0x02021ed1", "vTaskSuspendAll": "0x2000067f", - "vTaskSwitchContext": "0x02021069", - "xPortStartScheduler": "0x02021119", - "xQueueAddToSet": "0x0202121d", - "xQueueCreateCountingSemaphore": "0x02021241", - "xQueueCreateCountingSemaphoreStatic": "0x0202127d", - "xQueueCreateMutex": "0x020212c1", - "xQueueCreateMutexStatic": "0x020212d7", - "xQueueCreateSet": "0x020212f1", - "xQueueGenericCreate": "0x020212f9", - "xQueueGenericCreateStatic": "0x02021345", - "xQueueGenericReset": "0x020213ad", - "xQueueGenericSend": "0x02021439", - "xQueueGenericSendFromISR": "0x020215a5", - "xQueueGiveFromISR": "0x02021665", - "xQueueGiveMutexRecursive": "0x02021709", - "xQueueIsQueueEmptyFromISR": "0x02021749", - "xQueueIsQueueFullFromISR": "0x0202176d", - "xQueuePeek": "0x02021795", - "xQueuePeekFromISR": "0x020218bd", - "xQueueReceive": "0x02021929", - "xQueueReceiveFromISR": "0x02021a55", - "xQueueRemoveFromSet": "0x02021ae9", - "xQueueSelectFromSet": "0x02021b0b", - "xQueueSelectFromSetFromISR": "0x02021b1d", - "xQueueSemaphoreTake": "0x02021b31", - "xQueueTakeMutexRecursive": "0x02021c9d", - "xTaskCheckForTimeOut": "0x02021ce1", - "xTaskCreate": "0x02021d51", - "xTaskCreateStatic": "0x02021dad", - "xTaskGetCurrentTaskHandle": "0x02021e1d", - "xTaskGetSchedulerState": "0x02021e29", - "xTaskGetTickCount": "0x02021e45", - "xTaskGetTickCountFromISR": "0x02021e51", + "vTaskSwitchContext": "0x02021f8d", + "xPortStartScheduler": "0x0202203d", + "xQueueAddToSet": "0x02022141", + "xQueueCreateCountingSemaphore": "0x02022165", + "xQueueCreateCountingSemaphoreStatic": "0x020221a1", + "xQueueCreateMutex": "0x020221e5", + "xQueueCreateMutexStatic": "0x020221fb", + "xQueueCreateSet": "0x02022215", + "xQueueGenericCreate": "0x0202221d", + "xQueueGenericCreateStatic": "0x02022269", + "xQueueGenericReset": "0x020222d1", + "xQueueGenericSend": "0x0202235d", + "xQueueGenericSendFromISR": "0x020224c9", + "xQueueGiveFromISR": "0x02022589", + "xQueueGiveMutexRecursive": "0x0202262d", + "xQueueIsQueueEmptyFromISR": "0x0202266d", + "xQueueIsQueueFullFromISR": "0x02022691", + "xQueuePeek": "0x020226b9", + "xQueuePeekFromISR": "0x020227e1", + "xQueueReceive": "0x0202284d", + "xQueueReceiveFromISR": "0x02022979", + "xQueueRemoveFromSet": "0x02022a0d", + "xQueueSelectFromSet": "0x02022a2f", + "xQueueSelectFromSetFromISR": "0x02022a41", + "xQueueSemaphoreTake": "0x02022a55", + "xQueueTakeMutexRecursive": "0x02022bc1", + "xTaskCheckForTimeOut": "0x02022c05", + "xTaskCreate": "0x02022c75", + "xTaskCreateStatic": "0x02022cd1", + "xTaskGetCurrentTaskHandle": "0x02022d41", + "xTaskGetSchedulerState": "0x02022d4d", + "xTaskGetTickCount": "0x02022d69", + "xTaskGetTickCountFromISR": "0x02022d75", "xTaskIncrementTick": "0x20000511", - "xTaskPriorityDisinherit": "0x02021e61", - "xTaskPriorityInherit": "0x02021ef5", - "xTaskRemoveFromEventList": "0x02021f89", + "xTaskPriorityDisinherit": "0x02022d85", + "xTaskPriorityInherit": "0x02022e19", + "xTaskRemoveFromEventList": "0x02022ead", "xTaskResumeAll": "0x200005cb", - "xTaskResumeFromISR": "0x02022009", - "xTimerCreate": "0x02022095", - "xTimerCreateStatic": "0x020220c9", - "xTimerCreateTimerTask": "0x02022101", - "xTimerGenericCommand": "0x0202216d", - "xTimerGetExpiryTime": "0x020221dd", - "xTimerGetTimerDaemonTaskHandle": "0x020221fd" + "xTaskResumeFromISR": "0x02022f2d", + "xTimerCreate": "0x02022fb9", + "xTimerCreateStatic": "0x02022fed", + "xTimerCreateTimerTask": "0x02023025", + "xTimerGenericCommand": "0x02023091", + "xTimerGetExpiryTime": "0x02023101", + "xTimerGetTimerDaemonTaskHandle": "0x02023121" } \ No newline at end of file diff --git a/bundles/mini/ING9168xx/meta.json b/bundles/mini/ING9168xx/meta.json index d42f3a98b..db30d1661 100644 --- a/bundles/mini/ING9168xx/meta.json +++ b/bundles/mini/ING9168xx/meta.json @@ -4,15 +4,15 @@ }, "ram": { "base": 536870912, - "size": 29100 + "size": 29116 }, "rom": { "base": 33562624, - "size": 155804 + "size": 159684 }, "version": [ 2, 3, - 1 + 2 ] } \ No newline at end of file diff --git a/bundles/mini/ING9168xx/platform.bin b/bundles/mini/ING9168xx/platform.bin index 5478467c95999a39fb55dffec87f54c690aff6af..1cd8c3b80db7da93cf74604a6c9b2f5460e44dea 100644 GIT binary patch delta 28950 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�G6>dBh7BO*>)vjt!6aChlx*{isA zZ~CBywh|W+hqG8nzJEI^{$mMv!`qg%Xz#Pz)=gS#FiK*MZ7y=uw#-^7u-K=$9Wa)T z79$^s`hDoSeu-vuD(-Axg!j=`iWot&d?}Jo0W!uJUGs7axOi^f{M`9dxTpoFU^8zm zCU34Ap+0d4&vEasyu5CcOchHuM8e+6k2a)0$^jSCQG+A2iZy5ste4`M1GqYJ`UCVz z+;3pId|1!%F_z#=?M`iyRV;HwS+rRCG4Ur+7=7u1f2WcOB$_=rj=Vv-D@C!zMGlkK zywonHlMYwJDr!i^yLz}p^50z-__C`98q+~#qL|~#M<11fp-D zw9(aHTI+!zl}@vpv<_NjqOyu@Q5lhUqg5P5^53iS+UN-G^o2!uR1!UWn4Twa9SW%pW@6a7)a$rS+2OVNj{3*qnaW*TR{=DU zq>tuk52NQ92}ngceBO>6{is94mni=BH$q2i<6mfColwZa>bN-&`}4;BmJ`QE(LQ@n zM_cLEy4qssIjJnjZ@MGUSZvnTGEu;ZB1guSb@S^`awtXTiI;* zi)56qLwokO@-$dLLOxD{LNfScz1IXu)!{k!2xnF<`gky4IOLmcz5PE#6zzOApbJWt z_-&62Ux*vrmBjG@LWxaA?qhLDZGdp=U~ta>VLQp*9*SYk>D!mV&!lO4XmpFjM0uel zvR}H%>eBE3!E|~oYDwIV2)IcG??{4+WZ8~zpVC@XI2je+ zw*IkrhhG~<^>H~zCBnkBLe6~82me-m5d?Wuz+(^#v+6Ad(`DX-Sf<8|PcqBeVzU!=ey4K57 zEXn(PiDrIF3BqqB*FMkG3~|3NAjw~(=wCtTl4lEn&}
      Oo#C{y5;et9H%t-qo3be{g)5aEZjd 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 diff --git a/bundles/noos_mass_conn/ING9168xx/apis.json b/bundles/noos_mass_conn/ING9168xx/apis.json index f3e2a6732..06ea9d9c0 100644 --- a/bundles/noos_mass_conn/ING9168xx/apis.json +++ b/bundles/noos_mass_conn/ING9168xx/apis.json @@ -1,268 +1,268 @@ { - "att_dispatch_client_can_send_now": "0x02004399", - "att_dispatch_client_request_can_send_now_event": "0x0200439f", - "att_dispatch_register_client": "0x020043a5", - "att_dispatch_register_server": "0x020043b9", - "att_dispatch_server_can_send_now": "0x020043cd", - "att_dispatch_server_request_can_send_now_event": "0x020043d3", - "att_emit_general_event": "0x02004485", - "att_server_can_send_packet_now": "0x02004bbd", - "att_server_deferred_read_response": "0x02004bc1", - "att_server_get_mtu": "0x02004bd9", - "att_server_indicate": "0x02004c51", - "att_server_init": "0x02004cd5", - "att_server_notify": "0x02004d11", - "att_server_register_packet_handler": "0x02004e29", - "att_server_request_can_send_now_event": "0x02004e35", - "att_set_db": "0x02004e51", - "att_set_read_callback": "0x02004e65", - "att_set_write_callback": "0x02004e71", - "bd_addr_cmp": "0x02005041", - "bd_addr_copy": "0x02005047", - "bd_addr_to_str": "0x02005051", - "big_endian_read_16": "0x02005089", - "big_endian_read_32": "0x02005091", - "big_endian_store_16": "0x020050a5", - "big_endian_store_32": "0x020050b1", - "btstack_config": "0x020051f5", - "btstack_memory_pool_create": "0x02005343", - "btstack_memory_pool_free": "0x0200536d", - "btstack_memory_pool_get": "0x020053cd", - "btstack_push_user_msg": "0x02005415", - "btstack_push_user_runnable": "0x02005421", - "btstack_reset": "0x0200542d", - "char_for_nibble": "0x02005707", - "gap_add_dev_to_periodic_list": "0x020060ed", - "gap_add_whitelist": "0x020060fd", - "gap_aes_encrypt": "0x02006109", - "gap_clear_white_lists": "0x02006141", - "gap_clr_adv_set": "0x0200614d", - "gap_clr_periodic_adv_list": "0x02006159", - "gap_create_connection_cancel": "0x02006165", - "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": "0x020062cd", - "gap_le_read_channel_map": "0x02006309", - "gap_periodic_adv_create_sync": "0x02006375", - "gap_periodic_adv_create_sync_cancel": "0x02006399", - "gap_periodic_adv_set_info_transfer": "0x020063a5", - "gap_periodic_adv_sync_transfer": "0x020063b5", - "gap_periodic_adv_sync_transfer_param": "0x020063c5", - "gap_periodic_adv_term_sync": "0x020063e1", - "gap_read_antenna_info": "0x02006469", - "gap_read_periodic_adv_list_size": "0x02006475", - "gap_read_phy": "0x02006481", - "gap_read_remote_used_features": "0x0200648d", - "gap_read_remote_version": "0x02006499", - "gap_read_rssi": "0x020064a5", - "gap_remove_whitelist": "0x020064b1", - "gap_rmv_adv_set": "0x0200652d", - "gap_rmv_dev_from_periodic_list": "0x02006539", - "gap_rx_test_v2": "0x02006549", - "gap_rx_test_v3": "0x02006559", - "gap_set_adv_set_random_addr": "0x020065a5", - "gap_set_callback_for_next_hci": "0x020065e1", - "gap_set_connection_cte_request_enable": "0x02006601", - "gap_set_connection_cte_response_enable": "0x0200661d", - "gap_set_connection_cte_rx_param": "0x0200662d", - "gap_set_connection_cte_tx_param": "0x02006681", - "gap_set_connection_parameter_range": "0x020066cd", - "gap_set_connectionless_cte_tx_enable": "0x020066e5", - "gap_set_connectionless_cte_tx_param": "0x020066f5", - "gap_set_connectionless_iq_sampling_enable": "0x02006751", - "gap_set_data_length": "0x020067ad", - "gap_set_def_phy": "0x020067c5", - "gap_set_ext_adv_data": "0x020067d5", - "gap_set_ext_adv_enable": "0x020067ed", - "gap_set_ext_adv_para": "0x0200685d", - "gap_set_ext_scan_enable": "0x0200692d", - "gap_set_ext_scan_para": "0x02006945", - "gap_set_ext_scan_response_data": "0x020069e5", - "gap_set_host_channel_classification": "0x020069fd", - "gap_set_periodic_adv_data": "0x02006a0d", - "gap_set_periodic_adv_enable": "0x02006a7d", - "gap_set_periodic_adv_para": "0x02006a8d", - "gap_set_periodic_adv_rx_enable": "0x02006aa5", - "gap_set_phy": "0x02006ab5", - "gap_set_random_device_address": "0x02006ad1", - "gap_start_ccm": "0x02006b01", - "gap_test_end": "0x02006b49", - "gap_tx_test_v2": "0x02006b55", - "gap_tx_test_v4": "0x02006b6d", - "gap_update_connection_parameters": "0x02006b91", - "gap_vendor_tx_continuous_wave": "0x02006bd5", - "gatt_client_cancel_write": "0x020070fd", - "gatt_client_discover_characteristic_descriptors": "0x02007123", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x02007163", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x020071b3", - "gatt_client_discover_characteristics_for_service": "0x02007203", - "gatt_client_discover_primary_services": "0x02007239", - "gatt_client_discover_primary_services_by_uuid128": "0x0200726b", - "gatt_client_discover_primary_services_by_uuid16": "0x020072af", - "gatt_client_execute_write": "0x020072ed", - "gatt_client_find_included_services_for_service": "0x02007313", - "gatt_client_get_mtu": "0x02007341", - "gatt_client_is_ready": "0x02007405", - "gatt_client_listen_for_characteristic_value_updates": "0x0200741b", - "gatt_client_prepare_write": "0x0200743d", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007479", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020074a3", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020074a9", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x020074d7", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020074dd", - "gatt_client_read_multiple_characteristic_values": "0x0200750b", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x0200753b", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007569", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x020075b5", - "gatt_client_register_handler": "0x02007601", - "gatt_client_reliable_write_long_value_of_characteristic": "0x0200760d", - "gatt_client_signed_write_without_response": "0x02007a41", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007b05", - "gatt_client_write_client_characteristic_configuration": "0x02007b3f", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007b91", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007ba1", - "gatt_client_write_long_value_of_characteristic": "0x02007bdd", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007bed", - "gatt_client_write_value_of_characteristic": "0x02007c29", - "gatt_client_write_value_of_characteristic_without_response": "0x02007c5f", - "hci_add_event_handler": "0x02009255", - "hci_power_control": "0x020099fd", - "hci_register_acl_packet_handler": "0x02009bb1", - "kv_commit": "0x0200a30d", - "kv_get": "0x0200a369", - "kv_init": "0x0200a375", - "kv_init_backend": "0x0200a3f5", - "kv_put": "0x0200a409", - "kv_remove": "0x0200a415", - "kv_remove_all": "0x0200a449", - "kv_value_modified": "0x0200a479", - "kv_value_modified_of_key": "0x0200a495", - "kv_visit": "0x0200a4a1", - "l2cap_add_event_handler": "0x0200a531", - "l2cap_can_send_packet_now": "0x0200a541", - "l2cap_create_le_credit_based_connection_request": "0x0200a705", - "l2cap_credit_based_send": "0x0200a84d", - "l2cap_credit_based_send_continue": "0x0200a879", - "l2cap_disconnect": "0x0200a8f5", - "l2cap_get_le_credit_based_connection_credits": "0x0200aae1", - "l2cap_get_peer_mtu_for_local_cid": "0x0200aafd", - "l2cap_init": "0x0200af3d", - "l2cap_le_send_flow_control_credit": "0x0200b033", - "l2cap_max_le_mtu": "0x0200b341", - "l2cap_register_packet_handler": "0x0200b469", - "l2cap_register_service": "0x0200b475", - "l2cap_request_can_send_now_event": "0x0200b585", - "l2cap_request_connection_parameter_update": "0x0200b59f", - "l2cap_send_echo_request": "0x0200ba81", - "l2cap_unregister_service": "0x0200bb61", - "le_device_db_add": "0x0200bbb9", - "le_device_db_find": "0x0200bc91", - "le_device_db_from_key": "0x0200bcbd", - "le_device_db_iter_cur": "0x0200bcc5", - "le_device_db_iter_cur_key": "0x0200bcc9", - "le_device_db_iter_init": "0x0200bccd", - "le_device_db_iter_next": "0x0200bcd5", - "le_device_db_remove_key": "0x0200bcfb", - "ll_adjust_conn_peer_tx_power": "0x0200bd29", - "ll_aes_encrypt": "0x0200bd55", - "ll_config": "0x0200bdc9", - "ll_free": "0x0200bdff", - "ll_get_heap_free_size": "0x0200be09", - "ll_hint_on_ce_len": "0x0200be1d", - "ll_legacy_adv_set_interval": "0x0200be55", - "ll_malloc": "0x0200be65", - "ll_register_hci_acl_previewer": "0x0200bf7d", - "ll_scan_set_fixed_channel": "0x0200bfe1", - "ll_set_adv_access_address": "0x0200c1f9", - "ll_set_adv_coded_scheme": "0x0200c205", - "ll_set_conn_acl_report_latency": "0x0200c23d", - "ll_set_conn_coded_scheme": "0x0200c26d", - "ll_set_conn_latency": "0x0200c299", - "ll_set_conn_tx_power": "0x0200c2c9", - "ll_set_def_antenna": "0x0200c305", - "ll_set_initiating_coded_scheme": "0x0200c325", - "ll_set_max_conn_number": "0x0200c331", - "ll_set_tx_power_range": "0x0200c3c5", - "nibble_for_char": "0x0201ee29", - "platform_calibrate_rt_clk": "0x0201eec1", - "platform_call_on_stack": "0x0200213f", - "platform_config": "0x0201eec5", - "platform_controller_run": "0x0201efed", - "platform_delete_timer": "0x0201f021", - "platform_enable_irq": "0x0201f029", - "platform_get_gen_os_driver": "0x0201f05d", - "platform_get_link_layer_interf": "0x0201f069", - "platform_get_task_handle": "0x0201f071", - "platform_get_timer_counter": "0x0201f089", - "platform_get_us_time": "0x0201f08d", - "platform_get_version": "0x0201f091", - "platform_hrng": "0x0201f099", - "platform_init_controller": "0x0201f0a1", - "platform_os_idle_resumed_hook": "0x0201f0bd", - "platform_patch_rf_init_data": "0x0201f0c1", - "platform_post_sleep_processing": "0x0201f0cd", - "platform_pre_sleep_processing": "0x0201f0d3", - "platform_pre_suppress_ticks_and_sleep_processing": "0x0201f0d9", - "platform_printf": "0x0201f0dd", - "platform_raise_assertion": "0x0201f0f1", - "platform_rand": "0x0201f105", - "platform_read_info": "0x0201f109", - "platform_read_persistent_reg": "0x0201f139", - "platform_reset": "0x0201f145", - "platform_rt_rc_auto_tune": "0x0201f159", - "platform_rt_rc_auto_tune2": "0x0201f161", - "platform_rt_rc_tune": "0x0201f1c9", - "platform_set_abs_timer": "0x0201f1e5", - "platform_set_evt_callback": "0x0201f1e9", - "platform_set_evt_callback_table": "0x0201f1fd", - "platform_set_irq_callback": "0x0201f209", - "platform_set_irq_callback_table": "0x0201f225", - "platform_set_rf_clk_source": "0x0201f231", - "platform_set_rf_init_data": "0x0201f23d", - "platform_set_rf_power_mapping": "0x0201f249", - "platform_set_timer": "0x0201f255", - "platform_shutdown": "0x0201f259", - "platform_switch_app": "0x0201f25d", - "platform_trace_raw": "0x0201f275", - "platform_write_persistent_reg": "0x0201f28d", - "printf_hexdump": "0x0201f2a1", - "reverse_128": "0x0201f619", - "reverse_24": "0x0201f61f", - "reverse_256": "0x0201f625", - "reverse_48": "0x0201f62b", - "reverse_56": "0x0201f631", - "reverse_64": "0x0201f637", - "reverse_bd_addr": "0x0201f63d", - "reverse_bytes": "0x0201f643", - "sm_add_event_handler": "0x0201f9a1", - "sm_address_resolution_lookup": "0x0201faf9", - "sm_authenticated": "0x0201fe75", - "sm_authorization_decline": "0x0201fe83", - "sm_authorization_grant": "0x0201fea3", - "sm_authorization_state": "0x0201fec3", - "sm_bonding_decline": "0x0201fedd", - "sm_config": "0x02020331", - "sm_config_conn": "0x02020349", - "sm_encryption_key_size": "0x020204ff", - "sm_just_works_confirm": "0x02020a85", - "sm_le_device_key": "0x02020dbd", - "sm_passkey_input": "0x02020e53", - "sm_private_random_address_generation_get": "0x0202120d", - "sm_private_random_address_generation_get_mode": "0x02021215", - "sm_private_random_address_generation_set_mode": "0x02021221", - "sm_private_random_address_generation_set_update_period": "0x02021249", - "sm_register_external_ltk_callback": "0x02021385", - "sm_register_oob_data_callback": "0x02021391", - "sm_request_pairing": "0x0202139d", - "sm_send_security_request": "0x02021e73", - "sm_set_accepted_stk_generation_methods": "0x02021e99", - "sm_set_authentication_requirements": "0x02021ea5", - "sm_set_encryption_key_size_range": "0x02021eb1", - "sscanf_bd_addr": "0x02022211", - "sysSetPublicDeviceAddr": "0x0202273d", - "uuid128_to_str": "0x02022f99", - "uuid_add_bluetooth_prefix": "0x02022ff1", - "uuid_has_bluetooth_prefix": "0x02023011" + "att_dispatch_client_can_send_now": "0x02005299", + "att_dispatch_client_request_can_send_now_event": "0x0200529f", + "att_dispatch_register_client": "0x020052a5", + "att_dispatch_register_server": "0x020052b9", + "att_dispatch_server_can_send_now": "0x020052cd", + "att_dispatch_server_request_can_send_now_event": "0x020052d3", + "att_emit_general_event": "0x02005385", + "att_server_can_send_packet_now": "0x02005abd", + "att_server_deferred_read_response": "0x02005ac1", + "att_server_get_mtu": "0x02005ad9", + "att_server_indicate": "0x02005b51", + "att_server_init": "0x02005bd5", + "att_server_notify": "0x02005c11", + "att_server_register_packet_handler": "0x02005d29", + "att_server_request_can_send_now_event": "0x02005d35", + "att_set_db": "0x02005d51", + "att_set_read_callback": "0x02005d65", + "att_set_write_callback": "0x02005d71", + "bd_addr_cmp": "0x02005f41", + "bd_addr_copy": "0x02005f47", + "bd_addr_to_str": "0x02005f51", + "big_endian_read_16": "0x02005f89", + "big_endian_read_32": "0x02005f91", + "big_endian_store_16": "0x02005fa5", + "big_endian_store_32": "0x02005fb1", + "btstack_config": "0x020060f5", + "btstack_memory_pool_create": "0x02006243", + "btstack_memory_pool_free": "0x0200626d", + "btstack_memory_pool_get": "0x020062cd", + "btstack_push_user_msg": "0x02006315", + "btstack_push_user_runnable": "0x02006321", + "btstack_reset": "0x0200632d", + "char_for_nibble": "0x02006607", + "gap_add_dev_to_periodic_list": "0x02006fed", + "gap_add_whitelist": "0x02006ffd", + "gap_aes_encrypt": "0x02007009", + "gap_clear_white_lists": "0x02007041", + "gap_clr_adv_set": "0x0200704d", + "gap_clr_periodic_adv_list": "0x02007059", + "gap_create_connection_cancel": "0x02007065", + "gap_default_periodic_adv_sync_transfer_param": "0x02007071", + "gap_disconnect": "0x02007089", + "gap_disconnect_all": "0x020070b5", + "gap_ext_create_connection": "0x020070f5", + "gap_get_connection_parameter_range": "0x020071cd", + "gap_le_read_channel_map": "0x02007209", + "gap_periodic_adv_create_sync": "0x02007275", + "gap_periodic_adv_create_sync_cancel": "0x02007299", + "gap_periodic_adv_set_info_transfer": "0x020072a5", + "gap_periodic_adv_sync_transfer": "0x020072b5", + "gap_periodic_adv_sync_transfer_param": "0x020072c5", + "gap_periodic_adv_term_sync": "0x020072e1", + "gap_read_antenna_info": "0x02007369", + "gap_read_periodic_adv_list_size": "0x02007375", + "gap_read_phy": "0x02007381", + "gap_read_remote_used_features": "0x0200738d", + "gap_read_remote_version": "0x02007399", + "gap_read_rssi": "0x020073a5", + "gap_remove_whitelist": "0x020073b1", + "gap_rmv_adv_set": "0x0200742d", + "gap_rmv_dev_from_periodic_list": "0x02007439", + "gap_rx_test_v2": "0x02007449", + "gap_rx_test_v3": "0x02007459", + "gap_set_adv_set_random_addr": "0x020074a5", + "gap_set_callback_for_next_hci": "0x020074e1", + "gap_set_connection_cte_request_enable": "0x02007501", + "gap_set_connection_cte_response_enable": "0x0200751d", + "gap_set_connection_cte_rx_param": "0x0200752d", + "gap_set_connection_cte_tx_param": "0x02007581", + "gap_set_connection_parameter_range": "0x020075cd", + "gap_set_connectionless_cte_tx_enable": "0x020075e5", + "gap_set_connectionless_cte_tx_param": "0x020075f5", + "gap_set_connectionless_iq_sampling_enable": "0x02007651", + "gap_set_data_length": "0x020076ad", + "gap_set_def_phy": "0x020076c5", + "gap_set_ext_adv_data": "0x020076d5", + "gap_set_ext_adv_enable": "0x020076ed", + "gap_set_ext_adv_para": "0x0200775d", + "gap_set_ext_scan_enable": "0x0200782d", + "gap_set_ext_scan_para": "0x02007845", + "gap_set_ext_scan_response_data": "0x020078e5", + "gap_set_host_channel_classification": "0x020078fd", + "gap_set_periodic_adv_data": "0x0200790d", + "gap_set_periodic_adv_enable": "0x0200797d", + "gap_set_periodic_adv_para": "0x0200798d", + "gap_set_periodic_adv_rx_enable": "0x020079a5", + "gap_set_phy": "0x020079b5", + "gap_set_random_device_address": "0x020079d1", + "gap_start_ccm": "0x02007a01", + "gap_test_end": "0x02007a49", + "gap_tx_test_v2": "0x02007a55", + "gap_tx_test_v4": "0x02007a6d", + "gap_update_connection_parameters": "0x02007a91", + "gap_vendor_tx_continuous_wave": "0x02007ad5", + "gatt_client_cancel_write": "0x02007ffd", + "gatt_client_discover_characteristic_descriptors": "0x02008023", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x02008063", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x020080b3", + "gatt_client_discover_characteristics_for_service": "0x02008103", + "gatt_client_discover_primary_services": "0x02008139", + "gatt_client_discover_primary_services_by_uuid128": "0x0200816b", + "gatt_client_discover_primary_services_by_uuid16": "0x020081af", + "gatt_client_execute_write": "0x020081ed", + "gatt_client_find_included_services_for_service": "0x02008213", + "gatt_client_get_mtu": "0x02008241", + "gatt_client_is_ready": "0x02008305", + "gatt_client_listen_for_characteristic_value_updates": "0x0200831b", + "gatt_client_prepare_write": "0x0200833d", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02008379", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020083a3", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020083a9", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x020083d7", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020083dd", + "gatt_client_read_multiple_characteristic_values": "0x0200840b", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x0200843b", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x02008469", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x020084b5", + "gatt_client_register_handler": "0x02008501", + "gatt_client_reliable_write_long_value_of_characteristic": "0x0200850d", + "gatt_client_signed_write_without_response": "0x02008941", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02008a05", + "gatt_client_write_client_characteristic_configuration": "0x02008a3f", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02008a91", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02008aa1", + "gatt_client_write_long_value_of_characteristic": "0x02008add", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x02008aed", + "gatt_client_write_value_of_characteristic": "0x02008b29", + "gatt_client_write_value_of_characteristic_without_response": "0x02008b5f", + "hci_add_event_handler": "0x0200a171", + "hci_power_control": "0x0200a919", + "hci_register_acl_packet_handler": "0x0200aacd", + "kv_commit": "0x0200b229", + "kv_get": "0x0200b285", + "kv_init": "0x0200b291", + "kv_init_backend": "0x0200b311", + "kv_put": "0x0200b325", + "kv_remove": "0x0200b331", + "kv_remove_all": "0x0200b365", + "kv_value_modified": "0x0200b395", + "kv_value_modified_of_key": "0x0200b3b1", + "kv_visit": "0x0200b3bd", + "l2cap_add_event_handler": "0x0200b44d", + "l2cap_can_send_packet_now": "0x0200b45d", + "l2cap_create_le_credit_based_connection_request": "0x0200b621", + "l2cap_credit_based_send": "0x0200b769", + "l2cap_credit_based_send_continue": "0x0200b795", + "l2cap_disconnect": "0x0200b811", + "l2cap_get_le_credit_based_connection_credits": "0x0200b9fd", + "l2cap_get_peer_mtu_for_local_cid": "0x0200ba19", + "l2cap_init": "0x0200be59", + "l2cap_le_send_flow_control_credit": "0x0200bf4f", + "l2cap_max_le_mtu": "0x0200c25d", + "l2cap_register_packet_handler": "0x0200c385", + "l2cap_register_service": "0x0200c391", + "l2cap_request_can_send_now_event": "0x0200c4a1", + "l2cap_request_connection_parameter_update": "0x0200c4bb", + "l2cap_send_echo_request": "0x0200c99d", + "l2cap_unregister_service": "0x0200ca7d", + "le_device_db_add": "0x0200cad5", + "le_device_db_find": "0x0200cbad", + "le_device_db_from_key": "0x0200cbd9", + "le_device_db_iter_cur": "0x0200cbe1", + "le_device_db_iter_cur_key": "0x0200cbe5", + "le_device_db_iter_init": "0x0200cbe9", + "le_device_db_iter_next": "0x0200cbf1", + "le_device_db_remove_key": "0x0200cc17", + "ll_adjust_conn_peer_tx_power": "0x0200cc45", + "ll_aes_encrypt": "0x0200cc71", + "ll_config": "0x0200cce5", + "ll_free": "0x0200cd1b", + "ll_get_heap_free_size": "0x0200cd25", + "ll_hint_on_ce_len": "0x0200cd39", + "ll_legacy_adv_set_interval": "0x0200cd71", + "ll_malloc": "0x0200cd81", + "ll_register_hci_acl_previewer": "0x0200ce99", + "ll_scan_set_fixed_channel": "0x0200cefd", + "ll_set_adv_access_address": "0x0200d115", + "ll_set_adv_coded_scheme": "0x0200d121", + "ll_set_conn_acl_report_latency": "0x0200d159", + "ll_set_conn_coded_scheme": "0x0200d189", + "ll_set_conn_latency": "0x0200d1b5", + "ll_set_conn_tx_power": "0x0200d1e5", + "ll_set_def_antenna": "0x0200d221", + "ll_set_initiating_coded_scheme": "0x0200d241", + "ll_set_max_conn_number": "0x0200d24d", + "ll_set_tx_power_range": "0x0200d2e1", + "nibble_for_char": "0x0201fd49", + "platform_calibrate_rt_clk": "0x0201fde1", + "platform_call_on_stack": "0x0200303f", + "platform_config": "0x0201fde5", + "platform_controller_run": "0x0201ff0d", + "platform_delete_timer": "0x0201ff41", + "platform_enable_irq": "0x0201ff49", + "platform_get_gen_os_driver": "0x0201ff7d", + "platform_get_link_layer_interf": "0x0201ff89", + "platform_get_task_handle": "0x0201ff91", + "platform_get_timer_counter": "0x0201ffa9", + "platform_get_us_time": "0x0201ffad", + "platform_get_version": "0x0201ffb1", + "platform_hrng": "0x0201ffcd", + "platform_init_controller": "0x0201ffd5", + "platform_os_idle_resumed_hook": "0x0201fff1", + "platform_patch_rf_init_data": "0x0201fff5", + "platform_post_sleep_processing": "0x02020001", + "platform_pre_sleep_processing": "0x02020007", + "platform_pre_suppress_ticks_and_sleep_processing": "0x0202000d", + "platform_printf": "0x02020011", + "platform_raise_assertion": "0x02020025", + "platform_rand": "0x02020039", + "platform_read_info": "0x0202003d", + "platform_read_persistent_reg": "0x0202006d", + "platform_reset": "0x02020079", + "platform_rt_rc_auto_tune": "0x0202008d", + "platform_rt_rc_auto_tune2": "0x02020095", + "platform_rt_rc_tune": "0x020200fd", + "platform_set_abs_timer": "0x02020119", + "platform_set_evt_callback": "0x0202011d", + "platform_set_evt_callback_table": "0x02020131", + "platform_set_irq_callback": "0x0202013d", + "platform_set_irq_callback_table": "0x02020159", + "platform_set_rf_clk_source": "0x02020165", + "platform_set_rf_init_data": "0x02020171", + "platform_set_rf_power_mapping": "0x0202017d", + "platform_set_timer": "0x02020189", + "platform_shutdown": "0x0202018d", + "platform_switch_app": "0x02020191", + "platform_trace_raw": "0x020201a9", + "platform_write_persistent_reg": "0x020201c1", + "printf_hexdump": "0x020201d5", + "reverse_128": "0x0202054d", + "reverse_24": "0x02020553", + "reverse_256": "0x02020559", + "reverse_48": "0x0202055f", + "reverse_56": "0x02020565", + "reverse_64": "0x0202056b", + "reverse_bd_addr": "0x02020571", + "reverse_bytes": "0x02020577", + "sm_add_event_handler": "0x020208d5", + "sm_address_resolution_lookup": "0x02020a2d", + "sm_authenticated": "0x02020da9", + "sm_authorization_decline": "0x02020db7", + "sm_authorization_grant": "0x02020dd7", + "sm_authorization_state": "0x02020df7", + "sm_bonding_decline": "0x02020e11", + "sm_config": "0x02021265", + "sm_config_conn": "0x0202127d", + "sm_encryption_key_size": "0x02021433", + "sm_just_works_confirm": "0x020219b9", + "sm_le_device_key": "0x02021cf1", + "sm_passkey_input": "0x02021d87", + "sm_private_random_address_generation_get": "0x02022141", + "sm_private_random_address_generation_get_mode": "0x02022149", + "sm_private_random_address_generation_set_mode": "0x02022155", + "sm_private_random_address_generation_set_update_period": "0x0202217d", + "sm_register_external_ltk_callback": "0x020222b9", + "sm_register_oob_data_callback": "0x020222c5", + "sm_request_pairing": "0x020222d1", + "sm_send_security_request": "0x02022da7", + "sm_set_accepted_stk_generation_methods": "0x02022dcd", + "sm_set_authentication_requirements": "0x02022dd9", + "sm_set_encryption_key_size_range": "0x02022de5", + "sscanf_bd_addr": "0x02023145", + "sysSetPublicDeviceAddr": "0x0202366d", + "uuid128_to_str": "0x02023ec9", + "uuid_add_bluetooth_prefix": "0x02023f21", + "uuid_has_bluetooth_prefix": "0x02023f41" } \ 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 b1c4cf80a..5d6e7062f 100644 --- a/bundles/noos_mass_conn/ING9168xx/meta.json +++ b/bundles/noos_mass_conn/ING9168xx/meta.json @@ -1,6 +1,6 @@ { "app": { - "base": 33710080 + "base": 33714176 }, "ram": { "base": 536870912, @@ -8,11 +8,11 @@ }, "rom": { "base": 33562624, - "size": 144440 + "size": 148328 }, "version": [ 2, 3, - 1 + 2 ] } \ 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 645eb3b299b6b50a92da9f5b474eea062db479e8..79b78bcd201bd12dc3a6184ee9ad87075002977f 100644 GIT binary patch delta 31578 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 Sjmk0mleAmTy0o!|%=sT^m{x%R delta 27574 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 diff --git a/bundles/noos_mini/ING9168xx/apis.json b/bundles/noos_mini/ING9168xx/apis.json index 4c9d56114..03ed3fe9b 100644 --- a/bundles/noos_mini/ING9168xx/apis.json +++ b/bundles/noos_mini/ING9168xx/apis.json @@ -1,268 +1,268 @@ { - "att_dispatch_client_can_send_now": "0x0200418d", - "att_dispatch_client_request_can_send_now_event": "0x02004193", - "att_dispatch_register_client": "0x02004199", - "att_dispatch_register_server": "0x020041ad", - "att_dispatch_server_can_send_now": "0x020041c1", - "att_dispatch_server_request_can_send_now_event": "0x020041c7", - "att_emit_general_event": "0x02004279", - "att_server_can_send_packet_now": "0x020049ad", - "att_server_deferred_read_response": "0x020049b1", - "att_server_get_mtu": "0x020049c9", - "att_server_indicate": "0x02004a35", - "att_server_init": "0x02004ab9", - "att_server_notify": "0x02004af5", - "att_server_register_packet_handler": "0x02004c0d", - "att_server_request_can_send_now_event": "0x02004c19", - "att_set_db": "0x02004c35", - "att_set_read_callback": "0x02004c49", - "att_set_write_callback": "0x02004c55", - "bd_addr_cmp": "0x02004e25", - "bd_addr_copy": "0x02004e2b", - "bd_addr_to_str": "0x02004e35", - "big_endian_read_16": "0x02004e6d", - "big_endian_read_32": "0x02004e75", - "big_endian_store_16": "0x02004e89", - "big_endian_store_32": "0x02004e95", - "btstack_config": "0x02004ec1", - "btstack_memory_pool_create": "0x0200500f", - "btstack_memory_pool_free": "0x02005039", - "btstack_memory_pool_get": "0x02005099", - "btstack_push_user_msg": "0x020050e1", - "btstack_push_user_runnable": "0x020050ed", - "btstack_reset": "0x020050f9", - "char_for_nibble": "0x02005307", - "gap_add_dev_to_periodic_list": "0x02005c75", - "gap_add_whitelist": "0x02005c85", - "gap_aes_encrypt": "0x02005c91", - "gap_clear_white_lists": "0x02005cc9", - "gap_clr_adv_set": "0x02005cd5", - "gap_clr_periodic_adv_list": "0x02005ce1", - "gap_create_connection_cancel": "0x02005ced", - "gap_default_periodic_adv_sync_transfer_param": "0x02005cf9", - "gap_disconnect": "0x02005d11", - "gap_disconnect_all": "0x02005d3d", - "gap_ext_create_connection": "0x02005d7d", - "gap_get_connection_parameter_range": "0x02005e55", - "gap_le_read_channel_map": "0x02005e8d", - "gap_periodic_adv_create_sync": "0x02005ef9", - "gap_periodic_adv_create_sync_cancel": "0x02005f1d", - "gap_periodic_adv_set_info_transfer": "0x02005f29", - "gap_periodic_adv_sync_transfer": "0x02005f39", - "gap_periodic_adv_sync_transfer_param": "0x02005f49", - "gap_periodic_adv_term_sync": "0x02005f65", - "gap_read_antenna_info": "0x02005fed", - "gap_read_periodic_adv_list_size": "0x02005ff9", - "gap_read_phy": "0x02006005", - "gap_read_remote_used_features": "0x02006011", - "gap_read_remote_version": "0x0200601d", - "gap_read_rssi": "0x02006029", - "gap_remove_whitelist": "0x02006035", - "gap_rmv_adv_set": "0x020060b1", - "gap_rmv_dev_from_periodic_list": "0x020060bd", - "gap_rx_test_v2": "0x020060cd", - "gap_rx_test_v3": "0x020060dd", - "gap_set_adv_set_random_addr": "0x02006129", - "gap_set_callback_for_next_hci": "0x02006165", - "gap_set_connection_cte_request_enable": "0x02006185", - "gap_set_connection_cte_response_enable": "0x020061a1", - "gap_set_connection_cte_rx_param": "0x020061b1", - "gap_set_connection_cte_tx_param": "0x02006205", - "gap_set_connection_parameter_range": "0x02006251", - "gap_set_connectionless_cte_tx_enable": "0x02006269", - "gap_set_connectionless_cte_tx_param": "0x02006279", - "gap_set_connectionless_iq_sampling_enable": "0x020062d5", - "gap_set_data_length": "0x02006331", - "gap_set_def_phy": "0x02006349", - "gap_set_ext_adv_data": "0x02006359", - "gap_set_ext_adv_enable": "0x02006371", - "gap_set_ext_adv_para": "0x020063e1", - "gap_set_ext_scan_enable": "0x020064b1", - "gap_set_ext_scan_para": "0x020064c9", - "gap_set_ext_scan_response_data": "0x02006569", - "gap_set_host_channel_classification": "0x02006581", - "gap_set_periodic_adv_data": "0x02006591", - "gap_set_periodic_adv_enable": "0x02006601", - "gap_set_periodic_adv_para": "0x02006611", - "gap_set_periodic_adv_rx_enable": "0x02006629", - "gap_set_phy": "0x02006639", - "gap_set_random_device_address": "0x02006655", - "gap_start_ccm": "0x02006685", - "gap_test_end": "0x020066cd", - "gap_tx_test_v2": "0x020066d9", - "gap_tx_test_v4": "0x020066f1", - "gap_update_connection_parameters": "0x02006715", - "gap_vendor_tx_continuous_wave": "0x02006755", - "gatt_client_cancel_write": "0x02006c7d", - "gatt_client_discover_characteristic_descriptors": "0x02006ca3", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x02006ce3", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x02006d33", - "gatt_client_discover_characteristics_for_service": "0x02006d83", - "gatt_client_discover_primary_services": "0x02006db9", - "gatt_client_discover_primary_services_by_uuid128": "0x02006deb", - "gatt_client_discover_primary_services_by_uuid16": "0x02006e2f", - "gatt_client_execute_write": "0x02006e6d", - "gatt_client_find_included_services_for_service": "0x02006e93", - "gatt_client_get_mtu": "0x02006ec1", - "gatt_client_is_ready": "0x02006f85", - "gatt_client_listen_for_characteristic_value_updates": "0x02006f9b", - "gatt_client_prepare_write": "0x02006fbb", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02006ff7", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x02007021", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007027", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x02007055", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x0200705b", - "gatt_client_read_multiple_characteristic_values": "0x02007089", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x020070b9", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x020070e7", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x02007133", - "gatt_client_register_handler": "0x0200717d", - "gatt_client_reliable_write_long_value_of_characteristic": "0x02007189", - "gatt_client_signed_write_without_response": "0x02007591", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007655", - "gatt_client_write_client_characteristic_configuration": "0x0200768f", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x020076e1", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020076f1", - "gatt_client_write_long_value_of_characteristic": "0x0200772d", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x0200773d", - "gatt_client_write_value_of_characteristic": "0x02007779", - "gatt_client_write_value_of_characteristic_without_response": "0x020077af", - "hci_add_event_handler": "0x02008d89", - "hci_power_control": "0x0200951d", - "hci_register_acl_packet_handler": "0x020096d1", - "kv_commit": "0x02009d55", - "kv_get": "0x02009db1", - "kv_init": "0x02009dbd", - "kv_init_backend": "0x02009e3d", - "kv_put": "0x02009e51", - "kv_remove": "0x02009e5d", - "kv_remove_all": "0x02009e91", - "kv_value_modified": "0x02009ec1", - "kv_value_modified_of_key": "0x02009edd", - "kv_visit": "0x02009ee9", - "l2cap_add_event_handler": "0x02009f79", - "l2cap_can_send_packet_now": "0x02009f89", - "l2cap_create_le_credit_based_connection_request": "0x0200a14d", - "l2cap_credit_based_send": "0x0200a295", - "l2cap_credit_based_send_continue": "0x0200a2c1", - "l2cap_disconnect": "0x0200a33d", - "l2cap_get_le_credit_based_connection_credits": "0x0200a529", - "l2cap_get_peer_mtu_for_local_cid": "0x0200a545", - "l2cap_init": "0x0200a985", - "l2cap_le_send_flow_control_credit": "0x0200aa7b", - "l2cap_max_le_mtu": "0x0200ad89", - "l2cap_register_packet_handler": "0x0200aeb1", - "l2cap_register_service": "0x0200aebd", - "l2cap_request_can_send_now_event": "0x0200afcd", - "l2cap_request_connection_parameter_update": "0x0200afe7", - "l2cap_send_echo_request": "0x0200b4c9", - "l2cap_unregister_service": "0x0200b5a9", - "le_device_db_add": "0x0200b601", - "le_device_db_find": "0x0200b6c9", - "le_device_db_from_key": "0x0200b6f5", - "le_device_db_iter_cur": "0x0200b6fd", - "le_device_db_iter_cur_key": "0x0200b701", - "le_device_db_iter_init": "0x0200b705", - "le_device_db_iter_next": "0x0200b70d", - "le_device_db_remove_key": "0x0200b733", - "ll_adjust_conn_peer_tx_power": "0x0200b761", - "ll_aes_encrypt": "0x0200b789", - "ll_config": "0x0200b7fd", - "ll_free": "0x0200b833", - "ll_get_heap_free_size": "0x0200b83d", - "ll_hint_on_ce_len": "0x0200b851", - "ll_legacy_adv_set_interval": "0x0200b889", - "ll_malloc": "0x0200b899", - "ll_register_hci_acl_previewer": "0x0200b9b1", - "ll_scan_set_fixed_channel": "0x0200ba15", - "ll_set_adv_access_address": "0x0200bc2d", - "ll_set_adv_coded_scheme": "0x0200bc39", - "ll_set_conn_acl_report_latency": "0x0200bc69", - "ll_set_conn_coded_scheme": "0x0200bc95", - "ll_set_conn_latency": "0x0200bcbd", - "ll_set_conn_tx_power": "0x0200bce9", - "ll_set_def_antenna": "0x0200bd21", - "ll_set_initiating_coded_scheme": "0x0200bd41", - "ll_set_max_conn_number": "0x0200bd4d", - "ll_set_tx_power_range": "0x0200bde1", - "nibble_for_char": "0x0201bf19", - "platform_calibrate_rt_clk": "0x0201bf8f", - "platform_call_on_stack": "0x0200213f", - "platform_config": "0x0201bf95", + "att_dispatch_client_can_send_now": "0x0200508d", + "att_dispatch_client_request_can_send_now_event": "0x02005093", + "att_dispatch_register_client": "0x02005099", + "att_dispatch_register_server": "0x020050ad", + "att_dispatch_server_can_send_now": "0x020050c1", + "att_dispatch_server_request_can_send_now_event": "0x020050c7", + "att_emit_general_event": "0x02005179", + "att_server_can_send_packet_now": "0x020058ad", + "att_server_deferred_read_response": "0x020058b1", + "att_server_get_mtu": "0x020058c9", + "att_server_indicate": "0x02005935", + "att_server_init": "0x020059b9", + "att_server_notify": "0x020059f5", + "att_server_register_packet_handler": "0x02005b0d", + "att_server_request_can_send_now_event": "0x02005b19", + "att_set_db": "0x02005b35", + "att_set_read_callback": "0x02005b49", + "att_set_write_callback": "0x02005b55", + "bd_addr_cmp": "0x02005d25", + "bd_addr_copy": "0x02005d2b", + "bd_addr_to_str": "0x02005d35", + "big_endian_read_16": "0x02005d6d", + "big_endian_read_32": "0x02005d75", + "big_endian_store_16": "0x02005d89", + "big_endian_store_32": "0x02005d95", + "btstack_config": "0x02005dc1", + "btstack_memory_pool_create": "0x02005f0f", + "btstack_memory_pool_free": "0x02005f39", + "btstack_memory_pool_get": "0x02005f99", + "btstack_push_user_msg": "0x02005fe1", + "btstack_push_user_runnable": "0x02005fed", + "btstack_reset": "0x02005ff9", + "char_for_nibble": "0x02006207", + "gap_add_dev_to_periodic_list": "0x02006b75", + "gap_add_whitelist": "0x02006b85", + "gap_aes_encrypt": "0x02006b91", + "gap_clear_white_lists": "0x02006bc9", + "gap_clr_adv_set": "0x02006bd5", + "gap_clr_periodic_adv_list": "0x02006be1", + "gap_create_connection_cancel": "0x02006bed", + "gap_default_periodic_adv_sync_transfer_param": "0x02006bf9", + "gap_disconnect": "0x02006c11", + "gap_disconnect_all": "0x02006c3d", + "gap_ext_create_connection": "0x02006c7d", + "gap_get_connection_parameter_range": "0x02006d55", + "gap_le_read_channel_map": "0x02006d8d", + "gap_periodic_adv_create_sync": "0x02006df9", + "gap_periodic_adv_create_sync_cancel": "0x02006e1d", + "gap_periodic_adv_set_info_transfer": "0x02006e29", + "gap_periodic_adv_sync_transfer": "0x02006e39", + "gap_periodic_adv_sync_transfer_param": "0x02006e49", + "gap_periodic_adv_term_sync": "0x02006e65", + "gap_read_antenna_info": "0x02006eed", + "gap_read_periodic_adv_list_size": "0x02006ef9", + "gap_read_phy": "0x02006f05", + "gap_read_remote_used_features": "0x02006f11", + "gap_read_remote_version": "0x02006f1d", + "gap_read_rssi": "0x02006f29", + "gap_remove_whitelist": "0x02006f35", + "gap_rmv_adv_set": "0x02006fb1", + "gap_rmv_dev_from_periodic_list": "0x02006fbd", + "gap_rx_test_v2": "0x02006fcd", + "gap_rx_test_v3": "0x02006fdd", + "gap_set_adv_set_random_addr": "0x02007029", + "gap_set_callback_for_next_hci": "0x02007065", + "gap_set_connection_cte_request_enable": "0x02007085", + "gap_set_connection_cte_response_enable": "0x020070a1", + "gap_set_connection_cte_rx_param": "0x020070b1", + "gap_set_connection_cte_tx_param": "0x02007105", + "gap_set_connection_parameter_range": "0x02007151", + "gap_set_connectionless_cte_tx_enable": "0x02007169", + "gap_set_connectionless_cte_tx_param": "0x02007179", + "gap_set_connectionless_iq_sampling_enable": "0x020071d5", + "gap_set_data_length": "0x02007231", + "gap_set_def_phy": "0x02007249", + "gap_set_ext_adv_data": "0x02007259", + "gap_set_ext_adv_enable": "0x02007271", + "gap_set_ext_adv_para": "0x020072e1", + "gap_set_ext_scan_enable": "0x020073b1", + "gap_set_ext_scan_para": "0x020073c9", + "gap_set_ext_scan_response_data": "0x02007469", + "gap_set_host_channel_classification": "0x02007481", + "gap_set_periodic_adv_data": "0x02007491", + "gap_set_periodic_adv_enable": "0x02007501", + "gap_set_periodic_adv_para": "0x02007511", + "gap_set_periodic_adv_rx_enable": "0x02007529", + "gap_set_phy": "0x02007539", + "gap_set_random_device_address": "0x02007555", + "gap_start_ccm": "0x02007585", + "gap_test_end": "0x020075cd", + "gap_tx_test_v2": "0x020075d9", + "gap_tx_test_v4": "0x020075f1", + "gap_update_connection_parameters": "0x02007615", + "gap_vendor_tx_continuous_wave": "0x02007655", + "gatt_client_cancel_write": "0x02007b7d", + "gatt_client_discover_characteristic_descriptors": "0x02007ba3", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x02007be3", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x02007c33", + "gatt_client_discover_characteristics_for_service": "0x02007c83", + "gatt_client_discover_primary_services": "0x02007cb9", + "gatt_client_discover_primary_services_by_uuid128": "0x02007ceb", + "gatt_client_discover_primary_services_by_uuid16": "0x02007d2f", + "gatt_client_execute_write": "0x02007d6d", + "gatt_client_find_included_services_for_service": "0x02007d93", + "gatt_client_get_mtu": "0x02007dc1", + "gatt_client_is_ready": "0x02007e85", + "gatt_client_listen_for_characteristic_value_updates": "0x02007e9b", + "gatt_client_prepare_write": "0x02007ebb", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007ef7", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x02007f21", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007f27", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x02007f55", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02007f5b", + "gatt_client_read_multiple_characteristic_values": "0x02007f89", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007fb9", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007fe7", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x02008033", + "gatt_client_register_handler": "0x0200807d", + "gatt_client_reliable_write_long_value_of_characteristic": "0x02008089", + "gatt_client_signed_write_without_response": "0x02008491", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02008555", + "gatt_client_write_client_characteristic_configuration": "0x0200858f", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x020085e1", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020085f1", + "gatt_client_write_long_value_of_characteristic": "0x0200862d", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x0200863d", + "gatt_client_write_value_of_characteristic": "0x02008679", + "gatt_client_write_value_of_characteristic_without_response": "0x020086af", + "hci_add_event_handler": "0x02009ca5", + "hci_power_control": "0x0200a439", + "hci_register_acl_packet_handler": "0x0200a5ed", + "kv_commit": "0x0200ac71", + "kv_get": "0x0200accd", + "kv_init": "0x0200acd9", + "kv_init_backend": "0x0200ad59", + "kv_put": "0x0200ad6d", + "kv_remove": "0x0200ad79", + "kv_remove_all": "0x0200adad", + "kv_value_modified": "0x0200addd", + "kv_value_modified_of_key": "0x0200adf9", + "kv_visit": "0x0200ae05", + "l2cap_add_event_handler": "0x0200ae95", + "l2cap_can_send_packet_now": "0x0200aea5", + "l2cap_create_le_credit_based_connection_request": "0x0200b069", + "l2cap_credit_based_send": "0x0200b1b1", + "l2cap_credit_based_send_continue": "0x0200b1dd", + "l2cap_disconnect": "0x0200b259", + "l2cap_get_le_credit_based_connection_credits": "0x0200b445", + "l2cap_get_peer_mtu_for_local_cid": "0x0200b461", + "l2cap_init": "0x0200b8a1", + "l2cap_le_send_flow_control_credit": "0x0200b997", + "l2cap_max_le_mtu": "0x0200bca5", + "l2cap_register_packet_handler": "0x0200bdcd", + "l2cap_register_service": "0x0200bdd9", + "l2cap_request_can_send_now_event": "0x0200bee9", + "l2cap_request_connection_parameter_update": "0x0200bf03", + "l2cap_send_echo_request": "0x0200c3e5", + "l2cap_unregister_service": "0x0200c4c5", + "le_device_db_add": "0x0200c51d", + "le_device_db_find": "0x0200c5e5", + "le_device_db_from_key": "0x0200c611", + "le_device_db_iter_cur": "0x0200c619", + "le_device_db_iter_cur_key": "0x0200c61d", + "le_device_db_iter_init": "0x0200c621", + "le_device_db_iter_next": "0x0200c629", + "le_device_db_remove_key": "0x0200c64f", + "ll_adjust_conn_peer_tx_power": "0x0200c67d", + "ll_aes_encrypt": "0x0200c6a5", + "ll_config": "0x0200c719", + "ll_free": "0x0200c74f", + "ll_get_heap_free_size": "0x0200c759", + "ll_hint_on_ce_len": "0x0200c76d", + "ll_legacy_adv_set_interval": "0x0200c7a5", + "ll_malloc": "0x0200c7b5", + "ll_register_hci_acl_previewer": "0x0200c8cd", + "ll_scan_set_fixed_channel": "0x0200c931", + "ll_set_adv_access_address": "0x0200cb49", + "ll_set_adv_coded_scheme": "0x0200cb55", + "ll_set_conn_acl_report_latency": "0x0200cb85", + "ll_set_conn_coded_scheme": "0x0200cbb1", + "ll_set_conn_latency": "0x0200cbd9", + "ll_set_conn_tx_power": "0x0200cc05", + "ll_set_def_antenna": "0x0200cc3d", + "ll_set_initiating_coded_scheme": "0x0200cc5d", + "ll_set_max_conn_number": "0x0200cc69", + "ll_set_tx_power_range": "0x0200ccfd", + "nibble_for_char": "0x0201ce39", + "platform_calibrate_rt_clk": "0x0201ceaf", + "platform_call_on_stack": "0x0200303f", + "platform_config": "0x0201ceb5", "platform_controller_run": "0x2000015b", - "platform_delete_timer": "0x0201c0bd", - "platform_enable_irq": "0x0201c0c5", - "platform_get_gen_os_driver": "0x0201c119", - "platform_get_link_layer_interf": "0x0201c125", - "platform_get_task_handle": "0x0201c12d", - "platform_get_timer_counter": "0x0201c145", - "platform_get_us_time": "0x0201c149", - "platform_get_version": "0x0201c14d", - "platform_hrng": "0x0201c155", + "platform_delete_timer": "0x0201cfdd", + "platform_enable_irq": "0x0201cfe5", + "platform_get_gen_os_driver": "0x0201d039", + "platform_get_link_layer_interf": "0x0201d045", + "platform_get_task_handle": "0x0201d04d", + "platform_get_timer_counter": "0x0201d065", + "platform_get_us_time": "0x0201d069", + "platform_get_version": "0x0201d06d", + "platform_hrng": "0x0201d089", "platform_init_controller": "0x20000145", "platform_os_idle_resumed_hook": "0x200003cf", - "platform_patch_rf_init_data": "0x0201c15d", + "platform_patch_rf_init_data": "0x0201d091", "platform_post_sleep_processing": "0x200003c9", "platform_pre_sleep_processing": "0x200003c3", "platform_pre_suppress_ticks_and_sleep_processing": "0x200003bf", - "platform_printf": "0x0201c169", - "platform_raise_assertion": "0x0201c17d", - "platform_rand": "0x0201c191", - "platform_read_info": "0x0201c195", - "platform_read_persistent_reg": "0x0201c1c5", - "platform_reset": "0x0201c1d1", - "platform_rt_rc_auto_tune": "0x0201c1e5", - "platform_rt_rc_auto_tune2": "0x0201c1ed", - "platform_rt_rc_tune": "0x0201c255", - "platform_set_abs_timer": "0x0201c271", - "platform_set_evt_callback": "0x0201c275", - "platform_set_evt_callback_table": "0x0201c289", - "platform_set_irq_callback": "0x0201c295", - "platform_set_irq_callback_table": "0x0201c2b1", - "platform_set_rf_clk_source": "0x0201c2bd", - "platform_set_rf_init_data": "0x0201c2c9", - "platform_set_rf_power_mapping": "0x0201c2d5", - "platform_set_timer": "0x0201c2e1", - "platform_shutdown": "0x0201c2e5", - "platform_switch_app": "0x0201c2e9", - "platform_trace_raw": "0x0201c301", - "platform_write_persistent_reg": "0x0201c319", - "printf_hexdump": "0x0201c32d", - "reverse_128": "0x0201c62d", - "reverse_24": "0x0201c633", - "reverse_256": "0x0201c639", - "reverse_48": "0x0201c63f", - "reverse_56": "0x0201c645", - "reverse_64": "0x0201c64b", - "reverse_bd_addr": "0x0201c651", - "reverse_bytes": "0x0201c657", - "sm_add_event_handler": "0x0201c95d", - "sm_address_resolution_lookup": "0x0201cab5", - "sm_authenticated": "0x0201ce31", - "sm_authorization_decline": "0x0201ce3f", - "sm_authorization_grant": "0x0201ce5f", - "sm_authorization_state": "0x0201ce7f", - "sm_bonding_decline": "0x0201ce99", - "sm_config": "0x0201d2ed", - "sm_config_conn": "0x0201d305", - "sm_encryption_key_size": "0x0201d4bb", - "sm_just_works_confirm": "0x0201da41", - "sm_le_device_key": "0x0201dd79", - "sm_passkey_input": "0x0201de0f", - "sm_private_random_address_generation_get": "0x0201e1c9", - "sm_private_random_address_generation_get_mode": "0x0201e1d1", - "sm_private_random_address_generation_set_mode": "0x0201e1dd", - "sm_private_random_address_generation_set_update_period": "0x0201e205", - "sm_register_external_ltk_callback": "0x0201e341", - "sm_register_oob_data_callback": "0x0201e34d", - "sm_request_pairing": "0x0201e359", - "sm_send_security_request": "0x0201ee2f", - "sm_set_accepted_stk_generation_methods": "0x0201ee55", - "sm_set_authentication_requirements": "0x0201ee61", - "sm_set_encryption_key_size_range": "0x0201ee6d", - "sscanf_bd_addr": "0x0201f1cd", - "sysSetPublicDeviceAddr": "0x0201f281", - "uuid128_to_str": "0x0201fa3d", - "uuid_add_bluetooth_prefix": "0x0201fa95", - "uuid_has_bluetooth_prefix": "0x0201fab5" + "platform_printf": "0x0201d09d", + "platform_raise_assertion": "0x0201d0b1", + "platform_rand": "0x0201d0c5", + "platform_read_info": "0x0201d0c9", + "platform_read_persistent_reg": "0x0201d0f9", + "platform_reset": "0x0201d105", + "platform_rt_rc_auto_tune": "0x0201d119", + "platform_rt_rc_auto_tune2": "0x0201d121", + "platform_rt_rc_tune": "0x0201d189", + "platform_set_abs_timer": "0x0201d1a5", + "platform_set_evt_callback": "0x0201d1a9", + "platform_set_evt_callback_table": "0x0201d1bd", + "platform_set_irq_callback": "0x0201d1c9", + "platform_set_irq_callback_table": "0x0201d1e5", + "platform_set_rf_clk_source": "0x0201d1f1", + "platform_set_rf_init_data": "0x0201d1fd", + "platform_set_rf_power_mapping": "0x0201d209", + "platform_set_timer": "0x0201d215", + "platform_shutdown": "0x0201d219", + "platform_switch_app": "0x0201d21d", + "platform_trace_raw": "0x0201d235", + "platform_write_persistent_reg": "0x0201d24d", + "printf_hexdump": "0x0201d261", + "reverse_128": "0x0201d561", + "reverse_24": "0x0201d567", + "reverse_256": "0x0201d56d", + "reverse_48": "0x0201d573", + "reverse_56": "0x0201d579", + "reverse_64": "0x0201d57f", + "reverse_bd_addr": "0x0201d585", + "reverse_bytes": "0x0201d58b", + "sm_add_event_handler": "0x0201d891", + "sm_address_resolution_lookup": "0x0201d9e9", + "sm_authenticated": "0x0201dd65", + "sm_authorization_decline": "0x0201dd73", + "sm_authorization_grant": "0x0201dd93", + "sm_authorization_state": "0x0201ddb3", + "sm_bonding_decline": "0x0201ddcd", + "sm_config": "0x0201e221", + "sm_config_conn": "0x0201e239", + "sm_encryption_key_size": "0x0201e3ef", + "sm_just_works_confirm": "0x0201e975", + "sm_le_device_key": "0x0201ecad", + "sm_passkey_input": "0x0201ed43", + "sm_private_random_address_generation_get": "0x0201f0fd", + "sm_private_random_address_generation_get_mode": "0x0201f105", + "sm_private_random_address_generation_set_mode": "0x0201f111", + "sm_private_random_address_generation_set_update_period": "0x0201f139", + "sm_register_external_ltk_callback": "0x0201f275", + "sm_register_oob_data_callback": "0x0201f281", + "sm_request_pairing": "0x0201f28d", + "sm_send_security_request": "0x0201fd63", + "sm_set_accepted_stk_generation_methods": "0x0201fd89", + "sm_set_authentication_requirements": "0x0201fd95", + "sm_set_encryption_key_size_range": "0x0201fda1", + "sscanf_bd_addr": "0x02020101", + "sysSetPublicDeviceAddr": "0x020201b5", + "uuid128_to_str": "0x02020971", + "uuid_add_bluetooth_prefix": "0x020209c9", + "uuid_has_bluetooth_prefix": "0x020209e9" } \ No newline at end of file diff --git a/bundles/noos_mini/ING9168xx/meta.json b/bundles/noos_mini/ING9168xx/meta.json index 575ad2308..84f2e738a 100644 --- a/bundles/noos_mini/ING9168xx/meta.json +++ b/bundles/noos_mini/ING9168xx/meta.json @@ -1,18 +1,18 @@ { "app": { - "base": 33710080 + "base": 33714176 }, "ram": { "base": 536870912, - "size": 17116 + "size": 17132 }, "rom": { "base": 33562624, - "size": 144904 + "size": 148808 }, "version": [ 2, 3, - 1 + 2 ] } \ No newline at end of file diff --git a/bundles/noos_mini/ING9168xx/platform.bin b/bundles/noos_mini/ING9168xx/platform.bin index 8aa10dd53c20069594071cd86469cb2b0559abfd..2c0003a79af6bd680f7311638e2ce9a1fe52a3ea 100644 GIT binary patch delta 40082 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

      Q~k%FcSXg9dy35>Tn}gJ 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 i!OLcUM998RGwA5?6iz delta 13741 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 diff --git a/bundles/exp/ING9187xx/apis.json b/bundles/exp/ING9187xx/apis.json index d4978b88d..4d7f107a5 100644 --- a/bundles/exp/ING9187xx/apis.json +++ b/bundles/exp/ING9187xx/apis.json @@ -268,103 +268,103 @@ "sm_bonding_decline": "0x00021b19", "sm_config": "0x00021f99", "sm_config_conn": "0x00021fb1", - "sm_encryption_key_size": "0x00022167", - "sm_just_works_confirm": "0x00022eb5", - "sm_le_device_key": "0x00023295", - "sm_numeric_comparison_confirm": "0x000233e7", - "sm_passkey_input": "0x00023425", - "sm_private_random_address_generation_get": "0x00023a25", - "sm_private_random_address_generation_get_mode": "0x00023a2d", - "sm_private_random_address_generation_set_mode": "0x00023a39", - "sm_private_random_address_generation_set_update_period": "0x00023a61", - "sm_register_external_ltk_callback": "0x00023ced", - "sm_register_oob_data_callback": "0x00023cf9", - "sm_register_sc_oob_data_callback": "0x00023d05", - "sm_request_pairing": "0x00023d11", - "sm_sc_generate_oob_data": "0x00024949", - "sm_send_security_request": "0x00024a79", - "sm_set_accepted_stk_generation_methods": "0x00024aa1", - "sm_set_authentication_requirements": "0x00024aad", - "sm_set_encryption_key_size_range": "0x00024ab9", - "sscanf_bd_addr": "0x00024ed5", - "sysSetPublicDeviceAddr": "0x00025289", - "uuid128_to_str": "0x000258c5", - "uuid_add_bluetooth_prefix": "0x0002591d", - "uuid_has_bluetooth_prefix": "0x0002593d", - "uxListRemove": "0x00025959", - "uxQueueMessagesWaiting": "0x00025981", - "uxQueueMessagesWaitingFromISR": "0x000259a9", - "uxQueueSpacesAvailable": "0x000259c5", - "uxTaskGetStackHighWaterMark": "0x000259f1", - "uxTaskPriorityGet": "0x00025a11", - "uxTaskPriorityGetFromISR": "0x00025a2d", - "vListInitialise": "0x00025ae7", - "vListInitialiseItem": "0x00025afd", - "vListInsert": "0x00025b03", - "vListInsertEnd": "0x00025b33", - "vPortEndScheduler": "0x00025b4d", - "vPortEnterCritical": "0x00025b79", - "vPortExitCritical": "0x00025bbd", - "vPortFree": "0x00025bf1", - "vPortSuppressTicksAndSleep": "0x00025c85", - "vPortValidateInterruptPriority": "0x00025dad", - "vQueueDelete": "0x00025e09", - "vQueueWaitForMessageRestricted": "0x00025e35", - "vTaskDelay": "0x00025e7d", - "vTaskInternalSetTimeOutState": "0x00025ec9", - "vTaskMissedYield": "0x00025ed9", - "vTaskPlaceOnEventList": "0x00025ee5", - "vTaskPlaceOnEventListRestricted": "0x00025f1d", - "vTaskPriorityDisinheritAfterTimeout": "0x00025f5d", - "vTaskPrioritySet": "0x00026009", - "vTaskResume": "0x000260d1", - "vTaskStartScheduler": "0x00026155", - "vTaskStepTick": "0x000261e5", - "vTaskSuspend": "0x00026215", - "vTaskSuspendAll": "0x000262d1", - "vTaskSwitchContext": "0x000262e1", - "xPortStartScheduler": "0x00026391", - "xQueueAddToSet": "0x00026459", - "xQueueCreateCountingSemaphore": "0x0002647d", - "xQueueCreateCountingSemaphoreStatic": "0x000264b9", - "xQueueCreateMutex": "0x000264fd", - "xQueueCreateMutexStatic": "0x00026513", - "xQueueCreateSet": "0x0002652d", - "xQueueGenericCreate": "0x00026535", - "xQueueGenericCreateStatic": "0x00026581", - "xQueueGenericReset": "0x000265e9", - "xQueueGenericSend": "0x00026675", - "xQueueGenericSendFromISR": "0x000267e1", - "xQueueGiveFromISR": "0x000268a1", - "xQueueGiveMutexRecursive": "0x00026945", - "xQueueIsQueueEmptyFromISR": "0x00026985", - "xQueueIsQueueFullFromISR": "0x000269a9", - "xQueuePeek": "0x000269d1", - "xQueuePeekFromISR": "0x00026af9", - "xQueueReceive": "0x00026b65", - "xQueueReceiveFromISR": "0x00026c91", - "xQueueRemoveFromSet": "0x00026d25", - "xQueueSelectFromSet": "0x00026d47", - "xQueueSelectFromSetFromISR": "0x00026d59", - "xQueueSemaphoreTake": "0x00026d6d", - "xQueueTakeMutexRecursive": "0x00026ed9", - "xTaskCheckForTimeOut": "0x00026f1d", - "xTaskCreate": "0x00026f8d", - "xTaskCreateStatic": "0x00026fe9", - "xTaskGetCurrentTaskHandle": "0x00027059", - "xTaskGetSchedulerState": "0x00027065", - "xTaskGetTickCount": "0x00027081", - "xTaskGetTickCountFromISR": "0x0002708d", - "xTaskIncrementTick": "0x0002709d", - "xTaskPriorityDisinherit": "0x00027169", - "xTaskPriorityInherit": "0x000271fd", - "xTaskRemoveFromEventList": "0x00027291", - "xTaskResumeAll": "0x00027311", - "xTaskResumeFromISR": "0x000273d9", - "xTimerCreate": "0x00027465", - "xTimerCreateStatic": "0x00027499", - "xTimerCreateTimerTask": "0x000274d1", - "xTimerGenericCommand": "0x0002753d", - "xTimerGetExpiryTime": "0x000275ad", - "xTimerGetTimerDaemonTaskHandle": "0x000275cd" + "sm_encryption_key_size": "0x0002216b", + "sm_just_works_confirm": "0x00022ebd", + "sm_le_device_key": "0x000232ad", + "sm_numeric_comparison_confirm": "0x00023403", + "sm_passkey_input": "0x00023441", + "sm_private_random_address_generation_get": "0x00023a49", + "sm_private_random_address_generation_get_mode": "0x00023a51", + "sm_private_random_address_generation_set_mode": "0x00023a5d", + "sm_private_random_address_generation_set_update_period": "0x00023a85", + "sm_register_external_ltk_callback": "0x00023d11", + "sm_register_oob_data_callback": "0x00023d1d", + "sm_register_sc_oob_data_callback": "0x00023d29", + "sm_request_pairing": "0x00023d35", + "sm_sc_generate_oob_data": "0x00024971", + "sm_send_security_request": "0x00024aa1", + "sm_set_accepted_stk_generation_methods": "0x00024ac9", + "sm_set_authentication_requirements": "0x00024ad5", + "sm_set_encryption_key_size_range": "0x00024ae5", + "sscanf_bd_addr": "0x00024f01", + "sysSetPublicDeviceAddr": "0x000252b5", + "uuid128_to_str": "0x000258f1", + "uuid_add_bluetooth_prefix": "0x00025949", + "uuid_has_bluetooth_prefix": "0x00025969", + "uxListRemove": "0x00025985", + "uxQueueMessagesWaiting": "0x000259ad", + "uxQueueMessagesWaitingFromISR": "0x000259d5", + "uxQueueSpacesAvailable": "0x000259f1", + "uxTaskGetStackHighWaterMark": "0x00025a1d", + "uxTaskPriorityGet": "0x00025a3d", + "uxTaskPriorityGetFromISR": "0x00025a59", + "vListInitialise": "0x00025b13", + "vListInitialiseItem": "0x00025b29", + "vListInsert": "0x00025b2f", + "vListInsertEnd": "0x00025b5f", + "vPortEndScheduler": "0x00025b79", + "vPortEnterCritical": "0x00025ba5", + "vPortExitCritical": "0x00025be9", + "vPortFree": "0x00025c1d", + "vPortSuppressTicksAndSleep": "0x00025cb1", + "vPortValidateInterruptPriority": "0x00025dd9", + "vQueueDelete": "0x00025e35", + "vQueueWaitForMessageRestricted": "0x00025e61", + "vTaskDelay": "0x00025ea9", + "vTaskInternalSetTimeOutState": "0x00025ef5", + "vTaskMissedYield": "0x00025f05", + "vTaskPlaceOnEventList": "0x00025f11", + "vTaskPlaceOnEventListRestricted": "0x00025f49", + "vTaskPriorityDisinheritAfterTimeout": "0x00025f89", + "vTaskPrioritySet": "0x00026035", + "vTaskResume": "0x000260fd", + "vTaskStartScheduler": "0x00026181", + "vTaskStepTick": "0x00026211", + "vTaskSuspend": "0x00026241", + "vTaskSuspendAll": "0x000262fd", + "vTaskSwitchContext": "0x0002630d", + "xPortStartScheduler": "0x000263bd", + "xQueueAddToSet": "0x00026485", + "xQueueCreateCountingSemaphore": "0x000264a9", + "xQueueCreateCountingSemaphoreStatic": "0x000264e5", + "xQueueCreateMutex": "0x00026529", + "xQueueCreateMutexStatic": "0x0002653f", + "xQueueCreateSet": "0x00026559", + "xQueueGenericCreate": "0x00026561", + "xQueueGenericCreateStatic": "0x000265ad", + "xQueueGenericReset": "0x00026615", + "xQueueGenericSend": "0x000266a1", + "xQueueGenericSendFromISR": "0x0002680d", + "xQueueGiveFromISR": "0x000268cd", + "xQueueGiveMutexRecursive": "0x00026971", + "xQueueIsQueueEmptyFromISR": "0x000269b1", + "xQueueIsQueueFullFromISR": "0x000269d5", + "xQueuePeek": "0x000269fd", + "xQueuePeekFromISR": "0x00026b25", + "xQueueReceive": "0x00026b91", + "xQueueReceiveFromISR": "0x00026cbd", + "xQueueRemoveFromSet": "0x00026d51", + "xQueueSelectFromSet": "0x00026d73", + "xQueueSelectFromSetFromISR": "0x00026d85", + "xQueueSemaphoreTake": "0x00026d99", + "xQueueTakeMutexRecursive": "0x00026f05", + "xTaskCheckForTimeOut": "0x00026f49", + "xTaskCreate": "0x00026fb9", + "xTaskCreateStatic": "0x00027015", + "xTaskGetCurrentTaskHandle": "0x00027085", + "xTaskGetSchedulerState": "0x00027091", + "xTaskGetTickCount": "0x000270ad", + "xTaskGetTickCountFromISR": "0x000270b9", + "xTaskIncrementTick": "0x000270c9", + "xTaskPriorityDisinherit": "0x00027195", + "xTaskPriorityInherit": "0x00027229", + "xTaskRemoveFromEventList": "0x000272bd", + "xTaskResumeAll": "0x0002733d", + "xTaskResumeFromISR": "0x00027405", + "xTimerCreate": "0x00027491", + "xTimerCreateStatic": "0x000274c5", + "xTimerCreateTimerTask": "0x000274fd", + "xTimerGenericCommand": "0x00027569", + "xTimerGetExpiryTime": "0x000275d9", + "xTimerGetTimerDaemonTaskHandle": "0x000275f9" } \ No newline at end of file diff --git a/bundles/exp/ING9187xx/meta.json b/bundles/exp/ING9187xx/meta.json index 2f5b38ea3..6f7505a2c 100644 --- a/bundles/exp/ING9187xx/meta.json +++ b/bundles/exp/ING9187xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 151996 + "size": 152040 }, "version": [ 1, 9, - 41 + 42 ] } \ No newline at end of file diff --git a/bundles/exp/ING9187xx/platform.bin b/bundles/exp/ING9187xx/platform.bin index 0efb4887271e71a07a7e246094603521a9d15fb0..03e289f1b659619b71f55b10331ef8411beb8fcf 100644 GIT binary patch delta 12485 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 delta 12736 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 delta 13272 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 JomfVb{}<*^%RvAD diff --git a/bundles/exp/inc/bluetooth.h b/bundles/exp/inc/bluetooth.h index 44c58585a..eb3229626 100644 --- a/bundles/exp/inc/bluetooth.h +++ b/bundles/exp/inc/bluetooth.h @@ -718,7 +718,7 @@ typedef enum { #define SM_AUTHREQ_NO_BONDING 0x00 #define SM_AUTHREQ_BONDING 0x01 #define SM_AUTHREQ_MITM_PROTECTION 0x04 -#define SM_AUTHREQ_SC 0x08 +#define SM_AUTHREQ_SC 0x08 // support of LE Secure Connections pairing // Key distribution flags used by spec #define SM_KEYDIST_ENC_KEY 0X01 diff --git a/bundles/exp/inc/btstack_defines.h b/bundles/exp/inc/btstack_defines.h index a8d08006c..2f5072301 100644 --- a/bundles/exp/inc/btstack_defines.h +++ b/bundles/exp/inc/btstack_defines.h @@ -385,6 +385,12 @@ */ #define SM_EVENT_STATE_CHANGED 0xDC + /** + * @format H1B1 + * @param handle + * @param show calculated numeric value that needs to be compared + */ +#define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xDD // GAP /** diff --git a/bundles/exp/inc/btstack_event.h b/bundles/exp/inc/btstack_event.h index e5ab49a55..9a648a79d 100644 --- a/bundles/exp/inc/btstack_event.h +++ b/bundles/exp/inc/btstack_event.h @@ -780,6 +780,26 @@ static __INLINE hci_con_handle_t sm_event_numeric_comparison_get_handle(const ui return little_endian_read_16(event, 2); } +/** + * @brief Get field addr_type from event SM_EVENT_NUMERIC_COMPARISON_REQUEST + * @param event packet + * @return addr_type + * @note: btstack_type 1 + */ +static __INLINE uint8_t sm_event_numeric_comparison_get_addr_type(const uint8_t * event){ + return *decode_event_offset(event, uint8_t, 4); +} + +/** + * @brief Get field address from event SM_EVENT_NUMERIC_COMPARISON_REQUEST + * @param event packet + * @param Pointer to storage for address + * @note: btstack_type B + */ +static __INLINE void sm_event_numeric_comparison_get_address(const uint8_t * event, uint8_t * address){ + reverse_bd_addr(decode_event_offset(event, uint8_t, 5), address); +} + /** * @brief Get field compare value from event SM_EVENT_NUMERIC_COMPARISON_REQUEST * @param event packet diff --git a/bundles/exp/inc/le_device_db.h b/bundles/exp/inc/le_device_db.h index b81d04f5a..130a062fd 100644 --- a/bundles/exp/inc/le_device_db.h +++ b/bundles/exp/inc/le_device_db.h @@ -16,9 +16,10 @@ typedef struct le_device_memory_db { // Identification uint8_t addr_type; - uint8_t key_size; - uint8_t authenticated; - uint8_t authorized; + uint8_t key_size; + uint8_t authenticated; + uint8_t authorized:1; + uint8_t sm_sc:1; bd_addr_t addr; sm_key_t irk; @@ -36,7 +37,6 @@ typedef struct le_device_memory_db { // Signed Writes by us sm_key_t local_csrk; uint32_t local_counter; - } le_device_memory_db_t; #pragma pack (pop) diff --git a/bundles/exp/inc/sm.h b/bundles/exp/inc/sm.h index 47c743c56..8ffb5fdaa 100644 --- a/bundles/exp/inc/sm.h +++ b/bundles/exp/inc/sm.h @@ -101,18 +101,54 @@ void sm_private_random_address_generation_set_update_period(int period_ms); const uint8_t *sm_private_random_address_generation_get(void); /** + * @brief Registers OOB Data Callback. + * + * The callback should set the oob_data and return 1 if OOB data is available. + * + * Signature of `get_oob_data_callback`: + * @param[in] address_type address type + * @param[in] addr address + * @param[out] oob_data OOB data (type `sm_key_t`) + * @return 1 if OOB data is available, else 0. * - * @brief Registers OOB Data Callback. The callback should set the oob_data and return 1 if OOB data is availble * @param get_oob_data_callback */ -void sm_register_oob_data_callback( int (*get_oob_data_callback)(uint8_t addres_type, bd_addr_t addr, uint8_t * oob_data)); +void sm_register_oob_data_callback( int (*get_oob_data_callback)(uint8_t address_type, bd_addr_t addr, uint8_t * oob_data)); /** + * @brief Registers secure pairing OOB Data Callback. * - * @brief Registers secure pairing OOB Data Callback. The callback should set the peer_confirm & peer_random and return 1 if OOB data is availble - * @param get_oob_data_callback + * The callback should set the peer_confirm & peer_random and return 1 + * if OOB data is available. + * + * Signature of `get_sc_oob_data_callback`: + * @param[in] address_type address type + * @param[in] addr address + * @param[out] peer_confirm peer confirm value (type `sm_key_t`) + * @param[out] peer_random peer random value (type `sm_key_t`) + * @return 1 if OOB data is available, else 0. + * + * @param get_sc_oob_data_callback + */ +void sm_register_sc_oob_data_callback(int (*get_sc_oob_data_callback)(uint8_t address_type, bd_addr_t addr, uint8_t *peer_confirm, uint8_t *peer_random)); + +/** + * @brief (When secure pairing is used and OOB is selected) Start generate local + * OOB data (_confirm_ and _random_). + * + * After generated, _confirm_ and _random_ are passed to the callback. + * + * App can then pass these information together with device address to peer + * through OOB communication. + * + * Signature of `callback`: + * @param[out] confirm local confirm value (type `sm_key_t`) + * @param[out] random local random value (type `sm_key_t`) + * + * @param callback + * @return 0 if started without error else non-0 */ -void sm_register_sc_oob_data_callback( int (*get_sc_oob_data_callback)(uint8_t addres_type, bd_addr_t addr, uint8_t *peer_confirm, uint8_t *peer_random)); +int sm_sc_generate_oob_data(void (*callback)(const uint8_t *confirm, const uint8_t *random)); /** * @brief Limit the STK generation methods. Bonding is stopped if the resulting one isn't in the list @@ -231,12 +267,6 @@ int sm_le_device_key(hci_con_handle_t con_handle); */ void sm_numeric_comparison_confirm(hci_con_handle_t con_handle); -/** - * @brief When secure pairing is used and OOB is selected, use this function to prepare OOB data and share to peer. - * @param handle - */ -int sm_sc_generate_oob_data(void (*callback)(uint8_t *peer_confirm, uint8_t *peer_random)); - /** * * @brief Register a callback for get external LTK (for empty EDIV & Random) diff --git a/bundles/extension/inc/bluetooth.h b/bundles/extension/inc/bluetooth.h index 44c58585a..eb3229626 100644 --- a/bundles/extension/inc/bluetooth.h +++ b/bundles/extension/inc/bluetooth.h @@ -718,7 +718,7 @@ typedef enum { #define SM_AUTHREQ_NO_BONDING 0x00 #define SM_AUTHREQ_BONDING 0x01 #define SM_AUTHREQ_MITM_PROTECTION 0x04 -#define SM_AUTHREQ_SC 0x08 +#define SM_AUTHREQ_SC 0x08 // support of LE Secure Connections pairing // Key distribution flags used by spec #define SM_KEYDIST_ENC_KEY 0X01 diff --git a/bundles/extension/inc/btstack_defines.h b/bundles/extension/inc/btstack_defines.h index a8d08006c..2f5072301 100644 --- a/bundles/extension/inc/btstack_defines.h +++ b/bundles/extension/inc/btstack_defines.h @@ -385,6 +385,12 @@ */ #define SM_EVENT_STATE_CHANGED 0xDC + /** + * @format H1B1 + * @param handle + * @param show calculated numeric value that needs to be compared + */ +#define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xDD // GAP /** diff --git a/bundles/mass_conn/inc/bluetooth.h b/bundles/mass_conn/inc/bluetooth.h index 44c58585a..eb3229626 100644 --- a/bundles/mass_conn/inc/bluetooth.h +++ b/bundles/mass_conn/inc/bluetooth.h @@ -718,7 +718,7 @@ typedef enum { #define SM_AUTHREQ_NO_BONDING 0x00 #define SM_AUTHREQ_BONDING 0x01 #define SM_AUTHREQ_MITM_PROTECTION 0x04 -#define SM_AUTHREQ_SC 0x08 +#define SM_AUTHREQ_SC 0x08 // support of LE Secure Connections pairing // Key distribution flags used by spec #define SM_KEYDIST_ENC_KEY 0X01 diff --git a/bundles/mass_conn/inc/btstack_defines.h b/bundles/mass_conn/inc/btstack_defines.h index a8d08006c..2f5072301 100644 --- a/bundles/mass_conn/inc/btstack_defines.h +++ b/bundles/mass_conn/inc/btstack_defines.h @@ -385,6 +385,12 @@ */ #define SM_EVENT_STATE_CHANGED 0xDC + /** + * @format H1B1 + * @param handle + * @param show calculated numeric value that needs to be compared + */ +#define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xDD // GAP /** diff --git a/bundles/mini/inc/bluetooth.h b/bundles/mini/inc/bluetooth.h index 44c58585a..eb3229626 100644 --- a/bundles/mini/inc/bluetooth.h +++ b/bundles/mini/inc/bluetooth.h @@ -718,7 +718,7 @@ typedef enum { #define SM_AUTHREQ_NO_BONDING 0x00 #define SM_AUTHREQ_BONDING 0x01 #define SM_AUTHREQ_MITM_PROTECTION 0x04 -#define SM_AUTHREQ_SC 0x08 +#define SM_AUTHREQ_SC 0x08 // support of LE Secure Connections pairing // Key distribution flags used by spec #define SM_KEYDIST_ENC_KEY 0X01 diff --git a/bundles/mini/inc/btstack_defines.h b/bundles/mini/inc/btstack_defines.h index a8d08006c..2f5072301 100644 --- a/bundles/mini/inc/btstack_defines.h +++ b/bundles/mini/inc/btstack_defines.h @@ -385,6 +385,12 @@ */ #define SM_EVENT_STATE_CHANGED 0xDC + /** + * @format H1B1 + * @param handle + * @param show calculated numeric value that needs to be compared + */ +#define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xDD // GAP /** diff --git a/bundles/noos_exp/ING9168xx/apis.json b/bundles/noos_exp/ING9168xx/apis.json index 917d2eb53..f9c2107cd 100644 --- a/bundles/noos_exp/ING9168xx/apis.json +++ b/bundles/noos_exp/ING9168xx/apis.json @@ -294,27 +294,27 @@ "sm_bonding_decline": "0x02024399", "sm_config": "0x02024815", "sm_config_conn": "0x0202482d", - "sm_encryption_key_size": "0x020249e3", - "sm_just_works_confirm": "0x02025735", - "sm_le_device_key": "0x02025b15", - "sm_numeric_comparison_confirm": "0x02025c67", - "sm_passkey_input": "0x02025ca5", - "sm_private_random_address_generation_get": "0x020262a9", - "sm_private_random_address_generation_get_mode": "0x020262b1", - "sm_private_random_address_generation_set_mode": "0x020262bd", - "sm_private_random_address_generation_set_update_period": "0x020262e5", - "sm_register_external_ltk_callback": "0x02026571", - "sm_register_oob_data_callback": "0x0202657d", - "sm_register_sc_oob_data_callback": "0x02026589", - "sm_request_pairing": "0x02026595", - "sm_sc_generate_oob_data": "0x020271d1", - "sm_send_security_request": "0x02027301", - "sm_set_accepted_stk_generation_methods": "0x02027329", - "sm_set_authentication_requirements": "0x02027335", - "sm_set_encryption_key_size_range": "0x02027341", - "sscanf_bd_addr": "0x02027765", - "sysSetPublicDeviceAddr": "0x02027c8d", - "uuid128_to_str": "0x0202850d", - "uuid_add_bluetooth_prefix": "0x02028565", - "uuid_has_bluetooth_prefix": "0x02028585" + "sm_encryption_key_size": "0x020249e7", + "sm_just_works_confirm": "0x02025739", + "sm_le_device_key": "0x02025b29", + "sm_numeric_comparison_confirm": "0x02025c7f", + "sm_passkey_input": "0x02025cbd", + "sm_private_random_address_generation_get": "0x020262c5", + "sm_private_random_address_generation_get_mode": "0x020262cd", + "sm_private_random_address_generation_set_mode": "0x020262d9", + "sm_private_random_address_generation_set_update_period": "0x02026301", + "sm_register_external_ltk_callback": "0x0202658d", + "sm_register_oob_data_callback": "0x02026599", + "sm_register_sc_oob_data_callback": "0x020265a5", + "sm_request_pairing": "0x020265b1", + "sm_sc_generate_oob_data": "0x020271f1", + "sm_send_security_request": "0x02027321", + "sm_set_accepted_stk_generation_methods": "0x02027349", + "sm_set_authentication_requirements": "0x02027355", + "sm_set_encryption_key_size_range": "0x02027365", + "sscanf_bd_addr": "0x02027789", + "sysSetPublicDeviceAddr": "0x02027cb1", + "uuid128_to_str": "0x02028531", + "uuid_add_bluetooth_prefix": "0x02028589", + "uuid_has_bluetooth_prefix": "0x020285a9" } \ No newline at end of file diff --git a/bundles/noos_exp/ING9168xx/meta.json b/bundles/noos_exp/ING9168xx/meta.json index 5b0f60dd0..3a73c6766 100644 --- a/bundles/noos_exp/ING9168xx/meta.json +++ b/bundles/noos_exp/ING9168xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 33562624, - "size": 166876 + "size": 166912 }, "version": [ 2, 3, - 2 + 3 ] } \ No newline at end of file diff --git a/bundles/noos_exp/ING9168xx/platform.bin b/bundles/noos_exp/ING9168xx/platform.bin index fe8fb2ed8d9c5646ed4ddb73a09f174927f7aba4..524e908b54a098b9244efeeb69c77c984e8e0848 100644 GIT binary patch delta 10910 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 PAVr+bM=_d@MCktj(Epo| delta 10936 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

      r_{d{s1(<~#*= z?iO0|6ggQwwr%J?gWells;QoNOeMe3t$D{-vA|pH?e_m0-&%N8ooGA z3(83t9d9JD@sgQQ42*sPem(+B(q}#3PN>WKbhpb{hym$#BZ)5G2hF{qDq$$#0l+?h zHGpA&l9;|d7!G(8>iqzvPXvolE!6u1)&WKWO8hLKBu5K)1~3WmEMPLAG>anuKZN>d zX%?k{$3Vj+z_EZ|1E%y~DxhTT1i)&*i9I+8@CNWr2K*6F4=C}a0ZId;1O5u_Qve?T zP6c!UP6L!a9NVpE1{(m^#yjwn6=+~+{Yvr~>8zwL6_L5bb%0(gB3bYog{Wu9b(P}7 zR|&cCs?}3UejxH6%`mw%t&Btxm)S~QBm+s%kH9bmgu7}88Dt&0jzls+mtH5t5846` zLmQp5fn>{%Lh)UCYy*6^u#?(1KxBKydT#^Ck@ddx1_%Y_ho2j7ShFh082|G1@Y_&m zWJdw@sZ>O6Kpo0#fj>fybVTl}dQXP0V&wzQY=_14_SQ$LPY#M;28v)=plTtbj%OD3 zVY1Jj7!W@wJ}~>}aVAygzr_0q4j;h~uN*JzjaOWPD{=4T{^@-_E)VtMn3`Z&f=wwK K#twk^0{tKCOWdFU diff --git a/bundles/noos_exp/ING9187xx/apis.json b/bundles/noos_exp/ING9187xx/apis.json index 433b4b16c..075b4902c 100644 --- a/bundles/noos_exp/ING9187xx/apis.json +++ b/bundles/noos_exp/ING9187xx/apis.json @@ -265,27 +265,27 @@ "sm_bonding_decline": "0x00020d41", "sm_config": "0x000211c1", "sm_config_conn": "0x000211d9", - "sm_encryption_key_size": "0x0002138f", - "sm_just_works_confirm": "0x000220dd", - "sm_le_device_key": "0x000224bd", - "sm_numeric_comparison_confirm": "0x0002260f", - "sm_passkey_input": "0x0002264d", - "sm_private_random_address_generation_get": "0x00022c4d", - "sm_private_random_address_generation_get_mode": "0x00022c55", - "sm_private_random_address_generation_set_mode": "0x00022c61", - "sm_private_random_address_generation_set_update_period": "0x00022c89", - "sm_register_external_ltk_callback": "0x00022f15", - "sm_register_oob_data_callback": "0x00022f21", - "sm_register_sc_oob_data_callback": "0x00022f2d", - "sm_request_pairing": "0x00022f39", - "sm_sc_generate_oob_data": "0x00023b71", - "sm_send_security_request": "0x00023ca1", - "sm_set_accepted_stk_generation_methods": "0x00023cc9", - "sm_set_authentication_requirements": "0x00023cd5", - "sm_set_encryption_key_size_range": "0x00023ce1", - "sscanf_bd_addr": "0x000240fd", - "sysSetPublicDeviceAddr": "0x000244b1", - "uuid128_to_str": "0x00024aed", - "uuid_add_bluetooth_prefix": "0x00024b45", - "uuid_has_bluetooth_prefix": "0x00024b65" + "sm_encryption_key_size": "0x00021393", + "sm_just_works_confirm": "0x000220e5", + "sm_le_device_key": "0x000224d5", + "sm_numeric_comparison_confirm": "0x0002262b", + "sm_passkey_input": "0x00022669", + "sm_private_random_address_generation_get": "0x00022c71", + "sm_private_random_address_generation_get_mode": "0x00022c79", + "sm_private_random_address_generation_set_mode": "0x00022c85", + "sm_private_random_address_generation_set_update_period": "0x00022cad", + "sm_register_external_ltk_callback": "0x00022f39", + "sm_register_oob_data_callback": "0x00022f45", + "sm_register_sc_oob_data_callback": "0x00022f51", + "sm_request_pairing": "0x00022f5d", + "sm_sc_generate_oob_data": "0x00023b99", + "sm_send_security_request": "0x00023cc9", + "sm_set_accepted_stk_generation_methods": "0x00023cf1", + "sm_set_authentication_requirements": "0x00023cfd", + "sm_set_encryption_key_size_range": "0x00023d0d", + "sscanf_bd_addr": "0x00024129", + "sysSetPublicDeviceAddr": "0x000244dd", + "uuid128_to_str": "0x00024b19", + "uuid_add_bluetooth_prefix": "0x00024b71", + "uuid_has_bluetooth_prefix": "0x00024b91" } \ No newline at end of file diff --git a/bundles/noos_exp/ING9187xx/meta.json b/bundles/noos_exp/ING9187xx/meta.json index 0b417af2f..aed554596 100644 --- a/bundles/noos_exp/ING9187xx/meta.json +++ b/bundles/noos_exp/ING9187xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 141212 + "size": 141252 }, "version": [ 1, 9, - 41 + 42 ] } \ No newline at end of file diff --git a/bundles/noos_exp/ING9187xx/platform.bin b/bundles/noos_exp/ING9187xx/platform.bin index 8a01ff5ca95ceb96cb246e8d628eece650adc7ed..b11ab1862243876e237788e8811b165917085bc8 100644 GIT binary patch delta 10237 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 Kx}qP`|NjAuQS~7J delta 10021 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 YN2Ic|&-P30pBgdSLElPY2FW7+527B9bpQYW diff --git a/bundles/noos_exp/ING9188xx/apis.json b/bundles/noos_exp/ING9188xx/apis.json index 734bc3c73..452888ee0 100644 --- a/bundles/noos_exp/ING9188xx/apis.json +++ b/bundles/noos_exp/ING9188xx/apis.json @@ -284,27 +284,27 @@ "sm_bonding_decline": "0x000224e5", "sm_config": "0x00022965", "sm_config_conn": "0x0002297d", - "sm_encryption_key_size": "0x00022b33", - "sm_just_works_confirm": "0x00023881", - "sm_le_device_key": "0x00023c61", - "sm_numeric_comparison_confirm": "0x00023db3", - "sm_passkey_input": "0x00023df1", - "sm_private_random_address_generation_get": "0x000243f1", - "sm_private_random_address_generation_get_mode": "0x000243f9", - "sm_private_random_address_generation_set_mode": "0x00024405", - "sm_private_random_address_generation_set_update_period": "0x0002442d", - "sm_register_external_ltk_callback": "0x000246b9", - "sm_register_oob_data_callback": "0x000246c5", - "sm_register_sc_oob_data_callback": "0x000246d1", - "sm_request_pairing": "0x000246dd", - "sm_sc_generate_oob_data": "0x00025315", - "sm_send_security_request": "0x00025445", - "sm_set_accepted_stk_generation_methods": "0x0002546d", - "sm_set_authentication_requirements": "0x00025479", - "sm_set_encryption_key_size_range": "0x00025485", - "sscanf_bd_addr": "0x000258a1", - "sysSetPublicDeviceAddr": "0x00025c55", - "uuid128_to_str": "0x00026429", - "uuid_add_bluetooth_prefix": "0x00026481", - "uuid_has_bluetooth_prefix": "0x000264a1" + "sm_encryption_key_size": "0x00022b37", + "sm_just_works_confirm": "0x00023889", + "sm_le_device_key": "0x00023c79", + "sm_numeric_comparison_confirm": "0x00023dcf", + "sm_passkey_input": "0x00023e0d", + "sm_private_random_address_generation_get": "0x00024415", + "sm_private_random_address_generation_get_mode": "0x0002441d", + "sm_private_random_address_generation_set_mode": "0x00024429", + "sm_private_random_address_generation_set_update_period": "0x00024451", + "sm_register_external_ltk_callback": "0x000246dd", + "sm_register_oob_data_callback": "0x000246e9", + "sm_register_sc_oob_data_callback": "0x000246f5", + "sm_request_pairing": "0x00024701", + "sm_sc_generate_oob_data": "0x0002533d", + "sm_send_security_request": "0x0002546d", + "sm_set_accepted_stk_generation_methods": "0x00025495", + "sm_set_authentication_requirements": "0x000254a1", + "sm_set_encryption_key_size_range": "0x000254b1", + "sscanf_bd_addr": "0x000258cd", + "sysSetPublicDeviceAddr": "0x00025c81", + "uuid128_to_str": "0x00026455", + "uuid_add_bluetooth_prefix": "0x000264ad", + "uuid_has_bluetooth_prefix": "0x000264cd" } \ No newline at end of file diff --git a/bundles/noos_exp/ING9188xx/meta.json b/bundles/noos_exp/ING9188xx/meta.json index c95590ac9..2760a52e2 100644 --- a/bundles/noos_exp/ING9188xx/meta.json +++ b/bundles/noos_exp/ING9188xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 148124 + "size": 148164 }, "version": [ 1, 9, - 41 + 42 ] } \ No newline at end of file diff --git a/bundles/noos_exp/ING9188xx/platform.bin b/bundles/noos_exp/ING9188xx/platform.bin index a208232845416e5b78bb1e205ddd402b9de97ef2..812f7464fce09ff556498b7c5e9300280abbf0d4 100644 GIT binary patch delta 10620 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 ZsY~M)-oq{QCZr8Z3tRXjtDH*H{|`D;XGZ`4 delta 10387 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 0 0 - 21 + 18 0 - 204 - 205 + 205 + 206 0 .\src\profile.c profile.c @@ -234,7 +234,7 @@ 0 0 0 - ..\..\bundles\typical\ING9187xx\symdefs.m + ..\..\bundles\exp\ING9187xx\symdefs.m symdefs.m 0 0 @@ -439,6 +439,38 @@ 0 0 + + 5 + 16 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\src\Tools\ecc_driver.c + ecc_driver.c + 0 + 0 + + + 5 + 17 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\src\Tools\ing918_uecc.lib + ing918_uecc.lib + 0 + 0 + diff --git a/examples/hid_keyboard/hid_keyboard.uvoptx b/examples/hid_keyboard/hid_keyboard.uvoptx index 7e919246b..8800bffbe 100644 --- a/examples/hid_keyboard/hid_keyboard.uvoptx +++ b/examples/hid_keyboard/hid_keyboard.uvoptx @@ -266,7 +266,7 @@ 0 0 0 - ..\..\bundles\typical\ING9187xx\symdefs.m + ..\..\bundles\exp\ING9187xx\symdefs.m symdefs.m 0 0 @@ -363,13 +363,25 @@ Tools - 0 + 1 0 0 0 5 11 + 4 + 0 + 0 + 0 + ..\..\src\Tools\ing918_uecc.lib + ing918_uecc.lib + 0 + 0 + + + 5 + 12 1 0 0 @@ -381,7 +393,7 @@ 5 - 12 + 13 1 0 0 @@ -393,7 +405,7 @@ 5 - 13 + 14 1 0 0 @@ -405,7 +417,7 @@ 5 - 14 + 15 1 0 0 @@ -417,7 +429,7 @@ 5 - 15 + 16 1 0 0 @@ -427,6 +439,18 @@ 0 0 + + 5 + 17 + 1 + 0 + 0 + 0 + ..\..\src\Tools\ecc_driver.c + ecc_driver.c + 0 + 0 + diff --git a/examples/hid_keyboard/hid_keyboard.uvproj b/examples/hid_keyboard/hid_keyboard.uvproj index bccf3418a..53a603b29 100644 --- a/examples/hid_keyboard/hid_keyboard.uvproj +++ b/examples/hid_keyboard/hid_keyboard.uvproj @@ -1,7 +1,10 @@ - + + 1.1 +

      ### uVision Project, (C) Keil Software
      + Target 1 @@ -12,27 +15,27 @@ ING91800 INGCHIPS CLOCK(48000000) CPUTYPE("Cortex-M3") ELITTLE IROM(0x4000-0x43fff) IRAM(0x20000000-0x2000ffff) - - - + + + 0 - - - - - - - - - - - + + + + + + + + + + + 0 - - - - - + + + + + 0 0 @@ -54,8 +57,8 @@ 0 0 - - + + 0 0 0 @@ -64,8 +67,8 @@ 0 0 - - + + 0 0 @@ -73,12 +76,12 @@ 1 0 fromelf.exe --bin -o hid_keyboard.bin ./output/hid_keyboard.axf - + 0 0 0 - + 0 @@ -92,16 +95,16 @@ 0 0 3 - - + + SARMCM3.DLL - + DCM.DLL -pCM3 SARMCM3.DLL - + TCM.DLL -pCM3 @@ -138,17 +141,17 @@ 0 1 - - - - + + + + ..\map.ini - - - - + + + + .\init.ini BIN\UL2CM3.DLL @@ -165,7 +168,7 @@ 0 BIN\UL2CM3.DLL "" () - + @@ -197,7 +200,7 @@ 0 0 "Cortex-M3" - + 0 0 0 @@ -294,8 +297,8 @@ 1 - 155648 - 385024 + 0x2a000 + 0x5a000 1 @@ -319,8 +322,8 @@ 0 - 536900792 - 35656 + 0x20007640 + 0x89c0 0 @@ -328,7 +331,7 @@ 0x0 - + 1 @@ -347,8 +350,8 @@ --gnu USE_STDPERIPH_DRIVER,BOARD_USE_KEYS - - ../../bundles/typical/inc;../../bundles/typical/inc/os;../../src/BSP;../../src/FWlib;../../src/StartUP/ing918;../../src/Tools;../../src + + ../../bundles/exp/inc;../../bundles/exp/inc/os;../../src/BSP;../../src/FWlib;../../src/StartUP/ing918;../../src/Tools;../../src @@ -361,10 +364,10 @@ 0 0 - - - - + + + + @@ -376,12 +379,12 @@ 0 0x00000000 0x00000000 - - - - - - + + + + + + @@ -412,7 +415,7 @@ symdefs.m 3 - ..\..\bundles\typical\ING9187xx\symdefs.m + ..\..\bundles\exp\ING9187xx\symdefs.m @@ -484,9 +487,20 @@ 1 ..\..\src\Tools\malloc_override.c + + ecc_driver.c + 1 + ..\..\src\Tools\ecc_driver.c + + + ing918_uecc.lib + 4 + ..\..\src\Tools\ing918_uecc.lib + + diff --git a/examples/hid_keyboard/hid_keyboard.uvprojx b/examples/hid_keyboard/hid_keyboard.uvprojx index f917390d4..846385a0c 100644 --- a/examples/hid_keyboard/hid_keyboard.uvprojx +++ b/examples/hid_keyboard/hid_keyboard.uvprojx @@ -273,8 +273,8 @@ 1 - 155648 - 385024 + 172032 + 368640 1 @@ -298,8 +298,8 @@ 0 - 536900792 - 35656 + 536901184 + 35264 0 @@ -337,7 +337,7 @@ USE_STDPERIPH_DRIVER,PuTTY,BOARD_USE_KEYS - ../../bundles/typical/inc;../../bundles/typical/inc/os;../../src/BSP;../../src/FWlib;../../src/StartUP/ing918;../../src/Tools;../../src + ../../bundles/exp/inc;../../bundles/exp/inc/os;../../src/BSP;../../src/FWlib;../../src/StartUP/ing918;../../src/Tools;../../src @@ -404,7 +404,7 @@ symdefs.m 3 - ..\..\bundles\typical\ING9187xx\symdefs.m + ..\..\bundles\exp\ING9187xx\symdefs.m @@ -451,6 +451,11 @@ Tools + + ing918_uecc.lib + 4 + ..\..\src\Tools\ing918_uecc.lib + att_db_util.c 1 @@ -476,6 +481,11 @@ 1 ..\..\src\Tools\malloc_override.c + + ecc_driver.c + 1 + ..\..\src\Tools\ecc_driver.c + diff --git a/examples/hid_keyboard/src/profile.c b/examples/hid_keyboard/src/profile.c index 6f54adf2a..16eb983b5 100644 --- a/examples/hid_keyboard/src/profile.c +++ b/examples/hid_keyboard/src/profile.c @@ -16,6 +16,7 @@ #include "gatt_client_util.h" #include "att_db_util.h" +#include "ecc_driver.h" #include "USBHID_Types.h" #include "USBKeyboard.h" @@ -669,6 +670,11 @@ static void sm_packet_handler(uint8_t packet_type, uint16_t channel, const uint8 input_number.flag = 1; input_number.cnt = 0; break; + case SM_EVENT_NUMERIC_COMPARISON_REQUEST: + platform_printf("NUMERIC_COMPARISON: %06d\n", + sm_event_numeric_comparison_get_compare_value(packet)); + sm_numeric_comparison_confirm(sm_event_numeric_comparison_get_handle(packet)); + break; case SM_EVENT_STATE_CHANGED: { const sm_event_state_changed_t *state_changed = decode_hci_event(packet, sm_event_state_changed_t); @@ -709,14 +715,15 @@ uint32_t setup_profile(void *data, void *user_data) { platform_printf("setup profile\n"); init_service(); + install_ecc_driver(); sm_add_event_handler(&sm_event_callback_registration); att_server_init(att_read_callback, att_write_callback); hci_event_callback_registration.callback = &user_packet_handler; hci_add_event_handler(&hci_event_callback_registration); att_server_register_packet_handler(&user_packet_handler); - sm_config(1, IO_CAPABILITY_KEYBOARD_ONLY, + sm_config(1, IO_CAPABILITY_KEYBOARD_DISPLAY, 0, &sm_persistent); - sm_set_authentication_requirements(SM_AUTHREQ_BONDING); + sm_set_authentication_requirements(SM_AUTHREQ_BONDING | SM_AUTHREQ_SC); return 0; } diff --git a/examples/mesh-light/mesh-light.ingw b/examples/mesh-light/mesh-light.ingw index 4e5001bb7..6ca028073 100644 --- a/examples/mesh-light/mesh-light.ingw +++ b/examples/mesh-light/mesh-light.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 141212, + "size": 141252, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 163840 }, "version": [ - 1,9,41] + 1,9,42] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/pairing_with_oob/README.md b/examples/pairing_with_oob/README.md index cca8440c4..56d7e18c7 100644 --- a/examples/pairing_with_oob/README.md +++ b/examples/pairing_with_oob/README.md @@ -1,5 +1,6 @@ # Pairing with OOB -This example demonstrates how to: +This example demonstrates how to do: -* Paring using OOB (out of band) data. \ No newline at end of file +* LE Legacy paring using OOB (out of band) data; +* LE Secure Connection paring using OOB data. \ No newline at end of file diff --git a/examples/pairing_with_oob/data/advertising_oob.adv b/examples/pairing_with_oob/data/advertising_oob.adv new file mode 100644 index 000000000..c9eae1c31 --- /dev/null +++ b/examples/pairing_with_oob/data/advertising_oob.adv @@ -0,0 +1,18 @@ +// 0x01 - «Flags» +2, 0x01, +0x06, + +// 0x09 - «Complete Local Name» +16, 0x09, +0x50, 0x61, 0x72, 0x69, 0x6E, 0x67, 0x20, 0x77, +0x69, 0x74, 0x68, 0x20, 0x4F, 0x4F, 0x42, + +// 0xFF - «Manufacturer Specific Data» +35, 0xFF, +0xAC, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, + +// Total size = 56 bytes diff --git a/examples/pairing_with_oob/data/advertising_oob.const b/examples/pairing_with_oob/data/advertising_oob.const new file mode 100644 index 000000000..12276e306 --- /dev/null +++ b/examples/pairing_with_oob/data/advertising_oob.const @@ -0,0 +1,4 @@ +#define ADVERTISING_OOB_ITEM_OFFSET_FLAGS 2 +#define ADVERTISING_OOB_ITEM_OFFSET_COMPLETE_LOCAL_NAME 5 +#define ADVERTISING_OOB_ITEM_OFFSET_MANUFACTURER_SPECIFIC_DATA 22 + diff --git a/examples/pairing_with_oob/data/advertising_oob.const.tmpl b/examples/pairing_with_oob/data/advertising_oob.const.tmpl new file mode 100644 index 000000000..de1b56375 --- /dev/null +++ b/examples/pairing_with_oob/data/advertising_oob.const.tmpl @@ -0,0 +1,2 @@ +{{loop adv_data_item}}#define {{adv_data_item.key:70}} {{adv_data_item.value}} +{{endloop}} diff --git a/examples/pairing_with_oob/doc/index.md b/examples/pairing_with_oob/doc/index.md index 982533d6f..db6a06724 100644 --- a/examples/pairing_with_oob/doc/index.md +++ b/examples/pairing_with_oob/doc/index.md @@ -5,4 +5,7 @@ Build this project twice with compiling switch `ROLE` set to `0` & `1` respectively, and download it two Dev-Boards. +To test LE Secure Connection pairing, define `LE_SECURE_CONNECTION_PAIRING`; to test +LE legacy pairing, do not define `LE_SECURE_CONNECTION_PAIRING`. + Check that those two Dev-Boards can be paired. \ No newline at end of file diff --git a/examples/pairing_with_oob/flash_download.ini b/examples/pairing_with_oob/flash_download.ini index abeef12bc..be61ebdf7 100644 --- a/examples/pairing_with_oob/flash_download.ini +++ b/examples/pairing_with_oob/flash_download.ini @@ -21,7 +21,7 @@ batch.limit=-1 [uart] Baud=921600 -Port=COM3 +Port=COM6 Parity= DataBits=8 StopBits=1 @@ -30,13 +30,13 @@ Timeout=10000 [bin-0] Name=Burn Bin #1 Checked=1 -FileName=../../bundles/typical/ING9187xx/platform.bin +FileName=../../bundles/exp/ING9187xx/platform.bin Address=16384 [bin-1] Name=Burn Bin #2 Checked=1 -Address=155648 +Address=172032 FileName=pairing_with_oob.bin [bin-2] diff --git a/examples/pairing_with_oob/pairing_with_oob.ingw b/examples/pairing_with_oob/pairing_with_oob.ingw index 0dff48664..64ef5d5ec 100644 --- a/examples/pairing_with_oob/pairing_with_oob.ingw +++ b/examples/pairing_with_oob/pairing_with_oob.ingw @@ -2,18 +2,18 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135796, + "size": 152040, "base": 16384 }, "ram": { - "size": 29876, + "size": 30268, "base": 536870912 }, "app": { - "base": 155648 + "base": 172032 }, "version": [ - 1,9,41] + 1,9,42] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", @@ -31,7 +31,7 @@ "enable_hci_log": false, "ota_ver_minor": "0", "ota_ver_major": "0", - "template": "C:\\projects\\ingchips\\ingWizard\\templates\\typical\\peripheral", + "template": "C:\\projects\\ingchips\\ingWizard\\templates\\exp\\peripheral", "coding_adv": false, "key_incode": true, "series": "ING9187xx", @@ -53,9 +53,9 @@ "heap_size": 0, "power_saving": false, "secondary": false, - "bundle": "typical", - "app_rom_size": "385024", - "app_rom_addr": "155648", + "bundle": "exp", + "app_rom_size": "368640", + "app_rom_addr": "172032", "family": "ing918", "vcode": false, "heap_override": false, @@ -76,8 +76,8 @@ "keil": true, "cmsis": "", "cube": true, - "app_ram_size": 35656, - "app_ram_addr": 536900792, + "app_ram_size": 35264, + "app_ram_addr": 536901184, "k5_cc_ver": "6", "printf_enable": true, "gatt_handle": { diff --git a/examples/pairing_with_oob/pairing_with_oob.uvopt b/examples/pairing_with_oob/pairing_with_oob.uvopt index 174aeea90..2f4a63fe9 100644 --- a/examples/pairing_with_oob/pairing_with_oob.uvopt +++ b/examples/pairing_with_oob/pairing_with_oob.uvopt @@ -71,7 +71,7 @@ 0 - 0 + 1 0 1 @@ -183,7 +183,7 @@ APP - 0 + 1 0 0 0 @@ -192,11 +192,11 @@ 1 1 0 - 1 + 0 57608268 0 0 - 5 + 0 0 .\src\main.c main.c @@ -208,17 +208,33 @@ 2 1 0 - 1 + 0 2 0 - 8 - 33 + 0 + 0 0 .\src\profile.c profile.c 0 0 + + 1 + 3 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\src\Tools\ing918_uecc.lib + ing918_uecc.lib + 0 + 0 + @@ -229,14 +245,14 @@ 0 2 - 3 + 4 2 0 - 1 + 0 57608268 0 0 - 5 + 0 0 .\src\startup_ing91800.s startup_ing91800.s @@ -245,16 +261,16 @@ 2 - 4 + 5 3 0 - 1 + 0 57608268 0 0 - 5 + 0 0 - ../..\bundles\typical\ING9187xx\symdefs.m + ../..\bundles\exp\ING9187xx\symdefs.m symdefs.m 0 0 @@ -269,14 +285,14 @@ 0 3 - 5 + 6 1 0 - 1 + 0 57608268 0 0 - 5 + 0 0 ../..\src\BSP\eflash.c eflash.c @@ -293,14 +309,14 @@ 0 4 - 6 + 7 1 0 - 1 + 0 57608268 0 0 - 5 + 0 0 ../..\src\FWlib\peripheral_adc.c peripheral_adc.c @@ -309,14 +325,14 @@ 4 - 7 + 8 1 0 - 1 + 0 57608268 0 0 - 5 + 0 0 ../..\src\FWlib\peripheral_gpio.c peripheral_gpio.c @@ -325,14 +341,14 @@ 4 - 8 + 9 1 0 - 1 + 0 57608268 0 0 - 5 + 0 0 ../..\src\FWlib\peripheral_i2c.c peripheral_i2c.c @@ -341,14 +357,14 @@ 4 - 9 + 10 1 0 - 1 + 0 57608268 0 0 - 5 + 0 0 ../..\src\FWlib\peripheral_pinctrl.c peripheral_pinctrl.c @@ -357,14 +373,14 @@ 4 - 10 + 11 1 0 - 1 + 0 57608268 0 0 - 5 + 0 0 ../..\src\FWlib\peripheral_pwm.c peripheral_pwm.c @@ -373,14 +389,14 @@ 4 - 11 + 12 1 0 - 1 + 0 57608268 0 0 - 5 + 0 0 ../..\src\FWlib\peripheral_rtc.c peripheral_rtc.c @@ -389,14 +405,14 @@ 4 - 12 + 13 1 0 - 1 + 0 57608268 0 0 - 5 + 0 0 ../..\src\FWlib\peripheral_ssp.c peripheral_ssp.c @@ -405,14 +421,14 @@ 4 - 13 + 14 1 0 - 1 + 0 57608268 0 0 - 5 + 0 0 ../..\src\FWlib\peripheral_sysctrl.c peripheral_sysctrl.c @@ -421,14 +437,14 @@ 4 - 14 + 15 1 0 - 1 + 0 57608268 0 0 - 5 + 0 0 ../..\src\FWlib\peripheral_timer.c peripheral_timer.c @@ -437,14 +453,14 @@ 4 - 15 + 16 1 0 - 1 + 0 57608268 0 0 - 5 + 0 0 ../..\src\FWlib\peripheral_uart.c peripheral_uart.c @@ -455,26 +471,58 @@ Tools - 0 + 1 0 0 0 5 - 16 + 17 1 0 - 1 + 0 57608268 0 0 - 5 + 0 0 ../..\src\Tools\trace.c trace.c 0 0 + + 5 + 18 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\src\Tools\ecc_driver.c + ecc_driver.c + 0 + 0 + + + 5 + 19 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\src\Tools\ad_parser.c + ad_parser.c + 0 + 0 + diff --git a/examples/pairing_with_oob/pairing_with_oob.uvoptx b/examples/pairing_with_oob/pairing_with_oob.uvoptx index e99baa4e0..81d656ac0 100644 --- a/examples/pairing_with_oob/pairing_with_oob.uvoptx +++ b/examples/pairing_with_oob/pairing_with_oob.uvoptx @@ -196,7 +196,7 @@ APP - 0 + 1 0 0 0 @@ -251,7 +251,7 @@ 0 0 0 - ../..\bundles\typical\ING9187xx\symdefs.m + ../..\bundles\exp\ING9187xx\symdefs.m symdefs.m 0 0 @@ -408,7 +408,7 @@ Tools - 0 + 1 0 0 0 @@ -424,6 +424,42 @@ 0 0 + + 5 + 17 + 1 + 0 + 0 + 0 + ..\..\src\Tools\ecc_driver.c + ecc_driver.c + 0 + 0 + + + 5 + 18 + 4 + 0 + 0 + 0 + ..\..\src\Tools\ing918_uecc.lib + ing918_uecc.lib + 0 + 0 + + + 5 + 19 + 1 + 0 + 0 + 0 + ..\..\src\Tools\ad_parser.c + ad_parser.c + 0 + 0 + diff --git a/examples/pairing_with_oob/pairing_with_oob.uvproj b/examples/pairing_with_oob/pairing_with_oob.uvproj index 5bca3d5c6..d903afa7f 100644 --- a/examples/pairing_with_oob/pairing_with_oob.uvproj +++ b/examples/pairing_with_oob/pairing_with_oob.uvproj @@ -294,8 +294,8 @@ 1 - 155648 - 385024 + 172032 + 368640 1 @@ -319,8 +319,8 @@ 0 - 536900792 - 35656 + 536901184 + 35264 0 @@ -348,7 +348,7 @@ --gnu USE_STDPERIPH_DRIVER,ROLE=1 - ../../bundles/typical/inc;../../bundles/typical/inc/os;../../src/BSP;../../src/FWlib;../../src/StartUP/ing918;../../src/Tools;../../src + ../../bundles/exp/inc;../../bundles/exp/inc/os;../../src/BSP;../../src/FWlib;../../src/StartUP/ing918;../../src/Tools;../../src @@ -399,6 +399,11 @@ 1 .\src\profile.c + + ing918_uecc.lib + 4 + ..\..\src\Tools\ing918_uecc.lib + @@ -412,7 +417,7 @@ symdefs.m 3 - ../..\bundles\typical\ING9187xx\symdefs.m + ../..\bundles\exp\ING9187xx\symdefs.m @@ -489,6 +494,16 @@ 1 ../..\src\Tools\trace.c + + ecc_driver.c + 1 + ..\..\src\Tools\ecc_driver.c + + + ad_parser.c + 1 + ..\..\src\Tools\ad_parser.c + diff --git a/examples/pairing_with_oob/pairing_with_oob.uvprojx b/examples/pairing_with_oob/pairing_with_oob.uvprojx index f2c2c7d98..2de1c83b1 100644 --- a/examples/pairing_with_oob/pairing_with_oob.uvprojx +++ b/examples/pairing_with_oob/pairing_with_oob.uvprojx @@ -273,8 +273,8 @@ 1 - 155648 - 385024 + 172032 + 368640 1 @@ -298,8 +298,8 @@ 0 - 536900792 - 35656 + 536901184 + 35264 0 @@ -337,7 +337,7 @@ USE_STDPERIPH_DRIVER, ROLE=1 - ../../bundles/typical/inc;../../bundles/typical/inc/os;../../src/BSP;../../src/FWlib;../../src/StartUP/ing918;../../src/Tools;../../src + ../../bundles/exp/inc;../../bundles/exp/inc/os;../../src/BSP;../../src/FWlib;../../src/StartUP/ing918;../../src/Tools;../../src @@ -404,7 +404,7 @@ symdefs.m 3 - ../..\bundles\typical\ING9187xx\symdefs.m + ../..\bundles\exp\ING9187xx\symdefs.m @@ -481,6 +481,21 @@ 1 ../..\src\Tools\trace.c + + ecc_driver.c + 1 + ..\..\src\Tools\ecc_driver.c + + + ing918_uecc.lib + 4 + ..\..\src\Tools\ing918_uecc.lib + + + ad_parser.c + 1 + ..\..\src\Tools\ad_parser.c + diff --git a/examples/pairing_with_oob/src/le_secure_pairing.c b/examples/pairing_with_oob/src/le_secure_pairing.c new file mode 100644 index 000000000..cf133c943 --- /dev/null +++ b/examples/pairing_with_oob/src/le_secure_pairing.c @@ -0,0 +1,383 @@ +#include +#include +#include "profile.h" +#include "platform_api.h" +#include "att_db.h" +#include "gap.h" +#include "btstack_event.h" +#include "btstack_defines.h" +#include "sm.h" +#include "gatt_client_util.h" +#include "ecc_driver.h" +#include "ad_parser.h" +#include "kv_storage.h" + +#define SLAVE_ADDR {0xFA, 0x69, 0x77, 0xCC, 0xC2, 0x7E} +#define MASTER_ADDR {0xFA, 0x69, 0x77, 0xCC, 0xC2, 0x7F} + +static uint8_t adv_data[] = { + #include "../data/advertising_oob.adv" +}; + +#include "../data/advertising_oob.const" + +#if (ROLE == HCI_ROLE_SLAVE) + +// GATT characteristic handles +#include "../data/gatt.const" + +const static uint8_t profile_data[] = { + #include "../data/gatt.profile" +}; + +static const sm_persistent_t sm_persistent = +{ + .er = {9, 1, 8}, + .ir = {9, 1, 6}, + .identity_addr_type = BD_ADDR_TYPE_LE_RANDOM, + .identity_addr = SLAVE_ADDR +}; + +static const bd_addr_t peer_addr = MASTER_ADDR; + +static uint16_t att_read_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t offset, + uint8_t * buffer, uint16_t buffer_size) +{ + switch (att_handle) + { + case HANDLE_GENERIC_INPUT: + if (buffer) + { + // add your code + return buffer_size; + } + else + return 1; // TODO: return required buffer size + + default: + return 0; + } +} + +static int att_write_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t transaction_mode, + uint16_t offset, const uint8_t *buffer, uint16_t buffer_size) +{ + switch (att_handle) + { + case HANDLE_GENERIC_INPUT: + // add your code + return 0; + + default: + return 0; + } +} + +#else + +static const sm_persistent_t sm_persistent = +{ + .er = {9, 1, 8}, + .ir = {9, 1, 6}, + .identity_addr_type = BD_ADDR_TYPE_LE_RANDOM, + .identity_addr = MASTER_ADDR +}; + +static const bd_addr_t peer_addr = SLAVE_ADDR; + +static struct gatt_client_discoverer *discoverer = NULL; + +#define iprintf platform_printf + +#include "gatt_client_util.c" + +#endif + +static void user_msg_handler(uint32_t msg_id, void *data, uint16_t size) +{ + switch (msg_id) + { + // add your code + //case MY_MESSAGE_ID: + // break; + default: + ; + } +} + +#if (ROLE == HCI_ROLE_SLAVE) + +#else + +static initiating_phy_config_t phy_configs[] = +{ + { + .phy = PHY_1M, + .conn_param = + { + .scan_int = 200, + .scan_win = 180, + .interval_min = 50, + .interval_max = 50, + .latency = 0, + .supervision_timeout = 600, + .min_ce_len = 90, + .max_ce_len = 90 + } + } +}; + +static void setup_initiating(void) +{ + gap_ext_create_connection(INITIATING_ADVERTISER_FROM_PARAM, // Initiator_Filter_Policy, + BD_ADDR_TYPE_LE_RANDOM, // Own_Address_Type, + BD_ADDR_TYPE_LE_RANDOM, // Peer_Address_Type, + peer_addr, // Peer_Address, + sizeof(phy_configs) / sizeof(phy_configs[0]), + phy_configs); +} +#endif + +const static ext_adv_set_en_t adv_sets_en[] = { {.handle = 0, .duration = 0, .max_events = 0} }; + +static void setup_adv(int connectable) +{ + platform_printf("start adv with OOB (DEMO only)\n"); + gap_set_adv_set_random_addr(0, sm_persistent.identity_addr); + gap_set_ext_adv_para(0, + connectable ? CONNECTABLE_ADV_BIT : 0, + 0x00a1, 0x00a1, // Primary_Advertising_Interval_Min, Primary_Advertising_Interval_Max + PRIMARY_ADV_ALL_CHANNELS, // Primary_Advertising_Channel_Map + BD_ADDR_TYPE_LE_RANDOM, // Own_Address_Type + BD_ADDR_TYPE_LE_PUBLIC, // Peer_Address_Type (ignore) + NULL, // Peer_Address (ignore) + ADV_FILTER_ALLOW_ALL, // Advertising_Filter_Policy + 0x00, // Advertising_Tx_Power + PHY_1M, // Primary_Advertising_PHY + 0, // Secondary_Advertising_Max_Skip + PHY_1M, // Secondary_Advertising_PHY + 0x00, // Advertising_SID + 0x00); // Scan_Request_Notification_Enable + gap_set_ext_adv_data(0, sizeof(adv_data), (uint8_t*)adv_data); + gap_set_ext_adv_enable(1, sizeof(adv_sets_en) / sizeof(adv_sets_en[0]), adv_sets_en); +} + +static struct +{ + sm_key_t confirm; + sm_key_t random; +} peer_oob_data; + +static uint8_t oob_received = 0; + +static int get_sc_oob_data_callback(uint8_t address_type, bd_addr_t addr, uint8_t *peer_confirm, uint8_t *peer_random) +{ + platform_printf("Getting OOB data...\n"); + + if (address_type != BD_ADDR_TYPE_LE_RANDOM) return 0; + if (memcmp(addr, peer_addr, BD_ADDR_LEN)) return 0; + memcpy(peer_confirm, peer_oob_data.confirm, sizeof(peer_oob_data.confirm)); + memcpy(peer_random, peer_oob_data.random, sizeof(peer_oob_data.random)); + return 1; +} + +static const scan_phy_config_t configs[2] = +{ + { + .phy = PHY_1M, + .type = SCAN_PASSIVE, + .interval = 200, + .window = 200 + }, +}; + +static void setup_scan(void) +{ + gap_add_whitelist(peer_addr, BD_ADDR_TYPE_LE_RANDOM); + gap_set_ext_scan_para(BD_ADDR_TYPE_LE_RANDOM, SCAN_ACCEPT_WLIST_EXCEPT_NOT_DIRECTED, + sizeof(configs) / sizeof(configs[0]), + configs); + gap_set_ext_scan_enable(1, 0, 0, 0); // start continuous scanning +} + +static void on_oob_data_generated(const uint8_t *confirm, const uint8_t *random) +{ + uint8_t *p = adv_data + ADVERTISING_OOB_ITEM_OFFSET_MANUFACTURER_SPECIFIC_DATA + 2; + memcpy(p, confirm, sizeof(sm_key_t)); + p += sizeof(sm_key_t); + memcpy(p, random, sizeof(sm_key_t)); + platform_printf("OOB:\n"); + printf_hexdump(adv_data + ADVERTISING_OOB_ITEM_OFFSET_MANUFACTURER_SPECIFIC_DATA + 2, 32); +#if (ROLE != HCI_ROLE_SLAVE) + setup_adv(0); +#endif + setup_scan(); +} + +static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uint8_t *packet, uint16_t size) +{ + uint8_t event = hci_event_packet_get_type(packet); + const btstack_user_msg_t *p_user_msg; + if (packet_type != HCI_EVENT_PACKET) return; + + switch (event) + { + case BTSTACK_EVENT_STATE: + if (btstack_event_state_get_state(packet) != HCI_STATE_WORKING) + break; + sm_sc_generate_oob_data(on_oob_data_generated); + gap_set_random_device_address(sm_persistent.identity_addr); + break; + + case HCI_EVENT_COMMAND_COMPLETE: + switch (hci_event_command_complete_get_command_opcode(packet)) + { + // add your code to check command complete response + // case : + // break; + default: + break; + } + break; + + case HCI_EVENT_LE_META: + switch (hci_event_le_meta_get_subevent_code(packet)) + { + case HCI_SUBEVENT_LE_EXTENDED_ADVERTISING_REPORT: + if (0 == oob_received) + { + uint16_t length = 0; + const le_ext_adv_report_t *report = decode_hci_le_meta_event(packet, le_meta_event_ext_adv_report_t)->reports; + + const uint8_t *p = ad_data_from_type(report->data_len, (uint8_t *)report->data, 0xff, &length); + if (length != sizeof(peer_oob_data) + 2) + break; + oob_received = 1; + platform_printf("OOB data received.\n"); + memcpy(&peer_oob_data, p + 2, sizeof(peer_oob_data)); + printf_hexdump(&peer_oob_data, sizeof(peer_oob_data)); + gap_set_ext_scan_enable(0, 0, 0, 0); +#if (ROLE == HCI_ROLE_SLAVE) + // when slave received OOB, it starts boardcasting OOB + setup_adv(1); +#else + // when master received OOB means that slave had received OOB, too. + gap_set_ext_adv_enable(0, sizeof(adv_sets_en) / sizeof(adv_sets_en[0]), adv_sets_en); + setup_initiating(); +#endif + } + break; + + case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE: + { + const le_meta_event_enh_create_conn_complete_t *complete = + decode_hci_le_meta_event(packet, le_meta_event_enh_create_conn_complete_t); + platform_printf("connected: %d\n", complete->status); +#if (ROLE == HCI_ROLE_SLAVE) + att_set_db(complete->handle, profile_data); + sm_request_pairing(complete->handle); +#else + if (complete->status == 0) + { + if (discoverer) gatt_client_util_free(discoverer); + discoverer = gatt_client_util_discover_all(complete->handle, + gatt_client_util_dump_profile, + NULL); + } + else + { + setup_initiating(); + } +#endif + } + break; + default: + break; + } + + break; + + case HCI_EVENT_DISCONNECTION_COMPLETE: +#if (ROLE == HCI_ROLE_SLAVE) + gap_set_ext_adv_enable(1, sizeof(adv_sets_en) / sizeof(adv_sets_en[0]), adv_sets_en); +#else + setup_initiating(); +#endif + break; + + case ATT_EVENT_CAN_SEND_NOW: + // add your code + break; + + case BTSTACK_EVENT_USER_MSG: + p_user_msg = hci_event_packet_get_user_msg(packet); + user_msg_handler(p_user_msg->msg_id, p_user_msg->data, p_user_msg->len); + break; + + default: + break; + } +} + +static void sm_packet_handler(uint8_t packet_type, uint16_t channel, const uint8_t *packet, uint16_t size) +{ + uint8_t event = hci_event_packet_get_type(packet); + + if (packet_type != HCI_EVENT_PACKET) return; + + switch (event) + { + case SM_EVENT_JUST_WORKS_REQUEST: + platform_printf("JUST_WORKS? NO.\n"); + sm_bonding_decline(sm_event_just_works_request_get_handle(packet)); + break; + case SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED: + break; + case SM_EVENT_PASSKEY_INPUT_NUMBER: + break; + case SM_EVENT_STATE_CHANGED: + { + const sm_event_state_changed_t *state_changed = decode_hci_event(packet, sm_event_state_changed_t); + switch (state_changed->reason) + { + case SM_STARTED: + platform_printf("SM: STARTED\n"); + break; + case SM_FINAL_PAIRED: + platform_printf("SM: PAIRED\n"); + break; + case SM_FINAL_REESTABLISHED: + platform_printf("SM: REESTABLISHED\n"); + break; + default: + platform_printf("SM: FINAL ERROR: %d\n", state_changed->reason); + break; + } + } + break; + default: + break; + } +} + +static btstack_packet_callback_registration_t sm_event_callback_registration = {.callback = &sm_packet_handler}; +static btstack_packet_callback_registration_t hci_event_callback_registration; + +uint32_t setup_profile(void *data, void *user_data) +{ + install_ecc_driver(); + platform_printf("setup %s\n", ROLE == HCI_ROLE_SLAVE ? "SLAVE" : "MASTER"); + sm_add_event_handler(&sm_event_callback_registration); + hci_event_callback_registration.callback = &user_packet_handler; + hci_add_event_handler(&hci_event_callback_registration); + att_server_register_packet_handler(&user_packet_handler); + sm_config(1, IO_CAPABILITY_NO_INPUT_NO_OUTPUT, + 0, + &sm_persistent); + sm_set_authentication_requirements(SM_AUTHREQ_BONDING | SM_AUTHREQ_SC); +#if (ROLE == HCI_ROLE_SLAVE) + att_server_init(att_read_callback, att_write_callback); +#endif + sm_register_sc_oob_data_callback(get_sc_oob_data_callback); + return 0; +} diff --git a/examples/pairing_with_oob/src/legacy_pairing.c b/examples/pairing_with_oob/src/legacy_pairing.c new file mode 100644 index 000000000..0e9b58359 --- /dev/null +++ b/examples/pairing_with_oob/src/legacy_pairing.c @@ -0,0 +1,320 @@ +#include +#include +#include "profile.h" +#include "platform_api.h" +#include "att_db.h" +#include "gap.h" +#include "btstack_event.h" +#include "btstack_defines.h" +#include "sm.h" +#include "gatt_client_util.h" + +#define SLAVE_ADDR {0xFA, 0x69, 0x77, 0xCC, 0xC2, 0x7E} + +#if (ROLE == HCI_ROLE_SLAVE) + +// GATT characteristic handles +#include "../data/gatt.const" + +const static uint8_t adv_data[] = { + #include "../data/advertising.adv" +}; + +#include "../data/advertising.const" + +const static uint8_t scan_data[] = { + #include "../data/scan_response.adv" +}; + +#include "../data/scan_response.const" + +const static uint8_t profile_data[] = { + #include "../data/gatt.profile" +}; + +const sm_persistent_t sm_persistent = +{ + .er = {9, 1, 8}, + .ir = {9, 1, 6}, + .identity_addr_type = BD_ADDR_TYPE_LE_RANDOM, + .identity_addr = SLAVE_ADDR +}; + +static uint16_t att_read_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t offset, + uint8_t * buffer, uint16_t buffer_size) +{ + switch (att_handle) + { + case HANDLE_GENERIC_INPUT: + if (buffer) + { + // add your code + return buffer_size; + } + else + return 1; // TODO: return required buffer size + + default: + return 0; + } +} + +static int att_write_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t transaction_mode, + uint16_t offset, const uint8_t *buffer, uint16_t buffer_size) +{ + switch (att_handle) + { + case HANDLE_GENERIC_INPUT: + // add your code + return 0; + + default: + return 0; + } +} + +#else + +const sm_persistent_t sm_persistent = +{ + .er = {9, 1, 8}, + .ir = {9, 1, 6}, + .identity_addr_type = BD_ADDR_TYPE_LE_RANDOM, + .identity_addr = {0xFA, 0x69, 0x77, 0xCC, 0xC2, 0x7F} +}; + +static const bd_addr_t peer_addr = SLAVE_ADDR; + +static struct gatt_client_discoverer *discoverer = NULL; + +#define iprintf platform_printf + +#include "gatt_client_util.c" + +#endif + +static void user_msg_handler(uint32_t msg_id, void *data, uint16_t size) +{ + switch (msg_id) + { + // add your code + //case MY_MESSAGE_ID: + // break; + default: + ; + } +} + +#if (ROLE == HCI_ROLE_SLAVE) + +const static ext_adv_set_en_t adv_sets_en[] = { {.handle = 0, .duration = 0, .max_events = 0} }; + +static void setup_adv(void) +{ + gap_set_adv_set_random_addr(0, sm_persistent.identity_addr); + gap_set_ext_adv_para(0, + CONNECTABLE_ADV_BIT | SCANNABLE_ADV_BIT | LEGACY_PDU_BIT, + 0x00a1, 0x00a1, // Primary_Advertising_Interval_Min, Primary_Advertising_Interval_Max + PRIMARY_ADV_ALL_CHANNELS, // Primary_Advertising_Channel_Map + BD_ADDR_TYPE_LE_RANDOM, // Own_Address_Type + BD_ADDR_TYPE_LE_PUBLIC, // Peer_Address_Type (ignore) + NULL, // Peer_Address (ignore) + ADV_FILTER_ALLOW_ALL, // Advertising_Filter_Policy + 0x00, // Advertising_Tx_Power + PHY_1M, // Primary_Advertising_PHY + 0, // Secondary_Advertising_Max_Skip + PHY_1M, // Secondary_Advertising_PHY + 0x00, // Advertising_SID + 0x00); // Scan_Request_Notification_Enable + gap_set_ext_adv_data(0, sizeof(adv_data), (uint8_t*)adv_data); + gap_set_ext_scan_response_data(0, sizeof(scan_data), (uint8_t*)scan_data); + gap_set_ext_adv_enable(1, sizeof(adv_sets_en) / sizeof(adv_sets_en[0]), adv_sets_en); +} + +#else + +static initiating_phy_config_t phy_configs[] = +{ + { + .phy = PHY_1M, + .conn_param = + { + .scan_int = 200, + .scan_win = 180, + .interval_min = 50, + .interval_max = 50, + .latency = 0, + .supervision_timeout = 600, + .min_ce_len = 90, + .max_ce_len = 90 + } + } +}; + +static void setup_initiating(void) +{ + gap_set_random_device_address(sm_persistent.identity_addr); + gap_ext_create_connection(INITIATING_ADVERTISER_FROM_PARAM, // Initiator_Filter_Policy, + BD_ADDR_TYPE_LE_RANDOM, // Own_Address_Type, + BD_ADDR_TYPE_LE_RANDOM, // Peer_Address_Type, + peer_addr, // Peer_Address, + sizeof(phy_configs) / sizeof(phy_configs[0]), + phy_configs); +} +#endif + +static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uint8_t *packet, uint16_t size) +{ + uint8_t event = hci_event_packet_get_type(packet); + const btstack_user_msg_t *p_user_msg; + if (packet_type != HCI_EVENT_PACKET) return; + + switch (event) + { + case BTSTACK_EVENT_STATE: + if (btstack_event_state_get_state(packet) != HCI_STATE_WORKING) + break; +#if (ROLE == HCI_ROLE_SLAVE) + setup_adv(); +#else + setup_initiating(); +#endif + break; + + case HCI_EVENT_COMMAND_COMPLETE: + switch (hci_event_command_complete_get_command_opcode(packet)) + { + // add your code to check command complete response + // case : + // break; + default: + break; + } + break; + + case HCI_EVENT_LE_META: + switch (hci_event_le_meta_get_subevent_code(packet)) + { + case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE: + { + const le_meta_event_enh_create_conn_complete_t *complete = + decode_hci_le_meta_event(packet, le_meta_event_enh_create_conn_complete_t); + platform_printf("connected: %d\n", complete->status); +#if (ROLE == HCI_ROLE_SLAVE) + att_set_db(complete->handle, profile_data); + sm_request_pairing(complete->handle); +#else + if (complete->status == 0) + { + if (discoverer) gatt_client_util_free(discoverer); + discoverer = gatt_client_util_discover_all(complete->handle, + gatt_client_util_dump_profile, + NULL); + } + else + { + setup_initiating(); + } +#endif + } + break; + default: + break; + } + + break; + + case HCI_EVENT_DISCONNECTION_COMPLETE: +#if (ROLE == HCI_ROLE_SLAVE) + gap_set_ext_adv_enable(1, sizeof(adv_sets_en) / sizeof(adv_sets_en[0]), adv_sets_en); +#else + setup_initiating(); +#endif + break; + + case ATT_EVENT_CAN_SEND_NOW: + // add your code + break; + + case BTSTACK_EVENT_USER_MSG: + p_user_msg = hci_event_packet_get_user_msg(packet); + user_msg_handler(p_user_msg->msg_id, p_user_msg->data, p_user_msg->len); + break; + + default: + break; + } +} + +static void sm_packet_handler(uint8_t packet_type, uint16_t channel, const uint8_t *packet, uint16_t size) +{ + uint8_t event = hci_event_packet_get_type(packet); + + if (packet_type != HCI_EVENT_PACKET) return; + + switch (event) + { + case SM_EVENT_JUST_WORKS_REQUEST: + platform_printf("JUST_WORKS?\n"); + sm_bonding_decline(sm_event_just_works_request_get_handle(packet)); + break; + case SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED: + break; + case SM_EVENT_PASSKEY_INPUT_NUMBER: + break; + case SM_EVENT_STATE_CHANGED: + { + const sm_event_state_changed_t *state_changed = decode_hci_event(packet, sm_event_state_changed_t); + switch (state_changed->reason) + { + case SM_STARTED: + platform_printf("SM: STARTED\n"); + break; + case SM_FINAL_PAIRED: + platform_printf("SM: PAIRED\n"); + break; + case SM_FINAL_REESTABLISHED: + platform_printf("SM: REESTABLISHED\n"); + break; + default: + platform_printf("SM: FINAL ERROR: %d\n", state_changed->reason); + break; + } + } + break; + default: + break; + } +} + +static btstack_packet_callback_registration_t sm_event_callback_registration = {.callback = &sm_packet_handler}; +static btstack_packet_callback_registration_t hci_event_callback_registration; + +static int get_oob_data_callback(uint8_t addres_type, bd_addr_t addr, uint8_t * oob_data) +{ + // random OOB data + const static sm_key_t _oob_data = { + 52, 29, 200, 119, 171, 76, 33, 1, 56, 153, 91, 155, 26, 42, 243, 57 + }; + platform_printf("get_oob\n"); + memcpy(oob_data, _oob_data, sizeof(_oob_data)); + return 1; +} + +uint32_t setup_profile(void *data, void *user_data) +{ + platform_printf("setup profile\n"); + sm_add_event_handler(&sm_event_callback_registration); +#if (ROLE == HCI_ROLE_SLAVE) + att_server_init(att_read_callback, att_write_callback); +#endif + hci_event_callback_registration.callback = &user_packet_handler; + hci_add_event_handler(&hci_event_callback_registration); + att_server_register_packet_handler(&user_packet_handler); + sm_config(1, IO_CAPABILITY_NO_INPUT_NO_OUTPUT, + 0, + &sm_persistent); + sm_set_authentication_requirements(SM_AUTHREQ_BONDING); + sm_register_oob_data_callback(get_oob_data_callback); + return 0; +} diff --git a/examples/pairing_with_oob/src/profile.c b/examples/pairing_with_oob/src/profile.c index 21260b0ce..4e03aabed 100644 --- a/examples/pairing_with_oob/src/profile.c +++ b/examples/pairing_with_oob/src/profile.c @@ -1,320 +1,5 @@ -#include -#include -#include "profile.h" -#include "platform_api.h" -#include "att_db.h" -#include "gap.h" -#include "btstack_event.h" -#include "btstack_defines.h" -#include "sm.h" -#include "gatt_client_util.h" - -#define SLAVE_ADDR {0xFA, 0x69, 0x77, 0xCC, 0xC2, 0x7E} - -#if (ROLE == HCI_ROLE_SLAVE) - -// GATT characteristic handles -#include "../data/gatt.const" - -const static uint8_t adv_data[] = { - #include "../data/advertising.adv" -}; - -#include "../data/advertising.const" - -const static uint8_t scan_data[] = { - #include "../data/scan_response.adv" -}; - -#include "../data/scan_response.const" - -const static uint8_t profile_data[] = { - #include "../data/gatt.profile" -}; - -const sm_persistent_t sm_persistent = -{ - .er = {9, 1, 8}, - .ir = {9, 1, 6}, - .identity_addr_type = BD_ADDR_TYPE_LE_RANDOM, - .identity_addr = SLAVE_ADDR -}; - -static uint16_t att_read_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t offset, - uint8_t * buffer, uint16_t buffer_size) -{ - switch (att_handle) - { - case HANDLE_GENERIC_INPUT: - if (buffer) - { - // add your code - return buffer_size; - } - else - return 1; // TODO: return required buffer size - - default: - return 0; - } -} - -static int att_write_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t transaction_mode, - uint16_t offset, const uint8_t *buffer, uint16_t buffer_size) -{ - switch (att_handle) - { - case HANDLE_GENERIC_INPUT: - // add your code - return 0; - - default: - return 0; - } -} - +#ifdef LE_SECURE_CONNECTION_PAIRING +#include "le_secure_pairing.c" #else - -const sm_persistent_t sm_persistent = -{ - .er = {9, 1, 8}, - .ir = {9, 1, 6}, - .identity_addr_type = BD_ADDR_TYPE_LE_RANDOM, - .identity_addr = {0xFA, 0x69, 0x77, 0xCC, 0xC2, 0x7F} -}; - -static const bd_addr_t peer_addr = SLAVE_ADDR; - -static struct gatt_client_discoverer *discoverer = NULL; - -#define iprintf platform_printf - -#include "gatt_client_util.c" - +#include "legacy_pairing.c" #endif - -static void user_msg_handler(uint32_t msg_id, void *data, uint16_t size) -{ - switch (msg_id) - { - // add your code - //case MY_MESSAGE_ID: - // break; - default: - ; - } -} - -#if (ROLE == HCI_ROLE_SLAVE) - -const static ext_adv_set_en_t adv_sets_en[] = { {.handle = 0, .duration = 0, .max_events = 0} }; - -static void setup_adv(void) -{ - gap_set_adv_set_random_addr(0, sm_persistent.identity_addr); - gap_set_ext_adv_para(0, - CONNECTABLE_ADV_BIT | SCANNABLE_ADV_BIT | LEGACY_PDU_BIT, - 0x00a1, 0x00a1, // Primary_Advertising_Interval_Min, Primary_Advertising_Interval_Max - PRIMARY_ADV_ALL_CHANNELS, // Primary_Advertising_Channel_Map - BD_ADDR_TYPE_LE_RANDOM, // Own_Address_Type - BD_ADDR_TYPE_LE_PUBLIC, // Peer_Address_Type (ignore) - NULL, // Peer_Address (ignore) - ADV_FILTER_ALLOW_ALL, // Advertising_Filter_Policy - 0x00, // Advertising_Tx_Power - PHY_1M, // Primary_Advertising_PHY - 0, // Secondary_Advertising_Max_Skip - PHY_1M, // Secondary_Advertising_PHY - 0x00, // Advertising_SID - 0x00); // Scan_Request_Notification_Enable - gap_set_ext_adv_data(0, sizeof(adv_data), (uint8_t*)adv_data); - gap_set_ext_scan_response_data(0, sizeof(scan_data), (uint8_t*)scan_data); - gap_set_ext_adv_enable(1, sizeof(adv_sets_en) / sizeof(adv_sets_en[0]), adv_sets_en); -} - -#else - -static initiating_phy_config_t phy_configs[] = -{ - { - .phy = PHY_1M, - .conn_param = - { - .scan_int = 200, - .scan_win = 180, - .interval_min = 50, - .interval_max = 50, - .latency = 0, - .supervision_timeout = 600, - .min_ce_len = 90, - .max_ce_len = 90 - } - } -}; - -static void setup_initiating(void) -{ - gap_set_random_device_address(sm_persistent.identity_addr); - gap_ext_create_connection(INITIATING_ADVERTISER_FROM_PARAM, // Initiator_Filter_Policy, - BD_ADDR_TYPE_LE_RANDOM, // Own_Address_Type, - BD_ADDR_TYPE_LE_RANDOM, // Peer_Address_Type, - peer_addr, // Peer_Address, - sizeof(phy_configs) / sizeof(phy_configs[0]), - phy_configs); -} -#endif - -static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uint8_t *packet, uint16_t size) -{ - uint8_t event = hci_event_packet_get_type(packet); - const btstack_user_msg_t *p_user_msg; - if (packet_type != HCI_EVENT_PACKET) return; - - switch (event) - { - case BTSTACK_EVENT_STATE: - if (btstack_event_state_get_state(packet) != HCI_STATE_WORKING) - break; -#if (ROLE == HCI_ROLE_SLAVE) - setup_adv(); -#else - setup_initiating(); -#endif - break; - - case HCI_EVENT_COMMAND_COMPLETE: - switch (hci_event_command_complete_get_command_opcode(packet)) - { - // add your code to check command complete response - // case : - // break; - default: - break; - } - break; - - case HCI_EVENT_LE_META: - switch (hci_event_le_meta_get_subevent_code(packet)) - { - case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE: - { - const le_meta_event_enh_create_conn_complete_t *complete = - decode_hci_le_meta_event(packet, le_meta_event_enh_create_conn_complete_t); - platform_printf("connected: %d\n", complete->status); -#if (ROLE == HCI_ROLE_SLAVE) - att_set_db(complete->handle, profile_data); - sm_request_pairing(complete->handle); -#else - if (complete->status == 0) - { - if (discoverer) gatt_client_util_free(discoverer); - discoverer = gatt_client_util_discover_all(complete->handle, - gatt_client_util_dump_profile, - NULL); - } - else - { - setup_initiating(); - } -#endif - } - break; - default: - break; - } - - break; - - case HCI_EVENT_DISCONNECTION_COMPLETE: -#if (ROLE == HCI_ROLE_SLAVE) - gap_set_ext_adv_enable(1, sizeof(adv_sets_en) / sizeof(adv_sets_en[0]), adv_sets_en); -#else - setup_initiating(); -#endif - break; - - case ATT_EVENT_CAN_SEND_NOW: - // add your code - break; - - case BTSTACK_EVENT_USER_MSG: - p_user_msg = hci_event_packet_get_user_msg(packet); - user_msg_handler(p_user_msg->msg_id, p_user_msg->data, p_user_msg->len); - break; - - default: - break; - } -} - -static void sm_packet_handler(uint8_t packet_type, uint16_t channel, const uint8_t *packet, uint16_t size) -{ - uint8_t event = hci_event_packet_get_type(packet); - - if (packet_type != HCI_EVENT_PACKET) return; - - switch (event) - { - case SM_EVENT_JUST_WORKS_REQUEST: - platform_printf("JUST_WORKS?\n"); - sm_bonding_decline(sm_event_just_works_request_get_handle(packet)); - break; - case SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED: - break; - case SM_EVENT_PASSKEY_INPUT_NUMBER: - break; - case SM_EVENT_STATE_CHANGED: - { - const sm_event_state_changed_t *state_changed = decode_hci_event(packet, sm_event_state_changed_t); - switch (state_changed->reason) - { - case SM_STARTED: - platform_printf("SM: STARTED\n"); - break; - case SM_FINAL_PAIRED: - platform_printf("SM: PAIRED\n"); - break; - case SM_FINAL_REESTABLISHED: - platform_printf("SM: REESTABLISHED\n"); - break; - default: - platform_printf("SM: FINAL ERROR: %d\n", state_changed->reason); - break; - } - } - break; - default: - break; - } -} - -static btstack_packet_callback_registration_t sm_event_callback_registration = {.callback = &sm_packet_handler}; -static btstack_packet_callback_registration_t hci_event_callback_registration; - -static int get_oob_data_callback(uint8_t addres_type, bd_addr_t addr, uint8_t * oob_data) -{ - // random OOB data - const static sm_key_t _oob_data = { - 52, 29, 200, 119, 171, 76, 33, 1, 56, 153, 91, 155, 26, 42, 243, 57 - }; - platform_printf("get_oob\n"); - memcpy(oob_data, _oob_data, sizeof(_oob_data)); - return 1; -} - -uint32_t setup_profile(void *data, void *user_data) -{ - platform_printf("setup profile\n"); - sm_add_event_handler(&sm_event_callback_registration); -#if (ROLE == HCI_ROLE_SLAVE) - att_server_init(att_read_callback, att_write_callback); -#endif - hci_event_callback_registration.callback = &user_packet_handler; - hci_add_event_handler(&hci_event_callback_registration); - att_server_register_packet_handler(&user_packet_handler); - sm_config(1, IO_CAPABILITY_NO_INPUT_NO_OUTPUT, - 0, - &sm_persistent); - sm_set_authentication_requirements(SM_AUTHREQ_BONDING); - sm_register_oob_data_callback(get_oob_data_callback); - return 0; -} diff --git a/examples/pawr/flash_download.ini b/examples/pawr/flash_download.ini index a71e8331b..10b8cbd19 100644 --- a/examples/pawr/flash_download.ini +++ b/examples/pawr/flash_download.ini @@ -28,7 +28,7 @@ Timeout=10000 [bin-0] Name=Burn Bin #1 -Checked=0 +Checked=1 FileName=../../bundles/exp/ING9168xx/platform.bin Address=33562624 diff --git a/examples/pawr/pawr.ingw b/examples/pawr/pawr.ingw index f885b6cd8..2b3187c34 100644 --- a/examples/pawr/pawr.ingw +++ b/examples/pawr/pawr.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 177740, + "size": 177776, "base": 33562624 }, "ram": { @@ -13,7 +13,7 @@ "base": 33742848 }, "version": [ - 2,3,2] + 2,3,3] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/uart_console/uart_console.ingw b/examples/uart_console/uart_console.ingw index aca6580e7..0cf23d5a7 100644 --- a/examples/uart_console/uart_console.ingw +++ b/examples/uart_console/uart_console.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 151996, + "size": 152040, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 172032 }, "version": [ - 1,9,41] + 1,9,42] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/src/Tools/ecc_driver.c b/src/Tools/ecc_driver.c new file mode 100644 index 000000000..89ce181ab --- /dev/null +++ b/src/Tools/ecc_driver.c @@ -0,0 +1,127 @@ +#include +#include +#include "platform_api.h" + +#include "port_gen_os_driver.h" + +#define GEN_OS ((const gen_os_driver_t *)platform_get_gen_os_driver()) + +#include "ing_uecc.h" + +#define CURVE uECC_secp256r1() + +// See BLUETOOTH CORE SPECIFICATION Version 5.4 | Vol 3, Part H +// 2.3.5.6 LE Secure Connections pairing phase 2 + +// When the Security Manager is placed in a Debug mode it shall use the +// following Diffie-Hellman private / public key pair: +// Private key: 3f49f6d4 a3c55f38 74c9b3e3 d2103f50 4aff607b eb40b799 +// 5899b8a6 cd3c1abd +// Public key (X): 20b003d2 f297be2c 5e2c83a7 e9f9a5b9 eff49111 acf4fddb +// cc030148 0e359de6 +// Public key (Y): dc809c49 652aeb6d 63329abf 5a52155c 766345c2 8fed3024 +// 741c8ed0 1589d28b + +const static uint8_t debug_sk[32] = +{ + 0x3f, 0x49, 0xf6, 0xd4, 0xa3, 0xc5, 0x5f, 0x38, 0x74, 0xc9, 0xb3, 0xe3, 0xd2, + 0x10, 0x3f, 0x50, 0x4a, 0xff, 0x60, 0x7b, 0xeb, 0x40, 0xb7, 0x99, 0x58, 0x99, + 0xb8, 0xa6, 0xcd, 0x3c, 0x1a, 0xbd +}; + +/* +const static uint8_t debug_pk[32 * 2] = +{ + 0x20, 0xb0, 0x03, 0xd2, 0xf2, 0x97, 0xbe, 0x2c, + 0x5e, 0x2c, 0x83, 0xa7, 0xe9, 0xf9, 0xa5, 0xb9, + 0xef, 0xf4, 0x91, 0x11, 0xac, 0xf4, 0xfd, 0xdb, + 0xcc, 0x03, 0x01, 0x48, 0x0e, 0x35, 0x9d, 0xe6, + 0xdc, 0x80, 0x9c, 0x49, 0x65, 0x2a, 0xeb, 0x6d, + 0x63, 0x32, 0x9a, 0xbf, 0x5a, 0x52, 0x15, 0x5c, + 0x76, 0x63, 0x45, 0xc2, 0x8f, 0xed, 0x30, 0x24, + 0x74, 0x1c, 0x8e, 0xd0, 0x15, 0x89, 0xd2, 0x8b +}; +*/ + +struct ecc_keys +{ + gen_handle_t cmd_queue_handle; + uint8_t key_type; + + uint8_t sk[32]; + uint8_t pk[64]; + uint8_t peer_pk[64]; + uint8_t dh_sk[32]; +} ecc_keys = {0}; + +typedef uint8_t ecc_msg_t; + +enum ecc_cmd +{ + ECC_GEN_KEY_PAIR, + ECC_GEN_DHKEY, +}; + +int ecc_rng(uint8_t *dest, unsigned size) +{ + platform_hrng(dest, size); + return 1; +} + +static void ecc_task(void *param) +{ + ecc_msg_t msg; + int r; + for (;;) + { + if (GEN_OS->queue_recv_msg(ecc_keys.cmd_queue_handle, &msg) != 0) + continue; + + switch (msg) + { + case ECC_GEN_KEY_PAIR: + r = uECC_make_key(ecc_keys.pk, ecc_keys.sk, CURVE); + ll_p256_key_pair_generated(r ? 0 : 1, ecc_keys.pk); + break; + case ECC_GEN_DHKEY: + r = uECC_shared_secret(ecc_keys.peer_pk, + ecc_keys.key_type == 0 ? ecc_keys.sk : debug_sk, + ecc_keys.dh_sk, CURVE); + ll_dhkey_generated(r ? 0 : 1, ecc_keys.dh_sk); + break; + } + } +} + +static void start_generate_p256_key_pair(void) +{ + ecc_msg_t msg = ECC_GEN_KEY_PAIR; + GEN_OS->queue_send_msg(ecc_keys.cmd_queue_handle, &msg); +} + +static int start_generate_dhkey(int key_type, const uint8_t *remote_pub_key) +{ + if (uECC_valid_public_key(remote_pub_key, CURVE)) + { + ecc_msg_t msg = ECC_GEN_DHKEY; + ecc_keys.key_type = key_type; + memcpy(ecc_keys.peer_pk, remote_pub_key, sizeof(ecc_keys.peer_pk)); + GEN_OS->queue_send_msg(ecc_keys.cmd_queue_handle, &msg); + return 0; + } + else + return 0x12; // Invalid HCI Command Parameters +} + +void install_ecc_driver(void) +{ + ecc_keys.cmd_queue_handle = GEN_OS->queue_create(1, sizeof(ecc_msg_t)); + + uECC_set_rng(ecc_rng); + ll_install_ecc_engine(start_generate_p256_key_pair, start_generate_dhkey); + GEN_OS->task_create("ecc", + ecc_task, + NULL, + 256 * 4, + GEN_TASK_PRIORITY_LOW); +} diff --git a/src/Tools/ecc_driver.h b/src/Tools/ecc_driver.h new file mode 100644 index 000000000..d2281817e --- /dev/null +++ b/src/Tools/ecc_driver.h @@ -0,0 +1,20 @@ +#ifndef _ecc_driver_h +#define _ecc_driver_h + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Install a software-implemented ECC engine for Link Layer + * + * This is used for LE Secure Connection pairing. + * +*/ +void install_ecc_driver(void); + +#ifdef __cplusplus +} +#endif + +#endif From f6ccf2256bd2b326e832ccbdd4d41d691c264a70 Mon Sep 17 00:00:00 2001 From: zjli2019 Date: Tue, 28 Nov 2023 10:00:50 +0800 Subject: [PATCH 13/13] rebuild exp bundles: accept ENH_CONN_CMPL_V2 event --- bundles/exp/ING9168xx/apis.json | 778 +++++++++--------- bundles/exp/ING9168xx/meta.json | 4 +- bundles/exp/ING9168xx/platform.bin | Bin 177776 -> 177784 bytes bundles/exp/ING9187xx/apis.json | 720 ++++++++-------- bundles/exp/ING9187xx/meta.json | 4 +- bundles/exp/ING9187xx/platform.bin | Bin 152040 -> 152044 bytes bundles/exp/ING9188xx/apis.json | 758 ++++++++--------- bundles/exp/ING9188xx/meta.json | 2 +- bundles/exp/ING9188xx/platform.bin | Bin 158956 -> 158956 bytes bundles/noos_exp/ING9168xx/apis.json | 620 +++++++------- bundles/noos_exp/ING9168xx/meta.json | 4 +- bundles/noos_exp/ING9168xx/platform.bin | Bin 166912 -> 166920 bytes bundles/noos_exp/ING9187xx/apis.json | 562 ++++++------- bundles/noos_exp/ING9187xx/meta.json | 4 +- bundles/noos_exp/ING9187xx/platform.bin | Bin 141252 -> 141260 bytes bundles/noos_exp/ING9188xx/apis.json | 600 +++++++------- bundles/noos_exp/ING9188xx/meta.json | 4 +- bundles/noos_exp/ING9188xx/platform.bin | Bin 148164 -> 148176 bytes .../peripheral_ibeacon/generic_cortex.icf | 6 +- examples/direct_conn/direct_conn.ingw | 4 +- examples/direct_conn/src/profile.c | 1 + examples/hid_keyboard/hid_keyboard.ingw | 4 +- examples/hid_keyboard/hid_keyboard.uvproj | 116 ++- examples/hid_keyboard/src/profile.c | 1 + examples/mesh-light/mesh-light.ingw | 4 +- examples/mesh-light/src/ble_status.c | 3 +- examples/mesh-light/src/mesh_profile.c | 3 +- .../pairing_with_oob/pairing_with_oob.ingw | 4 +- .../pairing_with_oob/src/le_secure_pairing.c | 1 + .../pairing_with_oob/src/legacy_pairing.c | 1 + examples/pawr/pawr.ingw | 4 +- examples/uart_console/src/profile.c | 1 + examples/uart_console/uart_console.ingw | 4 +- 33 files changed, 2110 insertions(+), 2107 deletions(-) diff --git a/bundles/exp/ING9168xx/apis.json b/bundles/exp/ING9168xx/apis.json index 5cd0b4f73..64ffd4fb4 100644 --- a/bundles/exp/ING9168xx/apis.json +++ b/bundles/exp/ING9168xx/apis.json @@ -6,394 +6,394 @@ "att_dispatch_server_can_send_now": "0x020053f1", "att_dispatch_server_request_can_send_now_event": "0x020053f7", "att_emit_general_event": "0x020054a9", - "att_server_can_send_packet_now": "0x02005be1", - "att_server_deferred_read_response": "0x02005be5", - "att_server_get_mtu": "0x02005bfd", - "att_server_indicate": "0x02005c75", - "att_server_init": "0x02005cf9", - "att_server_notify": "0x02005d35", - "att_server_register_packet_handler": "0x02005e4d", - "att_server_request_can_send_now_event": "0x02005e59", - "att_set_db": "0x02005e75", - "att_set_read_callback": "0x02005e89", - "att_set_write_callback": "0x02005e95", - "bd_addr_cmp": "0x02006065", - "bd_addr_copy": "0x0200606b", - "bd_addr_to_str": "0x02006075", - "big_endian_read_16": "0x020060ad", - "big_endian_read_32": "0x020060b5", - "big_endian_store_16": "0x020060c9", - "big_endian_store_32": "0x020060d5", - "btstack_config": "0x02006235", - "btstack_memory_pool_create": "0x02006375", - "btstack_memory_pool_free": "0x0200639d", - "btstack_memory_pool_get": "0x020063fd", - "btstack_push_user_msg": "0x02006465", - "btstack_push_user_runnable": "0x02006471", - "btstack_reset": "0x0200647d", - "char_for_nibble": "0x020067b3", - "eTaskConfirmSleepModeStatus": "0x02006b65", - "gap_add_dev_to_periodic_list": "0x020071d5", - "gap_add_whitelist": "0x020071e5", - "gap_aes_encrypt": "0x020071f1", - "gap_clear_white_lists": "0x02007229", - "gap_clr_adv_set": "0x02007235", - "gap_clr_periodic_adv_list": "0x02007241", - "gap_create_connection_cancel": "0x0200724d", - "gap_default_periodic_adv_sync_transfer_param": "0x02007259", - "gap_disconnect": "0x02007271", - "gap_disconnect_all": "0x0200729d", - "gap_ext_create_connection": "0x020072dd", - "gap_ext_create_connection_v2": "0x02007389", - "gap_get_connection_parameter_range": "0x02007489", - "gap_le_read_channel_map": "0x020074c5", - "gap_periodic_adv_create_sync": "0x02007531", - "gap_periodic_adv_create_sync_cancel": "0x02007555", - "gap_periodic_adv_set_info_transfer": "0x02007561", - "gap_periodic_adv_sync_transfer": "0x02007571", - "gap_periodic_adv_sync_transfer_param": "0x02007581", - "gap_periodic_adv_term_sync": "0x0200759d", - "gap_read_antenna_info": "0x02007625", - "gap_read_local_tx_power_level": "0x0200763d", - "gap_read_periodic_adv_list_size": "0x0200764d", - "gap_read_phy": "0x02007659", - "gap_read_remote_tx_power_level": "0x02007665", - "gap_read_remote_used_features": "0x02007675", - "gap_read_remote_version": "0x02007681", - "gap_read_rssi": "0x0200768d", - "gap_remove_whitelist": "0x02007699", - "gap_rmv_adv_set": "0x02007715", - "gap_rmv_dev_from_periodic_list": "0x02007721", - "gap_rx_test_v2": "0x02007731", - "gap_rx_test_v3": "0x02007741", - "gap_set_adv_set_random_addr": "0x0200778d", - "gap_set_callback_for_next_hci": "0x020077c9", - "gap_set_connection_cte_request_enable": "0x020077e9", - "gap_set_connection_cte_response_enable": "0x02007805", - "gap_set_connection_cte_rx_param": "0x02007815", - "gap_set_connection_cte_tx_param": "0x02007869", - "gap_set_connection_parameter_range": "0x020078b5", - "gap_set_connectionless_cte_tx_enable": "0x020078cd", - "gap_set_connectionless_cte_tx_param": "0x020078dd", - "gap_set_connectionless_iq_sampling_enable": "0x02007939", - "gap_set_data_length": "0x02007995", - "gap_set_def_phy": "0x020079ad", - "gap_set_default_subrate": "0x020079bd", - "gap_set_ext_adv_data": "0x020079d9", - "gap_set_ext_adv_enable": "0x020079f1", - "gap_set_ext_adv_para": "0x02007a61", - "gap_set_ext_scan_enable": "0x02007b31", - "gap_set_ext_scan_para": "0x02007b49", - "gap_set_ext_scan_response_data": "0x02007be9", - "gap_set_host_channel_classification": "0x02007c01", - "gap_set_path_loss_reporting_enable": "0x02007c11", - "gap_set_path_loss_reporting_param": "0x02007c21", - "gap_set_periodic_adv_data": "0x02007c3d", - "gap_set_periodic_adv_enable": "0x02007cad", - "gap_set_periodic_adv_para": "0x02007cbd", - "gap_set_periodic_adv_para_v2": "0x02007cd5", - "gap_set_periodic_adv_rsp_data": "0x02007cf9", - "gap_set_periodic_adv_rx_enable": "0x02007d1d", - "gap_set_periodic_adv_subevent_data": "0x02007d2d", - "gap_set_periodic_sync_subevent": "0x02007dc5", - "gap_set_phy": "0x02007ddd", - "gap_set_random_device_address": "0x02007df9", - "gap_set_tx_power_reporting_enable": "0x02007e19", - "gap_start_ccm": "0x02007e39", - "gap_subrate_request": "0x02007e81", - "gap_test_end": "0x02007e9d", - "gap_tx_test_v2": "0x02007ea9", - "gap_tx_test_v4": "0x02007ec1", - "gap_update_connection_parameters": "0x02007ee5", - "gap_vendor_tx_continuous_wave": "0x02007f29", - "gatt_client_cancel_write": "0x02008451", - "gatt_client_discover_characteristic_descriptors": "0x02008477", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020084b7", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x02008507", - "gatt_client_discover_characteristics_for_service": "0x02008557", - "gatt_client_discover_primary_services": "0x0200858d", - "gatt_client_discover_primary_services_by_uuid128": "0x020085bf", - "gatt_client_discover_primary_services_by_uuid16": "0x02008603", - "gatt_client_execute_write": "0x02008641", - "gatt_client_find_included_services_for_service": "0x02008667", - "gatt_client_get_mtu": "0x02008695", - "gatt_client_is_ready": "0x02008759", - "gatt_client_listen_for_characteristic_value_updates": "0x0200876f", - "gatt_client_prepare_write": "0x02008791", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020087cd", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020087f7", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x020087fd", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0200882b", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02008831", - "gatt_client_read_multiple_characteristic_values": "0x0200885f", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x0200888f", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x020088bd", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x02008909", - "gatt_client_register_handler": "0x02008955", - "gatt_client_reliable_write_long_value_of_characteristic": "0x02008961", - "gatt_client_signed_write_without_response": "0x02008d95", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02008e59", - "gatt_client_write_client_characteristic_configuration": "0x02008e93", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02008ee5", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02008ef5", - "gatt_client_write_long_value_of_characteristic": "0x02008f31", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x02008f41", - "gatt_client_write_value_of_characteristic": "0x02008f7d", - "gatt_client_write_value_of_characteristic_without_response": "0x02008fb3", - "hci_add_event_handler": "0x0200a661", - "hci_power_control": "0x0200ae09", - "hci_register_acl_packet_handler": "0x0200afbd", - "kv_commit": "0x0200b6f5", - "kv_get": "0x0200b751", - "kv_init": "0x0200b75d", - "kv_init_backend": "0x0200b7dd", - "kv_put": "0x0200b7f1", - "kv_remove": "0x0200b7fd", - "kv_remove_all": "0x0200b831", - "kv_value_modified": "0x0200b861", - "kv_value_modified_of_key": "0x0200b87d", - "kv_visit": "0x0200b889", - "l2cap_add_event_handler": "0x0200b919", - "l2cap_can_send_packet_now": "0x0200b929", - "l2cap_create_le_credit_based_connection_request": "0x0200baed", - "l2cap_credit_based_send": "0x0200bc35", - "l2cap_credit_based_send_continue": "0x0200bc61", - "l2cap_disconnect": "0x0200bcdd", - "l2cap_get_le_credit_based_connection_credits": "0x0200bec9", - "l2cap_get_peer_mtu_for_local_cid": "0x0200bee5", - "l2cap_init": "0x0200c325", - "l2cap_le_send_flow_control_credit": "0x0200c41b", - "l2cap_max_le_mtu": "0x0200c729", - "l2cap_register_packet_handler": "0x0200c851", - "l2cap_register_service": "0x0200c85d", - "l2cap_request_can_send_now_event": "0x0200c96d", - "l2cap_request_connection_parameter_update": "0x0200c987", - "l2cap_send_echo_request": "0x0200ce69", - "l2cap_unregister_service": "0x0200cf49", - "le_device_db_add": "0x0200cfa1", - "le_device_db_find": "0x0200d079", - "le_device_db_from_key": "0x0200d0a5", - "le_device_db_iter_cur": "0x0200d0ad", - "le_device_db_iter_cur_key": "0x0200d0b1", - "le_device_db_iter_init": "0x0200d0b5", - "le_device_db_iter_next": "0x0200d0bd", - "le_device_db_remove_key": "0x0200d0e3", - "ll_ackable_packet_alloc": "0x0200d10f", - "ll_ackable_packet_get_status": "0x0200d24b", - "ll_ackable_packet_run": "0x0200d2b9", - "ll_ackable_packet_set_tx_data": "0x0200d371", - "ll_adjust_conn_peer_tx_power": "0x0200d38d", - "ll_aes_encrypt": "0x0200d3b9", - "ll_allow_nonstandard_adv_type": "0x0200d42d", - "ll_attach_cte_to_adv_set": "0x0200d445", - "ll_channel_monitor_alloc": "0x0200d5dd", - "ll_channel_monitor_check_each_pdu": "0x0200d65f", - "ll_channel_monitor_run": "0x0200d6c1", - "ll_config": "0x0200d791", - "ll_conn_abort": "0x0200d7ad", - "ll_create_conn": "0x0200d7e1", - "ll_dhkey_generated": "0x0200da5d", - "ll_free": "0x0200da91", - "ll_get_conn_events_info": "0x0200da9d", - "ll_get_conn_info": "0x0200db85", - "ll_get_heap_free_size": "0x0200dbd5", - "ll_hint_on_ce_len": "0x0200dbe9", - "ll_install_ecc_engine": "0x0200dc21", - "ll_legacy_adv_set_interval": "0x0200dc2d", - "ll_lock_frequency": "0x0200dc3d", - "ll_malloc": "0x0200dca1", - "ll_override_whitening_init_value": "0x0200dca9", - "ll_p256_key_pair_generated": "0x0200dcc1", - "ll_raw_packet_alloc": "0x0200de05", - "ll_raw_packet_free": "0x0200ded9", - "ll_raw_packet_get_bare_rx_data": "0x0200df11", - "ll_raw_packet_get_iq_samples": "0x0200dfd1", - "ll_raw_packet_get_rx_data": "0x0200e06b", - "ll_raw_packet_recv": "0x0200e11d", - "ll_raw_packet_send": "0x0200e1f1", - "ll_raw_packet_set_bare_data": "0x0200e30d", - "ll_raw_packet_set_bare_mode": "0x0200e34b", - "ll_raw_packet_set_fake_cte_info": "0x0200e44f", - "ll_raw_packet_set_param": "0x0200e471", - "ll_raw_packet_set_rx_cte": "0x0200e4d3", - "ll_raw_packet_set_tx_cte": "0x0200e569", - "ll_raw_packet_set_tx_data": "0x0200e5a9", - "ll_register_hci_acl_previewer": "0x0200e611", - "ll_scan_set_fixed_channel": "0x0200e675", - "ll_scanner_enable_iq_sampling": "0x0200e681", - "ll_scanner_enable_iq_sampling_on_legacy": "0x0200e729", - "ll_set_adv_access_address": "0x0200ea19", - "ll_set_adv_coded_scheme": "0x0200ea25", - "ll_set_conn_acl_report_latency": "0x0200ea5d", - "ll_set_conn_coded_scheme": "0x0200ea8d", - "ll_set_conn_interval_unit": "0x0200eab9", - "ll_set_conn_latency": "0x0200eac5", - "ll_set_conn_tx_power": "0x0200eaf5", - "ll_set_cte_bit": "0x0200eb25", - "ll_set_def_antenna": "0x0200eb4d", - "ll_set_initiating_coded_scheme": "0x0200eb6d", - "ll_set_max_conn_number": "0x0200eb79", - "ll_set_tx_power_range": "0x0200ec21", - "ll_unlock_frequency": "0x0200ec49", - "nibble_for_char": "0x020233a9", - "platform_calibrate_rt_clk": "0x02023453", + "att_server_can_send_packet_now": "0x02005be5", + "att_server_deferred_read_response": "0x02005be9", + "att_server_get_mtu": "0x02005c01", + "att_server_indicate": "0x02005c79", + "att_server_init": "0x02005cfd", + "att_server_notify": "0x02005d39", + "att_server_register_packet_handler": "0x02005e51", + "att_server_request_can_send_now_event": "0x02005e5d", + "att_set_db": "0x02005e79", + "att_set_read_callback": "0x02005e8d", + "att_set_write_callback": "0x02005e99", + "bd_addr_cmp": "0x02006069", + "bd_addr_copy": "0x0200606f", + "bd_addr_to_str": "0x02006079", + "big_endian_read_16": "0x020060b1", + "big_endian_read_32": "0x020060b9", + "big_endian_store_16": "0x020060cd", + "big_endian_store_32": "0x020060d9", + "btstack_config": "0x02006239", + "btstack_memory_pool_create": "0x02006379", + "btstack_memory_pool_free": "0x020063a1", + "btstack_memory_pool_get": "0x02006401", + "btstack_push_user_msg": "0x02006469", + "btstack_push_user_runnable": "0x02006475", + "btstack_reset": "0x02006481", + "char_for_nibble": "0x020067b7", + "eTaskConfirmSleepModeStatus": "0x02006b69", + "gap_add_dev_to_periodic_list": "0x020071d9", + "gap_add_whitelist": "0x020071e9", + "gap_aes_encrypt": "0x020071f5", + "gap_clear_white_lists": "0x0200722d", + "gap_clr_adv_set": "0x02007239", + "gap_clr_periodic_adv_list": "0x02007245", + "gap_create_connection_cancel": "0x02007251", + "gap_default_periodic_adv_sync_transfer_param": "0x0200725d", + "gap_disconnect": "0x02007275", + "gap_disconnect_all": "0x020072a1", + "gap_ext_create_connection": "0x020072e1", + "gap_ext_create_connection_v2": "0x0200738d", + "gap_get_connection_parameter_range": "0x0200748d", + "gap_le_read_channel_map": "0x020074c9", + "gap_periodic_adv_create_sync": "0x02007535", + "gap_periodic_adv_create_sync_cancel": "0x02007559", + "gap_periodic_adv_set_info_transfer": "0x02007565", + "gap_periodic_adv_sync_transfer": "0x02007575", + "gap_periodic_adv_sync_transfer_param": "0x02007585", + "gap_periodic_adv_term_sync": "0x020075a1", + "gap_read_antenna_info": "0x02007629", + "gap_read_local_tx_power_level": "0x02007641", + "gap_read_periodic_adv_list_size": "0x02007651", + "gap_read_phy": "0x0200765d", + "gap_read_remote_tx_power_level": "0x02007669", + "gap_read_remote_used_features": "0x02007679", + "gap_read_remote_version": "0x02007685", + "gap_read_rssi": "0x02007691", + "gap_remove_whitelist": "0x0200769d", + "gap_rmv_adv_set": "0x02007719", + "gap_rmv_dev_from_periodic_list": "0x02007725", + "gap_rx_test_v2": "0x02007735", + "gap_rx_test_v3": "0x02007745", + "gap_set_adv_set_random_addr": "0x02007791", + "gap_set_callback_for_next_hci": "0x020077cd", + "gap_set_connection_cte_request_enable": "0x020077ed", + "gap_set_connection_cte_response_enable": "0x02007809", + "gap_set_connection_cte_rx_param": "0x02007819", + "gap_set_connection_cte_tx_param": "0x0200786d", + "gap_set_connection_parameter_range": "0x020078b9", + "gap_set_connectionless_cte_tx_enable": "0x020078d1", + "gap_set_connectionless_cte_tx_param": "0x020078e1", + "gap_set_connectionless_iq_sampling_enable": "0x0200793d", + "gap_set_data_length": "0x02007999", + "gap_set_def_phy": "0x020079b1", + "gap_set_default_subrate": "0x020079c1", + "gap_set_ext_adv_data": "0x020079dd", + "gap_set_ext_adv_enable": "0x020079f5", + "gap_set_ext_adv_para": "0x02007a65", + "gap_set_ext_scan_enable": "0x02007b35", + "gap_set_ext_scan_para": "0x02007b4d", + "gap_set_ext_scan_response_data": "0x02007bed", + "gap_set_host_channel_classification": "0x02007c05", + "gap_set_path_loss_reporting_enable": "0x02007c15", + "gap_set_path_loss_reporting_param": "0x02007c25", + "gap_set_periodic_adv_data": "0x02007c41", + "gap_set_periodic_adv_enable": "0x02007cb1", + "gap_set_periodic_adv_para": "0x02007cc1", + "gap_set_periodic_adv_para_v2": "0x02007cd9", + "gap_set_periodic_adv_rsp_data": "0x02007cfd", + "gap_set_periodic_adv_rx_enable": "0x02007d21", + "gap_set_periodic_adv_subevent_data": "0x02007d31", + "gap_set_periodic_sync_subevent": "0x02007dc9", + "gap_set_phy": "0x02007de1", + "gap_set_random_device_address": "0x02007dfd", + "gap_set_tx_power_reporting_enable": "0x02007e1d", + "gap_start_ccm": "0x02007e3d", + "gap_subrate_request": "0x02007e85", + "gap_test_end": "0x02007ea1", + "gap_tx_test_v2": "0x02007ead", + "gap_tx_test_v4": "0x02007ec5", + "gap_update_connection_parameters": "0x02007ee9", + "gap_vendor_tx_continuous_wave": "0x02007f2d", + "gatt_client_cancel_write": "0x02008455", + "gatt_client_discover_characteristic_descriptors": "0x0200847b", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020084bb", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200850b", + "gatt_client_discover_characteristics_for_service": "0x0200855b", + "gatt_client_discover_primary_services": "0x02008591", + "gatt_client_discover_primary_services_by_uuid128": "0x020085c3", + "gatt_client_discover_primary_services_by_uuid16": "0x02008607", + "gatt_client_execute_write": "0x02008645", + "gatt_client_find_included_services_for_service": "0x0200866b", + "gatt_client_get_mtu": "0x02008699", + "gatt_client_is_ready": "0x0200875d", + "gatt_client_listen_for_characteristic_value_updates": "0x02008773", + "gatt_client_prepare_write": "0x02008795", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x020087d1", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x020087fb", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02008801", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0200882f", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02008835", + "gatt_client_read_multiple_characteristic_values": "0x02008863", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x02008893", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x020088c1", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x0200890d", + "gatt_client_register_handler": "0x02008959", + "gatt_client_reliable_write_long_value_of_characteristic": "0x02008965", + "gatt_client_signed_write_without_response": "0x02008d99", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02008e5d", + "gatt_client_write_client_characteristic_configuration": "0x02008e97", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02008ee9", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02008ef9", + "gatt_client_write_long_value_of_characteristic": "0x02008f35", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x02008f45", + "gatt_client_write_value_of_characteristic": "0x02008f81", + "gatt_client_write_value_of_characteristic_without_response": "0x02008fb7", + "hci_add_event_handler": "0x0200a665", + "hci_power_control": "0x0200ae0d", + "hci_register_acl_packet_handler": "0x0200afc1", + "kv_commit": "0x0200b6f9", + "kv_get": "0x0200b755", + "kv_init": "0x0200b761", + "kv_init_backend": "0x0200b7e1", + "kv_put": "0x0200b7f5", + "kv_remove": "0x0200b801", + "kv_remove_all": "0x0200b835", + "kv_value_modified": "0x0200b865", + "kv_value_modified_of_key": "0x0200b881", + "kv_visit": "0x0200b88d", + "l2cap_add_event_handler": "0x0200b91d", + "l2cap_can_send_packet_now": "0x0200b92d", + "l2cap_create_le_credit_based_connection_request": "0x0200baf1", + "l2cap_credit_based_send": "0x0200bc39", + "l2cap_credit_based_send_continue": "0x0200bc65", + "l2cap_disconnect": "0x0200bce1", + "l2cap_get_le_credit_based_connection_credits": "0x0200becd", + "l2cap_get_peer_mtu_for_local_cid": "0x0200bee9", + "l2cap_init": "0x0200c329", + "l2cap_le_send_flow_control_credit": "0x0200c41f", + "l2cap_max_le_mtu": "0x0200c72d", + "l2cap_register_packet_handler": "0x0200c855", + "l2cap_register_service": "0x0200c861", + "l2cap_request_can_send_now_event": "0x0200c971", + "l2cap_request_connection_parameter_update": "0x0200c98b", + "l2cap_send_echo_request": "0x0200ce6d", + "l2cap_unregister_service": "0x0200cf4d", + "le_device_db_add": "0x0200cfa5", + "le_device_db_find": "0x0200d07d", + "le_device_db_from_key": "0x0200d0a9", + "le_device_db_iter_cur": "0x0200d0b1", + "le_device_db_iter_cur_key": "0x0200d0b5", + "le_device_db_iter_init": "0x0200d0b9", + "le_device_db_iter_next": "0x0200d0c1", + "le_device_db_remove_key": "0x0200d0e7", + "ll_ackable_packet_alloc": "0x0200d113", + "ll_ackable_packet_get_status": "0x0200d24f", + "ll_ackable_packet_run": "0x0200d2bd", + "ll_ackable_packet_set_tx_data": "0x0200d375", + "ll_adjust_conn_peer_tx_power": "0x0200d391", + "ll_aes_encrypt": "0x0200d3bd", + "ll_allow_nonstandard_adv_type": "0x0200d431", + "ll_attach_cte_to_adv_set": "0x0200d449", + "ll_channel_monitor_alloc": "0x0200d5e1", + "ll_channel_monitor_check_each_pdu": "0x0200d663", + "ll_channel_monitor_run": "0x0200d6c5", + "ll_config": "0x0200d795", + "ll_conn_abort": "0x0200d7b1", + "ll_create_conn": "0x0200d7e5", + "ll_dhkey_generated": "0x0200da61", + "ll_free": "0x0200da95", + "ll_get_conn_events_info": "0x0200daa1", + "ll_get_conn_info": "0x0200db89", + "ll_get_heap_free_size": "0x0200dbd9", + "ll_hint_on_ce_len": "0x0200dbed", + "ll_install_ecc_engine": "0x0200dc25", + "ll_legacy_adv_set_interval": "0x0200dc31", + "ll_lock_frequency": "0x0200dc41", + "ll_malloc": "0x0200dca5", + "ll_override_whitening_init_value": "0x0200dcad", + "ll_p256_key_pair_generated": "0x0200dcc5", + "ll_raw_packet_alloc": "0x0200de09", + "ll_raw_packet_free": "0x0200dedd", + "ll_raw_packet_get_bare_rx_data": "0x0200df15", + "ll_raw_packet_get_iq_samples": "0x0200dfd5", + "ll_raw_packet_get_rx_data": "0x0200e06f", + "ll_raw_packet_recv": "0x0200e121", + "ll_raw_packet_send": "0x0200e1f5", + "ll_raw_packet_set_bare_data": "0x0200e311", + "ll_raw_packet_set_bare_mode": "0x0200e34f", + "ll_raw_packet_set_fake_cte_info": "0x0200e453", + "ll_raw_packet_set_param": "0x0200e475", + "ll_raw_packet_set_rx_cte": "0x0200e4d7", + "ll_raw_packet_set_tx_cte": "0x0200e56d", + "ll_raw_packet_set_tx_data": "0x0200e5ad", + "ll_register_hci_acl_previewer": "0x0200e615", + "ll_scan_set_fixed_channel": "0x0200e679", + "ll_scanner_enable_iq_sampling": "0x0200e685", + "ll_scanner_enable_iq_sampling_on_legacy": "0x0200e72d", + "ll_set_adv_access_address": "0x0200ea1d", + "ll_set_adv_coded_scheme": "0x0200ea29", + "ll_set_conn_acl_report_latency": "0x0200ea61", + "ll_set_conn_coded_scheme": "0x0200ea91", + "ll_set_conn_interval_unit": "0x0200eabd", + "ll_set_conn_latency": "0x0200eac9", + "ll_set_conn_tx_power": "0x0200eaf9", + "ll_set_cte_bit": "0x0200eb29", + "ll_set_def_antenna": "0x0200eb51", + "ll_set_initiating_coded_scheme": "0x0200eb71", + "ll_set_max_conn_number": "0x0200eb7d", + "ll_set_tx_power_range": "0x0200ec25", + "ll_unlock_frequency": "0x0200ec4d", + "nibble_for_char": "0x020233ad", + "platform_calibrate_rt_clk": "0x02023457", "platform_call_on_stack": "0x020030fb", - "platform_config": "0x02023459", - "platform_delete_timer": "0x02023581", - "platform_enable_irq": "0x02023589", - "platform_get_current_task": "0x020235bd", - "platform_get_gen_os_driver": "0x020235e1", - "platform_get_heap_status": "0x020235e9", - "platform_get_link_layer_interf": "0x02023601", - "platform_get_task_handle": "0x02023609", - "platform_get_timer_counter": "0x02023629", - "platform_get_us_time": "0x0202362d", - "platform_get_version": "0x02023631", - "platform_hrng": "0x0202364d", - "platform_install_isr_stack": "0x02023655", - "platform_install_task_stack": "0x02023661", - "platform_patch_rf_init_data": "0x02023699", - "platform_printf": "0x020236a5", - "platform_raise_assertion": "0x020236b9", - "platform_rand": "0x020236cd", - "platform_read_info": "0x020236d1", - "platform_read_persistent_reg": "0x02023701", - "platform_reset": "0x0202370d", - "platform_rt_rc_auto_tune": "0x02023721", - "platform_rt_rc_auto_tune2": "0x02023729", - "platform_rt_rc_tune": "0x02023791", - "platform_set_abs_timer": "0x020237ad", - "platform_set_evt_callback": "0x020237b1", - "platform_set_evt_callback_table": "0x020237c5", - "platform_set_irq_callback": "0x020237d1", - "platform_set_irq_callback_table": "0x020237ed", - "platform_set_rf_clk_source": "0x020237f9", - "platform_set_rf_init_data": "0x02023805", - "platform_set_rf_power_mapping": "0x02023811", - "platform_set_timer": "0x0202381d", - "platform_shutdown": "0x02023821", - "platform_switch_app": "0x02023825", - "platform_trace_raw": "0x0202383d", - "platform_write_persistent_reg": "0x02023855", - "printf_hexdump": "0x02023a0d", - "pvPortMalloc": "0x020244e5", - "pvTaskIncrementMutexHeldCount": "0x020245cd", - "pvTimerGetTimerID": "0x020245e5", - "pxPortInitialiseStack": "0x02024611", - "reverse_128": "0x020247f9", - "reverse_24": "0x020247ff", - "reverse_256": "0x02024805", - "reverse_48": "0x0202480b", - "reverse_56": "0x02024811", - "reverse_64": "0x02024817", - "reverse_bd_addr": "0x0202481d", - "reverse_bytes": "0x02024823", - "sm_add_event_handler": "0x02024ba1", - "sm_address_resolution_lookup": "0x02024ce5", - "sm_authenticated": "0x02025111", - "sm_authorization_decline": "0x0202511f", - "sm_authorization_grant": "0x0202513f", - "sm_authorization_state": "0x0202515f", - "sm_bonding_decline": "0x02025179", - "sm_config": "0x020255f5", - "sm_config_conn": "0x0202560d", - "sm_encryption_key_size": "0x020257c7", - "sm_just_works_confirm": "0x02026519", - "sm_le_device_key": "0x02026909", - "sm_numeric_comparison_confirm": "0x02026a5f", - "sm_passkey_input": "0x02026a9d", - "sm_private_random_address_generation_get": "0x020270a5", - "sm_private_random_address_generation_get_mode": "0x020270ad", - "sm_private_random_address_generation_set_mode": "0x020270b9", - "sm_private_random_address_generation_set_update_period": "0x020270e1", - "sm_register_external_ltk_callback": "0x0202736d", - "sm_register_oob_data_callback": "0x02027379", - "sm_register_sc_oob_data_callback": "0x02027385", - "sm_request_pairing": "0x02027391", - "sm_sc_generate_oob_data": "0x02027fd1", - "sm_send_security_request": "0x02028101", - "sm_set_accepted_stk_generation_methods": "0x02028129", - "sm_set_authentication_requirements": "0x02028135", - "sm_set_encryption_key_size_range": "0x02028145", - "sscanf_bd_addr": "0x02028569", - "sysSetPublicDeviceAddr": "0x02028a91", - "uuid128_to_str": "0x02029311", - "uuid_add_bluetooth_prefix": "0x02029369", - "uuid_has_bluetooth_prefix": "0x02029389", - "uxListRemove": "0x020293a5", - "uxQueueMessagesWaiting": "0x020293cd", - "uxQueueMessagesWaitingFromISR": "0x020293f5", - "uxQueueSpacesAvailable": "0x02029411", - "uxTaskGetStackHighWaterMark": "0x0202943d", - "uxTaskPriorityGet": "0x0202945d", - "uxTaskPriorityGetFromISR": "0x02029479", - "vListInitialise": "0x02029537", - "vListInitialiseItem": "0x0202954d", - "vListInsert": "0x02029553", - "vListInsertEnd": "0x02029583", - "vPortEndScheduler": "0x0202959d", - "vPortEnterCritical": "0x020295c9", - "vPortExitCritical": "0x0202960d", - "vPortFree": "0x02029641", - "vPortSuppressTicksAndSleep": "0x020296e5", - "vPortValidateInterruptPriority": "0x0202980d", - "vQueueDelete": "0x02029869", - "vQueueWaitForMessageRestricted": "0x02029895", - "vTaskDelay": "0x020298d9", - "vTaskInternalSetTimeOutState": "0x02029925", - "vTaskMissedYield": "0x02029935", - "vTaskPlaceOnEventList": "0x02029941", - "vTaskPlaceOnEventListRestricted": "0x02029979", - "vTaskPriorityDisinheritAfterTimeout": "0x020299b9", - "vTaskPrioritySet": "0x02029a65", - "vTaskResume": "0x02029b2d", - "vTaskStartScheduler": "0x02029bb1", - "vTaskStepTick": "0x02029c41", - "vTaskSuspend": "0x02029c71", - "vTaskSuspendAll": "0x02029d2d", - "vTaskSwitchContext": "0x02029d3d", - "xPortStartScheduler": "0x02029ded", - "xQueueAddToSet": "0x02029ef1", - "xQueueCreateCountingSemaphore": "0x02029f15", - "xQueueCreateCountingSemaphoreStatic": "0x02029f51", - "xQueueCreateMutex": "0x02029f95", - "xQueueCreateMutexStatic": "0x02029fab", - "xQueueCreateSet": "0x02029fc5", - "xQueueGenericCreate": "0x02029fcd", - "xQueueGenericCreateStatic": "0x0202a019", - "xQueueGenericReset": "0x0202a081", - "xQueueGenericSend": "0x0202a10d", - "xQueueGenericSendFromISR": "0x0202a279", - "xQueueGiveFromISR": "0x0202a339", - "xQueueGiveMutexRecursive": "0x0202a3dd", - "xQueueIsQueueEmptyFromISR": "0x0202a41d", - "xQueueIsQueueFullFromISR": "0x0202a441", - "xQueuePeek": "0x0202a469", - "xQueuePeekFromISR": "0x0202a591", - "xQueueReceive": "0x0202a5fd", - "xQueueReceiveFromISR": "0x0202a729", - "xQueueRemoveFromSet": "0x0202a7bd", - "xQueueSelectFromSet": "0x0202a7df", - "xQueueSelectFromSetFromISR": "0x0202a7f1", - "xQueueSemaphoreTake": "0x0202a805", - "xQueueTakeMutexRecursive": "0x0202a971", - "xTaskCheckForTimeOut": "0x0202a9b5", - "xTaskCreate": "0x0202aa25", - "xTaskCreateStatic": "0x0202aa81", - "xTaskGetCurrentTaskHandle": "0x0202aaf1", - "xTaskGetSchedulerState": "0x0202aafd", - "xTaskGetTickCount": "0x0202ab19", - "xTaskGetTickCountFromISR": "0x0202ab25", - "xTaskIncrementTick": "0x0202ab35", - "xTaskPriorityDisinherit": "0x0202ac01", - "xTaskPriorityInherit": "0x0202ac95", - "xTaskRemoveFromEventList": "0x0202ad29", - "xTaskResumeAll": "0x0202ada9", - "xTaskResumeFromISR": "0x0202ae71", - "xTimerCreate": "0x0202aefd", - "xTimerCreateStatic": "0x0202af31", - "xTimerCreateTimerTask": "0x0202af69", - "xTimerGenericCommand": "0x0202afd5", - "xTimerGetExpiryTime": "0x0202b045", - "xTimerGetTimerDaemonTaskHandle": "0x0202b065" + "platform_config": "0x0202345d", + "platform_delete_timer": "0x02023585", + "platform_enable_irq": "0x0202358d", + "platform_get_current_task": "0x020235c1", + "platform_get_gen_os_driver": "0x020235e5", + "platform_get_heap_status": "0x020235ed", + "platform_get_link_layer_interf": "0x02023605", + "platform_get_task_handle": "0x0202360d", + "platform_get_timer_counter": "0x0202362d", + "platform_get_us_time": "0x02023631", + "platform_get_version": "0x02023635", + "platform_hrng": "0x02023651", + "platform_install_isr_stack": "0x02023659", + "platform_install_task_stack": "0x02023665", + "platform_patch_rf_init_data": "0x0202369d", + "platform_printf": "0x020236a9", + "platform_raise_assertion": "0x020236bd", + "platform_rand": "0x020236d1", + "platform_read_info": "0x020236d5", + "platform_read_persistent_reg": "0x02023705", + "platform_reset": "0x02023711", + "platform_rt_rc_auto_tune": "0x02023725", + "platform_rt_rc_auto_tune2": "0x0202372d", + "platform_rt_rc_tune": "0x02023795", + "platform_set_abs_timer": "0x020237b1", + "platform_set_evt_callback": "0x020237b5", + "platform_set_evt_callback_table": "0x020237c9", + "platform_set_irq_callback": "0x020237d5", + "platform_set_irq_callback_table": "0x020237f1", + "platform_set_rf_clk_source": "0x020237fd", + "platform_set_rf_init_data": "0x02023809", + "platform_set_rf_power_mapping": "0x02023815", + "platform_set_timer": "0x02023821", + "platform_shutdown": "0x02023825", + "platform_switch_app": "0x02023829", + "platform_trace_raw": "0x02023841", + "platform_write_persistent_reg": "0x02023859", + "printf_hexdump": "0x02023a11", + "pvPortMalloc": "0x020244e9", + "pvTaskIncrementMutexHeldCount": "0x020245d1", + "pvTimerGetTimerID": "0x020245e9", + "pxPortInitialiseStack": "0x02024615", + "reverse_128": "0x020247fd", + "reverse_24": "0x02024803", + "reverse_256": "0x02024809", + "reverse_48": "0x0202480f", + "reverse_56": "0x02024815", + "reverse_64": "0x0202481b", + "reverse_bd_addr": "0x02024821", + "reverse_bytes": "0x02024827", + "sm_add_event_handler": "0x02024ba5", + "sm_address_resolution_lookup": "0x02024ce9", + "sm_authenticated": "0x02025115", + "sm_authorization_decline": "0x02025123", + "sm_authorization_grant": "0x02025143", + "sm_authorization_state": "0x02025163", + "sm_bonding_decline": "0x0202517d", + "sm_config": "0x020255f9", + "sm_config_conn": "0x02025611", + "sm_encryption_key_size": "0x020257cb", + "sm_just_works_confirm": "0x02026521", + "sm_le_device_key": "0x02026911", + "sm_numeric_comparison_confirm": "0x02026a67", + "sm_passkey_input": "0x02026aa5", + "sm_private_random_address_generation_get": "0x020270ad", + "sm_private_random_address_generation_get_mode": "0x020270b5", + "sm_private_random_address_generation_set_mode": "0x020270c1", + "sm_private_random_address_generation_set_update_period": "0x020270e9", + "sm_register_external_ltk_callback": "0x02027375", + "sm_register_oob_data_callback": "0x02027381", + "sm_register_sc_oob_data_callback": "0x0202738d", + "sm_request_pairing": "0x02027399", + "sm_sc_generate_oob_data": "0x02027fd9", + "sm_send_security_request": "0x02028109", + "sm_set_accepted_stk_generation_methods": "0x02028131", + "sm_set_authentication_requirements": "0x0202813d", + "sm_set_encryption_key_size_range": "0x0202814d", + "sscanf_bd_addr": "0x02028571", + "sysSetPublicDeviceAddr": "0x02028a99", + "uuid128_to_str": "0x02029319", + "uuid_add_bluetooth_prefix": "0x02029371", + "uuid_has_bluetooth_prefix": "0x02029391", + "uxListRemove": "0x020293ad", + "uxQueueMessagesWaiting": "0x020293d5", + "uxQueueMessagesWaitingFromISR": "0x020293fd", + "uxQueueSpacesAvailable": "0x02029419", + "uxTaskGetStackHighWaterMark": "0x02029445", + "uxTaskPriorityGet": "0x02029465", + "uxTaskPriorityGetFromISR": "0x02029481", + "vListInitialise": "0x0202953f", + "vListInitialiseItem": "0x02029555", + "vListInsert": "0x0202955b", + "vListInsertEnd": "0x0202958b", + "vPortEndScheduler": "0x020295a5", + "vPortEnterCritical": "0x020295d1", + "vPortExitCritical": "0x02029615", + "vPortFree": "0x02029649", + "vPortSuppressTicksAndSleep": "0x020296ed", + "vPortValidateInterruptPriority": "0x02029815", + "vQueueDelete": "0x02029871", + "vQueueWaitForMessageRestricted": "0x0202989d", + "vTaskDelay": "0x020298e1", + "vTaskInternalSetTimeOutState": "0x0202992d", + "vTaskMissedYield": "0x0202993d", + "vTaskPlaceOnEventList": "0x02029949", + "vTaskPlaceOnEventListRestricted": "0x02029981", + "vTaskPriorityDisinheritAfterTimeout": "0x020299c1", + "vTaskPrioritySet": "0x02029a6d", + "vTaskResume": "0x02029b35", + "vTaskStartScheduler": "0x02029bb9", + "vTaskStepTick": "0x02029c49", + "vTaskSuspend": "0x02029c79", + "vTaskSuspendAll": "0x02029d35", + "vTaskSwitchContext": "0x02029d45", + "xPortStartScheduler": "0x02029df5", + "xQueueAddToSet": "0x02029ef9", + "xQueueCreateCountingSemaphore": "0x02029f1d", + "xQueueCreateCountingSemaphoreStatic": "0x02029f59", + "xQueueCreateMutex": "0x02029f9d", + "xQueueCreateMutexStatic": "0x02029fb3", + "xQueueCreateSet": "0x02029fcd", + "xQueueGenericCreate": "0x02029fd5", + "xQueueGenericCreateStatic": "0x0202a021", + "xQueueGenericReset": "0x0202a089", + "xQueueGenericSend": "0x0202a115", + "xQueueGenericSendFromISR": "0x0202a281", + "xQueueGiveFromISR": "0x0202a341", + "xQueueGiveMutexRecursive": "0x0202a3e5", + "xQueueIsQueueEmptyFromISR": "0x0202a425", + "xQueueIsQueueFullFromISR": "0x0202a449", + "xQueuePeek": "0x0202a471", + "xQueuePeekFromISR": "0x0202a599", + "xQueueReceive": "0x0202a605", + "xQueueReceiveFromISR": "0x0202a731", + "xQueueRemoveFromSet": "0x0202a7c5", + "xQueueSelectFromSet": "0x0202a7e7", + "xQueueSelectFromSetFromISR": "0x0202a7f9", + "xQueueSemaphoreTake": "0x0202a80d", + "xQueueTakeMutexRecursive": "0x0202a979", + "xTaskCheckForTimeOut": "0x0202a9bd", + "xTaskCreate": "0x0202aa2d", + "xTaskCreateStatic": "0x0202aa89", + "xTaskGetCurrentTaskHandle": "0x0202aaf9", + "xTaskGetSchedulerState": "0x0202ab05", + "xTaskGetTickCount": "0x0202ab21", + "xTaskGetTickCountFromISR": "0x0202ab2d", + "xTaskIncrementTick": "0x0202ab3d", + "xTaskPriorityDisinherit": "0x0202ac09", + "xTaskPriorityInherit": "0x0202ac9d", + "xTaskRemoveFromEventList": "0x0202ad31", + "xTaskResumeAll": "0x0202adb1", + "xTaskResumeFromISR": "0x0202ae79", + "xTimerCreate": "0x0202af05", + "xTimerCreateStatic": "0x0202af39", + "xTimerCreateTimerTask": "0x0202af71", + "xTimerGenericCommand": "0x0202afdd", + "xTimerGetExpiryTime": "0x0202b04d", + "xTimerGetTimerDaemonTaskHandle": "0x0202b06d" } \ No newline at end of file diff --git a/bundles/exp/ING9168xx/meta.json b/bundles/exp/ING9168xx/meta.json index a4f279626..af3ddbeca 100644 --- a/bundles/exp/ING9168xx/meta.json +++ b/bundles/exp/ING9168xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 33562624, - "size": 177776 + "size": 177784 }, "version": [ 2, 3, - 3 + 4 ] } \ No newline at end of file diff --git a/bundles/exp/ING9168xx/platform.bin b/bundles/exp/ING9168xx/platform.bin index 1c9259a01d25051d9f66b6139bc906e2f32a44df..d25785afe84ec1c4620d06238ed0b0aabb775034 100644 GIT binary patch delta 23464 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
      ### uVision Project, (C) Keil Software
      - Target 1 @@ -15,27 +12,27 @@ ING91800 INGCHIPS CLOCK(48000000) CPUTYPE("Cortex-M3") ELITTLE IROM(0x4000-0x43fff) IRAM(0x20000000-0x2000ffff) - - - + + + 0 - - - - - - - - - - - + + + + + + + + + + + 0 - - - - - + + + + + 0 0 @@ -57,8 +54,8 @@ 0 0 - - + + 0 0 0 @@ -67,8 +64,8 @@ 0 0 - - + + 0 0 @@ -76,12 +73,12 @@ 1 0 fromelf.exe --bin -o hid_keyboard.bin ./output/hid_keyboard.axf - + 0 0 0 - + 0 @@ -95,16 +92,16 @@ 0 0 3 - - + + SARMCM3.DLL - + DCM.DLL -pCM3 SARMCM3.DLL - + TCM.DLL -pCM3 @@ -141,17 +138,17 @@ 0 1 - - - - + + + + ..\map.ini - - - - + + + + .\init.ini BIN\UL2CM3.DLL @@ -168,7 +165,7 @@ 0 BIN\UL2CM3.DLL "" () - + @@ -200,7 +197,7 @@ 0 0 "Cortex-M3" - + 0 0 0 @@ -297,8 +294,8 @@ 1 - 0x2a000 - 0x5a000 + 172032 + 368640 1 @@ -322,8 +319,8 @@ 0 - 0x20007640 - 0x89c0 + 536901184 + 35264 0 @@ -331,7 +328,7 @@ 0x0 - + 1 @@ -350,7 +347,7 @@ --gnu USE_STDPERIPH_DRIVER,BOARD_USE_KEYS - + ../../bundles/exp/inc;../../bundles/exp/inc/os;../../src/BSP;../../src/FWlib;../../src/StartUP/ing918;../../src/Tools;../../src @@ -364,10 +361,10 @@ 0 0 - - - - + + + + @@ -379,12 +376,12 @@ 0 0x00000000 0x00000000 - - - - - - + + + + + + @@ -502,5 +499,4 @@ - diff --git a/examples/hid_keyboard/src/profile.c b/examples/hid_keyboard/src/profile.c index 4c2c287cc..c39055a85 100644 --- a/examples/hid_keyboard/src/profile.c +++ b/examples/hid_keyboard/src/profile.c @@ -481,6 +481,7 @@ static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uin switch (hci_event_le_meta_get_subevent_code(packet)) { case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE: + case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2: att_set_db(decode_hci_le_meta_event(packet, le_meta_event_enh_create_conn_complete_t)->handle, att_db_util_get_address()); handle_send = decode_hci_le_meta_event(packet, le_meta_event_enh_create_conn_complete_t)->handle; break; diff --git a/examples/mesh-light/mesh-light.ingw b/examples/mesh-light/mesh-light.ingw index 6ca028073..35a023ec9 100644 --- a/examples/mesh-light/mesh-light.ingw +++ b/examples/mesh-light/mesh-light.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 141252, + "size": 141260, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 163840 }, "version": [ - 1,9,42] + 1,9,43] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", diff --git a/examples/mesh-light/src/ble_status.c b/examples/mesh-light/src/ble_status.c index 317680a4d..e9285fa35 100644 --- a/examples/mesh-light/src/ble_status.c +++ b/examples/mesh-light/src/ble_status.c @@ -57,7 +57,8 @@ static void hci_packet_handler(uint8_t packet_type, uint16_t channel, const uint case HCI_EVENT_LE_META: switch (hci_event_le_meta_get_subevent_code(packet)) { - case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE:{ + case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE: + case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2:{ const le_meta_event_enh_create_conn_complete_t *create_conn = decode_hci_le_meta_event(packet, le_meta_event_enh_create_conn_complete_t); ble_status.conn_handle = create_conn->handle; diff --git a/examples/mesh-light/src/mesh_profile.c b/examples/mesh-light/src/mesh_profile.c index f0206efe3..37b9894cd 100644 --- a/examples/mesh-light/src/mesh_profile.c +++ b/examples/mesh-light/src/mesh_profile.c @@ -342,7 +342,8 @@ static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uin break; - case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE:{ + case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE: + case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2:{ const le_meta_event_enh_create_conn_complete_t *create_conn = decode_hci_le_meta_event(packet, le_meta_event_enh_create_conn_complete_t); my_conn_handle = create_conn->handle; diff --git a/examples/pairing_with_oob/pairing_with_oob.ingw b/examples/pairing_with_oob/pairing_with_oob.ingw index 64ef5d5ec..fe158e57e 100644 --- a/examples/pairing_with_oob/pairing_with_oob.ingw +++ b/examples/pairing_with_oob/pairing_with_oob.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 152040, + "size": 152044, "base": 16384 }, "ram": { @@ -13,7 +13,7 @@ "base": 172032 }, "version": [ - 1,9,42] + 1,9,43] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/pairing_with_oob/src/le_secure_pairing.c b/examples/pairing_with_oob/src/le_secure_pairing.c index cf133c943..e287a3cea 100644 --- a/examples/pairing_with_oob/src/le_secure_pairing.c +++ b/examples/pairing_with_oob/src/le_secure_pairing.c @@ -269,6 +269,7 @@ static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uin break; case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE: + case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2: { const le_meta_event_enh_create_conn_complete_t *complete = decode_hci_le_meta_event(packet, le_meta_event_enh_create_conn_complete_t); diff --git a/examples/pairing_with_oob/src/legacy_pairing.c b/examples/pairing_with_oob/src/legacy_pairing.c index 0e9b58359..288c8b506 100644 --- a/examples/pairing_with_oob/src/legacy_pairing.c +++ b/examples/pairing_with_oob/src/legacy_pairing.c @@ -196,6 +196,7 @@ static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uin switch (hci_event_le_meta_get_subevent_code(packet)) { case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE: + case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2: { const le_meta_event_enh_create_conn_complete_t *complete = decode_hci_le_meta_event(packet, le_meta_event_enh_create_conn_complete_t); diff --git a/examples/pawr/pawr.ingw b/examples/pawr/pawr.ingw index 2b3187c34..da2d06762 100644 --- a/examples/pawr/pawr.ingw +++ b/examples/pawr/pawr.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 177776, + "size": 177784, "base": 33562624 }, "ram": { @@ -13,7 +13,7 @@ "base": 33742848 }, "version": [ - 2,3,3] + 2,3,4] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", diff --git a/examples/uart_console/src/profile.c b/examples/uart_console/src/profile.c index c517c6a2f..9c9f60a60 100644 --- a/examples/uart_console/src/profile.c +++ b/examples/uart_console/src/profile.c @@ -959,6 +959,7 @@ static void user_packet_handler(uint8_t packet_type, uint16_t channel, const uin } break; case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE: + case HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2: { const le_meta_event_enh_create_conn_complete_t * complete = decode_hci_le_meta_event(packet, le_meta_event_enh_create_conn_complete_t); diff --git a/examples/uart_console/uart_console.ingw b/examples/uart_console/uart_console.ingw index 0cf23d5a7..7c817ccac 100644 --- a/examples/uart_console/uart_console.ingw +++ b/examples/uart_console/uart_console.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 152040, + "size": 152044, "base": 16384 }, "ram": { @@ -12,7 +12,7 @@ "base": 172032 }, "version": [ - 1,9,42] + 1,9,43] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5",

      ({Nl@xfSf@0OSM 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 diff --git a/bundles/exp/ING9187xx/apis.json b/bundles/exp/ING9187xx/apis.json index 4d7f107a5..e7177e277 100644 --- a/bundles/exp/ING9187xx/apis.json +++ b/bundles/exp/ING9187xx/apis.json @@ -6,365 +6,365 @@ "att_dispatch_server_can_send_now": "0x000057cd", "att_dispatch_server_request_can_send_now_event": "0x000057d3", "att_emit_general_event": "0x00005885", - "att_server_can_send_packet_now": "0x00005fb5", - "att_server_deferred_read_response": "0x00005fb9", - "att_server_get_mtu": "0x00005fd1", - "att_server_indicate": "0x00006049", - "att_server_init": "0x000060cd", - "att_server_notify": "0x00006109", - "att_server_register_packet_handler": "0x00006221", - "att_server_request_can_send_now_event": "0x0000622d", - "att_set_db": "0x00006249", - "att_set_read_callback": "0x0000625d", - "att_set_write_callback": "0x00006269", - "bd_addr_cmp": "0x000063d9", - "bd_addr_copy": "0x000063df", - "bd_addr_to_str": "0x000063e9", - "big_endian_read_16": "0x00006421", - "big_endian_read_32": "0x00006429", - "big_endian_store_16": "0x0000643d", - "big_endian_store_32": "0x00006449", - "btstack_config": "0x0000659d", - "btstack_memory_pool_create": "0x000066dd", - "btstack_memory_pool_free": "0x00006705", - "btstack_memory_pool_get": "0x00006765", - "btstack_push_user_msg": "0x000067cd", - "btstack_push_user_runnable": "0x000067d9", - "btstack_reset": "0x000067e5", - "char_for_nibble": "0x00006af7", - "eTaskConfirmSleepModeStatus": "0x00006ddd", - "gap_add_dev_to_periodic_list": "0x000073d9", - "gap_add_whitelist": "0x000073e9", - "gap_aes_encrypt": "0x000073f5", - "gap_clear_white_lists": "0x0000742d", - "gap_clr_adv_set": "0x00007439", - "gap_clr_periodic_adv_list": "0x00007445", - "gap_create_connection_cancel": "0x00007451", - "gap_disconnect": "0x0000745d", - "gap_disconnect_all": "0x00007489", - "gap_ext_create_connection": "0x000074c9", - "gap_get_connection_parameter_range": "0x000075bd", - "gap_le_read_channel_map": "0x000075f9", - "gap_periodic_adv_create_sync": "0x00007665", - "gap_periodic_adv_create_sync_cancel": "0x00007689", - "gap_periodic_adv_term_sync": "0x00007695", - "gap_read_local_tx_power_level": "0x00007729", - "gap_read_periodic_adv_list_size": "0x00007739", - "gap_read_phy": "0x00007745", - "gap_read_remote_tx_power_level": "0x00007751", - "gap_read_remote_used_features": "0x00007761", - "gap_read_remote_version": "0x0000776d", - "gap_read_rssi": "0x00007779", - "gap_remove_whitelist": "0x00007785", - "gap_rmv_adv_set": "0x00007801", - "gap_rmv_dev_from_periodic_list": "0x0000780d", - "gap_rx_test_v2": "0x0000781d", - "gap_set_adv_set_random_addr": "0x00007855", - "gap_set_callback_for_next_hci": "0x00007891", - "gap_set_connection_parameter_range": "0x000078b1", - "gap_set_data_length": "0x000078c9", - "gap_set_def_phy": "0x000078e1", - "gap_set_default_subrate": "0x000078f1", - "gap_set_ext_adv_data": "0x0000790d", - "gap_set_ext_adv_enable": "0x00007925", - "gap_set_ext_adv_para": "0x00007995", - "gap_set_ext_scan_enable": "0x00007a6d", - "gap_set_ext_scan_para": "0x00007a85", - "gap_set_ext_scan_response_data": "0x00007b25", - "gap_set_host_channel_classification": "0x00007b3d", - "gap_set_path_loss_reporting_enable": "0x00007b4d", - "gap_set_path_loss_reporting_param": "0x00007b5d", - "gap_set_periodic_adv_data": "0x00007b79", - "gap_set_periodic_adv_enable": "0x00007be9", - "gap_set_periodic_adv_para": "0x00007bf9", - "gap_set_phy": "0x00007c11", - "gap_set_random_device_address": "0x00007c2d", - "gap_set_tx_power_reporting_enable": "0x00007c4d", - "gap_start_ccm": "0x00007c6d", - "gap_subrate_request": "0x00007cb5", - "gap_test_end": "0x00007cd1", - "gap_tx_test_v2": "0x00007cdd", - "gap_tx_test_v4": "0x00007cf5", - "gap_update_connection_parameters": "0x00007d19", - "gap_vendor_tx_continuous_wave": "0x00007d5d", - "gatt_client_cancel_write": "0x00008285", - "gatt_client_discover_characteristic_descriptors": "0x000082ab", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000082eb", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0000833b", - "gatt_client_discover_characteristics_for_service": "0x0000838b", - "gatt_client_discover_primary_services": "0x000083c1", - "gatt_client_discover_primary_services_by_uuid128": "0x000083f3", - "gatt_client_discover_primary_services_by_uuid16": "0x00008437", - "gatt_client_execute_write": "0x00008473", - "gatt_client_find_included_services_for_service": "0x00008499", - "gatt_client_get_mtu": "0x000084c7", - "gatt_client_is_ready": "0x00008569", - "gatt_client_listen_for_characteristic_value_updates": "0x0000857f", - "gatt_client_prepare_write": "0x000085a1", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x000085dd", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008607", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x0000860d", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0000863b", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008641", - "gatt_client_read_multiple_characteristic_values": "0x0000866f", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x0000869f", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x000086cd", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008719", - "gatt_client_register_handler": "0x00008765", - "gatt_client_reliable_write_long_value_of_characteristic": "0x00008771", - "gatt_client_signed_write_without_response": "0x00008ba1", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008c65", - "gatt_client_write_client_characteristic_configuration": "0x00008c9f", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008cf1", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008d01", - "gatt_client_write_long_value_of_characteristic": "0x00008d3d", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008d4d", - "gatt_client_write_value_of_characteristic": "0x00008d89", - "gatt_client_write_value_of_characteristic_without_response": "0x00008dbf", - "hci_add_event_handler": "0x0000a355", - "hci_power_control": "0x0000ab05", - "hci_register_acl_packet_handler": "0x0000acb9", - "kv_commit": "0x0000b42d", - "kv_get": "0x0000b489", - "kv_init": "0x0000b495", - "kv_init_backend": "0x0000b515", - "kv_put": "0x0000b529", - "kv_remove": "0x0000b535", - "kv_remove_all": "0x0000b569", - "kv_value_modified": "0x0000b599", - "kv_value_modified_of_key": "0x0000b5b5", - "kv_visit": "0x0000b5c1", - "l2cap_add_event_handler": "0x0000b651", - "l2cap_can_send_packet_now": "0x0000b661", - "l2cap_create_le_credit_based_connection_request": "0x0000b81d", - "l2cap_credit_based_send": "0x0000b961", - "l2cap_credit_based_send_continue": "0x0000b98d", - "l2cap_disconnect": "0x0000ba09", - "l2cap_get_le_credit_based_connection_credits": "0x0000bc59", - "l2cap_get_peer_mtu_for_local_cid": "0x0000bc75", - "l2cap_init": "0x0000c049", - "l2cap_le_send_flow_control_credit": "0x0000c13f", - "l2cap_max_le_mtu": "0x0000c449", - "l2cap_register_packet_handler": "0x0000c571", - "l2cap_register_service": "0x0000c57d", - "l2cap_request_can_send_now_event": "0x0000c68d", - "l2cap_request_connection_parameter_update": "0x0000c6a7", - "l2cap_send_echo_request": "0x0000cb81", - "l2cap_unregister_service": "0x0000cc41", - "le_device_db_add": "0x0000cc99", - "le_device_db_find": "0x0000cd71", - "le_device_db_from_key": "0x0000cd9d", - "le_device_db_iter_cur": "0x0000cda5", - "le_device_db_iter_cur_key": "0x0000cda9", - "le_device_db_iter_init": "0x0000cdad", - "le_device_db_iter_next": "0x0000cdb5", - "le_device_db_remove_key": "0x0000cddb", - "ll_ackable_packet_alloc": "0x0000ce07", - "ll_ackable_packet_get_status": "0x0000cf41", - "ll_ackable_packet_run": "0x0000cfb1", - "ll_ackable_packet_set_tx_data": "0x0000d055", - "ll_adjust_conn_peer_tx_power": "0x0000d07d", - "ll_aes_encrypt": "0x0000d0a9", - "ll_channel_monitor_alloc": "0x0000d125", - "ll_channel_monitor_check_each_pdu": "0x0000d1a7", - "ll_channel_monitor_run": "0x0000d20d", - "ll_config": "0x0000d2c1", - "ll_conn_abort": "0x0000d2dd", - "ll_create_conn": "0x0000d311", - "ll_dhkey_generated": "0x0000d58d", - "ll_free": "0x0000d5c1", - "ll_get_conn_events_info": "0x0000d5cd", - "ll_get_conn_info": "0x0000d6b1", - "ll_get_heap_free_size": "0x0000d6fd", - "ll_hint_on_ce_len": "0x0000d711", - "ll_install_ecc_engine": "0x0000d749", - "ll_legacy_adv_set_interval": "0x0000d755", - "ll_lock_frequency": "0x0000d765", - "ll_malloc": "0x0000d7c9", - "ll_p256_key_pair_generated": "0x0000d7d1", - "ll_raw_packet_alloc": "0x0000d985", - "ll_raw_packet_free": "0x0000da59", - "ll_raw_packet_get_bare_rx_data": "0x0000da91", - "ll_raw_packet_get_rx_data": "0x0000db57", - "ll_raw_packet_recv": "0x0000dbf9", - "ll_raw_packet_send": "0x0000dcb5", - "ll_raw_packet_set_bare_data": "0x0000dd9d", - "ll_raw_packet_set_bare_mode": "0x0000dddb", - "ll_raw_packet_set_param": "0x0000dee1", - "ll_raw_packet_set_tx_data": "0x0000df3f", - "ll_register_hci_acl_previewer": "0x0000dfa5", - "ll_scan_set_fixed_channel": "0x0000e009", - "ll_set_adv_access_address": "0x0000e221", - "ll_set_adv_coded_scheme": "0x0000e22d", - "ll_set_conn_acl_report_latency": "0x0000e25d", - "ll_set_conn_coded_scheme": "0x0000e28d", - "ll_set_conn_interval_unit": "0x0000e2b9", - "ll_set_conn_latency": "0x0000e2c5", - "ll_set_conn_tx_power": "0x0000e2f5", - "ll_set_def_antenna": "0x0000e331", - "ll_set_initiating_coded_scheme": "0x0000e34d", - "ll_set_max_conn_number": "0x0000e359", - "ll_set_tx_power_range": "0x0000e3ed", - "ll_unlock_frequency": "0x0000e415", - "nibble_for_char": "0x0001fed1", - "platform_calibrate_rt_clk": "0x0001ff7f", + "att_server_can_send_packet_now": "0x00005fb9", + "att_server_deferred_read_response": "0x00005fbd", + "att_server_get_mtu": "0x00005fd5", + "att_server_indicate": "0x0000604d", + "att_server_init": "0x000060d1", + "att_server_notify": "0x0000610d", + "att_server_register_packet_handler": "0x00006225", + "att_server_request_can_send_now_event": "0x00006231", + "att_set_db": "0x0000624d", + "att_set_read_callback": "0x00006261", + "att_set_write_callback": "0x0000626d", + "bd_addr_cmp": "0x000063dd", + "bd_addr_copy": "0x000063e3", + "bd_addr_to_str": "0x000063ed", + "big_endian_read_16": "0x00006425", + "big_endian_read_32": "0x0000642d", + "big_endian_store_16": "0x00006441", + "big_endian_store_32": "0x0000644d", + "btstack_config": "0x000065a1", + "btstack_memory_pool_create": "0x000066e1", + "btstack_memory_pool_free": "0x00006709", + "btstack_memory_pool_get": "0x00006769", + "btstack_push_user_msg": "0x000067d1", + "btstack_push_user_runnable": "0x000067dd", + "btstack_reset": "0x000067e9", + "char_for_nibble": "0x00006afb", + "eTaskConfirmSleepModeStatus": "0x00006de1", + "gap_add_dev_to_periodic_list": "0x000073dd", + "gap_add_whitelist": "0x000073ed", + "gap_aes_encrypt": "0x000073f9", + "gap_clear_white_lists": "0x00007431", + "gap_clr_adv_set": "0x0000743d", + "gap_clr_periodic_adv_list": "0x00007449", + "gap_create_connection_cancel": "0x00007455", + "gap_disconnect": "0x00007461", + "gap_disconnect_all": "0x0000748d", + "gap_ext_create_connection": "0x000074cd", + "gap_get_connection_parameter_range": "0x000075c1", + "gap_le_read_channel_map": "0x000075fd", + "gap_periodic_adv_create_sync": "0x00007669", + "gap_periodic_adv_create_sync_cancel": "0x0000768d", + "gap_periodic_adv_term_sync": "0x00007699", + "gap_read_local_tx_power_level": "0x0000772d", + "gap_read_periodic_adv_list_size": "0x0000773d", + "gap_read_phy": "0x00007749", + "gap_read_remote_tx_power_level": "0x00007755", + "gap_read_remote_used_features": "0x00007765", + "gap_read_remote_version": "0x00007771", + "gap_read_rssi": "0x0000777d", + "gap_remove_whitelist": "0x00007789", + "gap_rmv_adv_set": "0x00007805", + "gap_rmv_dev_from_periodic_list": "0x00007811", + "gap_rx_test_v2": "0x00007821", + "gap_set_adv_set_random_addr": "0x00007859", + "gap_set_callback_for_next_hci": "0x00007895", + "gap_set_connection_parameter_range": "0x000078b5", + "gap_set_data_length": "0x000078cd", + "gap_set_def_phy": "0x000078e5", + "gap_set_default_subrate": "0x000078f5", + "gap_set_ext_adv_data": "0x00007911", + "gap_set_ext_adv_enable": "0x00007929", + "gap_set_ext_adv_para": "0x00007999", + "gap_set_ext_scan_enable": "0x00007a71", + "gap_set_ext_scan_para": "0x00007a89", + "gap_set_ext_scan_response_data": "0x00007b29", + "gap_set_host_channel_classification": "0x00007b41", + "gap_set_path_loss_reporting_enable": "0x00007b51", + "gap_set_path_loss_reporting_param": "0x00007b61", + "gap_set_periodic_adv_data": "0x00007b7d", + "gap_set_periodic_adv_enable": "0x00007bed", + "gap_set_periodic_adv_para": "0x00007bfd", + "gap_set_phy": "0x00007c15", + "gap_set_random_device_address": "0x00007c31", + "gap_set_tx_power_reporting_enable": "0x00007c51", + "gap_start_ccm": "0x00007c71", + "gap_subrate_request": "0x00007cb9", + "gap_test_end": "0x00007cd5", + "gap_tx_test_v2": "0x00007ce1", + "gap_tx_test_v4": "0x00007cf9", + "gap_update_connection_parameters": "0x00007d1d", + "gap_vendor_tx_continuous_wave": "0x00007d61", + "gatt_client_cancel_write": "0x00008289", + "gatt_client_discover_characteristic_descriptors": "0x000082af", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000082ef", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0000833f", + "gatt_client_discover_characteristics_for_service": "0x0000838f", + "gatt_client_discover_primary_services": "0x000083c5", + "gatt_client_discover_primary_services_by_uuid128": "0x000083f7", + "gatt_client_discover_primary_services_by_uuid16": "0x0000843b", + "gatt_client_execute_write": "0x00008477", + "gatt_client_find_included_services_for_service": "0x0000849d", + "gatt_client_get_mtu": "0x000084cb", + "gatt_client_is_ready": "0x0000856d", + "gatt_client_listen_for_characteristic_value_updates": "0x00008583", + "gatt_client_prepare_write": "0x000085a5", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x000085e1", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0000860b", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008611", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0000863f", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008645", + "gatt_client_read_multiple_characteristic_values": "0x00008673", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x000086a3", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x000086d1", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x0000871d", + "gatt_client_register_handler": "0x00008769", + "gatt_client_reliable_write_long_value_of_characteristic": "0x00008775", + "gatt_client_signed_write_without_response": "0x00008ba5", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008c69", + "gatt_client_write_client_characteristic_configuration": "0x00008ca3", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008cf5", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008d05", + "gatt_client_write_long_value_of_characteristic": "0x00008d41", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008d51", + "gatt_client_write_value_of_characteristic": "0x00008d8d", + "gatt_client_write_value_of_characteristic_without_response": "0x00008dc3", + "hci_add_event_handler": "0x0000a359", + "hci_power_control": "0x0000ab09", + "hci_register_acl_packet_handler": "0x0000acbd", + "kv_commit": "0x0000b431", + "kv_get": "0x0000b48d", + "kv_init": "0x0000b499", + "kv_init_backend": "0x0000b519", + "kv_put": "0x0000b52d", + "kv_remove": "0x0000b539", + "kv_remove_all": "0x0000b56d", + "kv_value_modified": "0x0000b59d", + "kv_value_modified_of_key": "0x0000b5b9", + "kv_visit": "0x0000b5c5", + "l2cap_add_event_handler": "0x0000b655", + "l2cap_can_send_packet_now": "0x0000b665", + "l2cap_create_le_credit_based_connection_request": "0x0000b821", + "l2cap_credit_based_send": "0x0000b965", + "l2cap_credit_based_send_continue": "0x0000b991", + "l2cap_disconnect": "0x0000ba0d", + "l2cap_get_le_credit_based_connection_credits": "0x0000bc5d", + "l2cap_get_peer_mtu_for_local_cid": "0x0000bc79", + "l2cap_init": "0x0000c04d", + "l2cap_le_send_flow_control_credit": "0x0000c143", + "l2cap_max_le_mtu": "0x0000c44d", + "l2cap_register_packet_handler": "0x0000c575", + "l2cap_register_service": "0x0000c581", + "l2cap_request_can_send_now_event": "0x0000c691", + "l2cap_request_connection_parameter_update": "0x0000c6ab", + "l2cap_send_echo_request": "0x0000cb85", + "l2cap_unregister_service": "0x0000cc45", + "le_device_db_add": "0x0000cc9d", + "le_device_db_find": "0x0000cd75", + "le_device_db_from_key": "0x0000cda1", + "le_device_db_iter_cur": "0x0000cda9", + "le_device_db_iter_cur_key": "0x0000cdad", + "le_device_db_iter_init": "0x0000cdb1", + "le_device_db_iter_next": "0x0000cdb9", + "le_device_db_remove_key": "0x0000cddf", + "ll_ackable_packet_alloc": "0x0000ce0b", + "ll_ackable_packet_get_status": "0x0000cf45", + "ll_ackable_packet_run": "0x0000cfb5", + "ll_ackable_packet_set_tx_data": "0x0000d059", + "ll_adjust_conn_peer_tx_power": "0x0000d081", + "ll_aes_encrypt": "0x0000d0ad", + "ll_channel_monitor_alloc": "0x0000d129", + "ll_channel_monitor_check_each_pdu": "0x0000d1ab", + "ll_channel_monitor_run": "0x0000d211", + "ll_config": "0x0000d2c5", + "ll_conn_abort": "0x0000d2e1", + "ll_create_conn": "0x0000d315", + "ll_dhkey_generated": "0x0000d591", + "ll_free": "0x0000d5c5", + "ll_get_conn_events_info": "0x0000d5d1", + "ll_get_conn_info": "0x0000d6b5", + "ll_get_heap_free_size": "0x0000d701", + "ll_hint_on_ce_len": "0x0000d715", + "ll_install_ecc_engine": "0x0000d74d", + "ll_legacy_adv_set_interval": "0x0000d759", + "ll_lock_frequency": "0x0000d769", + "ll_malloc": "0x0000d7cd", + "ll_p256_key_pair_generated": "0x0000d7d5", + "ll_raw_packet_alloc": "0x0000d989", + "ll_raw_packet_free": "0x0000da5d", + "ll_raw_packet_get_bare_rx_data": "0x0000da95", + "ll_raw_packet_get_rx_data": "0x0000db5b", + "ll_raw_packet_recv": "0x0000dbfd", + "ll_raw_packet_send": "0x0000dcb9", + "ll_raw_packet_set_bare_data": "0x0000dda1", + "ll_raw_packet_set_bare_mode": "0x0000dddf", + "ll_raw_packet_set_param": "0x0000dee5", + "ll_raw_packet_set_tx_data": "0x0000df43", + "ll_register_hci_acl_previewer": "0x0000dfa9", + "ll_scan_set_fixed_channel": "0x0000e00d", + "ll_set_adv_access_address": "0x0000e225", + "ll_set_adv_coded_scheme": "0x0000e231", + "ll_set_conn_acl_report_latency": "0x0000e261", + "ll_set_conn_coded_scheme": "0x0000e291", + "ll_set_conn_interval_unit": "0x0000e2bd", + "ll_set_conn_latency": "0x0000e2c9", + "ll_set_conn_tx_power": "0x0000e2f9", + "ll_set_def_antenna": "0x0000e335", + "ll_set_initiating_coded_scheme": "0x0000e351", + "ll_set_max_conn_number": "0x0000e35d", + "ll_set_tx_power_range": "0x0000e3f1", + "ll_unlock_frequency": "0x0000e419", + "nibble_for_char": "0x0001fed5", + "platform_calibrate_rt_clk": "0x0001ff83", "platform_call_on_stack": "0x00004183", - "platform_config": "0x0001ff85", - "platform_delete_timer": "0x000200a9", - "platform_enable_irq": "0x000200b1", - "platform_get_current_task": "0x000200e9", - "platform_get_gen_os_driver": "0x0002010d", - "platform_get_heap_status": "0x00020115", - "platform_get_link_layer_interf": "0x0002012d", - "platform_get_task_handle": "0x00020135", - "platform_get_timer_counter": "0x00020155", - "platform_get_us_time": "0x00020159", - "platform_get_version": "0x0002015d", - "platform_hrng": "0x00020165", - "platform_install_isr_stack": "0x0002016d", - "platform_install_task_stack": "0x00020179", - "platform_patch_rf_init_data": "0x000201b1", - "platform_printf": "0x000201bd", - "platform_raise_assertion": "0x000201d1", - "platform_rand": "0x000201e5", - "platform_read_info": "0x000201e9", - "platform_read_persistent_reg": "0x00020219", - "platform_reset": "0x00020229", - "platform_rt_rc_auto_tune": "0x0002024d", - "platform_rt_rc_auto_tune2": "0x00020255", - "platform_rt_rc_tune": "0x000202dd", - "platform_set_abs_timer": "0x000202f1", - "platform_set_evt_callback": "0x000202f5", - "platform_set_evt_callback_table": "0x00020309", - "platform_set_irq_callback": "0x00020315", - "platform_set_irq_callback_table": "0x00020331", - "platform_set_rf_clk_source": "0x0002033d", - "platform_set_rf_init_data": "0x00020349", - "platform_set_rf_power_mapping": "0x00020355", - "platform_set_timer": "0x00020361", - "platform_shutdown": "0x00020365", - "platform_switch_app": "0x00020369", - "platform_trace_raw": "0x00020395", - "platform_write_persistent_reg": "0x000203ad", - "printf_hexdump": "0x00020561", - "pvPortMalloc": "0x00021055", - "pvTaskIncrementMutexHeldCount": "0x0002113d", - "pvTimerGetTimerID": "0x00021155", - "pxPortInitialiseStack": "0x00021181", - "reverse_128": "0x00021329", - "reverse_24": "0x0002132f", - "reverse_256": "0x00021335", - "reverse_48": "0x0002133b", - "reverse_56": "0x00021341", - "reverse_64": "0x00021347", - "reverse_bd_addr": "0x0002134d", - "reverse_bytes": "0x00021353", - "sm_add_event_handler": "0x00021541", - "sm_address_resolution_lookup": "0x00021685", - "sm_authenticated": "0x00021ab1", - "sm_authorization_decline": "0x00021abf", - "sm_authorization_grant": "0x00021adf", - "sm_authorization_state": "0x00021aff", - "sm_bonding_decline": "0x00021b19", - "sm_config": "0x00021f99", - "sm_config_conn": "0x00021fb1", - "sm_encryption_key_size": "0x0002216b", - "sm_just_works_confirm": "0x00022ebd", - "sm_le_device_key": "0x000232ad", - "sm_numeric_comparison_confirm": "0x00023403", - "sm_passkey_input": "0x00023441", - "sm_private_random_address_generation_get": "0x00023a49", - "sm_private_random_address_generation_get_mode": "0x00023a51", - "sm_private_random_address_generation_set_mode": "0x00023a5d", - "sm_private_random_address_generation_set_update_period": "0x00023a85", - "sm_register_external_ltk_callback": "0x00023d11", - "sm_register_oob_data_callback": "0x00023d1d", - "sm_register_sc_oob_data_callback": "0x00023d29", - "sm_request_pairing": "0x00023d35", - "sm_sc_generate_oob_data": "0x00024971", - "sm_send_security_request": "0x00024aa1", - "sm_set_accepted_stk_generation_methods": "0x00024ac9", - "sm_set_authentication_requirements": "0x00024ad5", - "sm_set_encryption_key_size_range": "0x00024ae5", - "sscanf_bd_addr": "0x00024f01", - "sysSetPublicDeviceAddr": "0x000252b5", - "uuid128_to_str": "0x000258f1", - "uuid_add_bluetooth_prefix": "0x00025949", - "uuid_has_bluetooth_prefix": "0x00025969", - "uxListRemove": "0x00025985", - "uxQueueMessagesWaiting": "0x000259ad", - "uxQueueMessagesWaitingFromISR": "0x000259d5", - "uxQueueSpacesAvailable": "0x000259f1", - "uxTaskGetStackHighWaterMark": "0x00025a1d", - "uxTaskPriorityGet": "0x00025a3d", - "uxTaskPriorityGetFromISR": "0x00025a59", - "vListInitialise": "0x00025b13", - "vListInitialiseItem": "0x00025b29", - "vListInsert": "0x00025b2f", - "vListInsertEnd": "0x00025b5f", - "vPortEndScheduler": "0x00025b79", - "vPortEnterCritical": "0x00025ba5", - "vPortExitCritical": "0x00025be9", - "vPortFree": "0x00025c1d", - "vPortSuppressTicksAndSleep": "0x00025cb1", - "vPortValidateInterruptPriority": "0x00025dd9", - "vQueueDelete": "0x00025e35", - "vQueueWaitForMessageRestricted": "0x00025e61", - "vTaskDelay": "0x00025ea9", - "vTaskInternalSetTimeOutState": "0x00025ef5", - "vTaskMissedYield": "0x00025f05", - "vTaskPlaceOnEventList": "0x00025f11", - "vTaskPlaceOnEventListRestricted": "0x00025f49", - "vTaskPriorityDisinheritAfterTimeout": "0x00025f89", - "vTaskPrioritySet": "0x00026035", - "vTaskResume": "0x000260fd", - "vTaskStartScheduler": "0x00026181", - "vTaskStepTick": "0x00026211", - "vTaskSuspend": "0x00026241", - "vTaskSuspendAll": "0x000262fd", - "vTaskSwitchContext": "0x0002630d", - "xPortStartScheduler": "0x000263bd", - "xQueueAddToSet": "0x00026485", - "xQueueCreateCountingSemaphore": "0x000264a9", - "xQueueCreateCountingSemaphoreStatic": "0x000264e5", - "xQueueCreateMutex": "0x00026529", - "xQueueCreateMutexStatic": "0x0002653f", - "xQueueCreateSet": "0x00026559", - "xQueueGenericCreate": "0x00026561", - "xQueueGenericCreateStatic": "0x000265ad", - "xQueueGenericReset": "0x00026615", - "xQueueGenericSend": "0x000266a1", - "xQueueGenericSendFromISR": "0x0002680d", - "xQueueGiveFromISR": "0x000268cd", - "xQueueGiveMutexRecursive": "0x00026971", - "xQueueIsQueueEmptyFromISR": "0x000269b1", - "xQueueIsQueueFullFromISR": "0x000269d5", - "xQueuePeek": "0x000269fd", - "xQueuePeekFromISR": "0x00026b25", - "xQueueReceive": "0x00026b91", - "xQueueReceiveFromISR": "0x00026cbd", - "xQueueRemoveFromSet": "0x00026d51", - "xQueueSelectFromSet": "0x00026d73", - "xQueueSelectFromSetFromISR": "0x00026d85", - "xQueueSemaphoreTake": "0x00026d99", - "xQueueTakeMutexRecursive": "0x00026f05", - "xTaskCheckForTimeOut": "0x00026f49", - "xTaskCreate": "0x00026fb9", - "xTaskCreateStatic": "0x00027015", - "xTaskGetCurrentTaskHandle": "0x00027085", - "xTaskGetSchedulerState": "0x00027091", - "xTaskGetTickCount": "0x000270ad", - "xTaskGetTickCountFromISR": "0x000270b9", - "xTaskIncrementTick": "0x000270c9", - "xTaskPriorityDisinherit": "0x00027195", - "xTaskPriorityInherit": "0x00027229", - "xTaskRemoveFromEventList": "0x000272bd", - "xTaskResumeAll": "0x0002733d", - "xTaskResumeFromISR": "0x00027405", - "xTimerCreate": "0x00027491", - "xTimerCreateStatic": "0x000274c5", - "xTimerCreateTimerTask": "0x000274fd", - "xTimerGenericCommand": "0x00027569", - "xTimerGetExpiryTime": "0x000275d9", - "xTimerGetTimerDaemonTaskHandle": "0x000275f9" + "platform_config": "0x0001ff89", + "platform_delete_timer": "0x000200ad", + "platform_enable_irq": "0x000200b5", + "platform_get_current_task": "0x000200ed", + "platform_get_gen_os_driver": "0x00020111", + "platform_get_heap_status": "0x00020119", + "platform_get_link_layer_interf": "0x00020131", + "platform_get_task_handle": "0x00020139", + "platform_get_timer_counter": "0x00020159", + "platform_get_us_time": "0x0002015d", + "platform_get_version": "0x00020161", + "platform_hrng": "0x00020169", + "platform_install_isr_stack": "0x00020171", + "platform_install_task_stack": "0x0002017d", + "platform_patch_rf_init_data": "0x000201b5", + "platform_printf": "0x000201c1", + "platform_raise_assertion": "0x000201d5", + "platform_rand": "0x000201e9", + "platform_read_info": "0x000201ed", + "platform_read_persistent_reg": "0x0002021d", + "platform_reset": "0x0002022d", + "platform_rt_rc_auto_tune": "0x00020251", + "platform_rt_rc_auto_tune2": "0x00020259", + "platform_rt_rc_tune": "0x000202e1", + "platform_set_abs_timer": "0x000202f5", + "platform_set_evt_callback": "0x000202f9", + "platform_set_evt_callback_table": "0x0002030d", + "platform_set_irq_callback": "0x00020319", + "platform_set_irq_callback_table": "0x00020335", + "platform_set_rf_clk_source": "0x00020341", + "platform_set_rf_init_data": "0x0002034d", + "platform_set_rf_power_mapping": "0x00020359", + "platform_set_timer": "0x00020365", + "platform_shutdown": "0x00020369", + "platform_switch_app": "0x0002036d", + "platform_trace_raw": "0x00020399", + "platform_write_persistent_reg": "0x000203b1", + "printf_hexdump": "0x00020565", + "pvPortMalloc": "0x00021059", + "pvTaskIncrementMutexHeldCount": "0x00021141", + "pvTimerGetTimerID": "0x00021159", + "pxPortInitialiseStack": "0x00021185", + "reverse_128": "0x0002132d", + "reverse_24": "0x00021333", + "reverse_256": "0x00021339", + "reverse_48": "0x0002133f", + "reverse_56": "0x00021345", + "reverse_64": "0x0002134b", + "reverse_bd_addr": "0x00021351", + "reverse_bytes": "0x00021357", + "sm_add_event_handler": "0x00021545", + "sm_address_resolution_lookup": "0x00021689", + "sm_authenticated": "0x00021ab5", + "sm_authorization_decline": "0x00021ac3", + "sm_authorization_grant": "0x00021ae3", + "sm_authorization_state": "0x00021b03", + "sm_bonding_decline": "0x00021b1d", + "sm_config": "0x00021f9d", + "sm_config_conn": "0x00021fb5", + "sm_encryption_key_size": "0x0002216f", + "sm_just_works_confirm": "0x00022ec5", + "sm_le_device_key": "0x000232b5", + "sm_numeric_comparison_confirm": "0x0002340b", + "sm_passkey_input": "0x00023449", + "sm_private_random_address_generation_get": "0x00023a51", + "sm_private_random_address_generation_get_mode": "0x00023a59", + "sm_private_random_address_generation_set_mode": "0x00023a65", + "sm_private_random_address_generation_set_update_period": "0x00023a8d", + "sm_register_external_ltk_callback": "0x00023d19", + "sm_register_oob_data_callback": "0x00023d25", + "sm_register_sc_oob_data_callback": "0x00023d31", + "sm_request_pairing": "0x00023d3d", + "sm_sc_generate_oob_data": "0x00024979", + "sm_send_security_request": "0x00024aa9", + "sm_set_accepted_stk_generation_methods": "0x00024ad1", + "sm_set_authentication_requirements": "0x00024add", + "sm_set_encryption_key_size_range": "0x00024aed", + "sscanf_bd_addr": "0x00024f09", + "sysSetPublicDeviceAddr": "0x000252bd", + "uuid128_to_str": "0x000258f9", + "uuid_add_bluetooth_prefix": "0x00025951", + "uuid_has_bluetooth_prefix": "0x00025971", + "uxListRemove": "0x0002598d", + "uxQueueMessagesWaiting": "0x000259b5", + "uxQueueMessagesWaitingFromISR": "0x000259dd", + "uxQueueSpacesAvailable": "0x000259f9", + "uxTaskGetStackHighWaterMark": "0x00025a25", + "uxTaskPriorityGet": "0x00025a45", + "uxTaskPriorityGetFromISR": "0x00025a61", + "vListInitialise": "0x00025b1b", + "vListInitialiseItem": "0x00025b31", + "vListInsert": "0x00025b37", + "vListInsertEnd": "0x00025b67", + "vPortEndScheduler": "0x00025b81", + "vPortEnterCritical": "0x00025bad", + "vPortExitCritical": "0x00025bf1", + "vPortFree": "0x00025c25", + "vPortSuppressTicksAndSleep": "0x00025cb9", + "vPortValidateInterruptPriority": "0x00025de1", + "vQueueDelete": "0x00025e3d", + "vQueueWaitForMessageRestricted": "0x00025e69", + "vTaskDelay": "0x00025eb1", + "vTaskInternalSetTimeOutState": "0x00025efd", + "vTaskMissedYield": "0x00025f0d", + "vTaskPlaceOnEventList": "0x00025f19", + "vTaskPlaceOnEventListRestricted": "0x00025f51", + "vTaskPriorityDisinheritAfterTimeout": "0x00025f91", + "vTaskPrioritySet": "0x0002603d", + "vTaskResume": "0x00026105", + "vTaskStartScheduler": "0x00026189", + "vTaskStepTick": "0x00026219", + "vTaskSuspend": "0x00026249", + "vTaskSuspendAll": "0x00026305", + "vTaskSwitchContext": "0x00026315", + "xPortStartScheduler": "0x000263c5", + "xQueueAddToSet": "0x0002648d", + "xQueueCreateCountingSemaphore": "0x000264b1", + "xQueueCreateCountingSemaphoreStatic": "0x000264ed", + "xQueueCreateMutex": "0x00026531", + "xQueueCreateMutexStatic": "0x00026547", + "xQueueCreateSet": "0x00026561", + "xQueueGenericCreate": "0x00026569", + "xQueueGenericCreateStatic": "0x000265b5", + "xQueueGenericReset": "0x0002661d", + "xQueueGenericSend": "0x000266a9", + "xQueueGenericSendFromISR": "0x00026815", + "xQueueGiveFromISR": "0x000268d5", + "xQueueGiveMutexRecursive": "0x00026979", + "xQueueIsQueueEmptyFromISR": "0x000269b9", + "xQueueIsQueueFullFromISR": "0x000269dd", + "xQueuePeek": "0x00026a05", + "xQueuePeekFromISR": "0x00026b2d", + "xQueueReceive": "0x00026b99", + "xQueueReceiveFromISR": "0x00026cc5", + "xQueueRemoveFromSet": "0x00026d59", + "xQueueSelectFromSet": "0x00026d7b", + "xQueueSelectFromSetFromISR": "0x00026d8d", + "xQueueSemaphoreTake": "0x00026da1", + "xQueueTakeMutexRecursive": "0x00026f0d", + "xTaskCheckForTimeOut": "0x00026f51", + "xTaskCreate": "0x00026fc1", + "xTaskCreateStatic": "0x0002701d", + "xTaskGetCurrentTaskHandle": "0x0002708d", + "xTaskGetSchedulerState": "0x00027099", + "xTaskGetTickCount": "0x000270b5", + "xTaskGetTickCountFromISR": "0x000270c1", + "xTaskIncrementTick": "0x000270d1", + "xTaskPriorityDisinherit": "0x0002719d", + "xTaskPriorityInherit": "0x00027231", + "xTaskRemoveFromEventList": "0x000272c5", + "xTaskResumeAll": "0x00027345", + "xTaskResumeFromISR": "0x0002740d", + "xTimerCreate": "0x00027499", + "xTimerCreateStatic": "0x000274cd", + "xTimerCreateTimerTask": "0x00027505", + "xTimerGenericCommand": "0x00027571", + "xTimerGetExpiryTime": "0x000275e1", + "xTimerGetTimerDaemonTaskHandle": "0x00027601" } \ No newline at end of file diff --git a/bundles/exp/ING9187xx/meta.json b/bundles/exp/ING9187xx/meta.json index 6f7505a2c..4d452b1bd 100644 --- a/bundles/exp/ING9187xx/meta.json +++ b/bundles/exp/ING9187xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 152040 + "size": 152044 }, "version": [ 1, 9, - 42 + 43 ] } \ No newline at end of file diff --git a/bundles/exp/ING9187xx/platform.bin b/bundles/exp/ING9187xx/platform.bin index 03e289f1b659619b71f55b10331ef8411beb8fcf..94569c95f54ffd8077c81185ad38359291d6e8cd 100644 GIT binary patch delta 20331 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 diff --git a/bundles/exp/ING9188xx/apis.json b/bundles/exp/ING9188xx/apis.json index 65f7b74e9..1fb9fb658 100644 --- a/bundles/exp/ING9188xx/apis.json +++ b/bundles/exp/ING9188xx/apis.json @@ -6,384 +6,384 @@ "att_dispatch_server_can_send_now": "0x000058f1", "att_dispatch_server_request_can_send_now_event": "0x000058f7", "att_emit_general_event": "0x000059a9", - "att_server_can_send_packet_now": "0x000060d9", - "att_server_deferred_read_response": "0x000060dd", - "att_server_get_mtu": "0x000060f5", - "att_server_indicate": "0x0000616d", - "att_server_init": "0x000061f1", - "att_server_notify": "0x0000622d", - "att_server_register_packet_handler": "0x00006345", - "att_server_request_can_send_now_event": "0x00006351", - "att_set_db": "0x0000636d", - "att_set_read_callback": "0x00006381", - "att_set_write_callback": "0x0000638d", - "bd_addr_cmp": "0x000064fd", - "bd_addr_copy": "0x00006503", - "bd_addr_to_str": "0x0000650d", - "big_endian_read_16": "0x00006545", - "big_endian_read_32": "0x0000654d", - "big_endian_store_16": "0x00006561", - "big_endian_store_32": "0x0000656d", - "btstack_config": "0x000066c1", - "btstack_memory_pool_create": "0x00006801", - "btstack_memory_pool_free": "0x00006829", - "btstack_memory_pool_get": "0x00006889", - "btstack_push_user_msg": "0x000068f1", - "btstack_push_user_runnable": "0x000068fd", - "btstack_reset": "0x00006909", - "char_for_nibble": "0x00006c1b", - "eTaskConfirmSleepModeStatus": "0x00006f01", - "gap_add_dev_to_periodic_list": "0x0000756d", - "gap_add_whitelist": "0x0000757d", - "gap_aes_encrypt": "0x00007589", - "gap_clear_white_lists": "0x000075c1", - "gap_clr_adv_set": "0x000075cd", - "gap_clr_periodic_adv_list": "0x000075d9", - "gap_create_connection_cancel": "0x000075e5", - "gap_default_periodic_adv_sync_transfer_param": "0x000075f1", - "gap_disconnect": "0x00007609", - "gap_disconnect_all": "0x00007635", - "gap_ext_create_connection": "0x00007675", - "gap_get_connection_parameter_range": "0x00007769", - "gap_le_read_channel_map": "0x000077a5", - "gap_periodic_adv_create_sync": "0x00007811", - "gap_periodic_adv_create_sync_cancel": "0x00007835", - "gap_periodic_adv_set_info_transfer": "0x00007841", - "gap_periodic_adv_sync_transfer": "0x00007851", - "gap_periodic_adv_sync_transfer_param": "0x00007861", - "gap_periodic_adv_term_sync": "0x0000787d", - "gap_read_antenna_info": "0x00007905", - "gap_read_local_tx_power_level": "0x0000791d", - "gap_read_periodic_adv_list_size": "0x0000792d", - "gap_read_phy": "0x00007939", - "gap_read_remote_tx_power_level": "0x00007945", - "gap_read_remote_used_features": "0x00007955", - "gap_read_remote_version": "0x00007961", - "gap_read_rssi": "0x0000796d", - "gap_remove_whitelist": "0x00007979", - "gap_rmv_adv_set": "0x000079f5", - "gap_rmv_dev_from_periodic_list": "0x00007a01", - "gap_rx_test_v2": "0x00007a11", - "gap_rx_test_v3": "0x00007a21", - "gap_set_adv_set_random_addr": "0x00007a6d", - "gap_set_callback_for_next_hci": "0x00007aa9", - "gap_set_connection_cte_request_enable": "0x00007ac9", - "gap_set_connection_cte_response_enable": "0x00007ae5", - "gap_set_connection_cte_rx_param": "0x00007af5", - "gap_set_connection_cte_tx_param": "0x00007b49", - "gap_set_connection_parameter_range": "0x00007b95", - "gap_set_connectionless_cte_tx_enable": "0x00007bad", - "gap_set_connectionless_cte_tx_param": "0x00007bbd", - "gap_set_connectionless_iq_sampling_enable": "0x00007c19", - "gap_set_data_length": "0x00007c75", - "gap_set_def_phy": "0x00007c8d", - "gap_set_default_subrate": "0x00007c9d", - "gap_set_ext_adv_data": "0x00007cb9", - "gap_set_ext_adv_enable": "0x00007cd1", - "gap_set_ext_adv_para": "0x00007d41", - "gap_set_ext_scan_enable": "0x00007e19", - "gap_set_ext_scan_para": "0x00007e31", - "gap_set_ext_scan_response_data": "0x00007ed1", - "gap_set_host_channel_classification": "0x00007ee9", - "gap_set_path_loss_reporting_enable": "0x00007ef9", - "gap_set_path_loss_reporting_param": "0x00007f09", - "gap_set_periodic_adv_data": "0x00007f25", - "gap_set_periodic_adv_enable": "0x00007f95", - "gap_set_periodic_adv_para": "0x00007fa5", - "gap_set_periodic_adv_rx_enable": "0x00007fbd", - "gap_set_phy": "0x00007fcd", - "gap_set_random_device_address": "0x00007fe9", - "gap_set_tx_power_reporting_enable": "0x00008009", - "gap_start_ccm": "0x00008029", - "gap_subrate_request": "0x00008071", - "gap_test_end": "0x0000808d", - "gap_tx_test_v2": "0x00008099", - "gap_tx_test_v4": "0x000080b1", - "gap_update_connection_parameters": "0x000080d5", - "gap_vendor_tx_continuous_wave": "0x00008119", - "gatt_client_cancel_write": "0x00008641", - "gatt_client_discover_characteristic_descriptors": "0x00008667", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000086a7", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000086f7", - "gatt_client_discover_characteristics_for_service": "0x00008747", - "gatt_client_discover_primary_services": "0x0000877d", - "gatt_client_discover_primary_services_by_uuid128": "0x000087af", - "gatt_client_discover_primary_services_by_uuid16": "0x000087f3", - "gatt_client_execute_write": "0x0000882f", - "gatt_client_find_included_services_for_service": "0x00008855", - "gatt_client_get_mtu": "0x00008883", - "gatt_client_is_ready": "0x00008925", - "gatt_client_listen_for_characteristic_value_updates": "0x0000893b", - "gatt_client_prepare_write": "0x0000895d", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008999", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000089c3", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000089c9", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000089f7", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x000089fd", - "gatt_client_read_multiple_characteristic_values": "0x00008a2b", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008a5b", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008a89", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008ad5", - "gatt_client_register_handler": "0x00008b21", - "gatt_client_reliable_write_long_value_of_characteristic": "0x00008b2d", - "gatt_client_signed_write_without_response": "0x00008f5d", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00009021", - "gatt_client_write_client_characteristic_configuration": "0x0000905b", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x000090ad", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000090bd", - "gatt_client_write_long_value_of_characteristic": "0x000090f9", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x00009109", - "gatt_client_write_value_of_characteristic": "0x00009145", - "gatt_client_write_value_of_characteristic_without_response": "0x0000917b", - "hci_add_event_handler": "0x0000a72d", - "hci_power_control": "0x0000aedd", - "hci_register_acl_packet_handler": "0x0000b091", - "kv_commit": "0x0000b805", - "kv_get": "0x0000b861", - "kv_init": "0x0000b86d", - "kv_init_backend": "0x0000b8ed", - "kv_put": "0x0000b901", - "kv_remove": "0x0000b90d", - "kv_remove_all": "0x0000b941", - "kv_value_modified": "0x0000b971", - "kv_value_modified_of_key": "0x0000b98d", - "kv_visit": "0x0000b999", - "l2cap_add_event_handler": "0x0000ba29", - "l2cap_can_send_packet_now": "0x0000ba39", - "l2cap_create_le_credit_based_connection_request": "0x0000bbf5", - "l2cap_credit_based_send": "0x0000bd39", - "l2cap_credit_based_send_continue": "0x0000bd65", - "l2cap_disconnect": "0x0000bde1", - "l2cap_get_le_credit_based_connection_credits": "0x0000c031", - "l2cap_get_peer_mtu_for_local_cid": "0x0000c04d", - "l2cap_init": "0x0000c421", - "l2cap_le_send_flow_control_credit": "0x0000c517", - "l2cap_max_le_mtu": "0x0000c821", - "l2cap_register_packet_handler": "0x0000c949", - "l2cap_register_service": "0x0000c955", - "l2cap_request_can_send_now_event": "0x0000ca65", - "l2cap_request_connection_parameter_update": "0x0000ca7f", - "l2cap_send_echo_request": "0x0000cf59", - "l2cap_unregister_service": "0x0000d019", - "le_device_db_add": "0x0000d071", - "le_device_db_find": "0x0000d149", - "le_device_db_from_key": "0x0000d175", - "le_device_db_iter_cur": "0x0000d17d", - "le_device_db_iter_cur_key": "0x0000d181", - "le_device_db_iter_init": "0x0000d185", - "le_device_db_iter_next": "0x0000d18d", - "le_device_db_remove_key": "0x0000d1b3", - "ll_ackable_packet_alloc": "0x0000d1df", - "ll_ackable_packet_get_status": "0x0000d319", - "ll_ackable_packet_run": "0x0000d389", - "ll_ackable_packet_set_tx_data": "0x0000d42d", - "ll_adjust_conn_peer_tx_power": "0x0000d455", - "ll_aes_encrypt": "0x0000d481", - "ll_channel_monitor_alloc": "0x0000d4fd", - "ll_channel_monitor_check_each_pdu": "0x0000d57f", - "ll_channel_monitor_run": "0x0000d5e5", - "ll_config": "0x0000d699", - "ll_conn_abort": "0x0000d6b5", - "ll_create_conn": "0x0000d6e9", - "ll_dhkey_generated": "0x0000d965", - "ll_free": "0x0000d999", - "ll_get_conn_events_info": "0x0000d9a5", - "ll_get_conn_info": "0x0000da89", - "ll_get_heap_free_size": "0x0000dad5", - "ll_hint_on_ce_len": "0x0000dae9", - "ll_install_ecc_engine": "0x0000db21", - "ll_legacy_adv_set_interval": "0x0000db2d", - "ll_lock_frequency": "0x0000db3d", - "ll_malloc": "0x0000dba1", - "ll_p256_key_pair_generated": "0x0000dba9", - "ll_raw_packet_alloc": "0x0000dd5d", - "ll_raw_packet_free": "0x0000de31", - "ll_raw_packet_get_bare_rx_data": "0x0000de69", - "ll_raw_packet_get_iq_samples": "0x0000df2f", - "ll_raw_packet_get_rx_data": "0x0000dfc9", - "ll_raw_packet_recv": "0x0000e069", - "ll_raw_packet_send": "0x0000e125", - "ll_raw_packet_set_bare_data": "0x0000e20d", - "ll_raw_packet_set_bare_mode": "0x0000e24b", - "ll_raw_packet_set_fake_cte_info": "0x0000e351", - "ll_raw_packet_set_param": "0x0000e373", - "ll_raw_packet_set_rx_cte": "0x0000e3d1", - "ll_raw_packet_set_tx_cte": "0x0000e467", - "ll_raw_packet_set_tx_data": "0x0000e4a5", - "ll_register_hci_acl_previewer": "0x0000e509", - "ll_scan_set_fixed_channel": "0x0000e56d", - "ll_scanner_enable_iq_sampling": "0x0000e579", - "ll_set_adv_access_address": "0x0000e82d", - "ll_set_adv_coded_scheme": "0x0000e839", - "ll_set_conn_acl_report_latency": "0x0000e869", - "ll_set_conn_coded_scheme": "0x0000e899", - "ll_set_conn_interval_unit": "0x0000e8c5", - "ll_set_conn_latency": "0x0000e8d1", - "ll_set_conn_tx_power": "0x0000e901", - "ll_set_def_antenna": "0x0000e93d", - "ll_set_initiating_coded_scheme": "0x0000e959", - "ll_set_max_conn_number": "0x0000e965", - "ll_set_tx_power_range": "0x0000e9f9", - "ll_unlock_frequency": "0x0000ea21", - "nibble_for_char": "0x000214ed", - "platform_calibrate_rt_clk": "0x0002159b", + "att_server_can_send_packet_now": "0x000060dd", + "att_server_deferred_read_response": "0x000060e1", + "att_server_get_mtu": "0x000060f9", + "att_server_indicate": "0x00006171", + "att_server_init": "0x000061f5", + "att_server_notify": "0x00006231", + "att_server_register_packet_handler": "0x00006349", + "att_server_request_can_send_now_event": "0x00006355", + "att_set_db": "0x00006371", + "att_set_read_callback": "0x00006385", + "att_set_write_callback": "0x00006391", + "bd_addr_cmp": "0x00006501", + "bd_addr_copy": "0x00006507", + "bd_addr_to_str": "0x00006511", + "big_endian_read_16": "0x00006549", + "big_endian_read_32": "0x00006551", + "big_endian_store_16": "0x00006565", + "big_endian_store_32": "0x00006571", + "btstack_config": "0x000066c5", + "btstack_memory_pool_create": "0x00006805", + "btstack_memory_pool_free": "0x0000682d", + "btstack_memory_pool_get": "0x0000688d", + "btstack_push_user_msg": "0x000068f5", + "btstack_push_user_runnable": "0x00006901", + "btstack_reset": "0x0000690d", + "char_for_nibble": "0x00006c1f", + "eTaskConfirmSleepModeStatus": "0x00006f05", + "gap_add_dev_to_periodic_list": "0x00007571", + "gap_add_whitelist": "0x00007581", + "gap_aes_encrypt": "0x0000758d", + "gap_clear_white_lists": "0x000075c5", + "gap_clr_adv_set": "0x000075d1", + "gap_clr_periodic_adv_list": "0x000075dd", + "gap_create_connection_cancel": "0x000075e9", + "gap_default_periodic_adv_sync_transfer_param": "0x000075f5", + "gap_disconnect": "0x0000760d", + "gap_disconnect_all": "0x00007639", + "gap_ext_create_connection": "0x00007679", + "gap_get_connection_parameter_range": "0x0000776d", + "gap_le_read_channel_map": "0x000077a9", + "gap_periodic_adv_create_sync": "0x00007815", + "gap_periodic_adv_create_sync_cancel": "0x00007839", + "gap_periodic_adv_set_info_transfer": "0x00007845", + "gap_periodic_adv_sync_transfer": "0x00007855", + "gap_periodic_adv_sync_transfer_param": "0x00007865", + "gap_periodic_adv_term_sync": "0x00007881", + "gap_read_antenna_info": "0x00007909", + "gap_read_local_tx_power_level": "0x00007921", + "gap_read_periodic_adv_list_size": "0x00007931", + "gap_read_phy": "0x0000793d", + "gap_read_remote_tx_power_level": "0x00007949", + "gap_read_remote_used_features": "0x00007959", + "gap_read_remote_version": "0x00007965", + "gap_read_rssi": "0x00007971", + "gap_remove_whitelist": "0x0000797d", + "gap_rmv_adv_set": "0x000079f9", + "gap_rmv_dev_from_periodic_list": "0x00007a05", + "gap_rx_test_v2": "0x00007a15", + "gap_rx_test_v3": "0x00007a25", + "gap_set_adv_set_random_addr": "0x00007a71", + "gap_set_callback_for_next_hci": "0x00007aad", + "gap_set_connection_cte_request_enable": "0x00007acd", + "gap_set_connection_cte_response_enable": "0x00007ae9", + "gap_set_connection_cte_rx_param": "0x00007af9", + "gap_set_connection_cte_tx_param": "0x00007b4d", + "gap_set_connection_parameter_range": "0x00007b99", + "gap_set_connectionless_cte_tx_enable": "0x00007bb1", + "gap_set_connectionless_cte_tx_param": "0x00007bc1", + "gap_set_connectionless_iq_sampling_enable": "0x00007c1d", + "gap_set_data_length": "0x00007c79", + "gap_set_def_phy": "0x00007c91", + "gap_set_default_subrate": "0x00007ca1", + "gap_set_ext_adv_data": "0x00007cbd", + "gap_set_ext_adv_enable": "0x00007cd5", + "gap_set_ext_adv_para": "0x00007d45", + "gap_set_ext_scan_enable": "0x00007e1d", + "gap_set_ext_scan_para": "0x00007e35", + "gap_set_ext_scan_response_data": "0x00007ed5", + "gap_set_host_channel_classification": "0x00007eed", + "gap_set_path_loss_reporting_enable": "0x00007efd", + "gap_set_path_loss_reporting_param": "0x00007f0d", + "gap_set_periodic_adv_data": "0x00007f29", + "gap_set_periodic_adv_enable": "0x00007f99", + "gap_set_periodic_adv_para": "0x00007fa9", + "gap_set_periodic_adv_rx_enable": "0x00007fc1", + "gap_set_phy": "0x00007fd1", + "gap_set_random_device_address": "0x00007fed", + "gap_set_tx_power_reporting_enable": "0x0000800d", + "gap_start_ccm": "0x0000802d", + "gap_subrate_request": "0x00008075", + "gap_test_end": "0x00008091", + "gap_tx_test_v2": "0x0000809d", + "gap_tx_test_v4": "0x000080b5", + "gap_update_connection_parameters": "0x000080d9", + "gap_vendor_tx_continuous_wave": "0x0000811d", + "gatt_client_cancel_write": "0x00008645", + "gatt_client_discover_characteristic_descriptors": "0x0000866b", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x000086ab", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000086fb", + "gatt_client_discover_characteristics_for_service": "0x0000874b", + "gatt_client_discover_primary_services": "0x00008781", + "gatt_client_discover_primary_services_by_uuid128": "0x000087b3", + "gatt_client_discover_primary_services_by_uuid16": "0x000087f7", + "gatt_client_execute_write": "0x00008833", + "gatt_client_find_included_services_for_service": "0x00008859", + "gatt_client_get_mtu": "0x00008887", + "gatt_client_is_ready": "0x00008929", + "gatt_client_listen_for_characteristic_value_updates": "0x0000893f", + "gatt_client_prepare_write": "0x00008961", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x0000899d", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000089c7", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000089cd", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000089fb", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008a01", + "gatt_client_read_multiple_characteristic_values": "0x00008a2f", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008a5f", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008a8d", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008ad9", + "gatt_client_register_handler": "0x00008b25", + "gatt_client_reliable_write_long_value_of_characteristic": "0x00008b31", + "gatt_client_signed_write_without_response": "0x00008f61", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00009025", + "gatt_client_write_client_characteristic_configuration": "0x0000905f", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x000090b1", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000090c1", + "gatt_client_write_long_value_of_characteristic": "0x000090fd", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x0000910d", + "gatt_client_write_value_of_characteristic": "0x00009149", + "gatt_client_write_value_of_characteristic_without_response": "0x0000917f", + "hci_add_event_handler": "0x0000a731", + "hci_power_control": "0x0000aee1", + "hci_register_acl_packet_handler": "0x0000b095", + "kv_commit": "0x0000b809", + "kv_get": "0x0000b865", + "kv_init": "0x0000b871", + "kv_init_backend": "0x0000b8f1", + "kv_put": "0x0000b905", + "kv_remove": "0x0000b911", + "kv_remove_all": "0x0000b945", + "kv_value_modified": "0x0000b975", + "kv_value_modified_of_key": "0x0000b991", + "kv_visit": "0x0000b99d", + "l2cap_add_event_handler": "0x0000ba2d", + "l2cap_can_send_packet_now": "0x0000ba3d", + "l2cap_create_le_credit_based_connection_request": "0x0000bbf9", + "l2cap_credit_based_send": "0x0000bd3d", + "l2cap_credit_based_send_continue": "0x0000bd69", + "l2cap_disconnect": "0x0000bde5", + "l2cap_get_le_credit_based_connection_credits": "0x0000c035", + "l2cap_get_peer_mtu_for_local_cid": "0x0000c051", + "l2cap_init": "0x0000c425", + "l2cap_le_send_flow_control_credit": "0x0000c51b", + "l2cap_max_le_mtu": "0x0000c825", + "l2cap_register_packet_handler": "0x0000c94d", + "l2cap_register_service": "0x0000c959", + "l2cap_request_can_send_now_event": "0x0000ca69", + "l2cap_request_connection_parameter_update": "0x0000ca83", + "l2cap_send_echo_request": "0x0000cf5d", + "l2cap_unregister_service": "0x0000d01d", + "le_device_db_add": "0x0000d075", + "le_device_db_find": "0x0000d14d", + "le_device_db_from_key": "0x0000d179", + "le_device_db_iter_cur": "0x0000d181", + "le_device_db_iter_cur_key": "0x0000d185", + "le_device_db_iter_init": "0x0000d189", + "le_device_db_iter_next": "0x0000d191", + "le_device_db_remove_key": "0x0000d1b7", + "ll_ackable_packet_alloc": "0x0000d1e3", + "ll_ackable_packet_get_status": "0x0000d31d", + "ll_ackable_packet_run": "0x0000d38d", + "ll_ackable_packet_set_tx_data": "0x0000d431", + "ll_adjust_conn_peer_tx_power": "0x0000d459", + "ll_aes_encrypt": "0x0000d485", + "ll_channel_monitor_alloc": "0x0000d501", + "ll_channel_monitor_check_each_pdu": "0x0000d583", + "ll_channel_monitor_run": "0x0000d5e9", + "ll_config": "0x0000d69d", + "ll_conn_abort": "0x0000d6b9", + "ll_create_conn": "0x0000d6ed", + "ll_dhkey_generated": "0x0000d969", + "ll_free": "0x0000d99d", + "ll_get_conn_events_info": "0x0000d9a9", + "ll_get_conn_info": "0x0000da8d", + "ll_get_heap_free_size": "0x0000dad9", + "ll_hint_on_ce_len": "0x0000daed", + "ll_install_ecc_engine": "0x0000db25", + "ll_legacy_adv_set_interval": "0x0000db31", + "ll_lock_frequency": "0x0000db41", + "ll_malloc": "0x0000dba5", + "ll_p256_key_pair_generated": "0x0000dbad", + "ll_raw_packet_alloc": "0x0000dd61", + "ll_raw_packet_free": "0x0000de35", + "ll_raw_packet_get_bare_rx_data": "0x0000de6d", + "ll_raw_packet_get_iq_samples": "0x0000df33", + "ll_raw_packet_get_rx_data": "0x0000dfcd", + "ll_raw_packet_recv": "0x0000e06d", + "ll_raw_packet_send": "0x0000e129", + "ll_raw_packet_set_bare_data": "0x0000e211", + "ll_raw_packet_set_bare_mode": "0x0000e24f", + "ll_raw_packet_set_fake_cte_info": "0x0000e355", + "ll_raw_packet_set_param": "0x0000e377", + "ll_raw_packet_set_rx_cte": "0x0000e3d5", + "ll_raw_packet_set_tx_cte": "0x0000e46b", + "ll_raw_packet_set_tx_data": "0x0000e4a9", + "ll_register_hci_acl_previewer": "0x0000e50d", + "ll_scan_set_fixed_channel": "0x0000e571", + "ll_scanner_enable_iq_sampling": "0x0000e57d", + "ll_set_adv_access_address": "0x0000e831", + "ll_set_adv_coded_scheme": "0x0000e83d", + "ll_set_conn_acl_report_latency": "0x0000e86d", + "ll_set_conn_coded_scheme": "0x0000e89d", + "ll_set_conn_interval_unit": "0x0000e8c9", + "ll_set_conn_latency": "0x0000e8d5", + "ll_set_conn_tx_power": "0x0000e905", + "ll_set_def_antenna": "0x0000e941", + "ll_set_initiating_coded_scheme": "0x0000e95d", + "ll_set_max_conn_number": "0x0000e969", + "ll_set_tx_power_range": "0x0000e9fd", + "ll_unlock_frequency": "0x0000ea25", + "nibble_for_char": "0x000214f1", + "platform_calibrate_rt_clk": "0x0002159f", "platform_call_on_stack": "0x00004183", - "platform_config": "0x000215a1", - "platform_delete_timer": "0x000216c5", - "platform_enable_irq": "0x000216cd", - "platform_get_current_task": "0x00021705", - "platform_get_gen_os_driver": "0x00021729", - "platform_get_heap_status": "0x00021731", - "platform_get_link_layer_interf": "0x00021749", - "platform_get_task_handle": "0x00021751", - "platform_get_timer_counter": "0x00021771", - "platform_get_us_time": "0x00021775", - "platform_get_version": "0x00021779", - "platform_hrng": "0x00021781", - "platform_install_isr_stack": "0x00021789", - "platform_install_task_stack": "0x00021795", - "platform_patch_rf_init_data": "0x000217cd", - "platform_printf": "0x000217d9", - "platform_raise_assertion": "0x000217ed", - "platform_rand": "0x00021801", - "platform_read_info": "0x00021805", - "platform_read_persistent_reg": "0x00021835", - "platform_reset": "0x00021845", - "platform_rt_rc_auto_tune": "0x00021869", - "platform_rt_rc_auto_tune2": "0x00021871", - "platform_rt_rc_tune": "0x000218f9", - "platform_set_abs_timer": "0x0002190d", - "platform_set_evt_callback": "0x00021911", - "platform_set_evt_callback_table": "0x00021925", - "platform_set_irq_callback": "0x00021931", - "platform_set_irq_callback_table": "0x0002194d", - "platform_set_rf_clk_source": "0x00021959", - "platform_set_rf_init_data": "0x00021965", - "platform_set_rf_power_mapping": "0x00021971", - "platform_set_timer": "0x0002197d", - "platform_shutdown": "0x00021981", - "platform_switch_app": "0x00021985", - "platform_trace_raw": "0x000219b1", - "platform_write_persistent_reg": "0x000219c9", - "printf_hexdump": "0x00021b7d", - "pvPortMalloc": "0x00022671", - "pvTaskIncrementMutexHeldCount": "0x00022759", - "pvTimerGetTimerID": "0x00022771", - "pxPortInitialiseStack": "0x0002279d", - "reverse_128": "0x0002297d", - "reverse_24": "0x00022983", - "reverse_256": "0x00022989", - "reverse_48": "0x0002298f", - "reverse_56": "0x00022995", - "reverse_64": "0x0002299b", - "reverse_bd_addr": "0x000229a1", - "reverse_bytes": "0x000229a7", - "sm_add_event_handler": "0x00022ce5", - "sm_address_resolution_lookup": "0x00022e29", - "sm_authenticated": "0x00023255", - "sm_authorization_decline": "0x00023263", - "sm_authorization_grant": "0x00023283", - "sm_authorization_state": "0x000232a3", - "sm_bonding_decline": "0x000232bd", - "sm_config": "0x0002373d", - "sm_config_conn": "0x00023755", - "sm_encryption_key_size": "0x0002390f", - "sm_just_works_confirm": "0x00024661", - "sm_le_device_key": "0x00024a51", - "sm_numeric_comparison_confirm": "0x00024ba7", - "sm_passkey_input": "0x00024be5", - "sm_private_random_address_generation_get": "0x000251ed", - "sm_private_random_address_generation_get_mode": "0x000251f5", - "sm_private_random_address_generation_set_mode": "0x00025201", - "sm_private_random_address_generation_set_update_period": "0x00025229", - "sm_register_external_ltk_callback": "0x000254b5", - "sm_register_oob_data_callback": "0x000254c1", - "sm_register_sc_oob_data_callback": "0x000254cd", - "sm_request_pairing": "0x000254d9", - "sm_sc_generate_oob_data": "0x00026115", - "sm_send_security_request": "0x00026245", - "sm_set_accepted_stk_generation_methods": "0x0002626d", - "sm_set_authentication_requirements": "0x00026279", - "sm_set_encryption_key_size_range": "0x00026289", - "sscanf_bd_addr": "0x000266a5", - "sysSetPublicDeviceAddr": "0x00026a59", - "uuid128_to_str": "0x0002722d", - "uuid_add_bluetooth_prefix": "0x00027285", - "uuid_has_bluetooth_prefix": "0x000272a5", - "uxListRemove": "0x000272c1", - "uxQueueMessagesWaiting": "0x000272e9", - "uxQueueMessagesWaitingFromISR": "0x00027311", - "uxQueueSpacesAvailable": "0x0002732d", - "uxTaskGetStackHighWaterMark": "0x00027359", - "uxTaskPriorityGet": "0x00027379", - "uxTaskPriorityGetFromISR": "0x00027395", - "vListInitialise": "0x0002744f", - "vListInitialiseItem": "0x00027465", - "vListInsert": "0x0002746b", - "vListInsertEnd": "0x0002749b", - "vPortEndScheduler": "0x000274b5", - "vPortEnterCritical": "0x000274e1", - "vPortExitCritical": "0x00027525", - "vPortFree": "0x00027559", - "vPortSuppressTicksAndSleep": "0x000275ed", - "vPortValidateInterruptPriority": "0x00027715", - "vQueueDelete": "0x00027771", - "vQueueWaitForMessageRestricted": "0x0002779d", - "vTaskDelay": "0x000277e5", - "vTaskInternalSetTimeOutState": "0x00027831", - "vTaskMissedYield": "0x00027841", - "vTaskPlaceOnEventList": "0x0002784d", - "vTaskPlaceOnEventListRestricted": "0x00027885", - "vTaskPriorityDisinheritAfterTimeout": "0x000278c5", - "vTaskPrioritySet": "0x00027971", - "vTaskResume": "0x00027a39", - "vTaskStartScheduler": "0x00027abd", - "vTaskStepTick": "0x00027b4d", - "vTaskSuspend": "0x00027b7d", - "vTaskSuspendAll": "0x00027c39", - "vTaskSwitchContext": "0x00027c49", - "xPortStartScheduler": "0x00027cf9", - "xQueueAddToSet": "0x00027dc1", - "xQueueCreateCountingSemaphore": "0x00027de5", - "xQueueCreateCountingSemaphoreStatic": "0x00027e21", - "xQueueCreateMutex": "0x00027e65", - "xQueueCreateMutexStatic": "0x00027e7b", - "xQueueCreateSet": "0x00027e95", - "xQueueGenericCreate": "0x00027e9d", - "xQueueGenericCreateStatic": "0x00027ee9", - "xQueueGenericReset": "0x00027f51", - "xQueueGenericSend": "0x00027fdd", - "xQueueGenericSendFromISR": "0x00028149", - "xQueueGiveFromISR": "0x00028209", - "xQueueGiveMutexRecursive": "0x000282ad", - "xQueueIsQueueEmptyFromISR": "0x000282ed", - "xQueueIsQueueFullFromISR": "0x00028311", - "xQueuePeek": "0x00028339", - "xQueuePeekFromISR": "0x00028461", - "xQueueReceive": "0x000284cd", - "xQueueReceiveFromISR": "0x000285f9", - "xQueueRemoveFromSet": "0x0002868d", - "xQueueSelectFromSet": "0x000286af", - "xQueueSelectFromSetFromISR": "0x000286c1", - "xQueueSemaphoreTake": "0x000286d5", - "xQueueTakeMutexRecursive": "0x00028841", - "xTaskCheckForTimeOut": "0x00028885", - "xTaskCreate": "0x000288f5", - "xTaskCreateStatic": "0x00028951", - "xTaskGetCurrentTaskHandle": "0x000289c1", - "xTaskGetSchedulerState": "0x000289cd", - "xTaskGetTickCount": "0x000289e9", - "xTaskGetTickCountFromISR": "0x000289f5", - "xTaskIncrementTick": "0x00028a05", - "xTaskPriorityDisinherit": "0x00028ad1", - "xTaskPriorityInherit": "0x00028b65", - "xTaskRemoveFromEventList": "0x00028bf9", - "xTaskResumeAll": "0x00028c79", - "xTaskResumeFromISR": "0x00028d41", - "xTimerCreate": "0x00028dcd", - "xTimerCreateStatic": "0x00028e01", - "xTimerCreateTimerTask": "0x00028e39", - "xTimerGenericCommand": "0x00028ea5", - "xTimerGetExpiryTime": "0x00028f15", - "xTimerGetTimerDaemonTaskHandle": "0x00028f35" + "platform_config": "0x000215a5", + "platform_delete_timer": "0x000216c9", + "platform_enable_irq": "0x000216d1", + "platform_get_current_task": "0x00021709", + "platform_get_gen_os_driver": "0x0002172d", + "platform_get_heap_status": "0x00021735", + "platform_get_link_layer_interf": "0x0002174d", + "platform_get_task_handle": "0x00021755", + "platform_get_timer_counter": "0x00021775", + "platform_get_us_time": "0x00021779", + "platform_get_version": "0x0002177d", + "platform_hrng": "0x00021785", + "platform_install_isr_stack": "0x0002178d", + "platform_install_task_stack": "0x00021799", + "platform_patch_rf_init_data": "0x000217d1", + "platform_printf": "0x000217dd", + "platform_raise_assertion": "0x000217f1", + "platform_rand": "0x00021805", + "platform_read_info": "0x00021809", + "platform_read_persistent_reg": "0x00021839", + "platform_reset": "0x00021849", + "platform_rt_rc_auto_tune": "0x0002186d", + "platform_rt_rc_auto_tune2": "0x00021875", + "platform_rt_rc_tune": "0x000218fd", + "platform_set_abs_timer": "0x00021911", + "platform_set_evt_callback": "0x00021915", + "platform_set_evt_callback_table": "0x00021929", + "platform_set_irq_callback": "0x00021935", + "platform_set_irq_callback_table": "0x00021951", + "platform_set_rf_clk_source": "0x0002195d", + "platform_set_rf_init_data": "0x00021969", + "platform_set_rf_power_mapping": "0x00021975", + "platform_set_timer": "0x00021981", + "platform_shutdown": "0x00021985", + "platform_switch_app": "0x00021989", + "platform_trace_raw": "0x000219b5", + "platform_write_persistent_reg": "0x000219cd", + "printf_hexdump": "0x00021b81", + "pvPortMalloc": "0x00022675", + "pvTaskIncrementMutexHeldCount": "0x0002275d", + "pvTimerGetTimerID": "0x00022775", + "pxPortInitialiseStack": "0x000227a1", + "reverse_128": "0x00022981", + "reverse_24": "0x00022987", + "reverse_256": "0x0002298d", + "reverse_48": "0x00022993", + "reverse_56": "0x00022999", + "reverse_64": "0x0002299f", + "reverse_bd_addr": "0x000229a5", + "reverse_bytes": "0x000229ab", + "sm_add_event_handler": "0x00022ce9", + "sm_address_resolution_lookup": "0x00022e2d", + "sm_authenticated": "0x00023259", + "sm_authorization_decline": "0x00023267", + "sm_authorization_grant": "0x00023287", + "sm_authorization_state": "0x000232a7", + "sm_bonding_decline": "0x000232c1", + "sm_config": "0x00023741", + "sm_config_conn": "0x00023759", + "sm_encryption_key_size": "0x00023913", + "sm_just_works_confirm": "0x00024669", + "sm_le_device_key": "0x00024a59", + "sm_numeric_comparison_confirm": "0x00024baf", + "sm_passkey_input": "0x00024bed", + "sm_private_random_address_generation_get": "0x000251f5", + "sm_private_random_address_generation_get_mode": "0x000251fd", + "sm_private_random_address_generation_set_mode": "0x00025209", + "sm_private_random_address_generation_set_update_period": "0x00025231", + "sm_register_external_ltk_callback": "0x000254bd", + "sm_register_oob_data_callback": "0x000254c9", + "sm_register_sc_oob_data_callback": "0x000254d5", + "sm_request_pairing": "0x000254e1", + "sm_sc_generate_oob_data": "0x0002611d", + "sm_send_security_request": "0x0002624d", + "sm_set_accepted_stk_generation_methods": "0x00026275", + "sm_set_authentication_requirements": "0x00026281", + "sm_set_encryption_key_size_range": "0x00026291", + "sscanf_bd_addr": "0x000266ad", + "sysSetPublicDeviceAddr": "0x00026a61", + "uuid128_to_str": "0x00027235", + "uuid_add_bluetooth_prefix": "0x0002728d", + "uuid_has_bluetooth_prefix": "0x000272ad", + "uxListRemove": "0x000272c9", + "uxQueueMessagesWaiting": "0x000272f1", + "uxQueueMessagesWaitingFromISR": "0x00027319", + "uxQueueSpacesAvailable": "0x00027335", + "uxTaskGetStackHighWaterMark": "0x00027361", + "uxTaskPriorityGet": "0x00027381", + "uxTaskPriorityGetFromISR": "0x0002739d", + "vListInitialise": "0x00027457", + "vListInitialiseItem": "0x0002746d", + "vListInsert": "0x00027473", + "vListInsertEnd": "0x000274a3", + "vPortEndScheduler": "0x000274bd", + "vPortEnterCritical": "0x000274e9", + "vPortExitCritical": "0x0002752d", + "vPortFree": "0x00027561", + "vPortSuppressTicksAndSleep": "0x000275f5", + "vPortValidateInterruptPriority": "0x0002771d", + "vQueueDelete": "0x00027779", + "vQueueWaitForMessageRestricted": "0x000277a5", + "vTaskDelay": "0x000277ed", + "vTaskInternalSetTimeOutState": "0x00027839", + "vTaskMissedYield": "0x00027849", + "vTaskPlaceOnEventList": "0x00027855", + "vTaskPlaceOnEventListRestricted": "0x0002788d", + "vTaskPriorityDisinheritAfterTimeout": "0x000278cd", + "vTaskPrioritySet": "0x00027979", + "vTaskResume": "0x00027a41", + "vTaskStartScheduler": "0x00027ac5", + "vTaskStepTick": "0x00027b55", + "vTaskSuspend": "0x00027b85", + "vTaskSuspendAll": "0x00027c41", + "vTaskSwitchContext": "0x00027c51", + "xPortStartScheduler": "0x00027d01", + "xQueueAddToSet": "0x00027dc9", + "xQueueCreateCountingSemaphore": "0x00027ded", + "xQueueCreateCountingSemaphoreStatic": "0x00027e29", + "xQueueCreateMutex": "0x00027e6d", + "xQueueCreateMutexStatic": "0x00027e83", + "xQueueCreateSet": "0x00027e9d", + "xQueueGenericCreate": "0x00027ea5", + "xQueueGenericCreateStatic": "0x00027ef1", + "xQueueGenericReset": "0x00027f59", + "xQueueGenericSend": "0x00027fe5", + "xQueueGenericSendFromISR": "0x00028151", + "xQueueGiveFromISR": "0x00028211", + "xQueueGiveMutexRecursive": "0x000282b5", + "xQueueIsQueueEmptyFromISR": "0x000282f5", + "xQueueIsQueueFullFromISR": "0x00028319", + "xQueuePeek": "0x00028341", + "xQueuePeekFromISR": "0x00028469", + "xQueueReceive": "0x000284d5", + "xQueueReceiveFromISR": "0x00028601", + "xQueueRemoveFromSet": "0x00028695", + "xQueueSelectFromSet": "0x000286b7", + "xQueueSelectFromSetFromISR": "0x000286c9", + "xQueueSemaphoreTake": "0x000286dd", + "xQueueTakeMutexRecursive": "0x00028849", + "xTaskCheckForTimeOut": "0x0002888d", + "xTaskCreate": "0x000288fd", + "xTaskCreateStatic": "0x00028959", + "xTaskGetCurrentTaskHandle": "0x000289c9", + "xTaskGetSchedulerState": "0x000289d5", + "xTaskGetTickCount": "0x000289f1", + "xTaskGetTickCountFromISR": "0x000289fd", + "xTaskIncrementTick": "0x00028a0d", + "xTaskPriorityDisinherit": "0x00028ad9", + "xTaskPriorityInherit": "0x00028b6d", + "xTaskRemoveFromEventList": "0x00028c01", + "xTaskResumeAll": "0x00028c81", + "xTaskResumeFromISR": "0x00028d49", + "xTimerCreate": "0x00028dd5", + "xTimerCreateStatic": "0x00028e09", + "xTimerCreateTimerTask": "0x00028e41", + "xTimerGenericCommand": "0x00028ead", + "xTimerGetExpiryTime": "0x00028f1d", + "xTimerGetTimerDaemonTaskHandle": "0x00028f3d" } \ No newline at end of file diff --git a/bundles/exp/ING9188xx/meta.json b/bundles/exp/ING9188xx/meta.json index 8acce0ddf..ad3326500 100644 --- a/bundles/exp/ING9188xx/meta.json +++ b/bundles/exp/ING9188xx/meta.json @@ -13,6 +13,6 @@ "version": [ 1, 9, - 42 + 43 ] } \ No newline at end of file diff --git a/bundles/exp/ING9188xx/platform.bin b/bundles/exp/ING9188xx/platform.bin index 08e4ccc92378d5620d9278a6cc4684acc471d31d..20f0456ab16b61fa3ae5c2a161a3ed0c7e0a576d 100644 GIT binary patch delta 21272 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 Hl?MHP7R`Xs delta 21215 zcmaL93s{uZ_CLPYJ2Nl{$RHvjBJT_$gNlMmLTG@OVek@~nUb22nS+;v)Wpod)FWmd zwKv@vD5iJ|L3pI%x7QLzOB91 z+G}5i-_Hj8el}oJ=6F}A#FD#6ETOB!wvAvc4VZ&Zo-Z!a3jY!oaq(G(v~?mKpMCh$ z;&XEIhN$TCA`t|{0{XIJ61(6Gs%MTCH?y+r6`M~OX~*Wqg;Y{Cg_im2=D#bkm#R+d z$5S?IXEHfHYcq_?b$IRz86RqwOPHVbG&6--w6e+Zf{PqKwEZ_thqMw`vc+tRb==?1 z%#962b&Snd3Ohx`Cw#=1_Byj`tju;yM-3)N@4BMw|C=^U+23h2?N^#RMFelFtysUS zuKVoA!Xn@poi?WLI_vZjOAtZKX}KnHf(tkwI$> zw2bLhXkqBbzm?peZ2FhNgOaI0ITdcB$IlguFv2c4P;X3%`;)G~d&*%Iwo@6kHjLPRK`HNWV&x*yGX z^=Hi1`k&0shWv8o_?J`1Zq-*i{YdLL?D1pQ>*Zz1&z6s9YACeiNB49bQik@3jivfd zW>>@aJvW!vmw43k?T4Jim}4Ev{!uT&y&O%-${y)tuBz)Xl4wm8_56{jL^&JXNPU#! zy%xmY_{db!x3cc4BdeQrLQ=ch_z}r+(OXV!!5~Y5rJ`rMx=NWCGm@;zmY7BKf)XG{ zM;3kx^hwJ8@(>*?Rhg4l_) zMmZWA7kS;}zssX)TSiwt)AOk(H0Y^l*`q$Mw8ieC`;?u%htnwKeD8SrRnf(54t=gg zW2N$4BdJV?T07|W#HEKm;!QRFnL1Uu6*n;WcALJA#rCj7T8xe}%D_HRWKzcVNu=%JTpsZ{q}67od5Y-5!qe`?b0YFB4erS%(5 z(2k}3*T&U5D<0RFn2}_o;|r%f-!P`LoM78<)t|B0&bvBW=h}>p?n-Q;G1|Xfp7j6} zAOGZcwM@ojvdA%v6#*-ig2c(RPN_*;N#~Wc0SPo!nKfWAO;`AUczR7aIv|GLP%aGc z&@kn~z%+_cB9nFn^#90M(pb@^nw3wIaso8%1)yd2NHdOmANO z?Zpz7@N_-1H`qC99@VzIQIy`P932#%Q{G}L(6OHNH_9aWgtPmmy^H%=Ue3`q_k@gY zb9>a8Zrd#TGV{|37HzYhMLA}>b+T=7#WM5aijq!dZG9Je1$6T7t{f$LaQw9V+A~gO z*zC+VG%Z4i>6!y*lQSQhXKpcDJnA(}TvIvO!|V&~#puhGR*mC=TTpItKE;mtm7i`Z z&%Aqh(9>3pBe%74V}JV)r=~R3qH%OlW(izDAQ|g@E*}U?; z<#o=Uh7DIkSe?_5ROjp}r&*?>2BUI(a5y;r#jZH&h{WpQK`>T>NI3*|e*sBtgEQA^#IC4x`mohZj zfm{)fKEl{xUpNBcB2bF-P=xD!;Xs5BD9tGm^t%#pUq8%g%6%F5UUJ_mdS7wf7ptoP zWw~M;8U-a9J~S%9i5ev=C7YaEnOH`I@@R7cY!jV74V3c7*hb{9v#rc8$}U${4vh^K zx#aC#-w*6c<&>NF^akNDODE)uzW!AEGwA;t|F-sf zr64sb=JKEQepGuHCA8L+&r*V>K{Bph^}m)t3Dkw$yGFJo2Vz zO0}OWYtmw=TG^L2#bo=R!L=Oz{D0y%54XOonC>@GkTUxIv1x)+nII5mK>~+Y{)OY3 zF=4juPZ(@jPYA=*F$)A5{cOScg4A&3m;3!f521#8eP4$K@|aFmXed6 zLi3f<^zejtL8r};Yyq|`%;E^!nEWzZxtPPhl#fICSCqQ+Eb6a#(j)05gd>$f!_3sK zOdA%N@VcO_9d&b)>E3Kfj=G~TM1L8g>VYWZRMgioCdsiDuFVR#pe*f1D^(_=H}c_n;YEX}V<8yBmg zP-RALY+zv+8VZ_ilV)Opa!o3xyH)cZ1{0oE7EMls z>g<}lhWaY;kIbeFWy2#IU^SzrER$L{DX&iHO?#CiQ$B$ZmQGzm8bz142EAUNH;ewR z+{l|lU8<%$3Ky!svVB@Xux%&izd~a2E@+k#Fg=BSQZlB`{@?Vf%IVP(eX4x(*hv`0 zZ8PVPOQHPO@SnFy%(;lkkI$by(>AMc)&Q)oX-Zmt4*jQURsL})WVc(!DsspphTj4P zPMT$;;Z;j!HB*emC9`;L_N8WxN_pjr5$Dy>RdicsB_Mo z7%TyWb4KF(y*Y7V6)iH%@8gV_Sv|=H)L5=unUjIsINOh<@3lFGq}eAswfiSnT3k&gMFt0ZEZ#EEAFbTAN4<_*Q!@fSqi1Qqm~0$JjgBUFxAW=a5LdbSf#* zU~;K{YcmY#f|%ank&+@^>ho;~F}*!0QaZKLVsKJ_m%6wu(n&$uQKdaoOPI2}Fj@4o za4o)5<_^X8g1NEy-aL0EzMJR9!$FLkH;KMe7R<||x0TQ48Ij&JZw|gE&Q~JlgU=6u z&qdXSah)wXi^C|}T#ym>{FDfxh_k{a79>5(GH-^Oq+LvIQ6EvV7ZgT|JmJL|sy(W^ z)i6%7fJ?4rhRzi(^&iTq1%pvPJvB5f?LEdcj`>F<$3N?s6~+_obu4JVcPKLI5ewQ= z$x^)@rWX|A10EMY)h}GMB6d=nob%bSTV;lhoXV&AdHYsW-G7`84!D?~61gv0HYm5A z8c0qhc40Bv-?DHazI8=o#aN5PtQHr={5jiJ?`-cV55J!!;4d392OM|4s9tO z2+2NCywp2VL-nQuLrhUQHq52YWrK9Fw&1-{j#*0H)6;0NQvLMOj=tt}veoAY*d$wy zO>Z$knz9y!!L^^fNc3UXqTEn1A~F60&S!jvj22G|J>E9zAobVRGx;Gn?=4XC1&gO) z={UJ~4t<~`FPTF#m2FD~Qnqq($-3B&T1a-ON8ky&)K9(P<1PLOf7BwBAq=5fWyv!s zG(p+_OiW0oI};lS$4bVA!4NH0&OS3d^y?NsyVg1+slJJI(N(zAe=G4z2Zue>qJi7% zQXg!Qdh3k&2VH88vS4XSjMAQ3>z5;$IwxzJJ2R)czFl9*pa~t?Fhn`NG@YJQ+Lq3O zK`tm+6_AX@>oVF}r(7=?NlI1nvTO=`(DiWD!$#TSR70y)Jj}Zc0d z_2rA-5v5n{d?}KsQmNe#N86PP8mUTZoLY#VzCu+OD~X#b>5_6`Q*>N#yTOzLAGs4#)jh5`Pq3}W4z{Zgw05p! zTa)r-%h!#J)hfo#xw_P?65FgS*}Rq>u4>!7j>x90RTj}0#jV5#X2QUI*hsxyjhB?f zSE9&Y$$4cgw0X-bqk}*4$hJ&}jIEHW{-QL#GMG+OMQy>Tx+-&CjSuY9B3ll5i+-tW zdv##cC6~W-f-{aKRc>+~4`scx90n>wNLB61rB~zV6D5Fe!M=4TpMzbn|JJb-_J&jJ zyJSlj$MJSCa8=!@%-$A|GV2>ctlb^slxf=s`@eW}0=7$6l`Y%Tuo3-cdk$S!B47Up*kAX0 zOxQKgGd(Lx4ve__v)K0PEAFblDmPvqNQae}9Z^`f(syKF* zm#R)wChm!#(MsW-_rud&Cb4@?He;SHxdp%Os_9DN-rUgvE5TX65+a82VAUxHpQvt7_ZZk0J&; zgRE3ytjy^Z>hKU11vUg&BOINTjCUdfgwNVBu?6oW(m`e8JIVB=a{Qe*OkLwUlL9`2 zyVAe@j#{FO+@DBUO7Z@6m?QW8NU|#7@1_|0w5~8|joRiic1M+4NtScoa_(iFOlM$r z#v$#lGVk5>bf8LoccxBaE@kS$Vc0coIhYuU71dboB!j$+IW!E4LFG=#a7X<~Id?D( zJCpFLI3YMy(Uf16S2dV$7O>$^7QJ5e&7s*uiAu`9n&{)In3`ImqsrOC8|b;JIkgLk zjwwHW&;;{x{74PeRW184oM@1;u`V4h^OtoAG+wz=_da=)-5+hFnN=xAvm|;zS$e!F z%}@cZ=uUO9zS+QTt2dQJA7_cfhmZGDj#BW+6pF5@{p6NJrX~G@saCYhbY4&TdSs>$ADi^zWgN`zCzP4(P3Y=-Bdqrv(Giu`Z*r(*dM>Co~Vkvu!e-f z+Xuo8`^K)(kU{zGl1i^seR;WBlG=t^oilc2}R*B4TPvg`VF3RE`!v70t4DL3{&rOw|tj_;k0b#z2YXimohIJ@}>`fj`# zP4rS##x1Y`XJ)tKX@Ax6+gzfw@QT(PrM@N8@QOkMXBlw0Pk>EY2H zu!==|rbm71qc3Vs1yBwSciZx7)kb~Jx|mSMjhfg%I!RL7@cy zAvBF1;n4=FqS%@S18tTfcR5GrSgoB*hU7CzH`GN=5A<%d^@jR)zC4V^2k&+r!|C@x zYZ)ru%}tibfZTYL-S5B<&4;t`{w!`8+3vcGBN@Qw(_UAfGK$JWa0IAX5fW z7(ZpCXwvd)Mk);7mrV@YfRv<}^XJc6xIpX#*fw5hqK%~EE))HO3iys#T1dK@;NJ9& zMB8f4_rXMk6VCPJBH7Z(@dbP(LtQ4*u>QQz3^otoHD;Pauk)A$G_-*ahc?rbHR}=6 z(z`YL5-Eo0GCw(h*3)i2c_78ojGAQwF?sYRFG!|ybdC=nM1v`W7Y{r2L#r0ePjPO*aK-hQE2vR+rKc*bDL0|T}Vrg@Z5qZ>kjfwY{5 zX3$!iUb8KO;Fc_@S&#*W(8Zc9BWR#s@D*pU^$)d&OKbUEZQ>19$XW_tmjfxv;wN&b zlz!x+$IwtBzG4hD-DhdProQYkShcnQ`@16u`xdc++<A8Vv{4w_+YRjik}|`zMbao zakNBtYBRAMzGOV@ru%u+gAnEcJo`afLHqfM2WbjL@aSB6pSJQ-xugV}yk07E=&)Su ztywUErbu*!pLmGk=x2USz)>DLiIM}Rw!G!+`p`A?T|Raa&8CICauO!#A?}$(iFAo4 zK1?&Iif?!r>XKHoax$e5{myG1p_u63TwN>kZFN`MH!|7XnAp^wyUEhiveLrhuBl)1 zTaVBlT3xe!3Z)U9=clJae81tkJhXg}_sgRM+QTP{*o%C59tQI~-y>oL95y!rs-)(j zzz`n)D5>-@kC}#scks#6Fc<6i=4lYS#eB~+P!{qAk@q0?pHA8I8_%6in=wxpr&DC? z_wBN!sICMXFR_98u0?B^U<|bWM?LAzz5VY3+43LtQyx8ohSRv3X)qrI0bBVPMM5RE zKZen7;U^!Xn9%Rq+SSn>Lv4`t_`Jx<|EQoEx9Cp>y4TFmCNXM%5!^Dk#o7LDb> z`7i;E{CGY^L~d})Hgly%z2W?{NsGIIzrNsKK1t)F&Vo`n=-sTO`8i#alEE-E?6|MtGn~o?%3LdHsDsXG2K5$b~S(DneHE`Pjck@kh zcVU@5&1EEChY!D^#yDSCs~ldifcgzCbm>MNa&BTpmCU5O^XigNOLvU+F<)v~G&7YQ z47F(N%=BtXsKtc52{lI-PyrkeZd^!4DybQ{koHRutsBMYq>+a|4R#*oOP&UEKjz;( z4WmDgM=ye1SjR^%f@lrn%NJ1;<#WD>#*&_2T14CE2w$-nrtz1W;3X6(p?v&O$WbPr zy_8}jQk=}VSJpX{*3oeIn7MQPUgK4D72mlOrtNpWwge{a+nOUK)F#n;ymmRbGP%aR zoctx~%QerF3x=xgd5Q?!2<3d4&9YxrU*s{RP;%J!Qi_u37*|%(H`G!y>jlb%zr?Fn z5vSXH>}seBhPZ~R3Hsvt8*L#A-?)}iVsE)JZ;mVom9MIQxDGjm14m>+tkIQwdsIPJ zgns3XYq7eVtJzgfI4=6C=ID!*AkiA$^b!no24AuPa@d`JvH@(k$wU5*rE^V9)88qW zD2b~Z!Q2=gxe5Ayxn|NPXed_V!p)H2NPc27MjXmro9QBb#LvA9Rx3PBfpA3DM7~1l zl5Y4n#HxATt6*&fzx65|$9z?Dm=NMKwt~^MHP^RdwFoG_PAuyWA*121!M;2BLIGd$ zldsWdXnyl{$`0`6LpqCVE^Y^F=`|j^gWS}U$Gky1=u}PJ8`PwsGc|kO1hcUE?|ciL z-N~!pf==4_+TExyfnVH>@pR{!x1rA8*VMdC6A7IS*h?;n-r<`45SnNCto@kuX*Ijx zZfa;XzxGc$PuVpm-xpT$UG6!61!MxRsigFfwJk}tCL9a<+x>F<9c7#jQUn(H$b+zQ z(|OK8N~V!~`9WBn$$Z~IS_1(aSVg7&Bb+A=UQsi6brnqx>*_SxGDjTGGUkg7#_vT; zp1`9IQC7$o*rDL2+iYvcXEX_gIdgqYPg!}`}RO;ky-pnfxd7D3Z z2--iN2UpW1s^e+FCGKCw$dYy!r^-vsOOyLkQ3heE)}7 zybke%Ix40YYPQ!A9QAK&HXfss5}9lAK7r&IgFpJ%`9!kb;)Er@`Eur=Oy)ZozpVED z5U2P2^rtjC`9n7|KGE~T5vR|w1YNz}Nt+5Snu^Qn0e25!WY#hkw}{~sEy#OCb6I_h z&pQEW8pGG0pxBHO_x(9c_H%sSl9ofjdSI$mT*KQeu!__So9@zI=_xeO2>GnB4dEl&ob3mk$*`Y;qj>bJh``7NtT7lSJb19T>CH^C zZ5~Pa!qvE}UgqcijdiPmXMF}if0fVr3~Soo`P$EDR*2S_dozUD$_AFR-j~&}-1Qly z54_;17!8g0?UJ`Wox1C?dfF3k&Ei+I;qVB!Q{J4+n}fRyLeA%W*5@#<)qLIO5bf9b zkF?+TLGW#mJpky~FogI9k634M~se@Tt8 znI1o@(V|afrYo3YG0mcmG}nI`g-UKkxwSm`E6COgKJhDx3j3r@cWt#c-+K?f$K;1@ ze!xq=qJ*Kh+RfH0s@bEpTvF9`nI+YG)NoIkgV^UL6Uer-ecvR(XGm|?;cAoQQ>JL7 zzQ`|p1!L8Z-}#E-bo1LTsfT&YDY#E?-%e3wNKU)xp6J}T_DkwG9{4qM`D4EDYZ@Q9 zy)~%zlKNX)C&Y=v!9`Fr2cPF=%%1|u=Co>mP%-+ICM^QIKLza`+> zTK2cX&c2y1HwmFBbL*OeI(4@ft*f{bm-T2G?6Fs2)E`3{{D~HP`t<+MP4`Ve}-cHr^0L(WiRH*XRzqJ%~zel9?FkjI|GVi zJn$@bayR+fvsihu`H8a>Q#j)T2zidaI>2^Pr>kd1wz&|7MBgeNkyywf}#>M34Nd2JG7=3jY+qa?~6MK0s>iM}%<9%D==g8vY zf1>!nd2YB@v5)rha~$BMKcV+Bulb3R6BfCgbrW%sv6wOMvlHeR)~<65XcJpCJT2KI zo|ecKf5(?R^c;m7Z5~`F@AosZSFk2JrXkirNJh5F46*|}`y36NvDMWRiY2;@!?a$0 zmf-WOx7MCK!>{6!y2<%O&v!>S&k43`5idV1ln}2Brpo9;Cw!vDmme?}>Kxy+HmRfA zo74;!Gd7{zf7HIMl4C3X?i|JTo8L-!>U8hr85y;3-71_m%dhGdk4XIw-l&mLhtw_H z_%j^C0X*kt%t;cj{26Y*2_AYLI{7t^KM#wymybVBk^ZZWP#onLSsv$mgaI8Ok3uyI8Bvk?l5GyC&%zBi%7pGcdy)Z5;+ocSqszlg=@eUph}Ix)E-jV-1h~ zh0?=EyE~7QZF_5jQTlF6khk#8U{DMuwY6+-hW#3ILr-nE$Fr2AWQuH zX9)0ptDU3swT?v|ts~d-ifhyaZL`5Yz%Jv7m00N;yd`crJ4)R8d9`yCX3mkNbv$}h zZ2NT<)<@^~g_r&YH~J#4{f(CT?{4W_t96v~p^cR5|IhZzg<8iczM&CzZC%arM$%CT zwO7>Y?Ed98OPWRNILl98rDXvZYgZyc3n8DfgQ*w-tY(d_6`rcfyWuY zwi}-_eiu6Z@PsFv`vH|S{81=rO=eWg*} z+gMSu6&8~m&K8>&ALUgJc#KsXm&;j{$9Ln7IrN>j5bKSn%bXDff=iO4A3xoUX|nS0 zn-KHCJmV(e)WaoijgKui)ak3q(c)z0fO^SD&j?F6Vi}dMiv9`y>m#s-BL6?$eB8l3 z155Lld<*go$p4A&ze$lXr$81|zjChDH0Bv;xu&nwK&DR5NQ;EdNRGGorJLAV)$?Vy zz{NVg^A>HuK~3Uq8X5NRhX#|;Vzb!QKRksN1H8i5`KsGq_hCHD9CS1JW{9Sp#+@n6!$&9<;Jhn=2ehP)j>{qWd-)e}n2bkyJVdx*; z=X1|Dyj`9IMV#2CV^`{hwcopXKv~7Iy+!tAw&H!!;`*;0j_Cy#g@>;2ynYee)B{sd zAQ=Tta9s-}^g4xRm$=N!`J1v*kdnFy~rQLMQztRuDx@cmTz*# z$sdDyqATy>Bs(u_q26iFdj!30m2G*Sc#YYBhkeYRaq;yAvt2xvJLukV^>wyyE;Vmu z$DOapTaU%st6jZWlbXxVx6tH)cbo(5vZzg%MbR3lJ9#KRKAFQea1Jsp?Qz+_uVuZ zn`~VxWdzK3CM;ioOdB8HicRDozN(dS1LB;<AWRF8W~uIQ&s0GE3QzFZ`mM4#{A^ESFLtzN42w^sddMm zV)F4!iM_Dpgp@%4+HymRKrj7CN{m!oV`O=ej9L898E5aP{!>)HmX9YX9)9Z*LXmd9 zlce_|{aprA9tJTC1cdOt0lE2XNy_n`i$hfB#^W`(1PP;QIZoM>8;gDJ0}im53*{TpP)~hx=aYPTJ!am-_%y8pE1CCRdr%rn@|2o6|RWh z(x@(guQiUa>K+MZacL5pI8I_4hI-F-vxSjwSEur&Iw?MQjYoSk&tNc?SuVhF+^>_C zVe22~Cw&sx!)>0s8V{+&GhD)F7#2wE1y}{gK~XZ@;e-99dGU8!b$2$E1lj!$q+&gH ztkUhhs$OmFlw<&JE~w@0tV*Ob@)Q12zu?X7l4XlCGjw5vUERdn{H6Hl_gk^#g5tea z&89CKkx82UsPXA6%T+asXX&M(A)&bK(l!4|+GZ=efNj=Vy_8O0@lW(p7EUE~0a6TY z=Wzj28eQNs1EfeQ=F0-4SaS0n0a6>;`SwmAN#;j7Njq>pkQa!&(R@W9<~@n;36$pG zL^vc!iVg0H^&;7#13xaPoq0x(w186idqGkyb>ee^rG9X=lwfIl*gI_n_M{T6`EL!n z=EYRhvrXN_vpP!&fiJiDH5+kn(WY+TOFB#0@D1uZO9LsIU+*kM(QqCRB2C2U`?L@+ za1P%PBE{jTttteQeS*6}q_OZRMjNCYobqinNK3=Vx5{?&T(F}!)1hVN$3;^^cvPqq z8Ijf+;LX~KECaF{8@p6oz^%d9P$?m_*6nAHfY@v7$t9hU{1smlD$PSv&7o3E+EKTk zmG##y*46*2=HWiskol{ca>P)#cOjF7%=qOPsy}~1{~UuA)mksAdwewTX1Yk(!82Sd z55DF6x8Z3#GmGFmxcd02f^(_Prbcb^7u2S{&qsEZnsBm~7%rt?e(^Rbo=)=h;nE~*nJ$D&dGIUK zx=A^?|8!ndE8Oxt7JFt47P_P`dz<<_PK$o9{;EFY^!Fa`HdqTS6O!80f3~%$|8}z2 zdQjG5Og7ISjbFgiwX1O+vU~*|_2CWOr1*8)Wt4;yTDgnta-YB z$#OFL*Nga5JSIYlD1Fy0$t8kCAtE^aFU%AV=$+_D=ygEV(nHJmj`WV{hkC!O3=3i8QX+MAl ze3P9G7k@j1#iz%UwPxyzFyrOiX%a}AJ78}UX%{RUS~%<)!Rs=Tz(Se|CRqIPv@OtEm; z+tgA|-fuz-uO~^Y@L`EXb62F45s;NEdEYi!c~%dplnnfM4_Nt1ezu2{NP*lxN*Ycp z`RFJKXWM*Pl+-WqL#MP4GR4}|2l@L^P`u-udP;HGde`0(ePyhX*#{dnrs2Q(?bF^V zFKSiaY`;%7FT&3#LO(#CZBFf-)kQclg(J11RfEU$2K)E+hKqg{tuYm8i}-?`(hT|+ z|FS2{=!5OstijD`Sd3d$EBEw-|F@nSqov%?fOhsOy=pEGjrDs+@NgPm84bho4!;pC z#YbFjHG>^%+xwM|7~{7ub)MC3F2AhS@WftHY~(n+p>J2`;$6~PB<*cgH@C%kv$u)t zXkC4Dn>vuM?*&^@$m@DZ3#GOJd_aseC~W*gu=dXGWx>t3Olp3DwW@l)C`KBZXYq(% zo9u7-{0au${0cHIwXSgnZAvKjduN>Wvf8Wt$e%escys*r;>ApULb>=o$S6<*x4-iz z#fer??g6AqTq8qGkMMpnjO%MWSC$e(x3qSQT<;zEZ@9SHAj9T%=QT3y-UWVMmZEfe zyc1@)fs`^rHE!&{uz}9RYAysIhmSYHUVO)Q7^Q@MV_dSyKgVkMMIG&0?ew2G$&!U7 z2Iq~uRjv0l;(%6^yIz2wm+@vJRsk~)G(i~V^9+-;gqHDYle89B?!#kYbtdp7u~H=r zVtj9D7p%+4-muatclDMArzf`7mSEst;fl^q58b)X~(ZQy!VIaRn1ZU zW`C(H>ysnmsU~Bhgf_EJmO)R%=(x3$zLWI@LyNk)jmCV8!?L1m;X9O8ceMnL3AXrI z{J#*tv^lRn&u1k{#sRcqj^O)jy7pypRj4(3BXx+MRrV`b0hyF zQR)`(YtQ$bl6+px<_(EhS+%?}QHlt7)0djSg9jkhz!L^we7K|;;FX7U10Z*2`1=DS zV`9%u9gP-Mhg&-1kyMNNkUO(i*}*j<^xw)b)#vdROw2Mf+R;dxs9-aX7${`~zvIm@ zcyqe)Sp&iL$NBn!Qf$B8t%pX?w@?48y>YN*1opyuYoq#bTSe6BgNGy69%TJ5HfYA= zSSG+dyHs;_Al9?el^(aMw)$HRxg^6O7h`U9ZfoWUI*1!>>|S5M&R@2;)wEWMOG7!g z`VG>w*VeF!2oGpo&{Lmy^Bmei>|@k&q*)3vG<3v2K)jQ^qtv0llnO(s>Jc~39d5=c z1>c`6Mdu9mY;xamxYa$aWfpy0Cwmq)&u(lm{Jl-3A$;B4QHYsB?Cj_emkAxc+!AnY zgr<9u_Sy^VfJ;KkIUYJlDjYkYt@8oNDirzlW{I7dhr>i%eCR9&lQ!qPdeLd}T@*3n z1@+0=%b>x<2=Z9;c{R}W*GH#U`H4aB>YnAELGToxY^j)Ms4HGFd&z9P4#80k(>7$@ z++OTg(E?|71^;qkPhR(kVEM#-Z>V^LW-!$P)ByD2m_5*AA5m;sWt2 z4AFzo`d}-YCn_2?F|fj=x;)Gg-NLYrwWw=&aH=#V@-vU#N;cWjJsIzb+dE7L8C%rx zd_^iW{vEzE6@5+Qb*bpVI({(~GWrbnPlK@<#5bl%M`2HL@0Y|4;q3dR{cvtW(_vP^ z`RH^=-blV6U0M=d(&|y)Y&F|fk1#aY3QH=@-acI}5D&FmxF;RPpq8&3CKcdi#id~| zDNpcz!=?04OI!Y2Eq>LNd2?WB2xxIMJsivF5x#r4G$q8{`tAtr+02_i82ylUn+HB1 z4Gj6&m-vCvABlKE@&I}h%~w1C4KZ;3fD{w|M(Z1uI=7!=TvChrlUvI=VGps|X<^tM zO6lHg4AikP>4TxAv~hy}h$oH2+j);)xlk{1cv? z0fvp{g&ES8;VteDnpucngFIhw|E6&~2pw)I(Z9hykGvzgWwavgH#c*9-1SXP%x3-?A?+&IDhzd~GHcfyY|mka&H$G_eSYq z?!(Zt|F&}?xffEC`Q|KaOP=GWvLG#!cvF^?X1vF z|JsQUfZ|yfbJ%dvtn>0ZU}755id?x47Le;Gn}VB{vUc@X&+d6ADks9Oxo~$haI~~6 zp&vS1h~r?FnvdUESNS^oX!|B_XLac8D4fuW)v#eScpJd4kCx)YZ#e(TnAUmQa~>OXl@juhj6 z#yjv>o|Pk|1V11O+o9yb?y={j!zp8#&+XN$4d*NtgZJnwl{pc=|L$bqz<$3TwU(% z-Nh0b`;`xT5F+Hya~_n2NBpbR|A1^sg7GiIivI9|r{zh{%wnhcjt5~@Ug2LpD9seM zCs#7+Cbj0<41D5c3Jbr|Ph!mrB{uw@`27z)?;R44|CZ%S1Bci3kXUGx#Kz;(jPPcB z;_;b*Pa-~NBasih0xa%>zbmjrViy-nEDl&#b0t@*l1h*7m)JuxV`qVrfS&;$2A%>= z2A%;v0{j*@1?T`y1@^;V56JVy9|d+rd>Zgq6m0zL-3RZ~1k z3X>8ZWP|(XjQI83j0!#u%0+WG)AA^8th^NS`)Z6fVNXS6K zP+(_Zst?nEVxootRp4+RJ^;)GT?Q}&mWIb(~x0B!Zd#R5!jNpYR0bMQ;bg@KH>jjEVL$cisYu~H3+Z7X9+&y-}!Tl?KlfO z#Mo?}kS9&SA<@b_X-;9$UWggoX86F&PpiRvAhd&FW+X|Zi7*A}_4ut6YYy(1DSUft zO$^fDCkGug$w5RKAI;z(e|X{=wrwZa8q{XeA-s=Id{l~v6IIMYb>t&m9wbRxR3Xxz z3({(JBFr~DiX$6u%d%b{C`kFmM{!mosQly*gJ`{(hfb3shKr;CS(dS#@mA7F7X9c5 z2g?5bvag{aS(1#taIhR1iGiYu+0&$fIiiX#AjKHHRfNf%JNx;D)m7H%0(|M=sKVcu z-VI^BFN{MgIn>+9^XO5e=ywmfOP5Z*>?n{1iZBnJE=2^dMRqS)Gg(Od4xWr8ZwaHU z(RTKgFv)&?LEaJtB3tw?PDUwT_xs41nK9n>HY2-Kw3jSvG;zM{K^RJ?ucpDW<{?N9 zn+TdAvew(^41`la6O8mbuQPTZxY5}c9x8i0A--@b!h+L+CQUY(LJ<~SxnG9Tp)K(* z9Xr|h8B%DeAQD0!=1peo0W<&|_7=`SMd7}1CYaF;VNp>Q_&g95ZQ0GB2!4J^z5$Gs zhYgDWO}{trD_+nf`_hF{4DvN>K|RE@Ou=BXWqlWYf{(}wiRmlC{NxNNeSv5vSANLL z1QDJf`+J$N2<0Zq6DD-`_3I(j7wHR6k|$2YPyf7iKMa~KK4wmqb92Ld;YYmV>k$1Z zV1BrFx{4pee26YRis5wgkxqjMMfk$g(Yx-x@C?ul@%8#KIV&sG7oG_TPVt2oc)Qi1 z9*Ysa&zJrTn(X1LXDPx_zHo`GFV*+-MV28W+82IS)@pnC!pr5!ULFX3Jcmkq_{P0L z?$l|huYu>~pr9BZJ+=1gW%8v4de5zr$bFu;eM zeAwBC1|Np{u!|47cAzFkp7kcmOZR!>?Pze`F03RhSPp=oiTJIG4jk`8j(m|mv(y*x z7Zspq9UY;d4ovppU>~M*U;r6*{{!?{lEF(Cpy@!p&ahde`v-KyHTQRPP)hf8bgVBv zrUP~3p;ohhanvp8qt9v)Y{R( z?j7-fo<1Ddfx6hzjsW%cqUgXCUkC2^unO1$V=q|Q0z)s*txXKNB1Wp!b^Q@2%3biX zI$B%ni#Lk_5&jH;NY_TnE(m%%*4B_WP!9CxDuBAu4=G?Zufm+AtbgA>0-$_8$e7fG5aD2 zRio1G_={1%$R32JIm8;e5ff|45};TiRz?yF23`c6SUt9Mr&1Pzz*#zq2914jW1!I9A- z4h~p=D@PE^2A=gN{P8S|9GuJn7Q&?%42&)vKx_;G3l>=PODXxMdBoJmASP zg42xo*S$b&8UhI*m<~LF_zV$81&;xZ=*Udqd0;*ePuW=kaKm%>F%d9j1+iJc6U&G_ z0lZQ|Y&LKW;!gs@pCvX27>RTna3!!1Snxctx%e|AY#XLv9uh91qWL1D45I)N@G0OL zjBFwB4sa60&j=Y9j7f8Hu;GsiA3L zUU-66&{5$9ZUG9{LpOt%a63j%Cp_Kj=y)tJ3*~wP*8%&mQjB0Kv3Mlt@*p|DHPeXo z12$l!{ek0=ZU&wPCIYtrg-cR^eBq9)LB|FFN&&uqg;g)cJ^^$rGxB40QI7g4WR z{3jz{EcV;b!J*R;(4mLILr6!)J%Yy&zk`A^foUk14{Sq$0$?`igq{^XE;xiAr2>VX zjR(tZFkkm0cN2CXhxzz9QpVsJEb$O zs8ra7dtqT7G#Ii-7bfCfrNT_y3ky?muM@&t+zShnaj$H_U&6w4=ya%a7%CO^;~tT) zA@_PG?8vPA>t7H>NU3+oby{e_?r z7Uo`9Sebieg{2YcLJD;F!3r8;X+SZzy03(EVCGJWbZj#|7g8r?5CJju3%(GBhOrGF z3PXb*HXSD{Z@`a)!9l~H2!n%t?=fL;umu5~*n;f)Ko}g9|F>ALXz2fs6UfBPV&GgUB(&(A4z=(m;j5e=$X(vA*e@-K7oHc KU+N34vi}FuOmA!e diff --git a/bundles/noos_exp/ING9168xx/apis.json b/bundles/noos_exp/ING9168xx/apis.json index f9c2107cd..bcdcbb762 100644 --- a/bundles/noos_exp/ING9168xx/apis.json +++ b/bundles/noos_exp/ING9168xx/apis.json @@ -6,315 +6,315 @@ "att_dispatch_server_can_send_now": "0x020052d5", "att_dispatch_server_request_can_send_now_event": "0x020052db", "att_emit_general_event": "0x0200538d", - "att_server_can_send_packet_now": "0x02005ac5", - "att_server_deferred_read_response": "0x02005ac9", - "att_server_get_mtu": "0x02005ae1", - "att_server_indicate": "0x02005b59", - "att_server_init": "0x02005bdd", - "att_server_notify": "0x02005c19", - "att_server_register_packet_handler": "0x02005d31", - "att_server_request_can_send_now_event": "0x02005d3d", - "att_set_db": "0x02005d59", - "att_set_read_callback": "0x02005d6d", - "att_set_write_callback": "0x02005d79", - "bd_addr_cmp": "0x02005f49", - "bd_addr_copy": "0x02005f4f", - "bd_addr_to_str": "0x02005f59", - "big_endian_read_16": "0x02005f91", - "big_endian_read_32": "0x02005f99", - "big_endian_store_16": "0x02005fad", - "big_endian_store_32": "0x02005fb9", - "btstack_config": "0x020060fd", - "btstack_memory_pool_create": "0x0200624d", - "btstack_memory_pool_free": "0x02006275", - "btstack_memory_pool_get": "0x020062d5", - "btstack_push_user_msg": "0x0200631d", - "btstack_push_user_runnable": "0x02006329", - "btstack_reset": "0x02006335", - "char_for_nibble": "0x02006653", - "gap_add_dev_to_periodic_list": "0x02007039", - "gap_add_whitelist": "0x02007049", - "gap_aes_encrypt": "0x02007055", - "gap_clear_white_lists": "0x0200708d", - "gap_clr_adv_set": "0x02007099", - "gap_clr_periodic_adv_list": "0x020070a5", - "gap_create_connection_cancel": "0x020070b1", - "gap_default_periodic_adv_sync_transfer_param": "0x020070bd", - "gap_disconnect": "0x020070d5", - "gap_disconnect_all": "0x02007101", - "gap_ext_create_connection": "0x02007141", - "gap_ext_create_connection_v2": "0x020071ed", - "gap_get_connection_parameter_range": "0x020072ed", - "gap_le_read_channel_map": "0x02007329", - "gap_periodic_adv_create_sync": "0x02007395", - "gap_periodic_adv_create_sync_cancel": "0x020073b9", - "gap_periodic_adv_set_info_transfer": "0x020073c5", - "gap_periodic_adv_sync_transfer": "0x020073d5", - "gap_periodic_adv_sync_transfer_param": "0x020073e5", - "gap_periodic_adv_term_sync": "0x02007401", - "gap_read_antenna_info": "0x02007489", - "gap_read_local_tx_power_level": "0x020074a1", - "gap_read_periodic_adv_list_size": "0x020074b1", - "gap_read_phy": "0x020074bd", - "gap_read_remote_tx_power_level": "0x020074c9", - "gap_read_remote_used_features": "0x020074d9", - "gap_read_remote_version": "0x020074e5", - "gap_read_rssi": "0x020074f1", - "gap_remove_whitelist": "0x020074fd", - "gap_rmv_adv_set": "0x02007579", - "gap_rmv_dev_from_periodic_list": "0x02007585", - "gap_rx_test_v2": "0x02007595", - "gap_rx_test_v3": "0x020075a5", - "gap_set_adv_set_random_addr": "0x020075f1", - "gap_set_callback_for_next_hci": "0x0200762d", - "gap_set_connection_cte_request_enable": "0x0200764d", - "gap_set_connection_cte_response_enable": "0x02007669", - "gap_set_connection_cte_rx_param": "0x02007679", - "gap_set_connection_cte_tx_param": "0x020076cd", - "gap_set_connection_parameter_range": "0x02007719", - "gap_set_connectionless_cte_tx_enable": "0x02007731", - "gap_set_connectionless_cte_tx_param": "0x02007741", - "gap_set_connectionless_iq_sampling_enable": "0x0200779d", - "gap_set_data_length": "0x020077f9", - "gap_set_def_phy": "0x02007811", - "gap_set_default_subrate": "0x02007821", - "gap_set_ext_adv_data": "0x0200783d", - "gap_set_ext_adv_enable": "0x02007855", - "gap_set_ext_adv_para": "0x020078c5", - "gap_set_ext_scan_enable": "0x02007995", - "gap_set_ext_scan_para": "0x020079ad", - "gap_set_ext_scan_response_data": "0x02007a4d", - "gap_set_host_channel_classification": "0x02007a65", - "gap_set_path_loss_reporting_enable": "0x02007a75", - "gap_set_path_loss_reporting_param": "0x02007a85", - "gap_set_periodic_adv_data": "0x02007aa1", - "gap_set_periodic_adv_enable": "0x02007b11", - "gap_set_periodic_adv_para": "0x02007b21", - "gap_set_periodic_adv_para_v2": "0x02007b39", - "gap_set_periodic_adv_rsp_data": "0x02007b5d", - "gap_set_periodic_adv_rx_enable": "0x02007b81", - "gap_set_periodic_adv_subevent_data": "0x02007b91", - "gap_set_periodic_sync_subevent": "0x02007c29", - "gap_set_phy": "0x02007c41", - "gap_set_random_device_address": "0x02007c5d", - "gap_set_tx_power_reporting_enable": "0x02007c7d", - "gap_start_ccm": "0x02007c9d", - "gap_subrate_request": "0x02007ce5", - "gap_test_end": "0x02007d01", - "gap_tx_test_v2": "0x02007d0d", - "gap_tx_test_v4": "0x02007d25", - "gap_update_connection_parameters": "0x02007d49", - "gap_vendor_tx_continuous_wave": "0x02007d8d", - "gatt_client_cancel_write": "0x020082b5", - "gatt_client_discover_characteristic_descriptors": "0x020082db", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0200831b", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200836b", - "gatt_client_discover_characteristics_for_service": "0x020083bb", - "gatt_client_discover_primary_services": "0x020083f1", - "gatt_client_discover_primary_services_by_uuid128": "0x02008423", - "gatt_client_discover_primary_services_by_uuid16": "0x02008467", - "gatt_client_execute_write": "0x020084a5", - "gatt_client_find_included_services_for_service": "0x020084cb", - "gatt_client_get_mtu": "0x020084f9", - "gatt_client_is_ready": "0x020085bd", - "gatt_client_listen_for_characteristic_value_updates": "0x020085d3", - "gatt_client_prepare_write": "0x020085f5", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02008631", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200865b", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02008661", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x0200868f", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02008695", - "gatt_client_read_multiple_characteristic_values": "0x020086c3", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x020086f3", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x02008721", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x0200876d", - "gatt_client_register_handler": "0x020087b9", - "gatt_client_reliable_write_long_value_of_characteristic": "0x020087c5", - "gatt_client_signed_write_without_response": "0x02008bf9", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02008cbd", - "gatt_client_write_client_characteristic_configuration": "0x02008cf7", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02008d49", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02008d59", - "gatt_client_write_long_value_of_characteristic": "0x02008d95", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x02008da5", - "gatt_client_write_value_of_characteristic": "0x02008de1", - "gatt_client_write_value_of_characteristic_without_response": "0x02008e17", - "hci_add_event_handler": "0x0200a4e1", - "hci_power_control": "0x0200ac89", - "hci_register_acl_packet_handler": "0x0200ae3d", - "kv_commit": "0x0200b59d", - "kv_get": "0x0200b5f9", - "kv_init": "0x0200b605", - "kv_init_backend": "0x0200b685", - "kv_put": "0x0200b699", - "kv_remove": "0x0200b6a5", - "kv_remove_all": "0x0200b6d9", - "kv_value_modified": "0x0200b709", - "kv_value_modified_of_key": "0x0200b725", - "kv_visit": "0x0200b731", - "l2cap_add_event_handler": "0x0200b7c1", - "l2cap_can_send_packet_now": "0x0200b7d1", - "l2cap_create_le_credit_based_connection_request": "0x0200b995", - "l2cap_credit_based_send": "0x0200badd", - "l2cap_credit_based_send_continue": "0x0200bb09", - "l2cap_disconnect": "0x0200bb85", - "l2cap_get_le_credit_based_connection_credits": "0x0200bd71", - "l2cap_get_peer_mtu_for_local_cid": "0x0200bd8d", - "l2cap_init": "0x0200c1cd", - "l2cap_le_send_flow_control_credit": "0x0200c2c3", - "l2cap_max_le_mtu": "0x0200c5d1", - "l2cap_register_packet_handler": "0x0200c6f9", - "l2cap_register_service": "0x0200c705", - "l2cap_request_can_send_now_event": "0x0200c815", - "l2cap_request_connection_parameter_update": "0x0200c82f", - "l2cap_send_echo_request": "0x0200cd11", - "l2cap_unregister_service": "0x0200cdf1", - "le_device_db_add": "0x0200ce49", - "le_device_db_find": "0x0200cf21", - "le_device_db_from_key": "0x0200cf4d", - "le_device_db_iter_cur": "0x0200cf55", - "le_device_db_iter_cur_key": "0x0200cf59", - "le_device_db_iter_init": "0x0200cf5d", - "le_device_db_iter_next": "0x0200cf65", - "le_device_db_remove_key": "0x0200cf8b", - "ll_ackable_packet_alloc": "0x0200cfb7", - "ll_ackable_packet_get_status": "0x0200d0f3", - "ll_ackable_packet_run": "0x0200d161", - "ll_ackable_packet_set_tx_data": "0x0200d219", - "ll_adjust_conn_peer_tx_power": "0x0200d235", - "ll_aes_encrypt": "0x0200d261", - "ll_allow_nonstandard_adv_type": "0x0200d2d5", - "ll_attach_cte_to_adv_set": "0x0200d2ed", - "ll_channel_monitor_alloc": "0x0200d485", - "ll_channel_monitor_check_each_pdu": "0x0200d507", - "ll_channel_monitor_run": "0x0200d569", - "ll_config": "0x0200d639", - "ll_conn_abort": "0x0200d655", - "ll_create_conn": "0x0200d689", - "ll_dhkey_generated": "0x0200d905", - "ll_free": "0x0200d939", - "ll_get_conn_events_info": "0x0200d945", - "ll_get_conn_info": "0x0200da2d", - "ll_get_heap_free_size": "0x0200da7d", - "ll_hint_on_ce_len": "0x0200da91", - "ll_install_ecc_engine": "0x0200dac9", - "ll_legacy_adv_set_interval": "0x0200dad5", - "ll_lock_frequency": "0x0200dae5", - "ll_malloc": "0x0200db49", - "ll_override_whitening_init_value": "0x0200db51", - "ll_p256_key_pair_generated": "0x0200db69", - "ll_raw_packet_alloc": "0x0200dcad", - "ll_raw_packet_free": "0x0200dd81", - "ll_raw_packet_get_bare_rx_data": "0x0200ddb9", - "ll_raw_packet_get_iq_samples": "0x0200de79", - "ll_raw_packet_get_rx_data": "0x0200df13", - "ll_raw_packet_recv": "0x0200dfc5", - "ll_raw_packet_send": "0x0200e099", - "ll_raw_packet_set_bare_data": "0x0200e1b5", - "ll_raw_packet_set_bare_mode": "0x0200e1f3", - "ll_raw_packet_set_fake_cte_info": "0x0200e2f7", - "ll_raw_packet_set_param": "0x0200e319", - "ll_raw_packet_set_rx_cte": "0x0200e37b", - "ll_raw_packet_set_tx_cte": "0x0200e411", - "ll_raw_packet_set_tx_data": "0x0200e451", - "ll_register_hci_acl_previewer": "0x0200e4b9", - "ll_scan_set_fixed_channel": "0x0200e51d", - "ll_scanner_enable_iq_sampling": "0x0200e529", - "ll_scanner_enable_iq_sampling_on_legacy": "0x0200e5d1", - "ll_set_adv_access_address": "0x0200e8c1", - "ll_set_adv_coded_scheme": "0x0200e8cd", - "ll_set_conn_acl_report_latency": "0x0200e905", - "ll_set_conn_coded_scheme": "0x0200e935", - "ll_set_conn_interval_unit": "0x0200e961", - "ll_set_conn_latency": "0x0200e96d", - "ll_set_conn_tx_power": "0x0200e99d", - "ll_set_cte_bit": "0x0200e9cd", - "ll_set_def_antenna": "0x0200e9f5", - "ll_set_initiating_coded_scheme": "0x0200ea15", - "ll_set_max_conn_number": "0x0200ea21", - "ll_set_tx_power_range": "0x0200eac9", - "ll_unlock_frequency": "0x0200eaf1", - "nibble_for_char": "0x02023215", - "platform_calibrate_rt_clk": "0x020232ad", + "att_server_can_send_packet_now": "0x02005ac9", + "att_server_deferred_read_response": "0x02005acd", + "att_server_get_mtu": "0x02005ae5", + "att_server_indicate": "0x02005b5d", + "att_server_init": "0x02005be1", + "att_server_notify": "0x02005c1d", + "att_server_register_packet_handler": "0x02005d35", + "att_server_request_can_send_now_event": "0x02005d41", + "att_set_db": "0x02005d5d", + "att_set_read_callback": "0x02005d71", + "att_set_write_callback": "0x02005d7d", + "bd_addr_cmp": "0x02005f4d", + "bd_addr_copy": "0x02005f53", + "bd_addr_to_str": "0x02005f5d", + "big_endian_read_16": "0x02005f95", + "big_endian_read_32": "0x02005f9d", + "big_endian_store_16": "0x02005fb1", + "big_endian_store_32": "0x02005fbd", + "btstack_config": "0x02006101", + "btstack_memory_pool_create": "0x02006251", + "btstack_memory_pool_free": "0x02006279", + "btstack_memory_pool_get": "0x020062d9", + "btstack_push_user_msg": "0x02006321", + "btstack_push_user_runnable": "0x0200632d", + "btstack_reset": "0x02006339", + "char_for_nibble": "0x02006657", + "gap_add_dev_to_periodic_list": "0x0200703d", + "gap_add_whitelist": "0x0200704d", + "gap_aes_encrypt": "0x02007059", + "gap_clear_white_lists": "0x02007091", + "gap_clr_adv_set": "0x0200709d", + "gap_clr_periodic_adv_list": "0x020070a9", + "gap_create_connection_cancel": "0x020070b5", + "gap_default_periodic_adv_sync_transfer_param": "0x020070c1", + "gap_disconnect": "0x020070d9", + "gap_disconnect_all": "0x02007105", + "gap_ext_create_connection": "0x02007145", + "gap_ext_create_connection_v2": "0x020071f1", + "gap_get_connection_parameter_range": "0x020072f1", + "gap_le_read_channel_map": "0x0200732d", + "gap_periodic_adv_create_sync": "0x02007399", + "gap_periodic_adv_create_sync_cancel": "0x020073bd", + "gap_periodic_adv_set_info_transfer": "0x020073c9", + "gap_periodic_adv_sync_transfer": "0x020073d9", + "gap_periodic_adv_sync_transfer_param": "0x020073e9", + "gap_periodic_adv_term_sync": "0x02007405", + "gap_read_antenna_info": "0x0200748d", + "gap_read_local_tx_power_level": "0x020074a5", + "gap_read_periodic_adv_list_size": "0x020074b5", + "gap_read_phy": "0x020074c1", + "gap_read_remote_tx_power_level": "0x020074cd", + "gap_read_remote_used_features": "0x020074dd", + "gap_read_remote_version": "0x020074e9", + "gap_read_rssi": "0x020074f5", + "gap_remove_whitelist": "0x02007501", + "gap_rmv_adv_set": "0x0200757d", + "gap_rmv_dev_from_periodic_list": "0x02007589", + "gap_rx_test_v2": "0x02007599", + "gap_rx_test_v3": "0x020075a9", + "gap_set_adv_set_random_addr": "0x020075f5", + "gap_set_callback_for_next_hci": "0x02007631", + "gap_set_connection_cte_request_enable": "0x02007651", + "gap_set_connection_cte_response_enable": "0x0200766d", + "gap_set_connection_cte_rx_param": "0x0200767d", + "gap_set_connection_cte_tx_param": "0x020076d1", + "gap_set_connection_parameter_range": "0x0200771d", + "gap_set_connectionless_cte_tx_enable": "0x02007735", + "gap_set_connectionless_cte_tx_param": "0x02007745", + "gap_set_connectionless_iq_sampling_enable": "0x020077a1", + "gap_set_data_length": "0x020077fd", + "gap_set_def_phy": "0x02007815", + "gap_set_default_subrate": "0x02007825", + "gap_set_ext_adv_data": "0x02007841", + "gap_set_ext_adv_enable": "0x02007859", + "gap_set_ext_adv_para": "0x020078c9", + "gap_set_ext_scan_enable": "0x02007999", + "gap_set_ext_scan_para": "0x020079b1", + "gap_set_ext_scan_response_data": "0x02007a51", + "gap_set_host_channel_classification": "0x02007a69", + "gap_set_path_loss_reporting_enable": "0x02007a79", + "gap_set_path_loss_reporting_param": "0x02007a89", + "gap_set_periodic_adv_data": "0x02007aa5", + "gap_set_periodic_adv_enable": "0x02007b15", + "gap_set_periodic_adv_para": "0x02007b25", + "gap_set_periodic_adv_para_v2": "0x02007b3d", + "gap_set_periodic_adv_rsp_data": "0x02007b61", + "gap_set_periodic_adv_rx_enable": "0x02007b85", + "gap_set_periodic_adv_subevent_data": "0x02007b95", + "gap_set_periodic_sync_subevent": "0x02007c2d", + "gap_set_phy": "0x02007c45", + "gap_set_random_device_address": "0x02007c61", + "gap_set_tx_power_reporting_enable": "0x02007c81", + "gap_start_ccm": "0x02007ca1", + "gap_subrate_request": "0x02007ce9", + "gap_test_end": "0x02007d05", + "gap_tx_test_v2": "0x02007d11", + "gap_tx_test_v4": "0x02007d29", + "gap_update_connection_parameters": "0x02007d4d", + "gap_vendor_tx_continuous_wave": "0x02007d91", + "gatt_client_cancel_write": "0x020082b9", + "gatt_client_discover_characteristic_descriptors": "0x020082df", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0200831f", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200836f", + "gatt_client_discover_characteristics_for_service": "0x020083bf", + "gatt_client_discover_primary_services": "0x020083f5", + "gatt_client_discover_primary_services_by_uuid128": "0x02008427", + "gatt_client_discover_primary_services_by_uuid16": "0x0200846b", + "gatt_client_execute_write": "0x020084a9", + "gatt_client_find_included_services_for_service": "0x020084cf", + "gatt_client_get_mtu": "0x020084fd", + "gatt_client_is_ready": "0x020085c1", + "gatt_client_listen_for_characteristic_value_updates": "0x020085d7", + "gatt_client_prepare_write": "0x020085f9", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02008635", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200865f", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02008665", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x02008693", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02008699", + "gatt_client_read_multiple_characteristic_values": "0x020086c7", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x020086f7", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x02008725", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x02008771", + "gatt_client_register_handler": "0x020087bd", + "gatt_client_reliable_write_long_value_of_characteristic": "0x020087c9", + "gatt_client_signed_write_without_response": "0x02008bfd", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02008cc1", + "gatt_client_write_client_characteristic_configuration": "0x02008cfb", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02008d4d", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02008d5d", + "gatt_client_write_long_value_of_characteristic": "0x02008d99", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x02008da9", + "gatt_client_write_value_of_characteristic": "0x02008de5", + "gatt_client_write_value_of_characteristic_without_response": "0x02008e1b", + "hci_add_event_handler": "0x0200a4e5", + "hci_power_control": "0x0200ac8d", + "hci_register_acl_packet_handler": "0x0200ae41", + "kv_commit": "0x0200b5a1", + "kv_get": "0x0200b5fd", + "kv_init": "0x0200b609", + "kv_init_backend": "0x0200b689", + "kv_put": "0x0200b69d", + "kv_remove": "0x0200b6a9", + "kv_remove_all": "0x0200b6dd", + "kv_value_modified": "0x0200b70d", + "kv_value_modified_of_key": "0x0200b729", + "kv_visit": "0x0200b735", + "l2cap_add_event_handler": "0x0200b7c5", + "l2cap_can_send_packet_now": "0x0200b7d5", + "l2cap_create_le_credit_based_connection_request": "0x0200b999", + "l2cap_credit_based_send": "0x0200bae1", + "l2cap_credit_based_send_continue": "0x0200bb0d", + "l2cap_disconnect": "0x0200bb89", + "l2cap_get_le_credit_based_connection_credits": "0x0200bd75", + "l2cap_get_peer_mtu_for_local_cid": "0x0200bd91", + "l2cap_init": "0x0200c1d1", + "l2cap_le_send_flow_control_credit": "0x0200c2c7", + "l2cap_max_le_mtu": "0x0200c5d5", + "l2cap_register_packet_handler": "0x0200c6fd", + "l2cap_register_service": "0x0200c709", + "l2cap_request_can_send_now_event": "0x0200c819", + "l2cap_request_connection_parameter_update": "0x0200c833", + "l2cap_send_echo_request": "0x0200cd15", + "l2cap_unregister_service": "0x0200cdf5", + "le_device_db_add": "0x0200ce4d", + "le_device_db_find": "0x0200cf25", + "le_device_db_from_key": "0x0200cf51", + "le_device_db_iter_cur": "0x0200cf59", + "le_device_db_iter_cur_key": "0x0200cf5d", + "le_device_db_iter_init": "0x0200cf61", + "le_device_db_iter_next": "0x0200cf69", + "le_device_db_remove_key": "0x0200cf8f", + "ll_ackable_packet_alloc": "0x0200cfbb", + "ll_ackable_packet_get_status": "0x0200d0f7", + "ll_ackable_packet_run": "0x0200d165", + "ll_ackable_packet_set_tx_data": "0x0200d21d", + "ll_adjust_conn_peer_tx_power": "0x0200d239", + "ll_aes_encrypt": "0x0200d265", + "ll_allow_nonstandard_adv_type": "0x0200d2d9", + "ll_attach_cte_to_adv_set": "0x0200d2f1", + "ll_channel_monitor_alloc": "0x0200d489", + "ll_channel_monitor_check_each_pdu": "0x0200d50b", + "ll_channel_monitor_run": "0x0200d56d", + "ll_config": "0x0200d63d", + "ll_conn_abort": "0x0200d659", + "ll_create_conn": "0x0200d68d", + "ll_dhkey_generated": "0x0200d909", + "ll_free": "0x0200d93d", + "ll_get_conn_events_info": "0x0200d949", + "ll_get_conn_info": "0x0200da31", + "ll_get_heap_free_size": "0x0200da81", + "ll_hint_on_ce_len": "0x0200da95", + "ll_install_ecc_engine": "0x0200dacd", + "ll_legacy_adv_set_interval": "0x0200dad9", + "ll_lock_frequency": "0x0200dae9", + "ll_malloc": "0x0200db4d", + "ll_override_whitening_init_value": "0x0200db55", + "ll_p256_key_pair_generated": "0x0200db6d", + "ll_raw_packet_alloc": "0x0200dcb1", + "ll_raw_packet_free": "0x0200dd85", + "ll_raw_packet_get_bare_rx_data": "0x0200ddbd", + "ll_raw_packet_get_iq_samples": "0x0200de7d", + "ll_raw_packet_get_rx_data": "0x0200df17", + "ll_raw_packet_recv": "0x0200dfc9", + "ll_raw_packet_send": "0x0200e09d", + "ll_raw_packet_set_bare_data": "0x0200e1b9", + "ll_raw_packet_set_bare_mode": "0x0200e1f7", + "ll_raw_packet_set_fake_cte_info": "0x0200e2fb", + "ll_raw_packet_set_param": "0x0200e31d", + "ll_raw_packet_set_rx_cte": "0x0200e37f", + "ll_raw_packet_set_tx_cte": "0x0200e415", + "ll_raw_packet_set_tx_data": "0x0200e455", + "ll_register_hci_acl_previewer": "0x0200e4bd", + "ll_scan_set_fixed_channel": "0x0200e521", + "ll_scanner_enable_iq_sampling": "0x0200e52d", + "ll_scanner_enable_iq_sampling_on_legacy": "0x0200e5d5", + "ll_set_adv_access_address": "0x0200e8c5", + "ll_set_adv_coded_scheme": "0x0200e8d1", + "ll_set_conn_acl_report_latency": "0x0200e909", + "ll_set_conn_coded_scheme": "0x0200e939", + "ll_set_conn_interval_unit": "0x0200e965", + "ll_set_conn_latency": "0x0200e971", + "ll_set_conn_tx_power": "0x0200e9a1", + "ll_set_cte_bit": "0x0200e9d1", + "ll_set_def_antenna": "0x0200e9f9", + "ll_set_initiating_coded_scheme": "0x0200ea19", + "ll_set_max_conn_number": "0x0200ea25", + "ll_set_tx_power_range": "0x0200eacd", + "ll_unlock_frequency": "0x0200eaf5", + "nibble_for_char": "0x02023219", + "platform_calibrate_rt_clk": "0x020232b1", "platform_call_on_stack": "0x0200303f", - "platform_config": "0x020232b1", - "platform_controller_run": "0x020233d9", - "platform_delete_timer": "0x0202340d", - "platform_enable_irq": "0x02023415", - "platform_get_gen_os_driver": "0x02023449", - "platform_get_link_layer_interf": "0x02023455", - "platform_get_task_handle": "0x0202345d", - "platform_get_timer_counter": "0x02023475", - "platform_get_us_time": "0x02023479", - "platform_get_version": "0x0202347d", - "platform_hrng": "0x02023499", - "platform_init_controller": "0x020234a1", - "platform_os_idle_resumed_hook": "0x020234bd", - "platform_patch_rf_init_data": "0x020234c1", - "platform_post_sleep_processing": "0x020234cd", - "platform_pre_sleep_processing": "0x020234d3", - "platform_pre_suppress_ticks_and_sleep_processing": "0x020234d9", - "platform_printf": "0x020234dd", - "platform_raise_assertion": "0x020234f1", - "platform_rand": "0x02023505", - "platform_read_info": "0x02023509", - "platform_read_persistent_reg": "0x02023539", - "platform_reset": "0x02023545", - "platform_rt_rc_auto_tune": "0x02023559", - "platform_rt_rc_auto_tune2": "0x02023561", - "platform_rt_rc_tune": "0x020235c9", - "platform_set_abs_timer": "0x020235e5", - "platform_set_evt_callback": "0x020235e9", - "platform_set_evt_callback_table": "0x020235fd", - "platform_set_irq_callback": "0x02023609", - "platform_set_irq_callback_table": "0x02023625", - "platform_set_rf_clk_source": "0x02023631", - "platform_set_rf_init_data": "0x0202363d", - "platform_set_rf_power_mapping": "0x02023649", - "platform_set_timer": "0x02023655", - "platform_shutdown": "0x02023659", - "platform_switch_app": "0x0202365d", - "platform_trace_raw": "0x02023675", - "platform_write_persistent_reg": "0x0202368d", - "printf_hexdump": "0x020236a1", - "reverse_128": "0x02023a19", - "reverse_24": "0x02023a1f", - "reverse_256": "0x02023a25", - "reverse_48": "0x02023a2b", - "reverse_56": "0x02023a31", - "reverse_64": "0x02023a37", - "reverse_bd_addr": "0x02023a3d", - "reverse_bytes": "0x02023a43", - "sm_add_event_handler": "0x02023dc1", - "sm_address_resolution_lookup": "0x02023f05", - "sm_authenticated": "0x02024331", - "sm_authorization_decline": "0x0202433f", - "sm_authorization_grant": "0x0202435f", - "sm_authorization_state": "0x0202437f", - "sm_bonding_decline": "0x02024399", - "sm_config": "0x02024815", - "sm_config_conn": "0x0202482d", - "sm_encryption_key_size": "0x020249e7", - "sm_just_works_confirm": "0x02025739", - "sm_le_device_key": "0x02025b29", - "sm_numeric_comparison_confirm": "0x02025c7f", - "sm_passkey_input": "0x02025cbd", - "sm_private_random_address_generation_get": "0x020262c5", - "sm_private_random_address_generation_get_mode": "0x020262cd", - "sm_private_random_address_generation_set_mode": "0x020262d9", - "sm_private_random_address_generation_set_update_period": "0x02026301", - "sm_register_external_ltk_callback": "0x0202658d", - "sm_register_oob_data_callback": "0x02026599", - "sm_register_sc_oob_data_callback": "0x020265a5", - "sm_request_pairing": "0x020265b1", - "sm_sc_generate_oob_data": "0x020271f1", - "sm_send_security_request": "0x02027321", - "sm_set_accepted_stk_generation_methods": "0x02027349", - "sm_set_authentication_requirements": "0x02027355", - "sm_set_encryption_key_size_range": "0x02027365", - "sscanf_bd_addr": "0x02027789", - "sysSetPublicDeviceAddr": "0x02027cb1", - "uuid128_to_str": "0x02028531", - "uuid_add_bluetooth_prefix": "0x02028589", - "uuid_has_bluetooth_prefix": "0x020285a9" + "platform_config": "0x020232b5", + "platform_controller_run": "0x020233dd", + "platform_delete_timer": "0x02023411", + "platform_enable_irq": "0x02023419", + "platform_get_gen_os_driver": "0x0202344d", + "platform_get_link_layer_interf": "0x02023459", + "platform_get_task_handle": "0x02023461", + "platform_get_timer_counter": "0x02023479", + "platform_get_us_time": "0x0202347d", + "platform_get_version": "0x02023481", + "platform_hrng": "0x0202349d", + "platform_init_controller": "0x020234a5", + "platform_os_idle_resumed_hook": "0x020234c1", + "platform_patch_rf_init_data": "0x020234c5", + "platform_post_sleep_processing": "0x020234d1", + "platform_pre_sleep_processing": "0x020234d7", + "platform_pre_suppress_ticks_and_sleep_processing": "0x020234dd", + "platform_printf": "0x020234e1", + "platform_raise_assertion": "0x020234f5", + "platform_rand": "0x02023509", + "platform_read_info": "0x0202350d", + "platform_read_persistent_reg": "0x0202353d", + "platform_reset": "0x02023549", + "platform_rt_rc_auto_tune": "0x0202355d", + "platform_rt_rc_auto_tune2": "0x02023565", + "platform_rt_rc_tune": "0x020235cd", + "platform_set_abs_timer": "0x020235e9", + "platform_set_evt_callback": "0x020235ed", + "platform_set_evt_callback_table": "0x02023601", + "platform_set_irq_callback": "0x0202360d", + "platform_set_irq_callback_table": "0x02023629", + "platform_set_rf_clk_source": "0x02023635", + "platform_set_rf_init_data": "0x02023641", + "platform_set_rf_power_mapping": "0x0202364d", + "platform_set_timer": "0x02023659", + "platform_shutdown": "0x0202365d", + "platform_switch_app": "0x02023661", + "platform_trace_raw": "0x02023679", + "platform_write_persistent_reg": "0x02023691", + "printf_hexdump": "0x020236a5", + "reverse_128": "0x02023a1d", + "reverse_24": "0x02023a23", + "reverse_256": "0x02023a29", + "reverse_48": "0x02023a2f", + "reverse_56": "0x02023a35", + "reverse_64": "0x02023a3b", + "reverse_bd_addr": "0x02023a41", + "reverse_bytes": "0x02023a47", + "sm_add_event_handler": "0x02023dc5", + "sm_address_resolution_lookup": "0x02023f09", + "sm_authenticated": "0x02024335", + "sm_authorization_decline": "0x02024343", + "sm_authorization_grant": "0x02024363", + "sm_authorization_state": "0x02024383", + "sm_bonding_decline": "0x0202439d", + "sm_config": "0x02024819", + "sm_config_conn": "0x02024831", + "sm_encryption_key_size": "0x020249eb", + "sm_just_works_confirm": "0x02025741", + "sm_le_device_key": "0x02025b31", + "sm_numeric_comparison_confirm": "0x02025c87", + "sm_passkey_input": "0x02025cc5", + "sm_private_random_address_generation_get": "0x020262cd", + "sm_private_random_address_generation_get_mode": "0x020262d5", + "sm_private_random_address_generation_set_mode": "0x020262e1", + "sm_private_random_address_generation_set_update_period": "0x02026309", + "sm_register_external_ltk_callback": "0x02026595", + "sm_register_oob_data_callback": "0x020265a1", + "sm_register_sc_oob_data_callback": "0x020265ad", + "sm_request_pairing": "0x020265b9", + "sm_sc_generate_oob_data": "0x020271f9", + "sm_send_security_request": "0x02027329", + "sm_set_accepted_stk_generation_methods": "0x02027351", + "sm_set_authentication_requirements": "0x0202735d", + "sm_set_encryption_key_size_range": "0x0202736d", + "sscanf_bd_addr": "0x02027791", + "sysSetPublicDeviceAddr": "0x02027cb9", + "uuid128_to_str": "0x02028539", + "uuid_add_bluetooth_prefix": "0x02028591", + "uuid_has_bluetooth_prefix": "0x020285b1" } \ No newline at end of file diff --git a/bundles/noos_exp/ING9168xx/meta.json b/bundles/noos_exp/ING9168xx/meta.json index 3a73c6766..c6705d987 100644 --- a/bundles/noos_exp/ING9168xx/meta.json +++ b/bundles/noos_exp/ING9168xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 33562624, - "size": 166912 + "size": 166920 }, "version": [ 2, 3, - 3 + 4 ] } \ No newline at end of file diff --git a/bundles/noos_exp/ING9168xx/platform.bin b/bundles/noos_exp/ING9168xx/platform.bin index 524e908b54a098b9244efeeb69c77c984e8e0848..ef5000a147cf8593b58e86f6e230cff41dbd1fbf 100644 GIT binary patch delta 20396 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 rc1TP_)w~U08#9N|fLTEs0Vrpt{ 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 diff --git a/bundles/noos_exp/ING9187xx/apis.json b/bundles/noos_exp/ING9187xx/apis.json index 075b4902c..a7f1a7677 100644 --- a/bundles/noos_exp/ING9187xx/apis.json +++ b/bundles/noos_exp/ING9187xx/apis.json @@ -6,286 +6,286 @@ "att_dispatch_server_can_send_now": "0x000056d9", "att_dispatch_server_request_can_send_now_event": "0x000056df", "att_emit_general_event": "0x00005791", - "att_server_can_send_packet_now": "0x00005ec1", - "att_server_deferred_read_response": "0x00005ec5", - "att_server_get_mtu": "0x00005edd", - "att_server_indicate": "0x00005f55", - "att_server_init": "0x00005fd9", - "att_server_notify": "0x00006015", - "att_server_register_packet_handler": "0x0000612d", - "att_server_request_can_send_now_event": "0x00006139", - "att_set_db": "0x00006155", - "att_set_read_callback": "0x00006169", - "att_set_write_callback": "0x00006175", - "bd_addr_cmp": "0x000062e5", - "bd_addr_copy": "0x000062eb", - "bd_addr_to_str": "0x000062f5", - "big_endian_read_16": "0x0000632d", - "big_endian_read_32": "0x00006335", - "big_endian_store_16": "0x00006349", - "big_endian_store_32": "0x00006355", - "btstack_config": "0x0000648d", - "btstack_memory_pool_create": "0x000065dd", - "btstack_memory_pool_free": "0x00006605", - "btstack_memory_pool_get": "0x00006665", - "btstack_push_user_msg": "0x000066ad", - "btstack_push_user_runnable": "0x000066b9", - "btstack_reset": "0x000066c5", - "char_for_nibble": "0x000069bf", - "gap_add_dev_to_periodic_list": "0x00007265", - "gap_add_whitelist": "0x00007275", - "gap_aes_encrypt": "0x00007281", - "gap_clear_white_lists": "0x000072b9", - "gap_clr_adv_set": "0x000072c5", - "gap_clr_periodic_adv_list": "0x000072d1", - "gap_create_connection_cancel": "0x000072dd", - "gap_disconnect": "0x000072e9", - "gap_disconnect_all": "0x00007315", - "gap_ext_create_connection": "0x00007355", - "gap_get_connection_parameter_range": "0x00007449", - "gap_le_read_channel_map": "0x00007485", - "gap_periodic_adv_create_sync": "0x000074f1", - "gap_periodic_adv_create_sync_cancel": "0x00007515", - "gap_periodic_adv_term_sync": "0x00007521", - "gap_read_local_tx_power_level": "0x000075b5", - "gap_read_periodic_adv_list_size": "0x000075c5", - "gap_read_phy": "0x000075d1", - "gap_read_remote_tx_power_level": "0x000075dd", - "gap_read_remote_used_features": "0x000075ed", - "gap_read_remote_version": "0x000075f9", - "gap_read_rssi": "0x00007605", - "gap_remove_whitelist": "0x00007611", - "gap_rmv_adv_set": "0x0000768d", - "gap_rmv_dev_from_periodic_list": "0x00007699", - "gap_rx_test_v2": "0x000076a9", - "gap_set_adv_set_random_addr": "0x000076e1", - "gap_set_callback_for_next_hci": "0x0000771d", - "gap_set_connection_parameter_range": "0x0000773d", - "gap_set_data_length": "0x00007755", - "gap_set_def_phy": "0x0000776d", - "gap_set_default_subrate": "0x0000777d", - "gap_set_ext_adv_data": "0x00007799", - "gap_set_ext_adv_enable": "0x000077b1", - "gap_set_ext_adv_para": "0x00007821", - "gap_set_ext_scan_enable": "0x000078f9", - "gap_set_ext_scan_para": "0x00007911", - "gap_set_ext_scan_response_data": "0x000079b1", - "gap_set_host_channel_classification": "0x000079c9", - "gap_set_path_loss_reporting_enable": "0x000079d9", - "gap_set_path_loss_reporting_param": "0x000079e9", - "gap_set_periodic_adv_data": "0x00007a05", - "gap_set_periodic_adv_enable": "0x00007a75", - "gap_set_periodic_adv_para": "0x00007a85", - "gap_set_phy": "0x00007a9d", - "gap_set_random_device_address": "0x00007ab9", - "gap_set_tx_power_reporting_enable": "0x00007ad9", - "gap_start_ccm": "0x00007af9", - "gap_subrate_request": "0x00007b41", - "gap_test_end": "0x00007b5d", - "gap_tx_test_v2": "0x00007b69", - "gap_tx_test_v4": "0x00007b81", - "gap_update_connection_parameters": "0x00007ba5", - "gap_vendor_tx_continuous_wave": "0x00007be9", - "gatt_client_cancel_write": "0x00008111", - "gatt_client_discover_characteristic_descriptors": "0x00008137", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x00008177", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000081c7", - "gatt_client_discover_characteristics_for_service": "0x00008217", - "gatt_client_discover_primary_services": "0x0000824d", - "gatt_client_discover_primary_services_by_uuid128": "0x0000827f", - "gatt_client_discover_primary_services_by_uuid16": "0x000082c3", - "gatt_client_execute_write": "0x000082ff", - "gatt_client_find_included_services_for_service": "0x00008325", - "gatt_client_get_mtu": "0x00008353", - "gatt_client_is_ready": "0x000083f5", - "gatt_client_listen_for_characteristic_value_updates": "0x0000840b", - "gatt_client_prepare_write": "0x0000842d", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008469", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008493", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008499", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000084c7", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x000084cd", - "gatt_client_read_multiple_characteristic_values": "0x000084fb", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x0000852b", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008559", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x000085a5", - "gatt_client_register_handler": "0x000085f1", - "gatt_client_reliable_write_long_value_of_characteristic": "0x000085fd", - "gatt_client_signed_write_without_response": "0x00008a2d", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008af1", - "gatt_client_write_client_characteristic_configuration": "0x00008b2b", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008b7d", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008b8d", - "gatt_client_write_long_value_of_characteristic": "0x00008bc9", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008bd9", - "gatt_client_write_value_of_characteristic": "0x00008c15", - "gatt_client_write_value_of_characteristic_without_response": "0x00008c4b", - "hci_add_event_handler": "0x0000a1e1", - "hci_power_control": "0x0000a991", - "hci_register_acl_packet_handler": "0x0000ab45", - "kv_commit": "0x0000b2e1", - "kv_get": "0x0000b33d", - "kv_init": "0x0000b349", - "kv_init_backend": "0x0000b3c9", - "kv_put": "0x0000b3dd", - "kv_remove": "0x0000b3e9", - "kv_remove_all": "0x0000b41d", - "kv_value_modified": "0x0000b44d", - "kv_value_modified_of_key": "0x0000b469", - "kv_visit": "0x0000b475", - "l2cap_add_event_handler": "0x0000b505", - "l2cap_can_send_packet_now": "0x0000b515", - "l2cap_create_le_credit_based_connection_request": "0x0000b6d1", - "l2cap_credit_based_send": "0x0000b815", - "l2cap_credit_based_send_continue": "0x0000b841", - "l2cap_disconnect": "0x0000b8bd", - "l2cap_get_le_credit_based_connection_credits": "0x0000bb0d", - "l2cap_get_peer_mtu_for_local_cid": "0x0000bb29", - "l2cap_init": "0x0000befd", - "l2cap_le_send_flow_control_credit": "0x0000bff3", - "l2cap_max_le_mtu": "0x0000c2fd", - "l2cap_register_packet_handler": "0x0000c425", - "l2cap_register_service": "0x0000c431", - "l2cap_request_can_send_now_event": "0x0000c541", - "l2cap_request_connection_parameter_update": "0x0000c55b", - "l2cap_send_echo_request": "0x0000ca35", - "l2cap_unregister_service": "0x0000caf5", - "le_device_db_add": "0x0000cb4d", - "le_device_db_find": "0x0000cc25", - "le_device_db_from_key": "0x0000cc51", - "le_device_db_iter_cur": "0x0000cc59", - "le_device_db_iter_cur_key": "0x0000cc5d", - "le_device_db_iter_init": "0x0000cc61", - "le_device_db_iter_next": "0x0000cc69", - "le_device_db_remove_key": "0x0000cc8f", - "ll_ackable_packet_alloc": "0x0000ccbb", - "ll_ackable_packet_get_status": "0x0000cdf5", - "ll_ackable_packet_run": "0x0000ce65", - "ll_ackable_packet_set_tx_data": "0x0000cf09", - "ll_adjust_conn_peer_tx_power": "0x0000cf31", - "ll_aes_encrypt": "0x0000cf5d", - "ll_channel_monitor_alloc": "0x0000cfd9", - "ll_channel_monitor_check_each_pdu": "0x0000d05b", - "ll_channel_monitor_run": "0x0000d0c1", - "ll_config": "0x0000d175", - "ll_conn_abort": "0x0000d191", - "ll_create_conn": "0x0000d1c5", - "ll_dhkey_generated": "0x0000d441", - "ll_free": "0x0000d475", - "ll_get_conn_events_info": "0x0000d481", - "ll_get_conn_info": "0x0000d565", - "ll_get_heap_free_size": "0x0000d5b1", - "ll_hint_on_ce_len": "0x0000d5c5", - "ll_install_ecc_engine": "0x0000d5fd", - "ll_legacy_adv_set_interval": "0x0000d609", - "ll_lock_frequency": "0x0000d619", - "ll_malloc": "0x0000d67d", - "ll_p256_key_pair_generated": "0x0000d685", - "ll_raw_packet_alloc": "0x0000d839", - "ll_raw_packet_free": "0x0000d90d", - "ll_raw_packet_get_bare_rx_data": "0x0000d945", - "ll_raw_packet_get_rx_data": "0x0000da0b", - "ll_raw_packet_recv": "0x0000daad", - "ll_raw_packet_send": "0x0000db69", - "ll_raw_packet_set_bare_data": "0x0000dc51", - "ll_raw_packet_set_bare_mode": "0x0000dc8f", - "ll_raw_packet_set_param": "0x0000dd95", - "ll_raw_packet_set_tx_data": "0x0000ddf3", - "ll_register_hci_acl_previewer": "0x0000de59", - "ll_scan_set_fixed_channel": "0x0000debd", - "ll_set_adv_access_address": "0x0000e0d5", - "ll_set_adv_coded_scheme": "0x0000e0e1", - "ll_set_conn_acl_report_latency": "0x0000e111", - "ll_set_conn_coded_scheme": "0x0000e141", - "ll_set_conn_interval_unit": "0x0000e16d", - "ll_set_conn_latency": "0x0000e179", - "ll_set_conn_tx_power": "0x0000e1a9", - "ll_set_def_antenna": "0x0000e1e5", - "ll_set_initiating_coded_scheme": "0x0000e201", - "ll_set_max_conn_number": "0x0000e20d", - "ll_set_tx_power_range": "0x0000e2a1", - "ll_unlock_frequency": "0x0000e2c9", - "nibble_for_char": "0x0001fd59", - "platform_calibrate_rt_clk": "0x0001fdf5", + "att_server_can_send_packet_now": "0x00005ec5", + "att_server_deferred_read_response": "0x00005ec9", + "att_server_get_mtu": "0x00005ee1", + "att_server_indicate": "0x00005f59", + "att_server_init": "0x00005fdd", + "att_server_notify": "0x00006019", + "att_server_register_packet_handler": "0x00006131", + "att_server_request_can_send_now_event": "0x0000613d", + "att_set_db": "0x00006159", + "att_set_read_callback": "0x0000616d", + "att_set_write_callback": "0x00006179", + "bd_addr_cmp": "0x000062e9", + "bd_addr_copy": "0x000062ef", + "bd_addr_to_str": "0x000062f9", + "big_endian_read_16": "0x00006331", + "big_endian_read_32": "0x00006339", + "big_endian_store_16": "0x0000634d", + "big_endian_store_32": "0x00006359", + "btstack_config": "0x00006491", + "btstack_memory_pool_create": "0x000065e1", + "btstack_memory_pool_free": "0x00006609", + "btstack_memory_pool_get": "0x00006669", + "btstack_push_user_msg": "0x000066b1", + "btstack_push_user_runnable": "0x000066bd", + "btstack_reset": "0x000066c9", + "char_for_nibble": "0x000069c3", + "gap_add_dev_to_periodic_list": "0x00007269", + "gap_add_whitelist": "0x00007279", + "gap_aes_encrypt": "0x00007285", + "gap_clear_white_lists": "0x000072bd", + "gap_clr_adv_set": "0x000072c9", + "gap_clr_periodic_adv_list": "0x000072d5", + "gap_create_connection_cancel": "0x000072e1", + "gap_disconnect": "0x000072ed", + "gap_disconnect_all": "0x00007319", + "gap_ext_create_connection": "0x00007359", + "gap_get_connection_parameter_range": "0x0000744d", + "gap_le_read_channel_map": "0x00007489", + "gap_periodic_adv_create_sync": "0x000074f5", + "gap_periodic_adv_create_sync_cancel": "0x00007519", + "gap_periodic_adv_term_sync": "0x00007525", + "gap_read_local_tx_power_level": "0x000075b9", + "gap_read_periodic_adv_list_size": "0x000075c9", + "gap_read_phy": "0x000075d5", + "gap_read_remote_tx_power_level": "0x000075e1", + "gap_read_remote_used_features": "0x000075f1", + "gap_read_remote_version": "0x000075fd", + "gap_read_rssi": "0x00007609", + "gap_remove_whitelist": "0x00007615", + "gap_rmv_adv_set": "0x00007691", + "gap_rmv_dev_from_periodic_list": "0x0000769d", + "gap_rx_test_v2": "0x000076ad", + "gap_set_adv_set_random_addr": "0x000076e5", + "gap_set_callback_for_next_hci": "0x00007721", + "gap_set_connection_parameter_range": "0x00007741", + "gap_set_data_length": "0x00007759", + "gap_set_def_phy": "0x00007771", + "gap_set_default_subrate": "0x00007781", + "gap_set_ext_adv_data": "0x0000779d", + "gap_set_ext_adv_enable": "0x000077b5", + "gap_set_ext_adv_para": "0x00007825", + "gap_set_ext_scan_enable": "0x000078fd", + "gap_set_ext_scan_para": "0x00007915", + "gap_set_ext_scan_response_data": "0x000079b5", + "gap_set_host_channel_classification": "0x000079cd", + "gap_set_path_loss_reporting_enable": "0x000079dd", + "gap_set_path_loss_reporting_param": "0x000079ed", + "gap_set_periodic_adv_data": "0x00007a09", + "gap_set_periodic_adv_enable": "0x00007a79", + "gap_set_periodic_adv_para": "0x00007a89", + "gap_set_phy": "0x00007aa1", + "gap_set_random_device_address": "0x00007abd", + "gap_set_tx_power_reporting_enable": "0x00007add", + "gap_start_ccm": "0x00007afd", + "gap_subrate_request": "0x00007b45", + "gap_test_end": "0x00007b61", + "gap_tx_test_v2": "0x00007b6d", + "gap_tx_test_v4": "0x00007b85", + "gap_update_connection_parameters": "0x00007ba9", + "gap_vendor_tx_continuous_wave": "0x00007bed", + "gatt_client_cancel_write": "0x00008115", + "gatt_client_discover_characteristic_descriptors": "0x0000813b", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0000817b", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000081cb", + "gatt_client_discover_characteristics_for_service": "0x0000821b", + "gatt_client_discover_primary_services": "0x00008251", + "gatt_client_discover_primary_services_by_uuid128": "0x00008283", + "gatt_client_discover_primary_services_by_uuid16": "0x000082c7", + "gatt_client_execute_write": "0x00008303", + "gatt_client_find_included_services_for_service": "0x00008329", + "gatt_client_get_mtu": "0x00008357", + "gatt_client_is_ready": "0x000083f9", + "gatt_client_listen_for_characteristic_value_updates": "0x0000840f", + "gatt_client_prepare_write": "0x00008431", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x0000846d", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008497", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x0000849d", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000084cb", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x000084d1", + "gatt_client_read_multiple_characteristic_values": "0x000084ff", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x0000852f", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x0000855d", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x000085a9", + "gatt_client_register_handler": "0x000085f5", + "gatt_client_reliable_write_long_value_of_characteristic": "0x00008601", + "gatt_client_signed_write_without_response": "0x00008a31", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008af5", + "gatt_client_write_client_characteristic_configuration": "0x00008b2f", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008b81", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008b91", + "gatt_client_write_long_value_of_characteristic": "0x00008bcd", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008bdd", + "gatt_client_write_value_of_characteristic": "0x00008c19", + "gatt_client_write_value_of_characteristic_without_response": "0x00008c4f", + "hci_add_event_handler": "0x0000a1e5", + "hci_power_control": "0x0000a995", + "hci_register_acl_packet_handler": "0x0000ab49", + "kv_commit": "0x0000b2e5", + "kv_get": "0x0000b341", + "kv_init": "0x0000b34d", + "kv_init_backend": "0x0000b3cd", + "kv_put": "0x0000b3e1", + "kv_remove": "0x0000b3ed", + "kv_remove_all": "0x0000b421", + "kv_value_modified": "0x0000b451", + "kv_value_modified_of_key": "0x0000b46d", + "kv_visit": "0x0000b479", + "l2cap_add_event_handler": "0x0000b509", + "l2cap_can_send_packet_now": "0x0000b519", + "l2cap_create_le_credit_based_connection_request": "0x0000b6d5", + "l2cap_credit_based_send": "0x0000b819", + "l2cap_credit_based_send_continue": "0x0000b845", + "l2cap_disconnect": "0x0000b8c1", + "l2cap_get_le_credit_based_connection_credits": "0x0000bb11", + "l2cap_get_peer_mtu_for_local_cid": "0x0000bb2d", + "l2cap_init": "0x0000bf01", + "l2cap_le_send_flow_control_credit": "0x0000bff7", + "l2cap_max_le_mtu": "0x0000c301", + "l2cap_register_packet_handler": "0x0000c429", + "l2cap_register_service": "0x0000c435", + "l2cap_request_can_send_now_event": "0x0000c545", + "l2cap_request_connection_parameter_update": "0x0000c55f", + "l2cap_send_echo_request": "0x0000ca39", + "l2cap_unregister_service": "0x0000caf9", + "le_device_db_add": "0x0000cb51", + "le_device_db_find": "0x0000cc29", + "le_device_db_from_key": "0x0000cc55", + "le_device_db_iter_cur": "0x0000cc5d", + "le_device_db_iter_cur_key": "0x0000cc61", + "le_device_db_iter_init": "0x0000cc65", + "le_device_db_iter_next": "0x0000cc6d", + "le_device_db_remove_key": "0x0000cc93", + "ll_ackable_packet_alloc": "0x0000ccbf", + "ll_ackable_packet_get_status": "0x0000cdf9", + "ll_ackable_packet_run": "0x0000ce69", + "ll_ackable_packet_set_tx_data": "0x0000cf0d", + "ll_adjust_conn_peer_tx_power": "0x0000cf35", + "ll_aes_encrypt": "0x0000cf61", + "ll_channel_monitor_alloc": "0x0000cfdd", + "ll_channel_monitor_check_each_pdu": "0x0000d05f", + "ll_channel_monitor_run": "0x0000d0c5", + "ll_config": "0x0000d179", + "ll_conn_abort": "0x0000d195", + "ll_create_conn": "0x0000d1c9", + "ll_dhkey_generated": "0x0000d445", + "ll_free": "0x0000d479", + "ll_get_conn_events_info": "0x0000d485", + "ll_get_conn_info": "0x0000d569", + "ll_get_heap_free_size": "0x0000d5b5", + "ll_hint_on_ce_len": "0x0000d5c9", + "ll_install_ecc_engine": "0x0000d601", + "ll_legacy_adv_set_interval": "0x0000d60d", + "ll_lock_frequency": "0x0000d61d", + "ll_malloc": "0x0000d681", + "ll_p256_key_pair_generated": "0x0000d689", + "ll_raw_packet_alloc": "0x0000d83d", + "ll_raw_packet_free": "0x0000d911", + "ll_raw_packet_get_bare_rx_data": "0x0000d949", + "ll_raw_packet_get_rx_data": "0x0000da0f", + "ll_raw_packet_recv": "0x0000dab1", + "ll_raw_packet_send": "0x0000db6d", + "ll_raw_packet_set_bare_data": "0x0000dc55", + "ll_raw_packet_set_bare_mode": "0x0000dc93", + "ll_raw_packet_set_param": "0x0000dd99", + "ll_raw_packet_set_tx_data": "0x0000ddf7", + "ll_register_hci_acl_previewer": "0x0000de5d", + "ll_scan_set_fixed_channel": "0x0000dec1", + "ll_set_adv_access_address": "0x0000e0d9", + "ll_set_adv_coded_scheme": "0x0000e0e5", + "ll_set_conn_acl_report_latency": "0x0000e115", + "ll_set_conn_coded_scheme": "0x0000e145", + "ll_set_conn_interval_unit": "0x0000e171", + "ll_set_conn_latency": "0x0000e17d", + "ll_set_conn_tx_power": "0x0000e1ad", + "ll_set_def_antenna": "0x0000e1e9", + "ll_set_initiating_coded_scheme": "0x0000e205", + "ll_set_max_conn_number": "0x0000e211", + "ll_set_tx_power_range": "0x0000e2a5", + "ll_unlock_frequency": "0x0000e2cd", + "nibble_for_char": "0x0001fd5d", + "platform_calibrate_rt_clk": "0x0001fdf9", "platform_call_on_stack": "0x000040ef", - "platform_config": "0x0001fdf9", - "platform_controller_run": "0x0001ff1d", - "platform_delete_timer": "0x0001ff51", - "platform_enable_irq": "0x0001ff59", - "platform_get_gen_os_driver": "0x0001ff91", - "platform_get_link_layer_interf": "0x0001ff9d", - "platform_get_task_handle": "0x0001ffa5", - "platform_get_timer_counter": "0x0001ffbd", - "platform_get_us_time": "0x0001ffc1", - "platform_get_version": "0x0001ffc5", - "platform_hrng": "0x0001ffcd", - "platform_init_controller": "0x0001ffd5", - "platform_os_idle_resumed_hook": "0x0001fff1", - "platform_patch_rf_init_data": "0x0001fff5", - "platform_post_sleep_processing": "0x00020001", - "platform_pre_sleep_processing": "0x00020007", - "platform_pre_suppress_ticks_and_sleep_processing": "0x0002000d", - "platform_printf": "0x00020011", - "platform_raise_assertion": "0x00020025", - "platform_rand": "0x00020039", - "platform_read_info": "0x0002003d", - "platform_read_persistent_reg": "0x0002006d", - "platform_reset": "0x0002007d", - "platform_rt_rc_auto_tune": "0x000200a1", - "platform_rt_rc_auto_tune2": "0x000200a9", - "platform_rt_rc_tune": "0x00020131", - "platform_set_abs_timer": "0x00020145", - "platform_set_evt_callback": "0x00020149", - "platform_set_evt_callback_table": "0x0002015d", - "platform_set_irq_callback": "0x00020169", - "platform_set_irq_callback_table": "0x00020185", - "platform_set_rf_clk_source": "0x00020191", - "platform_set_rf_init_data": "0x0002019d", - "platform_set_rf_power_mapping": "0x000201a9", - "platform_set_timer": "0x000201b5", - "platform_shutdown": "0x000201b9", - "platform_switch_app": "0x000201bd", - "platform_trace_raw": "0x000201e9", - "platform_write_persistent_reg": "0x00020201", - "printf_hexdump": "0x00020211", - "reverse_128": "0x00020551", - "reverse_24": "0x00020557", - "reverse_256": "0x0002055d", - "reverse_48": "0x00020563", - "reverse_56": "0x00020569", - "reverse_64": "0x0002056f", - "reverse_bd_addr": "0x00020575", - "reverse_bytes": "0x0002057b", - "sm_add_event_handler": "0x00020769", - "sm_address_resolution_lookup": "0x000208ad", - "sm_authenticated": "0x00020cd9", - "sm_authorization_decline": "0x00020ce7", - "sm_authorization_grant": "0x00020d07", - "sm_authorization_state": "0x00020d27", - "sm_bonding_decline": "0x00020d41", - "sm_config": "0x000211c1", - "sm_config_conn": "0x000211d9", - "sm_encryption_key_size": "0x00021393", - "sm_just_works_confirm": "0x000220e5", - "sm_le_device_key": "0x000224d5", - "sm_numeric_comparison_confirm": "0x0002262b", - "sm_passkey_input": "0x00022669", - "sm_private_random_address_generation_get": "0x00022c71", - "sm_private_random_address_generation_get_mode": "0x00022c79", - "sm_private_random_address_generation_set_mode": "0x00022c85", - "sm_private_random_address_generation_set_update_period": "0x00022cad", - "sm_register_external_ltk_callback": "0x00022f39", - "sm_register_oob_data_callback": "0x00022f45", - "sm_register_sc_oob_data_callback": "0x00022f51", - "sm_request_pairing": "0x00022f5d", - "sm_sc_generate_oob_data": "0x00023b99", - "sm_send_security_request": "0x00023cc9", - "sm_set_accepted_stk_generation_methods": "0x00023cf1", - "sm_set_authentication_requirements": "0x00023cfd", - "sm_set_encryption_key_size_range": "0x00023d0d", - "sscanf_bd_addr": "0x00024129", - "sysSetPublicDeviceAddr": "0x000244dd", - "uuid128_to_str": "0x00024b19", - "uuid_add_bluetooth_prefix": "0x00024b71", - "uuid_has_bluetooth_prefix": "0x00024b91" + "platform_config": "0x0001fdfd", + "platform_controller_run": "0x0001ff21", + "platform_delete_timer": "0x0001ff55", + "platform_enable_irq": "0x0001ff5d", + "platform_get_gen_os_driver": "0x0001ff95", + "platform_get_link_layer_interf": "0x0001ffa1", + "platform_get_task_handle": "0x0001ffa9", + "platform_get_timer_counter": "0x0001ffc1", + "platform_get_us_time": "0x0001ffc5", + "platform_get_version": "0x0001ffc9", + "platform_hrng": "0x0001ffd1", + "platform_init_controller": "0x0001ffd9", + "platform_os_idle_resumed_hook": "0x0001fff5", + "platform_patch_rf_init_data": "0x0001fff9", + "platform_post_sleep_processing": "0x00020005", + "platform_pre_sleep_processing": "0x0002000b", + "platform_pre_suppress_ticks_and_sleep_processing": "0x00020011", + "platform_printf": "0x00020015", + "platform_raise_assertion": "0x00020029", + "platform_rand": "0x0002003d", + "platform_read_info": "0x00020041", + "platform_read_persistent_reg": "0x00020071", + "platform_reset": "0x00020081", + "platform_rt_rc_auto_tune": "0x000200a5", + "platform_rt_rc_auto_tune2": "0x000200ad", + "platform_rt_rc_tune": "0x00020135", + "platform_set_abs_timer": "0x00020149", + "platform_set_evt_callback": "0x0002014d", + "platform_set_evt_callback_table": "0x00020161", + "platform_set_irq_callback": "0x0002016d", + "platform_set_irq_callback_table": "0x00020189", + "platform_set_rf_clk_source": "0x00020195", + "platform_set_rf_init_data": "0x000201a1", + "platform_set_rf_power_mapping": "0x000201ad", + "platform_set_timer": "0x000201b9", + "platform_shutdown": "0x000201bd", + "platform_switch_app": "0x000201c1", + "platform_trace_raw": "0x000201ed", + "platform_write_persistent_reg": "0x00020205", + "printf_hexdump": "0x00020215", + "reverse_128": "0x00020555", + "reverse_24": "0x0002055b", + "reverse_256": "0x00020561", + "reverse_48": "0x00020567", + "reverse_56": "0x0002056d", + "reverse_64": "0x00020573", + "reverse_bd_addr": "0x00020579", + "reverse_bytes": "0x0002057f", + "sm_add_event_handler": "0x0002076d", + "sm_address_resolution_lookup": "0x000208b1", + "sm_authenticated": "0x00020cdd", + "sm_authorization_decline": "0x00020ceb", + "sm_authorization_grant": "0x00020d0b", + "sm_authorization_state": "0x00020d2b", + "sm_bonding_decline": "0x00020d45", + "sm_config": "0x000211c5", + "sm_config_conn": "0x000211dd", + "sm_encryption_key_size": "0x00021397", + "sm_just_works_confirm": "0x000220ed", + "sm_le_device_key": "0x000224dd", + "sm_numeric_comparison_confirm": "0x00022633", + "sm_passkey_input": "0x00022671", + "sm_private_random_address_generation_get": "0x00022c79", + "sm_private_random_address_generation_get_mode": "0x00022c81", + "sm_private_random_address_generation_set_mode": "0x00022c8d", + "sm_private_random_address_generation_set_update_period": "0x00022cb5", + "sm_register_external_ltk_callback": "0x00022f41", + "sm_register_oob_data_callback": "0x00022f4d", + "sm_register_sc_oob_data_callback": "0x00022f59", + "sm_request_pairing": "0x00022f65", + "sm_sc_generate_oob_data": "0x00023ba1", + "sm_send_security_request": "0x00023cd1", + "sm_set_accepted_stk_generation_methods": "0x00023cf9", + "sm_set_authentication_requirements": "0x00023d05", + "sm_set_encryption_key_size_range": "0x00023d15", + "sscanf_bd_addr": "0x00024131", + "sysSetPublicDeviceAddr": "0x000244e5", + "uuid128_to_str": "0x00024b21", + "uuid_add_bluetooth_prefix": "0x00024b79", + "uuid_has_bluetooth_prefix": "0x00024b99" } \ No newline at end of file diff --git a/bundles/noos_exp/ING9187xx/meta.json b/bundles/noos_exp/ING9187xx/meta.json index aed554596..177afa07a 100644 --- a/bundles/noos_exp/ING9187xx/meta.json +++ b/bundles/noos_exp/ING9187xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 141252 + "size": 141260 }, "version": [ 1, 9, - 42 + 43 ] } \ No newline at end of file diff --git a/bundles/noos_exp/ING9187xx/platform.bin b/bundles/noos_exp/ING9187xx/platform.bin index b11ab1862243876e237788e8811b165917085bc8..1cf5cb885d2e725c787975aa06851470b20638af 100644 GIT binary patch delta 17399 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 S*P!Sj(S9@U(0@g7PyRm~x}p~V delta 17462 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 Tu0|#dObB@V5`TA)H2D7kftKDo diff --git a/bundles/noos_exp/ING9188xx/apis.json b/bundles/noos_exp/ING9188xx/apis.json index 452888ee0..254da9035 100644 --- a/bundles/noos_exp/ING9188xx/apis.json +++ b/bundles/noos_exp/ING9188xx/apis.json @@ -6,305 +6,305 @@ "att_dispatch_server_can_send_now": "0x000057fd", "att_dispatch_server_request_can_send_now_event": "0x00005803", "att_emit_general_event": "0x000058b5", - "att_server_can_send_packet_now": "0x00005fe5", - "att_server_deferred_read_response": "0x00005fe9", - "att_server_get_mtu": "0x00006001", - "att_server_indicate": "0x00006079", - "att_server_init": "0x000060fd", - "att_server_notify": "0x00006139", - "att_server_register_packet_handler": "0x00006251", - "att_server_request_can_send_now_event": "0x0000625d", - "att_set_db": "0x00006279", - "att_set_read_callback": "0x0000628d", - "att_set_write_callback": "0x00006299", - "bd_addr_cmp": "0x00006409", - "bd_addr_copy": "0x0000640f", - "bd_addr_to_str": "0x00006419", - "big_endian_read_16": "0x00006451", - "big_endian_read_32": "0x00006459", - "big_endian_store_16": "0x0000646d", - "big_endian_store_32": "0x00006479", - "btstack_config": "0x000065b1", - "btstack_memory_pool_create": "0x00006701", - "btstack_memory_pool_free": "0x00006729", - "btstack_memory_pool_get": "0x00006789", - "btstack_push_user_msg": "0x000067d1", - "btstack_push_user_runnable": "0x000067dd", - "btstack_reset": "0x000067e9", - "char_for_nibble": "0x00006ae3", - "gap_add_dev_to_periodic_list": "0x000073f9", - "gap_add_whitelist": "0x00007409", - "gap_aes_encrypt": "0x00007415", - "gap_clear_white_lists": "0x0000744d", - "gap_clr_adv_set": "0x00007459", - "gap_clr_periodic_adv_list": "0x00007465", - "gap_create_connection_cancel": "0x00007471", - "gap_default_periodic_adv_sync_transfer_param": "0x0000747d", - "gap_disconnect": "0x00007495", - "gap_disconnect_all": "0x000074c1", - "gap_ext_create_connection": "0x00007501", - "gap_get_connection_parameter_range": "0x000075f5", - "gap_le_read_channel_map": "0x00007631", - "gap_periodic_adv_create_sync": "0x0000769d", - "gap_periodic_adv_create_sync_cancel": "0x000076c1", - "gap_periodic_adv_set_info_transfer": "0x000076cd", - "gap_periodic_adv_sync_transfer": "0x000076dd", - "gap_periodic_adv_sync_transfer_param": "0x000076ed", - "gap_periodic_adv_term_sync": "0x00007709", - "gap_read_antenna_info": "0x00007791", - "gap_read_local_tx_power_level": "0x000077a9", - "gap_read_periodic_adv_list_size": "0x000077b9", - "gap_read_phy": "0x000077c5", - "gap_read_remote_tx_power_level": "0x000077d1", - "gap_read_remote_used_features": "0x000077e1", - "gap_read_remote_version": "0x000077ed", - "gap_read_rssi": "0x000077f9", - "gap_remove_whitelist": "0x00007805", - "gap_rmv_adv_set": "0x00007881", - "gap_rmv_dev_from_periodic_list": "0x0000788d", - "gap_rx_test_v2": "0x0000789d", - "gap_rx_test_v3": "0x000078ad", - "gap_set_adv_set_random_addr": "0x000078f9", - "gap_set_callback_for_next_hci": "0x00007935", - "gap_set_connection_cte_request_enable": "0x00007955", - "gap_set_connection_cte_response_enable": "0x00007971", - "gap_set_connection_cte_rx_param": "0x00007981", - "gap_set_connection_cte_tx_param": "0x000079d5", - "gap_set_connection_parameter_range": "0x00007a21", - "gap_set_connectionless_cte_tx_enable": "0x00007a39", - "gap_set_connectionless_cte_tx_param": "0x00007a49", - "gap_set_connectionless_iq_sampling_enable": "0x00007aa5", - "gap_set_data_length": "0x00007b01", - "gap_set_def_phy": "0x00007b19", - "gap_set_default_subrate": "0x00007b29", - "gap_set_ext_adv_data": "0x00007b45", - "gap_set_ext_adv_enable": "0x00007b5d", - "gap_set_ext_adv_para": "0x00007bcd", - "gap_set_ext_scan_enable": "0x00007ca5", - "gap_set_ext_scan_para": "0x00007cbd", - "gap_set_ext_scan_response_data": "0x00007d5d", - "gap_set_host_channel_classification": "0x00007d75", - "gap_set_path_loss_reporting_enable": "0x00007d85", - "gap_set_path_loss_reporting_param": "0x00007d95", - "gap_set_periodic_adv_data": "0x00007db1", - "gap_set_periodic_adv_enable": "0x00007e21", - "gap_set_periodic_adv_para": "0x00007e31", - "gap_set_periodic_adv_rx_enable": "0x00007e49", - "gap_set_phy": "0x00007e59", - "gap_set_random_device_address": "0x00007e75", - "gap_set_tx_power_reporting_enable": "0x00007e95", - "gap_start_ccm": "0x00007eb5", - "gap_subrate_request": "0x00007efd", - "gap_test_end": "0x00007f19", - "gap_tx_test_v2": "0x00007f25", - "gap_tx_test_v4": "0x00007f3d", - "gap_update_connection_parameters": "0x00007f61", - "gap_vendor_tx_continuous_wave": "0x00007fa5", - "gatt_client_cancel_write": "0x000084cd", - "gatt_client_discover_characteristic_descriptors": "0x000084f3", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x00008533", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x00008583", - "gatt_client_discover_characteristics_for_service": "0x000085d3", - "gatt_client_discover_primary_services": "0x00008609", - "gatt_client_discover_primary_services_by_uuid128": "0x0000863b", - "gatt_client_discover_primary_services_by_uuid16": "0x0000867f", - "gatt_client_execute_write": "0x000086bb", - "gatt_client_find_included_services_for_service": "0x000086e1", - "gatt_client_get_mtu": "0x0000870f", - "gatt_client_is_ready": "0x000087b1", - "gatt_client_listen_for_characteristic_value_updates": "0x000087c7", - "gatt_client_prepare_write": "0x000087e9", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008825", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0000884f", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008855", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008883", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x00008889", - "gatt_client_read_multiple_characteristic_values": "0x000088b7", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x000088e7", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008915", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008961", - "gatt_client_register_handler": "0x000089ad", - "gatt_client_reliable_write_long_value_of_characteristic": "0x000089b9", - "gatt_client_signed_write_without_response": "0x00008de9", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008ead", - "gatt_client_write_client_characteristic_configuration": "0x00008ee7", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008f39", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008f49", - "gatt_client_write_long_value_of_characteristic": "0x00008f85", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008f95", - "gatt_client_write_value_of_characteristic": "0x00008fd1", - "gatt_client_write_value_of_characteristic_without_response": "0x00009007", - "hci_add_event_handler": "0x0000a5b9", - "hci_power_control": "0x0000ad69", - "hci_register_acl_packet_handler": "0x0000af1d", - "kv_commit": "0x0000b6b9", - "kv_get": "0x0000b715", - "kv_init": "0x0000b721", - "kv_init_backend": "0x0000b7a1", - "kv_put": "0x0000b7b5", - "kv_remove": "0x0000b7c1", - "kv_remove_all": "0x0000b7f5", - "kv_value_modified": "0x0000b825", - "kv_value_modified_of_key": "0x0000b841", - "kv_visit": "0x0000b84d", - "l2cap_add_event_handler": "0x0000b8dd", - "l2cap_can_send_packet_now": "0x0000b8ed", - "l2cap_create_le_credit_based_connection_request": "0x0000baa9", - "l2cap_credit_based_send": "0x0000bbed", - "l2cap_credit_based_send_continue": "0x0000bc19", - "l2cap_disconnect": "0x0000bc95", - "l2cap_get_le_credit_based_connection_credits": "0x0000bee5", - "l2cap_get_peer_mtu_for_local_cid": "0x0000bf01", - "l2cap_init": "0x0000c2d5", - "l2cap_le_send_flow_control_credit": "0x0000c3cb", - "l2cap_max_le_mtu": "0x0000c6d5", - "l2cap_register_packet_handler": "0x0000c7fd", - "l2cap_register_service": "0x0000c809", - "l2cap_request_can_send_now_event": "0x0000c919", - "l2cap_request_connection_parameter_update": "0x0000c933", - "l2cap_send_echo_request": "0x0000ce0d", - "l2cap_unregister_service": "0x0000cecd", - "le_device_db_add": "0x0000cf25", - "le_device_db_find": "0x0000cffd", - "le_device_db_from_key": "0x0000d029", - "le_device_db_iter_cur": "0x0000d031", - "le_device_db_iter_cur_key": "0x0000d035", - "le_device_db_iter_init": "0x0000d039", - "le_device_db_iter_next": "0x0000d041", - "le_device_db_remove_key": "0x0000d067", - "ll_ackable_packet_alloc": "0x0000d093", - "ll_ackable_packet_get_status": "0x0000d1cd", - "ll_ackable_packet_run": "0x0000d23d", - "ll_ackable_packet_set_tx_data": "0x0000d2e1", - "ll_adjust_conn_peer_tx_power": "0x0000d309", - "ll_aes_encrypt": "0x0000d335", - "ll_channel_monitor_alloc": "0x0000d3b1", - "ll_channel_monitor_check_each_pdu": "0x0000d433", - "ll_channel_monitor_run": "0x0000d499", - "ll_config": "0x0000d54d", - "ll_conn_abort": "0x0000d569", - "ll_create_conn": "0x0000d59d", - "ll_dhkey_generated": "0x0000d819", - "ll_free": "0x0000d84d", - "ll_get_conn_events_info": "0x0000d859", - "ll_get_conn_info": "0x0000d93d", - "ll_get_heap_free_size": "0x0000d989", - "ll_hint_on_ce_len": "0x0000d99d", - "ll_install_ecc_engine": "0x0000d9d5", - "ll_legacy_adv_set_interval": "0x0000d9e1", - "ll_lock_frequency": "0x0000d9f1", - "ll_malloc": "0x0000da55", - "ll_p256_key_pair_generated": "0x0000da5d", - "ll_raw_packet_alloc": "0x0000dc11", - "ll_raw_packet_free": "0x0000dce5", - "ll_raw_packet_get_bare_rx_data": "0x0000dd1d", - "ll_raw_packet_get_iq_samples": "0x0000dde3", - "ll_raw_packet_get_rx_data": "0x0000de7d", - "ll_raw_packet_recv": "0x0000df1d", - "ll_raw_packet_send": "0x0000dfd9", - "ll_raw_packet_set_bare_data": "0x0000e0c1", - "ll_raw_packet_set_bare_mode": "0x0000e0ff", - "ll_raw_packet_set_fake_cte_info": "0x0000e205", - "ll_raw_packet_set_param": "0x0000e227", - "ll_raw_packet_set_rx_cte": "0x0000e285", - "ll_raw_packet_set_tx_cte": "0x0000e31b", - "ll_raw_packet_set_tx_data": "0x0000e359", - "ll_register_hci_acl_previewer": "0x0000e3bd", - "ll_scan_set_fixed_channel": "0x0000e421", - "ll_scanner_enable_iq_sampling": "0x0000e42d", - "ll_set_adv_access_address": "0x0000e6e1", - "ll_set_adv_coded_scheme": "0x0000e6ed", - "ll_set_conn_acl_report_latency": "0x0000e71d", - "ll_set_conn_coded_scheme": "0x0000e74d", - "ll_set_conn_interval_unit": "0x0000e779", - "ll_set_conn_latency": "0x0000e785", - "ll_set_conn_tx_power": "0x0000e7b5", - "ll_set_def_antenna": "0x0000e7f1", - "ll_set_initiating_coded_scheme": "0x0000e80d", - "ll_set_max_conn_number": "0x0000e819", - "ll_set_tx_power_range": "0x0000e8ad", - "ll_unlock_frequency": "0x0000e8d5", - "nibble_for_char": "0x00021375", - "platform_calibrate_rt_clk": "0x00021411", + "att_server_can_send_packet_now": "0x00005fe9", + "att_server_deferred_read_response": "0x00005fed", + "att_server_get_mtu": "0x00006005", + "att_server_indicate": "0x0000607d", + "att_server_init": "0x00006101", + "att_server_notify": "0x0000613d", + "att_server_register_packet_handler": "0x00006255", + "att_server_request_can_send_now_event": "0x00006261", + "att_set_db": "0x0000627d", + "att_set_read_callback": "0x00006291", + "att_set_write_callback": "0x0000629d", + "bd_addr_cmp": "0x0000640d", + "bd_addr_copy": "0x00006413", + "bd_addr_to_str": "0x0000641d", + "big_endian_read_16": "0x00006455", + "big_endian_read_32": "0x0000645d", + "big_endian_store_16": "0x00006471", + "big_endian_store_32": "0x0000647d", + "btstack_config": "0x000065b5", + "btstack_memory_pool_create": "0x00006705", + "btstack_memory_pool_free": "0x0000672d", + "btstack_memory_pool_get": "0x0000678d", + "btstack_push_user_msg": "0x000067d5", + "btstack_push_user_runnable": "0x000067e1", + "btstack_reset": "0x000067ed", + "char_for_nibble": "0x00006ae7", + "gap_add_dev_to_periodic_list": "0x000073fd", + "gap_add_whitelist": "0x0000740d", + "gap_aes_encrypt": "0x00007419", + "gap_clear_white_lists": "0x00007451", + "gap_clr_adv_set": "0x0000745d", + "gap_clr_periodic_adv_list": "0x00007469", + "gap_create_connection_cancel": "0x00007475", + "gap_default_periodic_adv_sync_transfer_param": "0x00007481", + "gap_disconnect": "0x00007499", + "gap_disconnect_all": "0x000074c5", + "gap_ext_create_connection": "0x00007505", + "gap_get_connection_parameter_range": "0x000075f9", + "gap_le_read_channel_map": "0x00007635", + "gap_periodic_adv_create_sync": "0x000076a1", + "gap_periodic_adv_create_sync_cancel": "0x000076c5", + "gap_periodic_adv_set_info_transfer": "0x000076d1", + "gap_periodic_adv_sync_transfer": "0x000076e1", + "gap_periodic_adv_sync_transfer_param": "0x000076f1", + "gap_periodic_adv_term_sync": "0x0000770d", + "gap_read_antenna_info": "0x00007795", + "gap_read_local_tx_power_level": "0x000077ad", + "gap_read_periodic_adv_list_size": "0x000077bd", + "gap_read_phy": "0x000077c9", + "gap_read_remote_tx_power_level": "0x000077d5", + "gap_read_remote_used_features": "0x000077e5", + "gap_read_remote_version": "0x000077f1", + "gap_read_rssi": "0x000077fd", + "gap_remove_whitelist": "0x00007809", + "gap_rmv_adv_set": "0x00007885", + "gap_rmv_dev_from_periodic_list": "0x00007891", + "gap_rx_test_v2": "0x000078a1", + "gap_rx_test_v3": "0x000078b1", + "gap_set_adv_set_random_addr": "0x000078fd", + "gap_set_callback_for_next_hci": "0x00007939", + "gap_set_connection_cte_request_enable": "0x00007959", + "gap_set_connection_cte_response_enable": "0x00007975", + "gap_set_connection_cte_rx_param": "0x00007985", + "gap_set_connection_cte_tx_param": "0x000079d9", + "gap_set_connection_parameter_range": "0x00007a25", + "gap_set_connectionless_cte_tx_enable": "0x00007a3d", + "gap_set_connectionless_cte_tx_param": "0x00007a4d", + "gap_set_connectionless_iq_sampling_enable": "0x00007aa9", + "gap_set_data_length": "0x00007b05", + "gap_set_def_phy": "0x00007b1d", + "gap_set_default_subrate": "0x00007b2d", + "gap_set_ext_adv_data": "0x00007b49", + "gap_set_ext_adv_enable": "0x00007b61", + "gap_set_ext_adv_para": "0x00007bd1", + "gap_set_ext_scan_enable": "0x00007ca9", + "gap_set_ext_scan_para": "0x00007cc1", + "gap_set_ext_scan_response_data": "0x00007d61", + "gap_set_host_channel_classification": "0x00007d79", + "gap_set_path_loss_reporting_enable": "0x00007d89", + "gap_set_path_loss_reporting_param": "0x00007d99", + "gap_set_periodic_adv_data": "0x00007db5", + "gap_set_periodic_adv_enable": "0x00007e25", + "gap_set_periodic_adv_para": "0x00007e35", + "gap_set_periodic_adv_rx_enable": "0x00007e4d", + "gap_set_phy": "0x00007e5d", + "gap_set_random_device_address": "0x00007e79", + "gap_set_tx_power_reporting_enable": "0x00007e99", + "gap_start_ccm": "0x00007eb9", + "gap_subrate_request": "0x00007f01", + "gap_test_end": "0x00007f1d", + "gap_tx_test_v2": "0x00007f29", + "gap_tx_test_v4": "0x00007f41", + "gap_update_connection_parameters": "0x00007f65", + "gap_vendor_tx_continuous_wave": "0x00007fa9", + "gatt_client_cancel_write": "0x000084d1", + "gatt_client_discover_characteristic_descriptors": "0x000084f7", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x00008537", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x00008587", + "gatt_client_discover_characteristics_for_service": "0x000085d7", + "gatt_client_discover_primary_services": "0x0000860d", + "gatt_client_discover_primary_services_by_uuid128": "0x0000863f", + "gatt_client_discover_primary_services_by_uuid16": "0x00008683", + "gatt_client_execute_write": "0x000086bf", + "gatt_client_find_included_services_for_service": "0x000086e5", + "gatt_client_get_mtu": "0x00008713", + "gatt_client_is_ready": "0x000087b5", + "gatt_client_listen_for_characteristic_value_updates": "0x000087cb", + "gatt_client_prepare_write": "0x000087ed", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x00008829", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x00008853", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008859", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x00008887", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x0000888d", + "gatt_client_read_multiple_characteristic_values": "0x000088bb", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x000088eb", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x00008919", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x00008965", + "gatt_client_register_handler": "0x000089b1", + "gatt_client_reliable_write_long_value_of_characteristic": "0x000089bd", + "gatt_client_signed_write_without_response": "0x00008ded", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008eb1", + "gatt_client_write_client_characteristic_configuration": "0x00008eeb", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008f3d", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008f4d", + "gatt_client_write_long_value_of_characteristic": "0x00008f89", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008f99", + "gatt_client_write_value_of_characteristic": "0x00008fd5", + "gatt_client_write_value_of_characteristic_without_response": "0x0000900b", + "hci_add_event_handler": "0x0000a5bd", + "hci_power_control": "0x0000ad6d", + "hci_register_acl_packet_handler": "0x0000af21", + "kv_commit": "0x0000b6bd", + "kv_get": "0x0000b719", + "kv_init": "0x0000b725", + "kv_init_backend": "0x0000b7a5", + "kv_put": "0x0000b7b9", + "kv_remove": "0x0000b7c5", + "kv_remove_all": "0x0000b7f9", + "kv_value_modified": "0x0000b829", + "kv_value_modified_of_key": "0x0000b845", + "kv_visit": "0x0000b851", + "l2cap_add_event_handler": "0x0000b8e1", + "l2cap_can_send_packet_now": "0x0000b8f1", + "l2cap_create_le_credit_based_connection_request": "0x0000baad", + "l2cap_credit_based_send": "0x0000bbf1", + "l2cap_credit_based_send_continue": "0x0000bc1d", + "l2cap_disconnect": "0x0000bc99", + "l2cap_get_le_credit_based_connection_credits": "0x0000bee9", + "l2cap_get_peer_mtu_for_local_cid": "0x0000bf05", + "l2cap_init": "0x0000c2d9", + "l2cap_le_send_flow_control_credit": "0x0000c3cf", + "l2cap_max_le_mtu": "0x0000c6d9", + "l2cap_register_packet_handler": "0x0000c801", + "l2cap_register_service": "0x0000c80d", + "l2cap_request_can_send_now_event": "0x0000c91d", + "l2cap_request_connection_parameter_update": "0x0000c937", + "l2cap_send_echo_request": "0x0000ce11", + "l2cap_unregister_service": "0x0000ced1", + "le_device_db_add": "0x0000cf29", + "le_device_db_find": "0x0000d001", + "le_device_db_from_key": "0x0000d02d", + "le_device_db_iter_cur": "0x0000d035", + "le_device_db_iter_cur_key": "0x0000d039", + "le_device_db_iter_init": "0x0000d03d", + "le_device_db_iter_next": "0x0000d045", + "le_device_db_remove_key": "0x0000d06b", + "ll_ackable_packet_alloc": "0x0000d097", + "ll_ackable_packet_get_status": "0x0000d1d1", + "ll_ackable_packet_run": "0x0000d241", + "ll_ackable_packet_set_tx_data": "0x0000d2e5", + "ll_adjust_conn_peer_tx_power": "0x0000d30d", + "ll_aes_encrypt": "0x0000d339", + "ll_channel_monitor_alloc": "0x0000d3b5", + "ll_channel_monitor_check_each_pdu": "0x0000d437", + "ll_channel_monitor_run": "0x0000d49d", + "ll_config": "0x0000d551", + "ll_conn_abort": "0x0000d56d", + "ll_create_conn": "0x0000d5a1", + "ll_dhkey_generated": "0x0000d81d", + "ll_free": "0x0000d851", + "ll_get_conn_events_info": "0x0000d85d", + "ll_get_conn_info": "0x0000d941", + "ll_get_heap_free_size": "0x0000d98d", + "ll_hint_on_ce_len": "0x0000d9a1", + "ll_install_ecc_engine": "0x0000d9d9", + "ll_legacy_adv_set_interval": "0x0000d9e5", + "ll_lock_frequency": "0x0000d9f5", + "ll_malloc": "0x0000da59", + "ll_p256_key_pair_generated": "0x0000da61", + "ll_raw_packet_alloc": "0x0000dc15", + "ll_raw_packet_free": "0x0000dce9", + "ll_raw_packet_get_bare_rx_data": "0x0000dd21", + "ll_raw_packet_get_iq_samples": "0x0000dde7", + "ll_raw_packet_get_rx_data": "0x0000de81", + "ll_raw_packet_recv": "0x0000df21", + "ll_raw_packet_send": "0x0000dfdd", + "ll_raw_packet_set_bare_data": "0x0000e0c5", + "ll_raw_packet_set_bare_mode": "0x0000e103", + "ll_raw_packet_set_fake_cte_info": "0x0000e209", + "ll_raw_packet_set_param": "0x0000e22b", + "ll_raw_packet_set_rx_cte": "0x0000e289", + "ll_raw_packet_set_tx_cte": "0x0000e31f", + "ll_raw_packet_set_tx_data": "0x0000e35d", + "ll_register_hci_acl_previewer": "0x0000e3c1", + "ll_scan_set_fixed_channel": "0x0000e425", + "ll_scanner_enable_iq_sampling": "0x0000e431", + "ll_set_adv_access_address": "0x0000e6e5", + "ll_set_adv_coded_scheme": "0x0000e6f1", + "ll_set_conn_acl_report_latency": "0x0000e721", + "ll_set_conn_coded_scheme": "0x0000e751", + "ll_set_conn_interval_unit": "0x0000e77d", + "ll_set_conn_latency": "0x0000e789", + "ll_set_conn_tx_power": "0x0000e7b9", + "ll_set_def_antenna": "0x0000e7f5", + "ll_set_initiating_coded_scheme": "0x0000e811", + "ll_set_max_conn_number": "0x0000e81d", + "ll_set_tx_power_range": "0x0000e8b1", + "ll_unlock_frequency": "0x0000e8d9", + "nibble_for_char": "0x00021379", + "platform_calibrate_rt_clk": "0x00021415", "platform_call_on_stack": "0x000040ef", - "platform_config": "0x00021415", - "platform_controller_run": "0x00021539", - "platform_delete_timer": "0x0002156d", - "platform_enable_irq": "0x00021575", - "platform_get_gen_os_driver": "0x000215ad", - "platform_get_link_layer_interf": "0x000215b9", - "platform_get_task_handle": "0x000215c1", - "platform_get_timer_counter": "0x000215d9", - "platform_get_us_time": "0x000215dd", - "platform_get_version": "0x000215e1", - "platform_hrng": "0x000215e9", - "platform_init_controller": "0x000215f1", - "platform_os_idle_resumed_hook": "0x0002160d", - "platform_patch_rf_init_data": "0x00021611", - "platform_post_sleep_processing": "0x0002161d", - "platform_pre_sleep_processing": "0x00021623", - "platform_pre_suppress_ticks_and_sleep_processing": "0x00021629", - "platform_printf": "0x0002162d", - "platform_raise_assertion": "0x00021641", - "platform_rand": "0x00021655", - "platform_read_info": "0x00021659", - "platform_read_persistent_reg": "0x00021689", - "platform_reset": "0x00021699", - "platform_rt_rc_auto_tune": "0x000216bd", - "platform_rt_rc_auto_tune2": "0x000216c5", - "platform_rt_rc_tune": "0x0002174d", - "platform_set_abs_timer": "0x00021761", - "platform_set_evt_callback": "0x00021765", - "platform_set_evt_callback_table": "0x00021779", - "platform_set_irq_callback": "0x00021785", - "platform_set_irq_callback_table": "0x000217a1", - "platform_set_rf_clk_source": "0x000217ad", - "platform_set_rf_init_data": "0x000217b9", - "platform_set_rf_power_mapping": "0x000217c5", - "platform_set_timer": "0x000217d1", - "platform_shutdown": "0x000217d5", - "platform_switch_app": "0x000217d9", - "platform_trace_raw": "0x00021805", - "platform_write_persistent_reg": "0x0002181d", - "printf_hexdump": "0x0002182d", - "reverse_128": "0x00021ba5", - "reverse_24": "0x00021bab", - "reverse_256": "0x00021bb1", - "reverse_48": "0x00021bb7", - "reverse_56": "0x00021bbd", - "reverse_64": "0x00021bc3", - "reverse_bd_addr": "0x00021bc9", - "reverse_bytes": "0x00021bcf", - "sm_add_event_handler": "0x00021f0d", - "sm_address_resolution_lookup": "0x00022051", - "sm_authenticated": "0x0002247d", - "sm_authorization_decline": "0x0002248b", - "sm_authorization_grant": "0x000224ab", - "sm_authorization_state": "0x000224cb", - "sm_bonding_decline": "0x000224e5", - "sm_config": "0x00022965", - "sm_config_conn": "0x0002297d", - "sm_encryption_key_size": "0x00022b37", - "sm_just_works_confirm": "0x00023889", - "sm_le_device_key": "0x00023c79", - "sm_numeric_comparison_confirm": "0x00023dcf", - "sm_passkey_input": "0x00023e0d", - "sm_private_random_address_generation_get": "0x00024415", - "sm_private_random_address_generation_get_mode": "0x0002441d", - "sm_private_random_address_generation_set_mode": "0x00024429", - "sm_private_random_address_generation_set_update_period": "0x00024451", - "sm_register_external_ltk_callback": "0x000246dd", - "sm_register_oob_data_callback": "0x000246e9", - "sm_register_sc_oob_data_callback": "0x000246f5", - "sm_request_pairing": "0x00024701", - "sm_sc_generate_oob_data": "0x0002533d", - "sm_send_security_request": "0x0002546d", - "sm_set_accepted_stk_generation_methods": "0x00025495", - "sm_set_authentication_requirements": "0x000254a1", - "sm_set_encryption_key_size_range": "0x000254b1", - "sscanf_bd_addr": "0x000258cd", - "sysSetPublicDeviceAddr": "0x00025c81", - "uuid128_to_str": "0x00026455", - "uuid_add_bluetooth_prefix": "0x000264ad", - "uuid_has_bluetooth_prefix": "0x000264cd" + "platform_config": "0x00021419", + "platform_controller_run": "0x0002153d", + "platform_delete_timer": "0x00021571", + "platform_enable_irq": "0x00021579", + "platform_get_gen_os_driver": "0x000215b1", + "platform_get_link_layer_interf": "0x000215bd", + "platform_get_task_handle": "0x000215c5", + "platform_get_timer_counter": "0x000215dd", + "platform_get_us_time": "0x000215e1", + "platform_get_version": "0x000215e5", + "platform_hrng": "0x000215ed", + "platform_init_controller": "0x000215f5", + "platform_os_idle_resumed_hook": "0x00021611", + "platform_patch_rf_init_data": "0x00021615", + "platform_post_sleep_processing": "0x00021621", + "platform_pre_sleep_processing": "0x00021627", + "platform_pre_suppress_ticks_and_sleep_processing": "0x0002162d", + "platform_printf": "0x00021631", + "platform_raise_assertion": "0x00021645", + "platform_rand": "0x00021659", + "platform_read_info": "0x0002165d", + "platform_read_persistent_reg": "0x0002168d", + "platform_reset": "0x0002169d", + "platform_rt_rc_auto_tune": "0x000216c1", + "platform_rt_rc_auto_tune2": "0x000216c9", + "platform_rt_rc_tune": "0x00021751", + "platform_set_abs_timer": "0x00021765", + "platform_set_evt_callback": "0x00021769", + "platform_set_evt_callback_table": "0x0002177d", + "platform_set_irq_callback": "0x00021789", + "platform_set_irq_callback_table": "0x000217a5", + "platform_set_rf_clk_source": "0x000217b1", + "platform_set_rf_init_data": "0x000217bd", + "platform_set_rf_power_mapping": "0x000217c9", + "platform_set_timer": "0x000217d5", + "platform_shutdown": "0x000217d9", + "platform_switch_app": "0x000217dd", + "platform_trace_raw": "0x00021809", + "platform_write_persistent_reg": "0x00021821", + "printf_hexdump": "0x00021831", + "reverse_128": "0x00021ba9", + "reverse_24": "0x00021baf", + "reverse_256": "0x00021bb5", + "reverse_48": "0x00021bbb", + "reverse_56": "0x00021bc1", + "reverse_64": "0x00021bc7", + "reverse_bd_addr": "0x00021bcd", + "reverse_bytes": "0x00021bd3", + "sm_add_event_handler": "0x00021f11", + "sm_address_resolution_lookup": "0x00022055", + "sm_authenticated": "0x00022481", + "sm_authorization_decline": "0x0002248f", + "sm_authorization_grant": "0x000224af", + "sm_authorization_state": "0x000224cf", + "sm_bonding_decline": "0x000224e9", + "sm_config": "0x00022969", + "sm_config_conn": "0x00022981", + "sm_encryption_key_size": "0x00022b3b", + "sm_just_works_confirm": "0x00023891", + "sm_le_device_key": "0x00023c81", + "sm_numeric_comparison_confirm": "0x00023dd7", + "sm_passkey_input": "0x00023e15", + "sm_private_random_address_generation_get": "0x0002441d", + "sm_private_random_address_generation_get_mode": "0x00024425", + "sm_private_random_address_generation_set_mode": "0x00024431", + "sm_private_random_address_generation_set_update_period": "0x00024459", + "sm_register_external_ltk_callback": "0x000246e5", + "sm_register_oob_data_callback": "0x000246f1", + "sm_register_sc_oob_data_callback": "0x000246fd", + "sm_request_pairing": "0x00024709", + "sm_sc_generate_oob_data": "0x00025345", + "sm_send_security_request": "0x00025475", + "sm_set_accepted_stk_generation_methods": "0x0002549d", + "sm_set_authentication_requirements": "0x000254a9", + "sm_set_encryption_key_size_range": "0x000254b9", + "sscanf_bd_addr": "0x000258d5", + "sysSetPublicDeviceAddr": "0x00025c89", + "uuid128_to_str": "0x0002645d", + "uuid_add_bluetooth_prefix": "0x000264b5", + "uuid_has_bluetooth_prefix": "0x000264d5" } \ No newline at end of file diff --git a/bundles/noos_exp/ING9188xx/meta.json b/bundles/noos_exp/ING9188xx/meta.json index 2760a52e2..f045976bf 100644 --- a/bundles/noos_exp/ING9188xx/meta.json +++ b/bundles/noos_exp/ING9188xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 148164 + "size": 148176 }, "version": [ 1, 9, - 42 + 43 ] } \ No newline at end of file diff --git a/bundles/noos_exp/ING9188xx/platform.bin b/bundles/noos_exp/ING9188xx/platform.bin index 812f7464fce09ff556498b7c5e9300280abbf0d4..e7a2d0c0265747a08bf2cc6a23381170245b2c1b 100644 GIT binary patch delta 18351 zcmaL84Ompw7B{}vnHd08ejsiCHIyti)3^AanwWax8f;6q)y zabDx);_RmriZ_mC3HGK)>(|adS{c(aCL8e8nprW$oV=r_O?`c2FY9kgjZXy?D9OHI z0VC_HUaBr>xM9fhvSupzzU5)VT+t2m;)_SKOHLMRkBAa)YgfY;mKNU#qISjUH<;Qj z>Hc^1v{Fe5O`_+O$)R)UE#*XLB5hLILen+>`0zEw*y{t@u3YYwjB>xQYql%$Y;&=RSqCcNy^Y@Q*}eA3)&M2D_nsLAjrs&?Oic)EI%?BQNC3}y zo0jPt6HHOo2)owi3`{UZTI-#Kr7Ii0O_<*JUBZ~g|0LL&3O6$Aahs0aX{@z*k=DAx z<;89_%H?S*HjZd(DlrvCMOsHGBg13kHI2ULAu&O1`Z{v!#>O(2`hC|i8!=|xg!;cU z3c9bgT-g+!Ne@}hgpVZR7N3Z3iT9R6XorrOo&fomQ5`Ut_$hU8>ZPQ}b-(GqW`q*)d4PrLI(TvDIW&_QnpS zRONbXJozgD{k8_Z*r74g#_Ex@T4+s|x z62inT-8YLWEkolqq+41nv875*!j*7AmDc(*orxMrX3b1~I>xKIOTDZNP0XYdN_pb4 zz;#`6F{>f@bc_xqt1QmMp+pZWnMoIEjuO;=27RwA?7xOIN_+oAGAI$r1F5HymmE(g zmF3CN^q9hvFVH*6+y^qCywwj>`#krNv8=Vqsjg7QrsVn*bQP61BbBf0OsRm-!&3*6 zT^XOcD#AA*qjAuGDdE9JZNjQXuY~PQgKV10AtsG=r{YM9?z6Vh`+(QG+WoqHF7>Ko zQu@4&todAXgRM7HQU~-*`kPr}eYdluH5io>6JBm=E@KIsn)Ytgr^J8xosBVebAzt9 z#8B^24=QPCAyJjNy7ow{@-BxD5WSZR8wXjsFbJ0SC-bJ zzJWCxo448u4Q)$AYr1wH+F~n&b{aYou;L+h$<(%SCMFi+)L8%J5IkFK&#;qT+b*_k z%=+W_fI^J#p-%fxVq7^*RU0){X9r8jYOF3_ZJQB9#?`jRgMR+W)hd_k6KcL}DGRTe zgw`CL%{_lQX4Af1l8G>=VILe+f(8xF{V&=P z>8KAF+wGylKtB#nksk#5Ll5l-`c3fYYnc*a@->l30ta*G8yNde**Yi*o1|gTaQr$4 zt)*~fO?s^EWz=1&>`#wKo=_q&LoKsf>?}dsBvf0}p7Oo{wXdO73FdW+Z96L+EoRc5 z9)_9tJQ$lI)R)|2zW@C%z^BReDIT*xDy*?hF|1i#I$D$)YPA@R7Baf6Onoe-J3AglhE5-=o|yp^;elZ})9XSyB7 zkNr>j_VF9ae(>6q^FzkEEkl2li=8h)tZV)he_BRJfLrj$)z5*DA*6_)DopO)KsOy{ zY@f0!BQxCDX*8vpq}Mgpj~q;HxY6~>W3mH&bBofHkskI9N)t?kQtmG8+#pJ~D^U-H z1&JQ+wHJr>Rx8yHg)2`ylo0WEcP$NSO-3!@Kdo;+CU>CKGVo+a6#rSC_ za%kwnp!t8{O+(pIC3#p_(CokDMj`h&WF6uoSq)ucbp4b?!y@8@q+UkL_Y_yM{?RZ5 zYSO)GMV?JlGi)?9EB0X#0cN+VN!B{FpjV8;!^o;+43CvqiSoqo5%i%_Jv;(-ykU3^ zwOSTtc@zCdS)QFs%av2vHHb)-jMzaFm4J~(82FTtxpYb?AGwy^u{cLABa)RRIpYOu z&S9!n7MX^VOQ|t!4y^3ZwimK)r?v6;IA#3k0>56z3pOwYlPRCE92⁣OQpj=E6zr z%zfMVNmo`)Oquby&#OAs4x9WOB|O=rYp&YlBi1{wQ+-dFF=jY5Dm%x-(npq4V`4RA zRIZPY^~-RPsc?>Ol|v0xLLQk&H!X7?iIxJ!b+H78+q6VlhbYQ~BJxx2PDrEMN__r6 zdPbR^pG&#Qp8UZ9{p?ff8*F+*FEkOawB-+`D#iHdOt`riOJYj ziIdh-v2u9Q9NMac7HlTHva6t+ZYWWY#ZiYc^07~#Jl>PnBNW_>-}jV|DYLK)%csnx z36?8U5VAb2#7-*;n6yk{zvJt_Tw?u|t<%z}xANJvIscn)$(SA`(F4ll8E5G`#rVWr z8mw%3A~y8%g>d5jOn!3yoSDV5N@hJUi?OrHsV8!2lErW4DJk%dLxx8><`UxXP&<_G zi;NUtaTc{x^g6pJy52={Db(SAhEay$C;_v#(MDz0?EQ3689!(FpBsPUEV1#M=0w91 zx6c`g-}I;ALT-1+u+xZ@5*We>VZE0s3!WN|(nC*u8z0tX9hA{rVACF$V6v+tx}rN) z+w0qHfpjU)YV%1AA7jc#zE(LfH+*2~9{Dzmz#BX^?Jmo3XB@-!5xmz+7 zW-jk(Bk~tLJr}>1o>s!9K#uSEF}bwXFs_G5XR;dQV!JwASvxO1Ol-2tI5_xAD_GX; zpctu|$sOuz%7u9)o^WdD{4lz!6wDup);7%_Y&?5_F^zTg2a@&U24*fD{mV1={Mav^ zE!lz^OBMV4q)^ei#_i+gvy*pL8@l~m#)2ewzooVP$LSEP3fY#)_gC4~CzXl?DKtho zuwW5dh5nGP_qQZlRFJjD>S)sB&guI>jiCg<|$mr77^q z<4c!Ei7^;zw;UN16Omhtby#RGhGsBlz`i~R|659@Q=u|+(egz1SaW@g8w-7krQ+OT zy~*&WpLM7)2zy#K`eKY}%H>63M2U;@+{Rq^@FTWoJ#*i*co}snuEph8lkz2VVQ*US zTdU+QO`)Ai`O;0X%t5kUMM#8SFE_1mc!OpRp~fMg97^1>bOgrJmqiD5c4nDi7}f~Y zWAZ^|)3TvK{tmBZtyxZOY-7Q?Dxq25E*lu~T8G9cTHewj_0t&(kJ{Cjl&ELZquaWM z)O+PhF+I|>?LC-HZRyh2;BeQ_t;e#m=-Euz#zW7F{TsA=txwx~j1{A=0%hm&kyDru$&Y2>A4kYIG{OKoTuNFa}}5A3uXVxxj485trAv&uUdq; z`#cv*zDn|Q!|8L&g6EQmCMi2Amyz8PxO%h%t(yG&c&yT%=jZBjPcb&b60|l?gXp~I zg**(Y=7qs@(9-roCi(T~7+jNR3ahfIK9-b?V~J*2DmHyZRBp+8DV(T8DS0`LE-A0P zT!GV~-{!6KsIqgj0;84ow@tC1bctA32-mLu>%-j(#K}Mh73gczLizMns(Mtp{I?p) zP+oZ@DsF6-Ato2mu`g3qr+w~hw*BPME_GOEj~cc;wNN(w8~(UJX?i73*AI%Huf%QH zK<`=(ZP`ThkuvzzC2*eyUXAyA4yNhDR_bSOeM7nYY6Q(t?5~c6UCU8&0(#oy;w-Do zw$(tZ zL8)qAMcEcdPNja^Hu$W(zt5%TEOmb$OCjIc@~o~j*%WL&&?P3W;@}gyJq|+6+%C-i zlInc`18$#1SdycO-`X;0nssmt{qsJgP6H1btJWIn1h8 z{9YgE{rQQnHBA0m$$344URNq#&!sTs?CZPejI!X3=#WI)vyoM0M@Ibd--a8dSwgt7 z^7b1ka7P#3h`{g7H-^J=CB0cf6sT<5xgXnh_*+Q<4|HgopJyc{X44<)TgvjcI94$5 zZLxy8-j4T^oU*B_K?w7La`Ej|-hJ$=!H4s0ReE-(P0+7&BFb5sU`jK2kJYz#NfP(7 zZgw;m$u+FsAL`#aWfONx^nxU@%G%S#I#VyKu|NAmU2M5fl_O!dhVBwa(uupK;>34o zS1j%;ns&v}FN(UWg!U^%yJz^VaLta?_W%0(Kh(9#+1+VUmrd#1-AAn2o(%d*$=?$v zj)r?C<4}5GPeholv$?FeCIE3JYi4rZ?~g4Gs8-bqh29CHg-ZB4heMayV@zV960lI` zvHeT4{!q)6%kSjnjI?{X*W6IUN>j4%+mH3G z(OC(aaX6@(J4IQvH=2T!t$QOV$Z}|J5``_W`J1WCSd-f~$m$|0^=tAm_p<&=`E6gg z&nyI^-76ckKN)er@cn6sJQnSbqaF(1KhY=3$rAcE-c|pt+(G#~#rW^(43hr_dX%~0&v zoSNkD(RMO!w2?tBXI2fv#-NQh$#7Tgsk~H^L8@}5CQc|$O%#o@_#7RGU9SwaWYZK& zrDYD`9^?A4He!|wwe>`y%BH%_G{h2id?8UUWkY=%%*&$p>k#lIeh^CZxHA01Oo~)0 zK1`$y%AOAoL;VUGUZG8v>kZiw0-pGjZ6W#g0$V?WA%^bOF4DIf*zc-Yi9MA~XO%gp z4$u-M=;O&W+EViI9f^{Z8E2+av8C?J8KMYf)n^g--SJtJChntAmio_vh?ZK;eXi4B z<2Rj4qrQsfi%q0hHh(b{mpPW!^M@t+o5CAkA(JJ(X`4360pn90nQFSN{?R3G6m)@2 z#x-C=>239va_M3|J!MJy#z#ZLE$NpQ5hYmm{%01fs>ScWnD9qR#pNgpP$mn|Lv8-` z6dYgPZ<`P{U-~VR7Ac|D4=BXaWQ`*F(ehh6gz&ABdncaeS{B{m67{h7{EAF&+zCpN^Q7wdl)Yw0vY|F9^+=3M-<2x&a(dpbkUs>{c2ItqHpCYK$l zd2-{|HecqSYgO0sLlVuP3ht+&{Z!3sHPlK4e5aN&>05qDOSlH*1v*Ni5BM4#ji=Z6 z1s&a?KKv6exRFo$ zJ1)okn|h5W1=IL|BF9ND?Zp)HYP4I#*9X&HT_INU5KjxC5X$B`A#{M=tZNUU&mw8fO&8chaMfK$O@6N)~ZMHcYgY|6Pq23gwq2v5q1cvZwU3?@#$)@p_qG$n4;r1wc zn^y20eIWv09vV&YlwCJ8nuZe%<*Q_hq6hdJGL?iDnTR2FPfwjWfBvk63q<(N@_D$C zUZDoQ-$=VCijR+>h15{j5JMLv%CFlTN6RU6au>smp=|QC9z&R9Xvkt3)|-dNL&`t% zxzHE7%`e2GqpSRu$o#M_Gl8PCR9rW;KSdK&@$zJPiHf-H0g5F{UE%{+JF@YhRDy!@ zTd6dVa=9@Lg*iMYjn>EYwCi(WiBqR#RNJ0sI`hlMj?`PK!7iL<-tW&ZlFYYMAO2e! zO@#n*2hcpKtg9VBettBVpBjpFGuPz~BSa+U>Y}nB5E@*UlT9gJ0nzpV^RH?@yVmrJ z8qe2^hN{iv8D=Pvoi8&}CGK|bnrSfA^WseXKd7n-RjFC0VLC6|+TjG-0br{FTh;JvL+HtdED zB)3_!jgRrDO`=mmj5>beRvGi2X9FE^QK}6Wzz>7Ep9lzmA?Yg~j4Rh2hEs z*UoucOp&HFCKh*7)$?5iw3j}v8~Ye#5QXvelcB%?ymm5r{)K-(nG)$b*G)m{G*6m> z$$ZEsi_{x@)fAMy#`jJ^g=hG;Q%EJoFHA+p-*VkFtj1?Ndm4q(Kl$Wo;M~jCOhehr zylxterhjnPG}=l*eCu=yj}3OorqTv0&Qpe3m-D!~pFz<<0bN~cj>}N*Z$33Iyyj;$gzujLbtHa% z26|k?L!W@$-sBZeP&RGi4Nt%b82O@^6c%3Rkc$&)TQwpajbznGiSth0@iuH)*1A%iDBA_+&|*w`P^U>}MU#?XxHjjSBU2Dwqn?du)3lWh$yA8v&Z({IM;-VYm~Kq z+q3k3TT)lIsZV$M?Kt9SzfF!{mKB+>n&evu;M41xo)-3M2@jf2Ndw~?x>3h$TUcog zi_zWv`?4TYZ_KujCwFxei&=d%$fRjzF@H}FGR2_Gzi#1tDk7*`(*iQmzw7QSpaT-U z$lor-AeZwqr4VNuk6Q%c_U3CB!Rl}0=NG{;T;X>YLA9RZNsB20ZesLe8cPGXvY2+D zwd5r*j)UqNmQc7vq5Rur(4+o5^jV4xn`vXleX`EFsx!yd568hCjr)u@)Jr_?Ss1r{ zeDHD@wZGNPTTV`iN_fc%NaaA?ffeK}K_@IL$xeItp;Z*-cO9GaRW_^nhT6<8timRT zg@2ABBwEQwuBHn#p)O<%j zy$n4Z!I!)YF+}ncFT-~puG_Jh0*GGVd;bREF5_qahW%bur+EcCl+N?;Ezsa5zHAF- ze4g*$LM^a*;gr3(%n5zYytP#2GRb(cWt9nkno(p!-O>O01iPf ztJ}%pFMJYzA!f&SD?hUx7XBEI-T~Oa%XiRc=sx>(8tvmQhju2`ZG9c0B`g2x4RX+8 ze&J2pNwIYcc2b*$9;lmK4PlYY^LAmdXZf66*pnae!Mo95CEvOm^Ld6_c4Iqlshhip z@(F{je~0W6?2%76EbiwQ-^1`jxTX%u=j8Qu@J6HS zN{&Ow?nre#pYuNAvqyR02T-8?eEJ7)UZwof2egQW)s6j-5Tz&74L?C=CF)t{^D#8X zSo6`xw%KWVlMR*tkGivtWiik7^)>a$4{;^W*MCBD(mEW>I6Lyg5f{H_iMmF;jkc7S zG*#EsUmbmfk=ejl+!BVXC4cv0m}}~fJmNI8>1CdInqmhIawg|8Y}YNF{c{QUGBC-U zJWgMj^vD!rs_C7=tLh0?!uTo1Dd`EO>qs5vTTf%IEBJ}i6lQ$Jr8O3t$hywPwqI3e zxNACA2%?cc4%ex)OidUy>Wc{wG@ROfXW@xmnDhJ!pb8OwQ zcu4hiHI$$K6i!UfTR(+?yUPPUgL3_s5C05Jp5sNIQ4aRt-p^=c@(ZqTGrPHtjVku{ z9DR9AaP>8Hg{yhfkrDUW-5wKwyiy+aIZe+Sfr#gStK|Lu)?z&v(ot#OpOvz14-M8J z_kLGZan=l>t_zkdnYpxR$vhETKHfvPC0p9tuJISqcw*24%^9lDi`In#`5EgSCk3O!d ze|JgX%CP_3Dmpiy!{NO4Ulg5^*Kw?4o%LjUG&_CNt3Q3&ExdPPd@)*0m+s~|ZK3;F z^IklKzNU6?%{fXOKhl+8zOI^GTGLf^tV?F8jV?9Rwc1MT^OzX0U37lkCc(pJcIlY7 zcRn8zh1`ER`$83%m)FIrVq*n7?+8DrgOit^qd46`=T#9VokQ${_~snd1n%e(QxFrF z-*r{3;;(#xjVSRuU(opQ?>qhLuc{Ar`9f#jh0X*)XGBgWpL!nd5jOffMTJy#-do75 z+Y!NH**HIY9?okMzkVK@ZWd4bH@&UfIghdP{Nlf9EhY1*7a-=7e7S%czU=}{4PEE> zx{Z;(P%fTQQ&gN?sBgZi{=_wn6zBI9t_yC)h?RYk4{U@go#y3@Fz##kp+>}JIdyG~ zgtPQ>+|dNp{hUXCi9^HUx>vr$c0t_Q@D+Hs^7gNwi*NCeuW4lH^k!kb zQgRI@t@SxR?`v8@kMJvBql>9L?jpsF?CFHramj9ZvKX;pf=oJDYt=Uh%@KF5zo@u& z8O;!u1epAC{U4LDTBkbVYD9cpnsrtEjBmb35upd?hzFfn#ex+dSzL|3#v3lu*p%HU z(psN6L3m+B6wk-~86NOiEwH3o>wWKQtzGX29y8Qx_Dk66Ha_?pn2|U6=}KKulWYPqCfxY8~5QS^ILEn!5$p&4?YD3k19|9olo-@#pB;H{gzbAVHf_~a z^>d#09ionDeED~j9yZHSjM4vqqb~FM`67!UqnPUy{t2ogc)9f*T3^ZwF2N5K)YV>s z#|hloSyiuV_TE@*%76^N=l1_lxzC*AYmlL}zRoMYr!}OjbAC?>(Jj99G9rdEb%{TS zP_2UJUBNhC;0v!nTW0W=uE25rho8TKMV!mquRv42cyzlwWW&|Q8ezzH({vc0j zpUtjXMd z6E20c=p{FQ4I<};;J z?@s>04~wK3Nx}PHe&HHS=LOz&4ZGnT?tLBc(A_;TGSW2N=yb>vcARl{sgt&%+LOWBMAIkE0u(2b@Vf{jVE>97h|imF}SUVXVS|W zYaYMcN}pg~R^OnKh~thYD~ew9srpgfZVxtJ7cIPwg1&6EXE5|zcoGDa>ZsPjv@nfty-Cp% z^Sc^bs>-tBuGmhm^+{ON=!I8e^o_cN1T@gz)X?1hmeeoq_gkK8dS_!Q-o?sy>e$sr zaZ=y6?t#@+<@-vT%ZnH7j}kZhUGTuJn-m&U;d-+L!RV1GsE~#VpYXU}C{d>7l$O~o z=c-!N-(3k6{S&+zA4%wox2*!$fcu(j?rY}re<3;ecl*Al+bXu$;^b4{{L(e0g;)JT z{W4a%1ZVNu;)?s?H3x4hYu&@A4HIpWxP<4v~zX=>ljPT5|Qx1Wq{uC@1L zKdTCN{z3&Q%UvnWa!gU=Mstgr;CR6-$7tJ)B&W8hMu)zAH}fi8Q>IA_Z2Znv1+%l6 zuen8`;rh<+o0(B>lB}&A-!wOseH~d;^CCu-%Mahe#iN_-}Niy`Rwg7R*XUJF7EghR&pOt`3=kZ5+C~;qO;}v?ceBD;#RvHgUyXw z+7|UC`#RhFLY51vv>5PD zo59^kHX7N-XWpife$UxNtwDH9(#{Xvrts*cwtEe0$96Y7%QmE8h&Pkl2T1H0e*HGg z&;%ZM2XW*m9)E|D!;@`eWO<2?)a3+_O7O?=xO)OmoPxI>4+t6hee zshG&atXX{nboZp15$Ue~opQa4abaS6rM>Rr@3;+{ezi-E$#&1WS-p&V*EG=cQSsZZ zdxOk$&%R6j6en!k+PDY1-??EGzNYMio=yHngXu>#*rm_)oG+!Sr~QrhrT(b)<|F@r zhdIkP{egXTp6~sG-p+rv)8DLZpG~LRf+zTy&4qf?PilXcm(j=Erao*#*W`^{VYcrCvvF7+|aRf-RY?$X|#YA_gAo0`>deom!w zy2*2F^hx-e_JpU`jU*hPhcpnr!j~bAU@vo{9kJVTKG9C|;vaJ8?rtgbZ}vVi1pdsr zR=2NB?eFkSH9$7ac*ToZL{1XFZl|OG94$@TY*|4Ip-{m*s)ORA?%@7IaI|-5ww!B4 zA!!bv#l_jCHgzU1>Y%}a2Vkjn?LU&X-3;-r<9j=xHc#=Z9Wcdz<8cmXayrj(!0;FG zN(U^ZAK&4Co(<;>4ss$M{-6^q7XE!F4q64g+=;T0e5cdB?w>i~vSN5j7sUqrvqP++ z4)SOgD%geF%J=#CE}T9e;Tv3VA)~p)MQ?=ca~3tHmT41SXwtPWrP4^J`u4UWDba6> z)2rRc*bb-q(zb2VXe!!vSxTYtJb1rv!wLN>l5*%19xh2^ z5n<1fq+Ighhb3uw=-5uVIpJx@Vo{b=%MzXx{S4rl8Yw(%aHo&EXgi7wC~9pDu4={! zYaVWDg6i;eHw-$jX-+Haf$T^49*s1Q%6X7hip~h>@G`Uh+NHY2tLi5A_2gA`PQ9Vw z-uqczxrW-$XX{rom^ZEYN7dosS;9-S(&&Kmt~Ez@+defc#ycR>d4pDp$IaJutrQzD zv3tKjcvsZ%JX9xT2lW3-)_r`IPRhgPwCJRf*l(&%8jJuh#S3!#va79C+x{NY2tzJQGO@piow zAHUw#)aq3Gcm2Cnx9_^T+vVLX@KYCSf84vQf)czNMfxp1+(!zleAgk#WlL_i9x$8H z(y*?w`n~h_nKMixwX}DPv@Gxwyf5^2 zQ_D}s;GJ%$Te!wgN{brWxgD1`3?~n^WxGvE-EJcp42B%crHtqMNm~b}*dCB8Tk#xL zy@0D_X5H-^A}?<>Zp<)WS4X)tF|l|%z^SfsP5nvOt?*ch?J!9!mxudH!+jPYDeTW6 zUgR%TQYUZmm+)2zxBE-Uh;8Bnq@i?%&k2wQA~4z!ASL+?b4mN5Q_QK3;}-(3@lJ4K z4=HZ+IM=>1eNC*9H4ijuVut?cwO@O8V`-;a)%Bp9ummp|2fbf)Mg6%;dv{$aE=I6! zw>mVflHjWtMwSUMwb92JR>uM_> zZ;)cc$KY+*F7;`=d$60NeVytn&Nz4RSy3FNYm9QL$^3u;wqystY>*aGA|D?l4GdW| zN@AOBy;ldchr?pdW}T`RSAwL$Q(tt7m(dS&e108sZhs90EuHIa{#z0^dc8Xii||P2 z2Y;4)?Jn`!hlk>Yi5ppLAJZss4DEdPPmWJIMZICj9l&FQu}kau*kCD^w)2I-QgV>e z**$T+XX4@fP_UFpz4*7mFni_P87xKUe#gsszwoFKX?V~;yLe86_xQZJUlT3o3qoKn zG`t~1N=&-ul4HDc&88pJE3S1m@BE3TY`7O3f_SI;Z&zz;cfF`d5`&fNDTUL=JgFyi z;Y~iXr?d>N>S9l61FqU;gu>`N%(sO~HIlP~n|n!BIDNMDf|b6@!^5P3nd@!h&C3?G z#uj7J=L+hdw$Zm!AI-YG#wb#Xt@}Q!MSbeHi0AE(;Z0Dyjo+dc^9^CJ`6Kv+FiaF@ z0W?RacyezkDg1y_F0Q(pmH$PCR};?h37ST6P`siJ-Z}&)SxHdFGJmC^9wTi(m&PRS7~jisR!PEaHz}eS$$U@T|YwqrHoK40I%GL z_=y>t)#W_Ohz73k!A5C#z<=;Yjr++JN=EUuMhF`hJVq%t>D7*7Bk0S;?{&2fG>yOs zS8u+7saHj;J9<2P!%^11rAad;*E9hUS$v({2rpJy<8-KZJH1WE?2_S_oiT@6+?h3k zj^c5Z`fca)xC@jqvca7cmw|c?^*r*lH`lX#(EU3XMCy}oe~*5UI*C?3XqN&FP2K6^ zNc%Q-*E;%_T0y8)JL2~D$J-f;;pbwdsN7l3EsncZhq|Y8wMif6+nkLfu|s_s4T!EX zK;Lw9S7I@N&FsV=dkhBpV~5Yp5t`nm+MCa_BX$Wnmv~w~sbu02M~@?tS?u5Dxe}Y8 z#gzkYHFYLKj5hbOTH%WE+yXP>74@4Fjo`tpC(2mVWp$71udkDR?Jm2m4(GS}NrSal z)UFdeAr9|sXY++|QdDSAUx^u?l-T)$c$E|1ITkz;uB(odzLF{rt&!NH(AzV>i9ic* z60jav06YzR4EPanGVs5^DZnuNL(^1GdK!=+JstROls^vq95@4b7D%0p{Q?|_^!va; zz+=EXnN4FVhzewU35*7ckAw>Mp}}Y6?hcoGunc$*eC3|>3ZNL^D&SAR=YZFNPXMpf zjZc(d2gQJ+@Sjx@+SB+m_h%(gi?pt1cfJn%dcG-1imvoVb}*6xLx8@(p1@#WC{Q%h z%Y$LSP^5bU#V1_GtM^Fv0rmw(00qAc6z#+Sjlfi(4wwcM@)!V&Lpoh%mF|uoL`D)a z1_L|5FvNoyK(SB{1Fr&ydTm?G z!s0|$nm>_7WcfpT{Jr&B(1~y1QKG*yMh7~BC#Ql{6wg9!@~~F;OOh6?iu{%STCGmd zyd)K|xVs}+ulEzIydf1qxZv`V0}WyZtMHzJ6gE_3`N*;iKjm)3R~F;wru}4ZZ`sq4 zzbr{c4;>(fhhtu7B0Eh=sT55FgB4S9HxVND=;7s=X-`?F^YP?|q6u$LelO5^4~^4^ z9OP+QC|EFP@d=kBBYiwPedOR^Uk@FDx_%xyQf7Twh^Io7Opjt&S=gJ#jkbrUUX1MJKcAosGd&;8E39`3) z${N(mmnTfX!;FgMz&`LDg z$0LbVvaj!8PY2J*{{GP(e(LPoH^!4Mb?S5x;1_ir#8~?d#=3w-um%qDlG}Gw3PKM; zppOTAJ=nv81`h^#FxZ1VyHOJ@->E`<=|Ok83mrP%h7D!`@{ZThA<}D+7I+yQ3yiPo z#@{ME1soaoM(7~&?;cQ^2M2mEy&HYVkp2(wXG;b*pO2;+^*V!5I1As2jDCd|2fBXgvA4Zj`(|7}$+LVci%= zo!tZM-JSM{^k7Oi>S8Oq3F_xYA(~~L0j&4nNMHxdzYt{yOus;fHraofn5kCRb1qQS zTZo;~h4NfadQCObSnF(&uML+sLD9Ql2;T-ez&{U?cjziB+#>CO+jcjs50y{2JM867 zcc4P|8ivTPh^6xHCAXry3+AZKvve;Z?eL3{-w+L=!>xNn!>NBxC|B?^_(2aEJ(wr3 z5(Qg9IJ}&ZHjtPwIMv`2 z#wPCnkrsBRA*hm=Fgm$G_(yKwbu=Ih$&8-p99Z4~!Tet$yC<;`C?9`|v5~;dz)?UW zB$6Z2;lxb9jBH|~fm^)@|J#q5Yta|b=uI%i#4c9$CpHEI{z00J1)f@rMuD|Ui9G_$ zSVk-lczGSM3Ba87#PWfcfR6&#qkJN;1vm*9_dKxz;2z*(z>6;sn+#mAme>^Fc(gMW zxCRrS2CQsYO>8=d7F2i~xM~e%FVes#fR`|^nZRurP$6*93amFUrvh(`0&f9l0auj~ zn+@E#oY)-TP^6y%o(IkaHa$yt`h^LhyaX7&irCZmcTtxA9I<)G*s+q>d{KarEdbUd z{~6#=R9px=1e^%12} z(y&_a7Xe-16PpgNKSDwhs{x8lrz^xt!)%?8bK=UhL38PX0{N@*zW|)PbQk zQA^8=s;H%9%YYi-U7%?7kh>hM0!6E7HsZ!iDLi2QDhUgQ|1$@Eh*yQBv6Tydnm4xe#;g62?@=>Z=(WhkU`c%Ff)o-5=q!pv8_C z#}`456Rms4)jNS-HMWe!Q+@po*&|u0UUzm@3jS3TTj}~U+ zUOU2++@pm#xmUO7FSIZ#Ivv`~L8HR9++z~<<=*Iojk(u>ursl--GdOe<{po*HYov|2&d&wge^kIbXq7pV-3fJ!r`$PP@EJ?FaU8_nejes zQ#yzO6kw&hApkX7^_)-$oX!Shm|7;VqiHBz5R`e_pliP~w8Y5VB3iIIu@68-!9q)+6pkC5*FKkYi0@&Et; delta 18314 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 + - 1.1 -

      op_A3n< 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 diff --git a/bundles/typical/ING9168xx/apis.json b/bundles/typical/ING9168xx/apis.json index 2ade268c4..1981305f5 100644 --- a/bundles/typical/ING9168xx/apis.json +++ b/bundles/typical/ING9168xx/apis.json @@ -1,347 +1,347 @@ { - "att_dispatch_client_can_send_now": "0x020044b5", - "att_dispatch_client_request_can_send_now_event": "0x020044bb", - "att_dispatch_register_client": "0x020044c1", - "att_dispatch_register_server": "0x020044d5", - "att_dispatch_server_can_send_now": "0x020044e9", - "att_dispatch_server_request_can_send_now_event": "0x020044ef", - "att_emit_general_event": "0x020045a1", - "att_server_can_send_packet_now": "0x02004cd9", - "att_server_deferred_read_response": "0x02004cdd", - "att_server_get_mtu": "0x02004cf5", - "att_server_indicate": "0x02004d6d", - "att_server_init": "0x02004df1", - "att_server_notify": "0x02004e2d", - "att_server_register_packet_handler": "0x02004f45", - "att_server_request_can_send_now_event": "0x02004f51", - "att_set_db": "0x02004f6d", - "att_set_read_callback": "0x02004f81", - "att_set_write_callback": "0x02004f8d", - "bd_addr_cmp": "0x0200515d", - "bd_addr_copy": "0x02005163", - "bd_addr_to_str": "0x0200516d", - "big_endian_read_16": "0x020051a5", - "big_endian_read_32": "0x020051ad", - "big_endian_store_16": "0x020051c1", - "big_endian_store_32": "0x020051cd", - "btstack_config": "0x0200532d", - "btstack_memory_pool_create": "0x0200546b", - "btstack_memory_pool_free": "0x02005495", - "btstack_memory_pool_get": "0x020054f5", - "btstack_push_user_msg": "0x0200555d", - "btstack_push_user_runnable": "0x02005569", - "btstack_reset": "0x02005575", - "char_for_nibble": "0x02005867", - "eTaskConfirmSleepModeStatus": "0x02005c19", - "gap_add_dev_to_periodic_list": "0x02006289", - "gap_add_whitelist": "0x02006299", - "gap_aes_encrypt": "0x020062a5", - "gap_clear_white_lists": "0x020062dd", - "gap_clr_adv_set": "0x020062e9", - "gap_clr_periodic_adv_list": "0x020062f5", - "gap_create_connection_cancel": "0x02006301", - "gap_default_periodic_adv_sync_transfer_param": "0x0200630d", - "gap_disconnect": "0x02006325", - "gap_disconnect_all": "0x02006351", - "gap_ext_create_connection": "0x02006391", - "gap_get_connection_parameter_range": "0x02006469", - "gap_le_read_channel_map": "0x020064a5", - "gap_periodic_adv_create_sync": "0x02006511", - "gap_periodic_adv_create_sync_cancel": "0x02006535", - "gap_periodic_adv_set_info_transfer": "0x02006541", - "gap_periodic_adv_sync_transfer": "0x02006551", - "gap_periodic_adv_sync_transfer_param": "0x02006561", - "gap_periodic_adv_term_sync": "0x0200657d", - "gap_read_antenna_info": "0x02006605", - "gap_read_periodic_adv_list_size": "0x02006611", - "gap_read_phy": "0x0200661d", - "gap_read_remote_used_features": "0x02006629", - "gap_read_remote_version": "0x02006635", - "gap_read_rssi": "0x02006641", - "gap_remove_whitelist": "0x0200664d", - "gap_rmv_adv_set": "0x020066c9", - "gap_rmv_dev_from_periodic_list": "0x020066d5", - "gap_rx_test_v2": "0x020066e5", - "gap_rx_test_v3": "0x020066f5", - "gap_set_adv_set_random_addr": "0x02006741", - "gap_set_callback_for_next_hci": "0x0200677d", - "gap_set_connection_cte_request_enable": "0x0200679d", - "gap_set_connection_cte_response_enable": "0x020067b9", - "gap_set_connection_cte_rx_param": "0x020067c9", - "gap_set_connection_cte_tx_param": "0x0200681d", - "gap_set_connection_parameter_range": "0x02006869", - "gap_set_connectionless_cte_tx_enable": "0x02006881", - "gap_set_connectionless_cte_tx_param": "0x02006891", - "gap_set_connectionless_iq_sampling_enable": "0x020068ed", - "gap_set_data_length": "0x02006949", - "gap_set_def_phy": "0x02006961", - "gap_set_ext_adv_data": "0x02006971", - "gap_set_ext_adv_enable": "0x02006989", - "gap_set_ext_adv_para": "0x020069f9", - "gap_set_ext_scan_enable": "0x02006ac9", - "gap_set_ext_scan_para": "0x02006ae1", - "gap_set_ext_scan_response_data": "0x02006b81", - "gap_set_host_channel_classification": "0x02006b99", - "gap_set_periodic_adv_data": "0x02006ba9", - "gap_set_periodic_adv_enable": "0x02006c19", - "gap_set_periodic_adv_para": "0x02006c29", - "gap_set_periodic_adv_rx_enable": "0x02006c41", - "gap_set_phy": "0x02006c51", - "gap_set_random_device_address": "0x02006c6d", - "gap_start_ccm": "0x02006c9d", - "gap_test_end": "0x02006ce5", - "gap_tx_test_v2": "0x02006cf1", - "gap_tx_test_v4": "0x02006d09", - "gap_update_connection_parameters": "0x02006d2d", - "gap_vendor_tx_continuous_wave": "0x02006d71", - "gatt_client_cancel_write": "0x02007299", - "gatt_client_discover_characteristic_descriptors": "0x020072bf", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020072ff", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200734f", - "gatt_client_discover_characteristics_for_service": "0x0200739f", - "gatt_client_discover_primary_services": "0x020073d5", - "gatt_client_discover_primary_services_by_uuid128": "0x02007407", - "gatt_client_discover_primary_services_by_uuid16": "0x0200744b", - "gatt_client_execute_write": "0x02007489", - "gatt_client_find_included_services_for_service": "0x020074af", - "gatt_client_get_mtu": "0x020074dd", - "gatt_client_is_ready": "0x020075a1", - "gatt_client_listen_for_characteristic_value_updates": "0x020075b7", - "gatt_client_prepare_write": "0x020075d9", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007615", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200763f", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007645", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x02007673", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02007679", - "gatt_client_read_multiple_characteristic_values": "0x020076a7", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x020076d7", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007705", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x02007751", - "gatt_client_register_handler": "0x0200779d", - "gatt_client_reliable_write_long_value_of_characteristic": "0x020077a9", - "gatt_client_signed_write_without_response": "0x02007bdd", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007ca1", - "gatt_client_write_client_characteristic_configuration": "0x02007cdb", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007d2d", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007d3d", - "gatt_client_write_long_value_of_characteristic": "0x02007d79", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007d89", - "gatt_client_write_value_of_characteristic": "0x02007dc5", - "gatt_client_write_value_of_characteristic_without_response": "0x02007dfb", - "hci_add_event_handler": "0x020093f1", - "hci_power_control": "0x02009b99", - "hci_register_acl_packet_handler": "0x02009d4d", - "kv_commit": "0x0200a481", - "kv_get": "0x0200a4dd", - "kv_init": "0x0200a4e9", - "kv_init_backend": "0x0200a569", - "kv_put": "0x0200a57d", - "kv_remove": "0x0200a589", - "kv_remove_all": "0x0200a5bd", - "kv_value_modified": "0x0200a5ed", - "kv_value_modified_of_key": "0x0200a609", - "kv_visit": "0x0200a615", - "l2cap_add_event_handler": "0x0200a6a5", - "l2cap_can_send_packet_now": "0x0200a6b5", - "l2cap_create_le_credit_based_connection_request": "0x0200a879", - "l2cap_credit_based_send": "0x0200a9c1", - "l2cap_credit_based_send_continue": "0x0200a9ed", - "l2cap_disconnect": "0x0200aa69", - "l2cap_get_le_credit_based_connection_credits": "0x0200ac55", - "l2cap_get_peer_mtu_for_local_cid": "0x0200ac71", - "l2cap_init": "0x0200b0b1", - "l2cap_le_send_flow_control_credit": "0x0200b1a7", - "l2cap_max_le_mtu": "0x0200b4b5", - "l2cap_register_packet_handler": "0x0200b5dd", - "l2cap_register_service": "0x0200b5e9", - "l2cap_request_can_send_now_event": "0x0200b6f9", - "l2cap_request_connection_parameter_update": "0x0200b713", - "l2cap_send_echo_request": "0x0200bbf5", - "l2cap_unregister_service": "0x0200bcd5", - "le_device_db_add": "0x0200bd2d", - "le_device_db_find": "0x0200be05", - "le_device_db_from_key": "0x0200be31", - "le_device_db_iter_cur": "0x0200be39", - "le_device_db_iter_cur_key": "0x0200be3d", - "le_device_db_iter_init": "0x0200be41", - "le_device_db_iter_next": "0x0200be49", - "le_device_db_remove_key": "0x0200be6f", - "ll_adjust_conn_peer_tx_power": "0x0200be9d", - "ll_aes_encrypt": "0x0200bec9", - "ll_config": "0x0200bf3d", - "ll_free": "0x0200bf73", - "ll_get_heap_free_size": "0x0200bf7d", - "ll_hint_on_ce_len": "0x0200bf91", - "ll_legacy_adv_set_interval": "0x0200bfc9", - "ll_malloc": "0x0200bfd9", - "ll_register_hci_acl_previewer": "0x0200c0f1", - "ll_scan_set_fixed_channel": "0x0200c155", - "ll_set_adv_access_address": "0x0200c36d", - "ll_set_adv_coded_scheme": "0x0200c379", - "ll_set_conn_acl_report_latency": "0x0200c3b1", - "ll_set_conn_coded_scheme": "0x0200c3e1", - "ll_set_conn_latency": "0x0200c40d", - "ll_set_conn_tx_power": "0x0200c43d", - "ll_set_def_antenna": "0x0200c479", - "ll_set_initiating_coded_scheme": "0x0200c499", - "ll_set_max_conn_number": "0x0200c4a5", - "ll_set_tx_power_range": "0x0200c539", - "nibble_for_char": "0x0201efc9", - "platform_calibrate_rt_clk": "0x0201f073", - "platform_call_on_stack": "0x020021fb", - "platform_config": "0x0201f079", - "platform_delete_timer": "0x0201f1a1", - "platform_enable_irq": "0x0201f1a9", - "platform_get_current_task": "0x0201f1dd", - "platform_get_gen_os_driver": "0x0201f201", - "platform_get_heap_status": "0x0201f209", - "platform_get_link_layer_interf": "0x0201f221", - "platform_get_task_handle": "0x0201f229", - "platform_get_timer_counter": "0x0201f249", - "platform_get_us_time": "0x0201f24d", - "platform_get_version": "0x0201f251", - "platform_hrng": "0x0201f259", - "platform_install_isr_stack": "0x0201f261", - "platform_install_task_stack": "0x0201f26d", - "platform_patch_rf_init_data": "0x0201f2a5", - "platform_printf": "0x0201f2b1", - "platform_raise_assertion": "0x0201f2c5", - "platform_rand": "0x0201f2d9", - "platform_read_info": "0x0201f2dd", - "platform_read_persistent_reg": "0x0201f30d", - "platform_reset": "0x0201f319", - "platform_rt_rc_auto_tune": "0x0201f32d", - "platform_rt_rc_auto_tune2": "0x0201f335", - "platform_rt_rc_tune": "0x0201f39d", - "platform_set_abs_timer": "0x0201f3b9", - "platform_set_evt_callback": "0x0201f3bd", - "platform_set_evt_callback_table": "0x0201f3d1", - "platform_set_irq_callback": "0x0201f3dd", - "platform_set_irq_callback_table": "0x0201f3f9", - "platform_set_rf_clk_source": "0x0201f405", - "platform_set_rf_init_data": "0x0201f411", - "platform_set_rf_power_mapping": "0x0201f41d", - "platform_set_timer": "0x0201f429", - "platform_shutdown": "0x0201f42d", - "platform_switch_app": "0x0201f431", - "platform_trace_raw": "0x0201f449", - "platform_write_persistent_reg": "0x0201f461", - "printf_hexdump": "0x0201f619", - "pvPortMalloc": "0x020200f1", - "pvTaskIncrementMutexHeldCount": "0x020201d9", - "pvTimerGetTimerID": "0x020201f1", - "pxPortInitialiseStack": "0x0202021d", - "reverse_128": "0x02020405", - "reverse_24": "0x0202040b", - "reverse_256": "0x02020411", - "reverse_48": "0x02020417", - "reverse_56": "0x0202041d", - "reverse_64": "0x02020423", - "reverse_bd_addr": "0x02020429", - "reverse_bytes": "0x0202042f", - "sm_add_event_handler": "0x0202078d", - "sm_address_resolution_lookup": "0x020208e5", - "sm_authenticated": "0x02020c61", - "sm_authorization_decline": "0x02020c6f", - "sm_authorization_grant": "0x02020c8f", - "sm_authorization_state": "0x02020caf", - "sm_bonding_decline": "0x02020cc9", - "sm_config": "0x0202111d", - "sm_config_conn": "0x02021135", - "sm_encryption_key_size": "0x020212eb", - "sm_just_works_confirm": "0x02021871", - "sm_le_device_key": "0x02021ba9", - "sm_passkey_input": "0x02021c3f", - "sm_private_random_address_generation_get": "0x02021ff9", - "sm_private_random_address_generation_get_mode": "0x02022001", - "sm_private_random_address_generation_set_mode": "0x0202200d", - "sm_private_random_address_generation_set_update_period": "0x02022035", - "sm_register_external_ltk_callback": "0x02022171", - "sm_register_oob_data_callback": "0x0202217d", - "sm_request_pairing": "0x02022189", - "sm_send_security_request": "0x02022c5f", - "sm_set_accepted_stk_generation_methods": "0x02022c85", - "sm_set_authentication_requirements": "0x02022c91", - "sm_set_encryption_key_size_range": "0x02022c9d", - "sscanf_bd_addr": "0x02022ffd", - "sysSetPublicDeviceAddr": "0x02023529", - "uuid128_to_str": "0x02023d85", - "uuid_add_bluetooth_prefix": "0x02023ddd", - "uuid_has_bluetooth_prefix": "0x02023dfd", - "uxListRemove": "0x02023e19", - "uxQueueMessagesWaiting": "0x02023e41", - "uxQueueMessagesWaitingFromISR": "0x02023e69", - "uxQueueSpacesAvailable": "0x02023e85", - "uxTaskGetStackHighWaterMark": "0x02023eb1", - "uxTaskPriorityGet": "0x02023ed1", - "uxTaskPriorityGetFromISR": "0x02023eed", - "vListInitialise": "0x02023fab", - "vListInitialiseItem": "0x02023fc1", - "vListInsert": "0x02023fc7", - "vListInsertEnd": "0x02023ff7", - "vPortEndScheduler": "0x02024011", - "vPortEnterCritical": "0x0202403d", - "vPortExitCritical": "0x02024081", - "vPortFree": "0x020240b5", - "vPortSuppressTicksAndSleep": "0x02024159", - "vPortValidateInterruptPriority": "0x02024281", - "vQueueDelete": "0x020242dd", - "vQueueWaitForMessageRestricted": "0x02024309", - "vTaskDelay": "0x0202434d", - "vTaskInternalSetTimeOutState": "0x02024399", - "vTaskMissedYield": "0x020243a9", - "vTaskPlaceOnEventList": "0x020243b5", - "vTaskPlaceOnEventListRestricted": "0x020243ed", - "vTaskPriorityDisinheritAfterTimeout": "0x0202442d", - "vTaskPrioritySet": "0x020244d9", - "vTaskResume": "0x020245a1", - "vTaskStartScheduler": "0x02024625", - "vTaskStepTick": "0x020246b5", - "vTaskSuspend": "0x020246e5", - "vTaskSuspendAll": "0x020247a1", - "vTaskSwitchContext": "0x020247b1", - "xPortStartScheduler": "0x02024861", - "xQueueAddToSet": "0x02024965", - "xQueueCreateCountingSemaphore": "0x02024989", - "xQueueCreateCountingSemaphoreStatic": "0x020249c5", - "xQueueCreateMutex": "0x02024a09", - "xQueueCreateMutexStatic": "0x02024a1f", - "xQueueCreateSet": "0x02024a39", - "xQueueGenericCreate": "0x02024a41", - "xQueueGenericCreateStatic": "0x02024a8d", - "xQueueGenericReset": "0x02024af5", - "xQueueGenericSend": "0x02024b81", - "xQueueGenericSendFromISR": "0x02024ced", - "xQueueGiveFromISR": "0x02024dad", - "xQueueGiveMutexRecursive": "0x02024e51", - "xQueueIsQueueEmptyFromISR": "0x02024e91", - "xQueueIsQueueFullFromISR": "0x02024eb5", - "xQueuePeek": "0x02024edd", - "xQueuePeekFromISR": "0x02025005", - "xQueueReceive": "0x02025071", - "xQueueReceiveFromISR": "0x0202519d", - "xQueueRemoveFromSet": "0x02025231", - "xQueueSelectFromSet": "0x02025253", - "xQueueSelectFromSetFromISR": "0x02025265", - "xQueueSemaphoreTake": "0x02025279", - "xQueueTakeMutexRecursive": "0x020253e5", - "xTaskCheckForTimeOut": "0x02025429", - "xTaskCreate": "0x02025499", - "xTaskCreateStatic": "0x020254f5", - "xTaskGetCurrentTaskHandle": "0x02025565", - "xTaskGetSchedulerState": "0x02025571", - "xTaskGetTickCount": "0x0202558d", - "xTaskGetTickCountFromISR": "0x02025599", - "xTaskIncrementTick": "0x020255a9", - "xTaskPriorityDisinherit": "0x02025675", - "xTaskPriorityInherit": "0x02025709", - "xTaskRemoveFromEventList": "0x0202579d", - "xTaskResumeAll": "0x0202581d", - "xTaskResumeFromISR": "0x020258e5", - "xTimerCreate": "0x02025971", - "xTimerCreateStatic": "0x020259a5", - "xTimerCreateTimerTask": "0x020259dd", - "xTimerGenericCommand": "0x02025a49", - "xTimerGetExpiryTime": "0x02025ab9", - "xTimerGetTimerDaemonTaskHandle": "0x02025ad9" + "att_dispatch_client_can_send_now": "0x020053b5", + "att_dispatch_client_request_can_send_now_event": "0x020053bb", + "att_dispatch_register_client": "0x020053c1", + "att_dispatch_register_server": "0x020053d5", + "att_dispatch_server_can_send_now": "0x020053e9", + "att_dispatch_server_request_can_send_now_event": "0x020053ef", + "att_emit_general_event": "0x020054a1", + "att_server_can_send_packet_now": "0x02005bd9", + "att_server_deferred_read_response": "0x02005bdd", + "att_server_get_mtu": "0x02005bf5", + "att_server_indicate": "0x02005c6d", + "att_server_init": "0x02005cf1", + "att_server_notify": "0x02005d2d", + "att_server_register_packet_handler": "0x02005e45", + "att_server_request_can_send_now_event": "0x02005e51", + "att_set_db": "0x02005e6d", + "att_set_read_callback": "0x02005e81", + "att_set_write_callback": "0x02005e8d", + "bd_addr_cmp": "0x0200605d", + "bd_addr_copy": "0x02006063", + "bd_addr_to_str": "0x0200606d", + "big_endian_read_16": "0x020060a5", + "big_endian_read_32": "0x020060ad", + "big_endian_store_16": "0x020060c1", + "big_endian_store_32": "0x020060cd", + "btstack_config": "0x0200622d", + "btstack_memory_pool_create": "0x0200636b", + "btstack_memory_pool_free": "0x02006395", + "btstack_memory_pool_get": "0x020063f5", + "btstack_push_user_msg": "0x0200645d", + "btstack_push_user_runnable": "0x02006469", + "btstack_reset": "0x02006475", + "char_for_nibble": "0x02006767", + "eTaskConfirmSleepModeStatus": "0x02006b19", + "gap_add_dev_to_periodic_list": "0x02007189", + "gap_add_whitelist": "0x02007199", + "gap_aes_encrypt": "0x020071a5", + "gap_clear_white_lists": "0x020071dd", + "gap_clr_adv_set": "0x020071e9", + "gap_clr_periodic_adv_list": "0x020071f5", + "gap_create_connection_cancel": "0x02007201", + "gap_default_periodic_adv_sync_transfer_param": "0x0200720d", + "gap_disconnect": "0x02007225", + "gap_disconnect_all": "0x02007251", + "gap_ext_create_connection": "0x02007291", + "gap_get_connection_parameter_range": "0x02007369", + "gap_le_read_channel_map": "0x020073a5", + "gap_periodic_adv_create_sync": "0x02007411", + "gap_periodic_adv_create_sync_cancel": "0x02007435", + "gap_periodic_adv_set_info_transfer": "0x02007441", + "gap_periodic_adv_sync_transfer": "0x02007451", + "gap_periodic_adv_sync_transfer_param": "0x02007461", + "gap_periodic_adv_term_sync": "0x0200747d", + "gap_read_antenna_info": "0x02007505", + "gap_read_periodic_adv_list_size": "0x02007511", + "gap_read_phy": "0x0200751d", + "gap_read_remote_used_features": "0x02007529", + "gap_read_remote_version": "0x02007535", + "gap_read_rssi": "0x02007541", + "gap_remove_whitelist": "0x0200754d", + "gap_rmv_adv_set": "0x020075c9", + "gap_rmv_dev_from_periodic_list": "0x020075d5", + "gap_rx_test_v2": "0x020075e5", + "gap_rx_test_v3": "0x020075f5", + "gap_set_adv_set_random_addr": "0x02007641", + "gap_set_callback_for_next_hci": "0x0200767d", + "gap_set_connection_cte_request_enable": "0x0200769d", + "gap_set_connection_cte_response_enable": "0x020076b9", + "gap_set_connection_cte_rx_param": "0x020076c9", + "gap_set_connection_cte_tx_param": "0x0200771d", + "gap_set_connection_parameter_range": "0x02007769", + "gap_set_connectionless_cte_tx_enable": "0x02007781", + "gap_set_connectionless_cte_tx_param": "0x02007791", + "gap_set_connectionless_iq_sampling_enable": "0x020077ed", + "gap_set_data_length": "0x02007849", + "gap_set_def_phy": "0x02007861", + "gap_set_ext_adv_data": "0x02007871", + "gap_set_ext_adv_enable": "0x02007889", + "gap_set_ext_adv_para": "0x020078f9", + "gap_set_ext_scan_enable": "0x020079c9", + "gap_set_ext_scan_para": "0x020079e1", + "gap_set_ext_scan_response_data": "0x02007a81", + "gap_set_host_channel_classification": "0x02007a99", + "gap_set_periodic_adv_data": "0x02007aa9", + "gap_set_periodic_adv_enable": "0x02007b19", + "gap_set_periodic_adv_para": "0x02007b29", + "gap_set_periodic_adv_rx_enable": "0x02007b41", + "gap_set_phy": "0x02007b51", + "gap_set_random_device_address": "0x02007b6d", + "gap_start_ccm": "0x02007b9d", + "gap_test_end": "0x02007be5", + "gap_tx_test_v2": "0x02007bf1", + "gap_tx_test_v4": "0x02007c09", + "gap_update_connection_parameters": "0x02007c2d", + "gap_vendor_tx_continuous_wave": "0x02007c71", + "gatt_client_cancel_write": "0x02008199", + "gatt_client_discover_characteristic_descriptors": "0x020081bf", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x020081ff", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200824f", + "gatt_client_discover_characteristics_for_service": "0x0200829f", + "gatt_client_discover_primary_services": "0x020082d5", + "gatt_client_discover_primary_services_by_uuid128": "0x02008307", + "gatt_client_discover_primary_services_by_uuid16": "0x0200834b", + "gatt_client_execute_write": "0x02008389", + "gatt_client_find_included_services_for_service": "0x020083af", + "gatt_client_get_mtu": "0x020083dd", + "gatt_client_is_ready": "0x020084a1", + "gatt_client_listen_for_characteristic_value_updates": "0x020084b7", + "gatt_client_prepare_write": "0x020084d9", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02008515", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200853f", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02008545", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x02008573", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x02008579", + "gatt_client_read_multiple_characteristic_values": "0x020085a7", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x020085d7", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x02008605", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x02008651", + "gatt_client_register_handler": "0x0200869d", + "gatt_client_reliable_write_long_value_of_characteristic": "0x020086a9", + "gatt_client_signed_write_without_response": "0x02008add", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02008ba1", + "gatt_client_write_client_characteristic_configuration": "0x02008bdb", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02008c2d", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02008c3d", + "gatt_client_write_long_value_of_characteristic": "0x02008c79", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x02008c89", + "gatt_client_write_value_of_characteristic": "0x02008cc5", + "gatt_client_write_value_of_characteristic_without_response": "0x02008cfb", + "hci_add_event_handler": "0x0200a2f1", + "hci_power_control": "0x0200aa99", + "hci_register_acl_packet_handler": "0x0200ac4d", + "kv_commit": "0x0200b381", + "kv_get": "0x0200b3dd", + "kv_init": "0x0200b3e9", + "kv_init_backend": "0x0200b469", + "kv_put": "0x0200b47d", + "kv_remove": "0x0200b489", + "kv_remove_all": "0x0200b4bd", + "kv_value_modified": "0x0200b4ed", + "kv_value_modified_of_key": "0x0200b509", + "kv_visit": "0x0200b515", + "l2cap_add_event_handler": "0x0200b5a5", + "l2cap_can_send_packet_now": "0x0200b5b5", + "l2cap_create_le_credit_based_connection_request": "0x0200b779", + "l2cap_credit_based_send": "0x0200b8c1", + "l2cap_credit_based_send_continue": "0x0200b8ed", + "l2cap_disconnect": "0x0200b969", + "l2cap_get_le_credit_based_connection_credits": "0x0200bb55", + "l2cap_get_peer_mtu_for_local_cid": "0x0200bb71", + "l2cap_init": "0x0200bfb1", + "l2cap_le_send_flow_control_credit": "0x0200c0a7", + "l2cap_max_le_mtu": "0x0200c3b5", + "l2cap_register_packet_handler": "0x0200c4dd", + "l2cap_register_service": "0x0200c4e9", + "l2cap_request_can_send_now_event": "0x0200c5f9", + "l2cap_request_connection_parameter_update": "0x0200c613", + "l2cap_send_echo_request": "0x0200caf5", + "l2cap_unregister_service": "0x0200cbd5", + "le_device_db_add": "0x0200cc2d", + "le_device_db_find": "0x0200cd05", + "le_device_db_from_key": "0x0200cd31", + "le_device_db_iter_cur": "0x0200cd39", + "le_device_db_iter_cur_key": "0x0200cd3d", + "le_device_db_iter_init": "0x0200cd41", + "le_device_db_iter_next": "0x0200cd49", + "le_device_db_remove_key": "0x0200cd6f", + "ll_adjust_conn_peer_tx_power": "0x0200cd9d", + "ll_aes_encrypt": "0x0200cdc9", + "ll_config": "0x0200ce3d", + "ll_free": "0x0200ce73", + "ll_get_heap_free_size": "0x0200ce7d", + "ll_hint_on_ce_len": "0x0200ce91", + "ll_legacy_adv_set_interval": "0x0200cec9", + "ll_malloc": "0x0200ced9", + "ll_register_hci_acl_previewer": "0x0200cff1", + "ll_scan_set_fixed_channel": "0x0200d055", + "ll_set_adv_access_address": "0x0200d26d", + "ll_set_adv_coded_scheme": "0x0200d279", + "ll_set_conn_acl_report_latency": "0x0200d2b1", + "ll_set_conn_coded_scheme": "0x0200d2e1", + "ll_set_conn_latency": "0x0200d30d", + "ll_set_conn_tx_power": "0x0200d33d", + "ll_set_def_antenna": "0x0200d379", + "ll_set_initiating_coded_scheme": "0x0200d399", + "ll_set_max_conn_number": "0x0200d3a5", + "ll_set_tx_power_range": "0x0200d439", + "nibble_for_char": "0x0201fedd", + "platform_calibrate_rt_clk": "0x0201ff87", + "platform_call_on_stack": "0x020030fb", + "platform_config": "0x0201ff8d", + "platform_delete_timer": "0x020200b5", + "platform_enable_irq": "0x020200bd", + "platform_get_current_task": "0x020200f1", + "platform_get_gen_os_driver": "0x02020115", + "platform_get_heap_status": "0x0202011d", + "platform_get_link_layer_interf": "0x02020135", + "platform_get_task_handle": "0x0202013d", + "platform_get_timer_counter": "0x0202015d", + "platform_get_us_time": "0x02020161", + "platform_get_version": "0x02020165", + "platform_hrng": "0x02020181", + "platform_install_isr_stack": "0x02020189", + "platform_install_task_stack": "0x02020195", + "platform_patch_rf_init_data": "0x020201cd", + "platform_printf": "0x020201d9", + "platform_raise_assertion": "0x020201ed", + "platform_rand": "0x02020201", + "platform_read_info": "0x02020205", + "platform_read_persistent_reg": "0x02020235", + "platform_reset": "0x02020241", + "platform_rt_rc_auto_tune": "0x02020255", + "platform_rt_rc_auto_tune2": "0x0202025d", + "platform_rt_rc_tune": "0x020202c5", + "platform_set_abs_timer": "0x020202e1", + "platform_set_evt_callback": "0x020202e5", + "platform_set_evt_callback_table": "0x020202f9", + "platform_set_irq_callback": "0x02020305", + "platform_set_irq_callback_table": "0x02020321", + "platform_set_rf_clk_source": "0x0202032d", + "platform_set_rf_init_data": "0x02020339", + "platform_set_rf_power_mapping": "0x02020345", + "platform_set_timer": "0x02020351", + "platform_shutdown": "0x02020355", + "platform_switch_app": "0x02020359", + "platform_trace_raw": "0x02020371", + "platform_write_persistent_reg": "0x02020389", + "printf_hexdump": "0x02020541", + "pvPortMalloc": "0x02021019", + "pvTaskIncrementMutexHeldCount": "0x02021101", + "pvTimerGetTimerID": "0x02021119", + "pxPortInitialiseStack": "0x02021145", + "reverse_128": "0x0202132d", + "reverse_24": "0x02021333", + "reverse_256": "0x02021339", + "reverse_48": "0x0202133f", + "reverse_56": "0x02021345", + "reverse_64": "0x0202134b", + "reverse_bd_addr": "0x02021351", + "reverse_bytes": "0x02021357", + "sm_add_event_handler": "0x020216b5", + "sm_address_resolution_lookup": "0x0202180d", + "sm_authenticated": "0x02021b89", + "sm_authorization_decline": "0x02021b97", + "sm_authorization_grant": "0x02021bb7", + "sm_authorization_state": "0x02021bd7", + "sm_bonding_decline": "0x02021bf1", + "sm_config": "0x02022045", + "sm_config_conn": "0x0202205d", + "sm_encryption_key_size": "0x02022213", + "sm_just_works_confirm": "0x02022799", + "sm_le_device_key": "0x02022ad1", + "sm_passkey_input": "0x02022b67", + "sm_private_random_address_generation_get": "0x02022f21", + "sm_private_random_address_generation_get_mode": "0x02022f29", + "sm_private_random_address_generation_set_mode": "0x02022f35", + "sm_private_random_address_generation_set_update_period": "0x02022f5d", + "sm_register_external_ltk_callback": "0x02023099", + "sm_register_oob_data_callback": "0x020230a5", + "sm_request_pairing": "0x020230b1", + "sm_send_security_request": "0x02023b87", + "sm_set_accepted_stk_generation_methods": "0x02023bad", + "sm_set_authentication_requirements": "0x02023bb9", + "sm_set_encryption_key_size_range": "0x02023bc5", + "sscanf_bd_addr": "0x02023f25", + "sysSetPublicDeviceAddr": "0x0202444d", + "uuid128_to_str": "0x02024ca9", + "uuid_add_bluetooth_prefix": "0x02024d01", + "uuid_has_bluetooth_prefix": "0x02024d21", + "uxListRemove": "0x02024d3d", + "uxQueueMessagesWaiting": "0x02024d65", + "uxQueueMessagesWaitingFromISR": "0x02024d8d", + "uxQueueSpacesAvailable": "0x02024da9", + "uxTaskGetStackHighWaterMark": "0x02024dd5", + "uxTaskPriorityGet": "0x02024df5", + "uxTaskPriorityGetFromISR": "0x02024e11", + "vListInitialise": "0x02024ecf", + "vListInitialiseItem": "0x02024ee5", + "vListInsert": "0x02024eeb", + "vListInsertEnd": "0x02024f1b", + "vPortEndScheduler": "0x02024f35", + "vPortEnterCritical": "0x02024f61", + "vPortExitCritical": "0x02024fa5", + "vPortFree": "0x02024fd9", + "vPortSuppressTicksAndSleep": "0x0202507d", + "vPortValidateInterruptPriority": "0x020251a5", + "vQueueDelete": "0x02025201", + "vQueueWaitForMessageRestricted": "0x0202522d", + "vTaskDelay": "0x02025271", + "vTaskInternalSetTimeOutState": "0x020252bd", + "vTaskMissedYield": "0x020252cd", + "vTaskPlaceOnEventList": "0x020252d9", + "vTaskPlaceOnEventListRestricted": "0x02025311", + "vTaskPriorityDisinheritAfterTimeout": "0x02025351", + "vTaskPrioritySet": "0x020253fd", + "vTaskResume": "0x020254c5", + "vTaskStartScheduler": "0x02025549", + "vTaskStepTick": "0x020255d9", + "vTaskSuspend": "0x02025609", + "vTaskSuspendAll": "0x020256c5", + "vTaskSwitchContext": "0x020256d5", + "xPortStartScheduler": "0x02025785", + "xQueueAddToSet": "0x02025889", + "xQueueCreateCountingSemaphore": "0x020258ad", + "xQueueCreateCountingSemaphoreStatic": "0x020258e9", + "xQueueCreateMutex": "0x0202592d", + "xQueueCreateMutexStatic": "0x02025943", + "xQueueCreateSet": "0x0202595d", + "xQueueGenericCreate": "0x02025965", + "xQueueGenericCreateStatic": "0x020259b1", + "xQueueGenericReset": "0x02025a19", + "xQueueGenericSend": "0x02025aa5", + "xQueueGenericSendFromISR": "0x02025c11", + "xQueueGiveFromISR": "0x02025cd1", + "xQueueGiveMutexRecursive": "0x02025d75", + "xQueueIsQueueEmptyFromISR": "0x02025db5", + "xQueueIsQueueFullFromISR": "0x02025dd9", + "xQueuePeek": "0x02025e01", + "xQueuePeekFromISR": "0x02025f29", + "xQueueReceive": "0x02025f95", + "xQueueReceiveFromISR": "0x020260c1", + "xQueueRemoveFromSet": "0x02026155", + "xQueueSelectFromSet": "0x02026177", + "xQueueSelectFromSetFromISR": "0x02026189", + "xQueueSemaphoreTake": "0x0202619d", + "xQueueTakeMutexRecursive": "0x02026309", + "xTaskCheckForTimeOut": "0x0202634d", + "xTaskCreate": "0x020263bd", + "xTaskCreateStatic": "0x02026419", + "xTaskGetCurrentTaskHandle": "0x02026489", + "xTaskGetSchedulerState": "0x02026495", + "xTaskGetTickCount": "0x020264b1", + "xTaskGetTickCountFromISR": "0x020264bd", + "xTaskIncrementTick": "0x020264cd", + "xTaskPriorityDisinherit": "0x02026599", + "xTaskPriorityInherit": "0x0202662d", + "xTaskRemoveFromEventList": "0x020266c1", + "xTaskResumeAll": "0x02026741", + "xTaskResumeFromISR": "0x02026809", + "xTimerCreate": "0x02026895", + "xTimerCreateStatic": "0x020268c9", + "xTimerCreateTimerTask": "0x02026901", + "xTimerGenericCommand": "0x0202696d", + "xTimerGetExpiryTime": "0x020269dd", + "xTimerGetTimerDaemonTaskHandle": "0x020269fd" } \ No newline at end of file diff --git a/bundles/typical/ING9168xx/meta.json b/bundles/typical/ING9168xx/meta.json index 43f1158a4..24a321709 100644 --- a/bundles/typical/ING9168xx/meta.json +++ b/bundles/typical/ING9168xx/meta.json @@ -1,6 +1,6 @@ { "app": { - "base": 33718272 + "base": 33722368 }, "ram": { "base": 536870912, @@ -8,11 +8,11 @@ }, "rom": { "base": 33562624, - "size": 155316 + "size": 159196 }, "version": [ 2, 3, - 1 + 2 ] } \ No newline at end of file diff --git a/bundles/typical/ING9168xx/platform.bin b/bundles/typical/ING9168xx/platform.bin index fe74257edc929c7fe98781e76ce8accf564f105d..111f5a598f4493efbc992f617a50ef6a4b3892de 100644 GIT binary patch delta 26721 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 XpRtlKHzkz^YdX~X>NFkXIO+cbBQg=% diff --git a/examples-iar/peripheral_ibeacon/generic_cortex.icf b/examples-iar/peripheral_ibeacon/generic_cortex.icf index 8065fa941..3d1f3f126 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__ = 536900792; +define symbol __ICFEDIT_region_IRAM1_start__ = 536900792; 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/bqb_rf/bqb_rf.ingw b/examples/bqb_rf/bqb_rf.ingw index dac4570d5..09d2b8255 100644 --- a/examples/bqb_rf/bqb_rf.ingw +++ b/examples/bqb_rf/bqb_rf.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 161312, + "size": 165188, "base": 33562624 }, "ram": { @@ -10,10 +10,10 @@ "base": 536870912 }, "app": { - "base": 33726464 + "base": 33730560 }, "version": [ - 2,3,1] + 2,3,2] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", @@ -53,8 +53,8 @@ "power_saving": false, "secondary": false, "bundle": "extension", - "app_rom_size": "352256", - "app_rom_addr": "33726464", + "app_rom_size": "348160", + "app_rom_addr": "33730560", "family": "ing916", "vcode": true, "heap_override": false, diff --git a/examples/bqb_rf/bqb_rf.uvproj b/examples/bqb_rf/bqb_rf.uvproj index d88bd8b33..6390dd3af 100644 --- a/examples/bqb_rf/bqb_rf.uvproj +++ b/examples/bqb_rf/bqb_rf.uvproj @@ -294,8 +294,8 @@ 1 - 33726464 - 352256 + 33730560 + 348160 1 diff --git a/examples/bqb_rf/bqb_rf.uvprojx b/examples/bqb_rf/bqb_rf.uvprojx index 7eb49db8d..2cd563d91 100644 --- a/examples/bqb_rf/bqb_rf.uvprojx +++ b/examples/bqb_rf/bqb_rf.uvprojx @@ -273,8 +273,8 @@ 1 - 33726464 - 352256 + 33730560 + 348160 1 diff --git a/examples/bqb_rf/flash_download.ini b/examples/bqb_rf/flash_download.ini index bdfeac23d..f50fd9bc8 100644 --- a/examples/bqb_rf/flash_download.ini +++ b/examples/bqb_rf/flash_download.ini @@ -38,7 +38,7 @@ Address=33562624 [bin-1] Name=Burn Bin #2 Checked=1 -Address=33726464 +Address=33730560 FileName=bqb_rf.bin [bin-2] diff --git a/examples/bqb_rf/init.ini b/examples/bqb_rf/init.ini index fa1a409be..6ebc9de0e 100644 --- a/examples/bqb_rf/init.ini +++ b/examples/bqb_rf/init.ini @@ -1,2 +1,2 @@ -msp = *(unsigned int *)( 0x02002000 ) -pc = *(unsigned int *)( 0x02002000 + 4 ) +msp = *(unsigned int *)( *(unsigned int *)( 0x02003000 ) ) +pc = *(unsigned int *)( *(unsigned int *)( 0x02003000 ) + 4 ) diff --git a/examples/pairing_with_oob/pairing_with_oob.ingw b/examples/pairing_with_oob/pairing_with_oob.ingw index e43bbe009..0dff48664 100644 --- a/examples/pairing_with_oob/pairing_with_oob.ingw +++ b/examples/pairing_with_oob/pairing_with_oob.ingw @@ -49,7 +49,7 @@ "is_sdk_path_rel": true, "pb_gatt": true, "deep_sleep": true, - "proj_dir": "C:\\projects\\ingchips\\SDK_Release\\examples\\pairing_with_oob", + "proj_dir": "C:\/projects\/ingchips\/SDK_Release\/examples\\pairing_with_oob", "heap_size": 0, "power_saving": false, "secondary": false, diff --git a/examples/pawr/flash_download.ini b/examples/pawr/flash_download.ini index a7ebf6322..a71e8331b 100644 --- a/examples/pawr/flash_download.ini +++ b/examples/pawr/flash_download.ini @@ -35,7 +35,7 @@ Address=33562624 [bin-1] Name=Burn Bin #2 Checked=1 -Address=33738752 +Address=33742848 FileName=pawr.bin [bin-2] diff --git a/examples/pawr/init.ini b/examples/pawr/init.ini index 4a39000cb..6a7a281e5 100644 --- a/examples/pawr/init.ini +++ b/examples/pawr/init.ini @@ -1,3 +1,3 @@ -msp = *(unsigned int *)( 0x02002000 ) -pc = *(unsigned int *)( 0x02002000 + 4 ) +msp = *(unsigned int *)( *(unsigned int *)( 0x02003000 ) ) +pc = *(unsigned int *)( *(unsigned int *)( 0x02003000 ) + 4 ) diff --git a/examples/pawr/pawr.ingw b/examples/pawr/pawr.ingw index 5e9444e09..f885b6cd8 100644 --- a/examples/pawr/pawr.ingw +++ b/examples/pawr/pawr.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 173864, + "size": 177740, "base": 33562624 }, "ram": { @@ -10,10 +10,10 @@ "base": 536870912 }, "app": { - "base": 33738752 + "base": 33742848 }, "version": [ - 2,3,1] + 2,3,2] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", @@ -54,8 +54,8 @@ "power_saving": false, "secondary": false, "bundle": "exp", - "app_rom_size": "339968", - "app_rom_addr": "33738752", + "app_rom_size": "335872", + "app_rom_addr": "33742848", "family": "ing916", "vcode": false, "heap_override": false, diff --git a/examples/pawr/pawr.uvproj b/examples/pawr/pawr.uvproj index 223807b1b..fdedf1069 100644 --- a/examples/pawr/pawr.uvproj +++ b/examples/pawr/pawr.uvproj @@ -294,8 +294,8 @@ 1 - 33738752 - 339968 + 33742848 + 335872 1 diff --git a/examples/pawr/pawr.uvprojx b/examples/pawr/pawr.uvprojx index b8e233db2..b88904185 100644 --- a/examples/pawr/pawr.uvprojx +++ b/examples/pawr/pawr.uvprojx @@ -273,8 +273,8 @@ 1 - 33738752 - 339968 + 33742848 + 335872 1 diff --git a/examples/peripheral_console_realtime/flash_download.ini b/examples/peripheral_console_realtime/flash_download.ini index fa93ce73e..cd0bfc0db 100644 --- a/examples/peripheral_console_realtime/flash_download.ini +++ b/examples/peripheral_console_realtime/flash_download.ini @@ -38,7 +38,7 @@ Address=33562624 [bin-1] Name=Burn Bin #2 Checked=1 -Address=33710080 +Address=33714176 FileName=peripheral_console_realtime.bin [bin-2] diff --git a/examples/peripheral_console_realtime/init.ini b/examples/peripheral_console_realtime/init.ini index 4a39000cb..6a7a281e5 100644 --- a/examples/peripheral_console_realtime/init.ini +++ b/examples/peripheral_console_realtime/init.ini @@ -1,3 +1,3 @@ -msp = *(unsigned int *)( 0x02002000 ) -pc = *(unsigned int *)( 0x02002000 + 4 ) +msp = *(unsigned int *)( *(unsigned int *)( 0x02003000 ) ) +pc = *(unsigned int *)( *(unsigned int *)( 0x02003000 ) + 4 ) diff --git a/examples/peripheral_console_realtime/peripheral_console_realtime.ingw b/examples/peripheral_console_realtime/peripheral_console_realtime.ingw index 5fc2276e4..bd996a50d 100644 --- a/examples/peripheral_console_realtime/peripheral_console_realtime.ingw +++ b/examples/peripheral_console_realtime/peripheral_console_realtime.ingw @@ -2,18 +2,18 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 144904, + "size": 148808, "base": 33562624 }, "ram": { - "size": 17116, + "size": 17132, "base": 536870912 }, "app": { - "base": 33710080 + "base": 33714176 }, "version": [ - 2,3,1] + 2,3,2] }, "tc_dir": "C:\\Keil_v5\\UV4", "eflash_addr": "0x42000", @@ -53,8 +53,8 @@ "power_saving": false, "secondary": false, "bundle": "noos_mini", - "app_rom_size": "368640", - "app_rom_addr": "33710080", + "app_rom_size": "364544", + "app_rom_addr": "33714176", "family": "ing916", "vcode": true, "heap_override": false, @@ -70,8 +70,8 @@ }, "keil": true, "cmsis": "", - "app_ram_size": 40224, - "app_ram_addr": 536888032, + "app_ram_size": 40208, + "app_ram_addr": 536888048, "k5_cc_ver": "6", "printf_enable": true, "ota_ver_patch": "0", diff --git a/examples/peripheral_console_realtime/peripheral_console_realtime.sct b/examples/peripheral_console_realtime/peripheral_console_realtime.sct index 349954462..a35b3d924 100644 --- a/examples/peripheral_console_realtime/peripheral_console_realtime.sct +++ b/examples/peripheral_console_realtime/peripheral_console_realtime.sct @@ -2,14 +2,14 @@ ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* -LR_IROM1 0x02026000 0x0005A000 { ; load region size_region - ER_IROM1 0x02026000 0x0005A000 { ; load address = execution address +LR_IROM1 0x02027000 0x00059000 { ; load region size_region + ER_IROM1 0x02027000 0x00059000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) .ANY (+XO) } -RW_IRAM1 0x200042E0 0x00009D20 { ; RW data +RW_IRAM1 0x200042F0 0x00009D10 { ; RW data *(.ram_code) *(Veneer$$Code) .ANY (+RW +ZI) diff --git a/examples/peripheral_console_realtime/peripheral_console_realtime.uvproj b/examples/peripheral_console_realtime/peripheral_console_realtime.uvproj index 4821d7f38..7a1411fed 100644 --- a/examples/peripheral_console_realtime/peripheral_console_realtime.uvproj +++ b/examples/peripheral_console_realtime/peripheral_console_realtime.uvproj @@ -294,8 +294,8 @@ 1 - 33710080 - 368640 + 33714176 + 364544 1 @@ -319,8 +319,8 @@ 0 - 536888032 - 40224 + 536888048 + 40208 0 diff --git a/examples/peripheral_console_realtime/peripheral_console_realtime.uvprojx b/examples/peripheral_console_realtime/peripheral_console_realtime.uvprojx index 17a4c4c1d..0c0a49ae5 100644 --- a/examples/peripheral_console_realtime/peripheral_console_realtime.uvprojx +++ b/examples/peripheral_console_realtime/peripheral_console_realtime.uvprojx @@ -273,8 +273,8 @@ 1 - 33710080 - 368640 + 33714176 + 364544 1 @@ -298,8 +298,8 @@ 0 - 536888032 - 40224 + 536888048 + 40208 0 diff --git a/examples/voice_remote_ctrl/flash_download.ini b/examples/voice_remote_ctrl/flash_download.ini index f2353c2d3..cf1527747 100644 --- a/examples/voice_remote_ctrl/flash_download.ini +++ b/examples/voice_remote_ctrl/flash_download.ini @@ -24,7 +24,7 @@ Address=33562624 [bin-1] Name=Burn Bin #2 Checked=1 -Address=33718272 +Address=33722368 FileName=voice_remote_ctrl.bin [uart] diff --git a/examples/voice_remote_ctrl/init.ini b/examples/voice_remote_ctrl/init.ini index 4a39000cb..6a7a281e5 100644 --- a/examples/voice_remote_ctrl/init.ini +++ b/examples/voice_remote_ctrl/init.ini @@ -1,3 +1,3 @@ -msp = *(unsigned int *)( 0x02002000 ) -pc = *(unsigned int *)( 0x02002000 + 4 ) +msp = *(unsigned int *)( *(unsigned int *)( 0x02003000 ) ) +pc = *(unsigned int *)( *(unsigned int *)( 0x02003000 ) + 4 ) diff --git a/examples/voice_remote_ctrl/voice_remote_ctrl.ingw b/examples/voice_remote_ctrl/voice_remote_ctrl.ingw index 60ed36b71..08c8fd436 100644 --- a/examples/voice_remote_ctrl/voice_remote_ctrl.ingw +++ b/examples/voice_remote_ctrl/voice_remote_ctrl.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 155316, + "size": 159196, "base": 33562624 }, "ram": { @@ -9,10 +9,10 @@ "base": 536870912 }, "app": { - "base": 33718272 + "base": 33722368 }, "version": [ - 2,3,1] + 2,3,2] }, "tc_dir": "C:\\Keil_v5\\UV4", "ide_ver": "5", @@ -39,8 +39,8 @@ "power_saving": false, "gatt_handle_value": "6", "bundle": "typical", - "app_rom_size": "360448", - "app_rom_addr": "33718272", + "app_rom_size": "356352", + "app_rom_addr": "33722368", "family": "ing916", "vcode": false, "role": "peripheral", diff --git a/examples/voice_remote_ctrl/voice_remote_ctrl.uvproj b/examples/voice_remote_ctrl/voice_remote_ctrl.uvproj index 70dfadc6a..48c18431d 100644 --- a/examples/voice_remote_ctrl/voice_remote_ctrl.uvproj +++ b/examples/voice_remote_ctrl/voice_remote_ctrl.uvproj @@ -294,8 +294,8 @@ 1 - 33718272 - 360448 + 33722368 + 356352 1 diff --git a/examples/voice_remote_ctrl/voice_remote_ctrl.uvprojx b/examples/voice_remote_ctrl/voice_remote_ctrl.uvprojx index 905b57037..4e461526b 100644 --- a/examples/voice_remote_ctrl/voice_remote_ctrl.uvprojx +++ b/examples/voice_remote_ctrl/voice_remote_ctrl.uvprojx @@ -273,8 +273,8 @@ 1 - 33718272 - 360448 + 33722368 + 356352 1 diff --git a/src/Tools/platform_util.c b/src/Tools/platform_util.c index 8403d4896..6f21c5c33 100644 --- a/src/Tools/platform_util.c +++ b/src/Tools/platform_util.c @@ -1,4 +1,5 @@ #include "platform_util.h" +#include "eflash.h" const struct platform_info *platform_inspect2(uintptr_t binary_addr, int family) { @@ -7,7 +8,11 @@ const struct platform_info *platform_inspect2(uintptr_t binary_addr, int family) case INGCHIPS_FAMILY_918: return (const struct platform_info *)(binary_addr + 0xb0); case INGCHIPS_FAMILY_916: - return (const struct platform_info *)(binary_addr + 0xfc); + { + uintptr_t vect_addr = io_read(binary_addr + EFLASH_SECTOR_SIZE); + return (const struct platform_info *)(vect_addr + 0xfc); + } + default: return (const struct platform_info *)0; } @@ -17,3 +22,12 @@ const struct platform_info *platform_inspect(uintptr_t binary_addr) { return platform_inspect2(binary_addr, INGCHIPS_FAMILY); } + +uintptr_t platform_get_vector_table_address(void) +{ +#if (INGCHIPS_FAMILY == INGCHIPS_FAMILY_916) + return io_read(FLASH_BASE + EFLASH_SECTOR_SIZE * 3); +#else + return FLASH_BASE; +#endif +} diff --git a/src/Tools/platform_util.h b/src/Tools/platform_util.h index 38bd7da5f..86e183694 100644 --- a/src/Tools/platform_util.h +++ b/src/Tools/platform_util.h @@ -10,7 +10,7 @@ extern "C" { struct platform_info { platform_ver_t version; - uintptr_t app_load_addr; + uintptr_t app_load_addr; }; /** @@ -29,13 +29,21 @@ const struct platform_info *platform_inspect2(uintptr_t binary_addr, int family) * @brief Inspect platform binary * * Note: It is assumed the platform binary is for the same family as the building target. - * + * * @param[in] binary_addr address of the binary * @return information of the binary **************************************************************************************** */ const struct platform_info *platform_inspect(uintptr_t binary_addr); +/** + **************************************************************************************** + * @brief Get vector table address of platform binary + * + * @return address of vector table + **************************************************************************************** + */ +uintptr_t platform_get_vector_table_address(void); #ifdef __cplusplus } From 2f56020029412cd9a5551ac24cc7f2fc4c481ed1 Mon Sep 17 00:00:00 2001 From: zjli2019 Date: Thu, 23 Nov 2023 18:22:07 +0800 Subject: [PATCH 10/13] fix RTC & platform_util --- src/FWlib/peripheral_rtc.c | 2 +- src/Tools/platform_util.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/FWlib/peripheral_rtc.c b/src/FWlib/peripheral_rtc.c index 3ccbcb53e..417dfd799 100644 --- a/src/FWlib/peripheral_rtc.c +++ b/src/FWlib/peripheral_rtc.c @@ -101,7 +101,7 @@ void RTC_ModifyTime(uint16_t day, uint8_t hour, uint8_t minute, uint8_t second) int RTC_IsModificationDone(void) { - return APB_RTC->Ctrl & (1 << 16); + return APB_RTC->St & (1 << 16); } void RTC_ConfigAlarm(uint8_t hour, uint8_t minute, uint8_t second) diff --git a/src/Tools/platform_util.c b/src/Tools/platform_util.c index 6f21c5c33..fb6f40a52 100644 --- a/src/Tools/platform_util.c +++ b/src/Tools/platform_util.c @@ -9,7 +9,7 @@ const struct platform_info *platform_inspect2(uintptr_t binary_addr, int family) return (const struct platform_info *)(binary_addr + 0xb0); case INGCHIPS_FAMILY_916: { - uintptr_t vect_addr = io_read(binary_addr + EFLASH_SECTOR_SIZE); + uintptr_t vect_addr = io_read(binary_addr + 4096); return (const struct platform_info *)(vect_addr + 0xfc); } From 004e53d3bb5f2ee7362da10235cacbeca274f55b Mon Sep 17 00:00:00 2001 From: Lcy Date: Sun, 26 Nov 2023 03:35:17 +0800 Subject: [PATCH 11/13] modify keyboard output chara property to receive led --- examples/hid_keyboard/src/profile.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/hid_keyboard/src/profile.c b/examples/hid_keyboard/src/profile.c index 6f54adf2a..edce86ef9 100644 --- a/examples/hid_keyboard/src/profile.c +++ b/examples/hid_keyboard/src/profile.c @@ -632,7 +632,8 @@ uint8_t *init_service() (uint8_t *)&report, sizeof(report)); att_db_util_add_descriptor_uuid16(GATT_CLIENT_CHARACTERISTICS_DESC_REPORT_REF, ATT_PROPERTY_READ , (uint8_t *)&kb_desc_input_report, sizeof(kb_desc_input_report)); - att_db_util_add_characteristic_uuid16(0x2A4D, ATT_PROPERTY_READ | ATT_PROPERTY_NOTIFY | ATT_PROPERTY_AUTHENTICATION_REQUIRED, + att_db_util_add_characteristic_uuid16(0x2A4D, + ATT_PROPERTY_WRITE_WITHOUT_RESPONSE | ATT_PROPERTY_WRITE | ATT_PROPERTY_READ | ATT_PROPERTY_DYNAMIC | ATT_PROPERTY_AUTHENTICATION_REQUIRED, (uint8_t *)&report, sizeof(report)); att_db_util_add_descriptor_uuid16(GATT_CLIENT_CHARACTERISTICS_DESC_REPORT_REF, ATT_PROPERTY_READ , (uint8_t *)&kb_desc_output_report, sizeof(kb_desc_output_report)); From 076b6c5605361d20160acdf885fc20790cc758a5 Mon Sep 17 00:00:00 2001 From: zjli2019 Date: Mon, 27 Nov 2023 16:43:36 +0800 Subject: [PATCH 12/13] rebuild exp bundles & update examples 1. fix secure pairing; 1. demo le secure pairing. --- bundles/exp/ING9168xx/apis.json | 198 ++++----- bundles/exp/ING9168xx/meta.json | 4 +- bundles/exp/ING9168xx/platform.bin | Bin 177740 -> 177776 bytes bundles/exp/ING9187xx/apis.json | 198 ++++----- bundles/exp/ING9187xx/meta.json | 4 +- bundles/exp/ING9187xx/platform.bin | Bin 151996 -> 152040 bytes bundles/exp/ING9188xx/apis.json | 198 ++++----- bundles/exp/ING9188xx/meta.json | 4 +- bundles/exp/ING9188xx/platform.bin | Bin 158908 -> 158956 bytes bundles/exp/inc/bluetooth.h | 2 +- bundles/exp/inc/btstack_defines.h | 6 + bundles/exp/inc/btstack_event.h | 20 + bundles/exp/inc/le_device_db.h | 8 +- bundles/exp/inc/sm.h | 52 ++- bundles/extension/inc/bluetooth.h | 2 +- bundles/extension/inc/btstack_defines.h | 6 + bundles/mass_conn/inc/bluetooth.h | 2 +- bundles/mass_conn/inc/btstack_defines.h | 6 + bundles/mini/inc/bluetooth.h | 2 +- bundles/mini/inc/btstack_defines.h | 6 + bundles/noos_exp/ING9168xx/apis.json | 46 +-- bundles/noos_exp/ING9168xx/meta.json | 4 +- bundles/noos_exp/ING9168xx/platform.bin | Bin 166876 -> 166912 bytes bundles/noos_exp/ING9187xx/apis.json | 46 +-- bundles/noos_exp/ING9187xx/meta.json | 4 +- bundles/noos_exp/ING9187xx/platform.bin | Bin 141212 -> 141252 bytes bundles/noos_exp/ING9188xx/apis.json | 46 +-- bundles/noos_exp/ING9188xx/meta.json | 4 +- bundles/noos_exp/ING9188xx/platform.bin | Bin 148124 -> 148164 bytes bundles/noos_exp/inc/bluetooth.h | 2 +- bundles/noos_exp/inc/btstack_defines.h | 6 + bundles/noos_exp/inc/btstack_event.h | 20 + bundles/noos_exp/inc/le_device_db.h | 8 +- bundles/noos_exp/inc/sm.h | 52 ++- bundles/noos_extension/inc/bluetooth.h | 2 +- bundles/noos_extension/inc/btstack_defines.h | 6 + bundles/noos_mass_conn/inc/bluetooth.h | 2 +- bundles/noos_mass_conn/inc/btstack_defines.h | 6 + bundles/noos_mini/inc/bluetooth.h | 2 +- bundles/noos_mini/inc/btstack_defines.h | 6 + bundles/noos_typical/inc/bluetooth.h | 2 +- bundles/noos_typical/inc/btstack_defines.h | 6 + bundles/typical/inc/bluetooth.h | 2 +- bundles/typical/inc/btstack_defines.h | 6 + .../peripheral_ibeacon/generic_cortex.icf | 6 +- examples/direct_conn/direct_conn.ingw | 4 +- examples/hid_keyboard/README.md | 1 + examples/hid_keyboard/flash_download.ini | 7 +- examples/hid_keyboard/hid_keyboard.ingw | 20 +- examples/hid_keyboard/hid_keyboard.uvopt | 40 +- examples/hid_keyboard/hid_keyboard.uvoptx | 36 +- examples/hid_keyboard/hid_keyboard.uvproj | 130 +++--- examples/hid_keyboard/hid_keyboard.uvprojx | 22 +- examples/hid_keyboard/src/profile.c | 11 +- examples/mesh-light/mesh-light.ingw | 4 +- examples/pairing_with_oob/README.md | 5 +- .../pairing_with_oob/data/advertising_oob.adv | 18 + .../data/advertising_oob.const | 4 + .../data/advertising_oob.const.tmpl | 2 + examples/pairing_with_oob/doc/index.md | 3 + examples/pairing_with_oob/flash_download.ini | 6 +- .../pairing_with_oob/pairing_with_oob.ingw | 20 +- .../pairing_with_oob/pairing_with_oob.uvopt | 150 ++++--- .../pairing_with_oob/pairing_with_oob.uvoptx | 42 +- .../pairing_with_oob/pairing_with_oob.uvproj | 27 +- .../pairing_with_oob/pairing_with_oob.uvprojx | 27 +- .../pairing_with_oob/src/le_secure_pairing.c | 383 ++++++++++++++++++ .../pairing_with_oob/src/legacy_pairing.c | 320 +++++++++++++++ examples/pairing_with_oob/src/profile.c | 321 +-------------- examples/pawr/flash_download.ini | 2 +- examples/pawr/pawr.ingw | 4 +- examples/uart_console/uart_console.ingw | 4 +- src/Tools/ecc_driver.c | 127 ++++++ src/Tools/ecc_driver.h | 20 + 74 files changed, 1844 insertions(+), 918 deletions(-) create mode 100644 examples/pairing_with_oob/data/advertising_oob.adv create mode 100644 examples/pairing_with_oob/data/advertising_oob.const create mode 100644 examples/pairing_with_oob/data/advertising_oob.const.tmpl create mode 100644 examples/pairing_with_oob/src/le_secure_pairing.c create mode 100644 examples/pairing_with_oob/src/legacy_pairing.c create mode 100644 src/Tools/ecc_driver.c create mode 100644 src/Tools/ecc_driver.h diff --git a/bundles/exp/ING9168xx/apis.json b/bundles/exp/ING9168xx/apis.json index cf43988de..5cd0b4f73 100644 --- a/bundles/exp/ING9168xx/apis.json +++ b/bundles/exp/ING9168xx/apis.json @@ -297,103 +297,103 @@ "sm_bonding_decline": "0x02025179", "sm_config": "0x020255f5", "sm_config_conn": "0x0202560d", - "sm_encryption_key_size": "0x020257c3", - "sm_just_works_confirm": "0x02026515", - "sm_le_device_key": "0x020268f5", - "sm_numeric_comparison_confirm": "0x02026a47", - "sm_passkey_input": "0x02026a85", - "sm_private_random_address_generation_get": "0x02027089", - "sm_private_random_address_generation_get_mode": "0x02027091", - "sm_private_random_address_generation_set_mode": "0x0202709d", - "sm_private_random_address_generation_set_update_period": "0x020270c5", - "sm_register_external_ltk_callback": "0x02027351", - "sm_register_oob_data_callback": "0x0202735d", - "sm_register_sc_oob_data_callback": "0x02027369", - "sm_request_pairing": "0x02027375", - "sm_sc_generate_oob_data": "0x02027fb1", - "sm_send_security_request": "0x020280e1", - "sm_set_accepted_stk_generation_methods": "0x02028109", - "sm_set_authentication_requirements": "0x02028115", - "sm_set_encryption_key_size_range": "0x02028121", - "sscanf_bd_addr": "0x02028545", - "sysSetPublicDeviceAddr": "0x02028a6d", - "uuid128_to_str": "0x020292ed", - "uuid_add_bluetooth_prefix": "0x02029345", - "uuid_has_bluetooth_prefix": "0x02029365", - "uxListRemove": "0x02029381", - "uxQueueMessagesWaiting": "0x020293a9", - "uxQueueMessagesWaitingFromISR": "0x020293d1", - "uxQueueSpacesAvailable": "0x020293ed", - "uxTaskGetStackHighWaterMark": "0x02029419", - "uxTaskPriorityGet": "0x02029439", - "uxTaskPriorityGetFromISR": "0x02029455", - "vListInitialise": "0x02029513", - "vListInitialiseItem": "0x02029529", - "vListInsert": "0x0202952f", - "vListInsertEnd": "0x0202955f", - "vPortEndScheduler": "0x02029579", - "vPortEnterCritical": "0x020295a5", - "vPortExitCritical": "0x020295e9", - "vPortFree": "0x0202961d", - "vPortSuppressTicksAndSleep": "0x020296c1", - "vPortValidateInterruptPriority": "0x020297e9", - "vQueueDelete": "0x02029845", - "vQueueWaitForMessageRestricted": "0x02029871", - "vTaskDelay": "0x020298b5", - "vTaskInternalSetTimeOutState": "0x02029901", - "vTaskMissedYield": "0x02029911", - "vTaskPlaceOnEventList": "0x0202991d", - "vTaskPlaceOnEventListRestricted": "0x02029955", - "vTaskPriorityDisinheritAfterTimeout": "0x02029995", - "vTaskPrioritySet": "0x02029a41", - "vTaskResume": "0x02029b09", - "vTaskStartScheduler": "0x02029b8d", - "vTaskStepTick": "0x02029c1d", - "vTaskSuspend": "0x02029c4d", - "vTaskSuspendAll": "0x02029d09", - "vTaskSwitchContext": "0x02029d19", - "xPortStartScheduler": "0x02029dc9", - "xQueueAddToSet": "0x02029ecd", - "xQueueCreateCountingSemaphore": "0x02029ef1", - "xQueueCreateCountingSemaphoreStatic": "0x02029f2d", - "xQueueCreateMutex": "0x02029f71", - "xQueueCreateMutexStatic": "0x02029f87", - "xQueueCreateSet": "0x02029fa1", - "xQueueGenericCreate": "0x02029fa9", - "xQueueGenericCreateStatic": "0x02029ff5", - "xQueueGenericReset": "0x0202a05d", - "xQueueGenericSend": "0x0202a0e9", - "xQueueGenericSendFromISR": "0x0202a255", - "xQueueGiveFromISR": "0x0202a315", - "xQueueGiveMutexRecursive": "0x0202a3b9", - "xQueueIsQueueEmptyFromISR": "0x0202a3f9", - "xQueueIsQueueFullFromISR": "0x0202a41d", - "xQueuePeek": "0x0202a445", - "xQueuePeekFromISR": "0x0202a56d", - "xQueueReceive": "0x0202a5d9", - "xQueueReceiveFromISR": "0x0202a705", - "xQueueRemoveFromSet": "0x0202a799", - "xQueueSelectFromSet": "0x0202a7bb", - "xQueueSelectFromSetFromISR": "0x0202a7cd", - "xQueueSemaphoreTake": "0x0202a7e1", - "xQueueTakeMutexRecursive": "0x0202a94d", - "xTaskCheckForTimeOut": "0x0202a991", - "xTaskCreate": "0x0202aa01", - "xTaskCreateStatic": "0x0202aa5d", - "xTaskGetCurrentTaskHandle": "0x0202aacd", - "xTaskGetSchedulerState": "0x0202aad9", - "xTaskGetTickCount": "0x0202aaf5", - "xTaskGetTickCountFromISR": "0x0202ab01", - "xTaskIncrementTick": "0x0202ab11", - "xTaskPriorityDisinherit": "0x0202abdd", - "xTaskPriorityInherit": "0x0202ac71", - "xTaskRemoveFromEventList": "0x0202ad05", - "xTaskResumeAll": "0x0202ad85", - "xTaskResumeFromISR": "0x0202ae4d", - "xTimerCreate": "0x0202aed9", - "xTimerCreateStatic": "0x0202af0d", - "xTimerCreateTimerTask": "0x0202af45", - "xTimerGenericCommand": "0x0202afb1", - "xTimerGetExpiryTime": "0x0202b021", - "xTimerGetTimerDaemonTaskHandle": "0x0202b041" + "sm_encryption_key_size": "0x020257c7", + "sm_just_works_confirm": "0x02026519", + "sm_le_device_key": "0x02026909", + "sm_numeric_comparison_confirm": "0x02026a5f", + "sm_passkey_input": "0x02026a9d", + "sm_private_random_address_generation_get": "0x020270a5", + "sm_private_random_address_generation_get_mode": "0x020270ad", + "sm_private_random_address_generation_set_mode": "0x020270b9", + "sm_private_random_address_generation_set_update_period": "0x020270e1", + "sm_register_external_ltk_callback": "0x0202736d", + "sm_register_oob_data_callback": "0x02027379", + "sm_register_sc_oob_data_callback": "0x02027385", + "sm_request_pairing": "0x02027391", + "sm_sc_generate_oob_data": "0x02027fd1", + "sm_send_security_request": "0x02028101", + "sm_set_accepted_stk_generation_methods": "0x02028129", + "sm_set_authentication_requirements": "0x02028135", + "sm_set_encryption_key_size_range": "0x02028145", + "sscanf_bd_addr": "0x02028569", + "sysSetPublicDeviceAddr": "0x02028a91", + "uuid128_to_str": "0x02029311", + "uuid_add_bluetooth_prefix": "0x02029369", + "uuid_has_bluetooth_prefix": "0x02029389", + "uxListRemove": "0x020293a5", + "uxQueueMessagesWaiting": "0x020293cd", + "uxQueueMessagesWaitingFromISR": "0x020293f5", + "uxQueueSpacesAvailable": "0x02029411", + "uxTaskGetStackHighWaterMark": "0x0202943d", + "uxTaskPriorityGet": "0x0202945d", + "uxTaskPriorityGetFromISR": "0x02029479", + "vListInitialise": "0x02029537", + "vListInitialiseItem": "0x0202954d", + "vListInsert": "0x02029553", + "vListInsertEnd": "0x02029583", + "vPortEndScheduler": "0x0202959d", + "vPortEnterCritical": "0x020295c9", + "vPortExitCritical": "0x0202960d", + "vPortFree": "0x02029641", + "vPortSuppressTicksAndSleep": "0x020296e5", + "vPortValidateInterruptPriority": "0x0202980d", + "vQueueDelete": "0x02029869", + "vQueueWaitForMessageRestricted": "0x02029895", + "vTaskDelay": "0x020298d9", + "vTaskInternalSetTimeOutState": "0x02029925", + "vTaskMissedYield": "0x02029935", + "vTaskPlaceOnEventList": "0x02029941", + "vTaskPlaceOnEventListRestricted": "0x02029979", + "vTaskPriorityDisinheritAfterTimeout": "0x020299b9", + "vTaskPrioritySet": "0x02029a65", + "vTaskResume": "0x02029b2d", + "vTaskStartScheduler": "0x02029bb1", + "vTaskStepTick": "0x02029c41", + "vTaskSuspend": "0x02029c71", + "vTaskSuspendAll": "0x02029d2d", + "vTaskSwitchContext": "0x02029d3d", + "xPortStartScheduler": "0x02029ded", + "xQueueAddToSet": "0x02029ef1", + "xQueueCreateCountingSemaphore": "0x02029f15", + "xQueueCreateCountingSemaphoreStatic": "0x02029f51", + "xQueueCreateMutex": "0x02029f95", + "xQueueCreateMutexStatic": "0x02029fab", + "xQueueCreateSet": "0x02029fc5", + "xQueueGenericCreate": "0x02029fcd", + "xQueueGenericCreateStatic": "0x0202a019", + "xQueueGenericReset": "0x0202a081", + "xQueueGenericSend": "0x0202a10d", + "xQueueGenericSendFromISR": "0x0202a279", + "xQueueGiveFromISR": "0x0202a339", + "xQueueGiveMutexRecursive": "0x0202a3dd", + "xQueueIsQueueEmptyFromISR": "0x0202a41d", + "xQueueIsQueueFullFromISR": "0x0202a441", + "xQueuePeek": "0x0202a469", + "xQueuePeekFromISR": "0x0202a591", + "xQueueReceive": "0x0202a5fd", + "xQueueReceiveFromISR": "0x0202a729", + "xQueueRemoveFromSet": "0x0202a7bd", + "xQueueSelectFromSet": "0x0202a7df", + "xQueueSelectFromSetFromISR": "0x0202a7f1", + "xQueueSemaphoreTake": "0x0202a805", + "xQueueTakeMutexRecursive": "0x0202a971", + "xTaskCheckForTimeOut": "0x0202a9b5", + "xTaskCreate": "0x0202aa25", + "xTaskCreateStatic": "0x0202aa81", + "xTaskGetCurrentTaskHandle": "0x0202aaf1", + "xTaskGetSchedulerState": "0x0202aafd", + "xTaskGetTickCount": "0x0202ab19", + "xTaskGetTickCountFromISR": "0x0202ab25", + "xTaskIncrementTick": "0x0202ab35", + "xTaskPriorityDisinherit": "0x0202ac01", + "xTaskPriorityInherit": "0x0202ac95", + "xTaskRemoveFromEventList": "0x0202ad29", + "xTaskResumeAll": "0x0202ada9", + "xTaskResumeFromISR": "0x0202ae71", + "xTimerCreate": "0x0202aefd", + "xTimerCreateStatic": "0x0202af31", + "xTimerCreateTimerTask": "0x0202af69", + "xTimerGenericCommand": "0x0202afd5", + "xTimerGetExpiryTime": "0x0202b045", + "xTimerGetTimerDaemonTaskHandle": "0x0202b065" } \ No newline at end of file diff --git a/bundles/exp/ING9168xx/meta.json b/bundles/exp/ING9168xx/meta.json index 5f31ac633..a4f279626 100644 --- a/bundles/exp/ING9168xx/meta.json +++ b/bundles/exp/ING9168xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 33562624, - "size": 177740 + "size": 177776 }, "version": [ 2, 3, - 2 + 3 ] } \ No newline at end of file diff --git a/bundles/exp/ING9168xx/platform.bin b/bundles/exp/ING9168xx/platform.bin index e1df61644310d36853cd39dc281a1dfd8cd88d0e..1c9259a01d25051d9f66b6139bc906e2f32a44df 100644 GIT binary patch delta 13715 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

    h6)`6GHpB(dsVLc;sW@b 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 NHgzEVZy+=9{{Y-0V|xGq diff --git a/bundles/extension/ING9188xx/apis.json b/bundles/extension/ING9188xx/apis.json index fced75a36..3d231cc2a 100644 --- a/bundles/extension/ING9188xx/apis.json +++ b/bundles/extension/ING9188xx/apis.json @@ -237,136 +237,136 @@ "platform_reset": "0x0001fbb9", "platform_rt_rc_auto_tune": "0x0001fbdd", "platform_rt_rc_auto_tune2": "0x0001fbe5", - "platform_rt_rc_tune": "0x0001fc89", - "platform_set_abs_timer": "0x0001fc9d", - "platform_set_evt_callback": "0x0001fca1", - "platform_set_evt_callback_table": "0x0001fcb5", - "platform_set_irq_callback": "0x0001fcc1", - "platform_set_irq_callback_table": "0x0001fcdd", - "platform_set_rf_clk_source": "0x0001fce9", - "platform_set_rf_init_data": "0x0001fcf5", - "platform_set_rf_power_mapping": "0x0001fd01", - "platform_set_timer": "0x0001fd0d", - "platform_shutdown": "0x0001fd11", - "platform_switch_app": "0x0001fd15", - "platform_trace_raw": "0x0001fd41", - "platform_write_persistent_reg": "0x0001fd59", - "printf_hexdump": "0x0001ff0d", - "pvPortMalloc": "0x00020a01", - "pvTaskIncrementMutexHeldCount": "0x00020ae9", - "pvTimerGetTimerID": "0x00020b01", - "pxPortInitialiseStack": "0x00020b2d", - "reverse_128": "0x00020d0d", - "reverse_24": "0x00020d13", - "reverse_256": "0x00020d19", - "reverse_48": "0x00020d1f", - "reverse_56": "0x00020d25", - "reverse_64": "0x00020d2b", - "reverse_bd_addr": "0x00020d31", - "reverse_bytes": "0x00020d37", - "sm_add_event_handler": "0x00021055", - "sm_address_resolution_lookup": "0x000211ad", - "sm_authenticated": "0x00021529", - "sm_authorization_decline": "0x00021537", - "sm_authorization_grant": "0x00021557", - "sm_authorization_state": "0x00021577", - "sm_bonding_decline": "0x00021591", - "sm_config": "0x000219ed", - "sm_config_conn": "0x00021a05", - "sm_encryption_key_size": "0x00021bbb", - "sm_just_works_confirm": "0x00022141", - "sm_le_device_key": "0x00022479", - "sm_passkey_input": "0x0002250f", - "sm_private_random_address_generation_get": "0x000228c9", - "sm_private_random_address_generation_get_mode": "0x000228d1", - "sm_private_random_address_generation_set_mode": "0x000228dd", - "sm_private_random_address_generation_set_update_period": "0x00022905", - "sm_register_external_ltk_callback": "0x00022a41", - "sm_register_oob_data_callback": "0x00022a4d", - "sm_request_pairing": "0x00022a59", - "sm_send_security_request": "0x0002352f", - "sm_set_accepted_stk_generation_methods": "0x00023555", - "sm_set_authentication_requirements": "0x00023561", - "sm_set_encryption_key_size_range": "0x0002356d", - "sscanf_bd_addr": "0x0002393d", - "sysSetPublicDeviceAddr": "0x00023cf1", - "uuid128_to_str": "0x0002449d", - "uuid_add_bluetooth_prefix": "0x000244f5", - "uuid_has_bluetooth_prefix": "0x00024515", - "uxListRemove": "0x00024531", - "uxQueueMessagesWaiting": "0x00024559", - "uxQueueMessagesWaitingFromISR": "0x00024581", - "uxQueueSpacesAvailable": "0x0002459d", - "uxTaskGetStackHighWaterMark": "0x000245c9", - "uxTaskPriorityGet": "0x000245e9", - "uxTaskPriorityGetFromISR": "0x00024605", - "vListInitialise": "0x000246bf", - "vListInitialiseItem": "0x000246d5", - "vListInsert": "0x000246db", - "vListInsertEnd": "0x0002470b", - "vPortEndScheduler": "0x00024725", - "vPortEnterCritical": "0x00024751", - "vPortExitCritical": "0x00024795", - "vPortFree": "0x000247c9", - "vPortSuppressTicksAndSleep": "0x0002485d", - "vPortValidateInterruptPriority": "0x00024985", - "vQueueDelete": "0x000249e1", - "vQueueWaitForMessageRestricted": "0x00024a0d", - "vTaskDelay": "0x00024a55", - "vTaskInternalSetTimeOutState": "0x00024aa1", - "vTaskMissedYield": "0x00024ab1", - "vTaskPlaceOnEventList": "0x00024abd", - "vTaskPlaceOnEventListRestricted": "0x00024af5", - "vTaskPriorityDisinheritAfterTimeout": "0x00024b35", - "vTaskPrioritySet": "0x00024be1", - "vTaskResume": "0x00024ca9", - "vTaskStartScheduler": "0x00024d2d", - "vTaskStepTick": "0x00024dbd", - "vTaskSuspend": "0x00024ded", - "vTaskSuspendAll": "0x00024ea9", - "vTaskSwitchContext": "0x00024eb9", - "xPortStartScheduler": "0x00024f69", - "xQueueAddToSet": "0x00025031", - "xQueueCreateCountingSemaphore": "0x00025055", - "xQueueCreateCountingSemaphoreStatic": "0x00025091", - "xQueueCreateMutex": "0x000250d5", - "xQueueCreateMutexStatic": "0x000250eb", - "xQueueCreateSet": "0x00025105", - "xQueueGenericCreate": "0x0002510d", - "xQueueGenericCreateStatic": "0x00025159", - "xQueueGenericReset": "0x000251c1", - "xQueueGenericSend": "0x0002524d", - "xQueueGenericSendFromISR": "0x000253b9", - "xQueueGiveFromISR": "0x00025479", - "xQueueGiveMutexRecursive": "0x0002551d", - "xQueueIsQueueEmptyFromISR": "0x0002555d", - "xQueueIsQueueFullFromISR": "0x00025581", - "xQueuePeek": "0x000255a9", - "xQueuePeekFromISR": "0x000256d1", - "xQueueReceive": "0x0002573d", - "xQueueReceiveFromISR": "0x00025869", - "xQueueRemoveFromSet": "0x000258fd", - "xQueueSelectFromSet": "0x0002591f", - "xQueueSelectFromSetFromISR": "0x00025931", - "xQueueSemaphoreTake": "0x00025945", - "xQueueTakeMutexRecursive": "0x00025ab1", - "xTaskCheckForTimeOut": "0x00025af5", - "xTaskCreate": "0x00025b65", - "xTaskCreateStatic": "0x00025bc1", - "xTaskGetCurrentTaskHandle": "0x00025c31", - "xTaskGetSchedulerState": "0x00025c3d", - "xTaskGetTickCount": "0x00025c59", - "xTaskGetTickCountFromISR": "0x00025c65", - "xTaskIncrementTick": "0x00025c75", - "xTaskPriorityDisinherit": "0x00025d41", - "xTaskPriorityInherit": "0x00025dd5", - "xTaskRemoveFromEventList": "0x00025e69", - "xTaskResumeAll": "0x00025ee9", - "xTaskResumeFromISR": "0x00025fb1", - "xTimerCreate": "0x0002603d", - "xTimerCreateStatic": "0x00026071", - "xTimerCreateTimerTask": "0x000260a9", - "xTimerGenericCommand": "0x00026115", - "xTimerGetExpiryTime": "0x00026185", - "xTimerGetTimerDaemonTaskHandle": "0x000261a5" + "platform_rt_rc_tune": "0x0001fc6d", + "platform_set_abs_timer": "0x0001fc81", + "platform_set_evt_callback": "0x0001fc85", + "platform_set_evt_callback_table": "0x0001fc99", + "platform_set_irq_callback": "0x0001fca5", + "platform_set_irq_callback_table": "0x0001fcc1", + "platform_set_rf_clk_source": "0x0001fccd", + "platform_set_rf_init_data": "0x0001fcd9", + "platform_set_rf_power_mapping": "0x0001fce5", + "platform_set_timer": "0x0001fcf1", + "platform_shutdown": "0x0001fcf5", + "platform_switch_app": "0x0001fcf9", + "platform_trace_raw": "0x0001fd25", + "platform_write_persistent_reg": "0x0001fd3d", + "printf_hexdump": "0x0001fef1", + "pvPortMalloc": "0x000209e5", + "pvTaskIncrementMutexHeldCount": "0x00020acd", + "pvTimerGetTimerID": "0x00020ae5", + "pxPortInitialiseStack": "0x00020b11", + "reverse_128": "0x00020cf1", + "reverse_24": "0x00020cf7", + "reverse_256": "0x00020cfd", + "reverse_48": "0x00020d03", + "reverse_56": "0x00020d09", + "reverse_64": "0x00020d0f", + "reverse_bd_addr": "0x00020d15", + "reverse_bytes": "0x00020d1b", + "sm_add_event_handler": "0x00021039", + "sm_address_resolution_lookup": "0x00021191", + "sm_authenticated": "0x0002150d", + "sm_authorization_decline": "0x0002151b", + "sm_authorization_grant": "0x0002153b", + "sm_authorization_state": "0x0002155b", + "sm_bonding_decline": "0x00021575", + "sm_config": "0x000219d1", + "sm_config_conn": "0x000219e9", + "sm_encryption_key_size": "0x00021b9f", + "sm_just_works_confirm": "0x00022125", + "sm_le_device_key": "0x0002245d", + "sm_passkey_input": "0x000224f3", + "sm_private_random_address_generation_get": "0x000228ad", + "sm_private_random_address_generation_get_mode": "0x000228b5", + "sm_private_random_address_generation_set_mode": "0x000228c1", + "sm_private_random_address_generation_set_update_period": "0x000228e9", + "sm_register_external_ltk_callback": "0x00022a25", + "sm_register_oob_data_callback": "0x00022a31", + "sm_request_pairing": "0x00022a3d", + "sm_send_security_request": "0x00023513", + "sm_set_accepted_stk_generation_methods": "0x00023539", + "sm_set_authentication_requirements": "0x00023545", + "sm_set_encryption_key_size_range": "0x00023551", + "sscanf_bd_addr": "0x00023921", + "sysSetPublicDeviceAddr": "0x00023cd5", + "uuid128_to_str": "0x00024481", + "uuid_add_bluetooth_prefix": "0x000244d9", + "uuid_has_bluetooth_prefix": "0x000244f9", + "uxListRemove": "0x00024515", + "uxQueueMessagesWaiting": "0x0002453d", + "uxQueueMessagesWaitingFromISR": "0x00024565", + "uxQueueSpacesAvailable": "0x00024581", + "uxTaskGetStackHighWaterMark": "0x000245ad", + "uxTaskPriorityGet": "0x000245cd", + "uxTaskPriorityGetFromISR": "0x000245e9", + "vListInitialise": "0x000246a3", + "vListInitialiseItem": "0x000246b9", + "vListInsert": "0x000246bf", + "vListInsertEnd": "0x000246ef", + "vPortEndScheduler": "0x00024709", + "vPortEnterCritical": "0x00024735", + "vPortExitCritical": "0x00024779", + "vPortFree": "0x000247ad", + "vPortSuppressTicksAndSleep": "0x00024841", + "vPortValidateInterruptPriority": "0x00024969", + "vQueueDelete": "0x000249c5", + "vQueueWaitForMessageRestricted": "0x000249f1", + "vTaskDelay": "0x00024a39", + "vTaskInternalSetTimeOutState": "0x00024a85", + "vTaskMissedYield": "0x00024a95", + "vTaskPlaceOnEventList": "0x00024aa1", + "vTaskPlaceOnEventListRestricted": "0x00024ad9", + "vTaskPriorityDisinheritAfterTimeout": "0x00024b19", + "vTaskPrioritySet": "0x00024bc5", + "vTaskResume": "0x00024c8d", + "vTaskStartScheduler": "0x00024d11", + "vTaskStepTick": "0x00024da1", + "vTaskSuspend": "0x00024dd1", + "vTaskSuspendAll": "0x00024e8d", + "vTaskSwitchContext": "0x00024e9d", + "xPortStartScheduler": "0x00024f4d", + "xQueueAddToSet": "0x00025015", + "xQueueCreateCountingSemaphore": "0x00025039", + "xQueueCreateCountingSemaphoreStatic": "0x00025075", + "xQueueCreateMutex": "0x000250b9", + "xQueueCreateMutexStatic": "0x000250cf", + "xQueueCreateSet": "0x000250e9", + "xQueueGenericCreate": "0x000250f1", + "xQueueGenericCreateStatic": "0x0002513d", + "xQueueGenericReset": "0x000251a5", + "xQueueGenericSend": "0x00025231", + "xQueueGenericSendFromISR": "0x0002539d", + "xQueueGiveFromISR": "0x0002545d", + "xQueueGiveMutexRecursive": "0x00025501", + "xQueueIsQueueEmptyFromISR": "0x00025541", + "xQueueIsQueueFullFromISR": "0x00025565", + "xQueuePeek": "0x0002558d", + "xQueuePeekFromISR": "0x000256b5", + "xQueueReceive": "0x00025721", + "xQueueReceiveFromISR": "0x0002584d", + "xQueueRemoveFromSet": "0x000258e1", + "xQueueSelectFromSet": "0x00025903", + "xQueueSelectFromSetFromISR": "0x00025915", + "xQueueSemaphoreTake": "0x00025929", + "xQueueTakeMutexRecursive": "0x00025a95", + "xTaskCheckForTimeOut": "0x00025ad9", + "xTaskCreate": "0x00025b49", + "xTaskCreateStatic": "0x00025ba5", + "xTaskGetCurrentTaskHandle": "0x00025c15", + "xTaskGetSchedulerState": "0x00025c21", + "xTaskGetTickCount": "0x00025c3d", + "xTaskGetTickCountFromISR": "0x00025c49", + "xTaskIncrementTick": "0x00025c59", + "xTaskPriorityDisinherit": "0x00025d25", + "xTaskPriorityInherit": "0x00025db9", + "xTaskRemoveFromEventList": "0x00025e4d", + "xTaskResumeAll": "0x00025ecd", + "xTaskResumeFromISR": "0x00025f95", + "xTimerCreate": "0x00026021", + "xTimerCreateStatic": "0x00026055", + "xTimerCreateTimerTask": "0x0002608d", + "xTimerGenericCommand": "0x000260f9", + "xTimerGetExpiryTime": "0x00026169", + "xTimerGetTimerDaemonTaskHandle": "0x00026189" } \ No newline at end of file diff --git a/bundles/extension/ING9188xx/meta.json b/bundles/extension/ING9188xx/meta.json index 362e53df6..59161671d 100644 --- a/bundles/extension/ING9188xx/meta.json +++ b/bundles/extension/ING9188xx/meta.json @@ -8,7 +8,7 @@ }, "rom": { "base": 16384, - "size": 146528 + "size": 146500 }, "version": [ 1, diff --git a/bundles/extension/ING9188xx/platform.bin b/bundles/extension/ING9188xx/platform.bin index 46749848d5499226c98d574fa848400f565470ba..4ac37c7fd657aad1cd452226d6a9ce26efeae470 100644 GIT binary patch delta 8751 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 L(_tgY3&8vzrojJq delta 8830 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 diff --git a/bundles/mass_conn/ING9168xx/apis.json b/bundles/mass_conn/ING9168xx/apis.json index 1ebffd184..2ade268c4 100644 --- a/bundles/mass_conn/ING9168xx/apis.json +++ b/bundles/mass_conn/ING9168xx/apis.json @@ -212,136 +212,136 @@ "platform_reset": "0x0201f319", "platform_rt_rc_auto_tune": "0x0201f32d", "platform_rt_rc_auto_tune2": "0x0201f335", - "platform_rt_rc_tune": "0x0201f3b9", - "platform_set_abs_timer": "0x0201f3d5", - "platform_set_evt_callback": "0x0201f3d9", - "platform_set_evt_callback_table": "0x0201f3ed", - "platform_set_irq_callback": "0x0201f3f9", - "platform_set_irq_callback_table": "0x0201f415", - "platform_set_rf_clk_source": "0x0201f421", - "platform_set_rf_init_data": "0x0201f42d", - "platform_set_rf_power_mapping": "0x0201f439", - "platform_set_timer": "0x0201f445", - "platform_shutdown": "0x0201f449", - "platform_switch_app": "0x0201f44d", - "platform_trace_raw": "0x0201f465", - "platform_write_persistent_reg": "0x0201f47d", - "printf_hexdump": "0x0201f635", - "pvPortMalloc": "0x0202010d", - "pvTaskIncrementMutexHeldCount": "0x020201f5", - "pvTimerGetTimerID": "0x0202020d", - "pxPortInitialiseStack": "0x02020239", - "reverse_128": "0x02020421", - "reverse_24": "0x02020427", - "reverse_256": "0x0202042d", - "reverse_48": "0x02020433", - "reverse_56": "0x02020439", - "reverse_64": "0x0202043f", - "reverse_bd_addr": "0x02020445", - "reverse_bytes": "0x0202044b", - "sm_add_event_handler": "0x020207a9", - "sm_address_resolution_lookup": "0x02020901", - "sm_authenticated": "0x02020c7d", - "sm_authorization_decline": "0x02020c8b", - "sm_authorization_grant": "0x02020cab", - "sm_authorization_state": "0x02020ccb", - "sm_bonding_decline": "0x02020ce5", - "sm_config": "0x02021139", - "sm_config_conn": "0x02021151", - "sm_encryption_key_size": "0x02021307", - "sm_just_works_confirm": "0x0202188d", - "sm_le_device_key": "0x02021bc5", - "sm_passkey_input": "0x02021c5b", - "sm_private_random_address_generation_get": "0x02022015", - "sm_private_random_address_generation_get_mode": "0x0202201d", - "sm_private_random_address_generation_set_mode": "0x02022029", - "sm_private_random_address_generation_set_update_period": "0x02022051", - "sm_register_external_ltk_callback": "0x0202218d", - "sm_register_oob_data_callback": "0x02022199", - "sm_request_pairing": "0x020221a5", - "sm_send_security_request": "0x02022c7b", - "sm_set_accepted_stk_generation_methods": "0x02022ca1", - "sm_set_authentication_requirements": "0x02022cad", - "sm_set_encryption_key_size_range": "0x02022cb9", - "sscanf_bd_addr": "0x02023019", - "sysSetPublicDeviceAddr": "0x02023545", - "uuid128_to_str": "0x02023da1", - "uuid_add_bluetooth_prefix": "0x02023df9", - "uuid_has_bluetooth_prefix": "0x02023e19", - "uxListRemove": "0x02023e35", - "uxQueueMessagesWaiting": "0x02023e5d", - "uxQueueMessagesWaitingFromISR": "0x02023e85", - "uxQueueSpacesAvailable": "0x02023ea1", - "uxTaskGetStackHighWaterMark": "0x02023ecd", - "uxTaskPriorityGet": "0x02023eed", - "uxTaskPriorityGetFromISR": "0x02023f09", - "vListInitialise": "0x02023fc7", - "vListInitialiseItem": "0x02023fdd", - "vListInsert": "0x02023fe3", - "vListInsertEnd": "0x02024013", - "vPortEndScheduler": "0x0202402d", - "vPortEnterCritical": "0x02024059", - "vPortExitCritical": "0x0202409d", - "vPortFree": "0x020240d1", - "vPortSuppressTicksAndSleep": "0x02024175", - "vPortValidateInterruptPriority": "0x0202429d", - "vQueueDelete": "0x020242f9", - "vQueueWaitForMessageRestricted": "0x02024325", - "vTaskDelay": "0x02024369", - "vTaskInternalSetTimeOutState": "0x020243b5", - "vTaskMissedYield": "0x020243c5", - "vTaskPlaceOnEventList": "0x020243d1", - "vTaskPlaceOnEventListRestricted": "0x02024409", - "vTaskPriorityDisinheritAfterTimeout": "0x02024449", - "vTaskPrioritySet": "0x020244f5", - "vTaskResume": "0x020245bd", - "vTaskStartScheduler": "0x02024641", - "vTaskStepTick": "0x020246d1", - "vTaskSuspend": "0x02024701", - "vTaskSuspendAll": "0x020247bd", - "vTaskSwitchContext": "0x020247cd", - "xPortStartScheduler": "0x0202487d", - "xQueueAddToSet": "0x02024981", - "xQueueCreateCountingSemaphore": "0x020249a5", - "xQueueCreateCountingSemaphoreStatic": "0x020249e1", - "xQueueCreateMutex": "0x02024a25", - "xQueueCreateMutexStatic": "0x02024a3b", - "xQueueCreateSet": "0x02024a55", - "xQueueGenericCreate": "0x02024a5d", - "xQueueGenericCreateStatic": "0x02024aa9", - "xQueueGenericReset": "0x02024b11", - "xQueueGenericSend": "0x02024b9d", - "xQueueGenericSendFromISR": "0x02024d09", - "xQueueGiveFromISR": "0x02024dc9", - "xQueueGiveMutexRecursive": "0x02024e6d", - "xQueueIsQueueEmptyFromISR": "0x02024ead", - "xQueueIsQueueFullFromISR": "0x02024ed1", - "xQueuePeek": "0x02024ef9", - "xQueuePeekFromISR": "0x02025021", - "xQueueReceive": "0x0202508d", - "xQueueReceiveFromISR": "0x020251b9", - "xQueueRemoveFromSet": "0x0202524d", - "xQueueSelectFromSet": "0x0202526f", - "xQueueSelectFromSetFromISR": "0x02025281", - "xQueueSemaphoreTake": "0x02025295", - "xQueueTakeMutexRecursive": "0x02025401", - "xTaskCheckForTimeOut": "0x02025445", - "xTaskCreate": "0x020254b5", - "xTaskCreateStatic": "0x02025511", - "xTaskGetCurrentTaskHandle": "0x02025581", - "xTaskGetSchedulerState": "0x0202558d", - "xTaskGetTickCount": "0x020255a9", - "xTaskGetTickCountFromISR": "0x020255b5", - "xTaskIncrementTick": "0x020255c5", - "xTaskPriorityDisinherit": "0x02025691", - "xTaskPriorityInherit": "0x02025725", - "xTaskRemoveFromEventList": "0x020257b9", - "xTaskResumeAll": "0x02025839", - "xTaskResumeFromISR": "0x02025901", - "xTimerCreate": "0x0202598d", - "xTimerCreateStatic": "0x020259c1", - "xTimerCreateTimerTask": "0x020259f9", - "xTimerGenericCommand": "0x02025a65", - "xTimerGetExpiryTime": "0x02025ad5", - "xTimerGetTimerDaemonTaskHandle": "0x02025af5" + "platform_rt_rc_tune": "0x0201f39d", + "platform_set_abs_timer": "0x0201f3b9", + "platform_set_evt_callback": "0x0201f3bd", + "platform_set_evt_callback_table": "0x0201f3d1", + "platform_set_irq_callback": "0x0201f3dd", + "platform_set_irq_callback_table": "0x0201f3f9", + "platform_set_rf_clk_source": "0x0201f405", + "platform_set_rf_init_data": "0x0201f411", + "platform_set_rf_power_mapping": "0x0201f41d", + "platform_set_timer": "0x0201f429", + "platform_shutdown": "0x0201f42d", + "platform_switch_app": "0x0201f431", + "platform_trace_raw": "0x0201f449", + "platform_write_persistent_reg": "0x0201f461", + "printf_hexdump": "0x0201f619", + "pvPortMalloc": "0x020200f1", + "pvTaskIncrementMutexHeldCount": "0x020201d9", + "pvTimerGetTimerID": "0x020201f1", + "pxPortInitialiseStack": "0x0202021d", + "reverse_128": "0x02020405", + "reverse_24": "0x0202040b", + "reverse_256": "0x02020411", + "reverse_48": "0x02020417", + "reverse_56": "0x0202041d", + "reverse_64": "0x02020423", + "reverse_bd_addr": "0x02020429", + "reverse_bytes": "0x0202042f", + "sm_add_event_handler": "0x0202078d", + "sm_address_resolution_lookup": "0x020208e5", + "sm_authenticated": "0x02020c61", + "sm_authorization_decline": "0x02020c6f", + "sm_authorization_grant": "0x02020c8f", + "sm_authorization_state": "0x02020caf", + "sm_bonding_decline": "0x02020cc9", + "sm_config": "0x0202111d", + "sm_config_conn": "0x02021135", + "sm_encryption_key_size": "0x020212eb", + "sm_just_works_confirm": "0x02021871", + "sm_le_device_key": "0x02021ba9", + "sm_passkey_input": "0x02021c3f", + "sm_private_random_address_generation_get": "0x02021ff9", + "sm_private_random_address_generation_get_mode": "0x02022001", + "sm_private_random_address_generation_set_mode": "0x0202200d", + "sm_private_random_address_generation_set_update_period": "0x02022035", + "sm_register_external_ltk_callback": "0x02022171", + "sm_register_oob_data_callback": "0x0202217d", + "sm_request_pairing": "0x02022189", + "sm_send_security_request": "0x02022c5f", + "sm_set_accepted_stk_generation_methods": "0x02022c85", + "sm_set_authentication_requirements": "0x02022c91", + "sm_set_encryption_key_size_range": "0x02022c9d", + "sscanf_bd_addr": "0x02022ffd", + "sysSetPublicDeviceAddr": "0x02023529", + "uuid128_to_str": "0x02023d85", + "uuid_add_bluetooth_prefix": "0x02023ddd", + "uuid_has_bluetooth_prefix": "0x02023dfd", + "uxListRemove": "0x02023e19", + "uxQueueMessagesWaiting": "0x02023e41", + "uxQueueMessagesWaitingFromISR": "0x02023e69", + "uxQueueSpacesAvailable": "0x02023e85", + "uxTaskGetStackHighWaterMark": "0x02023eb1", + "uxTaskPriorityGet": "0x02023ed1", + "uxTaskPriorityGetFromISR": "0x02023eed", + "vListInitialise": "0x02023fab", + "vListInitialiseItem": "0x02023fc1", + "vListInsert": "0x02023fc7", + "vListInsertEnd": "0x02023ff7", + "vPortEndScheduler": "0x02024011", + "vPortEnterCritical": "0x0202403d", + "vPortExitCritical": "0x02024081", + "vPortFree": "0x020240b5", + "vPortSuppressTicksAndSleep": "0x02024159", + "vPortValidateInterruptPriority": "0x02024281", + "vQueueDelete": "0x020242dd", + "vQueueWaitForMessageRestricted": "0x02024309", + "vTaskDelay": "0x0202434d", + "vTaskInternalSetTimeOutState": "0x02024399", + "vTaskMissedYield": "0x020243a9", + "vTaskPlaceOnEventList": "0x020243b5", + "vTaskPlaceOnEventListRestricted": "0x020243ed", + "vTaskPriorityDisinheritAfterTimeout": "0x0202442d", + "vTaskPrioritySet": "0x020244d9", + "vTaskResume": "0x020245a1", + "vTaskStartScheduler": "0x02024625", + "vTaskStepTick": "0x020246b5", + "vTaskSuspend": "0x020246e5", + "vTaskSuspendAll": "0x020247a1", + "vTaskSwitchContext": "0x020247b1", + "xPortStartScheduler": "0x02024861", + "xQueueAddToSet": "0x02024965", + "xQueueCreateCountingSemaphore": "0x02024989", + "xQueueCreateCountingSemaphoreStatic": "0x020249c5", + "xQueueCreateMutex": "0x02024a09", + "xQueueCreateMutexStatic": "0x02024a1f", + "xQueueCreateSet": "0x02024a39", + "xQueueGenericCreate": "0x02024a41", + "xQueueGenericCreateStatic": "0x02024a8d", + "xQueueGenericReset": "0x02024af5", + "xQueueGenericSend": "0x02024b81", + "xQueueGenericSendFromISR": "0x02024ced", + "xQueueGiveFromISR": "0x02024dad", + "xQueueGiveMutexRecursive": "0x02024e51", + "xQueueIsQueueEmptyFromISR": "0x02024e91", + "xQueueIsQueueFullFromISR": "0x02024eb5", + "xQueuePeek": "0x02024edd", + "xQueuePeekFromISR": "0x02025005", + "xQueueReceive": "0x02025071", + "xQueueReceiveFromISR": "0x0202519d", + "xQueueRemoveFromSet": "0x02025231", + "xQueueSelectFromSet": "0x02025253", + "xQueueSelectFromSetFromISR": "0x02025265", + "xQueueSemaphoreTake": "0x02025279", + "xQueueTakeMutexRecursive": "0x020253e5", + "xTaskCheckForTimeOut": "0x02025429", + "xTaskCreate": "0x02025499", + "xTaskCreateStatic": "0x020254f5", + "xTaskGetCurrentTaskHandle": "0x02025565", + "xTaskGetSchedulerState": "0x02025571", + "xTaskGetTickCount": "0x0202558d", + "xTaskGetTickCountFromISR": "0x02025599", + "xTaskIncrementTick": "0x020255a9", + "xTaskPriorityDisinherit": "0x02025675", + "xTaskPriorityInherit": "0x02025709", + "xTaskRemoveFromEventList": "0x0202579d", + "xTaskResumeAll": "0x0202581d", + "xTaskResumeFromISR": "0x020258e5", + "xTimerCreate": "0x02025971", + "xTimerCreateStatic": "0x020259a5", + "xTimerCreateTimerTask": "0x020259dd", + "xTimerGenericCommand": "0x02025a49", + "xTimerGetExpiryTime": "0x02025ab9", + "xTimerGetTimerDaemonTaskHandle": "0x02025ad9" } \ No newline at end of file diff --git a/bundles/mass_conn/ING9168xx/meta.json b/bundles/mass_conn/ING9168xx/meta.json index fafa28e8f..9c66f81a9 100644 --- a/bundles/mass_conn/ING9168xx/meta.json +++ b/bundles/mass_conn/ING9168xx/meta.json @@ -8,7 +8,7 @@ }, "rom": { "base": 33562624, - "size": 155352 + "size": 155320 }, "version": [ 2, diff --git a/bundles/mass_conn/ING9168xx/platform.bin b/bundles/mass_conn/ING9168xx/platform.bin index f1faf4a5709851ce1b4c40f0938a0b1c330cc8ce..89db6dfeb8f33936e6b04543357cfe7c912a62b1 100644 GIT binary patch delta 9061 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 delta 9089 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 diff --git a/bundles/mass_conn/ING9187xx/apis.json b/bundles/mass_conn/ING9187xx/apis.json index d32bef08b..5d5d407b2 100644 --- a/bundles/mass_conn/ING9187xx/apis.json +++ b/bundles/mass_conn/ING9187xx/apis.json @@ -197,136 +197,136 @@ "platform_reset": "0x0001d831", "platform_rt_rc_auto_tune": "0x0001d855", "platform_rt_rc_auto_tune2": "0x0001d85d", - "platform_rt_rc_tune": "0x0001d901", - "platform_set_abs_timer": "0x0001d915", - "platform_set_evt_callback": "0x0001d919", - "platform_set_evt_callback_table": "0x0001d92d", - "platform_set_irq_callback": "0x0001d939", - "platform_set_irq_callback_table": "0x0001d955", - "platform_set_rf_clk_source": "0x0001d961", - "platform_set_rf_init_data": "0x0001d96d", - "platform_set_rf_power_mapping": "0x0001d979", - "platform_set_timer": "0x0001d985", - "platform_shutdown": "0x0001d989", - "platform_switch_app": "0x0001d98d", - "platform_trace_raw": "0x0001d9b9", - "platform_write_persistent_reg": "0x0001d9d1", - "printf_hexdump": "0x0001db85", - "pvPortMalloc": "0x0001e679", - "pvTaskIncrementMutexHeldCount": "0x0001e761", - "pvTimerGetTimerID": "0x0001e779", - "pxPortInitialiseStack": "0x0001e7a5", - "reverse_128": "0x0001e94d", - "reverse_24": "0x0001e953", - "reverse_256": "0x0001e959", - "reverse_48": "0x0001e95f", - "reverse_56": "0x0001e965", - "reverse_64": "0x0001e96b", - "reverse_bd_addr": "0x0001e971", - "reverse_bytes": "0x0001e977", - "sm_add_event_handler": "0x0001eb15", - "sm_address_resolution_lookup": "0x0001ec6d", - "sm_authenticated": "0x0001efe9", - "sm_authorization_decline": "0x0001eff7", - "sm_authorization_grant": "0x0001f017", - "sm_authorization_state": "0x0001f037", - "sm_bonding_decline": "0x0001f051", - "sm_config": "0x0001f4ad", - "sm_config_conn": "0x0001f4c5", - "sm_encryption_key_size": "0x0001f67b", - "sm_just_works_confirm": "0x0001fc01", - "sm_le_device_key": "0x0001ff39", - "sm_passkey_input": "0x0001ffcf", - "sm_private_random_address_generation_get": "0x00020389", - "sm_private_random_address_generation_get_mode": "0x00020391", - "sm_private_random_address_generation_set_mode": "0x0002039d", - "sm_private_random_address_generation_set_update_period": "0x000203c5", - "sm_register_external_ltk_callback": "0x00020501", - "sm_register_oob_data_callback": "0x0002050d", - "sm_request_pairing": "0x00020519", - "sm_send_security_request": "0x00020fef", - "sm_set_accepted_stk_generation_methods": "0x00021015", - "sm_set_authentication_requirements": "0x00021021", - "sm_set_encryption_key_size_range": "0x0002102d", - "sscanf_bd_addr": "0x00021389", - "sysSetPublicDeviceAddr": "0x0002173d", - "uuid128_to_str": "0x00021d51", - "uuid_add_bluetooth_prefix": "0x00021da9", - "uuid_has_bluetooth_prefix": "0x00021dc9", - "uxListRemove": "0x00021de5", - "uxQueueMessagesWaiting": "0x00021e0d", - "uxQueueMessagesWaitingFromISR": "0x00021e35", - "uxQueueSpacesAvailable": "0x00021e51", - "uxTaskGetStackHighWaterMark": "0x00021e7d", - "uxTaskPriorityGet": "0x00021e9d", - "uxTaskPriorityGetFromISR": "0x00021eb9", - "vListInitialise": "0x00021f73", - "vListInitialiseItem": "0x00021f89", - "vListInsert": "0x00021f8f", - "vListInsertEnd": "0x00021fbf", - "vPortEndScheduler": "0x00021fd9", - "vPortEnterCritical": "0x00022005", - "vPortExitCritical": "0x00022049", - "vPortFree": "0x0002207d", - "vPortSuppressTicksAndSleep": "0x00022111", - "vPortValidateInterruptPriority": "0x00022239", - "vQueueDelete": "0x00022295", - "vQueueWaitForMessageRestricted": "0x000222c1", - "vTaskDelay": "0x00022309", - "vTaskInternalSetTimeOutState": "0x00022355", - "vTaskMissedYield": "0x00022365", - "vTaskPlaceOnEventList": "0x00022371", - "vTaskPlaceOnEventListRestricted": "0x000223a9", - "vTaskPriorityDisinheritAfterTimeout": "0x000223e9", - "vTaskPrioritySet": "0x00022495", - "vTaskResume": "0x0002255d", - "vTaskStartScheduler": "0x000225e1", - "vTaskStepTick": "0x00022671", - "vTaskSuspend": "0x000226a1", - "vTaskSuspendAll": "0x0002275d", - "vTaskSwitchContext": "0x0002276d", - "xPortStartScheduler": "0x0002281d", - "xQueueAddToSet": "0x000228e5", - "xQueueCreateCountingSemaphore": "0x00022909", - "xQueueCreateCountingSemaphoreStatic": "0x00022945", - "xQueueCreateMutex": "0x00022989", - "xQueueCreateMutexStatic": "0x0002299f", - "xQueueCreateSet": "0x000229b9", - "xQueueGenericCreate": "0x000229c1", - "xQueueGenericCreateStatic": "0x00022a0d", - "xQueueGenericReset": "0x00022a75", - "xQueueGenericSend": "0x00022b01", - "xQueueGenericSendFromISR": "0x00022c6d", - "xQueueGiveFromISR": "0x00022d2d", - "xQueueGiveMutexRecursive": "0x00022dd1", - "xQueueIsQueueEmptyFromISR": "0x00022e11", - "xQueueIsQueueFullFromISR": "0x00022e35", - "xQueuePeek": "0x00022e5d", - "xQueuePeekFromISR": "0x00022f85", - "xQueueReceive": "0x00022ff1", - "xQueueReceiveFromISR": "0x0002311d", - "xQueueRemoveFromSet": "0x000231b1", - "xQueueSelectFromSet": "0x000231d3", - "xQueueSelectFromSetFromISR": "0x000231e5", - "xQueueSemaphoreTake": "0x000231f9", - "xQueueTakeMutexRecursive": "0x00023365", - "xTaskCheckForTimeOut": "0x000233a9", - "xTaskCreate": "0x00023419", - "xTaskCreateStatic": "0x00023475", - "xTaskGetCurrentTaskHandle": "0x000234e5", - "xTaskGetSchedulerState": "0x000234f1", - "xTaskGetTickCount": "0x0002350d", - "xTaskGetTickCountFromISR": "0x00023519", - "xTaskIncrementTick": "0x00023529", - "xTaskPriorityDisinherit": "0x000235f5", - "xTaskPriorityInherit": "0x00023689", - "xTaskRemoveFromEventList": "0x0002371d", - "xTaskResumeAll": "0x0002379d", - "xTaskResumeFromISR": "0x00023865", - "xTimerCreate": "0x000238f1", - "xTimerCreateStatic": "0x00023925", - "xTimerCreateTimerTask": "0x0002395d", - "xTimerGenericCommand": "0x000239c9", - "xTimerGetExpiryTime": "0x00023a39", - "xTimerGetTimerDaemonTaskHandle": "0x00023a59" + "platform_rt_rc_tune": "0x0001d8e5", + "platform_set_abs_timer": "0x0001d8f9", + "platform_set_evt_callback": "0x0001d8fd", + "platform_set_evt_callback_table": "0x0001d911", + "platform_set_irq_callback": "0x0001d91d", + "platform_set_irq_callback_table": "0x0001d939", + "platform_set_rf_clk_source": "0x0001d945", + "platform_set_rf_init_data": "0x0001d951", + "platform_set_rf_power_mapping": "0x0001d95d", + "platform_set_timer": "0x0001d969", + "platform_shutdown": "0x0001d96d", + "platform_switch_app": "0x0001d971", + "platform_trace_raw": "0x0001d99d", + "platform_write_persistent_reg": "0x0001d9b5", + "printf_hexdump": "0x0001db69", + "pvPortMalloc": "0x0001e65d", + "pvTaskIncrementMutexHeldCount": "0x0001e745", + "pvTimerGetTimerID": "0x0001e75d", + "pxPortInitialiseStack": "0x0001e789", + "reverse_128": "0x0001e931", + "reverse_24": "0x0001e937", + "reverse_256": "0x0001e93d", + "reverse_48": "0x0001e943", + "reverse_56": "0x0001e949", + "reverse_64": "0x0001e94f", + "reverse_bd_addr": "0x0001e955", + "reverse_bytes": "0x0001e95b", + "sm_add_event_handler": "0x0001eaf9", + "sm_address_resolution_lookup": "0x0001ec51", + "sm_authenticated": "0x0001efcd", + "sm_authorization_decline": "0x0001efdb", + "sm_authorization_grant": "0x0001effb", + "sm_authorization_state": "0x0001f01b", + "sm_bonding_decline": "0x0001f035", + "sm_config": "0x0001f491", + "sm_config_conn": "0x0001f4a9", + "sm_encryption_key_size": "0x0001f65f", + "sm_just_works_confirm": "0x0001fbe5", + "sm_le_device_key": "0x0001ff1d", + "sm_passkey_input": "0x0001ffb3", + "sm_private_random_address_generation_get": "0x0002036d", + "sm_private_random_address_generation_get_mode": "0x00020375", + "sm_private_random_address_generation_set_mode": "0x00020381", + "sm_private_random_address_generation_set_update_period": "0x000203a9", + "sm_register_external_ltk_callback": "0x000204e5", + "sm_register_oob_data_callback": "0x000204f1", + "sm_request_pairing": "0x000204fd", + "sm_send_security_request": "0x00020fd3", + "sm_set_accepted_stk_generation_methods": "0x00020ff9", + "sm_set_authentication_requirements": "0x00021005", + "sm_set_encryption_key_size_range": "0x00021011", + "sscanf_bd_addr": "0x0002136d", + "sysSetPublicDeviceAddr": "0x00021721", + "uuid128_to_str": "0x00021d35", + "uuid_add_bluetooth_prefix": "0x00021d8d", + "uuid_has_bluetooth_prefix": "0x00021dad", + "uxListRemove": "0x00021dc9", + "uxQueueMessagesWaiting": "0x00021df1", + "uxQueueMessagesWaitingFromISR": "0x00021e19", + "uxQueueSpacesAvailable": "0x00021e35", + "uxTaskGetStackHighWaterMark": "0x00021e61", + "uxTaskPriorityGet": "0x00021e81", + "uxTaskPriorityGetFromISR": "0x00021e9d", + "vListInitialise": "0x00021f57", + "vListInitialiseItem": "0x00021f6d", + "vListInsert": "0x00021f73", + "vListInsertEnd": "0x00021fa3", + "vPortEndScheduler": "0x00021fbd", + "vPortEnterCritical": "0x00021fe9", + "vPortExitCritical": "0x0002202d", + "vPortFree": "0x00022061", + "vPortSuppressTicksAndSleep": "0x000220f5", + "vPortValidateInterruptPriority": "0x0002221d", + "vQueueDelete": "0x00022279", + "vQueueWaitForMessageRestricted": "0x000222a5", + "vTaskDelay": "0x000222ed", + "vTaskInternalSetTimeOutState": "0x00022339", + "vTaskMissedYield": "0x00022349", + "vTaskPlaceOnEventList": "0x00022355", + "vTaskPlaceOnEventListRestricted": "0x0002238d", + "vTaskPriorityDisinheritAfterTimeout": "0x000223cd", + "vTaskPrioritySet": "0x00022479", + "vTaskResume": "0x00022541", + "vTaskStartScheduler": "0x000225c5", + "vTaskStepTick": "0x00022655", + "vTaskSuspend": "0x00022685", + "vTaskSuspendAll": "0x00022741", + "vTaskSwitchContext": "0x00022751", + "xPortStartScheduler": "0x00022801", + "xQueueAddToSet": "0x000228c9", + "xQueueCreateCountingSemaphore": "0x000228ed", + "xQueueCreateCountingSemaphoreStatic": "0x00022929", + "xQueueCreateMutex": "0x0002296d", + "xQueueCreateMutexStatic": "0x00022983", + "xQueueCreateSet": "0x0002299d", + "xQueueGenericCreate": "0x000229a5", + "xQueueGenericCreateStatic": "0x000229f1", + "xQueueGenericReset": "0x00022a59", + "xQueueGenericSend": "0x00022ae5", + "xQueueGenericSendFromISR": "0x00022c51", + "xQueueGiveFromISR": "0x00022d11", + "xQueueGiveMutexRecursive": "0x00022db5", + "xQueueIsQueueEmptyFromISR": "0x00022df5", + "xQueueIsQueueFullFromISR": "0x00022e19", + "xQueuePeek": "0x00022e41", + "xQueuePeekFromISR": "0x00022f69", + "xQueueReceive": "0x00022fd5", + "xQueueReceiveFromISR": "0x00023101", + "xQueueRemoveFromSet": "0x00023195", + "xQueueSelectFromSet": "0x000231b7", + "xQueueSelectFromSetFromISR": "0x000231c9", + "xQueueSemaphoreTake": "0x000231dd", + "xQueueTakeMutexRecursive": "0x00023349", + "xTaskCheckForTimeOut": "0x0002338d", + "xTaskCreate": "0x000233fd", + "xTaskCreateStatic": "0x00023459", + "xTaskGetCurrentTaskHandle": "0x000234c9", + "xTaskGetSchedulerState": "0x000234d5", + "xTaskGetTickCount": "0x000234f1", + "xTaskGetTickCountFromISR": "0x000234fd", + "xTaskIncrementTick": "0x0002350d", + "xTaskPriorityDisinherit": "0x000235d9", + "xTaskPriorityInherit": "0x0002366d", + "xTaskRemoveFromEventList": "0x00023701", + "xTaskResumeAll": "0x00023781", + "xTaskResumeFromISR": "0x00023849", + "xTimerCreate": "0x000238d5", + "xTimerCreateStatic": "0x00023909", + "xTimerCreateTimerTask": "0x00023941", + "xTimerGenericCommand": "0x000239ad", + "xTimerGetExpiryTime": "0x00023a1d", + "xTimerGetTimerDaemonTaskHandle": "0x00023a3d" } \ No newline at end of file diff --git a/bundles/mass_conn/ING9187xx/meta.json b/bundles/mass_conn/ING9187xx/meta.json index 4197bbb20..eaf055ecd 100644 --- a/bundles/mass_conn/ING9187xx/meta.json +++ b/bundles/mass_conn/ING9187xx/meta.json @@ -8,7 +8,7 @@ }, "rom": { "base": 16384, - "size": 135900 + "size": 135872 }, "version": [ 1, diff --git a/bundles/mass_conn/ING9187xx/platform.bin b/bundles/mass_conn/ING9187xx/platform.bin index 00fd19c846e28ec3f784e5e94fe3f72ec2bed76f..cbda6dacd5228b6df5b5911b9b1670514abc7071 100644 GIT binary patch delta 8087 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 EABBltZ2$lO diff --git a/bundles/mass_conn/ING9188xx/apis.json b/bundles/mass_conn/ING9188xx/apis.json index 88bd9b87b..81e96a00f 100644 --- a/bundles/mass_conn/ING9188xx/apis.json +++ b/bundles/mass_conn/ING9188xx/apis.json @@ -211,136 +211,136 @@ "platform_reset": "0x0001eae9", "platform_rt_rc_auto_tune": "0x0001eb0d", "platform_rt_rc_auto_tune2": "0x0001eb15", - "platform_rt_rc_tune": "0x0001ebb9", - "platform_set_abs_timer": "0x0001ebcd", - "platform_set_evt_callback": "0x0001ebd1", - "platform_set_evt_callback_table": "0x0001ebe5", - "platform_set_irq_callback": "0x0001ebf1", - "platform_set_irq_callback_table": "0x0001ec0d", - "platform_set_rf_clk_source": "0x0001ec19", - "platform_set_rf_init_data": "0x0001ec25", - "platform_set_rf_power_mapping": "0x0001ec31", - "platform_set_timer": "0x0001ec3d", - "platform_shutdown": "0x0001ec41", - "platform_switch_app": "0x0001ec45", - "platform_trace_raw": "0x0001ec71", - "platform_write_persistent_reg": "0x0001ec89", - "printf_hexdump": "0x0001ee3d", - "pvPortMalloc": "0x0001f931", - "pvTaskIncrementMutexHeldCount": "0x0001fa19", - "pvTimerGetTimerID": "0x0001fa31", - "pxPortInitialiseStack": "0x0001fa5d", - "reverse_128": "0x0001fc3d", - "reverse_24": "0x0001fc43", - "reverse_256": "0x0001fc49", - "reverse_48": "0x0001fc4f", - "reverse_56": "0x0001fc55", - "reverse_64": "0x0001fc5b", - "reverse_bd_addr": "0x0001fc61", - "reverse_bytes": "0x0001fc67", - "sm_add_event_handler": "0x0001ff55", - "sm_address_resolution_lookup": "0x000200ad", - "sm_authenticated": "0x00020429", - "sm_authorization_decline": "0x00020437", - "sm_authorization_grant": "0x00020457", - "sm_authorization_state": "0x00020477", - "sm_bonding_decline": "0x00020491", - "sm_config": "0x000208ed", - "sm_config_conn": "0x00020905", - "sm_encryption_key_size": "0x00020abb", - "sm_just_works_confirm": "0x00021041", - "sm_le_device_key": "0x00021379", - "sm_passkey_input": "0x0002140f", - "sm_private_random_address_generation_get": "0x000217c9", - "sm_private_random_address_generation_get_mode": "0x000217d1", - "sm_private_random_address_generation_set_mode": "0x000217dd", - "sm_private_random_address_generation_set_update_period": "0x00021805", - "sm_register_external_ltk_callback": "0x00021941", - "sm_register_oob_data_callback": "0x0002194d", - "sm_request_pairing": "0x00021959", - "sm_send_security_request": "0x0002242f", - "sm_set_accepted_stk_generation_methods": "0x00022455", - "sm_set_authentication_requirements": "0x00022461", - "sm_set_encryption_key_size_range": "0x0002246d", - "sscanf_bd_addr": "0x000227c9", - "sysSetPublicDeviceAddr": "0x00022b7d", - "uuid128_to_str": "0x00023329", - "uuid_add_bluetooth_prefix": "0x00023381", - "uuid_has_bluetooth_prefix": "0x000233a1", - "uxListRemove": "0x000233bd", - "uxQueueMessagesWaiting": "0x000233e5", - "uxQueueMessagesWaitingFromISR": "0x0002340d", - "uxQueueSpacesAvailable": "0x00023429", - "uxTaskGetStackHighWaterMark": "0x00023455", - "uxTaskPriorityGet": "0x00023475", - "uxTaskPriorityGetFromISR": "0x00023491", - "vListInitialise": "0x0002354b", - "vListInitialiseItem": "0x00023561", - "vListInsert": "0x00023567", - "vListInsertEnd": "0x00023597", - "vPortEndScheduler": "0x000235b1", - "vPortEnterCritical": "0x000235dd", - "vPortExitCritical": "0x00023621", - "vPortFree": "0x00023655", - "vPortSuppressTicksAndSleep": "0x000236e9", - "vPortValidateInterruptPriority": "0x00023811", - "vQueueDelete": "0x0002386d", - "vQueueWaitForMessageRestricted": "0x00023899", - "vTaskDelay": "0x000238e1", - "vTaskInternalSetTimeOutState": "0x0002392d", - "vTaskMissedYield": "0x0002393d", - "vTaskPlaceOnEventList": "0x00023949", - "vTaskPlaceOnEventListRestricted": "0x00023981", - "vTaskPriorityDisinheritAfterTimeout": "0x000239c1", - "vTaskPrioritySet": "0x00023a6d", - "vTaskResume": "0x00023b35", - "vTaskStartScheduler": "0x00023bb9", - "vTaskStepTick": "0x00023c49", - "vTaskSuspend": "0x00023c79", - "vTaskSuspendAll": "0x00023d35", - "vTaskSwitchContext": "0x00023d45", - "xPortStartScheduler": "0x00023df5", - "xQueueAddToSet": "0x00023ebd", - "xQueueCreateCountingSemaphore": "0x00023ee1", - "xQueueCreateCountingSemaphoreStatic": "0x00023f1d", - "xQueueCreateMutex": "0x00023f61", - "xQueueCreateMutexStatic": "0x00023f77", - "xQueueCreateSet": "0x00023f91", - "xQueueGenericCreate": "0x00023f99", - "xQueueGenericCreateStatic": "0x00023fe5", - "xQueueGenericReset": "0x0002404d", - "xQueueGenericSend": "0x000240d9", - "xQueueGenericSendFromISR": "0x00024245", - "xQueueGiveFromISR": "0x00024305", - "xQueueGiveMutexRecursive": "0x000243a9", - "xQueueIsQueueEmptyFromISR": "0x000243e9", - "xQueueIsQueueFullFromISR": "0x0002440d", - "xQueuePeek": "0x00024435", - "xQueuePeekFromISR": "0x0002455d", - "xQueueReceive": "0x000245c9", - "xQueueReceiveFromISR": "0x000246f5", - "xQueueRemoveFromSet": "0x00024789", - "xQueueSelectFromSet": "0x000247ab", - "xQueueSelectFromSetFromISR": "0x000247bd", - "xQueueSemaphoreTake": "0x000247d1", - "xQueueTakeMutexRecursive": "0x0002493d", - "xTaskCheckForTimeOut": "0x00024981", - "xTaskCreate": "0x000249f1", - "xTaskCreateStatic": "0x00024a4d", - "xTaskGetCurrentTaskHandle": "0x00024abd", - "xTaskGetSchedulerState": "0x00024ac9", - "xTaskGetTickCount": "0x00024ae5", - "xTaskGetTickCountFromISR": "0x00024af1", - "xTaskIncrementTick": "0x00024b01", - "xTaskPriorityDisinherit": "0x00024bcd", - "xTaskPriorityInherit": "0x00024c61", - "xTaskRemoveFromEventList": "0x00024cf5", - "xTaskResumeAll": "0x00024d75", - "xTaskResumeFromISR": "0x00024e3d", - "xTimerCreate": "0x00024ec9", - "xTimerCreateStatic": "0x00024efd", - "xTimerCreateTimerTask": "0x00024f35", - "xTimerGenericCommand": "0x00024fa1", - "xTimerGetExpiryTime": "0x00025011", - "xTimerGetTimerDaemonTaskHandle": "0x00025031" + "platform_rt_rc_tune": "0x0001eb9d", + "platform_set_abs_timer": "0x0001ebb1", + "platform_set_evt_callback": "0x0001ebb5", + "platform_set_evt_callback_table": "0x0001ebc9", + "platform_set_irq_callback": "0x0001ebd5", + "platform_set_irq_callback_table": "0x0001ebf1", + "platform_set_rf_clk_source": "0x0001ebfd", + "platform_set_rf_init_data": "0x0001ec09", + "platform_set_rf_power_mapping": "0x0001ec15", + "platform_set_timer": "0x0001ec21", + "platform_shutdown": "0x0001ec25", + "platform_switch_app": "0x0001ec29", + "platform_trace_raw": "0x0001ec55", + "platform_write_persistent_reg": "0x0001ec6d", + "printf_hexdump": "0x0001ee21", + "pvPortMalloc": "0x0001f915", + "pvTaskIncrementMutexHeldCount": "0x0001f9fd", + "pvTimerGetTimerID": "0x0001fa15", + "pxPortInitialiseStack": "0x0001fa41", + "reverse_128": "0x0001fc21", + "reverse_24": "0x0001fc27", + "reverse_256": "0x0001fc2d", + "reverse_48": "0x0001fc33", + "reverse_56": "0x0001fc39", + "reverse_64": "0x0001fc3f", + "reverse_bd_addr": "0x0001fc45", + "reverse_bytes": "0x0001fc4b", + "sm_add_event_handler": "0x0001ff39", + "sm_address_resolution_lookup": "0x00020091", + "sm_authenticated": "0x0002040d", + "sm_authorization_decline": "0x0002041b", + "sm_authorization_grant": "0x0002043b", + "sm_authorization_state": "0x0002045b", + "sm_bonding_decline": "0x00020475", + "sm_config": "0x000208d1", + "sm_config_conn": "0x000208e9", + "sm_encryption_key_size": "0x00020a9f", + "sm_just_works_confirm": "0x00021025", + "sm_le_device_key": "0x0002135d", + "sm_passkey_input": "0x000213f3", + "sm_private_random_address_generation_get": "0x000217ad", + "sm_private_random_address_generation_get_mode": "0x000217b5", + "sm_private_random_address_generation_set_mode": "0x000217c1", + "sm_private_random_address_generation_set_update_period": "0x000217e9", + "sm_register_external_ltk_callback": "0x00021925", + "sm_register_oob_data_callback": "0x00021931", + "sm_request_pairing": "0x0002193d", + "sm_send_security_request": "0x00022413", + "sm_set_accepted_stk_generation_methods": "0x00022439", + "sm_set_authentication_requirements": "0x00022445", + "sm_set_encryption_key_size_range": "0x00022451", + "sscanf_bd_addr": "0x000227ad", + "sysSetPublicDeviceAddr": "0x00022b61", + "uuid128_to_str": "0x0002330d", + "uuid_add_bluetooth_prefix": "0x00023365", + "uuid_has_bluetooth_prefix": "0x00023385", + "uxListRemove": "0x000233a1", + "uxQueueMessagesWaiting": "0x000233c9", + "uxQueueMessagesWaitingFromISR": "0x000233f1", + "uxQueueSpacesAvailable": "0x0002340d", + "uxTaskGetStackHighWaterMark": "0x00023439", + "uxTaskPriorityGet": "0x00023459", + "uxTaskPriorityGetFromISR": "0x00023475", + "vListInitialise": "0x0002352f", + "vListInitialiseItem": "0x00023545", + "vListInsert": "0x0002354b", + "vListInsertEnd": "0x0002357b", + "vPortEndScheduler": "0x00023595", + "vPortEnterCritical": "0x000235c1", + "vPortExitCritical": "0x00023605", + "vPortFree": "0x00023639", + "vPortSuppressTicksAndSleep": "0x000236cd", + "vPortValidateInterruptPriority": "0x000237f5", + "vQueueDelete": "0x00023851", + "vQueueWaitForMessageRestricted": "0x0002387d", + "vTaskDelay": "0x000238c5", + "vTaskInternalSetTimeOutState": "0x00023911", + "vTaskMissedYield": "0x00023921", + "vTaskPlaceOnEventList": "0x0002392d", + "vTaskPlaceOnEventListRestricted": "0x00023965", + "vTaskPriorityDisinheritAfterTimeout": "0x000239a5", + "vTaskPrioritySet": "0x00023a51", + "vTaskResume": "0x00023b19", + "vTaskStartScheduler": "0x00023b9d", + "vTaskStepTick": "0x00023c2d", + "vTaskSuspend": "0x00023c5d", + "vTaskSuspendAll": "0x00023d19", + "vTaskSwitchContext": "0x00023d29", + "xPortStartScheduler": "0x00023dd9", + "xQueueAddToSet": "0x00023ea1", + "xQueueCreateCountingSemaphore": "0x00023ec5", + "xQueueCreateCountingSemaphoreStatic": "0x00023f01", + "xQueueCreateMutex": "0x00023f45", + "xQueueCreateMutexStatic": "0x00023f5b", + "xQueueCreateSet": "0x00023f75", + "xQueueGenericCreate": "0x00023f7d", + "xQueueGenericCreateStatic": "0x00023fc9", + "xQueueGenericReset": "0x00024031", + "xQueueGenericSend": "0x000240bd", + "xQueueGenericSendFromISR": "0x00024229", + "xQueueGiveFromISR": "0x000242e9", + "xQueueGiveMutexRecursive": "0x0002438d", + "xQueueIsQueueEmptyFromISR": "0x000243cd", + "xQueueIsQueueFullFromISR": "0x000243f1", + "xQueuePeek": "0x00024419", + "xQueuePeekFromISR": "0x00024541", + "xQueueReceive": "0x000245ad", + "xQueueReceiveFromISR": "0x000246d9", + "xQueueRemoveFromSet": "0x0002476d", + "xQueueSelectFromSet": "0x0002478f", + "xQueueSelectFromSetFromISR": "0x000247a1", + "xQueueSemaphoreTake": "0x000247b5", + "xQueueTakeMutexRecursive": "0x00024921", + "xTaskCheckForTimeOut": "0x00024965", + "xTaskCreate": "0x000249d5", + "xTaskCreateStatic": "0x00024a31", + "xTaskGetCurrentTaskHandle": "0x00024aa1", + "xTaskGetSchedulerState": "0x00024aad", + "xTaskGetTickCount": "0x00024ac9", + "xTaskGetTickCountFromISR": "0x00024ad5", + "xTaskIncrementTick": "0x00024ae5", + "xTaskPriorityDisinherit": "0x00024bb1", + "xTaskPriorityInherit": "0x00024c45", + "xTaskRemoveFromEventList": "0x00024cd9", + "xTaskResumeAll": "0x00024d59", + "xTaskResumeFromISR": "0x00024e21", + "xTimerCreate": "0x00024ead", + "xTimerCreateStatic": "0x00024ee1", + "xTimerCreateTimerTask": "0x00024f19", + "xTimerGenericCommand": "0x00024f85", + "xTimerGetExpiryTime": "0x00024ff5", + "xTimerGetTimerDaemonTaskHandle": "0x00025015" } \ No newline at end of file diff --git a/bundles/mass_conn/ING9188xx/meta.json b/bundles/mass_conn/ING9188xx/meta.json index b4a6eb583..167df7d0e 100644 --- a/bundles/mass_conn/ING9188xx/meta.json +++ b/bundles/mass_conn/ING9188xx/meta.json @@ -8,7 +8,7 @@ }, "rom": { "base": 16384, - "size": 141948 + "size": 141920 }, "version": [ 1, diff --git a/bundles/mass_conn/ING9188xx/platform.bin b/bundles/mass_conn/ING9188xx/platform.bin index be0624538c871892038ae5a97bf4d4f0e553cbbb..c243c3b0e806d8e8c9b3c0002362bf708a24b9c2 100644 GIT binary patch delta 8424 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 delta 9544 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 diff --git a/bundles/mini/ING9187xx/apis.json b/bundles/mini/ING9187xx/apis.json index 3aae5eae3..dc1d488d4 100644 --- a/bundles/mini/ING9187xx/apis.json +++ b/bundles/mini/ING9187xx/apis.json @@ -197,136 +197,136 @@ "platform_reset": "0x0001d621", "platform_rt_rc_auto_tune": "0x0001d645", "platform_rt_rc_auto_tune2": "0x0001d64d", - "platform_rt_rc_tune": "0x0001d6f1", - "platform_set_abs_timer": "0x0001d705", - "platform_set_evt_callback": "0x0001d709", - "platform_set_evt_callback_table": "0x0001d71d", - "platform_set_irq_callback": "0x0001d729", - "platform_set_irq_callback_table": "0x0001d745", - "platform_set_rf_clk_source": "0x0001d751", - "platform_set_rf_init_data": "0x0001d75d", - "platform_set_rf_power_mapping": "0x0001d769", - "platform_set_timer": "0x0001d775", - "platform_shutdown": "0x0001d779", - "platform_switch_app": "0x0001d77d", - "platform_trace_raw": "0x0001d7a9", - "platform_write_persistent_reg": "0x0001d7c1", - "printf_hexdump": "0x0001d975", - "pvPortMalloc": "0x0001e461", - "pvTaskIncrementMutexHeldCount": "0x0001e549", - "pvTimerGetTimerID": "0x0001e561", - "pxPortInitialiseStack": "0x0001e58d", - "reverse_128": "0x0001e735", - "reverse_24": "0x0001e73b", - "reverse_256": "0x0001e741", - "reverse_48": "0x0001e747", - "reverse_56": "0x0001e74d", - "reverse_64": "0x0001e753", - "reverse_bd_addr": "0x0001e759", - "reverse_bytes": "0x0001e75f", - "sm_add_event_handler": "0x0001e8fd", - "sm_address_resolution_lookup": "0x0001ea55", - "sm_authenticated": "0x0001edd1", - "sm_authorization_decline": "0x0001eddf", - "sm_authorization_grant": "0x0001edff", - "sm_authorization_state": "0x0001ee1f", - "sm_bonding_decline": "0x0001ee39", - "sm_config": "0x0001f295", - "sm_config_conn": "0x0001f2ad", - "sm_encryption_key_size": "0x0001f463", - "sm_just_works_confirm": "0x0001f9e9", - "sm_le_device_key": "0x0001fd21", - "sm_passkey_input": "0x0001fdb7", - "sm_private_random_address_generation_get": "0x00020171", - "sm_private_random_address_generation_get_mode": "0x00020179", - "sm_private_random_address_generation_set_mode": "0x00020185", - "sm_private_random_address_generation_set_update_period": "0x000201ad", - "sm_register_external_ltk_callback": "0x000202e9", - "sm_register_oob_data_callback": "0x000202f5", - "sm_request_pairing": "0x00020301", - "sm_send_security_request": "0x00020dd7", - "sm_set_accepted_stk_generation_methods": "0x00020dfd", - "sm_set_authentication_requirements": "0x00020e09", - "sm_set_encryption_key_size_range": "0x00020e15", - "sscanf_bd_addr": "0x00021171", - "sysSetPublicDeviceAddr": "0x00021525", - "uuid128_to_str": "0x00021b39", - "uuid_add_bluetooth_prefix": "0x00021b91", - "uuid_has_bluetooth_prefix": "0x00021bb1", - "uxListRemove": "0x00021bcd", - "uxQueueMessagesWaiting": "0x00021bf5", - "uxQueueMessagesWaitingFromISR": "0x00021c1d", - "uxQueueSpacesAvailable": "0x00021c39", - "uxTaskGetStackHighWaterMark": "0x00021c65", - "uxTaskPriorityGet": "0x00021c85", - "uxTaskPriorityGetFromISR": "0x00021ca1", - "vListInitialise": "0x00021d5b", - "vListInitialiseItem": "0x00021d71", - "vListInsert": "0x00021d77", - "vListInsertEnd": "0x00021da7", - "vPortEndScheduler": "0x00021dc1", - "vPortEnterCritical": "0x00021ded", - "vPortExitCritical": "0x00021e31", - "vPortFree": "0x00021e65", - "vPortSuppressTicksAndSleep": "0x00021ef9", - "vPortValidateInterruptPriority": "0x00022021", - "vQueueDelete": "0x0002207d", - "vQueueWaitForMessageRestricted": "0x000220a9", - "vTaskDelay": "0x000220f1", - "vTaskInternalSetTimeOutState": "0x0002213d", - "vTaskMissedYield": "0x0002214d", - "vTaskPlaceOnEventList": "0x00022159", - "vTaskPlaceOnEventListRestricted": "0x00022191", - "vTaskPriorityDisinheritAfterTimeout": "0x000221d1", - "vTaskPrioritySet": "0x0002227d", - "vTaskResume": "0x00022345", - "vTaskStartScheduler": "0x000223c9", - "vTaskStepTick": "0x00022459", - "vTaskSuspend": "0x00022489", - "vTaskSuspendAll": "0x00022545", - "vTaskSwitchContext": "0x00022555", - "xPortStartScheduler": "0x00022605", - "xQueueAddToSet": "0x000226cd", - "xQueueCreateCountingSemaphore": "0x000226f1", - "xQueueCreateCountingSemaphoreStatic": "0x0002272d", - "xQueueCreateMutex": "0x00022771", - "xQueueCreateMutexStatic": "0x00022787", - "xQueueCreateSet": "0x000227a1", - "xQueueGenericCreate": "0x000227a9", - "xQueueGenericCreateStatic": "0x000227f5", - "xQueueGenericReset": "0x0002285d", - "xQueueGenericSend": "0x000228e9", - "xQueueGenericSendFromISR": "0x00022a55", - "xQueueGiveFromISR": "0x00022b15", - "xQueueGiveMutexRecursive": "0x00022bb9", - "xQueueIsQueueEmptyFromISR": "0x00022bf9", - "xQueueIsQueueFullFromISR": "0x00022c1d", - "xQueuePeek": "0x00022c45", - "xQueuePeekFromISR": "0x00022d6d", - "xQueueReceive": "0x00022dd9", - "xQueueReceiveFromISR": "0x00022f05", - "xQueueRemoveFromSet": "0x00022f99", - "xQueueSelectFromSet": "0x00022fbb", - "xQueueSelectFromSetFromISR": "0x00022fcd", - "xQueueSemaphoreTake": "0x00022fe1", - "xQueueTakeMutexRecursive": "0x0002314d", - "xTaskCheckForTimeOut": "0x00023191", - "xTaskCreate": "0x00023201", - "xTaskCreateStatic": "0x0002325d", - "xTaskGetCurrentTaskHandle": "0x000232cd", - "xTaskGetSchedulerState": "0x000232d9", - "xTaskGetTickCount": "0x000232f5", - "xTaskGetTickCountFromISR": "0x00023301", - "xTaskIncrementTick": "0x00023311", - "xTaskPriorityDisinherit": "0x000233dd", - "xTaskPriorityInherit": "0x00023471", - "xTaskRemoveFromEventList": "0x00023505", - "xTaskResumeAll": "0x00023585", - "xTaskResumeFromISR": "0x0002364d", - "xTimerCreate": "0x000236d9", - "xTimerCreateStatic": "0x0002370d", - "xTimerCreateTimerTask": "0x00023745", - "xTimerGenericCommand": "0x000237b1", - "xTimerGetExpiryTime": "0x00023821", - "xTimerGetTimerDaemonTaskHandle": "0x00023841" + "platform_rt_rc_tune": "0x0001d6d5", + "platform_set_abs_timer": "0x0001d6e9", + "platform_set_evt_callback": "0x0001d6ed", + "platform_set_evt_callback_table": "0x0001d701", + "platform_set_irq_callback": "0x0001d70d", + "platform_set_irq_callback_table": "0x0001d729", + "platform_set_rf_clk_source": "0x0001d735", + "platform_set_rf_init_data": "0x0001d741", + "platform_set_rf_power_mapping": "0x0001d74d", + "platform_set_timer": "0x0001d759", + "platform_shutdown": "0x0001d75d", + "platform_switch_app": "0x0001d761", + "platform_trace_raw": "0x0001d78d", + "platform_write_persistent_reg": "0x0001d7a5", + "printf_hexdump": "0x0001d959", + "pvPortMalloc": "0x0001e445", + "pvTaskIncrementMutexHeldCount": "0x0001e52d", + "pvTimerGetTimerID": "0x0001e545", + "pxPortInitialiseStack": "0x0001e571", + "reverse_128": "0x0001e719", + "reverse_24": "0x0001e71f", + "reverse_256": "0x0001e725", + "reverse_48": "0x0001e72b", + "reverse_56": "0x0001e731", + "reverse_64": "0x0001e737", + "reverse_bd_addr": "0x0001e73d", + "reverse_bytes": "0x0001e743", + "sm_add_event_handler": "0x0001e8e1", + "sm_address_resolution_lookup": "0x0001ea39", + "sm_authenticated": "0x0001edb5", + "sm_authorization_decline": "0x0001edc3", + "sm_authorization_grant": "0x0001ede3", + "sm_authorization_state": "0x0001ee03", + "sm_bonding_decline": "0x0001ee1d", + "sm_config": "0x0001f279", + "sm_config_conn": "0x0001f291", + "sm_encryption_key_size": "0x0001f447", + "sm_just_works_confirm": "0x0001f9cd", + "sm_le_device_key": "0x0001fd05", + "sm_passkey_input": "0x0001fd9b", + "sm_private_random_address_generation_get": "0x00020155", + "sm_private_random_address_generation_get_mode": "0x0002015d", + "sm_private_random_address_generation_set_mode": "0x00020169", + "sm_private_random_address_generation_set_update_period": "0x00020191", + "sm_register_external_ltk_callback": "0x000202cd", + "sm_register_oob_data_callback": "0x000202d9", + "sm_request_pairing": "0x000202e5", + "sm_send_security_request": "0x00020dbb", + "sm_set_accepted_stk_generation_methods": "0x00020de1", + "sm_set_authentication_requirements": "0x00020ded", + "sm_set_encryption_key_size_range": "0x00020df9", + "sscanf_bd_addr": "0x00021155", + "sysSetPublicDeviceAddr": "0x00021509", + "uuid128_to_str": "0x00021b1d", + "uuid_add_bluetooth_prefix": "0x00021b75", + "uuid_has_bluetooth_prefix": "0x00021b95", + "uxListRemove": "0x00021bb1", + "uxQueueMessagesWaiting": "0x00021bd9", + "uxQueueMessagesWaitingFromISR": "0x00021c01", + "uxQueueSpacesAvailable": "0x00021c1d", + "uxTaskGetStackHighWaterMark": "0x00021c49", + "uxTaskPriorityGet": "0x00021c69", + "uxTaskPriorityGetFromISR": "0x00021c85", + "vListInitialise": "0x00021d3f", + "vListInitialiseItem": "0x00021d55", + "vListInsert": "0x00021d5b", + "vListInsertEnd": "0x00021d8b", + "vPortEndScheduler": "0x00021da5", + "vPortEnterCritical": "0x00021dd1", + "vPortExitCritical": "0x00021e15", + "vPortFree": "0x00021e49", + "vPortSuppressTicksAndSleep": "0x00021edd", + "vPortValidateInterruptPriority": "0x00022005", + "vQueueDelete": "0x00022061", + "vQueueWaitForMessageRestricted": "0x0002208d", + "vTaskDelay": "0x000220d5", + "vTaskInternalSetTimeOutState": "0x00022121", + "vTaskMissedYield": "0x00022131", + "vTaskPlaceOnEventList": "0x0002213d", + "vTaskPlaceOnEventListRestricted": "0x00022175", + "vTaskPriorityDisinheritAfterTimeout": "0x000221b5", + "vTaskPrioritySet": "0x00022261", + "vTaskResume": "0x00022329", + "vTaskStartScheduler": "0x000223ad", + "vTaskStepTick": "0x0002243d", + "vTaskSuspend": "0x0002246d", + "vTaskSuspendAll": "0x00022529", + "vTaskSwitchContext": "0x00022539", + "xPortStartScheduler": "0x000225e9", + "xQueueAddToSet": "0x000226b1", + "xQueueCreateCountingSemaphore": "0x000226d5", + "xQueueCreateCountingSemaphoreStatic": "0x00022711", + "xQueueCreateMutex": "0x00022755", + "xQueueCreateMutexStatic": "0x0002276b", + "xQueueCreateSet": "0x00022785", + "xQueueGenericCreate": "0x0002278d", + "xQueueGenericCreateStatic": "0x000227d9", + "xQueueGenericReset": "0x00022841", + "xQueueGenericSend": "0x000228cd", + "xQueueGenericSendFromISR": "0x00022a39", + "xQueueGiveFromISR": "0x00022af9", + "xQueueGiveMutexRecursive": "0x00022b9d", + "xQueueIsQueueEmptyFromISR": "0x00022bdd", + "xQueueIsQueueFullFromISR": "0x00022c01", + "xQueuePeek": "0x00022c29", + "xQueuePeekFromISR": "0x00022d51", + "xQueueReceive": "0x00022dbd", + "xQueueReceiveFromISR": "0x00022ee9", + "xQueueRemoveFromSet": "0x00022f7d", + "xQueueSelectFromSet": "0x00022f9f", + "xQueueSelectFromSetFromISR": "0x00022fb1", + "xQueueSemaphoreTake": "0x00022fc5", + "xQueueTakeMutexRecursive": "0x00023131", + "xTaskCheckForTimeOut": "0x00023175", + "xTaskCreate": "0x000231e5", + "xTaskCreateStatic": "0x00023241", + "xTaskGetCurrentTaskHandle": "0x000232b1", + "xTaskGetSchedulerState": "0x000232bd", + "xTaskGetTickCount": "0x000232d9", + "xTaskGetTickCountFromISR": "0x000232e5", + "xTaskIncrementTick": "0x000232f5", + "xTaskPriorityDisinherit": "0x000233c1", + "xTaskPriorityInherit": "0x00023455", + "xTaskRemoveFromEventList": "0x000234e9", + "xTaskResumeAll": "0x00023569", + "xTaskResumeFromISR": "0x00023631", + "xTimerCreate": "0x000236bd", + "xTimerCreateStatic": "0x000236f1", + "xTimerCreateTimerTask": "0x00023729", + "xTimerGenericCommand": "0x00023795", + "xTimerGetExpiryTime": "0x00023805", + "xTimerGetTimerDaemonTaskHandle": "0x00023825" } \ No newline at end of file diff --git a/bundles/mini/ING9187xx/meta.json b/bundles/mini/ING9187xx/meta.json index 21d235440..a1f47ec08 100644 --- a/bundles/mini/ING9187xx/meta.json +++ b/bundles/mini/ING9187xx/meta.json @@ -8,7 +8,7 @@ }, "rom": { "base": 16384, - "size": 135356 + "size": 135328 }, "version": [ 1, diff --git a/bundles/mini/ING9187xx/platform.bin b/bundles/mini/ING9187xx/platform.bin index f9612dd1540a5ab3aa4d46c63920959a3957408d..e5ba4fed67206a6f9b12f0acdcf4f6147b661eb6 100644 GIT binary patch delta 8213 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 T`j0`{0oop~|4exmGwA;T5$SE) delta 8274 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�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 delta 7790 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 Gyzu{xRb3$f diff --git a/bundles/noos_exp/ING9188xx/apis.json b/bundles/noos_exp/ING9188xx/apis.json index 2bd3ff800..734bc3c73 100644 --- a/bundles/noos_exp/ING9188xx/apis.json +++ b/bundles/noos_exp/ING9188xx/apis.json @@ -252,59 +252,59 @@ "platform_reset": "0x00021699", "platform_rt_rc_auto_tune": "0x000216bd", "platform_rt_rc_auto_tune2": "0x000216c5", - "platform_rt_rc_tune": "0x00021769", - "platform_set_abs_timer": "0x0002177d", - "platform_set_evt_callback": "0x00021781", - "platform_set_evt_callback_table": "0x00021795", - "platform_set_irq_callback": "0x000217a1", - "platform_set_irq_callback_table": "0x000217bd", - "platform_set_rf_clk_source": "0x000217c9", - "platform_set_rf_init_data": "0x000217d5", - "platform_set_rf_power_mapping": "0x000217e1", - "platform_set_timer": "0x000217ed", - "platform_shutdown": "0x000217f1", - "platform_switch_app": "0x000217f5", - "platform_trace_raw": "0x00021821", - "platform_write_persistent_reg": "0x00021839", - "printf_hexdump": "0x00021849", - "reverse_128": "0x00021bc1", - "reverse_24": "0x00021bc7", - "reverse_256": "0x00021bcd", - "reverse_48": "0x00021bd3", - "reverse_56": "0x00021bd9", - "reverse_64": "0x00021bdf", - "reverse_bd_addr": "0x00021be5", - "reverse_bytes": "0x00021beb", - "sm_add_event_handler": "0x00021f29", - "sm_address_resolution_lookup": "0x0002206d", - "sm_authenticated": "0x00022499", - "sm_authorization_decline": "0x000224a7", - "sm_authorization_grant": "0x000224c7", - "sm_authorization_state": "0x000224e7", - "sm_bonding_decline": "0x00022501", - "sm_config": "0x00022981", - "sm_config_conn": "0x00022999", - "sm_encryption_key_size": "0x00022b4f", - "sm_just_works_confirm": "0x0002389d", - "sm_le_device_key": "0x00023c7d", - "sm_numeric_comparison_confirm": "0x00023dcf", - "sm_passkey_input": "0x00023e0d", - "sm_private_random_address_generation_get": "0x0002440d", - "sm_private_random_address_generation_get_mode": "0x00024415", - "sm_private_random_address_generation_set_mode": "0x00024421", - "sm_private_random_address_generation_set_update_period": "0x00024449", - "sm_register_external_ltk_callback": "0x000246d5", - "sm_register_oob_data_callback": "0x000246e1", - "sm_register_sc_oob_data_callback": "0x000246ed", - "sm_request_pairing": "0x000246f9", - "sm_sc_generate_oob_data": "0x00025331", - "sm_send_security_request": "0x00025461", - "sm_set_accepted_stk_generation_methods": "0x00025489", - "sm_set_authentication_requirements": "0x00025495", - "sm_set_encryption_key_size_range": "0x000254a1", - "sscanf_bd_addr": "0x000258bd", - "sysSetPublicDeviceAddr": "0x00025c71", - "uuid128_to_str": "0x00026445", - "uuid_add_bluetooth_prefix": "0x0002649d", - "uuid_has_bluetooth_prefix": "0x000264bd" + "platform_rt_rc_tune": "0x0002174d", + "platform_set_abs_timer": "0x00021761", + "platform_set_evt_callback": "0x00021765", + "platform_set_evt_callback_table": "0x00021779", + "platform_set_irq_callback": "0x00021785", + "platform_set_irq_callback_table": "0x000217a1", + "platform_set_rf_clk_source": "0x000217ad", + "platform_set_rf_init_data": "0x000217b9", + "platform_set_rf_power_mapping": "0x000217c5", + "platform_set_timer": "0x000217d1", + "platform_shutdown": "0x000217d5", + "platform_switch_app": "0x000217d9", + "platform_trace_raw": "0x00021805", + "platform_write_persistent_reg": "0x0002181d", + "printf_hexdump": "0x0002182d", + "reverse_128": "0x00021ba5", + "reverse_24": "0x00021bab", + "reverse_256": "0x00021bb1", + "reverse_48": "0x00021bb7", + "reverse_56": "0x00021bbd", + "reverse_64": "0x00021bc3", + "reverse_bd_addr": "0x00021bc9", + "reverse_bytes": "0x00021bcf", + "sm_add_event_handler": "0x00021f0d", + "sm_address_resolution_lookup": "0x00022051", + "sm_authenticated": "0x0002247d", + "sm_authorization_decline": "0x0002248b", + "sm_authorization_grant": "0x000224ab", + "sm_authorization_state": "0x000224cb", + "sm_bonding_decline": "0x000224e5", + "sm_config": "0x00022965", + "sm_config_conn": "0x0002297d", + "sm_encryption_key_size": "0x00022b33", + "sm_just_works_confirm": "0x00023881", + "sm_le_device_key": "0x00023c61", + "sm_numeric_comparison_confirm": "0x00023db3", + "sm_passkey_input": "0x00023df1", + "sm_private_random_address_generation_get": "0x000243f1", + "sm_private_random_address_generation_get_mode": "0x000243f9", + "sm_private_random_address_generation_set_mode": "0x00024405", + "sm_private_random_address_generation_set_update_period": "0x0002442d", + "sm_register_external_ltk_callback": "0x000246b9", + "sm_register_oob_data_callback": "0x000246c5", + "sm_register_sc_oob_data_callback": "0x000246d1", + "sm_request_pairing": "0x000246dd", + "sm_sc_generate_oob_data": "0x00025315", + "sm_send_security_request": "0x00025445", + "sm_set_accepted_stk_generation_methods": "0x0002546d", + "sm_set_authentication_requirements": "0x00025479", + "sm_set_encryption_key_size_range": "0x00025485", + "sscanf_bd_addr": "0x000258a1", + "sysSetPublicDeviceAddr": "0x00025c55", + "uuid128_to_str": "0x00026429", + "uuid_add_bluetooth_prefix": "0x00026481", + "uuid_has_bluetooth_prefix": "0x000264a1" } \ No newline at end of file diff --git a/bundles/noos_exp/ING9188xx/meta.json b/bundles/noos_exp/ING9188xx/meta.json index a9ba013f1..c95590ac9 100644 --- a/bundles/noos_exp/ING9188xx/meta.json +++ b/bundles/noos_exp/ING9188xx/meta.json @@ -8,7 +8,7 @@ }, "rom": { "base": 16384, - "size": 148148 + "size": 148124 }, "version": [ 1, diff --git a/bundles/noos_exp/ING9188xx/platform.bin b/bundles/noos_exp/ING9188xx/platform.bin index 58dae08b5c6430a45978f436d0c76fc319566c10..a208232845416e5b78bb1e205ddd402b9de97ef2 100644 GIT binary patch delta 8069 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 J$iv9t{{TZOhYJ7z delta 8154 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 GhWUR(umOeu delta 7662 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 RV3;b7T@ItA)NdfG`G2}AJ2(IU delta 7214 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 EADLc-aR2}S diff --git a/bundles/noos_mass_conn/ING9168xx/apis.json b/bundles/noos_mass_conn/ING9168xx/apis.json index 73544a58e..f3e2a6732 100644 --- a/bundles/noos_mass_conn/ING9168xx/apis.json +++ b/bundles/noos_mass_conn/ING9168xx/apis.json @@ -213,56 +213,56 @@ "platform_reset": "0x0201f145", "platform_rt_rc_auto_tune": "0x0201f159", "platform_rt_rc_auto_tune2": "0x0201f161", - "platform_rt_rc_tune": "0x0201f1e5", - "platform_set_abs_timer": "0x0201f201", - "platform_set_evt_callback": "0x0201f205", - "platform_set_evt_callback_table": "0x0201f219", - "platform_set_irq_callback": "0x0201f225", - "platform_set_irq_callback_table": "0x0201f241", - "platform_set_rf_clk_source": "0x0201f24d", - "platform_set_rf_init_data": "0x0201f259", - "platform_set_rf_power_mapping": "0x0201f265", - "platform_set_timer": "0x0201f271", - "platform_shutdown": "0x0201f275", - "platform_switch_app": "0x0201f279", - "platform_trace_raw": "0x0201f291", - "platform_write_persistent_reg": "0x0201f2a9", - "printf_hexdump": "0x0201f2bd", - "reverse_128": "0x0201f635", - "reverse_24": "0x0201f63b", - "reverse_256": "0x0201f641", - "reverse_48": "0x0201f647", - "reverse_56": "0x0201f64d", - "reverse_64": "0x0201f653", - "reverse_bd_addr": "0x0201f659", - "reverse_bytes": "0x0201f65f", - "sm_add_event_handler": "0x0201f9bd", - "sm_address_resolution_lookup": "0x0201fb15", - "sm_authenticated": "0x0201fe91", - "sm_authorization_decline": "0x0201fe9f", - "sm_authorization_grant": "0x0201febf", - "sm_authorization_state": "0x0201fedf", - "sm_bonding_decline": "0x0201fef9", - "sm_config": "0x0202034d", - "sm_config_conn": "0x02020365", - "sm_encryption_key_size": "0x0202051b", - "sm_just_works_confirm": "0x02020aa1", - "sm_le_device_key": "0x02020dd9", - "sm_passkey_input": "0x02020e6f", - "sm_private_random_address_generation_get": "0x02021229", - "sm_private_random_address_generation_get_mode": "0x02021231", - "sm_private_random_address_generation_set_mode": "0x0202123d", - "sm_private_random_address_generation_set_update_period": "0x02021265", - "sm_register_external_ltk_callback": "0x020213a1", - "sm_register_oob_data_callback": "0x020213ad", - "sm_request_pairing": "0x020213b9", - "sm_send_security_request": "0x02021e8f", - "sm_set_accepted_stk_generation_methods": "0x02021eb5", - "sm_set_authentication_requirements": "0x02021ec1", - "sm_set_encryption_key_size_range": "0x02021ecd", - "sscanf_bd_addr": "0x0202222d", - "sysSetPublicDeviceAddr": "0x02022759", - "uuid128_to_str": "0x02022fb5", - "uuid_add_bluetooth_prefix": "0x0202300d", - "uuid_has_bluetooth_prefix": "0x0202302d" + "platform_rt_rc_tune": "0x0201f1c9", + "platform_set_abs_timer": "0x0201f1e5", + "platform_set_evt_callback": "0x0201f1e9", + "platform_set_evt_callback_table": "0x0201f1fd", + "platform_set_irq_callback": "0x0201f209", + "platform_set_irq_callback_table": "0x0201f225", + "platform_set_rf_clk_source": "0x0201f231", + "platform_set_rf_init_data": "0x0201f23d", + "platform_set_rf_power_mapping": "0x0201f249", + "platform_set_timer": "0x0201f255", + "platform_shutdown": "0x0201f259", + "platform_switch_app": "0x0201f25d", + "platform_trace_raw": "0x0201f275", + "platform_write_persistent_reg": "0x0201f28d", + "printf_hexdump": "0x0201f2a1", + "reverse_128": "0x0201f619", + "reverse_24": "0x0201f61f", + "reverse_256": "0x0201f625", + "reverse_48": "0x0201f62b", + "reverse_56": "0x0201f631", + "reverse_64": "0x0201f637", + "reverse_bd_addr": "0x0201f63d", + "reverse_bytes": "0x0201f643", + "sm_add_event_handler": "0x0201f9a1", + "sm_address_resolution_lookup": "0x0201faf9", + "sm_authenticated": "0x0201fe75", + "sm_authorization_decline": "0x0201fe83", + "sm_authorization_grant": "0x0201fea3", + "sm_authorization_state": "0x0201fec3", + "sm_bonding_decline": "0x0201fedd", + "sm_config": "0x02020331", + "sm_config_conn": "0x02020349", + "sm_encryption_key_size": "0x020204ff", + "sm_just_works_confirm": "0x02020a85", + "sm_le_device_key": "0x02020dbd", + "sm_passkey_input": "0x02020e53", + "sm_private_random_address_generation_get": "0x0202120d", + "sm_private_random_address_generation_get_mode": "0x02021215", + "sm_private_random_address_generation_set_mode": "0x02021221", + "sm_private_random_address_generation_set_update_period": "0x02021249", + "sm_register_external_ltk_callback": "0x02021385", + "sm_register_oob_data_callback": "0x02021391", + "sm_request_pairing": "0x0202139d", + "sm_send_security_request": "0x02021e73", + "sm_set_accepted_stk_generation_methods": "0x02021e99", + "sm_set_authentication_requirements": "0x02021ea5", + "sm_set_encryption_key_size_range": "0x02021eb1", + "sscanf_bd_addr": "0x02022211", + "sysSetPublicDeviceAddr": "0x0202273d", + "uuid128_to_str": "0x02022f99", + "uuid_add_bluetooth_prefix": "0x02022ff1", + "uuid_has_bluetooth_prefix": "0x02023011" } \ 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 215fae868..b1c4cf80a 100644 --- a/bundles/noos_mass_conn/ING9168xx/meta.json +++ b/bundles/noos_mass_conn/ING9168xx/meta.json @@ -8,7 +8,7 @@ }, "rom": { "base": 33562624, - "size": 144472 + "size": 144440 }, "version": [ 2, diff --git a/bundles/noos_mass_conn/ING9168xx/platform.bin b/bundles/noos_mass_conn/ING9168xx/platform.bin index 5b397780c13a32bc656f5fe15c9959c69bceda8c..645eb3b299b6b50a92da9f5b474eea062db479e8 100644 GIT binary patch delta 7409 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 delta 7513 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 U_$aFKl?`oC$o?YdLUHx~2Y&3{E&u=k diff --git a/bundles/noos_mass_conn/ING9187xx/apis.json b/bundles/noos_mass_conn/ING9187xx/apis.json index 93d510a82..d2b3dff35 100644 --- a/bundles/noos_mass_conn/ING9187xx/apis.json +++ b/bundles/noos_mass_conn/ING9187xx/apis.json @@ -198,56 +198,56 @@ "platform_reset": "0x0001d689", "platform_rt_rc_auto_tune": "0x0001d6ad", "platform_rt_rc_auto_tune2": "0x0001d6b5", - "platform_rt_rc_tune": "0x0001d759", - "platform_set_abs_timer": "0x0001d76d", - "platform_set_evt_callback": "0x0001d771", - "platform_set_evt_callback_table": "0x0001d785", - "platform_set_irq_callback": "0x0001d791", - "platform_set_irq_callback_table": "0x0001d7ad", - "platform_set_rf_clk_source": "0x0001d7b9", - "platform_set_rf_init_data": "0x0001d7c5", - "platform_set_rf_power_mapping": "0x0001d7d1", - "platform_set_timer": "0x0001d7dd", - "platform_shutdown": "0x0001d7e1", - "platform_switch_app": "0x0001d7e5", - "platform_trace_raw": "0x0001d811", - "platform_write_persistent_reg": "0x0001d829", - "printf_hexdump": "0x0001d839", - "reverse_128": "0x0001db79", - "reverse_24": "0x0001db7f", - "reverse_256": "0x0001db85", - "reverse_48": "0x0001db8b", - "reverse_56": "0x0001db91", - "reverse_64": "0x0001db97", - "reverse_bd_addr": "0x0001db9d", - "reverse_bytes": "0x0001dba3", - "sm_add_event_handler": "0x0001dd41", - "sm_address_resolution_lookup": "0x0001de99", - "sm_authenticated": "0x0001e215", - "sm_authorization_decline": "0x0001e223", - "sm_authorization_grant": "0x0001e243", - "sm_authorization_state": "0x0001e263", - "sm_bonding_decline": "0x0001e27d", - "sm_config": "0x0001e6d9", - "sm_config_conn": "0x0001e6f1", - "sm_encryption_key_size": "0x0001e8a7", - "sm_just_works_confirm": "0x0001ee2d", - "sm_le_device_key": "0x0001f165", - "sm_passkey_input": "0x0001f1fb", - "sm_private_random_address_generation_get": "0x0001f5b5", - "sm_private_random_address_generation_get_mode": "0x0001f5bd", - "sm_private_random_address_generation_set_mode": "0x0001f5c9", - "sm_private_random_address_generation_set_update_period": "0x0001f5f1", - "sm_register_external_ltk_callback": "0x0001f72d", - "sm_register_oob_data_callback": "0x0001f739", - "sm_request_pairing": "0x0001f745", - "sm_send_security_request": "0x0002021b", - "sm_set_accepted_stk_generation_methods": "0x00020241", - "sm_set_authentication_requirements": "0x0002024d", - "sm_set_encryption_key_size_range": "0x00020259", - "sscanf_bd_addr": "0x000205b5", - "sysSetPublicDeviceAddr": "0x00020969", - "uuid128_to_str": "0x00020f7d", - "uuid_add_bluetooth_prefix": "0x00020fd5", - "uuid_has_bluetooth_prefix": "0x00020ff5" + "platform_rt_rc_tune": "0x0001d73d", + "platform_set_abs_timer": "0x0001d751", + "platform_set_evt_callback": "0x0001d755", + "platform_set_evt_callback_table": "0x0001d769", + "platform_set_irq_callback": "0x0001d775", + "platform_set_irq_callback_table": "0x0001d791", + "platform_set_rf_clk_source": "0x0001d79d", + "platform_set_rf_init_data": "0x0001d7a9", + "platform_set_rf_power_mapping": "0x0001d7b5", + "platform_set_timer": "0x0001d7c1", + "platform_shutdown": "0x0001d7c5", + "platform_switch_app": "0x0001d7c9", + "platform_trace_raw": "0x0001d7f5", + "platform_write_persistent_reg": "0x0001d80d", + "printf_hexdump": "0x0001d81d", + "reverse_128": "0x0001db5d", + "reverse_24": "0x0001db63", + "reverse_256": "0x0001db69", + "reverse_48": "0x0001db6f", + "reverse_56": "0x0001db75", + "reverse_64": "0x0001db7b", + "reverse_bd_addr": "0x0001db81", + "reverse_bytes": "0x0001db87", + "sm_add_event_handler": "0x0001dd25", + "sm_address_resolution_lookup": "0x0001de7d", + "sm_authenticated": "0x0001e1f9", + "sm_authorization_decline": "0x0001e207", + "sm_authorization_grant": "0x0001e227", + "sm_authorization_state": "0x0001e247", + "sm_bonding_decline": "0x0001e261", + "sm_config": "0x0001e6bd", + "sm_config_conn": "0x0001e6d5", + "sm_encryption_key_size": "0x0001e88b", + "sm_just_works_confirm": "0x0001ee11", + "sm_le_device_key": "0x0001f149", + "sm_passkey_input": "0x0001f1df", + "sm_private_random_address_generation_get": "0x0001f599", + "sm_private_random_address_generation_get_mode": "0x0001f5a1", + "sm_private_random_address_generation_set_mode": "0x0001f5ad", + "sm_private_random_address_generation_set_update_period": "0x0001f5d5", + "sm_register_external_ltk_callback": "0x0001f711", + "sm_register_oob_data_callback": "0x0001f71d", + "sm_request_pairing": "0x0001f729", + "sm_send_security_request": "0x000201ff", + "sm_set_accepted_stk_generation_methods": "0x00020225", + "sm_set_authentication_requirements": "0x00020231", + "sm_set_encryption_key_size_range": "0x0002023d", + "sscanf_bd_addr": "0x00020599", + "sysSetPublicDeviceAddr": "0x0002094d", + "uuid128_to_str": "0x00020f61", + "uuid_add_bluetooth_prefix": "0x00020fb9", + "uuid_has_bluetooth_prefix": "0x00020fd9" } \ 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 29ef90cb9..65cfa5d93 100644 --- a/bundles/noos_mass_conn/ING9187xx/meta.json +++ b/bundles/noos_mass_conn/ING9187xx/meta.json @@ -8,7 +8,7 @@ }, "rom": { "base": 16384, - "size": 125120 + "size": 125092 }, "version": [ 1, diff --git a/bundles/noos_mass_conn/ING9187xx/platform.bin b/bundles/noos_mass_conn/ING9187xx/platform.bin index fa29a2acd9f88ce454913cac4efcebeea42c5693..85a0ba47c1ea5f69541420b092bc06a30481f5e3 100644 GIT binary patch delta 6602 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 delta 6563 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 QUw_BB&*^)e5RA(H4*>?P`v3p{ diff --git a/bundles/noos_mass_conn/ING9188xx/apis.json b/bundles/noos_mass_conn/ING9188xx/apis.json index b2e8c42ff..99b313937 100644 --- a/bundles/noos_mass_conn/ING9188xx/apis.json +++ b/bundles/noos_mass_conn/ING9188xx/apis.json @@ -212,56 +212,56 @@ "platform_reset": "0x0001e941", "platform_rt_rc_auto_tune": "0x0001e965", "platform_rt_rc_auto_tune2": "0x0001e96d", - "platform_rt_rc_tune": "0x0001ea11", - "platform_set_abs_timer": "0x0001ea25", - "platform_set_evt_callback": "0x0001ea29", - "platform_set_evt_callback_table": "0x0001ea3d", - "platform_set_irq_callback": "0x0001ea49", - "platform_set_irq_callback_table": "0x0001ea65", - "platform_set_rf_clk_source": "0x0001ea71", - "platform_set_rf_init_data": "0x0001ea7d", - "platform_set_rf_power_mapping": "0x0001ea89", - "platform_set_timer": "0x0001ea95", - "platform_shutdown": "0x0001ea99", - "platform_switch_app": "0x0001ea9d", - "platform_trace_raw": "0x0001eac9", - "platform_write_persistent_reg": "0x0001eae1", - "printf_hexdump": "0x0001eaf1", - "reverse_128": "0x0001ee69", - "reverse_24": "0x0001ee6f", - "reverse_256": "0x0001ee75", - "reverse_48": "0x0001ee7b", - "reverse_56": "0x0001ee81", - "reverse_64": "0x0001ee87", - "reverse_bd_addr": "0x0001ee8d", - "reverse_bytes": "0x0001ee93", - "sm_add_event_handler": "0x0001f181", - "sm_address_resolution_lookup": "0x0001f2d9", - "sm_authenticated": "0x0001f655", - "sm_authorization_decline": "0x0001f663", - "sm_authorization_grant": "0x0001f683", - "sm_authorization_state": "0x0001f6a3", - "sm_bonding_decline": "0x0001f6bd", - "sm_config": "0x0001fb19", - "sm_config_conn": "0x0001fb31", - "sm_encryption_key_size": "0x0001fce7", - "sm_just_works_confirm": "0x0002026d", - "sm_le_device_key": "0x000205a5", - "sm_passkey_input": "0x0002063b", - "sm_private_random_address_generation_get": "0x000209f5", - "sm_private_random_address_generation_get_mode": "0x000209fd", - "sm_private_random_address_generation_set_mode": "0x00020a09", - "sm_private_random_address_generation_set_update_period": "0x00020a31", - "sm_register_external_ltk_callback": "0x00020b6d", - "sm_register_oob_data_callback": "0x00020b79", - "sm_request_pairing": "0x00020b85", - "sm_send_security_request": "0x0002165b", - "sm_set_accepted_stk_generation_methods": "0x00021681", - "sm_set_authentication_requirements": "0x0002168d", - "sm_set_encryption_key_size_range": "0x00021699", - "sscanf_bd_addr": "0x000219f5", - "sysSetPublicDeviceAddr": "0x00021da9", - "uuid128_to_str": "0x00022555", - "uuid_add_bluetooth_prefix": "0x000225ad", - "uuid_has_bluetooth_prefix": "0x000225cd" + "platform_rt_rc_tune": "0x0001e9f5", + "platform_set_abs_timer": "0x0001ea09", + "platform_set_evt_callback": "0x0001ea0d", + "platform_set_evt_callback_table": "0x0001ea21", + "platform_set_irq_callback": "0x0001ea2d", + "platform_set_irq_callback_table": "0x0001ea49", + "platform_set_rf_clk_source": "0x0001ea55", + "platform_set_rf_init_data": "0x0001ea61", + "platform_set_rf_power_mapping": "0x0001ea6d", + "platform_set_timer": "0x0001ea79", + "platform_shutdown": "0x0001ea7d", + "platform_switch_app": "0x0001ea81", + "platform_trace_raw": "0x0001eaad", + "platform_write_persistent_reg": "0x0001eac5", + "printf_hexdump": "0x0001ead5", + "reverse_128": "0x0001ee4d", + "reverse_24": "0x0001ee53", + "reverse_256": "0x0001ee59", + "reverse_48": "0x0001ee5f", + "reverse_56": "0x0001ee65", + "reverse_64": "0x0001ee6b", + "reverse_bd_addr": "0x0001ee71", + "reverse_bytes": "0x0001ee77", + "sm_add_event_handler": "0x0001f165", + "sm_address_resolution_lookup": "0x0001f2bd", + "sm_authenticated": "0x0001f639", + "sm_authorization_decline": "0x0001f647", + "sm_authorization_grant": "0x0001f667", + "sm_authorization_state": "0x0001f687", + "sm_bonding_decline": "0x0001f6a1", + "sm_config": "0x0001fafd", + "sm_config_conn": "0x0001fb15", + "sm_encryption_key_size": "0x0001fccb", + "sm_just_works_confirm": "0x00020251", + "sm_le_device_key": "0x00020589", + "sm_passkey_input": "0x0002061f", + "sm_private_random_address_generation_get": "0x000209d9", + "sm_private_random_address_generation_get_mode": "0x000209e1", + "sm_private_random_address_generation_set_mode": "0x000209ed", + "sm_private_random_address_generation_set_update_period": "0x00020a15", + "sm_register_external_ltk_callback": "0x00020b51", + "sm_register_oob_data_callback": "0x00020b5d", + "sm_request_pairing": "0x00020b69", + "sm_send_security_request": "0x0002163f", + "sm_set_accepted_stk_generation_methods": "0x00021665", + "sm_set_authentication_requirements": "0x00021671", + "sm_set_encryption_key_size_range": "0x0002167d", + "sscanf_bd_addr": "0x000219d9", + "sysSetPublicDeviceAddr": "0x00021d8d", + "uuid128_to_str": "0x00022539", + "uuid_add_bluetooth_prefix": "0x00022591", + "uuid_has_bluetooth_prefix": "0x000225b1" } \ 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 df15d9711..c278bf691 100644 --- a/bundles/noos_mass_conn/ING9188xx/meta.json +++ b/bundles/noos_mass_conn/ING9188xx/meta.json @@ -8,7 +8,7 @@ }, "rom": { "base": 16384, - "size": 131168 + "size": 131140 }, "version": [ 1, diff --git a/bundles/noos_mass_conn/ING9188xx/platform.bin b/bundles/noos_mass_conn/ING9188xx/platform.bin index b7efe292b746ca5f128c77bef40cf6c37a5419bd..8948230d6c5c32710487ec467d11e48b9a64999c 100644 GIT binary patch delta 6872 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 t;|AIXY6rDW72pSV@rDsC03ZJ`y# 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 delta 7063 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 delta 6892 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 V$E35Dg=vRq`_EoQJ6$mB{{Vc=+@Amd diff --git a/bundles/noos_typical/ING9168xx/apis.json b/bundles/noos_typical/ING9168xx/apis.json index 73544a58e..f3e2a6732 100644 --- a/bundles/noos_typical/ING9168xx/apis.json +++ b/bundles/noos_typical/ING9168xx/apis.json @@ -213,56 +213,56 @@ "platform_reset": "0x0201f145", "platform_rt_rc_auto_tune": "0x0201f159", "platform_rt_rc_auto_tune2": "0x0201f161", - "platform_rt_rc_tune": "0x0201f1e5", - "platform_set_abs_timer": "0x0201f201", - "platform_set_evt_callback": "0x0201f205", - "platform_set_evt_callback_table": "0x0201f219", - "platform_set_irq_callback": "0x0201f225", - "platform_set_irq_callback_table": "0x0201f241", - "platform_set_rf_clk_source": "0x0201f24d", - "platform_set_rf_init_data": "0x0201f259", - "platform_set_rf_power_mapping": "0x0201f265", - "platform_set_timer": "0x0201f271", - "platform_shutdown": "0x0201f275", - "platform_switch_app": "0x0201f279", - "platform_trace_raw": "0x0201f291", - "platform_write_persistent_reg": "0x0201f2a9", - "printf_hexdump": "0x0201f2bd", - "reverse_128": "0x0201f635", - "reverse_24": "0x0201f63b", - "reverse_256": "0x0201f641", - "reverse_48": "0x0201f647", - "reverse_56": "0x0201f64d", - "reverse_64": "0x0201f653", - "reverse_bd_addr": "0x0201f659", - "reverse_bytes": "0x0201f65f", - "sm_add_event_handler": "0x0201f9bd", - "sm_address_resolution_lookup": "0x0201fb15", - "sm_authenticated": "0x0201fe91", - "sm_authorization_decline": "0x0201fe9f", - "sm_authorization_grant": "0x0201febf", - "sm_authorization_state": "0x0201fedf", - "sm_bonding_decline": "0x0201fef9", - "sm_config": "0x0202034d", - "sm_config_conn": "0x02020365", - "sm_encryption_key_size": "0x0202051b", - "sm_just_works_confirm": "0x02020aa1", - "sm_le_device_key": "0x02020dd9", - "sm_passkey_input": "0x02020e6f", - "sm_private_random_address_generation_get": "0x02021229", - "sm_private_random_address_generation_get_mode": "0x02021231", - "sm_private_random_address_generation_set_mode": "0x0202123d", - "sm_private_random_address_generation_set_update_period": "0x02021265", - "sm_register_external_ltk_callback": "0x020213a1", - "sm_register_oob_data_callback": "0x020213ad", - "sm_request_pairing": "0x020213b9", - "sm_send_security_request": "0x02021e8f", - "sm_set_accepted_stk_generation_methods": "0x02021eb5", - "sm_set_authentication_requirements": "0x02021ec1", - "sm_set_encryption_key_size_range": "0x02021ecd", - "sscanf_bd_addr": "0x0202222d", - "sysSetPublicDeviceAddr": "0x02022759", - "uuid128_to_str": "0x02022fb5", - "uuid_add_bluetooth_prefix": "0x0202300d", - "uuid_has_bluetooth_prefix": "0x0202302d" + "platform_rt_rc_tune": "0x0201f1c9", + "platform_set_abs_timer": "0x0201f1e5", + "platform_set_evt_callback": "0x0201f1e9", + "platform_set_evt_callback_table": "0x0201f1fd", + "platform_set_irq_callback": "0x0201f209", + "platform_set_irq_callback_table": "0x0201f225", + "platform_set_rf_clk_source": "0x0201f231", + "platform_set_rf_init_data": "0x0201f23d", + "platform_set_rf_power_mapping": "0x0201f249", + "platform_set_timer": "0x0201f255", + "platform_shutdown": "0x0201f259", + "platform_switch_app": "0x0201f25d", + "platform_trace_raw": "0x0201f275", + "platform_write_persistent_reg": "0x0201f28d", + "printf_hexdump": "0x0201f2a1", + "reverse_128": "0x0201f619", + "reverse_24": "0x0201f61f", + "reverse_256": "0x0201f625", + "reverse_48": "0x0201f62b", + "reverse_56": "0x0201f631", + "reverse_64": "0x0201f637", + "reverse_bd_addr": "0x0201f63d", + "reverse_bytes": "0x0201f643", + "sm_add_event_handler": "0x0201f9a1", + "sm_address_resolution_lookup": "0x0201faf9", + "sm_authenticated": "0x0201fe75", + "sm_authorization_decline": "0x0201fe83", + "sm_authorization_grant": "0x0201fea3", + "sm_authorization_state": "0x0201fec3", + "sm_bonding_decline": "0x0201fedd", + "sm_config": "0x02020331", + "sm_config_conn": "0x02020349", + "sm_encryption_key_size": "0x020204ff", + "sm_just_works_confirm": "0x02020a85", + "sm_le_device_key": "0x02020dbd", + "sm_passkey_input": "0x02020e53", + "sm_private_random_address_generation_get": "0x0202120d", + "sm_private_random_address_generation_get_mode": "0x02021215", + "sm_private_random_address_generation_set_mode": "0x02021221", + "sm_private_random_address_generation_set_update_period": "0x02021249", + "sm_register_external_ltk_callback": "0x02021385", + "sm_register_oob_data_callback": "0x02021391", + "sm_request_pairing": "0x0202139d", + "sm_send_security_request": "0x02021e73", + "sm_set_accepted_stk_generation_methods": "0x02021e99", + "sm_set_authentication_requirements": "0x02021ea5", + "sm_set_encryption_key_size_range": "0x02021eb1", + "sscanf_bd_addr": "0x02022211", + "sysSetPublicDeviceAddr": "0x0202273d", + "uuid128_to_str": "0x02022f99", + "uuid_add_bluetooth_prefix": "0x02022ff1", + "uuid_has_bluetooth_prefix": "0x02023011" } \ No newline at end of file diff --git a/bundles/noos_typical/ING9168xx/meta.json b/bundles/noos_typical/ING9168xx/meta.json index 29cf48521..dd3d09955 100644 --- a/bundles/noos_typical/ING9168xx/meta.json +++ b/bundles/noos_typical/ING9168xx/meta.json @@ -8,7 +8,7 @@ }, "rom": { "base": 33562624, - "size": 144468 + "size": 144440 }, "version": [ 2, diff --git a/bundles/noos_typical/ING9168xx/platform.bin b/bundles/noos_typical/ING9168xx/platform.bin index fff631e5ba5b20b5f592e5cf6098fd72b4eeffed..99c33a8e75a9b041046d94a219f18da8128fbc1c 100644 GIT binary patch delta 7409 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 b*Mm0>JXPp}Z!8s_vf<6nvfFm4m delta 7509 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 Qs`8f&Zc)evbK$`JKbUIU_y7O^ diff --git a/bundles/noos_typical/ING9187xx/apis.json b/bundles/noos_typical/ING9187xx/apis.json index a896c3c77..e7d62db4f 100644 --- a/bundles/noos_typical/ING9187xx/apis.json +++ b/bundles/noos_typical/ING9187xx/apis.json @@ -198,56 +198,56 @@ "platform_reset": "0x0001d645", "platform_rt_rc_auto_tune": "0x0001d669", "platform_rt_rc_auto_tune2": "0x0001d671", - "platform_rt_rc_tune": "0x0001d715", - "platform_set_abs_timer": "0x0001d729", - "platform_set_evt_callback": "0x0001d72d", - "platform_set_evt_callback_table": "0x0001d741", - "platform_set_irq_callback": "0x0001d74d", - "platform_set_irq_callback_table": "0x0001d769", - "platform_set_rf_clk_source": "0x0001d775", - "platform_set_rf_init_data": "0x0001d781", - "platform_set_rf_power_mapping": "0x0001d78d", - "platform_set_timer": "0x0001d799", - "platform_shutdown": "0x0001d79d", - "platform_switch_app": "0x0001d7a1", - "platform_trace_raw": "0x0001d7cd", - "platform_write_persistent_reg": "0x0001d7e5", - "printf_hexdump": "0x0001d7f5", - "reverse_128": "0x0001db35", - "reverse_24": "0x0001db3b", - "reverse_256": "0x0001db41", - "reverse_48": "0x0001db47", - "reverse_56": "0x0001db4d", - "reverse_64": "0x0001db53", - "reverse_bd_addr": "0x0001db59", - "reverse_bytes": "0x0001db5f", - "sm_add_event_handler": "0x0001dcfd", - "sm_address_resolution_lookup": "0x0001de55", - "sm_authenticated": "0x0001e1d1", - "sm_authorization_decline": "0x0001e1df", - "sm_authorization_grant": "0x0001e1ff", - "sm_authorization_state": "0x0001e21f", - "sm_bonding_decline": "0x0001e239", - "sm_config": "0x0001e695", - "sm_config_conn": "0x0001e6ad", - "sm_encryption_key_size": "0x0001e863", - "sm_just_works_confirm": "0x0001ede9", - "sm_le_device_key": "0x0001f121", - "sm_passkey_input": "0x0001f1b7", - "sm_private_random_address_generation_get": "0x0001f571", - "sm_private_random_address_generation_get_mode": "0x0001f579", - "sm_private_random_address_generation_set_mode": "0x0001f585", - "sm_private_random_address_generation_set_update_period": "0x0001f5ad", - "sm_register_external_ltk_callback": "0x0001f6e9", - "sm_register_oob_data_callback": "0x0001f6f5", - "sm_request_pairing": "0x0001f701", - "sm_send_security_request": "0x000201d7", - "sm_set_accepted_stk_generation_methods": "0x000201fd", - "sm_set_authentication_requirements": "0x00020209", - "sm_set_encryption_key_size_range": "0x00020215", - "sscanf_bd_addr": "0x00020571", - "sysSetPublicDeviceAddr": "0x00020925", - "uuid128_to_str": "0x00020f39", - "uuid_add_bluetooth_prefix": "0x00020f91", - "uuid_has_bluetooth_prefix": "0x00020fb1" + "platform_rt_rc_tune": "0x0001d6f9", + "platform_set_abs_timer": "0x0001d70d", + "platform_set_evt_callback": "0x0001d711", + "platform_set_evt_callback_table": "0x0001d725", + "platform_set_irq_callback": "0x0001d731", + "platform_set_irq_callback_table": "0x0001d74d", + "platform_set_rf_clk_source": "0x0001d759", + "platform_set_rf_init_data": "0x0001d765", + "platform_set_rf_power_mapping": "0x0001d771", + "platform_set_timer": "0x0001d77d", + "platform_shutdown": "0x0001d781", + "platform_switch_app": "0x0001d785", + "platform_trace_raw": "0x0001d7b1", + "platform_write_persistent_reg": "0x0001d7c9", + "printf_hexdump": "0x0001d7d9", + "reverse_128": "0x0001db19", + "reverse_24": "0x0001db1f", + "reverse_256": "0x0001db25", + "reverse_48": "0x0001db2b", + "reverse_56": "0x0001db31", + "reverse_64": "0x0001db37", + "reverse_bd_addr": "0x0001db3d", + "reverse_bytes": "0x0001db43", + "sm_add_event_handler": "0x0001dce1", + "sm_address_resolution_lookup": "0x0001de39", + "sm_authenticated": "0x0001e1b5", + "sm_authorization_decline": "0x0001e1c3", + "sm_authorization_grant": "0x0001e1e3", + "sm_authorization_state": "0x0001e203", + "sm_bonding_decline": "0x0001e21d", + "sm_config": "0x0001e679", + "sm_config_conn": "0x0001e691", + "sm_encryption_key_size": "0x0001e847", + "sm_just_works_confirm": "0x0001edcd", + "sm_le_device_key": "0x0001f105", + "sm_passkey_input": "0x0001f19b", + "sm_private_random_address_generation_get": "0x0001f555", + "sm_private_random_address_generation_get_mode": "0x0001f55d", + "sm_private_random_address_generation_set_mode": "0x0001f569", + "sm_private_random_address_generation_set_update_period": "0x0001f591", + "sm_register_external_ltk_callback": "0x0001f6cd", + "sm_register_oob_data_callback": "0x0001f6d9", + "sm_request_pairing": "0x0001f6e5", + "sm_send_security_request": "0x000201bb", + "sm_set_accepted_stk_generation_methods": "0x000201e1", + "sm_set_authentication_requirements": "0x000201ed", + "sm_set_encryption_key_size_range": "0x000201f9", + "sscanf_bd_addr": "0x00020555", + "sysSetPublicDeviceAddr": "0x00020909", + "uuid128_to_str": "0x00020f1d", + "uuid_add_bluetooth_prefix": "0x00020f75", + "uuid_has_bluetooth_prefix": "0x00020f95" } \ No newline at end of file diff --git a/bundles/noos_typical/ING9187xx/meta.json b/bundles/noos_typical/ING9187xx/meta.json index d7d72e6ab..1c21b8180 100644 --- a/bundles/noos_typical/ING9187xx/meta.json +++ b/bundles/noos_typical/ING9187xx/meta.json @@ -8,7 +8,7 @@ }, "rom": { "base": 16384, - "size": 125044 + "size": 125016 }, "version": [ 1, diff --git a/bundles/noos_typical/ING9187xx/platform.bin b/bundles/noos_typical/ING9187xx/platform.bin index d09b74d587ae5b7c38525c8b2a3e80976b1d57f3..607bd61fa8b8fd5d6d59d40db23e60670f69513c 100644 GIT binary patch delta 6625 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 delta 6568 zcmY*e30PD|@_+T_4Ksk~AdY|pc>@|iBtR4a@!*ih40vGF7_SJ6E`!I4t}b}}6{9P} z7%?rjM^s2+@QmO{22=!$MqT3yF(#VhFCH)$1qY3JGr-JjJtX^W=KJVhcXfAlRdscB z_2W*1;Le zuxFiXyoIya`UMGI<`?9#XC!<~{JfH2o?)Svhn!XQCu@9nsT;bOz@~~b77qFadEGi= zaRM)M9SImb0}dNj56%VHLOT48LOt2f2ZJxU%-?`}2BHZCwvW5vqW^48p60<=Ps5vdy*2C@t*fL3PyXLSQo!z=p;a-p!?TTls%*}szs z>eHAl1PKGp`flzhkGPRG*LajlJ|)Sa0gB zPs4g0j!{+01etjtF}|sR0&@4w@mP9~D2ph^agx5OO2(XJWrDcInpRbuwA$G!6|SYk zepbuqi!6JXoMcI>juD=aMw~|mXry`2qss?XW?Vz2bJnLUWz#Dx@2K)O<|L<)Nh6nq zRP{=dRE3gA^`05ys;*+4)8?;%U|A!p$zS1R{*stRX6veYG-AzNwG7kRJDxTFRvZ1_ zdV8%!8iRaTb8BtUf9nrwk6>N0E^Gd|_72$_xmJ^hvpfVB;nnEfwRis1{;+l~i5!(W zRnjC4dzcE~S=1u`4{ebyOYzWqEl}y>7chK}1thI;jB+7rh;>fK>YerRmLJ0s^eO2Z z^#$pY=8dB~gTw!{*6`XmY%42W1?D4GU^Hk|^WQ8=v~fCdk6H{lWPMa-kMF%hnxnSC z5wbjbKa>!+7$0{%&iq3Mw+m<&5)-p5xafbVH;~Vs9{vn@r7w$CxM-937m&snAJCGv z7$3DHak*rr9xXF^_tbZEvfFe?FPyU+XRIX4M|;8oQaCyQmXMR96QPN8jP`+b#4UCz zd`afVdO{J&jeQIuBx6hf1duIbBHRu32=rXW{ILTBUhp=rAXmodU_5ajn*`Iz%&}2$ zkn9-i9d_AXx*d)&AMrxwhyEYh#Ue-Pc3yDx_cjl(xSM$7FuU{IY0ZvBuknJ~Jb?T# zHWOEl9hZncyJ1`e_>hWmp8aPzK5WtK_{)yPuYJxlRBcu`$dBVzz&J8#d?c3djW312 zlc8~eFrQ3{ONLld95)3#NON3>BvQODw3D#-2)Io$;zz(aQXHQMd&%ASK#wbS#(c_( zn_Z)-A<8t*cg>&yrZJ z1`K4LHWV_+Hf_DzVFxELd1=*J3@#7JES&*15Vw>_-0sAbEC?sZQ&L$M2bq}YMO3Lg zw2_F^FxXErQkT1z*gVa@*_oiOo+#mIZXyp;XToGd?8JVc_}cN(#4zi~)JawlNa|z* zJSC3F+u(D4{ic)1$DA$QX~oeR;-KkVt>oie-ML)KQ%ofaNcl^RXPeK*Ta~VHTDL7H)uv z#P_eMSkM0JhTc1(t*0H6mF(W+^+%k1+IyyUW=V1KXjVwinUnRz&?QXWi;b#RarALk z2==S>Ml5gWmti?JTjE}rEeU%x+wZ?hXnT~noh`}dwx|}%8;ip5EZ7$1hDeI4DvQcT z`uphgf>qqwr57Bci_Ptb+8kmVIMMCM$T1rI^oaiEpUI)clVCGxTb%n!BAtuAA>CQe z>UDahph7dPULt9IcgYlYiK`U#%Ps%t)h1@?Gl((-|Ls1&Z^SjnuiqnEoaB-D3=_mK zd;y8cF+n%cEI-6@o`#Fdt7PzoVeP7B7S@uCyqPePROiLOo8(1aFg!K*u8!iMz%XOI zD+f)6jC@ZeTs5pNQ~*Sf{P(AT*3kHVF^89I){dV5Mi~-!9#-OhJ>GklgMo&x4o0## z&01mu7;F$fDO17`!=dBufX-BLV!I1;8pa#lo#CKiYTZs2S_}^_&g%=cB)-uDD#?t- z9q^fAPON{0XbLg9xxQvc{Unqg`4 zRu+CWyfi%qcYWuA*NeJ-H>c+mTV%4n=5)ie$C)f#GE93q2Vf&P)wT-#Y-sx-3}p18k_g(@98QT5bW=zZB|*$E(3CWAoSh^DbtK zRUx#lX0V;UG=F^`q&%bUA>a#5G%N%;d}mA!fq3v9VcjI~`uf!y3#7Rb`nneiRpELU zbD*(wIBWxmH-^3e`7)?Bo{E6IpuT03PiT5yU%~jxU+!MzE_m_I=4*7`2=IpU#@rE* ztAr-wvsi4xNTc&uTo4w}z;Q4FQjBxPfsI9uv*MwUgKp!)B*0`YlRg&UCUnv2WJrWr zMq4tJ%HXQ;P%5M<;S>5~8hoW_?_zk){E${o2Ln8$*)z~Yv#DtY6sr|IUEQ7L)iHQs z$yj}!!W?GY`8LSqaDvh~upJf}ht36zFs1b5Jluv=M)|u?;|jZtUu8o-*M4g);nn__ z2q>DIbaL}bdVeJvNJp(JAq>)J@G6LaC^}~qgo4gkxC*8KOrUrF0jqst9qH8!2KqkQ z21~GeaC*5V6kL!AXMTe&&Fx{bB^P30BCUS~wp^HocAA<8*8!@i?;1D?KYw#a8_Bj5a4Zhh`T;YQRS9l9`n?pi^RM#xM(H*o`wotE94| zN@mWZKNQ0h#Rar#PI3Va-3_UMytbdFMf}<($JB9fiAnV7jC;OgVBB-ZfN*c-NkdMu zDq46V?xu7%_&NWxQ-K-J6LAx*-3^*VwS}pbne~`XcQr=$MoET=OIVq)B5UDFel#DR zH#9st&qb0{hGBTw3nj}Yx}?j@s;(aE~TYh=Eab1I05MN6RQAPMT|7 z@Y;z4%TJQQIFxL9bq=O%_~>|tM}891g7P-8w)?4g*uiL?ioe_2#m_pyoYKkoy9>a# ziPo-P#bg`sPsIl`Y7cT=MCT*;l%T|3jjiHe?HuFLkcavYw0)i*F0_jMXz3mp>XX*Z zYPMUHs*@IHhAEZ>u*Wz}xB$iNVk*7A2mC@9E7y_E49Sw?9EHPQ@X!TeZKNaldH7p# z&-3G@mbXJH+iA#N$UuMJz8CjeLt!5t)-oEo4;?Fs&ff>i!IL)b12wo&(>^$$DZ8Mo ztl!S;d~f@v!i3*tpyXRcGv?3vh2ZbSn?y`J!M8;Nnj)v?1?#4fY;}w-F9nVB_f`&#*CG}h z_m`sk1`axpC$0#J*dkdGV@|UU(lP;oDcJ%a-6|e%0K+y6MRO@=*C#LumQ&rQFrG!< zfB#cRa6NcV<*yO+LbI4gfA|#6Np{}#8Ki>?efb&2vpKZ>Fgnm88u>Xq9(2p*FZ4l| zG>KpzhKfpOq_4&#cGl47GI-7BYr7IR!6aU_C+h=*VHkbGg{owUa*Qr3!|UT9Ei3~K zdeQMRJb%0B{W6S|qv(Mna2PLu#G{Z5wRGE2(7{xC`zWk(o^J_W`z}g9hfX^N8=QSC znzduF=}CV&hRU?k;N$QNW>W7Hcqe7ks1tA?zRTW6%XQ3!OOI7)E?RB65+lbstCL2l zZ4>J|xsC;(K&m9VQg|wkIwx7VDQhgsc2@Xwq)0r9z^#QR^2F z?DnIT6?R$T+-H_FBPr|@4D~hIoCIk^rA=0J!-Sn6JC2-I=!7;gfG$4;QT?`BRsLMZ z190llGR zU^~0$)zdHxT#YYIOV`MJW9k_g3Ng1WPFiL-w^H6<5^Eh&;5Ui;Yw_CzW?GVEoOG&6 z?E>XGCdjFQ)0)H@%d0U*>Cs9^cH3dkKYiHpwaTxgTRcE*mB{jaW5Ac-2Jn(u2p7;iUi5AiM0z{f z6ll_4#ULBgF;|hd7J?KFQk$WH)i5;Rge|W+aLGPxj1Y%&AJ~}Usx=TW+LzJTMcNsS zM`R^kRt?^P2P}%7VDM=-E5zjO!Uc?$=)BUk1qn`#TXatTlOv*iAEErGs?m+Y=#6Ud zjLfyH!UNeRF19d1R~lFJ)E8P*6>afMZqWo!36i)E*_N6s?peHJ2JciH(0 zzQ74D2TEt1g{l3CSlcpeA`>S}dTjn2t5x_2n*;lnlyJBqu=D_d31k-EhAl7-(edu{7yhGj2 z!v^5#_VZ}n#q{ubw7d_!bsmF%997g{xNMzg6{$2gM`e`w6Gp*5Kp&W zMAOWs)fb@xZqmhHVT_EWa0xPF=U6rP{i8+PYV{YCc=5G}o2|VUpGInBTZ4K6Qj0j| z)s@ZR7pEX-Xc5QJLzmDKHT3o+bp69L^fFo}lqOxq+~TI)Nr=wt7O&H#mofV6Gge*( zd=z!iombEo4$@OsP=duY=_=miJL%G^Xo=(W?p4S~Mdw_DNgi1aIX>l7X5gUFAzpMm z6qnF**KlLsraxT6dn1(k{tG(LME$OVTKyTmBUF_S#lv=o_`)t7rHA548gm_X;$z_Y zb+qhg`s6xjLeF4YCB+)QN@WTsDE_s*Rlz(I2RmfD!4 z3-rT;SN!al?wG0j4Lr)bXw(hRXdm^;lGAgKb3(V+rz>vo#?xC8l;83g+*frJvCdRoMso7+>51tFnUORT$N!`Q<%* zzlmA2@+QQv-PP256TfPHPNN#YS3c=yJa5KX4e*c+*&WC-BY1|ni#QVT4&qwG4-owj zr61dk-;M)W3N0|exb_yjgy2%__T?DnGelXRSHspJevWPVfLC-m&oIa6-rL}};V6>( zV^cy8#1n`E5YHg05hXSQd(jioh;1)K>F3Qe%vo#?LaamdL6pYxh!P)v#IF#;5z7!G z5G8HiM7)9+$uk>z79NF!8%T&k`~@+(7h@2A#P%4(PY}oU;yA>I*dCAg|A=vj(ztj; zX@La9R>VZaHpB^tFA$RurJumR5;U22WteB!p+&+oWBvCKz_RXrY0DjW7lzZMyZFMn zW88ZeZaT@=`LoQ&#-&a00?=PG9^gSZVa$I3JHYJ(c7-F`xyWfV^?d}nZaG8H+DO`i zSWZhH;d!}gta$|cS@-F$ZEH(Wwjr zOE_Q7lkM;5A2+}j$PT*14LZdQ>gHy5se-xLc5ZgrYr#W;`^^4=3m)Q~Ci|ztPu7k8-U|4d?j5jGJJCVH z8Y_?6<cH|S?GQd3Yigj)9oEeB9gt-c%*=^1?l?4|Ac%OF^V;3$AEtt}z1 z$Q2$D963)@!*79yH8eut;B)IwkqUq=E^>eHoVTql~JGP;b5$4?UXZcdAfNA)PiX5{}dL!xHfM z`LKhEo2bEqE{+ZG8YUTJCi&a!yGfx*GJ9{VFL=kSYxK(SdD+d+SN*t}5VItYS|4D!ue9nO%UY{vOY`@X8>I3xRDkBQD)v^1~{W zCzYV%&WG^R;WR5g9Sn4Dyswuu z=9vU%vz{TukLpMI)1Tv$K!c@MKu1@P^o@A+e{AGzNoN*fT~+1IllM5D=yBI3D8QbxhZ+L$2T*d$I%aCOrAy917^;) z21k|BsIk6KLQ}_vz-~HkY%)gK(Xjz=h<-IT%l{YqfBJKLuL|q2cwWcX-nE&WV$2yI z8=)}??I6%VV+iEXL}Rp9f-{;A=ZWnD7ocQ6+rQ{qV;UsT%f?h_q~3`m;3`c|^dFMt zEZYo+$$L6})|TKcPB8`RI^I3FpKYSut4)U*rgxq^rr$chzmE5@l~S5G3sh80Ohy|= zB}GFfElBe9+UeTTs^9w8tqb}e&=KZi8%1{}y#a4hb#g3RqzTDo&_r)1hrt!9PBFm| znw63XYiU_Zq-0S_ApC{iONoY58kiabku)nc8Ps%VYMA#07qNZPL3D++nkqT3LJRKG zE2$Ci9qmY+!8M1|>HKRDPwV(pm`IhT7#L1RnW7<(mYKBlEzjHfG4JHuF?K7n#OI!vVTt+y*oh(ieDzofxRo z6{;(G+@9%Un@v}zhj@)SG5Ald*|ah}S_>x(e`wSYt+7^QGDhE4DwF;EP5Kz_4^>%!N`qcS1V4(K;a>at*z7bw2hEB>Y3GngO!u4m?Tr&Xr>m#!`E!dkbowoh zyFY}w<-P+qt=n^z3a>v68NrcZ*7Cm!@JHg8%#sqnV0I7&^yb-8SU1cbflu|E1Uz2S z=4=3|>9q~`oHkeL*giJ|pH*{b;8U9~;?r~9TzoE@w+4#n(|PGwPMp8y`6>1Je5vlW zz!c#zBv=6A&+if6_0jZS``6))~BmR$lYRIRX4Z7HEZfm{s8sX89zUg!8~i$opT)WiniqzYIxd`2A(+`c{O62 zDs5v>A6u3+z3qKD$gM5+*2p|F9G{_ABF)7?y=@tE@k8ccf&qdz9zuxPXjT&4auw12 z`}D>w8>!xQ1gF1j+rYtiYxd)I@Ve@p{o=N+|Jd>hciLsL-nNU@%%@h4bK0$P`*eV_ zbVkQAjK=F7`=FRE>s$$cr;j?rV58N)tB(v;TO*wNt*|~Tgl&DL9m`zU|H>fEe*^P4}ox&?TbeZp9(@eB!a)T`z>CVU$>&T zL>e2N|Jh@uX5;E!Hnre23N`_R2zy6^MFx37kP+SoZIxY-()dn(B?(qM-L=e%_e0G` z*k#lN{}kF1VYv!k5N3?SDmrFGI!*{YW8)zP1`C(QgM)(r;j2uTr-0Xlm~6mnXDExG z3Rj?(sdFG1E(sYqP$q++!o%r6RdAQBodxHV!<uf~~8 zo&=8s4|Bae!Yd-L!X5>^dX$)1?uH&E%QnC$C}Ne*;K2r%4F47qOF+qiilw~+Ct)d5 zY(mw!Ld+(}mBB?}`xe}HIKb4~U@fKuka3(DXZc5)Yt@Ji{9N|RPy+BG;0 z5IvyT}r$S{UWN^nsU$&akrB*GFxz`bdttBXG^?@CdrVL7d=*STyn2GneEz% zLXaDO6<=gc=vankOg zkyj{6@c^08BF3`EM`0se7gqlZW&wn;+n<29XQ4|~YuO0Fe!5oCmq7&v|6vwW0gE8k zPM76asQr9UWT{iUYL6(%FG)0(7l&i*65D)15Rjy^?W{#t7kFQNFGbr!)o08cUV>pT!I@c@B}94 zFKqh>XwRD59n5>^4ScI;=^n%zFcAukz4fi)o2Q&rZhUWZe_qQg=lfO?yXnwy z`$e~kyhDXPZWYZAQ+^0P2x-y4SDU1kLG02=4A23r~ekj|{=x4AO`8&D}yrXt@xan2q`{JHX`J>sO zG@J9JrK$LPqUK~h23F}wPqMcgh}MlG3bwco>2x`3uR|(C&zwcF`k0lUMauhv{csj? zgRVN{Pq(d5H7X9>7r%7$GH8O+(7~(h_DZSc0?R%J5uVfS9KXYE^vXeN3fQJ|5E{7M z;l@i6TOG1(m)o!tWJgfbk~IFl=wO%6L9AD^sI+T><&W-w+aoh+!l?5;kGp-2Wt_)N zz0WqEhajNr=y~*OZ{fmu^anam`voil8(aSc%!8Bc;TM?C*I38}%#Te%<^_q$ZwUv# zM9R=+yWGrVuzabazEv!9N^cFV80fdZf&ldx*R$#-rnm?u≺zvHkWhG(n}^VjG)w z5kk3M4x#uWcmOP9n=j#3u4Cse;XyQ#J-UQM63O;{4H@aDT&43#$i;E=gjkXv%x7&?RJRGE)sGUCC_62{H|ZyPMOVy7IAGC@TW_gkUL{9 zL#%&ew-P zy;EeJamXc4*rm(hAGX}C?8*I*E{=~c+JO^{aK#mstt?4$YgnJ=7Ca$3F0e@qWbWTU zU`AVKMI|28i}Txv&MB63s2i7KPTm)@?8|yE)lR}MG%V>UC)hQW@5z<@ z*?r4y-)`qB`&?kh)$R$zY-NFiO1`tI{jLIySE!*7%Rd&lJ+FbKU%RD-=8#Jghz( zjr&DRWzc||x`z#Ez%c5^W;Gz4e#XuqGj#3PXGW(_~#C-jZ++xDGd7u9tSh!B$*_1$aMdxr%p+7^eRgBRY&F zev1@wg6;bj0$K65FaSP~%31POiD9373rX(2-9NQum)@S&B)-5Bufd0siffRp&Ug$Y z1s5}#MPG+V?x~vnv*?@ynGTatCupVNj%ERe!$CyztfG6E9w@t?5iJ;>-q^^KLWlhEoKjH z;BEIjbH9luO=D#@@$6r~zPgFtiDa=qfdwuy;U~x#(&kX$+n>e;a%gagXI*#1`wkti zsqHIM8#Pt* z%Au*cBZfL$;^Q6~xFbffowvZkDNZoIM)ZFn8_|e6bByIQg5I|f?_yH$1XZcV$$90) z&3BdLj<}0$Z3Hc>Vz(R7-=`Wu6}Zv?+m71Rd7JI-#t>dUeh{80v-9)$Qj@c`M3M`F zTn4xCT-(6{Z$oOpU`Gh=HXgQZwyW}H=MUo5`e(xU;g+qwjjZG0U?1HEovHM>357k^ z207m?PUtiaC_c76Np)3+r%imP^hu`BNc7DjoX*=Co|3oW#lphc!YU8GZnJ_fOM>s4 z#re$r4kUQG^$2Tvguh`qchL30Y|R}Ai5%H^JPEEY`PA7K!zc0ayvlq}Jl0Vfun1oyD9Ltf(i1!hvApVA!jp#s}iYOxHAZk(mWyEB}Y0vA^5eH-a z6+|WCtB8P@i^w5DH-2hGjKTV2)H4k60b-_(^d}+Mu@W2H5rYt=ABO`bC2*{v1NsWL z+TkfgNb?5D33&-o=J8By6`}#_ioVa<6*@wOF~>a!S`&lKFJM(dZ^YqIlV8jeW17b8{G@`Vup@>;nkJXViJrfVd zh8%1df%qa~+;faal>9v!(FfbdJjbz!bFrR)7=~y>l;jc-r3sP{7h-!d;$p-U#N~*o zh|-VOJu}p#b0_2t>@Z`)8$##<2;m@=r9DIfUdYNH;=5M3;CKjYm5Pt!Ir6ozUW8;$ zu@t|t$yj9JB4$R4T@d;IeJ9`% delta 6845 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 delta 9085 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 AH2?qr delta 8190 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 DtdV9z diff --git a/bundles/typical/ING9188xx/apis.json b/bundles/typical/ING9188xx/apis.json index bd0c252fa..58bc58278 100644 --- a/bundles/typical/ING9188xx/apis.json +++ b/bundles/typical/ING9188xx/apis.json @@ -211,136 +211,136 @@ "platform_reset": "0x0001eaa5", "platform_rt_rc_auto_tune": "0x0001eac9", "platform_rt_rc_auto_tune2": "0x0001ead1", - "platform_rt_rc_tune": "0x0001eb75", - "platform_set_abs_timer": "0x0001eb89", - "platform_set_evt_callback": "0x0001eb8d", - "platform_set_evt_callback_table": "0x0001eba1", - "platform_set_irq_callback": "0x0001ebad", - "platform_set_irq_callback_table": "0x0001ebc9", - "platform_set_rf_clk_source": "0x0001ebd5", - "platform_set_rf_init_data": "0x0001ebe1", - "platform_set_rf_power_mapping": "0x0001ebed", - "platform_set_timer": "0x0001ebf9", - "platform_shutdown": "0x0001ebfd", - "platform_switch_app": "0x0001ec01", - "platform_trace_raw": "0x0001ec2d", - "platform_write_persistent_reg": "0x0001ec45", - "printf_hexdump": "0x0001edf9", - "pvPortMalloc": "0x0001f8ed", - "pvTaskIncrementMutexHeldCount": "0x0001f9d5", - "pvTimerGetTimerID": "0x0001f9ed", - "pxPortInitialiseStack": "0x0001fa19", - "reverse_128": "0x0001fbf9", - "reverse_24": "0x0001fbff", - "reverse_256": "0x0001fc05", - "reverse_48": "0x0001fc0b", - "reverse_56": "0x0001fc11", - "reverse_64": "0x0001fc17", - "reverse_bd_addr": "0x0001fc1d", - "reverse_bytes": "0x0001fc23", - "sm_add_event_handler": "0x0001ff11", - "sm_address_resolution_lookup": "0x00020069", - "sm_authenticated": "0x000203e5", - "sm_authorization_decline": "0x000203f3", - "sm_authorization_grant": "0x00020413", - "sm_authorization_state": "0x00020433", - "sm_bonding_decline": "0x0002044d", - "sm_config": "0x000208a9", - "sm_config_conn": "0x000208c1", - "sm_encryption_key_size": "0x00020a77", - "sm_just_works_confirm": "0x00020ffd", - "sm_le_device_key": "0x00021335", - "sm_passkey_input": "0x000213cb", - "sm_private_random_address_generation_get": "0x00021785", - "sm_private_random_address_generation_get_mode": "0x0002178d", - "sm_private_random_address_generation_set_mode": "0x00021799", - "sm_private_random_address_generation_set_update_period": "0x000217c1", - "sm_register_external_ltk_callback": "0x000218fd", - "sm_register_oob_data_callback": "0x00021909", - "sm_request_pairing": "0x00021915", - "sm_send_security_request": "0x000223eb", - "sm_set_accepted_stk_generation_methods": "0x00022411", - "sm_set_authentication_requirements": "0x0002241d", - "sm_set_encryption_key_size_range": "0x00022429", - "sscanf_bd_addr": "0x00022785", - "sysSetPublicDeviceAddr": "0x00022b39", - "uuid128_to_str": "0x000232e5", - "uuid_add_bluetooth_prefix": "0x0002333d", - "uuid_has_bluetooth_prefix": "0x0002335d", - "uxListRemove": "0x00023379", - "uxQueueMessagesWaiting": "0x000233a1", - "uxQueueMessagesWaitingFromISR": "0x000233c9", - "uxQueueSpacesAvailable": "0x000233e5", - "uxTaskGetStackHighWaterMark": "0x00023411", - "uxTaskPriorityGet": "0x00023431", - "uxTaskPriorityGetFromISR": "0x0002344d", - "vListInitialise": "0x00023507", - "vListInitialiseItem": "0x0002351d", - "vListInsert": "0x00023523", - "vListInsertEnd": "0x00023553", - "vPortEndScheduler": "0x0002356d", - "vPortEnterCritical": "0x00023599", - "vPortExitCritical": "0x000235dd", - "vPortFree": "0x00023611", - "vPortSuppressTicksAndSleep": "0x000236a5", - "vPortValidateInterruptPriority": "0x000237cd", - "vQueueDelete": "0x00023829", - "vQueueWaitForMessageRestricted": "0x00023855", - "vTaskDelay": "0x0002389d", - "vTaskInternalSetTimeOutState": "0x000238e9", - "vTaskMissedYield": "0x000238f9", - "vTaskPlaceOnEventList": "0x00023905", - "vTaskPlaceOnEventListRestricted": "0x0002393d", - "vTaskPriorityDisinheritAfterTimeout": "0x0002397d", - "vTaskPrioritySet": "0x00023a29", - "vTaskResume": "0x00023af1", - "vTaskStartScheduler": "0x00023b75", - "vTaskStepTick": "0x00023c05", - "vTaskSuspend": "0x00023c35", - "vTaskSuspendAll": "0x00023cf1", - "vTaskSwitchContext": "0x00023d01", - "xPortStartScheduler": "0x00023db1", - "xQueueAddToSet": "0x00023e79", - "xQueueCreateCountingSemaphore": "0x00023e9d", - "xQueueCreateCountingSemaphoreStatic": "0x00023ed9", - "xQueueCreateMutex": "0x00023f1d", - "xQueueCreateMutexStatic": "0x00023f33", - "xQueueCreateSet": "0x00023f4d", - "xQueueGenericCreate": "0x00023f55", - "xQueueGenericCreateStatic": "0x00023fa1", - "xQueueGenericReset": "0x00024009", - "xQueueGenericSend": "0x00024095", - "xQueueGenericSendFromISR": "0x00024201", - "xQueueGiveFromISR": "0x000242c1", - "xQueueGiveMutexRecursive": "0x00024365", - "xQueueIsQueueEmptyFromISR": "0x000243a5", - "xQueueIsQueueFullFromISR": "0x000243c9", - "xQueuePeek": "0x000243f1", - "xQueuePeekFromISR": "0x00024519", - "xQueueReceive": "0x00024585", - "xQueueReceiveFromISR": "0x000246b1", - "xQueueRemoveFromSet": "0x00024745", - "xQueueSelectFromSet": "0x00024767", - "xQueueSelectFromSetFromISR": "0x00024779", - "xQueueSemaphoreTake": "0x0002478d", - "xQueueTakeMutexRecursive": "0x000248f9", - "xTaskCheckForTimeOut": "0x0002493d", - "xTaskCreate": "0x000249ad", - "xTaskCreateStatic": "0x00024a09", - "xTaskGetCurrentTaskHandle": "0x00024a79", - "xTaskGetSchedulerState": "0x00024a85", - "xTaskGetTickCount": "0x00024aa1", - "xTaskGetTickCountFromISR": "0x00024aad", - "xTaskIncrementTick": "0x00024abd", - "xTaskPriorityDisinherit": "0x00024b89", - "xTaskPriorityInherit": "0x00024c1d", - "xTaskRemoveFromEventList": "0x00024cb1", - "xTaskResumeAll": "0x00024d31", - "xTaskResumeFromISR": "0x00024df9", - "xTimerCreate": "0x00024e85", - "xTimerCreateStatic": "0x00024eb9", - "xTimerCreateTimerTask": "0x00024ef1", - "xTimerGenericCommand": "0x00024f5d", - "xTimerGetExpiryTime": "0x00024fcd", - "xTimerGetTimerDaemonTaskHandle": "0x00024fed" + "platform_rt_rc_tune": "0x0001eb59", + "platform_set_abs_timer": "0x0001eb6d", + "platform_set_evt_callback": "0x0001eb71", + "platform_set_evt_callback_table": "0x0001eb85", + "platform_set_irq_callback": "0x0001eb91", + "platform_set_irq_callback_table": "0x0001ebad", + "platform_set_rf_clk_source": "0x0001ebb9", + "platform_set_rf_init_data": "0x0001ebc5", + "platform_set_rf_power_mapping": "0x0001ebd1", + "platform_set_timer": "0x0001ebdd", + "platform_shutdown": "0x0001ebe1", + "platform_switch_app": "0x0001ebe5", + "platform_trace_raw": "0x0001ec11", + "platform_write_persistent_reg": "0x0001ec29", + "printf_hexdump": "0x0001eddd", + "pvPortMalloc": "0x0001f8d1", + "pvTaskIncrementMutexHeldCount": "0x0001f9b9", + "pvTimerGetTimerID": "0x0001f9d1", + "pxPortInitialiseStack": "0x0001f9fd", + "reverse_128": "0x0001fbdd", + "reverse_24": "0x0001fbe3", + "reverse_256": "0x0001fbe9", + "reverse_48": "0x0001fbef", + "reverse_56": "0x0001fbf5", + "reverse_64": "0x0001fbfb", + "reverse_bd_addr": "0x0001fc01", + "reverse_bytes": "0x0001fc07", + "sm_add_event_handler": "0x0001fef5", + "sm_address_resolution_lookup": "0x0002004d", + "sm_authenticated": "0x000203c9", + "sm_authorization_decline": "0x000203d7", + "sm_authorization_grant": "0x000203f7", + "sm_authorization_state": "0x00020417", + "sm_bonding_decline": "0x00020431", + "sm_config": "0x0002088d", + "sm_config_conn": "0x000208a5", + "sm_encryption_key_size": "0x00020a5b", + "sm_just_works_confirm": "0x00020fe1", + "sm_le_device_key": "0x00021319", + "sm_passkey_input": "0x000213af", + "sm_private_random_address_generation_get": "0x00021769", + "sm_private_random_address_generation_get_mode": "0x00021771", + "sm_private_random_address_generation_set_mode": "0x0002177d", + "sm_private_random_address_generation_set_update_period": "0x000217a5", + "sm_register_external_ltk_callback": "0x000218e1", + "sm_register_oob_data_callback": "0x000218ed", + "sm_request_pairing": "0x000218f9", + "sm_send_security_request": "0x000223cf", + "sm_set_accepted_stk_generation_methods": "0x000223f5", + "sm_set_authentication_requirements": "0x00022401", + "sm_set_encryption_key_size_range": "0x0002240d", + "sscanf_bd_addr": "0x00022769", + "sysSetPublicDeviceAddr": "0x00022b1d", + "uuid128_to_str": "0x000232c9", + "uuid_add_bluetooth_prefix": "0x00023321", + "uuid_has_bluetooth_prefix": "0x00023341", + "uxListRemove": "0x0002335d", + "uxQueueMessagesWaiting": "0x00023385", + "uxQueueMessagesWaitingFromISR": "0x000233ad", + "uxQueueSpacesAvailable": "0x000233c9", + "uxTaskGetStackHighWaterMark": "0x000233f5", + "uxTaskPriorityGet": "0x00023415", + "uxTaskPriorityGetFromISR": "0x00023431", + "vListInitialise": "0x000234eb", + "vListInitialiseItem": "0x00023501", + "vListInsert": "0x00023507", + "vListInsertEnd": "0x00023537", + "vPortEndScheduler": "0x00023551", + "vPortEnterCritical": "0x0002357d", + "vPortExitCritical": "0x000235c1", + "vPortFree": "0x000235f5", + "vPortSuppressTicksAndSleep": "0x00023689", + "vPortValidateInterruptPriority": "0x000237b1", + "vQueueDelete": "0x0002380d", + "vQueueWaitForMessageRestricted": "0x00023839", + "vTaskDelay": "0x00023881", + "vTaskInternalSetTimeOutState": "0x000238cd", + "vTaskMissedYield": "0x000238dd", + "vTaskPlaceOnEventList": "0x000238e9", + "vTaskPlaceOnEventListRestricted": "0x00023921", + "vTaskPriorityDisinheritAfterTimeout": "0x00023961", + "vTaskPrioritySet": "0x00023a0d", + "vTaskResume": "0x00023ad5", + "vTaskStartScheduler": "0x00023b59", + "vTaskStepTick": "0x00023be9", + "vTaskSuspend": "0x00023c19", + "vTaskSuspendAll": "0x00023cd5", + "vTaskSwitchContext": "0x00023ce5", + "xPortStartScheduler": "0x00023d95", + "xQueueAddToSet": "0x00023e5d", + "xQueueCreateCountingSemaphore": "0x00023e81", + "xQueueCreateCountingSemaphoreStatic": "0x00023ebd", + "xQueueCreateMutex": "0x00023f01", + "xQueueCreateMutexStatic": "0x00023f17", + "xQueueCreateSet": "0x00023f31", + "xQueueGenericCreate": "0x00023f39", + "xQueueGenericCreateStatic": "0x00023f85", + "xQueueGenericReset": "0x00023fed", + "xQueueGenericSend": "0x00024079", + "xQueueGenericSendFromISR": "0x000241e5", + "xQueueGiveFromISR": "0x000242a5", + "xQueueGiveMutexRecursive": "0x00024349", + "xQueueIsQueueEmptyFromISR": "0x00024389", + "xQueueIsQueueFullFromISR": "0x000243ad", + "xQueuePeek": "0x000243d5", + "xQueuePeekFromISR": "0x000244fd", + "xQueueReceive": "0x00024569", + "xQueueReceiveFromISR": "0x00024695", + "xQueueRemoveFromSet": "0x00024729", + "xQueueSelectFromSet": "0x0002474b", + "xQueueSelectFromSetFromISR": "0x0002475d", + "xQueueSemaphoreTake": "0x00024771", + "xQueueTakeMutexRecursive": "0x000248dd", + "xTaskCheckForTimeOut": "0x00024921", + "xTaskCreate": "0x00024991", + "xTaskCreateStatic": "0x000249ed", + "xTaskGetCurrentTaskHandle": "0x00024a5d", + "xTaskGetSchedulerState": "0x00024a69", + "xTaskGetTickCount": "0x00024a85", + "xTaskGetTickCountFromISR": "0x00024a91", + "xTaskIncrementTick": "0x00024aa1", + "xTaskPriorityDisinherit": "0x00024b6d", + "xTaskPriorityInherit": "0x00024c01", + "xTaskRemoveFromEventList": "0x00024c95", + "xTaskResumeAll": "0x00024d15", + "xTaskResumeFromISR": "0x00024ddd", + "xTimerCreate": "0x00024e69", + "xTimerCreateStatic": "0x00024e9d", + "xTimerCreateTimerTask": "0x00024ed5", + "xTimerGenericCommand": "0x00024f41", + "xTimerGetExpiryTime": "0x00024fb1", + "xTimerGetTimerDaemonTaskHandle": "0x00024fd1" } \ No newline at end of file diff --git a/bundles/typical/ING9188xx/meta.json b/bundles/typical/ING9188xx/meta.json index 7d7c9ba22..49cc80d0e 100644 --- a/bundles/typical/ING9188xx/meta.json +++ b/bundles/typical/ING9188xx/meta.json @@ -8,7 +8,7 @@ }, "rom": { "base": 16384, - "size": 141872 + "size": 141844 }, "version": [ 1, diff --git a/bundles/typical/ING9188xx/platform.bin b/bundles/typical/ING9188xx/platform.bin index eb163318a7872d5a19d03189025166dee69ea6e4..bcc68f41061abe80c54677e184c46e430b3fc076 100644 GIT binary patch delta 8326 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 delta 8355 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 U<#QJg3>+NjICnXH5XcPse;F=r<^TWy diff --git a/examples-gcc/central_fota/central_fota.ingw b/examples-gcc/central_fota/central_fota.ingw index 2665b1ba3..eb46b8f08 100644 --- a/examples-gcc/central_fota/central_fota.ingw +++ b/examples-gcc/central_fota/central_fota.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples-gcc/get_started/get_started.ingw b/examples-gcc/get_started/get_started.ingw index 086abfb19..50b85d35e 100644 --- a/examples-gcc/get_started/get_started.ingw +++ b/examples-gcc/get_started/get_started.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw b/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw index 257c16a3b..aed5a0543 100644 --- a/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw +++ b/examples-gcc/peripheral_console_liteos/peripheral_console_liteos.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 125044, + "size": 125016, "base": 16384 }, "ram": { diff --git a/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw b/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw index 9cd648ee9..224521129 100644 --- a/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw +++ b/examples-gcc/peripheral_ibeacon/peripheral_ibeacon.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples-gcc/smart_home_hub/smart_home_hub.ingw b/examples-gcc/smart_home_hub/smart_home_hub.ingw index 96a86a8ab..6dba78e61 100644 --- a/examples-gcc/smart_home_hub/smart_home_hub.ingw +++ b/examples-gcc/smart_home_hub/smart_home_hub.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples-iar/peripheral_ibeacon/generic_cortex.icf b/examples-iar/peripheral_ibeacon/generic_cortex.icf index 0445480b4..8065fa941 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__ = 536900792; +define symbol __ICFEDIT_region_IRAM1_start__ = 536900792; 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.ingw b/examples-iar/peripheral_ibeacon/peripheral_ibeacon.ingw index 93c31cf60..30d0d0d72 100644 --- a/examples-iar/peripheral_ibeacon/peripheral_ibeacon.ingw +++ b/examples-iar/peripheral_ibeacon/peripheral_ibeacon.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples-rowley/peripheral_ibeacon/peripheral_ibeacon.ingw b/examples-rowley/peripheral_ibeacon/peripheral_ibeacon.ingw index 4b2efe6d3..dc41aa10a 100644 --- a/examples-rowley/peripheral_ibeacon/peripheral_ibeacon.ingw +++ b/examples-rowley/peripheral_ibeacon/peripheral_ibeacon.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples-segger/peripheral_ibeacon/peripheral_ibeacon.ingw b/examples-segger/peripheral_ibeacon/peripheral_ibeacon.ingw index b39a50aa6..77574601a 100644 --- a/examples-segger/peripheral_ibeacon/peripheral_ibeacon.ingw +++ b/examples-segger/peripheral_ibeacon/peripheral_ibeacon.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/anti_lost_mas/anti_lost_mas.ingw b/examples/anti_lost_mas/anti_lost_mas.ingw index 61d157ae5..34c7f513a 100644 --- a/examples/anti_lost_mas/anti_lost_mas.ingw +++ b/examples/anti_lost_mas/anti_lost_mas.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/anti_lost_sla/anti_lost_sla.ingw b/examples/anti_lost_sla/anti_lost_sla.ingw index f88951392..7a4e790fa 100644 --- a/examples/anti_lost_sla/anti_lost_sla.ingw +++ b/examples/anti_lost_sla/anti_lost_sla.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/ble_rpc/ble_rpc.ingw b/examples/ble_rpc/ble_rpc.ingw index 4d74288c0..2b48da28a 100644 --- a/examples/ble_rpc/ble_rpc.ingw +++ b/examples/ble_rpc/ble_rpc.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 146528, + "size": 146500, "base": 16384 }, "ram": { diff --git a/examples/bqb_rf/bqb_rf.ingw b/examples/bqb_rf/bqb_rf.ingw index 2f002dcd0..dac4570d5 100644 --- a/examples/bqb_rf/bqb_rf.ingw +++ b/examples/bqb_rf/bqb_rf.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 161340, + "size": 161312, "base": 33562624 }, "ram": { diff --git a/examples/central_cte/central_cte.ingw b/examples/central_cte/central_cte.ingw index a6ba59868..abec357b3 100644 --- a/examples/central_cte/central_cte.ingw +++ b/examples/central_cte/central_cte.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 146528, + "size": 146500, "base": 16384 }, "ram": { diff --git a/examples/central_fota/central_fota.ingw b/examples/central_fota/central_fota.ingw index 5df3c8a04..1bed2e6ca 100644 --- a/examples/central_fota/central_fota.ingw +++ b/examples/central_fota/central_fota.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/central_mass_conn/central_mass_conn.ingw b/examples/central_mass_conn/central_mass_conn.ingw index ebba4adac..b9b15a92e 100644 --- a/examples/central_mass_conn/central_mass_conn.ingw +++ b/examples/central_mass_conn/central_mass_conn.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135900, + "size": 135872, "base": 16384 }, "ram": { diff --git a/examples/central_throughput/central_throughput.ingw b/examples/central_throughput/central_throughput.ingw index 5b0ad7050..57a1212bf 100644 --- a/examples/central_throughput/central_throughput.ingw +++ b/examples/central_throughput/central_throughput.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/coremark/coremark.ingw b/examples/coremark/coremark.ingw index 5f4410c7c..275b28073 100644 --- a/examples/coremark/coremark.ingw +++ b/examples/coremark/coremark.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 141872, + "size": 141844, "base": 16384 }, "ram": { diff --git a/examples/data_logger/data_logger.ingw b/examples/data_logger/data_logger.ingw index e88585a0b..fe45308da 100644 --- a/examples/data_logger/data_logger.ingw +++ b/examples/data_logger/data_logger.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/direct_conn/direct_conn.ingw b/examples/direct_conn/direct_conn.ingw index 4ddc180b7..1498ab910 100644 --- a/examples/direct_conn/direct_conn.ingw +++ b/examples/direct_conn/direct_conn.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 152028, + "size": 151996, "base": 16384 }, "ram": { diff --git a/examples/ext_ackable_packet/ext_ackable_packet.ingw b/examples/ext_ackable_packet/ext_ackable_packet.ingw index cb67b79aa..87c92ed5a 100644 --- a/examples/ext_ackable_packet/ext_ackable_packet.ingw +++ b/examples/ext_ackable_packet/ext_ackable_packet.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 146528, + "size": 146500, "base": 16384 }, "ram": { diff --git a/examples/ext_raw_packet/ext_raw_packet.ingw b/examples/ext_raw_packet/ext_raw_packet.ingw index 974e92b69..94f1298ab 100644 --- a/examples/ext_raw_packet/ext_raw_packet.ingw +++ b/examples/ext_raw_packet/ext_raw_packet.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 146528, + "size": 146500, "base": 16384 }, "ram": { diff --git a/examples/ext_raw_packet_noos/ext_raw_packet_noos.ingw b/examples/ext_raw_packet_noos/ext_raw_packet_noos.ingw index de22f2848..169812931 100644 --- a/examples/ext_raw_packet_noos/ext_raw_packet_noos.ingw +++ b/examples/ext_raw_packet_noos/ext_raw_packet_noos.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135748, + "size": 135720, "base": 16384 }, "ram": { diff --git a/examples/gatt_relay/gatt_relay.ingw b/examples/gatt_relay/gatt_relay.ingw index 689421986..e351bc7ff 100644 --- a/examples/gatt_relay/gatt_relay.ingw +++ b/examples/gatt_relay/gatt_relay.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/get_started/get_started.ingw b/examples/get_started/get_started.ingw index e130557f2..54792867e 100644 --- a/examples/get_started/get_started.ingw +++ b/examples/get_started/get_started.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/hid_keyboard/hid_keyboard.ingw b/examples/hid_keyboard/hid_keyboard.ingw index df927a0dd..e13312a75 100644 --- a/examples/hid_keyboard/hid_keyboard.ingw +++ b/examples/hid_keyboard/hid_keyboard.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/hid_mouse/hid_mouse.ingw b/examples/hid_mouse/hid_mouse.ingw index 8f8cea343..b92d5addc 100644 --- a/examples/hid_mouse/hid_mouse.ingw +++ b/examples/hid_mouse/hid_mouse.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/ibeacon_scanner/ibeacon_scanner.ingw b/examples/ibeacon_scanner/ibeacon_scanner.ingw index 58ac593c0..eab70d854 100644 --- a/examples/ibeacon_scanner/ibeacon_scanner.ingw +++ b/examples/ibeacon_scanner/ibeacon_scanner.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/io_over_ble_mas/io_over_ble_mas.ingw b/examples/io_over_ble_mas/io_over_ble_mas.ingw index b405b7119..2f860789c 100644 --- a/examples/io_over_ble_mas/io_over_ble_mas.ingw +++ b/examples/io_over_ble_mas/io_over_ble_mas.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/io_over_ble_sla/io_over_ble_sla.ingw b/examples/io_over_ble_sla/io_over_ble_sla.ingw index 2cff2e360..4282cf385 100644 --- a/examples/io_over_ble_sla/io_over_ble_sla.ingw +++ b/examples/io_over_ble_sla/io_over_ble_sla.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/l2cap_psm/l2cap_psm.ingw b/examples/l2cap_psm/l2cap_psm.ingw index 2b6feee6e..a8d5c3bfb 100644 --- a/examples/l2cap_psm/l2cap_psm.ingw +++ b/examples/l2cap_psm/l2cap_psm.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/littleVGL/littleVGL.ingw b/examples/littleVGL/littleVGL.ingw index 3bb868284..367bb975b 100644 --- a/examples/littleVGL/littleVGL.ingw +++ b/examples/littleVGL/littleVGL.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/llsync_light/llsync_light.ingw b/examples/llsync_light/llsync_light.ingw index d71a1228d..e46bae107 100644 --- a/examples/llsync_light/llsync_light.ingw +++ b/examples/llsync_light/llsync_light.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/mesh-light/mesh-light.ingw b/examples/mesh-light/mesh-light.ingw index a8827902c..4e5001bb7 100644 --- a/examples/mesh-light/mesh-light.ingw +++ b/examples/mesh-light/mesh-light.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 141236, + "size": 141212, "base": 16384 }, "ram": { diff --git a/examples/pawr/pawr.ingw b/examples/pawr/pawr.ingw index 7ce6a5b28..5e9444e09 100644 --- a/examples/pawr/pawr.ingw +++ b/examples/pawr/pawr.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 173892, + "size": 173864, "base": 33562624 }, "ram": { diff --git a/examples/periodic_advertiser/periodic_advertiser.ingw b/examples/periodic_advertiser/periodic_advertiser.ingw index 5ff64af6e..fbdf217d6 100644 --- a/examples/periodic_advertiser/periodic_advertiser.ingw +++ b/examples/periodic_advertiser/periodic_advertiser.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 141872, + "size": 141844, "base": 16384 }, "ram": { diff --git a/examples/periodic_scanner/periodic_scanner.ingw b/examples/periodic_scanner/periodic_scanner.ingw index 2f016488a..c9f60a761 100644 --- a/examples/periodic_scanner/periodic_scanner.ingw +++ b/examples/periodic_scanner/periodic_scanner.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 141872, + "size": 141844, "base": 16384 }, "ram": { diff --git a/examples/peripheral_ancs/peripheral_ancs.ingw b/examples/peripheral_ancs/peripheral_ancs.ingw index 121b87554..f863db9cc 100644 --- a/examples/peripheral_ancs/peripheral_ancs.ingw +++ b/examples/peripheral_ancs/peripheral_ancs.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/peripheral_band/peripheral_band.ingw b/examples/peripheral_band/peripheral_band.ingw index 0a688a08c..5dbe951ba 100644 --- a/examples/peripheral_band/peripheral_band.ingw +++ b/examples/peripheral_band/peripheral_band.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/peripheral_battery/peripheral_battery.ingw b/examples/peripheral_battery/peripheral_battery.ingw index fccf63a1f..44ba04c14 100644 --- a/examples/peripheral_battery/peripheral_battery.ingw +++ b/examples/peripheral_battery/peripheral_battery.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/peripheral_console/peripheral_console.ingw b/examples/peripheral_console/peripheral_console.ingw index 764db2eda..bbf1d33b5 100644 --- a/examples/peripheral_console/peripheral_console.ingw +++ b/examples/peripheral_console/peripheral_console.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135356, + "size": 135328, "base": 16384 }, "ram": { diff --git a/examples/peripheral_console_freertos/peripheral_console_freertos.ingw b/examples/peripheral_console_freertos/peripheral_console_freertos.ingw index b84623bf6..269c6ec26 100644 --- a/examples/peripheral_console_freertos/peripheral_console_freertos.ingw +++ b/examples/peripheral_console_freertos/peripheral_console_freertos.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 125044, + "size": 125016, "base": 16384 }, "ram": { diff --git a/examples/peripheral_console_realtime/peripheral_console_realtime.ingw b/examples/peripheral_console_realtime/peripheral_console_realtime.ingw index 34895df64..5fc2276e4 100644 --- a/examples/peripheral_console_realtime/peripheral_console_realtime.ingw +++ b/examples/peripheral_console_realtime/peripheral_console_realtime.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 144932, + "size": 144904, "base": 33562624 }, "ram": { diff --git a/examples/peripheral_console_rt-thread/peripheral_console_rt-thread.ingw b/examples/peripheral_console_rt-thread/peripheral_console_rt-thread.ingw index 7d4768363..e3c239cc5 100644 --- a/examples/peripheral_console_rt-thread/peripheral_console_rt-thread.ingw +++ b/examples/peripheral_console_rt-thread/peripheral_console_rt-thread.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 125044, + "size": 125016, "base": 16384 }, "ram": { diff --git a/examples/peripheral_etag/peripheral_etag.ingw b/examples/peripheral_etag/peripheral_etag.ingw index 8120d06d3..fb636cb36 100644 --- a/examples/peripheral_etag/peripheral_etag.ingw +++ b/examples/peripheral_etag/peripheral_etag.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/peripheral_ibeacon/peripheral_ibeacon.ingw b/examples/peripheral_ibeacon/peripheral_ibeacon.ingw index a25af95dd..0bfd31779 100644 --- a/examples/peripheral_ibeacon/peripheral_ibeacon.ingw +++ b/examples/peripheral_ibeacon/peripheral_ibeacon.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/peripheral_irc/peripheral_irc.ingw b/examples/peripheral_irc/peripheral_irc.ingw index 728105779..ced9ebd54 100644 --- a/examples/peripheral_irc/peripheral_irc.ingw +++ b/examples/peripheral_irc/peripheral_irc.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/peripheral_led/peripheral_led.ingw b/examples/peripheral_led/peripheral_led.ingw index b9465c06b..734c10098 100644 --- a/examples/peripheral_led/peripheral_led.ingw +++ b/examples/peripheral_led/peripheral_led.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 146528, + "size": 146500, "base": 16384 }, "ram": { diff --git a/examples/peripheral_mass_conn/peripheral_mass_conn.ingw b/examples/peripheral_mass_conn/peripheral_mass_conn.ingw index 720d6e266..688450b96 100644 --- a/examples/peripheral_mass_conn/peripheral_mass_conn.ingw +++ b/examples/peripheral_mass_conn/peripheral_mass_conn.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135900, + "size": 135872, "base": 16384 }, "ram": { diff --git a/examples/peripheral_pedometer/peripheral_pedometer.ingw b/examples/peripheral_pedometer/peripheral_pedometer.ingw index 2d42c4775..203dc13c7 100644 --- a/examples/peripheral_pedometer/peripheral_pedometer.ingw +++ b/examples/peripheral_pedometer/peripheral_pedometer.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/peripheral_piano/peripheral_piano.ingw b/examples/peripheral_piano/peripheral_piano.ingw index 5bef058dd..8d6a79d07 100644 --- a/examples/peripheral_piano/peripheral_piano.ingw +++ b/examples/peripheral_piano/peripheral_piano.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/peripheral_throughput/peripheral_throughput.ingw b/examples/peripheral_throughput/peripheral_throughput.ingw index 3c2bf0bde..400b18ebb 100644 --- a/examples/peripheral_throughput/peripheral_throughput.ingw +++ b/examples/peripheral_throughput/peripheral_throughput.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/reset_handler/reset_handler.ingw b/examples/reset_handler/reset_handler.ingw index b6f306120..ac7106ed3 100644 --- a/examples/reset_handler/reset_handler.ingw +++ b/examples/reset_handler/reset_handler.ingw @@ -2,7 +2,7 @@ "watchdog": true, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/secondary_fota/secondary_fota.ingw b/examples/secondary_fota/secondary_fota.ingw index 95498e0e1..f9a35d65a 100644 --- a/examples/secondary_fota/secondary_fota.ingw +++ b/examples/secondary_fota/secondary_fota.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/smart_meter/smart_meter.ingw b/examples/smart_meter/smart_meter.ingw index 45decdcc8..e1a4bc67b 100644 --- a/examples/smart_meter/smart_meter.ingw +++ b/examples/smart_meter/smart_meter.ingw @@ -2,7 +2,7 @@ "watchdog": false, "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/thermo_ota/thermo_ota.ingw b/examples/thermo_ota/thermo_ota.ingw index bd8f12c80..98ceb3bb9 100644 --- a/examples/thermo_ota/thermo_ota.ingw +++ b/examples/thermo_ota/thermo_ota.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 135828, + "size": 135796, "base": 16384 }, "ram": { diff --git a/examples/uart_console/uart_console.ingw b/examples/uart_console/uart_console.ingw index 89a369b91..aca6580e7 100644 --- a/examples/uart_console/uart_console.ingw +++ b/examples/uart_console/uart_console.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 152028, + "size": 151996, "base": 16384 }, "ram": { diff --git a/examples/voice_remote_ctrl/voice_remote_ctrl.ingw b/examples/voice_remote_ctrl/voice_remote_ctrl.ingw index 589549409..60ed36b71 100644 --- a/examples/voice_remote_ctrl/voice_remote_ctrl.ingw +++ b/examples/voice_remote_ctrl/voice_remote_ctrl.ingw @@ -1,7 +1,7 @@ { "bundle_meta": { "rom": { - "size": 155348, + "size": 155316, "base": 33562624 }, "ram": { diff --git a/src/Tools/power_ctrl.lib b/src/Tools/power_ctrl.lib index 709504a5ea8ab27c52f8d3fabf1ea47008e59d37..fe7a83266a1848a38dc70e20ec7af1df13d31c39 100644 GIT binary patch literal 8004 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 delta 2349 zcmZ8iU1(Eh7=FL=m(!TqG-;Z|CT(mJTU?r@rnPnGmfEVPqw#0Dn<2DmlG+SwvY2fO zO6sW4iz2%3MsPo{i{XW1ih3bzvx0)iK!xsN%!y?eW8k)^bz~dNz2C{#c#DT$?DV0-jCQteV}IYKNPlntCVGlAOMQ{v z0eYTv6+8`?h55a@>4E^XL-=ajsDIjD^hv&6Pb`@7jQXeiMU&+B-YUURaQn@YDlV2> zLy2cC!?(}|w=b5Yq4=|{k}cNl4UT_tsd3bQL@HXPW0$~hepDapJ|Y*ba^PChbLIIz z1@aSl1pa5g!gVNImq-0xR-Q;n4~gBvLg8-#>Y^alMWaexbb}TdnTtm>Eg8|~lDn4G z-M5oHnwsj-v{dwIyKgQP*3`-9Q^BWA?pi((?i`uvQO6};VB|(=7S?NOLfsxs`-&2P zSBsE2MSSmGLz+SIXlk084St#=Fq!WItwiI2HHmLY#63|%L`d}zL2H= ziLR};^^jQ%5kMZ9#eU72I5Lkmy92;XggO8zx^^v5g+^i>v^S_Ea>n{20rB3D1r}bs z0hcd`e-Wt_7oT1w>P|S&>1g(M4UKujpcpE*12E@+o3bQcZxY z>!C^kxkguXeO*OYYIKvXPgQhNjb2dofY&MkDkS&{5adKy1$zxEBI1f{tHJ_otimEV ztFQ!rutL0vc;oIGaRC(g+DL#2KCQwk*bNwPi$so@AvnO_R;ufGHQcSj4REyzTj87m z7YH=M2?IgE1_!FJ9d=e>3-ndtdUzXW%my=qkAU6|j@h{o@HfCQI|l-;sheZm_F=FI z5)?6;6=3^p6J)s0G22(0pui=L**@9?6MW7w+cuk^(qF7S1$Kr64?r_o^DBV=M`atX z;k!7-P%vYMtWR?%z?;kl0QNJB9b1^~2C#Cxp5x7ESw92Jb^z$u4uvw|=R^|^@N(?n z7_Y3J;O4lEW4yO|K_ACB3mvcJcn!xmD?Q(dy@v+hiiP6&d@eolexAN#TMQgNI-QSC zKqwi{$03x+Oi!l{O&hs;Y}b9Wpeq{k?vRo6tgK-hktoCp-FHO7jcs{ zq*ZAr>|29#1!6+ShI_x#=)X?)$1c?o;O9Z%0y_)ybdSsKaMmabs1%vfsMaVK>F=&i zc^@9l%}l33x0RfxTil)UP2_?)cg$@SiUK|5UMD9-JiLswm9V5?OmJSLJ6+9=KWpd< zn9xO+TJ1J=Us(bYdRvs}L#+4%erk5pC3lA$z|Zoq?xic$m~bP#~Bk{Lgtu(QE892rT!B`mW45O7giYB?QN_7W(8rL)q2MF2Btx0 z9vB#_&OA0SjmUT`2EwL?SXR9puASa!ZIM05^x Date: Tue, 21 Nov 2023 12:19:38 +0800 Subject: [PATCH 07/13] add example: paring with oob --- examples/pairing_with_oob/README.md | 5 + .../pairing_with_oob/data/advertising.adv | 11 + .../pairing_with_oob/data/advertising.const | 3 + .../data/advertising.const.tmpl | 2 + .../pairing_with_oob/data/cube_ING9187xx.dat | 32 ++ examples/pairing_with_oob/data/gatt.const | 8 + .../pairing_with_oob/data/gatt.const.tmpl | 4 + examples/pairing_with_oob/data/gatt.profile | 35 ++ .../pairing_with_oob/data/scan_response.adv | 2 + .../pairing_with_oob/data/scan_response.const | 1 + .../data/scan_response.const.tmpl | 2 + examples/pairing_with_oob/data/setup_soc.cgen | 55 ++ examples/pairing_with_oob/doc/index.md | 8 + examples/pairing_with_oob/flash_download.ini | 64 +++ examples/pairing_with_oob/init.ini | 3 + .../pairing_with_oob/pairing_with_oob.ingw | 90 ++++ .../pairing_with_oob/pairing_with_oob.uvopt | 480 +++++++++++++++++ .../pairing_with_oob/pairing_with_oob.uvoptx | 437 +++++++++++++++ .../pairing_with_oob/pairing_with_oob.uvproj | 497 +++++++++++++++++ .../pairing_with_oob/pairing_with_oob.uvprojx | 504 ++++++++++++++++++ examples/pairing_with_oob/src/main.c | 146 +++++ examples/pairing_with_oob/src/profile.c | 320 +++++++++++ examples/pairing_with_oob/src/profile.h | 15 + .../pairing_with_oob/src/startup_ing91800.s | 102 ++++ 24 files changed, 2826 insertions(+) create mode 100644 examples/pairing_with_oob/README.md create mode 100644 examples/pairing_with_oob/data/advertising.adv create mode 100644 examples/pairing_with_oob/data/advertising.const create mode 100644 examples/pairing_with_oob/data/advertising.const.tmpl create mode 100644 examples/pairing_with_oob/data/cube_ING9187xx.dat create mode 100644 examples/pairing_with_oob/data/gatt.const create mode 100644 examples/pairing_with_oob/data/gatt.const.tmpl create mode 100644 examples/pairing_with_oob/data/gatt.profile create mode 100644 examples/pairing_with_oob/data/scan_response.adv create mode 100644 examples/pairing_with_oob/data/scan_response.const create mode 100644 examples/pairing_with_oob/data/scan_response.const.tmpl create mode 100644 examples/pairing_with_oob/data/setup_soc.cgen create mode 100644 examples/pairing_with_oob/doc/index.md create mode 100644 examples/pairing_with_oob/flash_download.ini create mode 100644 examples/pairing_with_oob/init.ini create mode 100644 examples/pairing_with_oob/pairing_with_oob.ingw create mode 100644 examples/pairing_with_oob/pairing_with_oob.uvopt create mode 100644 examples/pairing_with_oob/pairing_with_oob.uvoptx create mode 100644 examples/pairing_with_oob/pairing_with_oob.uvproj create mode 100644 examples/pairing_with_oob/pairing_with_oob.uvprojx create mode 100644 examples/pairing_with_oob/src/main.c create mode 100644 examples/pairing_with_oob/src/profile.c create mode 100644 examples/pairing_with_oob/src/profile.h create mode 100644 examples/pairing_with_oob/src/startup_ing91800.s diff --git a/examples/pairing_with_oob/README.md b/examples/pairing_with_oob/README.md new file mode 100644 index 000000000..cca8440c4 --- /dev/null +++ b/examples/pairing_with_oob/README.md @@ -0,0 +1,5 @@ +# Pairing with OOB + +This example demonstrates how to: + +* Paring using OOB (out of band) data. \ No newline at end of file diff --git a/examples/pairing_with_oob/data/advertising.adv b/examples/pairing_with_oob/data/advertising.adv new file mode 100644 index 000000000..fde56f6e1 --- /dev/null +++ b/examples/pairing_with_oob/data/advertising.adv @@ -0,0 +1,11 @@ +// 0x01 - «Flags» +2, 0x01, +0x06, + +// 0x09 - «Complete Local Name» +16, 0x09, +0x50, 0x61, 0x72, 0x69, 0x6E, 0x67, 0x20, 0x77, +0x69, 0x74, 0x68, 0x20, 0x4F, 0x4F, 0x42, + +// Total size = 20 bytes + diff --git a/examples/pairing_with_oob/data/advertising.const b/examples/pairing_with_oob/data/advertising.const new file mode 100644 index 000000000..56444cd83 --- /dev/null +++ b/examples/pairing_with_oob/data/advertising.const @@ -0,0 +1,3 @@ +#define ADVERTISING_ITEM_OFFSET_FLAGS 2 +#define ADVERTISING_ITEM_OFFSET_COMPLETE_LOCAL_NAME 5 + diff --git a/examples/pairing_with_oob/data/advertising.const.tmpl b/examples/pairing_with_oob/data/advertising.const.tmpl new file mode 100644 index 000000000..de1b56375 --- /dev/null +++ b/examples/pairing_with_oob/data/advertising.const.tmpl @@ -0,0 +1,2 @@ +{{loop adv_data_item}}#define {{adv_data_item.key:70}} {{adv_data_item.value}} +{{endloop}} diff --git a/examples/pairing_with_oob/data/cube_ING9187xx.dat b/examples/pairing_with_oob/data/cube_ING9187xx.dat new file mode 100644 index 000000000..03244f420 --- /dev/null +++ b/examples/pairing_with_oob/data/cube_ING9187xx.dat @@ -0,0 +1,32 @@ +[Window][Debug##Default] +Pos=60,60 +Size=400,400 +Collapsed=0 + +[ingCube][ING91870C] +ADC=configIsr=0,isrName=adc_isr,isrParam=NULL,enableClk=0, +GPIO=configIsr=0,isrName=gpio_isr,isrParam=NULL,enableClk=0,0=0|0|0|0,1=0|0|0|0,2=0|0|0|0,3=0|0|0|0,4=0|0|0|0,5=0|0|0|0,6=0|0|0|0,7=0|0|0|0,8=0|0|0|0,9=0|0|0|0,10=0|0|0|0,11=0|0|0|0,12=0|0|0|0, +I2C0=configIsr=0,isrName=i2c0_isr,isrParam=NULL,enableClk=0,pinSCL=-1,pinSDA=-1, +I2C1=configIsr=0,isrName=i2c1_isr,isrParam=NULL,enableClk=0,pinSCL=-1,pinSDA=-1, +PWM=configIsr=0,isrName=pwm_isr,isrParam=NULL,enableClk=0,0=AAAAAAAAAAAAAAAAABdGAQAAAAD//////////wAAAAAAAAAAAAAAAEACAAD8jZZbUPgvAQAAAAAAAAAA,1=AAAAAAAAAAAAAAAAABdGAQAAAAD//////////wAAAAAAAAAAAAAAAEACAAD8jZZbUPgvAQAAAAAAAAAA,2=AAAAAAAAAAAAAAAAABdGAQAAAAD//////////wAAAAAAAAAAAAAAAEACAAD8jZZbUPgvAQAAAAAAAAAA,3=AAAAAAAAAAAAAAAAABdGAQAAAAD//////////wAAAAAAAAAAAAAAAEACAAD8jZZbUPgvAQAAAAAAAAAA,4=AAAAAAAAAAAAAAAAABdGAQAAAAD//////////wAAAAAAAAAAAAAAAEACAAD8jZZbUPgvAQAAAAAAAAAA,5=AAAAAAAAAAAAAAAAABdGAQAAAAD//////////wAAAAAAAAAAAAAAAEACAAD8jZZbUPgvAQAAAAAAAAAA, +SPI0=configIsr=0,isrName=spi0_isr,isrParam=NULL,enableClk=0,mode=0,freq=0,polarity=0,phase=0,dataWidth=16,pinClk=-1,pinMISO=-1,pinMOSI=-1,pinCSn=-1, +SPI1=configIsr=0,isrName=spi1_isr,isrParam=NULL,enableClk=0,mode=0,freq=0,polarity=0,phase=0,dataWidth=16,pinClk=-1,pinMISO=-1,pinMOSI=-1,pinCSn=-1, +RTC=configIsr=0,isrName=rtc_isr,isrParam=NULL,enableClk=1, +TIMER0=configIsr=0,isrName=timer0_isr,isrParam=NULL,enableClk=1,asWdt=1,wdtTimeout=10.000000,enable=0,workMode=0,freq=1.000000,compValue=0,enableIrq=0, +TIMER1=configIsr=0,isrName=timer1_isr,isrParam=NULL,enableClk=0,enable=0,workMode=0,freq=1.000000,compValue=0,enableIrq=0, +TIMER2=configIsr=0,isrName=timer2_isr,isrParam=NULL,enableClk=0,enable=0,workMode=0,freq=1.000000,compValue=0,enableIrq=0, +UART0=configIsr=0,isrName=uart0_isr,isrParam=NULL,enableClk=1,pinRx=3,pinTx=2,pinCts=-1,pinRts=-1,baud=115200,wlen=3,parity=0,fifoEn=1,rxEn=0,txEn=1,stopBits=0,useCts=0,useRts=0,enableRxIRQ=0,enableTxIRQ=0,txFifoLevel=1,rxFifoLevel=1,misc=AAAAAAA., +UART1=configIsr=0,isrName=uart1_isr,isrParam=NULL,enableClk=0,pinRx=-1,pinTx=-1,pinCts=-1,pinRts=-1,baud=115200,wlen=3,parity=0,fifoEn=1,rxEn=0,txEn=0,stopBits=0,useCts=0,useRts=0,enableRxIRQ=0,enableTxIRQ=0,txFifoLevel=1,rxFifoLevel=1,misc=AAAAAAA., +Misc=sca=500,useRfEn=0,0=0|1|2,1=0|1|2,2=0|1|2,3=0|1|2,4=0|1|2,5=0|1|2,6=0|1|2,7=0|1|2,8=0|1|2,9=0|1|2,10=0|1|2,11=0|1|2,12=0|1|2, +Mux=index=0, +DIV##loopback=multi=1,div=2 + +[ingCube][init] +UART0=enableClk=1,baud=115200,pinTx=2,wlen=3,parity=0,fifoEn=1,rxEn=0,txEn=1,stopBits=0,useCts=0,useRts=0,enableRxIRQ=0,enableTxIRQ=0,txFifoLevel=1,rxFifoLevel=1, +TIMER0=configIsr=0,isrName=timer0_isr,isrParam=NULL,enableClk=1,asWdt=1,wdtTimeout=10.000000 + +[ingCube state][ING91870C] +Scale_PinPeripherals=170.000000 +OriginOnWindow_PinPeripherals=100.000000,100.000000 +Scale_ClockTree=170.000000 +OriginOnWindow_ClockTree=100.000000,100.000000 diff --git a/examples/pairing_with_oob/data/gatt.const b/examples/pairing_with_oob/data/gatt.const new file mode 100644 index 000000000..aed191332 --- /dev/null +++ b/examples/pairing_with_oob/data/gatt.const @@ -0,0 +1,8 @@ +#define HANDLE_GENERIC_INPUT 3 +#define HANDLE_GENERIC_OUTPUT 5 +#define HANDLE_GENERIC_OUTPUT_CLIENT_CHAR_CONFIG 6 + +#define HANDLE_GENERIC_INPUT_OFFSET 73 +#define HANDLE_GENERIC_OUTPUT_OFFSET 122 +#define HANDLE_GENERIC_OUTPUT_CLIENT_CHAR_CONFIG_OFFSET 130 + diff --git a/examples/pairing_with_oob/data/gatt.const.tmpl b/examples/pairing_with_oob/data/gatt.const.tmpl new file mode 100644 index 000000000..15f5fbd6a --- /dev/null +++ b/examples/pairing_with_oob/data/gatt.const.tmpl @@ -0,0 +1,4 @@ +{{loop gatt_handle}}#define {{gatt_handle.key:50}} {{gatt_handle.value}} +{{endloop}} +{{loop gatt_value_offset}}#define {{gatt_value_offset.key:50}} {{gatt_value_offset.value}} +{{endloop}} diff --git a/examples/pairing_with_oob/data/gatt.profile b/examples/pairing_with_oob/data/gatt.profile new file mode 100644 index 000000000..b40eac813 --- /dev/null +++ b/examples/pairing_with_oob/data/gatt.profile @@ -0,0 +1,35 @@ +// Service INGChips Console Service: {43f4b114-ca67-48e8-a46f-9a8ffeb7146a} +0x18, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x28, +0x6A, 0x14, 0xB7, 0xFE, 0x8F, 0x9A, 0x6F, 0xA4, +0xE8, 0x48, 0x67, 0xCA, 0x14, 0xB1, 0xF4, 0x43, +// Characteristic Generic Input: {bf83f3f1-399a-414d-9035-ce64ceb3ff67} +0x1B, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x28, +0x06, 0x03, 0x00, 0x67, 0xFF, 0xB3, 0xCE, 0x64, +0xCE, 0x35, 0x90, 0x4D, 0x41, 0x9A, 0x39, 0xF1, +0xF3, 0x83, 0xBF, +0x16, 0x00, 0x06, 0x07, 0x03, 0x00, +0x67, 0xFF, 0xB3, 0xCE, 0x64, 0xCE, 0x35, 0x90, +0x4D, 0x41, 0x9A, 0x39, 0xF1, 0xF3, 0x83, 0xBF, +// Characteristic Generic Output: {bf83f3f2-399a-414d-9035-ce64ceb3ff67} +0x1B, 0x00, 0x02, 0x00, 0x04, 0x00, 0x03, 0x28, +0x10, 0x05, 0x00, 0x67, 0xFF, 0xB3, 0xCE, 0x64, +0xCE, 0x35, 0x90, 0x4D, 0x41, 0x9A, 0x39, 0xF2, +0xF3, 0x83, 0xBF, +0x16, 0x00, 0x10, 0x02, 0x05, 0x00, +0x67, 0xFF, 0xB3, 0xCE, 0x64, 0xCE, 0x35, 0x90, +0x4D, 0x41, 0x9A, 0x39, 0xF2, 0xF3, 0x83, 0xBF, +// Descriptor Client Characteristic Configuration: 2902 +0x0A, 0x00, 0x0A, 0x01, 0x06, 0x00, 0x02, 0x29, +0x00, 0x00, + +0x00,0x00 +// total size = 134 + +// HANDLE_GENERIC_INPUT=3 +// HANDLE_GENERIC_OUTPUT=5 +// HANDLE_GENERIC_OUTPUT_CLIENT_CHAR_CONFIG=6 + +// HANDLE_GENERIC_INPUT_OFFSET=73 +// HANDLE_GENERIC_OUTPUT_OFFSET=122 +// HANDLE_GENERIC_OUTPUT_CLIENT_CHAR_CONFIG_OFFSET=130 + diff --git a/examples/pairing_with_oob/data/scan_response.adv b/examples/pairing_with_oob/data/scan_response.adv new file mode 100644 index 000000000..77ac542d4 --- /dev/null +++ b/examples/pairing_with_oob/data/scan_response.adv @@ -0,0 +1,2 @@ +0 + diff --git a/examples/pairing_with_oob/data/scan_response.const b/examples/pairing_with_oob/data/scan_response.const new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/examples/pairing_with_oob/data/scan_response.const @@ -0,0 +1 @@ + diff --git a/examples/pairing_with_oob/data/scan_response.const.tmpl b/examples/pairing_with_oob/data/scan_response.const.tmpl new file mode 100644 index 000000000..de1b56375 --- /dev/null +++ b/examples/pairing_with_oob/data/scan_response.const.tmpl @@ -0,0 +1,2 @@ +{{loop adv_data_item}}#define {{adv_data_item.key:70}} {{adv_data_item.value}} +{{endloop}} diff --git a/examples/pairing_with_oob/data/setup_soc.cgen b/examples/pairing_with_oob/data/setup_soc.cgen new file mode 100644 index 000000000..aad739e66 --- /dev/null +++ b/examples/pairing_with_oob/data/setup_soc.cgen @@ -0,0 +1,55 @@ +void cube_soc_init(void) +{ +platform_config(PLATFORM_CFG_OSC32K_EN, PLATFORM_CFG_DISABLE); +platform_config(PLATFORM_CFG_32K_CLK_ACC, 500); + +} + +void cube_setup_peripherals(void) +{ +SYSCTRL_ClearClkGateMulti((1 << SYSCTRL_ClkGate_APB_PinCtrl) + | (1 << SYSCTRL_ClkGate_APB_TMR0) + | (1 << SYSCTRL_ClkGate_APB_UART0)); + +// TIMER0 +if (!IS_DEBUGGER_ATTACHED()) +{ + TMR_WatchDogEnable((uint32_t)(TMR_CLK_FREQ * 10.000000)); +} + +// UART0 +PINCTRL_SetPadMux(2, IO_SOURCE_UART0_TXD); +PINCTRL_SelUartRxdIn(UART_PORT_0, IO_NOT_A_PIN); +{ + APB_UART0->Control = 0; + APB_UART0->IntClear = 0; + APB_UART0->IntMask = 0; + APB_UART0->StatusClear = 0; + APB_UART0->IntBaudDivisor = 13; + APB_UART0->FractBaudDivisor = 1; + APB_UART0->LineCon_H = ( ((UART_PARITY_NOT_CHECK >> 2) & 1) << bsUART_STICK_PARITY ) | // SPS + ( 3 << bsUART_WORD_LENGTH ) | // WLEN + ( 1 << bsUART_FIFO_ENABLE ) | // FEN + ( 0 << bsUART_TWO_STOP_BITS) | // STP2 + ( ( UART_PARITY_NOT_CHECK & 3) << bsUART_PARITY_SELECT) ; // EPS, EPN + APB_UART0->FifoSelect = (1 << bsUART_TRANS_INT_LEVEL) + | (1 << bsUART_RECV_INT_LEVEL); + APB_UART0->IntMask = ((uint32_t)0 << bsUART_RECEIVE_INTENAB) | + ((uint32_t)0 << bsUART_TRANSMIT_INTENAB) | + ((uint32_t)0 << bsUART_TIMEOUT_INTENAB) | + ((uint32_t)0 << bsUART_FRAME_INTENAB) | + ((uint32_t)0 << bsUART_PARITY_INTENAB) | + ((uint32_t)0 << bsUART_BREAK_INTENAB) | + ((uint32_t)0 << bsUART_OVERRUN_INTENAB); + APB_UART0->Control = ((uint32_t)0 << bsUART_RECEIVE_ENABLE) | + ((uint32_t)1 << bsUART_TRANSMIT_ENABLE)| + ((uint32_t)1 << bsUART_ENABLE) | + ((uint32_t)0 << bsUART_CTS_ENA) | + ((uint32_t)0 << bsUART_RTS_ENA); +} + +} + +void cube_on_lle_init(void) +{ +} diff --git a/examples/pairing_with_oob/doc/index.md b/examples/pairing_with_oob/doc/index.md new file mode 100644 index 000000000..982533d6f --- /dev/null +++ b/examples/pairing_with_oob/doc/index.md @@ -0,0 +1,8 @@ +# Pairing with OOB + +## Test + +Build this project twice with compiling switch `ROLE` set to `0` & `1` respectively, +and download it two Dev-Boards. + +Check that those two Dev-Boards can be paired. \ No newline at end of file diff --git a/examples/pairing_with_oob/flash_download.ini b/examples/pairing_with_oob/flash_download.ini new file mode 100644 index 000000000..abeef12bc --- /dev/null +++ b/examples/pairing_with_oob/flash_download.ini @@ -0,0 +1,64 @@ +[main] +family=ing918 +timeout=10000 +MIN_ADDR=16384 +MAX_ADDR=540671 + +[options] +download=1 +verify=0 +redownload=1 +entry=0x4000 +set-entry=1 +launch=1 +batch=1 +script= +protection.enabled=0 +protection.unlock=0 +UseScript=0 +batch.current=0 +batch.limit=-1 + +[uart] +Baud=921600 +Port=COM3 +Parity= +DataBits=8 +StopBits=1 +Timeout=10000 + +[bin-0] +Name=Burn Bin #1 +Checked=1 +FileName=../../bundles/typical/ING9187xx/platform.bin +Address=16384 + +[bin-1] +Name=Burn Bin #2 +Checked=1 +Address=155648 +FileName=pairing_with_oob.bin + +[bin-2] +Name=Burn Bin #3 +Checked=0 +FileName= +Address=16384 + +[bin-3] +Name=Burn Bin #4 +Checked=0 +FileName= +Address=16384 + +[bin-4] +Name=Burn Bin #5 +Checked=0 +FileName= +Address=16384 + +[bin-5] +Name=Burn Bin #6 +Checked=0 +FileName= +Address=16384 diff --git a/examples/pairing_with_oob/init.ini b/examples/pairing_with_oob/init.ini new file mode 100644 index 000000000..72989a2f2 --- /dev/null +++ b/examples/pairing_with_oob/init.ini @@ -0,0 +1,3 @@ +msp = *(unsigned int *)( 0x00004000 ) +pc = *(unsigned int *)( 0x00004000 + 4 ) + diff --git a/examples/pairing_with_oob/pairing_with_oob.ingw b/examples/pairing_with_oob/pairing_with_oob.ingw new file mode 100644 index 000000000..e43bbe009 --- /dev/null +++ b/examples/pairing_with_oob/pairing_with_oob.ingw @@ -0,0 +1,90 @@ +{ + "watchdog": true, + "bundle_meta": { + "rom": { + "size": 135796, + "base": 16384 + }, + "ram": { + "size": 29876, + "base": 536870912 + }, + "app": { + "base": 155648 + }, + "version": [ + 1,9,41] + }, + "tc_dir": "C:\\Keil_v5\\UV4", + "eflash_addr": "0x42000", + "ide_ver": "5", + "ide_exe": "C:\\Keil_v5\\UV4\\UV4.exe", + "use_uart_trace": false, + "ota": false, + "ide": "keil", + "git": false, + "use_segger_rtt": true, + "trace_port": "seggerrtt", + "trace_mask": "", + "scan_data": "0\r\n", + "priv_addr": "GAP_RANDOM_ADDRESS_OFF", + "enable_hci_log": false, + "ota_ver_minor": "0", + "ota_ver_major": "0", + "template": "C:\\projects\\ingchips\\ingWizard\\templates\\typical\\peripheral", + "coding_adv": false, + "key_incode": true, + "series": "ING9187xx", + "proj_name": "pairing_with_oob", + "sdk_release_path": "..\/..", + "printf_port": "uart0", + "security": false, + "legacy_adv": true, + "adv_data": "\/\/ 0x01 - \u00abFlags\u00bb\r\n2, 0x01,\r\n0x06, \r\n\r\n\/\/ 0x09 - \u00abComplete Local Name\u00bb\r\n16, 0x09,\r\n0x50, 0x61, 0x72, 0x69, 0x6E, 0x67, 0x20, 0x77, \r\n0x69, 0x74, 0x68, 0x20, 0x4F, 0x4F, 0x42, \r\n\r\n\/\/ Total size = 20 bytes\r\n", + "use_eflash": false, + "wizard_dir": "C:\/projects\/ingchips\/ingWizard", + "key_addr": "0x44000", + "trace_enable": true, + "pb_adv": true, + "is_sdk_path_rel": true, + "pb_gatt": true, + "deep_sleep": true, + "proj_dir": "C:\\projects\\ingchips\\SDK_Release\\examples\\pairing_with_oob", + "heap_size": 0, + "power_saving": false, + "secondary": false, + "bundle": "typical", + "app_rom_size": "385024", + "app_rom_addr": "155648", + "family": "ing918", + "vcode": false, + "heap_override": false, + "trace_mask_nim": "", + "gatt_value_offset": { + "key": "HANDLE_GENERIC_OUTPUT_CLIENT_CHAR_CONFIG_OFFSET", + "value": "130" + }, + "io_cap": "IO_CAPABILITY_NO_INPUT_NO_OUTPUT", + "role": "peripheral", + "noos": false, + "mesh": { + "lowpower": true, + "friend": true, + "relay": true, + "proxy": true + }, + "keil": true, + "cmsis": "", + "cube": true, + "app_ram_size": 35656, + "app_ram_addr": 536900792, + "k5_cc_ver": "6", + "printf_enable": true, + "gatt_handle": { + "key": "HANDLE_GENERIC_INPUT", + "value": "3" + }, + "ota_ver_patch": "0", + "profile_data": "\/\/ Service INGChips Console Service: {43f4b114-ca67-48e8-a46f-9a8ffeb7146a}\r\n0x18, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x28,\r\n0x6A, 0x14, 0xB7, 0xFE, 0x8F, 0x9A, 0x6F, 0xA4, \r\n0xE8, 0x48, 0x67, 0xCA, 0x14, 0xB1, 0xF4, 0x43, \r\n\/\/ Characteristic Generic Input: {bf83f3f1-399a-414d-9035-ce64ceb3ff67}\r\n0x1B, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x28,\r\n0x06, 0x03, 0x00, 0x67, 0xFF, 0xB3, 0xCE, 0x64, \r\n0xCE, 0x35, 0x90, 0x4D, 0x41, 0x9A, 0x39, 0xF1, \r\n0xF3, 0x83, 0xBF, \r\n0x16, 0x00, 0x06, 0x07, 0x03, 0x00,\r\n0x67, 0xFF, 0xB3, 0xCE, 0x64, 0xCE, 0x35, 0x90, \r\n0x4D, 0x41, 0x9A, 0x39, 0xF1, 0xF3, 0x83, 0xBF, \r\n\/\/ Characteristic Generic Output: {bf83f3f2-399a-414d-9035-ce64ceb3ff67}\r\n0x1B, 0x00, 0x02, 0x00, 0x04, 0x00, 0x03, 0x28,\r\n0x10, 0x05, 0x00, 0x67, 0xFF, 0xB3, 0xCE, 0x64, \r\n0xCE, 0x35, 0x90, 0x4D, 0x41, 0x9A, 0x39, 0xF2, \r\n0xF3, 0x83, 0xBF, \r\n0x16, 0x00, 0x10, 0x02, 0x05, 0x00,\r\n0x67, 0xFF, 0xB3, 0xCE, 0x64, 0xCE, 0x35, 0x90, \r\n0x4D, 0x41, 0x9A, 0x39, 0xF2, 0xF3, 0x83, 0xBF, \r\n\/\/ Descriptor Client Characteristic Configuration: 2902\r\n0x0A, 0x00, 0x0A, 0x01, 0x06, 0x00, 0x02, 0x29,\r\n0x00, 0x00, \r\n\r\n0x00,0x00\r\n\/\/ total size = 134\r\n\r\n\/\/ HANDLE_GENERIC_INPUT=3\r\n\/\/ HANDLE_GENERIC_OUTPUT=5\r\n\/\/ HANDLE_GENERIC_OUTPUT_CLIENT_CHAR_CONFIG=6\r\n\r\n\/\/ HANDLE_GENERIC_INPUT_OFFSET=73\r\n\/\/ HANDLE_GENERIC_OUTPUT_OFFSET=122\r\n\/\/ HANDLE_GENERIC_OUTPUT_CLIENT_CHAR_CONFIG_OFFSET=130\r\n", + "coding_profile": false +} \ No newline at end of file diff --git a/examples/pairing_with_oob/pairing_with_oob.uvopt b/examples/pairing_with_oob/pairing_with_oob.uvopt new file mode 100644 index 000000000..174aeea90 --- /dev/null +++ b/examples/pairing_with_oob/pairing_with_oob.uvopt @@ -0,0 +1,480 @@ + + + + 1.0 + +

bC4w&gFKFM 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%0ABJUR$%9Ck~L@pFJaVi(t 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 z%0A9da_N_eaA{&pYq=-C1 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 PK$fMZNvdH|5(@o4+7IO= diff --git a/bundles/exp/ING9188xx/apis.json b/bundles/exp/ING9188xx/apis.json index 1b5e46f06..e482bdcd4 100644 --- a/bundles/exp/ING9188xx/apis.json +++ b/bundles/exp/ING9188xx/apis.json @@ -25,7 +25,7 @@ "big_endian_store_16": "0x00006561", "big_endian_store_32": "0x0000656d", "btstack_config": "0x000066c1", - "btstack_memory_pool_create": "0x000067ff", + "btstack_memory_pool_create": "0x00006801", "btstack_memory_pool_free": "0x00006829", "btstack_memory_pool_get": "0x00006889", "btstack_push_user_msg": "0x000068f1", @@ -135,250 +135,255 @@ "gatt_client_write_long_value_of_characteristic_with_offset": "0x00009109", "gatt_client_write_value_of_characteristic": "0x00009145", "gatt_client_write_value_of_characteristic_without_response": "0x0000917b", - "hci_add_event_handler": "0x0000a729", - "hci_power_control": "0x0000aed9", - "hci_register_acl_packet_handler": "0x0000b08d", - "kv_commit": "0x0000b801", - "kv_get": "0x0000b85d", - "kv_init": "0x0000b869", - "kv_init_backend": "0x0000b8e9", - "kv_put": "0x0000b8fd", - "kv_remove": "0x0000b909", - "kv_remove_all": "0x0000b93d", - "kv_value_modified": "0x0000b96d", - "kv_value_modified_of_key": "0x0000b989", - "kv_visit": "0x0000b995", - "l2cap_add_event_handler": "0x0000ba25", - "l2cap_can_send_packet_now": "0x0000ba35", - "l2cap_create_le_credit_based_connection_request": "0x0000bbf1", - "l2cap_credit_based_send": "0x0000bd35", - "l2cap_credit_based_send_continue": "0x0000bd61", - "l2cap_disconnect": "0x0000bddd", - "l2cap_get_le_credit_based_connection_credits": "0x0000c02d", - "l2cap_get_peer_mtu_for_local_cid": "0x0000c049", - "l2cap_init": "0x0000c41d", - "l2cap_le_send_flow_control_credit": "0x0000c513", - "l2cap_max_le_mtu": "0x0000c81d", - "l2cap_register_packet_handler": "0x0000c945", - "l2cap_register_service": "0x0000c951", - "l2cap_request_can_send_now_event": "0x0000ca61", - "l2cap_request_connection_parameter_update": "0x0000ca7b", - "l2cap_send_echo_request": "0x0000cf55", - "l2cap_unregister_service": "0x0000d015", - "le_device_db_add": "0x0000d06d", - "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": "0x0000d315", - "ll_ackable_packet_run": "0x0000d385", - "ll_ackable_packet_set_tx_data": "0x0000d429", - "ll_adjust_conn_peer_tx_power": "0x0000d451", - "ll_aes_encrypt": "0x0000d47d", - "ll_channel_monitor_alloc": "0x0000d4f9", - "ll_channel_monitor_check_each_pdu": "0x0000d57b", - "ll_channel_monitor_run": "0x0000d5e1", - "ll_config": "0x0000d695", - "ll_create_conn": "0x0000d6b1", - "ll_dhkey_generated": "0x0000d8e9", - "ll_free": "0x0000d91d", - "ll_get_conn_events_info": "0x0000d929", - "ll_get_conn_info": "0x0000da0d", - "ll_get_heap_free_size": "0x0000da59", - "ll_hint_on_ce_len": "0x0000da6d", - "ll_install_ecc_engine": "0x0000daa5", - "ll_legacy_adv_set_interval": "0x0000dab1", - "ll_lock_frequency": "0x0000dac1", - "ll_malloc": "0x0000db25", - "ll_p256_key_pair_generated": "0x0000db2d", - "ll_raw_packet_alloc": "0x0000dce1", - "ll_raw_packet_free": "0x0000ddb5", - "ll_raw_packet_get_bare_rx_data": "0x0000dded", - "ll_raw_packet_get_iq_samples": "0x0000deb3", - "ll_raw_packet_get_rx_data": "0x0000df4d", - "ll_raw_packet_recv": "0x0000dfed", - "ll_raw_packet_send": "0x0000e0a9", - "ll_raw_packet_set_bare_data": "0x0000e191", - "ll_raw_packet_set_bare_mode": "0x0000e1cf", - "ll_raw_packet_set_fake_cte_info": "0x0000e2d5", - "ll_raw_packet_set_param": "0x0000e2f7", - "ll_raw_packet_set_rx_cte": "0x0000e355", - "ll_raw_packet_set_tx_cte": "0x0000e3eb", - "ll_raw_packet_set_tx_data": "0x0000e429", - "ll_register_hci_acl_previewer": "0x0000e48d", - "ll_scan_set_fixed_channel": "0x0000e4f1", - "ll_scanner_enable_iq_sampling": "0x0000e4fd", - "ll_set_adv_access_address": "0x0000e7b1", - "ll_set_adv_coded_scheme": "0x0000e7bd", - "ll_set_conn_acl_report_latency": "0x0000e7ed", - "ll_set_conn_coded_scheme": "0x0000e81d", - "ll_set_conn_interval_unit": "0x0000e849", - "ll_set_conn_latency": "0x0000e855", - "ll_set_conn_tx_power": "0x0000e885", - "ll_set_def_antenna": "0x0000e8c1", - "ll_set_initiating_coded_scheme": "0x0000e8dd", - "ll_set_max_conn_number": "0x0000e8e9", - "ll_set_tx_power_range": "0x0000e97d", - "ll_unlock_frequency": "0x0000e9a5", - "nibble_for_char": "0x00021309", - "platform_32k_rc_auto_tune": "0x000213b9", - "platform_32k_rc_tune": "0x00021435", - "platform_calibrate_32k": "0x00021449", + "hci_add_event_handler": "0x0000a72d", + "hci_power_control": "0x0000aedd", + "hci_register_acl_packet_handler": "0x0000b091", + "kv_commit": "0x0000b805", + "kv_get": "0x0000b861", + "kv_init": "0x0000b86d", + "kv_init_backend": "0x0000b8ed", + "kv_put": "0x0000b901", + "kv_remove": "0x0000b90d", + "kv_remove_all": "0x0000b941", + "kv_value_modified": "0x0000b971", + "kv_value_modified_of_key": "0x0000b98d", + "kv_visit": "0x0000b999", + "l2cap_add_event_handler": "0x0000ba29", + "l2cap_can_send_packet_now": "0x0000ba39", + "l2cap_create_le_credit_based_connection_request": "0x0000bbf5", + "l2cap_credit_based_send": "0x0000bd39", + "l2cap_credit_based_send_continue": "0x0000bd65", + "l2cap_disconnect": "0x0000bde1", + "l2cap_get_le_credit_based_connection_credits": "0x0000c031", + "l2cap_get_peer_mtu_for_local_cid": "0x0000c04d", + "l2cap_init": "0x0000c421", + "l2cap_le_send_flow_control_credit": "0x0000c517", + "l2cap_max_le_mtu": "0x0000c821", + "l2cap_register_packet_handler": "0x0000c949", + "l2cap_register_service": "0x0000c955", + "l2cap_request_can_send_now_event": "0x0000ca65", + "l2cap_request_connection_parameter_update": "0x0000ca7f", + "l2cap_send_echo_request": "0x0000cf59", + "l2cap_unregister_service": "0x0000d019", + "le_device_db_add": "0x0000d071", + "le_device_db_find": "0x0000d149", + "le_device_db_from_key": "0x0000d175", + "le_device_db_iter_cur": "0x0000d17d", + "le_device_db_iter_cur_key": "0x0000d181", + "le_device_db_iter_init": "0x0000d185", + "le_device_db_iter_next": "0x0000d18d", + "le_device_db_remove_key": "0x0000d1b3", + "ll_ackable_packet_alloc": "0x0000d1df", + "ll_ackable_packet_get_status": "0x0000d319", + "ll_ackable_packet_run": "0x0000d389", + "ll_ackable_packet_set_tx_data": "0x0000d42d", + "ll_adjust_conn_peer_tx_power": "0x0000d455", + "ll_aes_encrypt": "0x0000d481", + "ll_channel_monitor_alloc": "0x0000d4fd", + "ll_channel_monitor_check_each_pdu": "0x0000d57f", + "ll_channel_monitor_run": "0x0000d5e5", + "ll_config": "0x0000d699", + "ll_conn_abort": "0x0000d6b5", + "ll_create_conn": "0x0000d6e9", + "ll_dhkey_generated": "0x0000d965", + "ll_free": "0x0000d999", + "ll_get_conn_events_info": "0x0000d9a5", + "ll_get_conn_info": "0x0000da89", + "ll_get_heap_free_size": "0x0000dad5", + "ll_hint_on_ce_len": "0x0000dae9", + "ll_install_ecc_engine": "0x0000db21", + "ll_legacy_adv_set_interval": "0x0000db2d", + "ll_lock_frequency": "0x0000db3d", + "ll_malloc": "0x0000dba1", + "ll_p256_key_pair_generated": "0x0000dba9", + "ll_raw_packet_alloc": "0x0000dd5d", + "ll_raw_packet_free": "0x0000de31", + "ll_raw_packet_get_bare_rx_data": "0x0000de69", + "ll_raw_packet_get_iq_samples": "0x0000df2f", + "ll_raw_packet_get_rx_data": "0x0000dfc9", + "ll_raw_packet_recv": "0x0000e069", + "ll_raw_packet_send": "0x0000e125", + "ll_raw_packet_set_bare_data": "0x0000e20d", + "ll_raw_packet_set_bare_mode": "0x0000e24b", + "ll_raw_packet_set_fake_cte_info": "0x0000e351", + "ll_raw_packet_set_param": "0x0000e373", + "ll_raw_packet_set_rx_cte": "0x0000e3d1", + "ll_raw_packet_set_tx_cte": "0x0000e467", + "ll_raw_packet_set_tx_data": "0x0000e4a5", + "ll_register_hci_acl_previewer": "0x0000e509", + "ll_scan_set_fixed_channel": "0x0000e56d", + "ll_scanner_enable_iq_sampling": "0x0000e579", + "ll_set_adv_access_address": "0x0000e82d", + "ll_set_adv_coded_scheme": "0x0000e839", + "ll_set_conn_acl_report_latency": "0x0000e869", + "ll_set_conn_coded_scheme": "0x0000e899", + "ll_set_conn_interval_unit": "0x0000e8c5", + "ll_set_conn_latency": "0x0000e8d1", + "ll_set_conn_tx_power": "0x0000e901", + "ll_set_def_antenna": "0x0000e93d", + "ll_set_initiating_coded_scheme": "0x0000e959", + "ll_set_max_conn_number": "0x0000e965", + "ll_set_tx_power_range": "0x0000e9f9", + "ll_unlock_frequency": "0x0000ea21", + "nibble_for_char": "0x000214ed", + "platform_calibrate_rt_clk": "0x0002159b", "platform_call_on_stack": "0x00004183", - "platform_config": "0x0002144d", - "platform_delete_timer": "0x00021571", - "platform_enable_irq": "0x00021579", - "platform_get_current_task": "0x000215b1", - "platform_get_gen_os_driver": "0x000215d5", - "platform_get_heap_status": "0x000215dd", - "platform_get_link_layer_interf": "0x000215f5", - "platform_get_task_handle": "0x000215fd", - "platform_get_timer_counter": "0x0002161d", - "platform_get_us_time": "0x00021621", - "platform_get_version": "0x00021625", - "platform_hrng": "0x0002162d", - "platform_install_isr_stack": "0x00021635", - "platform_install_task_stack": "0x00021641", - "platform_patch_rf_init_data": "0x00021679", - "platform_printf": "0x00021685", - "platform_raise_assertion": "0x00021699", - "platform_rand": "0x000216ad", - "platform_read_info": "0x000216b1", - "platform_read_persistent_reg": "0x000216e1", - "platform_reset": "0x000216f1", - "platform_set_abs_timer": "0x00021715", - "platform_set_evt_callback": "0x00021719", - "platform_set_evt_callback_table": "0x0002172d", - "platform_set_irq_callback": "0x00021739", - "platform_set_irq_callback_table": "0x00021755", - "platform_set_rf_clk_source": "0x00021761", - "platform_set_rf_init_data": "0x0002176d", - "platform_set_rf_power_mapping": "0x00021779", - "platform_set_timer": "0x00021785", - "platform_shutdown": "0x00021789", - "platform_switch_app": "0x0002178d", - "platform_trace_raw": "0x000217b9", - "platform_write_persistent_reg": "0x000217d1", - "printf_hexdump": "0x00021985", - "pvPortMalloc": "0x00022479", - "pvTaskIncrementMutexHeldCount": "0x00022561", - "pvTimerGetTimerID": "0x00022579", - "pxPortInitialiseStack": "0x000225a5", - "reverse_128": "0x00022785", - "reverse_24": "0x0002278b", - "reverse_256": "0x00022791", - "reverse_48": "0x00022797", - "reverse_56": "0x0002279d", - "reverse_64": "0x000227a3", - "reverse_bd_addr": "0x000227a9", - "reverse_bytes": "0x000227af", - "sm_add_event_handler": "0x00022aed", - "sm_address_resolution_lookup": "0x00022c45", - "sm_authenticated": "0x00022fc1", - "sm_authorization_decline": "0x00022fcf", - "sm_authorization_grant": "0x00022fef", - "sm_authorization_state": "0x0002300f", - "sm_bonding_decline": "0x00023029", - "sm_config": "0x00023485", - "sm_config_conn": "0x0002349d", - "sm_encryption_key_size": "0x00023653", - "sm_just_works_confirm": "0x00023bd9", - "sm_le_device_key": "0x00023f11", - "sm_passkey_input": "0x00023fa7", - "sm_private_random_address_generation_get": "0x00024361", - "sm_private_random_address_generation_get_mode": "0x00024369", - "sm_private_random_address_generation_set_mode": "0x00024375", - "sm_private_random_address_generation_set_update_period": "0x0002439d", - "sm_register_external_ltk_callback": "0x000244d9", - "sm_register_oob_data_callback": "0x000244e5", - "sm_request_pairing": "0x000244f1", - "sm_send_security_request": "0x00024fc7", - "sm_set_accepted_stk_generation_methods": "0x00024fed", - "sm_set_authentication_requirements": "0x00024ff9", - "sm_set_encryption_key_size_range": "0x00025005", - "sscanf_bd_addr": "0x000253d5", - "sysSetPublicDeviceAddr": "0x00025789", - "uuid128_to_str": "0x00025f51", - "uuid_add_bluetooth_prefix": "0x00025fa9", - "uuid_has_bluetooth_prefix": "0x00025fc9", - "uxListRemove": "0x00025fe5", - "uxQueueMessagesWaiting": "0x0002600d", - "uxQueueMessagesWaitingFromISR": "0x00026035", - "uxQueueSpacesAvailable": "0x00026051", - "uxTaskGetStackHighWaterMark": "0x0002607d", - "uxTaskPriorityGet": "0x0002609d", - "uxTaskPriorityGetFromISR": "0x000260b9", - "vListInitialise": "0x00026173", - "vListInitialiseItem": "0x00026189", - "vListInsert": "0x0002618f", - "vListInsertEnd": "0x000261bf", - "vPortEndScheduler": "0x000261d9", - "vPortEnterCritical": "0x00026205", - "vPortExitCritical": "0x00026249", - "vPortFree": "0x0002627d", - "vPortSuppressTicksAndSleep": "0x00026311", - "vPortValidateInterruptPriority": "0x00026439", - "vQueueDelete": "0x00026495", - "vQueueWaitForMessageRestricted": "0x000264c1", - "vTaskDelay": "0x00026509", - "vTaskInternalSetTimeOutState": "0x00026555", - "vTaskMissedYield": "0x00026565", - "vTaskPlaceOnEventList": "0x00026571", - "vTaskPlaceOnEventListRestricted": "0x000265a9", - "vTaskPriorityDisinheritAfterTimeout": "0x000265e9", - "vTaskPrioritySet": "0x00026695", - "vTaskResume": "0x0002675d", - "vTaskStartScheduler": "0x000267e1", - "vTaskStepTick": "0x00026871", - "vTaskSuspend": "0x000268a1", - "vTaskSuspendAll": "0x0002695d", - "vTaskSwitchContext": "0x0002696d", - "xPortStartScheduler": "0x00026a15", - "xQueueAddToSet": "0x00026add", - "xQueueCreateCountingSemaphore": "0x00026b01", - "xQueueCreateCountingSemaphoreStatic": "0x00026b3d", - "xQueueCreateMutex": "0x00026b81", - "xQueueCreateMutexStatic": "0x00026b97", - "xQueueCreateSet": "0x00026bb1", - "xQueueGenericCreate": "0x00026bb9", - "xQueueGenericCreateStatic": "0x00026c05", - "xQueueGenericReset": "0x00026c6d", - "xQueueGenericSend": "0x00026cf9", - "xQueueGenericSendFromISR": "0x00026e65", - "xQueueGiveFromISR": "0x00026f25", - "xQueueGiveMutexRecursive": "0x00026fc9", - "xQueueIsQueueEmptyFromISR": "0x00027009", - "xQueueIsQueueFullFromISR": "0x0002702d", - "xQueuePeek": "0x00027055", - "xQueuePeekFromISR": "0x0002717d", - "xQueueReceive": "0x000271e9", - "xQueueReceiveFromISR": "0x00027315", - "xQueueRemoveFromSet": "0x000273a9", - "xQueueSelectFromSet": "0x000273cb", - "xQueueSelectFromSetFromISR": "0x000273dd", - "xQueueSemaphoreTake": "0x000273f1", - "xQueueTakeMutexRecursive": "0x0002755d", - "xTaskCheckForTimeOut": "0x000275a1", - "xTaskCreate": "0x00027611", - "xTaskCreateStatic": "0x0002766d", - "xTaskGetCurrentTaskHandle": "0x000276dd", - "xTaskGetSchedulerState": "0x000276e9", - "xTaskGetTickCount": "0x00027705", - "xTaskGetTickCountFromISR": "0x00027711", - "xTaskIncrementTick": "0x00027721", - "xTaskPriorityDisinherit": "0x000277ed", - "xTaskPriorityInherit": "0x00027881", - "xTaskRemoveFromEventList": "0x00027915", - "xTaskResumeAll": "0x00027995", - "xTaskResumeFromISR": "0x00027a5d", - "xTimerCreate": "0x00027ae9", - "xTimerCreateStatic": "0x00027b1d", - "xTimerCreateTimerTask": "0x00027b55", - "xTimerGenericCommand": "0x00027bc1", - "xTimerGetExpiryTime": "0x00027c31", - "xTimerGetTimerDaemonTaskHandle": "0x00027c51" + "platform_config": "0x000215a1", + "platform_delete_timer": "0x000216c5", + "platform_enable_irq": "0x000216cd", + "platform_get_current_task": "0x00021705", + "platform_get_gen_os_driver": "0x00021729", + "platform_get_heap_status": "0x00021731", + "platform_get_link_layer_interf": "0x00021749", + "platform_get_task_handle": "0x00021751", + "platform_get_timer_counter": "0x00021771", + "platform_get_us_time": "0x00021775", + "platform_get_version": "0x00021779", + "platform_hrng": "0x00021781", + "platform_install_isr_stack": "0x00021789", + "platform_install_task_stack": "0x00021795", + "platform_patch_rf_init_data": "0x000217cd", + "platform_printf": "0x000217d9", + "platform_raise_assertion": "0x000217ed", + "platform_rand": "0x00021801", + "platform_read_info": "0x00021805", + "platform_read_persistent_reg": "0x00021835", + "platform_reset": "0x00021845", + "platform_rt_rc_auto_tune": "0x00021869", + "platform_rt_rc_auto_tune2": "0x00021871", + "platform_rt_rc_tune": "0x00021915", + "platform_set_abs_timer": "0x00021929", + "platform_set_evt_callback": "0x0002192d", + "platform_set_evt_callback_table": "0x00021941", + "platform_set_irq_callback": "0x0002194d", + "platform_set_irq_callback_table": "0x00021969", + "platform_set_rf_clk_source": "0x00021975", + "platform_set_rf_init_data": "0x00021981", + "platform_set_rf_power_mapping": "0x0002198d", + "platform_set_timer": "0x00021999", + "platform_shutdown": "0x0002199d", + "platform_switch_app": "0x000219a1", + "platform_trace_raw": "0x000219cd", + "platform_write_persistent_reg": "0x000219e5", + "printf_hexdump": "0x00021b99", + "pvPortMalloc": "0x0002268d", + "pvTaskIncrementMutexHeldCount": "0x00022775", + "pvTimerGetTimerID": "0x0002278d", + "pxPortInitialiseStack": "0x000227b9", + "reverse_128": "0x00022999", + "reverse_24": "0x0002299f", + "reverse_256": "0x000229a5", + "reverse_48": "0x000229ab", + "reverse_56": "0x000229b1", + "reverse_64": "0x000229b7", + "reverse_bd_addr": "0x000229bd", + "reverse_bytes": "0x000229c3", + "sm_add_event_handler": "0x00022d01", + "sm_address_resolution_lookup": "0x00022e45", + "sm_authenticated": "0x00023271", + "sm_authorization_decline": "0x0002327f", + "sm_authorization_grant": "0x0002329f", + "sm_authorization_state": "0x000232bf", + "sm_bonding_decline": "0x000232d9", + "sm_config": "0x00023759", + "sm_config_conn": "0x00023771", + "sm_encryption_key_size": "0x00023927", + "sm_just_works_confirm": "0x00024675", + "sm_le_device_key": "0x00024a55", + "sm_numeric_comparison_confirm": "0x00024ba7", + "sm_passkey_input": "0x00024be5", + "sm_private_random_address_generation_get": "0x000251e5", + "sm_private_random_address_generation_get_mode": "0x000251ed", + "sm_private_random_address_generation_set_mode": "0x000251f9", + "sm_private_random_address_generation_set_update_period": "0x00025221", + "sm_register_external_ltk_callback": "0x000254ad", + "sm_register_oob_data_callback": "0x000254b9", + "sm_register_sc_oob_data_callback": "0x000254c5", + "sm_request_pairing": "0x000254d1", + "sm_sc_generate_oob_data": "0x00026109", + "sm_send_security_request": "0x00026239", + "sm_set_accepted_stk_generation_methods": "0x00026261", + "sm_set_authentication_requirements": "0x0002626d", + "sm_set_encryption_key_size_range": "0x00026279", + "sscanf_bd_addr": "0x00026695", + "sysSetPublicDeviceAddr": "0x00026a49", + "uuid128_to_str": "0x0002721d", + "uuid_add_bluetooth_prefix": "0x00027275", + "uuid_has_bluetooth_prefix": "0x00027295", + "uxListRemove": "0x000272b1", + "uxQueueMessagesWaiting": "0x000272d9", + "uxQueueMessagesWaitingFromISR": "0x00027301", + "uxQueueSpacesAvailable": "0x0002731d", + "uxTaskGetStackHighWaterMark": "0x00027349", + "uxTaskPriorityGet": "0x00027369", + "uxTaskPriorityGetFromISR": "0x00027385", + "vListInitialise": "0x0002743f", + "vListInitialiseItem": "0x00027455", + "vListInsert": "0x0002745b", + "vListInsertEnd": "0x0002748b", + "vPortEndScheduler": "0x000274a5", + "vPortEnterCritical": "0x000274d1", + "vPortExitCritical": "0x00027515", + "vPortFree": "0x00027549", + "vPortSuppressTicksAndSleep": "0x000275dd", + "vPortValidateInterruptPriority": "0x00027705", + "vQueueDelete": "0x00027761", + "vQueueWaitForMessageRestricted": "0x0002778d", + "vTaskDelay": "0x000277d5", + "vTaskInternalSetTimeOutState": "0x00027821", + "vTaskMissedYield": "0x00027831", + "vTaskPlaceOnEventList": "0x0002783d", + "vTaskPlaceOnEventListRestricted": "0x00027875", + "vTaskPriorityDisinheritAfterTimeout": "0x000278b5", + "vTaskPrioritySet": "0x00027961", + "vTaskResume": "0x00027a29", + "vTaskStartScheduler": "0x00027aad", + "vTaskStepTick": "0x00027b3d", + "vTaskSuspend": "0x00027b6d", + "vTaskSuspendAll": "0x00027c29", + "vTaskSwitchContext": "0x00027c39", + "xPortStartScheduler": "0x00027ce9", + "xQueueAddToSet": "0x00027db1", + "xQueueCreateCountingSemaphore": "0x00027dd5", + "xQueueCreateCountingSemaphoreStatic": "0x00027e11", + "xQueueCreateMutex": "0x00027e55", + "xQueueCreateMutexStatic": "0x00027e6b", + "xQueueCreateSet": "0x00027e85", + "xQueueGenericCreate": "0x00027e8d", + "xQueueGenericCreateStatic": "0x00027ed9", + "xQueueGenericReset": "0x00027f41", + "xQueueGenericSend": "0x00027fcd", + "xQueueGenericSendFromISR": "0x00028139", + "xQueueGiveFromISR": "0x000281f9", + "xQueueGiveMutexRecursive": "0x0002829d", + "xQueueIsQueueEmptyFromISR": "0x000282dd", + "xQueueIsQueueFullFromISR": "0x00028301", + "xQueuePeek": "0x00028329", + "xQueuePeekFromISR": "0x00028451", + "xQueueReceive": "0x000284bd", + "xQueueReceiveFromISR": "0x000285e9", + "xQueueRemoveFromSet": "0x0002867d", + "xQueueSelectFromSet": "0x0002869f", + "xQueueSelectFromSetFromISR": "0x000286b1", + "xQueueSemaphoreTake": "0x000286c5", + "xQueueTakeMutexRecursive": "0x00028831", + "xTaskCheckForTimeOut": "0x00028875", + "xTaskCreate": "0x000288e5", + "xTaskCreateStatic": "0x00028941", + "xTaskGetCurrentTaskHandle": "0x000289b1", + "xTaskGetSchedulerState": "0x000289bd", + "xTaskGetTickCount": "0x000289d9", + "xTaskGetTickCountFromISR": "0x000289e5", + "xTaskIncrementTick": "0x000289f5", + "xTaskPriorityDisinherit": "0x00028ac1", + "xTaskPriorityInherit": "0x00028b55", + "xTaskRemoveFromEventList": "0x00028be9", + "xTaskResumeAll": "0x00028c69", + "xTaskResumeFromISR": "0x00028d31", + "xTimerCreate": "0x00028dbd", + "xTimerCreateStatic": "0x00028df1", + "xTimerCreateTimerTask": "0x00028e29", + "xTimerGenericCommand": "0x00028e95", + "xTimerGetExpiryTime": "0x00028f05", + "xTimerGetTimerDaemonTaskHandle": "0x00028f25" } \ No newline at end of file diff --git a/bundles/exp/ING9188xx/meta.json b/bundles/exp/ING9188xx/meta.json index 578480b2d..e9584f037 100644 --- a/bundles/exp/ING9188xx/meta.json +++ b/bundles/exp/ING9188xx/meta.json @@ -1,18 +1,18 @@ { "app": { - "base": 172032 + "base": 180224 }, "ram": { "base": 536870912, - "size": 29980 + "size": 30268 }, "rom": { "base": 16384, - "size": 154060 + "size": 158940 }, "version": [ 1, 9, - 40 + 41 ] } \ No newline at end of file diff --git a/bundles/exp/ING9188xx/platform.bin b/bundles/exp/ING9188xx/platform.bin index f392b3d9a6e05d7d33c0c7b07d7345e48a3fe7e5..0ad4c93e9df6c5c9bd997be40ede9f2686793c16 100644 GIT binary patch delta 52111 zcma&O2Y6J)+BiOQwx(}-4`(-pO$e}o009IxA)IVN=PCjsgd%Pzx*%vkGzmolf&>Ow zz(U}nV#6d5B|sn`dj0NI?uMc$qKhq5orH4E_TM|ZLB03;{?GH*C!99(&dmG1^Y+;< z4h4PpO;DY2oFkG$c~Kn7j^WU*B7_FRwG{rQc0aRs6@R&B&+KnGyj#!S!{0mb*8+e4 z6SL)&q_ivSEwsQWC>ynL=m#m(hN#npOsM1q#g@-_u4T!VYYXM+)Z!si@J7yVAiv^g zIr}qY23G`^L;JXQF`ja0tbDaxIsJVOt$hE`SL!j?guIBy^dBD0nDNv%Fk)<^ov%bn z`9-9Q6y&^)u5e)bmFLfQ3V3I690`i^!>D?-yZllj3(`s@=3$!{aO%!JHs z3f!)vDXo^0|9+R>O5P7H#_y5N;P|jzE%h(&t!TZbF)Ha65*yM3w~+xMQxmrNdbHvV z8=49$+RX9>_FYAdCu}>&TOoBx?|N#?vMosa<#nu)n?i)LvR-O#m|ZU-nU=kFd)USUs7YX$RlJ~!swwbN90-+J${5MRhP@PoJmD)bck`(BUtyxlHIX&W2qT4opdEScJqU-GyLV0QmJ?$d}NyXevA9*op z8a_h4Ng9pUlFa1Z_$l(Y(S1^>LaJ=U`bgW_Mr6fS2Dg{c zPhgm7^cX5-dX=rWoxSZr9TNE-Iu?_`>5Dmqi@cw%$NxTbFwVRsA-l9UU9NhX2P}Fk+_<%j8~j;)Gk9j@MC403b!ZGgky{! z**kSJ;!&L%IQ5i51^>!y6@r%D@~B%;dXkU`_ck}l&C*pR(NU6&UUNm!5KlN==fu2E z+~$j>dXJ1xqS5ZaK(R+PtqkleBtw?wFcYe+Z;7TkZe!PvqvXPYqOkKpCgY+BElKo} zyPz?NUU45NlAW(FLg#q_n2To&#`+@^WW>N)Y?>E!)~8h~PxAEA37_abSqY-TB2bbwoKhdt7d;cmH$e5;>OwMLQ)ZMAV)IsE`;C#Rgp4F67*kpA~} z%**Kkm%=2ck2;Y4hxQyZ)~=FnX$o2^w{oa*JBJEjWjfd*oWQmoszd2mTVA1~>zxG* zOC{{PvBJ~{U-M8p+L9zFv>>INh%cXo_=47g!F~WSe*wVx0aO40*14v#o`86 zXQ$kR>e26!|m^zgmmruk+q)p!ZtI}IB6Jp7#DKuh?Ke_xLHIdGF$hL8oWUnY|oy;FpP z$K|xcjdWV!UI*ee-Hk2Hse%%P3SqXOKKQ&0h{IQAn`?^{?Mj_C)ok{N>s{(bMzl|_ zb8~;|AZ@)<<_>T~(apX{y37|uYk)i7cE-@n?gaXtI}z?tuFS@`BO1i8rqu$AZ|Hn; zM566*=O-iLY&iW}PN7ZZ6X{Z~LO9&nH6qBiRj1sGc&~WHtp~oc7!&EGlf>93Mc#u> zaFg;reIm{{deDaf`j0@>DC#4x_vx81$cuK$?=PKIe}8HDswNB&`*?fM9WL@+p9I*W z_xkk56Aoqf)#8}n+^Yq}&05sp;4}jqdX!9mag!N_o%j_Z8v27U>6JGtzS1`Csw@-r zOtjB=?1Plq@RuOSs6_srHy8x>mAsx+@41h69F}BAMo+tt{v(@8Te$R4hm8KzOoQf$9hbNr`LLfwI-Il|UbMP~}~iMw1rai+^W$G%*@BwLVo zssRhnxD>p3Y5j8j()!9^z1$XMuLs%xilemSf)uX#RGJYvYr~t;?8sRapGtEhgS9U! z?p0gfl+2MNxWBGY@6^MNz6mUUy%yV}?N8em!wi3M143MEUUkw_s7+aW@p`TC{*iu5 zOfov&9o~^^&zEFX1%TQpvZ#MAJcR7(pPD=!zG~g}Uk^(PUIX8LaViAu@+koC4btAf zaB}mn<$$i^pcLxcgFr9S)s0O&wAB?$or`|#O3@E6&1!6?g8Z871 zSims7;$savIK=tyhaYQzhK6P)rq(wk3K{{?T9{lYs7Jk!Oq~w-J3L(PJLKeU-t!3=n&na~vWCj=o%}la=AaUpepp7y!%x;G7cO4+t zRx0&M+tu1=9qZlhL@iG&H4EV~`WXnzTkRkK0RUMtFbh9Qb`31VlgQUWLi7;yl(#b>z$QEeloUeOU=kc?ygF$oVrqtoUU_Mdd7|`f zU#`5&TvWc^TmuRSz`Zy~r(>T3h|f7{gRU}YTDFKQZd1yBa}f70#SmM;L*pU>x7&cJg@v;4I$ucQ1w(fXMq1>juxW7rcd2LO)TRI>tS z%i1|@&5~4l<^-Gh7>sz8Nz;6Kp^>~@kXm)%X+U^0(y2<-CZAX*sZ7SMRoc@FV835(4f?Mt*n zV+WsbA-?sRck^W41-oUNABej|Gd50$5UPb;g1#2No0rPbyB;};wxJzEg(9H>daKFP zLt_V8{k`4mSnt=Mue_8q2bl|jt&7ZM<<;g|KU4oX(M*`=nyuvM(3Hd@05HM!rG%=% zr+9X>FbNDM2KaOG`_R~`M*%Q%Lg=2!yb~t2(myfZ%$TuPu7@wE6V?l>gdQ+C*}IJ} zxefmxuy%Xfn)u>=!c@U6dR zl85L2-aH&V;A7+{2HsOQhX`mZCm?WA5PeEwvdXxFoP8)MqOV7ZRJM_VPFN0WEGFVZ znQ3|6-l=m_Za4khR6Od|`8=UOz%aWu5Me)cOxQt&44a}E=nG>=*c@Psf*oYvune3+ z{xK|Xpv;H#!R-TzQEo^3NI|9>ESLl!?BNoRtE2Y8L6>%imu95&8_ z=PG#4C*&z(T;^i$@YYQw z5l1nD5B=)4b3Oi$jDWM&hhXA?y*Ud7_94kK4iEm)6XK`9&s*6Nb6P#aTgNal1E4;J zVM6_6|5HVA^nK>fpu1biL1RkQZjTBCg4~Z2UtySV<$7>QwGjFSM;~<~&^%~mK_kOC z+9s!;xcv-YBipg*+D@2Sj!@{IaiymVDA5KeS2u4(TT>X1VL_#1tC{Z~EXEI?mi!=X z+`pkAO^5{nAlC=m)TFd)}%?dAc-~ zOd9=`<`ehc&24G5MUmg~LIOSRCh9Rdyr1+MvzlA#B@JT?+>n#xM|iiLD8|l-j`t#K zY&!R@T&owpl;jpUokpG?J2mRqi3~tZP=lYj#wSwg1o?HWE~@=R?ti?#eu5;8GsJB_ zVfc^NwI`CO96X(IJm+zdRpWBG)gIC?E+*FF>uF(r^G)}GMaGl^Pl&&QL?+*ivxZlA z^TBrPA`_YQ5|n zS2|JRnT!B^ts#k%dUEt>QZ(ryu21Ws>Pg{P{g(S4?AZNvWXInmF3U~o9&X~kaFOCi zHgGSwi0zRtKmxx$`FG{p&U+oV>JDvvG!Ao#PV(-QZQNN0F-|?l&2=1#nKls16X`!B zGVZY*I_Vk2&tCY%O!J(IIWreM^JE|Ja;NO!kOY64yP5m49zAPCCF_i0aAkhW%VJS{s? z)Rm9xrN3#wM_*jCxJr8p-j0B`6Z~(hbgP%2N}cv_JRNYvr!8c?EI#pvlj?L_E7u{i z>+!^rc$x~ZnTwoI5G(8|Qk^ThfwiZ~85dcM@ihEM96jh!nu>G{QbA;$Gz1sksOD>$ z0&X$_pM=dxO@5djOTuTwDU`<%m67ZjZ*!Y{r7f(+mcqrSz|=t~Vd*X$l?S zQJ7d9Bf;PnH@nz3IUh$~YGreK2m&B5mZ2X0R=>P@_34*Sul9-dV{8_|LTT#x+K}p~ z^<^-VugIY}y)xR4jeME4<*H6U>l0hR;j;L>I-d@wM?x?vj;?kQZtg&ayCHM=d6Ql8 zYDFW?ddX5R$*b3ugVrdFqpimgiU1C=G{*>G0w>7Q6EhewlH^J2qmPxA8>bPKq{adfhSteMv@?BMLMy)MxzalA_e_h4Q& z2PFJ$-oW80OTo1Pjg8C&2A6p8q~D7JL%w!Sz>rstHXKedZWb0v+L59RKVIsWWO_D1T`ycj5`H6P!OGBbY=MZ1=X!4`rNlks6 zA<-ee=z%+=wi^<;FKYyigmWF@Qu1WQun;zT7QAzb*T{zzFR-Ee%pb@u^XBW=WyAa- zS@~WyxY90hpciS2&He~8UthxBBtW8~v)u~>fu=X+rzI*pSWwqHMUOO#-y{JE;9rd5 zsDo%1jKt^36APx|x5&u_S_b>a1@km)0!(GPc)mJ<{>w?GEL;;m9k$_cMzm(l7+@oT zYI(Cmyh!dW91zbs%!%btD7OMZBv!{kT+Jy?CLM20N}P)Zjv4#`@FQJ#jH3rz zk;zg*cRq0LZz0A=Y!v3)Kb6PX)F4FQou9$jd(<2Zy!wg2XX}K9vy1K7bqn zk}pJUcd9i3AmrVra{OzuH0O>{2-yPTiAp}F-XUtp&8PZei6lS0m|^Rcr=MaM@6%=M zQf5hGm-&{oa0ZyUk|sX~k{y zKLuV{+=qk6$BD(y<}xUn=DLP_U2>@z_)6h0!y1q$>_9So%o#T(?7*#uwC0EN;_3S? zQodviH&)k_Yq(R_vtT2}t4+7C8YRO~I3}Xx2{fsH$tCj#=0t9G~p6w<8 zaXvF8I)%1)ikon*+J^W^I@MmM_z8Jp=~Q_#ec4S;FU`sP+V2rExg(=82p_$_!?3YYUu1BPNjkZy7^9(YY zYr#=4RI=%VkvpzxdA-!7PKf!IbC?3yfYk0;>%tZ;MTMTq)bK~Ir`iX zJdfOat_P&;Vk<{-Kkp#ZDzl@ z?+wXc#H1iLImM}@*NVKp{{UOfBsj&1u>YBWNPszxb3A&C9khshTkC3 zFI<6ucIOLIBXU|-Hirpv;nb$!dP$r{roK1}XOUwsrsH_>!;6XBOb>CsI5{%L%3_#u zA;Yk)K>^b{Pi9p`Cw$>u0%A#x!r|W_6xJDx^&t4;JY-{)p8LW|KC0qF{t0Xt(8)4# zwJJMyi%S7A&?yqvsZD!}7;ol75J zS2YY~R2^Rc(~Ud9dS|=vD|;aeQMBo35!Y^L3{KbiM^Hn={I_B6(tUkK_xEp8lR+u@LH} zBSn0BjKuedg%x~E_N*QjwF_dP=h_h^E^q5y;8l<$zpb7f!~<_^IgQYpho-LCg(3HF zXKgxm9*TddKOWraLm4VNcfcWb`Q$>K)EgZEWU}Xr5a{S?N4fPjUeMbUOVtO|c@FU# zU#49RUoVr@>oRc-c?bTjC;wiT&9!YO&UFJJ8JkyI6*An1vNSMPhd6>9tJUH}a;3H; zl`$z3GinfIj{#P>%Uo%pWH2&ml1~cP_lmVS27zN94=ehYqXGhCw8kM0AvNoh!54ac z{i~QKgEyq(eDe5)sXfy{*J*55Hw8iKOotg5+b6a;w1V8^5XW@u5Qn&yT-neZ@}(ys z>m9osCVrN@{_-5v2Od4ljS|(y&FMp>96!Fbmp9zA{lc7UZ>0dq}*^kFtAXHi`0MY$n1tq=|~e;xSTAzlHC$zlwK=P9JH z?uC($Lsrf!CcDv2q-|^Ril4dU!sA*|{K=7Nfy9SqR{0SLa&R?9=o{|j0B$hA4fASr zY>NjYQGA==E%DqtD@oFpah!f9nZKpF-)u;qzG%w;I1dBf)O-ki%vE3RgR9GB_g}3p zepU!Q>QM^pZJmpxY`q3@M?oIpe)Ev&M2F3!iVV;^sHxAn{%5619Xzj+%?j~%zPnh<6tWMLe{UQ{fTIzSXXWYf0v zA)|a6U7-+RQc|N2^X29BW(}1`xNO0t8l5K3Alw&EfH7jEJS0>_@q5TD1%x~}l{dDf zrJeUEP#?g}eeqKtPzhH5h2ubZeUnccLdQBu)^=mWkIwq?Kra@dd5kREzL^{CB+4CA zfE#A+NUkzD?0+mW820&L|04e-u$6hCor2b46)LyxseY7OSmO{~?YD|EG{XnM~v^9E86vav4*fRUnhelA6# zR%r}6AjP8BrE#cMibruI!WvtZu(SM*94}uMvlDXtg{bSQ5mL*vvL<$?RI^s%>i&QZ zbvD^fWS84bjR!gtP&7R&iQ+1Us=>f;yjijHb_zCsDk(M9wdNY-PHfIDudY2%E#G-N z4N;8S?if)^CyL-~6&Ae(+p{fZ%QRDK6-;r0q@5t=*Gg;Z4wSna`&4MaCySHh5k_i2 z28*&YAKe%AUcN$*iX+M^Eakc?!wY*WX5Uewyjg~2+oTLW?|FVcJmZG)yl47UDET*~ zTj*;^g+7(+a1DX$&q#WHt#l1txt@X*opthosb{W-;q!zTVPB(-K5zW|Ee+VRFeS$Q`3D$AsXyHl$G0o zP$_UdBRdnOqWFdc% za$lV12{`@Hv@e)N)4|(|qMD482?bH~e;^FcvKp}vIt@Lt8!uL@`QYg!e)?J;1B9a3=)u zSo#Mho_}AIe1zYf)91c;6Wm3%3t2PR6r0*MsgsylUI))n^ew3Th(QV=#&%!)!bd81 z>x%A+pPUTr0OnhM2fiiSMO@iFNh#YWsiOnW3{CgN{l3Ujb)_+-tx0XcdUbn*DS;My z$alN@&D?Nu0!YtGZ^OovLsbewx)>a6;PDBIu^W@c z?gy9*1B3Q4z+^xsg~1Zt;xV%5)x;PHq@iEJ@Z;}}UlO!e6mNUT?pM?Br=;c8Tl7vXOqXm2+N)lJnxF#RX_{nfGguX?Z!rE4MY>lQCMQ6G&BWhw3GWUPdf zgXw<(xg3ensM6pUUm^k|nPXEL!U|m-7_} z;zqxB0De)tt=_DL#_PRT&4rC>b3$WH5w-=>zCOD-nCANU3ikD@ZoM1@u?ceH^?Z2< z9WN2x8%4Ncm^osZDl$pUQXVsUlEi*C;O@a^fM%T zZ~u`Aw7~!Lh#NNFQoWETs79*+2xkqUn_Tu;d?U)ZFHQg;R=*67mvgA9`HWd1#QD|J zeKCdX*}I)9agl-hj4a$(xo=;{K8O7|=IDFHaFY4=N5X$}sBW&)v>{F#MW=X4?cb-# z?}-i{`StHZ;O1K&$=E*yssdivA0Ji>{1^xe-3Q}t@BYlBgGU+lm~vnio8smga8^PK zf}zTY*!L%}Sg3RVK<(2`8SE4=0ra`;OuIrm)z{Jyq&ZYzz}iT9hfI8PSWJd*Zi+nj z!sYwoDCZR63`i7YA^YCca~CA?#hXc-fG&hEU>&?E7zdLzJ7<`>b+TV)rGfFBq<512fvt#~l z$N0Nw7UNQdE{cvh_D6j6iHdnFz6W8ixVOtd8qRt`u+?zsDT#7ymy@G!_o;f!AERI;5^8<;Ig}d;D-3cd{pwTGh$^b3EF&BEzNl_t zQL6w(nct$;hn>4G-jP__43yBQ06kPKeHa;N-Fc*2$dvAtf@J}r5}=M+9|8S9fv_!gL`MP z=5xO>5egDhWs9PEiJ0Hvr>T63v1_HdvblWmNWLkW`n+qUCuEjZ24B;BU+gc1nsBAI zu{14``Y^VHv1HzO1_)acvA`$QAasP6Y zqIWYu^gQ|Q--7-Dk^EfSJ@C#xdABz%B%SZ}RkG2>EF)R(J)G?JjKBNyvq)k<(Lz2wSi%kUknj()VmCY3 z$1g8GFksnAJ}0Fg4vPN3S#Hr+EU!e%+wRnGP=8AI6Y^mPzCoUEc!ryCjL?Q$Zn2Z3 zHTJHB=PH|TYysoemAGjwX@^#}d{2_^L>Ydgp zVQsC1HT-hO0f1q{<64Q+fFyG%s97TAO}c2kPfg3D`r7!?wmT(J2B7L*vb`yjKkQP{ ze@YA!!<UADM4<*UtX)_??@Nl@<<{=Xf^Nb!#4!;N?mCnPTK>2TT^MJ@nj>^VV`<3fB zDt(0>&@2#F^H`itNt!1A7Vkqt+t!K#+J z$h9M9qON*W@3l%AekwQ}EuQ`zFx-ijIC&(UE|E(uDFEqSORqt_-TFp(r=81&i~^Lp zf(x`p+Jezd1sEX~Fl{1ff?uIT3n*J|V^swS!dA3Q^4-wbS21z#KnZa$(^de1<^T_UIrDj z27uG#!I}Qev5svGX8S0?pbg^Hw4Gc%77xYZj$;EjgPRzR=O>9rar)g3gqT(WNicKH z(j^O-Rst-)csvFFNM1djn&_1hTDD0aU?>>3g_uIq`@u+&1seJTX+Iv_E0PKl;`t>H zxONl>bE%oh;XhSpx^Cj$dtyHl(K;9?J4GU6TJ?A=S=QPcKTH1JIuSxE_gZ`P_Id7# zKF@Zk4Hh49u~}M*a)eV&s+(Zr(m5bk6*jgo$%wTwdXYq<4M=8FyR^57(izA zguw(3xk%dSxQsncInP@fYUNt~u5SXmXR|a^%R7T0H?h>G)|RKpsKrO7oX(A7uE77n zMY~V;NqpQTN2oJY@h3n09u*AyP)e?zj;*@pV^!?_ZA#Dj*Yw|DSRDl8-@N|?=TuY( zz)5x1*9K-+XQ{7N^LmRpMM;nQnBk%1bzt5y=s2CDl_&ojb`)9m$>pl&9QFkoy3|p= zKuwpq5EPdC#AhAyP9CZ0DVH3)dNplz+2^Yp)$|)z{Xz|$;V7?A!)|AWzM5(wrlX+` zI~aRfjG#v7wd39Ngt|X7|FpMS=erG?8+OFOPv@pg0qtAaUQj!pVzv4v>ZJpBE)00;j(E{a`g}H7 z9!K}PN$qDAe2h3g8=rl}H>8$(Zz{y@Zh0sA!604&t1d7U9~i2f?U}{@h~*agNbNr| zAj9*)Kl)b+u~#r2)gjaO;ILR?*|s=gsV+C!ggs5*gghpQ zEF}*HTcSrnpt7#v{(6i+8>LE^VLL&xw3ZOc>$%>z`XUmrp6b~hX+`JddX-+em|VSS#B({o_eu#z)9 zoLgB66?r||!*x&)es8Dcj+o}bTKT>AEa7yS$I>Xjw{ZzhkN2wJQd8z5+BV|FdmYe`VNf7f?ly}EI~^gYtoqPqT2U|A?AOLyjLUo80(;X+J0I3cqY+Frbd4weY_&+3%j5Fd*r|+n;;(;r&jJ2Q*H9`b^)l0Z9@)NFg6FWv) z8^Kc!{SKXfWBPyG7yJ|sq7wBIF5d<9)^7UI*fG;qiKKnukvG40&^y0F;B<{-` zI0IGqWiJSUFZyy*Mw)Z9@VXSr7j->`SytQ&$+ye?-V0$LG7khGq@C5_Ii&DxI#=T% z^UmhuG33>=kHgMzoPDfpv14R6glT>V69Iz1B5z$0q=Q0XksJ@K>lekEX9F-H56!TY znFv_QG%C`=OcAUi>5YHu)t>|H{dV)&f9FK+adY}08<*8jDC&9+l1dISiiFsp28T4> zjwQvml&a^wUv{t<8`2qpR~j6jb&td-k>nqPQ6kd_=?uW!!|noL=}chh@qqpw?J7{h z9Mt!2sfEzYUEf4w-j?cAZR9gyrQmB+PJAXCU>=pWG4&1Y*T9v{WDzcanY;^osx=&f zU0fEkHyH1IPHx+hN5;dX!4JsnYp-7rL6t!B`Z-Jhd&MAELnVL6u)HR%EE}JX%1pDf zXjU~?=@IlPU;P|&W08=TdPgiEquY}+UUZeu!2;{|qjM;fH5PR}j7>0bF&h{N?iYg_ z+LI>zkIO$`Mx6Z`40r_ae{GIb**!=`h`sucL9%?;{DZWl+!3kNAIfTrx*qWZjpzod z%DBTA@_u_!znKmUCytnr{h8Fu-*h=P!1$K~3|GTJ(^@!KLT#ZLzxgph=AWB@&yi#2 zM(AJaZWKTagtupg3f#^z@FG;%fP3{sDSJW$4RI0O`J#kyx>agBWUpK+72^8JYL)T= zzdW4QN@V4EBfdyl&!>X`zj{7BwakOTRx1Tam`3~7N>vR-u!4S=+v$M(g7!jm@N=-o zR|FQ)1oqv~x38*LASEHQd;Dv`KDkZjV7PMXD z>n{v}0ajomBwbelh)e#h!2sm_3BVEtrKk}UG6XCu0L(S19oxAK!TwH40Z7bHGW22( zZljM(zo-xS7|8c&s&yU5XfE~a&!aQXO`q?HI|rq?pIN%lkk4K@~&eh(-D zl1d1z5&}Rg9aCUqWZU@kA%aYs0NXLlsTBCy_^}$@BQT5-Y%OMUb%AWw==P=R!MR!f&?^=fM||A?dot8xSIN(7zmdN7G3*ff&({vVTI7TTC)TBhs4t_HhC zk)@(z9r8cIQ(d~Cy?4cj$PZtoa<8`%?^jvDZ$sX+0H7)yq|etGeYtLN%4M<**t^@@ z1LBmZYqeu{30no2T6w4t+LP`5%cSOOZA2JVO4?fGz4w+tzMW1bjbEo$L3K5}dob}T zG!%;JOM#@J^k<;RjSjE4*2Ba!;`{hDP#n-BAlI!@8_*&SXfae5p~bY!$$`fbL6cqD zT2+~kp9HAL5o&-I>9s{&T0n^;{sNZ7gV+_DYuF?qsP+e`u6heh6!ccc6iHid0w5LA z1OTr7L;uosdN>;Sn@1(|s%2cs!^V}w6Q1#nybu^Z1cqllzax7tC7b>Z+82TL)dDAf z=VqGrEzq=xKigpkV+GTnT^QJ8D-I|N#?xVfu9O)ze#5R?WF~`h{bo|mKIa^$eC|4xa)3m)o=n+WoJ8L zG;oDX%l1r?vlkqUC>3O;P)L3NAU~S>`q3QB<^n7~5yUrG7ruZkncwIGPxu8W=3|nH zsVl#>nE$Og{yhCc@)$}4E=6AZYD2(mnV;cBp~NM5+24cqKm0EW?2@F+au z@8rEJy{5_`<{M5w@L>IL+cxPGZc{43YcGWsh<*oI|Iga@OTU$uSMYQA3NX1eMhG9Z zp~M#Libxt7kz+F*QqqM!#UDGZuxlr0-g`&fMiReItvU~dTb9R?_*3%`P_SolZT9kCS&kk=s_3#yY7ob$P_`R1IcwmeNkEe1q*2`daZaCRh zW#^v<39FiaLAleo{>UM|Lf%=Yz&*D~8#O3ZNxOWXUJu7P3#$_r7k;XQT%C-5NLs%y zRbu-fJ7*`#A97e(!VkT&zw(`tLaTe&*GL=7b+FjM2`CqZeX)e2qtA$ko?>U?bC&*#@kmv#zhK;L- zWYOCmcErUa&LQ|}bk%##3HE@WQU5|uTS22&JO^r8U%@S(bq90Y;_?^RyU+i4w;JBD z1@w2Z-$~HJw%_hW{&)u*o1qsZeFa{A>P`*jvSVzCcGmaZ|L9x(0@8nP^NM={Zwa}Y z*ZYB)y=@^&0ixWeZTyNh<-&_>w^cbb#dT6OdO<(e#-5)eombb(A)hRf7k|u$o3JC~ zqaSldIQ-E!jZvmW^mzzDGnmX_XJY7qK2Xw(fPbud;AfA&yB0EUcc7B5$4{x;;*(_f zPX=~A!SWN|XDk%<9O&dwI5jySNPw6Wn9>N_R2xo90f$ELacCh6D1_6OTgi!^()_WG z?m2llF097%rvWiVbqvVZNx^>&cSznZXt?D@4f=Xr>n z{WYK4<|FcsBk=nVtsTAa%j9~87Ox;7*LurUbcjSAy7rJ1vP}8fokGgrvP5 zDB6de3FeADiHFk}AVOK#8u+o_^$px87dde~F8)m)MoFe98_tGQC2$OkvCS=RA~&yV z@k$bQBXwkkA)HQfvVcq|q%U4T1+|!N1f49kYGJC3qRiK1=b2=DC>%Cn(Ke>(<+@M^ zRjEv2R3wXT#HT(Extu)c5y;2{S_DIjP-t<5?7h(|YcPajGXH>?0NyKx#GNud5?Zu? zMP(4eXuOYf-RRdp3=CPe@bvEHEK|XlDgk0-7(y0Irzq3oq2o)?u>d;$Odh?NJ^e%X zqY$_4GN`9>cD3L6ilIM%D`luHujT=D|L!(ub^ifZ8mSa&YeNMHj%!ele>7?O&bfrN zVSE@J>I+2Q!{|UC`R-=^Q0n@>g6*B+H(pGibRnw&q+)`sz)%F3c8g`s8o^MJEfg3$ z;&C$iR-V4a%h7+k^f2Kf594KNWEdUR%G~k?9=(iL(8+KD=$0XInAabm`pd?-uq0$} zmzYg%-x`_}APw7QV94B5=t2P5!GMuXUQ%>Bqw3bl{(fp`0ME=I38Uvd0p;uWGXTBW zl{`p~6hMi^pNm#N<=GAt1F;aFzN9^n3Kq{(az*gj>mQg16nq^8;(s%*Fn5> zuqmAG0ei2nZIZTA3~_n*J{7zLVnt1e1oaQUq5(ge&uYj}ZG1eZU{HwM{#@Y@BJ+y) zEengKArTD=#|$hl&wIYXjA<3FFTYxzx7^^r=V#5DHRK^4=u`^vy3=5pjsR>jOHU=J z55x%#*EF(JI3muFKAtKxVe}KI@f@xTwgljzz-`N z@|R|~OTuXR33kr0045dK8{UyMurI{9Yt?i3fb7 zn)2lC?+?N6n&i>=0oR?l=UQp&;%2D;^EJ)VKy0sunj0uP-tB`-yb3Cs7IRygrTn~R zsh^f9G?(}{@&cWMdy%U&8cNab(Lu3=UiO74OrNNNt?pL_q_8tF+zfSc{U9n7YUmU< zLISiiw|AKLfl&5|=l`NPn50XEnuuUQ^#^8;kyD-Ny^=v3FcF{aDT*GM!OEZENXG@LCzcqc_ZE}Zt%&|r@@bbWW!DvBEAitF~x}kK{P5$Xl;_{Ax zD<4PP?w{dDm#%sSKGr6O0zCT}vA0cZTYL%=%v z#XGcW!kZjYjmA2_jqYzO@&GxsYH4F6)H|>CWjQXNGmxBEI z<5NgT90-FNOT>$?yBK?s*L;Q;wq#Zt0zX8Qp#UgU90;{dzJ8i&h#mya2wWdRw5S0RU)j(& zyY>R;ztB=D_Li)19G=c)O4g+u-k8>{D^NI`&BPFg1nSulKTanHsy*khrpfTH-0Qcj zN;xi&N6~1HwMdRvus0{)=XhnTV0IxPssh1Ir;lfS-A?LCXo0l zV?c4y!W2^{oM5w#3&F#=#V+eBA-E4GJ#9S^g3|!x$KQwG?=gdYA`Bi|3xLeqrPok>QP+1+o@8LwbD)$4n{3^MN!DrMa6AqA>8N^sli!^to<;6VQG#XlLmW=5mwjk72~Zz zk+^?ci&x(m1;ved5Jd^1tNjrX=sGD9>y!3Mqe@MtU?`ZrWcXctM)E-^&M4FG;wzGM zTO=-vh@`JO+900M*HjIJdEI(D63^1ib!i$y=nL>WFnXa=9P6^qh{6Mt=7Q^S4}OP) z{q7f=5tH;^oml_MsJE>Lqwq@%Lj$8R4`{w*of^$@lTTY;jP?`4`bISF6UREq0IfS= z&oWsOK%4c)XguFv9i?f8gNg`*G6*vz5Vn_7VNw^=NsDCFD((U^IL~_6fg2$3iWodM z^t*12G^W*S9 z&gHT0i^Cb}YaS*ZfC0|N;S}yGkM&j@&Slt0iihV0kF_8ke%6U$V-#ZyA)-vvyj7YN zJzAx>7^*AkD#LfhjUHd(O&^y4Hv5w;RQ z8JCF57!&VK#FK;n)}8Ev_s&F|qBg>_hG8%bqPl9{|Ma=VIwJ`mNo@lIr^u8QhN!>xDG<(Msq!y9Zv?Bih9;Fdgazb(7i!wMDo+AZ(5I1zpPC-$l7q#^WcF z7%tu^!K{`b5Po`k5i3YRyOvm2@pyxheOHuNqqMjlhMwxRex$`uaf;g?XX)@!E|q;| zc{sN3Zpje;$Rm$HR}2Z@P`by+Jplx0Q?(7L%y2)dm+!OS`JdbsMPdr0ica)jL zucGkW22Sp?m0J=F_eW-s2z#YWgX-&wEb;`MqBeH{|l z;CRdoqGeDI=H4^SkJkX3u!y=!xGg^J{CI0`oP_Zx>j!;se+K5qKCrbeSgc8Xf$XU#5&=v@({SvEN)B4dL zP}sM{2)A{E0qd~J`hfvh6R;MXhxNH9By}lM2-61dl~y5zX`|L@xGf&_|1#6~yQ>y+ zrrYA7BV|Au+hXgCJUq^?&49t0^6-2v`-nBIAJ!%P;JnttY)KZ1!eFO_Ldu^V#$4mJ zPU{Ew8?(&%5?mABcG{0kk+Qnm$!(#KL~x1o+}6+g;e`snNo5_}ALj+RTsZ*1E!wQl z^oJtVOV-!>;}HcVus;}iV*KA8b~EwAI^}~M2AS4wFFuIgap)nTAhR+53DQ|EYfL^K zh>NVF^KlPuo6EW|A7=!Y{*j)r?#{=?(B1xL7A1q({+f@o2Ih26!sli|BUl^M%PL`Q zYX91j{hL({zf8AM6Bx+lxd+CNwP*ky7xqaY&FDWMFv|M+0NfwXvbGPv=}8|sm3Fx_ zIijM{zGBv$LS%;o4cqk4GkhR^HnzWKd8GjkOLTgEf`syqerMxz>#l)#aIdqTAk(Qz z3}UejSA!6JzLFjFXDEyWrvJ4Y8*B-mTRj8uV_0sTItUNY9PAcrEZ^oI=#4>mNH@B# z48kSBgZ#Rbefqdh0p5*+8CHh?91!{E2ICxztzf_wMz3?kK~V=J+#s+~2*);E;#lj% zAviCi!Ev;5c_s7F${l}x%!Z0OKT!b^aQIt8fC`tbSB79M4z~J+;N<>up*3@P3INoP z&TSA|@#(*6e-O8IiQ`=V?oa`f0I3~q0a(_tLvdcT5e}-dAUxx?1b>4X>z1K_&W$#hQ&0Gl=E6-<(JMdH7&m@eqCrKV-fB5FQ3n;Tg%AGYpqSzU*8l zZ7{OoS;*Zb9zA$?rTQdX#q6aV! zj^Y^eL@WTL5IIctYHd^w8TTp~!J!r&9aV0+XzFOKk3-Kp` zO}cl&_eNZVf3a!{aeVLx9tl{I#ZRq8h1d{n^K!84wGa_yEF9RrYYXv+m=3qf&dSqS zE{Jbo=L9eLtd|Nw^+8u<5zf^(#5;bK^~X3xMR;07qE}(xSBcUCcSS_Vf%<`S*8T0iIsTU*ebfQ$MApz(9puN!F4cQM$K7VS zE?K&4x+>d)SL6*LlSAu@5VyglhNukLAMmWdD(3{#TwMPf%}nEF1WIwil*?_qBCp&} zD;%U7Yx_t(8K}J`KewL-^0Cs#I_T_)WF(&S-%o2Nl2J2hrzXW9mF}wpjn2p}^VAry zb`^T=Xs|T}p;l5L8O?Q8IuAM#R}-FQSL9><-cuGjnTLrMZu5|W^mMs63wPx!(iQ!9 zH%Ny}A`|1;h&XMe4c6hpck2n4zk$9yiEQRa2I;WLB+D@HQ{ub}tjgux5!R&J0 z;E36IO>PbD{P$EcQsv)%D*#V;m=2ys$|6{wSnT4%v~e2g%b)ktQ`112o$yobbo}o3 z)2!(vJN^ORW~JMGSLAK}Y_N2!adk>*#dO3Vd&*CbOb2;$pPwe&hvRqFOYQfONBNJv zbjy9Dogd-d`TE~TACgdt#+V-+OdIQJ?Be0|_BEKit6u7v0nX-vmr658BBBq`=)aRK z{7Uc69e*b|gg>d!>oY-F{-Dr4_oGwW6*}&Ikn`^;^htKV2JF}U*jvvj^Z>grROkiv zex^cA58%6D3bj2zZfY;fpM_}7gJcM<-U`ttA0#=6m*v%%T{iEmbE&JWSc_{Mx$o*DuSP|Lvr2YR(=s4wsH8<>^05Fr)N(GQWnni%O6eF7IGgRXms z^x{iP==%?$bNK!FAz~TxOVEJL3&{pfw9{3W$3sKP_4hVkmX89?y7#eem>MCBg#qX^ zbClz<{I$Q}=9h(n{jz+>PlrED`Uv594CESI%=A!y=ZO5%lDz4PJh_7|d6?9YCuqzp z@{i&D7=2iIdwk4a>auJ=CkQ%GRaD35>@;4CaB-P3I-%|C1l>K0WDI!)qBPdnZDM=w zVKjK%aYrJQN+Cb3KMOyMvy4gxK_x)URmPqhw27cq%Rf;>JwoV5TsU6Bkr9FlVZ1 z&|6-S*ZKvQwE;1(l|z@bBqW!q{+^fRU-uG$2@o;m@sE)&HPO;u`uk(#-spw9Arvti zgf{t!-893AaGueUpB6hwcU=5IS3Al5`h_4$e!a5uf|E=pB$^JLO&;O*dFh7PL8Z;uNuD4Dgpci@_qo8X91PGSF7kE^YobqaSRQkjE}Ku*4T+Yb{atDjuw>oq zK~g^-Rbw+oRcBXRlDh?>UW2P|JMqUuBW0~10y9K@_RXCmi^v$l=XcO&7C_(741Mdl!%dOryiQ^Y{YdAc<@q7{_*Jlx&PuUAY0*=*UGx z;7fgU)*>>SjHCM(k*$!Q(xNAcjsM<9w>=3=fC-3yihM|B(1TBr@%%6^g36Odese(x4=h-7lWx@tgeC$Ee?z_rr}-Q5{hcHY$mpph#6!6AG zS71Eean>%LI`c*O`5@i(GF1|$q@tvA^gm0!YnnBI~AU!eE5&s}%td39qq3*ezzJHKzB>E6Ihp^5Zdn|DoR^{ITI%^q3CZz#d zw~Sgl{~g5YGh|rIlul-Yt@sT3_h-lmup#T7A>G+F-SP}s&hPfqv@$YI zJ+pZBWEmL~3DbR5e#3fDhDFcv)1>7jQ7FO`GyMSqVk%53H6606>vDQ0BZ$&7my==9 z%=Xm1FV7;k;>oMa$#ZFC0bzj+7M6pLx*$X}cr@S>lEsViI$+BU+#Fo3@zI=T$xPnu zqt(xnr3nsDa`Rd@Dz)$r<2ea?KD=*t_IZxDNP1P6q5BV$&T#6{W}ysTsQ(whJeL6* z-@cL3F8V<^`GNN-JC|1gM)io4vVu;CBD7Kxh;S`B#|{ELRY_K8TVWJV=dK{7iPvP< zG6`>WHVsbcPSf7Lf-RMkjB429!;F?+uRyzHKcF4(?VF{l2uICyg(AQ5wLWkbuW-%18;b3?PCk$ zgp2ZZFALgkgO{lVcdg!no8t<*;p&Vx%(q>WCj@Eai)aN?f8UD`t^D3WcfUybsDc7K zJN05%X8QOlGBJ_Oofbw1i@N4YTKKIl>WYP%ph~=stbz~-v-4sVnZ|z`pvSAotlM>r zTn+kY41Ibvc@ICyYsgvtg$~O9ldR$I?VvCJ6BJHD2R-pm?9285wZ24-$G;G`ZG6TY zdD&vp__btAGFt=Irm2x+Y7y9igEKfMJ&wgU?VCXtttFfIY#%kf47ilyqeEUM!!;3* z?JRhiAjTOe<(Em~=(m+kt~e!a5GXi4(tTBa6ZdOaWCVWA%39Z#FZ2TjfBeSyIO4o2 zuU0bi55s{|C)HyQ=%iO@?mCF(p`lo@j*RJ}b_b#xcJ4ECmliX~FTk~*5tO~I(^Kmp zri+jwd^EnAY~&+5Xk9f1`Kdy0Ruf0}k8sv>(#C+aYy=ErG`y=cLi#72zMlMD`-hwm zqVKOKk6ZrQ1gjcu-XT`~?dE!2-#KIhut+4M9Y_B_xW=n=@kUa^*9K|yD`c;FP64aG ze}!zuTzKizuadR6XxOQvq&Mlp>My=VxZLY1ZX8%cX5y_xSJjaFaq&5AsUctSDFOQa zYa~xC9WF_@;%hs7uMr#JU-#2dZxA1!-BlU&sB$CaH2YROHKcwRmd zDv;8nqC35|ZGT>he|1wU%(dwEZ-X+8^V7?3V}_3VXvI4uNqZhF2CaRE%*0h@i2B|k zeQ<>-N!m>6HAd-M`om^2T}4fQMN4ddvL(QY82K)FQKjXvC%=4`%v7fVb7k2=Ugz0n z|FjNR=luXp+6pZ6On@%mN=ESy2k7pt7|Ft?cYg9di6@Y^eff|Vb#4Oj`k4{alL zJS1b<{{oBQKI^~a6Mlkk=b8VKVT9l2r3oM5!8DNGACa7a2C3Ya-DH93yg}6GgZDxF z{&)a8i=Dve(kGwp#5qiY3nkO=dU#qJq!~UsyB_?MLAu9BH`bH>`p)-X){~{G`1B<+ zah#X;>>5{0CpJJddP$xeqA<7?da$j?)|4q|&&zqr7u(Ov_bT-J1~Q{tH^uC-cKMjx!=uZed>qyk{`N6G z7!CHy8PkJ( zdwVOnLE&_GaU^`S%O|A2RxdpsqGLWGS&4e70HzqN%}g8>R>-v;KMU}LL9Y0Oj5A$S zrI2}Pw_4d&M8ALj1n2#|4rf zKC@^rn6=Qkz&Klo1TnrB0w%-|T}n6XB%^Q|l0)>zotR+L(w+P+GLi7(6*{$vJfmmE zci-{!`zCDEfS;D`Mi+ke(?h#S4x7s0ZV0>$(l(mAhdh;NKtigpz?(>YcQJuC$LTpO zMzr(D9s-vI&b>3Zmt+uL?w}c;Lacx)W`9b?@jrTZ)_sa9*$SUIKqecQoRSA~eb+&9 zPjUiWZV}5Aeiu5Aw$rEoYxwjtbTN&tJxI*vnE^m)sZ9OK5pV*MUzbP0*qevp2m3pd z{&0{$=1O&+k-wRUS}sE^cTFz!Q`cu?E{UPveMWlg)4)!xtfALGBRS=({L^OSCuuJ0 zxeIcodfi`OPXzU^GgJRNuaN5b_K4bZ@?N+c&Q02zckFjAQ|B?N&oy{n?@wfO^(vV2 zl`y(J8rnWBp2IK!N5o_^!H7P7Px^r2B?1SredFR!ICCEM;Y5FKc|O9{x^tmGbjLk) z!$@*({!x4Y*SQF5AWhG8>Ls^-B+BTeZ+#=c!Re*L_|0*! z46z5J6g?i);yy1FlKbI9t~3`c^?7-}k_)2}01&0Z%;R?_;%4ju$DD&81LdJwS3Rz? zalH)jR5x-7jfLdogDYnI-a{o4;~`PwsT(W3Cr6y;#xnJIN6Mzlg~9B2H0X^q3-bLHQ4*l z=lZ9r9^-=jf_%-VYcrA31|zOJU?1=WP+m3Y$1ebdU-i=EUl2>$%OLXH`_7>jM69@C z<8s$>FIVP~UsWBhN~qwA&%OY-(<%k+v7D=7P!*SUPM+kY@n4dhA?E;&Ysa(l9Ha;Z zH(y(vv*{cH)J0se>)nWhM}7*wv9%A4AA&cBLv;C}D&FAF4%2B1ihQX=`o2fAeKHX>GWywhq`3fh+s46H<>IKOe z8&(qV)mb@qA6sHmBO><$fS*=Fd-MkYKP&U7W>Yk;HcIj}cIcvij*!%^A48$!zVt!yLd>C#*&2pii^VKM;WT$g~jz>Wg*Zmw`$ zmiskv>^}j~$JG1OJNLYL-}}zJM!oNP=U%JcN8P#CsrLwQdv9ljdi8-Hs~>K_px)oO za}S*-I&kIAeS~^{b{9SMBNnT97v+BlpH#smuOhKa;F3Vr;(t_Io^Ck7B z#XphcfgAQgZe%|v58LIQz_>Ck#Lko9gCVY|%+vhHw&E3e9K!hOq&*W{_{)%xwGXy_?+&%5zC z;5<9&_#s+buO}gV0iH2}@-^XKH2z(cZA}b>GL1=8e)LQMXLp$|9WH3$<5a#|E2R)3 zRM`q63M3I`dX?m$QlX}$oC`cxjNN2T`2U>^JqWWjjE$Wi| zc?Fb4tUh1xJ`*o5}Vc8MX&?}V~ zF=xwLQn>huc}s+mLUw6-c1~#|d#XX0XOKEPKQ_{-liqJ)i*i+V@23gBz)Ys`Q#$n* zl9ua6P!V+(Mvy}90OV=mJ)0*z6*wJ3xTB=Rc+BrmfevP zjg9fHA6Y#XZbK33`LaW!=3LZE{W@&h!(X6g!KebjC_3*riHp%ofA?!dF7+XZMqa1S zA18N#FNh4$y~oMGLWA^(SJ^im;mMa^K3HINP8t=|NeLayIs;A~)hw-|U^jr)&p`-d zs5k)m59knSI*n}9OZSD4wCV%BncE09Q5uiC@OQ+_Ra^1Z>vYnuWB{o46}0SEptBWF zh;PeN5U9y*(_%Y3gV5WxW)-wOGx*|OSp%A1@6@bE6@>)bs5OmTS#brMuugVRv z$CuT|%(%Q@~mH(GAZA_){EK{AT)-9i#A@?(glGhF`OvUi_U5G3b!fKnIS; ze1h~#4;Wy70{fGzrj6CrLkD8GzJFwD}|%I{@cY*o-!X$>yo? zu>IA+1z2)@;j$*{q`SPJ{`%B9o%ri?>ZHeL?kO_h9-Y+OQCrl4gqhkOZGX<19$g!f z-$$m!B_XY}g@q3INhiJT(@Up1fcL!2}Ubi}TQ> zSVC|DFry)Q<`foxFEjzCNfLRGrk^GwqA;n5`;x!`71Q~r$&@6MpX(n7Qfo5e8YjT- zg{#C?5wSG%AEW^dY` zVDL8Bgkh|sO(Gcz;&3tjLnLO6RystxwvhB#z4Ug6qp9F#pxB6F4mzQQ+>5uX>FO5p zph+)H>EQO*+PeKP(* z#ccXr019Ie9hIvwHRz>FwDJt;j{WqMS1enz2l~7+f0TCQ9x2y z#t-gMzc|tP#f=jym2ud|Qm$4SrzWW5x(!-S!OhBI4Z1yn=AS2{qpXTnstKN(&xX7HJS^(oO{ZU; zCrgP!M_(X=`1|+JCojNC@KY~+`vL+)-RP)o(usyDmwg1p^PkgSFOWGYQ~dqMjT?XE z_dQCqNn5Y0MJFFSBmdM?iDFtn&WBq`B_w=1Pqh*!8G1(kb-%Ik;973|^J`bE&ihkC zjKW#j;xq26Tum$qK+Rucc%fXaebs9Hy7B9D(tl|2B@of$ymaFw=$!|8>48h6+n6(6 z<33{}S%`|(@#`vA$D^930>*txBa1y-1S=jWTERSUHPafH&|R>%Ai_2*e_p#HKLxe! zWg?be+dCK1TL6Kv2K%b|5ztK!_MKM53NF2_ZI*GMy+(;O9aqNLs+8DiB=c?$pLthv zdesPfc5RD%DKr$xkq_vijt!~RSfCrKM(T}eYZcx-A0bw?NL1IefecD+Hi;U+Sz#!AL_rU0jX1ufE;eSgQlnfQlfhji0b(slSut{Rb^ z9^z8q;knwrr9|5{i@Pk(0;~!DwwAEG1^M(cwv?pXC3S5Zhf#>*S3+wz%ni* z_v$b&cVe=S2F=Tnq7VoKlm77l!7lc(KI0Lr|L_d5KH?b+55)g{6AFaO_V5o8hKNEH z^i2Uh5HqWJn;pFgLoqi6+}@#4HM=jk8sX170XLK52? zR58i>#iiI%ZCfm|!5B=gl7S^~NNIYiq^QhnH(;B**%9mbV{wJj6R~SS{7bz+)3VBK z7(n5?lE>yODx5>--z2@ea;)93H*yS6Yl}S6OP~9LB$n?+*7CD*Eeu@-<7v8Ai-6QC zl?lXwzYel(HX{~Um5h<=0Ey3e4wRV~5JUcRjzuyu6GTeo*5@rFRnI5?h7;icKx6MO zsP8p+PyWyQ9K2_>{fzh8o}S9GUJVD!A{w~oFs)2#jaOeQbf82M(|KtF7(yJS39DJu z?-zB*^f@1E!Jlf2;9)0F~kFkCv!ymaVvVAWL{_e7ivKT@)Ay$2nUTGsK z8eV#u#IFq7@ zHtyr|D-v^P?hP_U{}|62qSZG@&ixjLD4z~m9NIR6mTOBR2GwJ+cKfEb9PL5SUd|Qs z=75HKJz*kpn~=BLa(Hve`gzUs;vS#=IM)_S4#GyGumnLhbfjrsNnCzJ)z`Y{VC{;?>Nu4_jLG#7Z8bAzn8+1<0ctCfOW^z2+5jO<2dBbb!+CV zaNj$ixj{B49y;c+f-CYFcK1Wv$X-H^z00C+5taa!Rv7f3yg1(GEq+xnbGdqRiI z>PG7y%>^x|m5cuxV@>optrwfCOL^=0=7O8Mi*KR!Bi`2(jmcq;Xh2prF?U%+0|Hfm zq|IHtT8VTL>E7VCEw!b#^wZ_a-sg?hCs8dyAYh&KMsvCtVSU0A36v_9a@OaXw^U_g zb_;=G43pLHt-R@5%5bBoJd#aolLNG%eSFNDw>Ojn+OuRH{dNdIZYVSP6AdJC)! z>RFVNLHPa)&u)d|?zbP%#T@&wlO&-SA&c$S}P}xZh5o0 zugC_m!~fRBH@U4vq^*WKsB9E!4p_uSpr=dnSigdBD6=>b9+aex<|MFsLM^W#cey+j1`UaO|OhCHj_h3`)~d-duV#saL~m z==Wu1kSJIRlUCu_Js)_{A;2%zOa#D(cW=`*}EY)PjdRSweb*-newCUq9=H(Mf ziF3%?Z34j9S^2w;-$dpr#Y;c?j)|=9!iLqTdoNrs6ntQ5XZ~gy2v4v zqrnO^F)0wPcAIBKkv2`Au>sKsH5UD#%|D*LXpl69$SxX9WodDPuH=33`O?%Tg1=D> z+LCufzJz_rOYaBX67?l-ARmLq4RMi_9nf(vc$~}XO4!mL&~-buXp_#;43RBJL4w6| z*OjeR%8~bA`C9BCD{i!%>*-grmTxVai+&d>nPrRc`-oCkcKqY(CDyVY7{zd_tC zVcLW|29q_?CyIGFCw3M8hW2_Z=CX#uV+SM<>Rgmt5kzaD6Qc6!9m;ZHEI1gZpLh=H z8s+(S$AnF{fi%ms=_I4dJ`Qkgymeyp00dt$S>|GYedVhyjqhu1sx87X#dIYHjpYq} zOGb#BP+;X?8=CvWm(WmKq+6O%G7z7!VmdehXE*c}bHQz}2vKkO%wSm9H7}+3d;jIz zX2_Mq=1oOS-YVN0N-c;JF!BWDD@06xC2qj@sxP0!OW@RDi zW^MmzLT3Z7DQ&H$#$KB?)~~;q#C`3GX-kU!?vgGyVbgb)G^ycdk?XhNUBWvtZQ0R3 zA((fP>vvbw#%&k7a6R9S``||;W&7?@YDizy5{|a z>7$0SJwn*JuY@X3c|Hee5Rch-RkkUp&GW1Tr$;s`QTBLm?-uQ(@NSt8^7sHYKKo{I z4PVX$8)NOHOl#kqJz>P;4CD&Pd;s7EzS~{W2j74Hc#L2KD%$3CbS}?S#UX}AvI8Tj z_2%Qbw(W}MsG^vDOJS1??!c01KdRi!4$1D&V0HU#%x1N$_D<}qWv`O1)>5u*JA`VU z_12aiZeZcQG}vyFgdXCQ&VuKZI26>j9R2N}y*wxI2o-Z)r~sFGiF2~z94g@sKki(8yZj8YB>T{%(I$+a z$N0HsjNbqmlWm01IsP`}X2%|Z13+Zm8;IRfVaOG_+S&2$qApW8+aPSEIusMarEA+p zVK!u3-#+tg$}a4RG-Vdpc%G|uhxdr4bB`Fpdt~u%fbJ}!&2E5ivGR3vQ&_@Q-ty9B zu+u{UDT4Bou**@_v2}MhRu;WjZy(IHoh#QJ0S-68+-0p2XR0h(uS_tlRpN0qW$@Kx z_O6@yuDkkfD&F-lttjQ%c98oTRut(z19F6i;TH z#~T2tkiOo%?|%(n>1?iE2&rTz6zP2dZoRNJ7*_p!7QdR#-|J()F*}PaB*XN5?lp6CL znzk9*B|{S%Hnm}4HfqI4yC$FeSE}7MA_R}KoP8B4>3snfwu~K|mCc|Q(_>U%?|0wC zi9I$Y)QWO$fR6J)BX%f2T|V+?dDqFY0+(J}Y!bv`147ZCUp#N|yNj7<)oC*V3H z`vQMLn32=?0u~hV6;nKdqus|5$XfnJV*;cv{NdmCTkHl$W|1hH{MMqCV~GdGZ~F-T zF`{=d+=~K?ah&cObsvC<)-&d4;4gsx9MjJB@iSoRn2;6BUdV|f-^O&ygqI@-= zyH#BpEgI@oRpRsP*{MKewh3q9wESF<`p$8Tlr zXZUsPxuy!pG**?vKl2sE7PkPq@m|`U2>|;ta5$3Qas?bCt znpoeFz1-=R%4*%&&uI|mjuS+8J;*O6t?T09L>H=iKeE0Wm+pi zc-ib)&1)hAbeol|ibKkX{`iw!!N$H3V`r7m`9GCIy^6|NI*?i1&!|9YWqVM=IqAQG zq+iTTt%h@JkE)NB({F-ge0j+tkj3-nJiU0H;4YlMc>a@52qlF}+0Viy3xxE!0%%_5 zz!lYDYN!WmX4=R2R0P_9I+fjDlq>un7HRE$z$Jv_e+_Iz-#D0Oy@&}At)*P`JEgNr!S$I8n9F`%XQ_2bZRy1lFvtxW!MgM= zkod|zj`oh^N0c+yWgcGYjF4cOduC)t%JP#)2~&Di)knSwe3cr7gctFUffH$yf34Eh z7T+lY56W|bMn)PozEFR=T$EaFtv~8cndw1T!9#fV;+-T8&>V&;n&vPhado;iW+3l%Md#{s>L8dJvI{0J7pI}W=iMU4 zLPa2amaZ*>i#F?V@U{muf@^7QQMtZvc-v?^LYW55G4g4!T?Z(98cs;z>j!b&1(IG< zgAJq;C-zmTaZb7n{z$514vQ==fz~?O6JZ_GY(&F4G(5tSU8=L@csd;K78#_Fk*hkW zi#_J=Jk~hW6++qCa!@Jkglkkbl9!s5A*JTB8(6oy6$`?+`Wyw4CKB?fCg1{zV2t7Wp}4*tpaur?^y}iN%R>e3%@8Eef14U$J?;K z69ymo%c#RJ_z?vqO<$DPo|Zok4HGW6q?cT8$%a&@8R~<4UAD^w(`;*H{j$2n-Ie?Z z&Jb}7pqb;v;UX1}wQvSeqlK+4HsL*VL1V2(7giE?QU@aPJ|@CRiHEm+ zxn8Z1hcqop>?W=dS>JjiCG_lN=Bjs+e}ZP9d(icq7VAr_M?AyD2kb8>3H9Ajq1L)a zos}v(o2gWcaePL2lo^m~{sI9~M#)s5bvB@Vh)#*E(BMEe*(V0;K-Zj>UA|Y8f^yD< zV*KkI#gXeuXqPUyrBlBKZjY0Ax(K_~&V*pn$XV~b+3h1%)9hCiH%Xlc*kxc9@~^>yL+%s$ z09D0U*ENS@9K)UqBm6iZlufc~o5QRY0hnH-2zOV^;Z32$2AR~3%~bqz*jP#pIGaI0* zXIdwbSp2QlR8`=_hWfQ%FZRSdXvD##UGS-=1Ms7Olcw*ci5h+&-OKYr`HCW=Ic{lX zX+%S+89>FXu>|FRGSe}Kd%~NL;la>%IkQp=6NFkM6={(__v;;8f9(>T=ZyRaQV^PK zXXFvkPSrs#z{=^N!#X_IxSS<))1v$bonYCS{gw zD~iZ`(i3q)m)XN($XwD)T!r&&uG)DDEJI+2xRRBV1K`q5-MZFsc^$9Bi8x#vKOrP2fCN!J!1nPXe7E$ApX8$(1U=B)H>jtQzt=`~}(hKHI!eDd6fG z64mn^o~JBi@^C=vd(1N)U7u*@UIjnX73Ny6vPjLz9W|{GHmfr_O1adkZ976b%!F{QWn=1W*kO|0}=k6su+d6mtQtn=`gzP}YLH)Vr8BJDlbJTLu zHjU@|MS3)@sCi68F@rO~C*@wwjH-QG`lv&C)mG;4@2|yJdMv5DP)S=`1 z@D?>14dVgnqWhNG@>d(ucE69N4xlI42=f{?RsdwohUSwOv@9SQ! zZI+?5jJdtC`^CU_?agA@v<5-s=!mM)Wqj)H6n$?}=Omv(){FxUwPl`$S~!5d3m!EE@hsnUu5pm9 zGchlBb-Xc=Y&9SU{G5d?@|j>gni7f&TM-^ne#;jjR;W!K4?L&-ehUiqKy#UT{bhLo z+&22t+DcG(m5+_OT{*1?8y-?;B%aNPRw#R~$ZAdU=uf0UL!Ay4Sq5S_9}$OHr+DtR z<~8pVxmU<5LKUA{Hc@YGl^IzhRIw{X87lULYK4LAmxJ#W9R>93=lRDwRg!Bnp-z2g2%DRKiI^pzpg){8Aia7H&EdG?f;+kiAzF zHUx?-_MhgK3*o&yEl^=kX<}WNf-dY*vN)6FJs_{+N`HFV$al{?g$VjJOuJAG0bF*C zLIk$G$FoD?RoPOpm&h2?0$LftcePabPz2I9Can`o)DOX<2;fmZY-O!P2kCtg{6KQI zTHGYDbcAWH1M-DR4n5#xO&I8Apz5SNZ$i%(6E0Dh~QUE~7vi8`azD@Fbq#KLYt~Oti+U z^g-N`xHwt;|IfHvaX0brMtht3h*f++UKQ%e?1|Q$F95L*qW@l~QG2Lr)IldQp+@a- zBH5~VQmmyOv-MK*$=a6rr*VkI`3K7lZjS&MFBYy<5^7`GdVxLM$US^!fVIRk(0a6a zhjQ5T3%d82!fyqjRHcJ;ma1C`cimq zt|%p9F`a8K@)UcB7+DDym8nNSWysHDa@9 z5|4__Eqc4w%mmxZ0=!+nl_@WQzDQ&^*^3Dbd)doKGvxNxv-2$?mc=`)!4{oKYXxdV$^728Z{nnmke4 zHk>>t?ohtu^stZ9bY2la?mv;kHz=1xUUgiDTLB|X3yV|_8uqK>o+4fqaQeFmq2gmVV2V74v| zLKelKJPxh(!PX8FLQnbgF3|ceyp`Hw`2^Z6mhW%uHHhb!H5EOF=c;yd{Czx!OmnZPzNC3=9cQ#U-x)2xS$%q-mNn3q~ z&tre%C6>D6 zO>^=P^ljmwvMAup-OJIyue;gHLF!Ae))F)yKv129*5TJFSR(Rm_EYjSuV69cJ8(70 zyHYVs|C>D*a$$T!1M<00YiqcZE$ATYq`NU{GCBu+aV!AsPM}d8z8r|`>v=_q*w^n7 zt9@kk1Qyn43+MjJ2pQwFUfC=V$bAkfwV?7B`vIj@`!qHSrpBP$%S*qF<&*ShROcaj zHI^TV?Xqr;qH>!-a})`_@q6PK6bUA6<{!s5DpLh*))o9R=?i~l1wwYlO-dMN z8$XLx{`vOU+EcO;fKMUN=ka67o#b#gWkM_?GR0*u_~p7Omgw6eF-}?v%S1A%*U%HK zwi^1SiJx1pv%gqWQ7XW06ikIO*`yI)RqjL5v?(0F%#=0cxFIY1r;N$MGb{4=-^FDs z^0?o5d)AU6A7`WM1tIqL!O*K1Ods^+`9P}LmoCRFoi;vUD;>NCEZ|kK93rQ6u=4uM zUJQ7Slyngh5ixOk1VO1q6eq$(inU1kRKe-hUmK)U?EV1etQW+xyr@A*PPkaY(O=^D zp`%X9&9D|@+ni1NZ9N5cO0}R0`+3-D8nM@Q1hf`jrDLKX>ddi)5 zfHa~!-)FHK;aDQdkNY|uOU&$U0$?dqN{Mo}-E8|b&E>(15sxS*?PeT=suU~Y%(+Wp zwIC3)J}VYuj+cS@cVeru&&y7Fn-lk%VtLRj}F+i@jx zz=ETYEzroNBjX`#wN0h>Bi4RuNN>+6^~ovpT33F2-;?r1fNKUR*hzu7LiI}y;A1|2 zqKkJ%tgftZPYBQlyYVS;-Qah}J1W=YIyq@|6UQad)!q2DJ?nOlUG#?j)-k^SFCI<* zV;*h)pPB=53?0y&zq@x5z6r;^WkFN4w!|c+~EIfj%tRA`}f~?YTbAdxj)?ao;%&Dy|sOb$8J{3n4P~uAAUed z=o)}w(rM+*YW(X`OYC3cG1TCu)5=TqwH|z5Om1p`9_oRWIS1MvQM7p>0fScu#s+0j z2gZe*+~E?M(UZ^Co|cCO=|esF43b1Ed-7dLfWFd`M=}-K)D!b~5`KDIwCysniB1M$ zlIW$LeBWGFBcFfdS?7&h{>anr3GCj~h$9h#>evOvo0c?(5Qy)j{3CLxnD%wkMA)Ep zM1~m~$2M*fou0sVo!BlP@keU%E}N!n94pqWPRMmuxYSlq9m%g+p%!J=6Z4Qz(LI5! zDv0?B-R)K2ka*9|TT{!Q`Sql{E<`^};IEgTlm*1WV~S5U&VG19TZ(aa*0XzEI2`T$7 zuA|?Fzb**T>xq0Ke^Y(Zg9^QQJt`d>qFKH1n5(At-h3XOa3T6qZ$5!fsHR(b^A#XCPt1{ph z%PhhVuGQH$<&op3<=5^ctMF}btrNqjzECWR(V!OZSR%a zclBDeo$KGyteKdPjC8H?70?{VTRErzJCgXjdx6K>dD9$O^mm$_w0d zT#pMZN-_>;{~i6o-Ela+?rGy=P0itZ5AGwy@K;Cv@>M3jYRqf@9eEMy7k&8T`%laF zgsT0wB)_~547@QtQp{DO9dAYjtf>*GT+{gxXNd*8ALg~7qds56l{`&?TMI;9@8$8N z&G&%&zNGDW*MF~UJxoWW@DEQtDG%@HQqMcs@jJJk=Z-J9ZO#u%r2LZz?P}=^$-|k! z+BF?T8N?#NJ1+U8+!XA8{SEkw`M@$zr@(IwI87>;vbURIme4vVlREHiRvUo5aNc zAZ0)3LfVrbUt41w_kc4b51@n1e2V3?9Nna0An2y8{FcYGj{znvfDf@C>Jc2}r!>*U zW_~HU_IeY&YUXXYDs7_K7Cr-4bG-B+3qLB(Cy(_CE}_BJ-ZQQXIyj2H2OK`ZCl3ek za6^PTcaIzMv=I=*HLuY9*f2Fd17~n#n=1ZL;Hsd@o4sHSK@~G)i=rTdzi)0@M!ow%O;Um)BbU->k zy|-8XA!LNvhyYXbkj#NIPzPkj*y(HOe2Ug9Z-*aoI-iI}#?oKYfw8^v`VbAK10Hx` z(?rwY6bdY{K7;S6@ya9V2e4%s7{Kx{&r`R$umv|;3wzai<==w6rdVAo^D;eL|GrTE zjDwWNCpUJ`6@B@cr~~;<2W8w9>M@10UYwnR6!7nO30P@cQmV1drI0tR^HNkO{C$}dK*U#1}|-wR#iY41#afR1&o zlupUyr=Zxu4*Ks*-h#FdX7asLnH_ut+(%(uFu~S`SbDiu*y6@=LN6!NUTYC;`XMT3 z^5gO4!VYT7;&Zxr5h2-Gq=hxGt$k1&>zuuVzLdqMMfQaEgR}62{JEFz&f>F1{nKB& z(AZSF07oN@i0{rNX(9O?Sgo+Fqk77yN8p$_0(EFQw&iJmwYC3j*5fV^ph7>sf4o;d z7YIM!Z8qRJB2qlskI%*+htl=^F#iZnO+V6&6el{;myVKyW`JZAofTe*x4dZdQshAhjv4h6Ou`VqLOa?JK z8MH5}W-J`jkXjE34Sn*j3Z2!T?_==FQvxA*AFb@q-yQpaPurHph2$ANZa>_)=vV#u z`~oaOU^mR0^v%LTwl~|&Q&6+w=LZ;?Ma2GOlX%1Iz_aUqPC6RMZqnAUa(|k~;@LU> zSP0QL1VyNr$ts;n9~;1@_VOa;%BF?+4g3H^h(P70W@hH;lN0G11Nh{Ou|6W`nFwwb zw6Q)5d@0}<<%jm&2+vd>`r8qbV-fpc2%m6INKW->x4Ib8@n=KP#?A_d>p=c4?9>gkWgxb!Po7UZ2J(0J^~#bjJYjQlQ&9MlPjF>7 z)v6F_er|6(5iyV=`tTtB9(>iCzJ?3z(OMrpK8PQMs|p`Y$VMV5F90tcmCg6h_sTPU z|LdHsePQ8f)H4~w9pb+|?Zt&Tc$VkOVbcz|Wq8`RDYXlBHRNNC&%3-br48A9a=%>= z3hUS`Kd-GZHY7LbMd)^wzUpje`$&37eoqO>gRnm;sW+SNJ?a%DJkhx@>O)Emk57*F za?&s$bT7;mIqMGW*KbEH)Z7|;h0P%`Kiw5(Sbgz8KJG@C) znB7ot^GabH`n=bR`D(JYKUf@tyGCzFzLz!(=94kG2HHHB@8|H!FM0pE6}8jHpyUel z!G)-JI(6GcOdo+~rQXg>cmHYSL%u5CbtzSpn-|Dd@; z`4r5;7&>Pt|6oK4V*J(44a%eG7eo1bCwS#5CA`sInO=aQSE8*aytlW*>(eLV*+0N> z^sl@U(o zXKAi=h2%*z|1MxO1%b5alXvlXT@|3av?kl1ujIzpBGq~*C@0a+@8VOt_eY3q#++8= z>3+2(3Qi_6tE2wA_`Y4dP)_N%B+m>1`!Gnehx182831E#kNE%kI`iPFsymMV&Ux>V z1d^ETWqDb+0TL2W2(pB*Xu=W_Bt$}hge3&fB1?*~fTG|dwW%;2X5|3 zN2Ew$)EX;QTd8APMp2_>EOcy3ZA>CD>F4*BsWa{LW^O*ev;EGw=brn$=WXXAKA}e) z|5yvex*Mk1f}}py%%YNiF3wM)l5!SDoMy+w_4mFMDq`HOX|~oJaQ&rrw!g2pd$4)S z(JkvX(7T(PZn?1I#ci-So z^fLJBqt;AnY9qv1x^4Z|?#&11jD9!iw8M{&{^X9IPDM`+m_l9VT~|ubWwvyUsR4Hn zN#-H<^mIGbtatfk-AJ4#m)X?ZK9(QWH4$Psu4UK!HAP!YVRL60&xagj5>Qdb>*ETy zvCL-YIsxCxdJG528PnJM5{rr#x<4=6w3z>wP(UKmI(Sll!Baz(a_PxHr$R{!;biWwyar|J6#S4Enu=HlBQ$ z!E4PTXZVr+-ll=*U3HA`HgEmpN__@q6`nuiLe-D;cb_OKym)z7y*xax(-yM!LbK-U z?|qN--Dhh5)zNBc;}w0{%=NN;Q_Jmlg;(~Hk`oU;FJt<9bNiB+FzM%&o`<{-`Hp#? z_B=J%d)EElOj{7(!Sw?%{GeJVKzr%W`j)$#r8_ss)dKg0nRXnb`q2URlbLok*46>H ze3s3d*w?#?RSJ_LCB9uHOZZFoHr~g4PNaE z=d$l&uV(MbA|0}>mK-P~Zikig+pYNF@q15xJtu#i$E1{S0D)@WSSHrjA8u$)mJx2KloJ{yEoZ`qv`2|KT z5!c{-@DFe#)Xh?091eFn;R^4L@E-U)`F2IZ_d;#p9(V=b4==+e_!%s4-26J5b@GXF z+hc;-^jt5Wwd2{Nzp`T64Py!W(!%jRMr2|Cg|= ze|m%&FpF@eBSFzEi-;T|0&o<}hFZXZ>Sz=!fF&>vPJ-HJH^O4VQ=v9s8k`7A;UMYL zBP@e@E@#2d;p_-+a_V_(F9mKUVu*zDNX81N70iM2NS_O<;XGIi=R@5pop3`Jz*~r~ z3emkX*B1J}IU#b1y_LO@-T#tE^2vgEw!%~!S-*Yj?VMBo^q(;vG58ZPhM^Ho@Novd zm7u|``yM!WtfymobLof=RyIFyR@~rx+nU#o>o)cs?7Ch2K;*~;_@c8-{1y0}NS;F-!T=aHtRzx)t}|;^26c>o zj6p%3Nnt_uN7|BNSKb)YXj$x9h8g_Q{a{Ca0oedc@~i`eACs zZsFLoB7MCbds^7nZ*Q@cq2t(1TmWA^kMckQXZY~aaQcKrHa%3A9q{?G!*$gyvQ1`# z+quYYGaYVz4L7=jZdr|8Yeu?S>jL$)Y;8Y}h)vZ`;OU*=g z*J5s`E8N4tnxDBZFSZMZX@RWAU0chiJ4GEFIQtZR(?ayrs1k8f;1^Iw_=Q{@0!IAo z`nO}8#v8dj-iQva0-q5bSRK=J*csVRyq?$#aYka`(-{WOl*}{|2eSfv@&V7Mo1l!q z*pY4|9=2t%vbS4^lxMyuoi|BNA#iXx>U4++Y7za%-pN6c37hy9zbsyag z59~%G;nY1wHo&f3Ms9( zPl4S*9IIF^BZG?LVOppn=%a-ys56O=rZ*Apq2O9rM!9DA4f)r>1?1DKZqs`0AuIh* zb*hFgZ$Qgtkh+(<|5NNGJH_$QPw`^C?(}+FGI>qEmg494eOk&ZXP^hpCSJYvgwpW} z)$6W)6Pj=(-^m>~hAdCPSJH^7}>s+c+J)IwS+GDcxG{G>t!E{Fsr>ty^=|7m4S>5W?&jnElA*p?`o?a z7}}w>YC_ajU5FM|ZHVKBt9eu(qPA*8G{5RZ)K;w+HY}W9Y}STeT$WNA)CXtENQDuKSj)+T!!!b3RU0V4|5+WTLH8p@~+2 z*vRP7;YO(5MDwWTSnHl&&c~~f-dFkYGIP=Pssx4V!B!cH+A2jOm>Fmum7}Pwk`yhg zvZV1kB7DE2DXvM;^k_Q4+&#CAGY%S zgc{nD7C2_iyWZSCKWtNmQp(dBpS6KPZ`xmOX@qsI` v#oppES@Z37p4(=Jd}hdGrx;Jl+a-ZTX|DxShe}5m+G4NC@l0@X^fLW7m0qCb delta 47185 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 diff --git a/bundles/exp/inc/bluetooth.h b/bundles/exp/inc/bluetooth.h index a7d216362..44c58585a 100644 --- a/bundles/exp/inc/bluetooth.h +++ b/bundles/exp/inc/bluetooth.h @@ -521,6 +521,7 @@ typedef enum { #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2 0x29 // Vendor specific subevents +#define HCI_SUBEVENT_LE_VENDOR_CONNECTION_ABORTED 0xFD #define HCI_SUBEVENT_LE_VENDOR_CHANNEL_MAP_UPDATE 0xFE #define HCI_SUBEVENT_LE_VENDOR_PRO_CONNECTIONLESS_IQ_REPORT 0xFF diff --git a/bundles/exp/inc/btstack_event.h b/bundles/exp/inc/btstack_event.h index 20ae54c5d..e5ab49a55 100644 --- a/bundles/exp/inc/btstack_event.h +++ b/bundles/exp/inc/btstack_event.h @@ -1386,6 +1386,43 @@ typedef struct le_meta_subrate_change // Time Range: 100 ms to 32 s } le_meta_subrate_change_t; +typedef struct le_meta_event_vendor_channel_map_update +{ + // connection handle + uint16_t conn_handle; + // current channel map (the lower 37 bits are used) + // channel `n` is identified by bit `(channel_map & 0x7)` of `channel_map[n / 8]` + uint8_t channel_map[5]; +} le_meta_event_vendor_channel_map_update_t; + +// @brief BLE Link Layer security context +typedef struct le_security_ctx +{ + uint8_t opaque[40]; +} le_security_ctx_t; + +typedef struct le_meta_event_vendor_connection_aborted +{ + uint16_t conn_handle; // connection handle + uint8_t role; // role (0: master, 1: slave) + phy_type_t rx_phy; // Rx PHY + phy_type_t tx_phy; // Tx PHY + uint32_t access_addr; // Access address + uint32_t crc_init; // CRC init value + uint32_t interval; // interval in us + uint16_t sup_timeout; // supervision timeout in 10ms + uint8_t channel_map[5]; // channel map (lower 37 bits) + uint8_t ch_sel_algo; // channel selection algorithm (0: ALG #1, 1: ALG #2) + uint8_t hop_inc; // frequency hopping increment (only for ALG #1) + uint8_t last_unmapped_ch; // last unmapped channel (only for ALG #1) + uint16_t slave_latency; // slave latency + uint8_t sleep_clk_acc; // sleep clock accuracy + uint64_t next_event_time; // start time of next connection event + uint16_t next_event_counter; // event counter for next connection event + uint8_t security_enabled; // is security enabled + le_security_ctx_t security; // security context (available when enabled) +} le_meta_event_vendor_connection_aborted_t; + typedef struct le_mete_event_prd_adv_subevent_data_req { uint8_t adv_handle; // Used to identify a periodic advertising train diff --git a/bundles/exp/inc/ll_api.h b/bundles/exp/inc/ll_api.h index 6908bc35d..3db416214 100644 --- a/bundles/exp/inc/ll_api.h +++ b/bundles/exp/inc/ll_api.h @@ -100,14 +100,15 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co /** **************************************************************************************** - * @brief Create a connection directly (without advertising & initiating) + * @brief Create/Resume a connection directly (without advertising & initiating) * * @param[in] role connection role. master (0), slave (1) * @param[in] addr_types address types for advertiser and initiator - * bit [0] for slave, bit [1] for master + * bit [0] for slave (advertiser) + * bit [1] for master (initiator) * 0: public address; 1: random address - * @param[in] adv_addr address of advertiser - * @param[in] init_addr address of initiator + * @param[in] adv_addr address of advertiser (little-endian) + * @param[in] init_addr address of initiator (little-endian) * @param[in] rx_phy Rx PHY (1: 1M, 2: 2M, 3: Coded) * @param[in] tx_phy Tx PHY (1: 1M, 2: 2M, 3: Coded) * @param[in] access_addr access address @@ -115,21 +116,26 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co * @param[in] interval connection interval (unit: us) * @param[in] sup_timeout supervision timeout (unit: 10ms) * @param[in] channel_map channel map - * @param[in] ch_sel_algo channel selection algorithm (1 or 2) - * @param[in] hop_inc hop increment for CSA#1 ([5..16]) + * @param[in] ch_sel_algo channel selection algorithm (0: ALG #1, 1: ALG #2) + * @param[in] hop_inc hop increment for CSA#1 ([5..16]) (only for ALG #1) + * @param[in] last_unmapped_ch last unmapped channel index (only for ALG #1) * @param[in] min_ce_len information parameter about the minimum length of connection * event needed for this LE connection. * @param[in] max_ce_len information parameter about the maximum length of connection * event needed for this LE connection. - * @param[in] start_time start time of the 1st connectin event + * @param[in] start_time start time of the 1st connection event + * @param[in] event_counter event counter for the 1st connection event * @param[in] slave_latency slave latency - * @param[in] sleep_clk_acc sleep clock accuracy + * @param[in] sleep_clk_acc sleep clock accuracy (only for SLAVE role) * @param[in] sync_window slave's sync window for 1st connection event + * @param[in] security link layer security context + * NULL: security not used + * otherwise: security is used, which is `le_security_ctx_t *` in + * `le_meta_event_vendor_connection_aborted_t`. * @return 0 if successful else error code **************************************************************************************** */ -int ll_create_conn( - uint8_t role, +int ll_create_conn(uint8_t role, uint8_t addr_types, const uint8_t *adv_addr, const uint8_t *init_addr, @@ -142,12 +148,15 @@ int ll_create_conn( const uint8_t *channel_map, uint8_t ch_sel_algo, uint8_t hop_inc, + uint8_t last_unmapped_ch, uint16_t min_ce_len, uint16_t max_ce_len, uint64_t start_time, + uint16_t event_counter, uint16_t slave_latency, uint8_t sleep_clk_acc, - uint32_t sync_window); + uint32_t sync_window, + const void *security); /** **************************************************************************************** @@ -236,6 +245,18 @@ int ll_get_conn_events_info(const uint16_t conn_handle, uint16_t *event_count, uint8_t *channel_ids); +/** + **************************************************************************************** + * @brief Abort an existing connection + * + * After a connection is aborted, `HCI_SUBEVENT_VENDOR_CONNECTION_ABORTED` is emitted. + * + * @param[in] conn_handle handle of an existing connection + * @return 0 if aborting is ongoing else non-0 + **************************************************************************************** + */ +int ll_conn_abort(uint16_t conn_handle); + /** **************************************************************************************** * @brief Set default antenna ID diff --git a/bundles/exp/inc/platform_api.h b/bundles/exp/inc/platform_api.h index 7f945d7bb..78ed07d0b 100644 --- a/bundles/exp/inc/platform_api.h +++ b/bundles/exp/inc/platform_api.h @@ -405,7 +405,7 @@ uint8_t platform_read_persistent_reg(void); * ING918: starting from 0x20000000, 64KiB * ING916: starting from 0x20000000, 16KiB * - * @param[in] duration_cycles Duration before power on again (measured in cycles of 32k clock) + * @param[in] duration_cycles Duration before power on again (measured in cycles of real time clock) * Minimum value: 825 cycles (about 25.18ms) * When = 0: only power on when external wake up source is asserted * @param[in] p_retention_data Pointer to the start of data to be retained @@ -426,13 +426,18 @@ typedef enum PLATFORM_CFG_LOG_HCI, // flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_POWER_SAVING, // flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_TRACE_MASK, // flag is bitmap of platform_trace_item_t. default: 0 - PLATFORM_CFG_RC32K_EN, // Enable/Disable RC 32k clock. Default: Enable - PLATFORM_CFG_OSC32K_EN, // Enable/Disable 32k crystal oscillator. Default: Enable - PLATFORM_CFG_32K_CLK, // 32k clock selection. flag is platform_32k_clk_src_t. default: PLATFORM_32K_RC - // Note 1: When modifying this configuration, both RC32K and OSC32K should be ENABLED. + PLATFORM_CFG_RT_RC_EN, // Enable/Disable internal real time RC clock. Default: Enable + PLATFORM_CFG_RC32K_EN = PLATFORM_CFG_RT_RC_EN, + PLATFORM_CFG_RT_OSC_EN, // Enable/Disable external real time crystal oscillator. Default: Enable + PLATFORM_CFG_OSC32K_EN = PLATFORM_CFG_RT_OSC_EN, + PLATFORM_CFG_RT_CLK, // real time clock selection. flag is platform_rt_clk_src_t. default: PLATFORM_RT_RC + // Note 1: When modifying this configuration, both RT_RC and RT_OSC should be ENABLED. // Note 2: Unused clock can be disabled. - PLATFORM_CFG_32K_CLK_ACC, // Configure 32k clock accuracy in ppm. - PLATFORM_CFG_32K_CALI_PERIOD, // 32K clock auto-calibration period in seconds. Default: 3600 * 2 + PLATFORM_CFG_32K_CLK = PLATFORM_CFG_RT_CLK, + PLATFORM_CFG_RT_CLK_ACC, // Configure real time clock accuracy in ppm. + PLATFORM_CFG_32K_CLK_ACC = PLATFORM_CFG_RT_CLK_ACC, + PLATFORM_CFG_RT_CLK_CALI_PERIOD, // real time clock auto-calibration period in seconds. Default: 3600 * 2 + PLATFORM_CFG_32K_CALI_PERIOD = PLATFORM_CFG_RT_CLK_CALI_PERIOD, PLATFORM_CFG_PS_DBG_0, // debugging parameter PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION, // sleep time reduction (deep sleep mode) in us. (default: ~550us) PLATFORM_CFG_PS_DBG_1 = PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION, // obsoleted @@ -465,9 +470,13 @@ typedef enum typedef enum { - PLATFORM_32K_OSC, // external 32k crystal oscillator - PLATFORM_32K_RC // internal RC 32k clock -} platform_32k_clk_src_t; + PLATFORM_RT_OSC, // external crystal oscillator + PLATFORM_32K_OSC = PLATFORM_RT_OSC, + PLATFORM_RT_RC, // internal RC clock + PLATFORM_32K_RC = PLATFORM_RT_RC, +} platform_rt_clk_src_t; + +#define platform_32k_clk_src_t platform_rt_clk_src_t #define PLATFORM_CFG_ENABLE 1 #define PLATFORM_CFG_DISABLE 0 @@ -484,11 +493,13 @@ void platform_config(const platform_cfg_item_t item, const uint32_t flag); typedef enum { - PLATFORM_INFO_OSC32K_STATUS, // Read status of 32k crystal oscillator. (0: not OK; Non-0: OK) + PLATFORM_INFO_RT_OSC_STATUS, // Read status of real time crystal oscillator. (0: not OK; Non-0: OK) // "OK" means running. - // For ING916: this clock become running **after** selected as 32k + // For ING916: this clock become running **after** selected as real time clock // clock source. - PLATFORM_INFO_32K_CALI_VALUE, // Read current 32k clock calibration result. + PLATFORM_INFO_OSC32K_STATUS = PLATFORM_INFO_RT_OSC_STATUS, + PLATFORM_INFO_RT_CLK_CALI_VALUE, // Read current real time clock calibration result. + PLATFORM_INFO_32K_CALI_VALUE = PLATFORM_INFO_RT_CLK_CALI_VALUE, PLATFOFM_INFO_IRQ_NUMBER = 50, // Get the underline IRQ number of a platform IRQ // for example, platform_read_info(PLATFOFM_INFO_IRQ_NUMBER + PLATFORM_CB_IRQ_UART0) PLATFOFM_INFO_NUMBER = 255, @@ -506,36 +517,52 @@ uint32_t platform_read_info(const platform_info_item_t item); /** **************************************************************************************** - * @brief Do 32k clock calibration and get the calibration value. + * @brief Calibrate real-time RC clock and get the calibration value. * - * 32K clock auto-calibration timer is also reset, which means that next auto-calibration - * is supposed to be carried out after `PLATFORM_CFG_32K_CALI_PERIOD` seconds. + * Real time clock auto-calibration timer is also reset, which means that next auto-calibration + * is supposed to be carried out after `PLATFORM_CFG_RT_CLK_CALI_PERIOD` seconds. * * @return Calibration value. **************************************************************************************** */ -uint32_t platform_calibrate_32k(void); +uint32_t platform_calibrate_rt_clk(void); /** **************************************************************************************** - * @brief Tune internal the 32k RC clock with `value`. + * @brief Tune internal the real-time RC clock with `value`. * - * @param[in] value Value used to tune the clock (returned by `platform_32k_rc_auto_tune`) + * @param[in] value Value used to tune the clock (returned by `platform_rt_rc_auto_tune`) **************************************************************************************** */ -void platform_32k_rc_tune(uint16_t value); +void platform_rt_rc_tune(uint16_t value); /** **************************************************************************************** - * @brief Automatically tune the internal 32k RC clock, and get the tuning value. + * @brief Automatically tune the internal real time RC clock, and get the tuning value. * - * Note: This operation costs ~250ms. It is recommended to call this once and store the - * returned value into NVM for later usage. + * This is equivalent to `platform_rt_rc_auto_tune2(65536000000 / frequency)`. * * @return Value used to tune the clock **************************************************************************************** */ -uint16_t platform_32k_rc_auto_tune(void); +uint16_t platform_rt_rc_auto_tune(void); + +#define platform_calibrate_32k platform_calibrate_rt_clk +#define platform_32k_rc_tune platform_rt_rc_tune +#define platform_32k_rc_auto_tune platform_rt_rc_auto_tune + +/** + **************************************************************************************** + * @brief Automatically tune the internal real-time RC clock to a target frequency, and + * get the tuning value. + * + * Note: This operation costs ~250ms. + * + * @param[in] target_frequency target frequency of tuning (Hz) + * @return Value used to tune the clock + **************************************************************************************** + */ +uint16_t platform_rt_rc_auto_tune2(uint32_t target_frequency); /** **************************************************************************************** diff --git a/bundles/exp/inc/sm.h b/bundles/exp/inc/sm.h index 6dfc62bab..47c743c56 100644 --- a/bundles/exp/inc/sm.h +++ b/bundles/exp/inc/sm.h @@ -112,9 +112,7 @@ void sm_register_oob_data_callback( int (*get_oob_data_callback)(uint8_t addres_ * @brief Registers secure pairing OOB Data Callback. The callback should set the peer_confirm & peer_random and return 1 if OOB data is availble * @param get_oob_data_callback */ -// void sm_register_sc_oob_data_callback( int (*get_sc_oob_data_callback)(uint8_t addres_type, bd_addr_t addr, uint8_t *peer_confirm, uint8_t *peer_random)); -// WARNING: ^^^ this API is not available in this release - +void sm_register_sc_oob_data_callback( int (*get_sc_oob_data_callback)(uint8_t addres_type, bd_addr_t addr, uint8_t *peer_confirm, uint8_t *peer_random)); /** * @brief Limit the STK generation methods. Bonding is stopped if the resulting one isn't in the list @@ -231,17 +229,13 @@ int sm_le_device_key(hci_con_handle_t con_handle); * @brief To confirm numeric comparison when SM_EVENT_NUMERIC_COMPARISON_REQUEST is called. * @param handle */ -// void sm_numeric_comparison_confirm(hci_con_handle_t con_handle); -// WARNING: ^^^ this API is not available in this release - +void sm_numeric_comparison_confirm(hci_con_handle_t con_handle); /** * @brief When secure pairing is used and OOB is selected, use this function to prepare OOB data and share to peer. * @param handle */ -// int sm_sc_generate_oob_data(void (*callback)(uint8_t *peer_confirm, uint8_t *peer_random)); -// WARNING: ^^^ this API is not available in this release - +int sm_sc_generate_oob_data(void (*callback)(uint8_t *peer_confirm, uint8_t *peer_random)); /** * diff --git a/bundles/extension/ING9168xx/apis.json b/bundles/extension/ING9168xx/apis.json index 1252aaa98..e16376af0 100644 --- a/bundles/extension/ING9168xx/apis.json +++ b/bundles/extension/ING9168xx/apis.json @@ -17,363 +17,363 @@ "att_set_db": "0x02004f6d", "att_set_read_callback": "0x02004f81", "att_set_write_callback": "0x02004f8d", - "bd_addr_cmp": "0x02005161", - "bd_addr_copy": "0x02005167", - "bd_addr_to_str": "0x02005171", - "big_endian_read_16": "0x020051a9", - "big_endian_read_32": "0x020051b1", - "big_endian_store_16": "0x020051c5", - "big_endian_store_32": "0x020051d1", - "btstack_config": "0x02005331", - "btstack_memory_pool_create": "0x0200546f", - "btstack_memory_pool_free": "0x02005499", - "btstack_memory_pool_get": "0x020054f9", - "btstack_push_user_msg": "0x02005561", - "btstack_push_user_runnable": "0x0200556d", - "btstack_reset": "0x02005579", - "char_for_nibble": "0x020058a1", - "eTaskConfirmSleepModeStatus": "0x02005c59", - "gap_add_dev_to_periodic_list": "0x020062c9", - "gap_add_whitelist": "0x020062d9", - "gap_aes_encrypt": "0x020062e5", - "gap_clear_white_lists": "0x0200631d", - "gap_clr_adv_set": "0x02006329", - "gap_clr_periodic_adv_list": "0x02006335", - "gap_create_connection_cancel": "0x02006341", - "gap_default_periodic_adv_sync_transfer_param": "0x0200634d", - "gap_disconnect": "0x02006365", - "gap_disconnect_all": "0x02006391", - "gap_ext_create_connection": "0x020063d1", - "gap_get_connection_parameter_range": "0x020064a9", - "gap_le_read_channel_map": "0x020064e5", - "gap_periodic_adv_create_sync": "0x02006551", - "gap_periodic_adv_create_sync_cancel": "0x02006575", - "gap_periodic_adv_set_info_transfer": "0x02006581", - "gap_periodic_adv_sync_transfer": "0x02006591", - "gap_periodic_adv_sync_transfer_param": "0x020065a1", - "gap_periodic_adv_term_sync": "0x020065bd", - "gap_read_antenna_info": "0x02006645", - "gap_read_periodic_adv_list_size": "0x02006651", - "gap_read_phy": "0x0200665d", - "gap_read_remote_used_features": "0x02006669", - "gap_read_remote_version": "0x02006675", - "gap_read_rssi": "0x02006681", - "gap_remove_whitelist": "0x0200668d", - "gap_rmv_adv_set": "0x02006709", - "gap_rmv_dev_from_periodic_list": "0x02006715", - "gap_rx_test_v2": "0x02006725", - "gap_rx_test_v3": "0x02006735", - "gap_set_adv_set_random_addr": "0x02006781", - "gap_set_callback_for_next_hci": "0x020067bd", - "gap_set_connection_cte_request_enable": "0x020067dd", - "gap_set_connection_cte_response_enable": "0x020067f9", - "gap_set_connection_cte_rx_param": "0x02006809", - "gap_set_connection_cte_tx_param": "0x0200685d", - "gap_set_connection_parameter_range": "0x020068a9", - "gap_set_connectionless_cte_tx_enable": "0x020068c1", - "gap_set_connectionless_cte_tx_param": "0x020068d1", - "gap_set_connectionless_iq_sampling_enable": "0x0200692d", - "gap_set_data_length": "0x02006989", - "gap_set_def_phy": "0x020069a1", - "gap_set_ext_adv_data": "0x020069b1", - "gap_set_ext_adv_enable": "0x020069c9", - "gap_set_ext_adv_para": "0x02006a39", - "gap_set_ext_scan_enable": "0x02006b09", - "gap_set_ext_scan_para": "0x02006b21", - "gap_set_ext_scan_response_data": "0x02006bc1", - "gap_set_host_channel_classification": "0x02006bd9", - "gap_set_periodic_adv_data": "0x02006be9", - "gap_set_periodic_adv_enable": "0x02006c59", - "gap_set_periodic_adv_para": "0x02006c69", - "gap_set_periodic_adv_rx_enable": "0x02006c81", - "gap_set_phy": "0x02006c91", - "gap_set_random_device_address": "0x02006cad", - "gap_start_ccm": "0x02006cdd", - "gap_test_end": "0x02006d25", - "gap_tx_test_v2": "0x02006d31", - "gap_tx_test_v4": "0x02006d49", - "gap_update_connection_parameters": "0x02006d6d", - "gap_vendor_tx_continuous_wave": "0x02006db1", - "gatt_client_cancel_write": "0x020072d9", - "gatt_client_discover_characteristic_descriptors": "0x020072ff", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0200733f", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200738f", - "gatt_client_discover_characteristics_for_service": "0x020073df", - "gatt_client_discover_primary_services": "0x02007415", - "gatt_client_discover_primary_services_by_uuid128": "0x02007447", - "gatt_client_discover_primary_services_by_uuid16": "0x0200748b", - "gatt_client_execute_write": "0x020074c9", - "gatt_client_find_included_services_for_service": "0x020074ef", - "gatt_client_get_mtu": "0x0200751d", - "gatt_client_is_ready": "0x020075e1", - "gatt_client_listen_for_characteristic_value_updates": "0x020075f7", - "gatt_client_prepare_write": "0x02007619", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007655", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200767f", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007685", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x020076b3", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020076b9", - "gatt_client_read_multiple_characteristic_values": "0x020076e7", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007717", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007745", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x02007791", - "gatt_client_register_handler": "0x020077dd", - "gatt_client_reliable_write_long_value_of_characteristic": "0x020077e9", - "gatt_client_signed_write_without_response": "0x02007c1d", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007ce1", - "gatt_client_write_client_characteristic_configuration": "0x02007d1b", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007d6d", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007d7d", - "gatt_client_write_long_value_of_characteristic": "0x02007db9", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007dc9", - "gatt_client_write_value_of_characteristic": "0x02007e05", - "gatt_client_write_value_of_characteristic_without_response": "0x02007e3b", - "hci_add_event_handler": "0x0200945d", - "hci_power_control": "0x02009c05", - "hci_register_acl_packet_handler": "0x02009db9", - "kv_commit": "0x0200a4ed", - "kv_get": "0x0200a549", - "kv_init": "0x0200a555", - "kv_init_backend": "0x0200a5d5", - "kv_put": "0x0200a5e9", - "kv_remove": "0x0200a5f5", - "kv_remove_all": "0x0200a629", - "kv_value_modified": "0x0200a659", - "kv_value_modified_of_key": "0x0200a675", - "kv_visit": "0x0200a681", - "l2cap_add_event_handler": "0x0200a711", - "l2cap_can_send_packet_now": "0x0200a721", - "l2cap_create_le_credit_based_connection_request": "0x0200a8e5", - "l2cap_credit_based_send": "0x0200aa2d", - "l2cap_credit_based_send_continue": "0x0200aa59", - "l2cap_disconnect": "0x0200aad5", - "l2cap_get_le_credit_based_connection_credits": "0x0200acc1", - "l2cap_get_peer_mtu_for_local_cid": "0x0200acdd", - "l2cap_init": "0x0200b11d", - "l2cap_le_send_flow_control_credit": "0x0200b213", - "l2cap_max_le_mtu": "0x0200b521", - "l2cap_register_packet_handler": "0x0200b649", - "l2cap_register_service": "0x0200b655", - "l2cap_request_can_send_now_event": "0x0200b765", - "l2cap_request_connection_parameter_update": "0x0200b77f", - "l2cap_send_echo_request": "0x0200bc61", - "l2cap_unregister_service": "0x0200bd41", - "le_device_db_add": "0x0200bd99", - "le_device_db_find": "0x0200be71", - "le_device_db_from_key": "0x0200be9d", - "le_device_db_iter_cur": "0x0200bea5", - "le_device_db_iter_cur_key": "0x0200bea9", - "le_device_db_iter_init": "0x0200bead", - "le_device_db_iter_next": "0x0200beb5", - "le_device_db_remove_key": "0x0200bedb", - "ll_ackable_packet_alloc": "0x0200bf07", - "ll_ackable_packet_get_status": "0x0200c043", - "ll_ackable_packet_run": "0x0200c0b1", - "ll_ackable_packet_set_tx_data": "0x0200c169", - "ll_adjust_conn_peer_tx_power": "0x0200c185", - "ll_aes_encrypt": "0x0200c1b1", - "ll_allow_nonstandard_adv_type": "0x0200c225", - "ll_attach_cte_to_adv_set": "0x0200c23d", - "ll_channel_monitor_alloc": "0x0200c3d5", - "ll_channel_monitor_check_each_pdu": "0x0200c457", - "ll_channel_monitor_run": "0x0200c4b9", - "ll_config": "0x0200c589", - "ll_create_conn": "0x0200c5a5", - "ll_free": "0x0200c7df", - "ll_get_conn_events_info": "0x0200c7e9", - "ll_get_conn_info": "0x0200c8d1", - "ll_get_heap_free_size": "0x0200c921", - "ll_hint_on_ce_len": "0x0200c935", - "ll_legacy_adv_set_interval": "0x0200c96d", - "ll_lock_frequency": "0x0200c97d", - "ll_malloc": "0x0200c9e1", - "ll_override_whitening_init_value": "0x0200c9e9", - "ll_raw_packet_alloc": "0x0200cb11", - "ll_raw_packet_free": "0x0200cbe5", - "ll_raw_packet_get_bare_rx_data": "0x0200cc1d", - "ll_raw_packet_get_iq_samples": "0x0200ccdd", - "ll_raw_packet_get_rx_data": "0x0200cd77", - "ll_raw_packet_recv": "0x0200ce29", - "ll_raw_packet_send": "0x0200cefd", - "ll_raw_packet_set_bare_data": "0x0200d019", - "ll_raw_packet_set_bare_mode": "0x0200d057", - "ll_raw_packet_set_fake_cte_info": "0x0200d15b", - "ll_raw_packet_set_param": "0x0200d17d", - "ll_raw_packet_set_rx_cte": "0x0200d1df", - "ll_raw_packet_set_tx_cte": "0x0200d275", - "ll_raw_packet_set_tx_data": "0x0200d2b5", - "ll_register_hci_acl_previewer": "0x0200d31d", - "ll_scan_set_fixed_channel": "0x0200d381", - "ll_scanner_enable_iq_sampling": "0x0200d38d", - "ll_scanner_enable_iq_sampling_on_legacy": "0x0200d435", - "ll_set_adv_access_address": "0x0200d725", - "ll_set_adv_coded_scheme": "0x0200d731", - "ll_set_conn_acl_report_latency": "0x0200d769", - "ll_set_conn_coded_scheme": "0x0200d799", - "ll_set_conn_interval_unit": "0x0200d7c5", - "ll_set_conn_latency": "0x0200d7d1", - "ll_set_conn_tx_power": "0x0200d801", - "ll_set_cte_bit": "0x0200d831", - "ll_set_def_antenna": "0x0200d859", - "ll_set_initiating_coded_scheme": "0x0200d879", - "ll_set_max_conn_number": "0x0200d885", - "ll_set_tx_power_range": "0x0200d919", - "ll_unlock_frequency": "0x0200d941", - "nibble_for_char": "0x0202085d", - "platform_32k_rc_auto_tune": "0x02020909", - "platform_32k_rc_tune": "0x02020955", - "platform_calibrate_32k": "0x02020971", + "bd_addr_cmp": "0x0200515d", + "bd_addr_copy": "0x02005163", + "bd_addr_to_str": "0x0200516d", + "big_endian_read_16": "0x020051a5", + "big_endian_read_32": "0x020051ad", + "big_endian_store_16": "0x020051c1", + "big_endian_store_32": "0x020051cd", + "btstack_config": "0x0200532d", + "btstack_memory_pool_create": "0x0200546b", + "btstack_memory_pool_free": "0x02005495", + "btstack_memory_pool_get": "0x020054f5", + "btstack_push_user_msg": "0x0200555d", + "btstack_push_user_runnable": "0x02005569", + "btstack_reset": "0x02005575", + "char_for_nibble": "0x0200589d", + "eTaskConfirmSleepModeStatus": "0x02005c55", + "gap_add_dev_to_periodic_list": "0x020062c5", + "gap_add_whitelist": "0x020062d5", + "gap_aes_encrypt": "0x020062e1", + "gap_clear_white_lists": "0x02006319", + "gap_clr_adv_set": "0x02006325", + "gap_clr_periodic_adv_list": "0x02006331", + "gap_create_connection_cancel": "0x0200633d", + "gap_default_periodic_adv_sync_transfer_param": "0x02006349", + "gap_disconnect": "0x02006361", + "gap_disconnect_all": "0x0200638d", + "gap_ext_create_connection": "0x020063cd", + "gap_get_connection_parameter_range": "0x020064a5", + "gap_le_read_channel_map": "0x020064e1", + "gap_periodic_adv_create_sync": "0x0200654d", + "gap_periodic_adv_create_sync_cancel": "0x02006571", + "gap_periodic_adv_set_info_transfer": "0x0200657d", + "gap_periodic_adv_sync_transfer": "0x0200658d", + "gap_periodic_adv_sync_transfer_param": "0x0200659d", + "gap_periodic_adv_term_sync": "0x020065b9", + "gap_read_antenna_info": "0x02006641", + "gap_read_periodic_adv_list_size": "0x0200664d", + "gap_read_phy": "0x02006659", + "gap_read_remote_used_features": "0x02006665", + "gap_read_remote_version": "0x02006671", + "gap_read_rssi": "0x0200667d", + "gap_remove_whitelist": "0x02006689", + "gap_rmv_adv_set": "0x02006705", + "gap_rmv_dev_from_periodic_list": "0x02006711", + "gap_rx_test_v2": "0x02006721", + "gap_rx_test_v3": "0x02006731", + "gap_set_adv_set_random_addr": "0x0200677d", + "gap_set_callback_for_next_hci": "0x020067b9", + "gap_set_connection_cte_request_enable": "0x020067d9", + "gap_set_connection_cte_response_enable": "0x020067f5", + "gap_set_connection_cte_rx_param": "0x02006805", + "gap_set_connection_cte_tx_param": "0x02006859", + "gap_set_connection_parameter_range": "0x020068a5", + "gap_set_connectionless_cte_tx_enable": "0x020068bd", + "gap_set_connectionless_cte_tx_param": "0x020068cd", + "gap_set_connectionless_iq_sampling_enable": "0x02006929", + "gap_set_data_length": "0x02006985", + "gap_set_def_phy": "0x0200699d", + "gap_set_ext_adv_data": "0x020069ad", + "gap_set_ext_adv_enable": "0x020069c5", + "gap_set_ext_adv_para": "0x02006a35", + "gap_set_ext_scan_enable": "0x02006b05", + "gap_set_ext_scan_para": "0x02006b1d", + "gap_set_ext_scan_response_data": "0x02006bbd", + "gap_set_host_channel_classification": "0x02006bd5", + "gap_set_periodic_adv_data": "0x02006be5", + "gap_set_periodic_adv_enable": "0x02006c55", + "gap_set_periodic_adv_para": "0x02006c65", + "gap_set_periodic_adv_rx_enable": "0x02006c7d", + "gap_set_phy": "0x02006c8d", + "gap_set_random_device_address": "0x02006ca9", + "gap_start_ccm": "0x02006cd9", + "gap_test_end": "0x02006d21", + "gap_tx_test_v2": "0x02006d2d", + "gap_tx_test_v4": "0x02006d45", + "gap_update_connection_parameters": "0x02006d69", + "gap_vendor_tx_continuous_wave": "0x02006dad", + "gatt_client_cancel_write": "0x020072d5", + "gatt_client_discover_characteristic_descriptors": "0x020072fb", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0200733b", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x0200738b", + "gatt_client_discover_characteristics_for_service": "0x020073db", + "gatt_client_discover_primary_services": "0x02007411", + "gatt_client_discover_primary_services_by_uuid128": "0x02007443", + "gatt_client_discover_primary_services_by_uuid16": "0x02007487", + "gatt_client_execute_write": "0x020074c5", + "gatt_client_find_included_services_for_service": "0x020074eb", + "gatt_client_get_mtu": "0x02007519", + "gatt_client_is_ready": "0x020075dd", + "gatt_client_listen_for_characteristic_value_updates": "0x020075f3", + "gatt_client_prepare_write": "0x02007615", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x02007651", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x0200767b", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007681", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x020076af", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x020076b5", + "gatt_client_read_multiple_characteristic_values": "0x020076e3", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x02007713", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x02007741", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x0200778d", + "gatt_client_register_handler": "0x020077d9", + "gatt_client_reliable_write_long_value_of_characteristic": "0x020077e5", + "gatt_client_signed_write_without_response": "0x02007c19", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x02007cdd", + "gatt_client_write_client_characteristic_configuration": "0x02007d17", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x02007d69", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x02007d79", + "gatt_client_write_long_value_of_characteristic": "0x02007db5", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x02007dc5", + "gatt_client_write_value_of_characteristic": "0x02007e01", + "gatt_client_write_value_of_characteristic_without_response": "0x02007e37", + "hci_add_event_handler": "0x02009459", + "hci_power_control": "0x02009c01", + "hci_register_acl_packet_handler": "0x02009db5", + "kv_commit": "0x0200a4e9", + "kv_get": "0x0200a545", + "kv_init": "0x0200a551", + "kv_init_backend": "0x0200a5d1", + "kv_put": "0x0200a5e5", + "kv_remove": "0x0200a5f1", + "kv_remove_all": "0x0200a625", + "kv_value_modified": "0x0200a655", + "kv_value_modified_of_key": "0x0200a671", + "kv_visit": "0x0200a67d", + "l2cap_add_event_handler": "0x0200a70d", + "l2cap_can_send_packet_now": "0x0200a71d", + "l2cap_create_le_credit_based_connection_request": "0x0200a8e1", + "l2cap_credit_based_send": "0x0200aa29", + "l2cap_credit_based_send_continue": "0x0200aa55", + "l2cap_disconnect": "0x0200aad1", + "l2cap_get_le_credit_based_connection_credits": "0x0200acbd", + "l2cap_get_peer_mtu_for_local_cid": "0x0200acd9", + "l2cap_init": "0x0200b119", + "l2cap_le_send_flow_control_credit": "0x0200b20f", + "l2cap_max_le_mtu": "0x0200b51d", + "l2cap_register_packet_handler": "0x0200b645", + "l2cap_register_service": "0x0200b651", + "l2cap_request_can_send_now_event": "0x0200b761", + "l2cap_request_connection_parameter_update": "0x0200b77b", + "l2cap_send_echo_request": "0x0200bc5d", + "l2cap_unregister_service": "0x0200bd3d", + "le_device_db_add": "0x0200bd95", + "le_device_db_find": "0x0200be6d", + "le_device_db_from_key": "0x0200be99", + "le_device_db_iter_cur": "0x0200bea1", + "le_device_db_iter_cur_key": "0x0200bea5", + "le_device_db_iter_init": "0x0200bea9", + "le_device_db_iter_next": "0x0200beb1", + "le_device_db_remove_key": "0x0200bed7", + "ll_ackable_packet_alloc": "0x0200bf03", + "ll_ackable_packet_get_status": "0x0200c03f", + "ll_ackable_packet_run": "0x0200c0ad", + "ll_ackable_packet_set_tx_data": "0x0200c165", + "ll_adjust_conn_peer_tx_power": "0x0200c181", + "ll_aes_encrypt": "0x0200c1ad", + "ll_allow_nonstandard_adv_type": "0x0200c221", + "ll_attach_cte_to_adv_set": "0x0200c239", + "ll_channel_monitor_alloc": "0x0200c3d1", + "ll_channel_monitor_check_each_pdu": "0x0200c453", + "ll_channel_monitor_run": "0x0200c4b5", + "ll_config": "0x0200c585", + "ll_free": "0x0200c5bb", + "ll_get_conn_events_info": "0x0200c5c5", + "ll_get_conn_info": "0x0200c6ad", + "ll_get_heap_free_size": "0x0200c6fd", + "ll_hint_on_ce_len": "0x0200c711", + "ll_legacy_adv_set_interval": "0x0200c749", + "ll_lock_frequency": "0x0200c759", + "ll_malloc": "0x0200c7bd", + "ll_override_whitening_init_value": "0x0200c7c5", + "ll_raw_packet_alloc": "0x0200c8ed", + "ll_raw_packet_free": "0x0200c9c1", + "ll_raw_packet_get_bare_rx_data": "0x0200c9f9", + "ll_raw_packet_get_iq_samples": "0x0200cab9", + "ll_raw_packet_get_rx_data": "0x0200cb53", + "ll_raw_packet_recv": "0x0200cc05", + "ll_raw_packet_send": "0x0200ccd9", + "ll_raw_packet_set_bare_data": "0x0200cdf5", + "ll_raw_packet_set_bare_mode": "0x0200ce33", + "ll_raw_packet_set_fake_cte_info": "0x0200cf37", + "ll_raw_packet_set_param": "0x0200cf59", + "ll_raw_packet_set_rx_cte": "0x0200cfbb", + "ll_raw_packet_set_tx_cte": "0x0200d051", + "ll_raw_packet_set_tx_data": "0x0200d091", + "ll_register_hci_acl_previewer": "0x0200d0f9", + "ll_scan_set_fixed_channel": "0x0200d15d", + "ll_scanner_enable_iq_sampling": "0x0200d169", + "ll_scanner_enable_iq_sampling_on_legacy": "0x0200d211", + "ll_set_adv_access_address": "0x0200d501", + "ll_set_adv_coded_scheme": "0x0200d50d", + "ll_set_conn_acl_report_latency": "0x0200d545", + "ll_set_conn_coded_scheme": "0x0200d575", + "ll_set_conn_interval_unit": "0x0200d5a1", + "ll_set_conn_latency": "0x0200d5ad", + "ll_set_conn_tx_power": "0x0200d5dd", + "ll_set_cte_bit": "0x0200d60d", + "ll_set_def_antenna": "0x0200d635", + "ll_set_initiating_coded_scheme": "0x0200d655", + "ll_set_max_conn_number": "0x0200d661", + "ll_set_tx_power_range": "0x0200d6f5", + "ll_unlock_frequency": "0x0200d71d", + "nibble_for_char": "0x0202060d", + "platform_calibrate_rt_clk": "0x020206b7", "platform_call_on_stack": "0x020021fb", - "platform_config": "0x02020975", - "platform_delete_timer": "0x02020a9d", - "platform_enable_irq": "0x02020aa5", - "platform_get_current_task": "0x02020ad9", - "platform_get_gen_os_driver": "0x02020afd", - "platform_get_heap_status": "0x02020b05", - "platform_get_link_layer_interf": "0x02020b1d", - "platform_get_task_handle": "0x02020b25", - "platform_get_timer_counter": "0x02020b45", - "platform_get_us_time": "0x02020b49", - "platform_get_version": "0x02020b4d", - "platform_hrng": "0x02020b55", - "platform_install_isr_stack": "0x02020b5d", - "platform_install_task_stack": "0x02020b69", - "platform_patch_rf_init_data": "0x02020ba1", - "platform_printf": "0x02020bad", - "platform_raise_assertion": "0x02020bc1", - "platform_rand": "0x02020bd5", - "platform_read_info": "0x02020bd9", - "platform_read_persistent_reg": "0x02020c09", - "platform_reset": "0x02020c15", - "platform_set_abs_timer": "0x02020c29", - "platform_set_evt_callback": "0x02020c2d", - "platform_set_evt_callback_table": "0x02020c41", - "platform_set_irq_callback": "0x02020c4d", - "platform_set_irq_callback_table": "0x02020c69", - "platform_set_rf_clk_source": "0x02020c75", - "platform_set_rf_init_data": "0x02020c81", - "platform_set_rf_power_mapping": "0x02020c8d", - "platform_set_timer": "0x02020c99", - "platform_shutdown": "0x02020c9d", - "platform_switch_app": "0x02020ca1", - "platform_trace_raw": "0x02020cb9", - "platform_write_persistent_reg": "0x02020cd1", - "printf_hexdump": "0x02020e89", - "pvPortMalloc": "0x02021961", - "pvTaskIncrementMutexHeldCount": "0x02021a49", - "pvTimerGetTimerID": "0x02021a61", - "pxPortInitialiseStack": "0x02021a8d", - "reverse_128": "0x02021c75", - "reverse_24": "0x02021c7b", - "reverse_256": "0x02021c81", - "reverse_48": "0x02021c87", - "reverse_56": "0x02021c8d", - "reverse_64": "0x02021c93", - "reverse_bd_addr": "0x02021c99", - "reverse_bytes": "0x02021c9f", - "sm_add_event_handler": "0x0202202d", - "sm_address_resolution_lookup": "0x02022185", - "sm_authenticated": "0x02022501", - "sm_authorization_decline": "0x0202250f", - "sm_authorization_grant": "0x0202252f", - "sm_authorization_state": "0x0202254f", - "sm_bonding_decline": "0x02022569", - "sm_config": "0x020229bd", - "sm_config_conn": "0x020229d5", - "sm_encryption_key_size": "0x02022b8b", - "sm_just_works_confirm": "0x02023111", - "sm_le_device_key": "0x02023449", - "sm_passkey_input": "0x020234df", - "sm_private_random_address_generation_get": "0x02023899", - "sm_private_random_address_generation_get_mode": "0x020238a1", - "sm_private_random_address_generation_set_mode": "0x020238ad", - "sm_private_random_address_generation_set_update_period": "0x020238d5", - "sm_register_external_ltk_callback": "0x02023a11", - "sm_register_oob_data_callback": "0x02023a1d", - "sm_request_pairing": "0x02023a29", - "sm_send_security_request": "0x020244ff", - "sm_set_accepted_stk_generation_methods": "0x02024525", - "sm_set_authentication_requirements": "0x02024531", - "sm_set_encryption_key_size_range": "0x0202453d", - "sscanf_bd_addr": "0x02024915", - "sysSetPublicDeviceAddr": "0x02024e41", - "uuid128_to_str": "0x0202569d", - "uuid_add_bluetooth_prefix": "0x020256f5", - "uuid_has_bluetooth_prefix": "0x02025715", - "uxListRemove": "0x02025731", - "uxQueueMessagesWaiting": "0x02025759", - "uxQueueMessagesWaitingFromISR": "0x02025781", - "uxQueueSpacesAvailable": "0x0202579d", - "uxTaskGetStackHighWaterMark": "0x020257c9", - "uxTaskPriorityGet": "0x020257e9", - "uxTaskPriorityGetFromISR": "0x02025805", - "vListInitialise": "0x020258c3", - "vListInitialiseItem": "0x020258d9", - "vListInsert": "0x020258df", - "vListInsertEnd": "0x0202590f", - "vPortEndScheduler": "0x02025929", - "vPortEnterCritical": "0x02025955", - "vPortExitCritical": "0x02025999", - "vPortFree": "0x020259cd", - "vPortSuppressTicksAndSleep": "0x02025a71", - "vPortValidateInterruptPriority": "0x02025b99", - "vQueueDelete": "0x02025bf5", - "vQueueWaitForMessageRestricted": "0x02025c21", - "vTaskDelay": "0x02025c65", - "vTaskInternalSetTimeOutState": "0x02025cb1", - "vTaskMissedYield": "0x02025cc1", - "vTaskPlaceOnEventList": "0x02025ccd", - "vTaskPlaceOnEventListRestricted": "0x02025d05", - "vTaskPriorityDisinheritAfterTimeout": "0x02025d45", - "vTaskPrioritySet": "0x02025df1", - "vTaskResume": "0x02025eb9", - "vTaskStartScheduler": "0x02025f3d", - "vTaskStepTick": "0x02025fcd", - "vTaskSuspend": "0x02025ffd", - "vTaskSuspendAll": "0x020260b9", - "vTaskSwitchContext": "0x020260c9", - "xPortStartScheduler": "0x02026171", - "xQueueAddToSet": "0x02026275", - "xQueueCreateCountingSemaphore": "0x02026299", - "xQueueCreateCountingSemaphoreStatic": "0x020262d5", - "xQueueCreateMutex": "0x02026319", - "xQueueCreateMutexStatic": "0x0202632f", - "xQueueCreateSet": "0x02026349", - "xQueueGenericCreate": "0x02026351", - "xQueueGenericCreateStatic": "0x0202639d", - "xQueueGenericReset": "0x02026405", - "xQueueGenericSend": "0x02026491", - "xQueueGenericSendFromISR": "0x020265fd", - "xQueueGiveFromISR": "0x020266bd", - "xQueueGiveMutexRecursive": "0x02026761", - "xQueueIsQueueEmptyFromISR": "0x020267a1", - "xQueueIsQueueFullFromISR": "0x020267c5", - "xQueuePeek": "0x020267ed", - "xQueuePeekFromISR": "0x02026915", - "xQueueReceive": "0x02026981", - "xQueueReceiveFromISR": "0x02026aad", - "xQueueRemoveFromSet": "0x02026b41", - "xQueueSelectFromSet": "0x02026b63", - "xQueueSelectFromSetFromISR": "0x02026b75", - "xQueueSemaphoreTake": "0x02026b89", - "xQueueTakeMutexRecursive": "0x02026cf5", - "xTaskCheckForTimeOut": "0x02026d39", - "xTaskCreate": "0x02026da9", - "xTaskCreateStatic": "0x02026e05", - "xTaskGetCurrentTaskHandle": "0x02026e75", - "xTaskGetSchedulerState": "0x02026e81", - "xTaskGetTickCount": "0x02026e9d", - "xTaskGetTickCountFromISR": "0x02026ea9", - "xTaskIncrementTick": "0x02026eb9", - "xTaskPriorityDisinherit": "0x02026f85", - "xTaskPriorityInherit": "0x02027019", - "xTaskRemoveFromEventList": "0x020270ad", - "xTaskResumeAll": "0x0202712d", - "xTaskResumeFromISR": "0x020271f5", - "xTimerCreate": "0x02027281", - "xTimerCreateStatic": "0x020272b5", - "xTimerCreateTimerTask": "0x020272ed", - "xTimerGenericCommand": "0x02027359", - "xTimerGetExpiryTime": "0x020273c9", - "xTimerGetTimerDaemonTaskHandle": "0x020273e9" + "platform_config": "0x020206bd", + "platform_delete_timer": "0x020207e5", + "platform_enable_irq": "0x020207ed", + "platform_get_current_task": "0x02020821", + "platform_get_gen_os_driver": "0x02020845", + "platform_get_heap_status": "0x0202084d", + "platform_get_link_layer_interf": "0x02020865", + "platform_get_task_handle": "0x0202086d", + "platform_get_timer_counter": "0x0202088d", + "platform_get_us_time": "0x02020891", + "platform_get_version": "0x02020895", + "platform_hrng": "0x0202089d", + "platform_install_isr_stack": "0x020208a5", + "platform_install_task_stack": "0x020208b1", + "platform_patch_rf_init_data": "0x020208e9", + "platform_printf": "0x020208f5", + "platform_raise_assertion": "0x02020909", + "platform_rand": "0x0202091d", + "platform_read_info": "0x02020921", + "platform_read_persistent_reg": "0x02020951", + "platform_reset": "0x0202095d", + "platform_rt_rc_auto_tune": "0x02020971", + "platform_rt_rc_auto_tune2": "0x02020979", + "platform_rt_rc_tune": "0x020209fd", + "platform_set_abs_timer": "0x02020a19", + "platform_set_evt_callback": "0x02020a1d", + "platform_set_evt_callback_table": "0x02020a31", + "platform_set_irq_callback": "0x02020a3d", + "platform_set_irq_callback_table": "0x02020a59", + "platform_set_rf_clk_source": "0x02020a65", + "platform_set_rf_init_data": "0x02020a71", + "platform_set_rf_power_mapping": "0x02020a7d", + "platform_set_timer": "0x02020a89", + "platform_shutdown": "0x02020a8d", + "platform_switch_app": "0x02020a91", + "platform_trace_raw": "0x02020aa9", + "platform_write_persistent_reg": "0x02020ac1", + "printf_hexdump": "0x02020c79", + "pvPortMalloc": "0x02021751", + "pvTaskIncrementMutexHeldCount": "0x02021839", + "pvTimerGetTimerID": "0x02021851", + "pxPortInitialiseStack": "0x0202187d", + "reverse_128": "0x02021a65", + "reverse_24": "0x02021a6b", + "reverse_256": "0x02021a71", + "reverse_48": "0x02021a77", + "reverse_56": "0x02021a7d", + "reverse_64": "0x02021a83", + "reverse_bd_addr": "0x02021a89", + "reverse_bytes": "0x02021a8f", + "sm_add_event_handler": "0x02021e1d", + "sm_address_resolution_lookup": "0x02021f75", + "sm_authenticated": "0x020222f1", + "sm_authorization_decline": "0x020222ff", + "sm_authorization_grant": "0x0202231f", + "sm_authorization_state": "0x0202233f", + "sm_bonding_decline": "0x02022359", + "sm_config": "0x020227ad", + "sm_config_conn": "0x020227c5", + "sm_encryption_key_size": "0x0202297b", + "sm_just_works_confirm": "0x02022f01", + "sm_le_device_key": "0x02023239", + "sm_passkey_input": "0x020232cf", + "sm_private_random_address_generation_get": "0x02023689", + "sm_private_random_address_generation_get_mode": "0x02023691", + "sm_private_random_address_generation_set_mode": "0x0202369d", + "sm_private_random_address_generation_set_update_period": "0x020236c5", + "sm_register_external_ltk_callback": "0x02023801", + "sm_register_oob_data_callback": "0x0202380d", + "sm_request_pairing": "0x02023819", + "sm_send_security_request": "0x020242ef", + "sm_set_accepted_stk_generation_methods": "0x02024315", + "sm_set_authentication_requirements": "0x02024321", + "sm_set_encryption_key_size_range": "0x0202432d", + "sscanf_bd_addr": "0x02024705", + "sysSetPublicDeviceAddr": "0x02024c31", + "uuid128_to_str": "0x0202548d", + "uuid_add_bluetooth_prefix": "0x020254e5", + "uuid_has_bluetooth_prefix": "0x02025505", + "uxListRemove": "0x02025521", + "uxQueueMessagesWaiting": "0x02025549", + "uxQueueMessagesWaitingFromISR": "0x02025571", + "uxQueueSpacesAvailable": "0x0202558d", + "uxTaskGetStackHighWaterMark": "0x020255b9", + "uxTaskPriorityGet": "0x020255d9", + "uxTaskPriorityGetFromISR": "0x020255f5", + "vListInitialise": "0x020256b3", + "vListInitialiseItem": "0x020256c9", + "vListInsert": "0x020256cf", + "vListInsertEnd": "0x020256ff", + "vPortEndScheduler": "0x02025719", + "vPortEnterCritical": "0x02025745", + "vPortExitCritical": "0x02025789", + "vPortFree": "0x020257bd", + "vPortSuppressTicksAndSleep": "0x02025861", + "vPortValidateInterruptPriority": "0x02025989", + "vQueueDelete": "0x020259e5", + "vQueueWaitForMessageRestricted": "0x02025a11", + "vTaskDelay": "0x02025a55", + "vTaskInternalSetTimeOutState": "0x02025aa1", + "vTaskMissedYield": "0x02025ab1", + "vTaskPlaceOnEventList": "0x02025abd", + "vTaskPlaceOnEventListRestricted": "0x02025af5", + "vTaskPriorityDisinheritAfterTimeout": "0x02025b35", + "vTaskPrioritySet": "0x02025be1", + "vTaskResume": "0x02025ca9", + "vTaskStartScheduler": "0x02025d2d", + "vTaskStepTick": "0x02025dbd", + "vTaskSuspend": "0x02025ded", + "vTaskSuspendAll": "0x02025ea9", + "vTaskSwitchContext": "0x02025eb9", + "xPortStartScheduler": "0x02025f69", + "xQueueAddToSet": "0x0202606d", + "xQueueCreateCountingSemaphore": "0x02026091", + "xQueueCreateCountingSemaphoreStatic": "0x020260cd", + "xQueueCreateMutex": "0x02026111", + "xQueueCreateMutexStatic": "0x02026127", + "xQueueCreateSet": "0x02026141", + "xQueueGenericCreate": "0x02026149", + "xQueueGenericCreateStatic": "0x02026195", + "xQueueGenericReset": "0x020261fd", + "xQueueGenericSend": "0x02026289", + "xQueueGenericSendFromISR": "0x020263f5", + "xQueueGiveFromISR": "0x020264b5", + "xQueueGiveMutexRecursive": "0x02026559", + "xQueueIsQueueEmptyFromISR": "0x02026599", + "xQueueIsQueueFullFromISR": "0x020265bd", + "xQueuePeek": "0x020265e5", + "xQueuePeekFromISR": "0x0202670d", + "xQueueReceive": "0x02026779", + "xQueueReceiveFromISR": "0x020268a5", + "xQueueRemoveFromSet": "0x02026939", + "xQueueSelectFromSet": "0x0202695b", + "xQueueSelectFromSetFromISR": "0x0202696d", + "xQueueSemaphoreTake": "0x02026981", + "xQueueTakeMutexRecursive": "0x02026aed", + "xTaskCheckForTimeOut": "0x02026b31", + "xTaskCreate": "0x02026ba1", + "xTaskCreateStatic": "0x02026bfd", + "xTaskGetCurrentTaskHandle": "0x02026c6d", + "xTaskGetSchedulerState": "0x02026c79", + "xTaskGetTickCount": "0x02026c95", + "xTaskGetTickCountFromISR": "0x02026ca1", + "xTaskIncrementTick": "0x02026cb1", + "xTaskPriorityDisinherit": "0x02026d7d", + "xTaskPriorityInherit": "0x02026e11", + "xTaskRemoveFromEventList": "0x02026ea5", + "xTaskResumeAll": "0x02026f25", + "xTaskResumeFromISR": "0x02026fed", + "xTimerCreate": "0x02027079", + "xTimerCreateStatic": "0x020270ad", + "xTimerCreateTimerTask": "0x020270e5", + "xTimerGenericCommand": "0x02027151", + "xTimerGetExpiryTime": "0x020271c1", + "xTimerGetTimerDaemonTaskHandle": "0x020271e1" } \ No newline at end of file diff --git a/bundles/extension/ING9168xx/meta.json b/bundles/extension/ING9168xx/meta.json index 25fa4d6ca..b9e5766fe 100644 --- a/bundles/extension/ING9168xx/meta.json +++ b/bundles/extension/ING9168xx/meta.json @@ -4,15 +4,15 @@ }, "ram": { "base": 536870912, - "size": 21580 + "size": 21596 }, "rom": { "base": 33562624, - "size": 161868 + "size": 161340 }, "version": [ 2, 3, - 0 + 1 ] } \ No newline at end of file diff --git a/bundles/extension/ING9168xx/platform.bin b/bundles/extension/ING9168xx/platform.bin index 0ddb6b5262dbeb429b3ab972434b72fd8bd9f0d9..3ab6eceb8f07eeec0d5c3f50e93ac94ab1a333d4 100644 GIT binary patch delta 38361 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 diff --git a/bundles/extension/ING9187xx/apis.json b/bundles/extension/ING9187xx/apis.json index 4516b187d..1cb203718 100644 --- a/bundles/extension/ING9187xx/apis.json +++ b/bundles/extension/ING9187xx/apis.json @@ -191,161 +191,162 @@ "ll_set_initiating_coded_scheme": "0x0000dd61", "ll_set_max_conn_number": "0x0000dd6d", "ll_unlock_frequency": "0x0000de01", - "nibble_for_char": "0x0001e0d1", - "platform_32k_rc_auto_tune": "0x0001e17d", - "platform_32k_rc_tune": "0x0001e1f9", - "platform_calibrate_32k": "0x0001e20d", + "nibble_for_char": "0x0001e0e1", + "platform_calibrate_rt_clk": "0x0001e18d", "platform_call_on_stack": "0x00004183", - "platform_config": "0x0001e211", - "platform_delete_timer": "0x0001e335", - "platform_enable_irq": "0x0001e33d", - "platform_get_current_task": "0x0001e375", - "platform_get_gen_os_driver": "0x0001e399", - "platform_get_heap_status": "0x0001e3a1", - "platform_get_link_layer_interf": "0x0001e3b9", - "platform_get_task_handle": "0x0001e3c1", - "platform_get_timer_counter": "0x0001e3e1", - "platform_get_us_time": "0x0001e3e5", - "platform_get_version": "0x0001e3e9", - "platform_hrng": "0x0001e3f1", - "platform_install_isr_stack": "0x0001e3f9", - "platform_install_task_stack": "0x0001e405", - "platform_patch_rf_init_data": "0x0001e43d", - "platform_printf": "0x0001e449", - "platform_raise_assertion": "0x0001e45d", - "platform_rand": "0x0001e471", - "platform_read_info": "0x0001e475", - "platform_read_persistent_reg": "0x0001e4a5", - "platform_reset": "0x0001e4b5", - "platform_set_abs_timer": "0x0001e4d9", - "platform_set_evt_callback": "0x0001e4dd", - "platform_set_evt_callback_table": "0x0001e4f1", - "platform_set_irq_callback": "0x0001e4fd", - "platform_set_irq_callback_table": "0x0001e519", - "platform_set_rf_clk_source": "0x0001e525", - "platform_set_rf_init_data": "0x0001e531", - "platform_set_rf_power_mapping": "0x0001e53d", - "platform_set_timer": "0x0001e549", - "platform_shutdown": "0x0001e54d", - "platform_switch_app": "0x0001e551", - "platform_trace_raw": "0x0001e57d", - "platform_write_persistent_reg": "0x0001e595", - "printf_hexdump": "0x0001e749", - "pvPortMalloc": "0x0001f23d", - "pvTaskIncrementMutexHeldCount": "0x0001f325", - "pvTimerGetTimerID": "0x0001f33d", - "pxPortInitialiseStack": "0x0001f369", - "reverse_128": "0x0001f511", - "reverse_24": "0x0001f517", - "reverse_256": "0x0001f51d", - "reverse_48": "0x0001f523", - "reverse_56": "0x0001f529", - "reverse_64": "0x0001f52f", - "reverse_bd_addr": "0x0001f535", - "reverse_bytes": "0x0001f53b", - "sm_add_event_handler": "0x0001f709", - "sm_address_resolution_lookup": "0x0001f861", - "sm_authenticated": "0x0001fbdd", - "sm_authorization_decline": "0x0001fbeb", - "sm_authorization_grant": "0x0001fc0b", - "sm_authorization_state": "0x0001fc2b", - "sm_bonding_decline": "0x0001fc45", - "sm_config": "0x000200a1", - "sm_config_conn": "0x000200b9", - "sm_encryption_key_size": "0x0002026f", - "sm_just_works_confirm": "0x000207f5", - "sm_le_device_key": "0x00020b2d", - "sm_passkey_input": "0x00020bc3", - "sm_private_random_address_generation_get": "0x00020f7d", - "sm_private_random_address_generation_get_mode": "0x00020f85", - "sm_private_random_address_generation_set_mode": "0x00020f91", - "sm_private_random_address_generation_set_update_period": "0x00020fb9", - "sm_register_external_ltk_callback": "0x000210f5", - "sm_register_oob_data_callback": "0x00021101", - "sm_request_pairing": "0x0002110d", - "sm_send_security_request": "0x00021be3", - "sm_set_accepted_stk_generation_methods": "0x00021c09", - "sm_set_authentication_requirements": "0x00021c15", - "sm_set_encryption_key_size_range": "0x00021c21", - "sscanf_bd_addr": "0x00021ff1", - "sysSetPublicDeviceAddr": "0x000223a5", - "uuid128_to_str": "0x000229b1", - "uuid_add_bluetooth_prefix": "0x00022a09", - "uuid_has_bluetooth_prefix": "0x00022a29", - "uxListRemove": "0x00022a45", - "uxQueueMessagesWaiting": "0x00022a6d", - "uxQueueMessagesWaitingFromISR": "0x00022a95", - "uxQueueSpacesAvailable": "0x00022ab1", - "uxTaskGetStackHighWaterMark": "0x00022add", - "uxTaskPriorityGet": "0x00022afd", - "uxTaskPriorityGetFromISR": "0x00022b19", - "vListInitialise": "0x00022bd3", - "vListInitialiseItem": "0x00022be9", - "vListInsert": "0x00022bef", - "vListInsertEnd": "0x00022c1f", - "vPortEndScheduler": "0x00022c39", - "vPortEnterCritical": "0x00022c65", - "vPortExitCritical": "0x00022ca9", - "vPortFree": "0x00022cdd", - "vPortSuppressTicksAndSleep": "0x00022d71", - "vPortValidateInterruptPriority": "0x00022e99", - "vQueueDelete": "0x00022ef5", - "vQueueWaitForMessageRestricted": "0x00022f21", - "vTaskDelay": "0x00022f69", - "vTaskInternalSetTimeOutState": "0x00022fb5", - "vTaskMissedYield": "0x00022fc5", - "vTaskPlaceOnEventList": "0x00022fd1", - "vTaskPlaceOnEventListRestricted": "0x00023009", - "vTaskPriorityDisinheritAfterTimeout": "0x00023049", - "vTaskPrioritySet": "0x000230f5", - "vTaskResume": "0x000231bd", - "vTaskStartScheduler": "0x00023241", - "vTaskStepTick": "0x000232d1", - "vTaskSuspend": "0x00023301", - "vTaskSuspendAll": "0x000233bd", - "vTaskSwitchContext": "0x000233cd", - "xPortStartScheduler": "0x00023475", - "xQueueAddToSet": "0x0002353d", - "xQueueCreateCountingSemaphore": "0x00023561", - "xQueueCreateCountingSemaphoreStatic": "0x0002359d", - "xQueueCreateMutex": "0x000235e1", - "xQueueCreateMutexStatic": "0x000235f7", - "xQueueCreateSet": "0x00023611", - "xQueueGenericCreate": "0x00023619", - "xQueueGenericCreateStatic": "0x00023665", - "xQueueGenericReset": "0x000236cd", - "xQueueGenericSend": "0x00023759", - "xQueueGenericSendFromISR": "0x000238c5", - "xQueueGiveFromISR": "0x00023985", - "xQueueGiveMutexRecursive": "0x00023a29", - "xQueueIsQueueEmptyFromISR": "0x00023a69", - "xQueueIsQueueFullFromISR": "0x00023a8d", - "xQueuePeek": "0x00023ab5", - "xQueuePeekFromISR": "0x00023bdd", - "xQueueReceive": "0x00023c49", - "xQueueReceiveFromISR": "0x00023d75", - "xQueueRemoveFromSet": "0x00023e09", - "xQueueSelectFromSet": "0x00023e2b", - "xQueueSelectFromSetFromISR": "0x00023e3d", - "xQueueSemaphoreTake": "0x00023e51", - "xQueueTakeMutexRecursive": "0x00023fbd", - "xTaskCheckForTimeOut": "0x00024001", - "xTaskCreate": "0x00024071", - "xTaskCreateStatic": "0x000240cd", - "xTaskGetCurrentTaskHandle": "0x0002413d", - "xTaskGetSchedulerState": "0x00024149", - "xTaskGetTickCount": "0x00024165", - "xTaskGetTickCountFromISR": "0x00024171", - "xTaskIncrementTick": "0x00024181", - "xTaskPriorityDisinherit": "0x0002424d", - "xTaskPriorityInherit": "0x000242e1", - "xTaskRemoveFromEventList": "0x00024375", - "xTaskResumeAll": "0x000243f5", - "xTaskResumeFromISR": "0x000244bd", - "xTimerCreate": "0x00024549", - "xTimerCreateStatic": "0x0002457d", - "xTimerCreateTimerTask": "0x000245b5", - "xTimerGenericCommand": "0x00024621", - "xTimerGetExpiryTime": "0x00024691", - "xTimerGetTimerDaemonTaskHandle": "0x000246b1" + "platform_config": "0x0001e191", + "platform_delete_timer": "0x0001e2b5", + "platform_enable_irq": "0x0001e2bd", + "platform_get_current_task": "0x0001e2f5", + "platform_get_gen_os_driver": "0x0001e319", + "platform_get_heap_status": "0x0001e321", + "platform_get_link_layer_interf": "0x0001e339", + "platform_get_task_handle": "0x0001e341", + "platform_get_timer_counter": "0x0001e361", + "platform_get_us_time": "0x0001e365", + "platform_get_version": "0x0001e369", + "platform_hrng": "0x0001e371", + "platform_install_isr_stack": "0x0001e379", + "platform_install_task_stack": "0x0001e385", + "platform_patch_rf_init_data": "0x0001e3bd", + "platform_printf": "0x0001e3c9", + "platform_raise_assertion": "0x0001e3dd", + "platform_rand": "0x0001e3f1", + "platform_read_info": "0x0001e3f5", + "platform_read_persistent_reg": "0x0001e425", + "platform_reset": "0x0001e435", + "platform_rt_rc_auto_tune": "0x0001e459", + "platform_rt_rc_auto_tune2": "0x0001e461", + "platform_rt_rc_tune": "0x0001e505", + "platform_set_abs_timer": "0x0001e519", + "platform_set_evt_callback": "0x0001e51d", + "platform_set_evt_callback_table": "0x0001e531", + "platform_set_irq_callback": "0x0001e53d", + "platform_set_irq_callback_table": "0x0001e559", + "platform_set_rf_clk_source": "0x0001e565", + "platform_set_rf_init_data": "0x0001e571", + "platform_set_rf_power_mapping": "0x0001e57d", + "platform_set_timer": "0x0001e589", + "platform_shutdown": "0x0001e58d", + "platform_switch_app": "0x0001e591", + "platform_trace_raw": "0x0001e5bd", + "platform_write_persistent_reg": "0x0001e5d5", + "printf_hexdump": "0x0001e789", + "pvPortMalloc": "0x0001f27d", + "pvTaskIncrementMutexHeldCount": "0x0001f365", + "pvTimerGetTimerID": "0x0001f37d", + "pxPortInitialiseStack": "0x0001f3a9", + "reverse_128": "0x0001f551", + "reverse_24": "0x0001f557", + "reverse_256": "0x0001f55d", + "reverse_48": "0x0001f563", + "reverse_56": "0x0001f569", + "reverse_64": "0x0001f56f", + "reverse_bd_addr": "0x0001f575", + "reverse_bytes": "0x0001f57b", + "sm_add_event_handler": "0x0001f749", + "sm_address_resolution_lookup": "0x0001f8a1", + "sm_authenticated": "0x0001fc1d", + "sm_authorization_decline": "0x0001fc2b", + "sm_authorization_grant": "0x0001fc4b", + "sm_authorization_state": "0x0001fc6b", + "sm_bonding_decline": "0x0001fc85", + "sm_config": "0x000200e1", + "sm_config_conn": "0x000200f9", + "sm_encryption_key_size": "0x000202af", + "sm_just_works_confirm": "0x00020835", + "sm_le_device_key": "0x00020b6d", + "sm_passkey_input": "0x00020c03", + "sm_private_random_address_generation_get": "0x00020fbd", + "sm_private_random_address_generation_get_mode": "0x00020fc5", + "sm_private_random_address_generation_set_mode": "0x00020fd1", + "sm_private_random_address_generation_set_update_period": "0x00020ff9", + "sm_register_external_ltk_callback": "0x00021135", + "sm_register_oob_data_callback": "0x00021141", + "sm_request_pairing": "0x0002114d", + "sm_send_security_request": "0x00021c23", + "sm_set_accepted_stk_generation_methods": "0x00021c49", + "sm_set_authentication_requirements": "0x00021c55", + "sm_set_encryption_key_size_range": "0x00021c61", + "sscanf_bd_addr": "0x00022031", + "sysSetPublicDeviceAddr": "0x000223e5", + "uuid128_to_str": "0x000229f9", + "uuid_add_bluetooth_prefix": "0x00022a51", + "uuid_has_bluetooth_prefix": "0x00022a71", + "uxListRemove": "0x00022a8d", + "uxQueueMessagesWaiting": "0x00022ab5", + "uxQueueMessagesWaitingFromISR": "0x00022add", + "uxQueueSpacesAvailable": "0x00022af9", + "uxTaskGetStackHighWaterMark": "0x00022b25", + "uxTaskPriorityGet": "0x00022b45", + "uxTaskPriorityGetFromISR": "0x00022b61", + "vListInitialise": "0x00022c1b", + "vListInitialiseItem": "0x00022c31", + "vListInsert": "0x00022c37", + "vListInsertEnd": "0x00022c67", + "vPortEndScheduler": "0x00022c81", + "vPortEnterCritical": "0x00022cad", + "vPortExitCritical": "0x00022cf1", + "vPortFree": "0x00022d25", + "vPortSuppressTicksAndSleep": "0x00022db9", + "vPortValidateInterruptPriority": "0x00022ee1", + "vQueueDelete": "0x00022f3d", + "vQueueWaitForMessageRestricted": "0x00022f69", + "vTaskDelay": "0x00022fb1", + "vTaskInternalSetTimeOutState": "0x00022ffd", + "vTaskMissedYield": "0x0002300d", + "vTaskPlaceOnEventList": "0x00023019", + "vTaskPlaceOnEventListRestricted": "0x00023051", + "vTaskPriorityDisinheritAfterTimeout": "0x00023091", + "vTaskPrioritySet": "0x0002313d", + "vTaskResume": "0x00023205", + "vTaskStartScheduler": "0x00023289", + "vTaskStepTick": "0x00023319", + "vTaskSuspend": "0x00023349", + "vTaskSuspendAll": "0x00023405", + "vTaskSwitchContext": "0x00023415", + "xPortStartScheduler": "0x000234c5", + "xQueueAddToSet": "0x0002358d", + "xQueueCreateCountingSemaphore": "0x000235b1", + "xQueueCreateCountingSemaphoreStatic": "0x000235ed", + "xQueueCreateMutex": "0x00023631", + "xQueueCreateMutexStatic": "0x00023647", + "xQueueCreateSet": "0x00023661", + "xQueueGenericCreate": "0x00023669", + "xQueueGenericCreateStatic": "0x000236b5", + "xQueueGenericReset": "0x0002371d", + "xQueueGenericSend": "0x000237a9", + "xQueueGenericSendFromISR": "0x00023915", + "xQueueGiveFromISR": "0x000239d5", + "xQueueGiveMutexRecursive": "0x00023a79", + "xQueueIsQueueEmptyFromISR": "0x00023ab9", + "xQueueIsQueueFullFromISR": "0x00023add", + "xQueuePeek": "0x00023b05", + "xQueuePeekFromISR": "0x00023c2d", + "xQueueReceive": "0x00023c99", + "xQueueReceiveFromISR": "0x00023dc5", + "xQueueRemoveFromSet": "0x00023e59", + "xQueueSelectFromSet": "0x00023e7b", + "xQueueSelectFromSetFromISR": "0x00023e8d", + "xQueueSemaphoreTake": "0x00023ea1", + "xQueueTakeMutexRecursive": "0x0002400d", + "xTaskCheckForTimeOut": "0x00024051", + "xTaskCreate": "0x000240c1", + "xTaskCreateStatic": "0x0002411d", + "xTaskGetCurrentTaskHandle": "0x0002418d", + "xTaskGetSchedulerState": "0x00024199", + "xTaskGetTickCount": "0x000241b5", + "xTaskGetTickCountFromISR": "0x000241c1", + "xTaskIncrementTick": "0x000241d1", + "xTaskPriorityDisinherit": "0x0002429d", + "xTaskPriorityInherit": "0x00024331", + "xTaskRemoveFromEventList": "0x000243c5", + "xTaskResumeAll": "0x00024445", + "xTaskResumeFromISR": "0x0002450d", + "xTimerCreate": "0x00024599", + "xTimerCreateStatic": "0x000245cd", + "xTimerCreateTimerTask": "0x00024605", + "xTimerGenericCommand": "0x00024671", + "xTimerGetExpiryTime": "0x000246e1", + "xTimerGetTimerDaemonTaskHandle": "0x00024701" } \ No newline at end of file diff --git a/bundles/extension/ING9187xx/meta.json b/bundles/extension/ING9187xx/meta.json index 706ed4640..350db1723 100644 --- a/bundles/extension/ING9187xx/meta.json +++ b/bundles/extension/ING9187xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 139176 + "size": 139252 }, "version": [ 1, 9, - 40 + 41 ] } \ No newline at end of file diff --git a/bundles/extension/ING9187xx/platform.bin b/bundles/extension/ING9187xx/platform.bin index c4225a26d704753f1679db894dac8b83fadc5430..cfa34e22395f248fba950c86c3a9e0d597327ad4 100644 GIT binary patch delta 20778 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 diff --git a/bundles/extension/ING9188xx/apis.json b/bundles/extension/ING9188xx/apis.json index 93739bf64..fced75a36 100644 --- a/bundles/extension/ING9188xx/apis.json +++ b/bundles/extension/ING9188xx/apis.json @@ -211,161 +211,162 @@ "ll_set_initiating_coded_scheme": "0x0000e505", "ll_set_max_conn_number": "0x0000e511", "ll_unlock_frequency": "0x0000e5a5", - "nibble_for_char": "0x0001f855", - "platform_32k_rc_auto_tune": "0x0001f901", - "platform_32k_rc_tune": "0x0001f97d", - "platform_calibrate_32k": "0x0001f991", + "nibble_for_char": "0x0001f865", + "platform_calibrate_rt_clk": "0x0001f911", "platform_call_on_stack": "0x00004183", - "platform_config": "0x0001f995", - "platform_delete_timer": "0x0001fab9", - "platform_enable_irq": "0x0001fac1", - "platform_get_current_task": "0x0001faf9", - "platform_get_gen_os_driver": "0x0001fb1d", - "platform_get_heap_status": "0x0001fb25", - "platform_get_link_layer_interf": "0x0001fb3d", - "platform_get_task_handle": "0x0001fb45", - "platform_get_timer_counter": "0x0001fb65", - "platform_get_us_time": "0x0001fb69", - "platform_get_version": "0x0001fb6d", - "platform_hrng": "0x0001fb75", - "platform_install_isr_stack": "0x0001fb7d", - "platform_install_task_stack": "0x0001fb89", - "platform_patch_rf_init_data": "0x0001fbc1", - "platform_printf": "0x0001fbcd", - "platform_raise_assertion": "0x0001fbe1", - "platform_rand": "0x0001fbf5", - "platform_read_info": "0x0001fbf9", - "platform_read_persistent_reg": "0x0001fc29", - "platform_reset": "0x0001fc39", - "platform_set_abs_timer": "0x0001fc5d", - "platform_set_evt_callback": "0x0001fc61", - "platform_set_evt_callback_table": "0x0001fc75", - "platform_set_irq_callback": "0x0001fc81", - "platform_set_irq_callback_table": "0x0001fc9d", - "platform_set_rf_clk_source": "0x0001fca9", - "platform_set_rf_init_data": "0x0001fcb5", - "platform_set_rf_power_mapping": "0x0001fcc1", - "platform_set_timer": "0x0001fccd", - "platform_shutdown": "0x0001fcd1", - "platform_switch_app": "0x0001fcd5", - "platform_trace_raw": "0x0001fd01", - "platform_write_persistent_reg": "0x0001fd19", - "printf_hexdump": "0x0001fecd", - "pvPortMalloc": "0x000209c1", - "pvTaskIncrementMutexHeldCount": "0x00020aa9", - "pvTimerGetTimerID": "0x00020ac1", - "pxPortInitialiseStack": "0x00020aed", - "reverse_128": "0x00020ccd", - "reverse_24": "0x00020cd3", - "reverse_256": "0x00020cd9", - "reverse_48": "0x00020cdf", - "reverse_56": "0x00020ce5", - "reverse_64": "0x00020ceb", - "reverse_bd_addr": "0x00020cf1", - "reverse_bytes": "0x00020cf7", - "sm_add_event_handler": "0x00021015", - "sm_address_resolution_lookup": "0x0002116d", - "sm_authenticated": "0x000214e9", - "sm_authorization_decline": "0x000214f7", - "sm_authorization_grant": "0x00021517", - "sm_authorization_state": "0x00021537", - "sm_bonding_decline": "0x00021551", - "sm_config": "0x000219ad", - "sm_config_conn": "0x000219c5", - "sm_encryption_key_size": "0x00021b7b", - "sm_just_works_confirm": "0x00022101", - "sm_le_device_key": "0x00022439", - "sm_passkey_input": "0x000224cf", - "sm_private_random_address_generation_get": "0x00022889", - "sm_private_random_address_generation_get_mode": "0x00022891", - "sm_private_random_address_generation_set_mode": "0x0002289d", - "sm_private_random_address_generation_set_update_period": "0x000228c5", - "sm_register_external_ltk_callback": "0x00022a01", - "sm_register_oob_data_callback": "0x00022a0d", - "sm_request_pairing": "0x00022a19", - "sm_send_security_request": "0x000234ef", - "sm_set_accepted_stk_generation_methods": "0x00023515", - "sm_set_authentication_requirements": "0x00023521", - "sm_set_encryption_key_size_range": "0x0002352d", - "sscanf_bd_addr": "0x000238fd", - "sysSetPublicDeviceAddr": "0x00023cb1", - "uuid128_to_str": "0x00024451", - "uuid_add_bluetooth_prefix": "0x000244a9", - "uuid_has_bluetooth_prefix": "0x000244c9", - "uxListRemove": "0x000244e5", - "uxQueueMessagesWaiting": "0x0002450d", - "uxQueueMessagesWaitingFromISR": "0x00024535", - "uxQueueSpacesAvailable": "0x00024551", - "uxTaskGetStackHighWaterMark": "0x0002457d", - "uxTaskPriorityGet": "0x0002459d", - "uxTaskPriorityGetFromISR": "0x000245b9", - "vListInitialise": "0x00024673", - "vListInitialiseItem": "0x00024689", - "vListInsert": "0x0002468f", - "vListInsertEnd": "0x000246bf", - "vPortEndScheduler": "0x000246d9", - "vPortEnterCritical": "0x00024705", - "vPortExitCritical": "0x00024749", - "vPortFree": "0x0002477d", - "vPortSuppressTicksAndSleep": "0x00024811", - "vPortValidateInterruptPriority": "0x00024939", - "vQueueDelete": "0x00024995", - "vQueueWaitForMessageRestricted": "0x000249c1", - "vTaskDelay": "0x00024a09", - "vTaskInternalSetTimeOutState": "0x00024a55", - "vTaskMissedYield": "0x00024a65", - "vTaskPlaceOnEventList": "0x00024a71", - "vTaskPlaceOnEventListRestricted": "0x00024aa9", - "vTaskPriorityDisinheritAfterTimeout": "0x00024ae9", - "vTaskPrioritySet": "0x00024b95", - "vTaskResume": "0x00024c5d", - "vTaskStartScheduler": "0x00024ce1", - "vTaskStepTick": "0x00024d71", - "vTaskSuspend": "0x00024da1", - "vTaskSuspendAll": "0x00024e5d", - "vTaskSwitchContext": "0x00024e6d", - "xPortStartScheduler": "0x00024f15", - "xQueueAddToSet": "0x00024fdd", - "xQueueCreateCountingSemaphore": "0x00025001", - "xQueueCreateCountingSemaphoreStatic": "0x0002503d", - "xQueueCreateMutex": "0x00025081", - "xQueueCreateMutexStatic": "0x00025097", - "xQueueCreateSet": "0x000250b1", - "xQueueGenericCreate": "0x000250b9", - "xQueueGenericCreateStatic": "0x00025105", - "xQueueGenericReset": "0x0002516d", - "xQueueGenericSend": "0x000251f9", - "xQueueGenericSendFromISR": "0x00025365", - "xQueueGiveFromISR": "0x00025425", - "xQueueGiveMutexRecursive": "0x000254c9", - "xQueueIsQueueEmptyFromISR": "0x00025509", - "xQueueIsQueueFullFromISR": "0x0002552d", - "xQueuePeek": "0x00025555", - "xQueuePeekFromISR": "0x0002567d", - "xQueueReceive": "0x000256e9", - "xQueueReceiveFromISR": "0x00025815", - "xQueueRemoveFromSet": "0x000258a9", - "xQueueSelectFromSet": "0x000258cb", - "xQueueSelectFromSetFromISR": "0x000258dd", - "xQueueSemaphoreTake": "0x000258f1", - "xQueueTakeMutexRecursive": "0x00025a5d", - "xTaskCheckForTimeOut": "0x00025aa1", - "xTaskCreate": "0x00025b11", - "xTaskCreateStatic": "0x00025b6d", - "xTaskGetCurrentTaskHandle": "0x00025bdd", - "xTaskGetSchedulerState": "0x00025be9", - "xTaskGetTickCount": "0x00025c05", - "xTaskGetTickCountFromISR": "0x00025c11", - "xTaskIncrementTick": "0x00025c21", - "xTaskPriorityDisinherit": "0x00025ced", - "xTaskPriorityInherit": "0x00025d81", - "xTaskRemoveFromEventList": "0x00025e15", - "xTaskResumeAll": "0x00025e95", - "xTaskResumeFromISR": "0x00025f5d", - "xTimerCreate": "0x00025fe9", - "xTimerCreateStatic": "0x0002601d", - "xTimerCreateTimerTask": "0x00026055", - "xTimerGenericCommand": "0x000260c1", - "xTimerGetExpiryTime": "0x00026131", - "xTimerGetTimerDaemonTaskHandle": "0x00026151" + "platform_config": "0x0001f915", + "platform_delete_timer": "0x0001fa39", + "platform_enable_irq": "0x0001fa41", + "platform_get_current_task": "0x0001fa79", + "platform_get_gen_os_driver": "0x0001fa9d", + "platform_get_heap_status": "0x0001faa5", + "platform_get_link_layer_interf": "0x0001fabd", + "platform_get_task_handle": "0x0001fac5", + "platform_get_timer_counter": "0x0001fae5", + "platform_get_us_time": "0x0001fae9", + "platform_get_version": "0x0001faed", + "platform_hrng": "0x0001faf5", + "platform_install_isr_stack": "0x0001fafd", + "platform_install_task_stack": "0x0001fb09", + "platform_patch_rf_init_data": "0x0001fb41", + "platform_printf": "0x0001fb4d", + "platform_raise_assertion": "0x0001fb61", + "platform_rand": "0x0001fb75", + "platform_read_info": "0x0001fb79", + "platform_read_persistent_reg": "0x0001fba9", + "platform_reset": "0x0001fbb9", + "platform_rt_rc_auto_tune": "0x0001fbdd", + "platform_rt_rc_auto_tune2": "0x0001fbe5", + "platform_rt_rc_tune": "0x0001fc89", + "platform_set_abs_timer": "0x0001fc9d", + "platform_set_evt_callback": "0x0001fca1", + "platform_set_evt_callback_table": "0x0001fcb5", + "platform_set_irq_callback": "0x0001fcc1", + "platform_set_irq_callback_table": "0x0001fcdd", + "platform_set_rf_clk_source": "0x0001fce9", + "platform_set_rf_init_data": "0x0001fcf5", + "platform_set_rf_power_mapping": "0x0001fd01", + "platform_set_timer": "0x0001fd0d", + "platform_shutdown": "0x0001fd11", + "platform_switch_app": "0x0001fd15", + "platform_trace_raw": "0x0001fd41", + "platform_write_persistent_reg": "0x0001fd59", + "printf_hexdump": "0x0001ff0d", + "pvPortMalloc": "0x00020a01", + "pvTaskIncrementMutexHeldCount": "0x00020ae9", + "pvTimerGetTimerID": "0x00020b01", + "pxPortInitialiseStack": "0x00020b2d", + "reverse_128": "0x00020d0d", + "reverse_24": "0x00020d13", + "reverse_256": "0x00020d19", + "reverse_48": "0x00020d1f", + "reverse_56": "0x00020d25", + "reverse_64": "0x00020d2b", + "reverse_bd_addr": "0x00020d31", + "reverse_bytes": "0x00020d37", + "sm_add_event_handler": "0x00021055", + "sm_address_resolution_lookup": "0x000211ad", + "sm_authenticated": "0x00021529", + "sm_authorization_decline": "0x00021537", + "sm_authorization_grant": "0x00021557", + "sm_authorization_state": "0x00021577", + "sm_bonding_decline": "0x00021591", + "sm_config": "0x000219ed", + "sm_config_conn": "0x00021a05", + "sm_encryption_key_size": "0x00021bbb", + "sm_just_works_confirm": "0x00022141", + "sm_le_device_key": "0x00022479", + "sm_passkey_input": "0x0002250f", + "sm_private_random_address_generation_get": "0x000228c9", + "sm_private_random_address_generation_get_mode": "0x000228d1", + "sm_private_random_address_generation_set_mode": "0x000228dd", + "sm_private_random_address_generation_set_update_period": "0x00022905", + "sm_register_external_ltk_callback": "0x00022a41", + "sm_register_oob_data_callback": "0x00022a4d", + "sm_request_pairing": "0x00022a59", + "sm_send_security_request": "0x0002352f", + "sm_set_accepted_stk_generation_methods": "0x00023555", + "sm_set_authentication_requirements": "0x00023561", + "sm_set_encryption_key_size_range": "0x0002356d", + "sscanf_bd_addr": "0x0002393d", + "sysSetPublicDeviceAddr": "0x00023cf1", + "uuid128_to_str": "0x0002449d", + "uuid_add_bluetooth_prefix": "0x000244f5", + "uuid_has_bluetooth_prefix": "0x00024515", + "uxListRemove": "0x00024531", + "uxQueueMessagesWaiting": "0x00024559", + "uxQueueMessagesWaitingFromISR": "0x00024581", + "uxQueueSpacesAvailable": "0x0002459d", + "uxTaskGetStackHighWaterMark": "0x000245c9", + "uxTaskPriorityGet": "0x000245e9", + "uxTaskPriorityGetFromISR": "0x00024605", + "vListInitialise": "0x000246bf", + "vListInitialiseItem": "0x000246d5", + "vListInsert": "0x000246db", + "vListInsertEnd": "0x0002470b", + "vPortEndScheduler": "0x00024725", + "vPortEnterCritical": "0x00024751", + "vPortExitCritical": "0x00024795", + "vPortFree": "0x000247c9", + "vPortSuppressTicksAndSleep": "0x0002485d", + "vPortValidateInterruptPriority": "0x00024985", + "vQueueDelete": "0x000249e1", + "vQueueWaitForMessageRestricted": "0x00024a0d", + "vTaskDelay": "0x00024a55", + "vTaskInternalSetTimeOutState": "0x00024aa1", + "vTaskMissedYield": "0x00024ab1", + "vTaskPlaceOnEventList": "0x00024abd", + "vTaskPlaceOnEventListRestricted": "0x00024af5", + "vTaskPriorityDisinheritAfterTimeout": "0x00024b35", + "vTaskPrioritySet": "0x00024be1", + "vTaskResume": "0x00024ca9", + "vTaskStartScheduler": "0x00024d2d", + "vTaskStepTick": "0x00024dbd", + "vTaskSuspend": "0x00024ded", + "vTaskSuspendAll": "0x00024ea9", + "vTaskSwitchContext": "0x00024eb9", + "xPortStartScheduler": "0x00024f69", + "xQueueAddToSet": "0x00025031", + "xQueueCreateCountingSemaphore": "0x00025055", + "xQueueCreateCountingSemaphoreStatic": "0x00025091", + "xQueueCreateMutex": "0x000250d5", + "xQueueCreateMutexStatic": "0x000250eb", + "xQueueCreateSet": "0x00025105", + "xQueueGenericCreate": "0x0002510d", + "xQueueGenericCreateStatic": "0x00025159", + "xQueueGenericReset": "0x000251c1", + "xQueueGenericSend": "0x0002524d", + "xQueueGenericSendFromISR": "0x000253b9", + "xQueueGiveFromISR": "0x00025479", + "xQueueGiveMutexRecursive": "0x0002551d", + "xQueueIsQueueEmptyFromISR": "0x0002555d", + "xQueueIsQueueFullFromISR": "0x00025581", + "xQueuePeek": "0x000255a9", + "xQueuePeekFromISR": "0x000256d1", + "xQueueReceive": "0x0002573d", + "xQueueReceiveFromISR": "0x00025869", + "xQueueRemoveFromSet": "0x000258fd", + "xQueueSelectFromSet": "0x0002591f", + "xQueueSelectFromSetFromISR": "0x00025931", + "xQueueSemaphoreTake": "0x00025945", + "xQueueTakeMutexRecursive": "0x00025ab1", + "xTaskCheckForTimeOut": "0x00025af5", + "xTaskCreate": "0x00025b65", + "xTaskCreateStatic": "0x00025bc1", + "xTaskGetCurrentTaskHandle": "0x00025c31", + "xTaskGetSchedulerState": "0x00025c3d", + "xTaskGetTickCount": "0x00025c59", + "xTaskGetTickCountFromISR": "0x00025c65", + "xTaskIncrementTick": "0x00025c75", + "xTaskPriorityDisinherit": "0x00025d41", + "xTaskPriorityInherit": "0x00025dd5", + "xTaskRemoveFromEventList": "0x00025e69", + "xTaskResumeAll": "0x00025ee9", + "xTaskResumeFromISR": "0x00025fb1", + "xTimerCreate": "0x0002603d", + "xTimerCreateStatic": "0x00026071", + "xTimerCreateTimerTask": "0x000260a9", + "xTimerGenericCommand": "0x00026115", + "xTimerGetExpiryTime": "0x00026185", + "xTimerGetTimerDaemonTaskHandle": "0x000261a5" } \ No newline at end of file diff --git a/bundles/extension/ING9188xx/meta.json b/bundles/extension/ING9188xx/meta.json index bd37743cd..362e53df6 100644 --- a/bundles/extension/ING9188xx/meta.json +++ b/bundles/extension/ING9188xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 146444 + "size": 146528 }, "version": [ 1, 9, - 40 + 41 ] } \ No newline at end of file diff --git a/bundles/extension/ING9188xx/platform.bin b/bundles/extension/ING9188xx/platform.bin index 7b290c8d94ceb2bdf2dc4c01027dc16cdd8a082a..46749848d5499226c98d574fa848400f565470ba 100644 GIT binary patch delta 22287 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 xvY)5CVG{5(}VAWaeK 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 Md>ULKcPJ@r0GRRlo&W#< delta 22253 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 E0p~6U#sB~S delta 28101 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 F{~N)o@E-sG diff --git a/bundles/mass_conn/ING9187xx/apis.json b/bundles/mass_conn/ING9187xx/apis.json index b04c903ff..d32bef08b 100644 --- a/bundles/mass_conn/ING9187xx/apis.json +++ b/bundles/mass_conn/ING9187xx/apis.json @@ -171,161 +171,162 @@ "ll_set_def_antenna": "0x0000d2e5", "ll_set_initiating_coded_scheme": "0x0000d301", "ll_set_max_conn_number": "0x0000d30d", - "nibble_for_char": "0x0001d4cd", - "platform_32k_rc_auto_tune": "0x0001d579", - "platform_32k_rc_tune": "0x0001d5f5", - "platform_calibrate_32k": "0x0001d609", + "nibble_for_char": "0x0001d4dd", + "platform_calibrate_rt_clk": "0x0001d589", "platform_call_on_stack": "0x00004183", - "platform_config": "0x0001d60d", - "platform_delete_timer": "0x0001d731", - "platform_enable_irq": "0x0001d739", - "platform_get_current_task": "0x0001d771", - "platform_get_gen_os_driver": "0x0001d795", - "platform_get_heap_status": "0x0001d79d", - "platform_get_link_layer_interf": "0x0001d7b5", - "platform_get_task_handle": "0x0001d7bd", - "platform_get_timer_counter": "0x0001d7dd", - "platform_get_us_time": "0x0001d7e1", - "platform_get_version": "0x0001d7e5", - "platform_hrng": "0x0001d7ed", - "platform_install_isr_stack": "0x0001d7f5", - "platform_install_task_stack": "0x0001d801", - "platform_patch_rf_init_data": "0x0001d839", - "platform_printf": "0x0001d845", - "platform_raise_assertion": "0x0001d859", - "platform_rand": "0x0001d86d", - "platform_read_info": "0x0001d871", - "platform_read_persistent_reg": "0x0001d8a1", - "platform_reset": "0x0001d8b1", - "platform_set_abs_timer": "0x0001d8d5", - "platform_set_evt_callback": "0x0001d8d9", - "platform_set_evt_callback_table": "0x0001d8ed", - "platform_set_irq_callback": "0x0001d8f9", - "platform_set_irq_callback_table": "0x0001d915", - "platform_set_rf_clk_source": "0x0001d921", - "platform_set_rf_init_data": "0x0001d92d", - "platform_set_rf_power_mapping": "0x0001d939", - "platform_set_timer": "0x0001d945", - "platform_shutdown": "0x0001d949", - "platform_switch_app": "0x0001d94d", - "platform_trace_raw": "0x0001d979", - "platform_write_persistent_reg": "0x0001d991", - "printf_hexdump": "0x0001db45", - "pvPortMalloc": "0x0001e639", - "pvTaskIncrementMutexHeldCount": "0x0001e721", - "pvTimerGetTimerID": "0x0001e739", - "pxPortInitialiseStack": "0x0001e765", - "reverse_128": "0x0001e90d", - "reverse_24": "0x0001e913", - "reverse_256": "0x0001e919", - "reverse_48": "0x0001e91f", - "reverse_56": "0x0001e925", - "reverse_64": "0x0001e92b", - "reverse_bd_addr": "0x0001e931", - "reverse_bytes": "0x0001e937", - "sm_add_event_handler": "0x0001ead5", - "sm_address_resolution_lookup": "0x0001ec2d", - "sm_authenticated": "0x0001efa9", - "sm_authorization_decline": "0x0001efb7", - "sm_authorization_grant": "0x0001efd7", - "sm_authorization_state": "0x0001eff7", - "sm_bonding_decline": "0x0001f011", - "sm_config": "0x0001f46d", - "sm_config_conn": "0x0001f485", - "sm_encryption_key_size": "0x0001f63b", - "sm_just_works_confirm": "0x0001fbc1", - "sm_le_device_key": "0x0001fef9", - "sm_passkey_input": "0x0001ff8f", - "sm_private_random_address_generation_get": "0x00020349", - "sm_private_random_address_generation_get_mode": "0x00020351", - "sm_private_random_address_generation_set_mode": "0x0002035d", - "sm_private_random_address_generation_set_update_period": "0x00020385", - "sm_register_external_ltk_callback": "0x000204c1", - "sm_register_oob_data_callback": "0x000204cd", - "sm_request_pairing": "0x000204d9", - "sm_send_security_request": "0x00020faf", - "sm_set_accepted_stk_generation_methods": "0x00020fd5", - "sm_set_authentication_requirements": "0x00020fe1", - "sm_set_encryption_key_size_range": "0x00020fed", - "sscanf_bd_addr": "0x00021349", - "sysSetPublicDeviceAddr": "0x000216fd", - "uuid128_to_str": "0x00021d09", - "uuid_add_bluetooth_prefix": "0x00021d61", - "uuid_has_bluetooth_prefix": "0x00021d81", - "uxListRemove": "0x00021d9d", - "uxQueueMessagesWaiting": "0x00021dc5", - "uxQueueMessagesWaitingFromISR": "0x00021ded", - "uxQueueSpacesAvailable": "0x00021e09", - "uxTaskGetStackHighWaterMark": "0x00021e35", - "uxTaskPriorityGet": "0x00021e55", - "uxTaskPriorityGetFromISR": "0x00021e71", - "vListInitialise": "0x00021f2b", - "vListInitialiseItem": "0x00021f41", - "vListInsert": "0x00021f47", - "vListInsertEnd": "0x00021f77", - "vPortEndScheduler": "0x00021f91", - "vPortEnterCritical": "0x00021fbd", - "vPortExitCritical": "0x00022001", - "vPortFree": "0x00022035", - "vPortSuppressTicksAndSleep": "0x000220c9", - "vPortValidateInterruptPriority": "0x000221f1", - "vQueueDelete": "0x0002224d", - "vQueueWaitForMessageRestricted": "0x00022279", - "vTaskDelay": "0x000222c1", - "vTaskInternalSetTimeOutState": "0x0002230d", - "vTaskMissedYield": "0x0002231d", - "vTaskPlaceOnEventList": "0x00022329", - "vTaskPlaceOnEventListRestricted": "0x00022361", - "vTaskPriorityDisinheritAfterTimeout": "0x000223a1", - "vTaskPrioritySet": "0x0002244d", - "vTaskResume": "0x00022515", - "vTaskStartScheduler": "0x00022599", - "vTaskStepTick": "0x00022629", - "vTaskSuspend": "0x00022659", - "vTaskSuspendAll": "0x00022715", - "vTaskSwitchContext": "0x00022725", - "xPortStartScheduler": "0x000227cd", - "xQueueAddToSet": "0x00022895", - "xQueueCreateCountingSemaphore": "0x000228b9", - "xQueueCreateCountingSemaphoreStatic": "0x000228f5", - "xQueueCreateMutex": "0x00022939", - "xQueueCreateMutexStatic": "0x0002294f", - "xQueueCreateSet": "0x00022969", - "xQueueGenericCreate": "0x00022971", - "xQueueGenericCreateStatic": "0x000229bd", - "xQueueGenericReset": "0x00022a25", - "xQueueGenericSend": "0x00022ab1", - "xQueueGenericSendFromISR": "0x00022c1d", - "xQueueGiveFromISR": "0x00022cdd", - "xQueueGiveMutexRecursive": "0x00022d81", - "xQueueIsQueueEmptyFromISR": "0x00022dc1", - "xQueueIsQueueFullFromISR": "0x00022de5", - "xQueuePeek": "0x00022e0d", - "xQueuePeekFromISR": "0x00022f35", - "xQueueReceive": "0x00022fa1", - "xQueueReceiveFromISR": "0x000230cd", - "xQueueRemoveFromSet": "0x00023161", - "xQueueSelectFromSet": "0x00023183", - "xQueueSelectFromSetFromISR": "0x00023195", - "xQueueSemaphoreTake": "0x000231a9", - "xQueueTakeMutexRecursive": "0x00023315", - "xTaskCheckForTimeOut": "0x00023359", - "xTaskCreate": "0x000233c9", - "xTaskCreateStatic": "0x00023425", - "xTaskGetCurrentTaskHandle": "0x00023495", - "xTaskGetSchedulerState": "0x000234a1", - "xTaskGetTickCount": "0x000234bd", - "xTaskGetTickCountFromISR": "0x000234c9", - "xTaskIncrementTick": "0x000234d9", - "xTaskPriorityDisinherit": "0x000235a5", - "xTaskPriorityInherit": "0x00023639", - "xTaskRemoveFromEventList": "0x000236cd", - "xTaskResumeAll": "0x0002374d", - "xTaskResumeFromISR": "0x00023815", - "xTimerCreate": "0x000238a1", - "xTimerCreateStatic": "0x000238d5", - "xTimerCreateTimerTask": "0x0002390d", - "xTimerGenericCommand": "0x00023979", - "xTimerGetExpiryTime": "0x000239e9", - "xTimerGetTimerDaemonTaskHandle": "0x00023a09" + "platform_config": "0x0001d58d", + "platform_delete_timer": "0x0001d6b1", + "platform_enable_irq": "0x0001d6b9", + "platform_get_current_task": "0x0001d6f1", + "platform_get_gen_os_driver": "0x0001d715", + "platform_get_heap_status": "0x0001d71d", + "platform_get_link_layer_interf": "0x0001d735", + "platform_get_task_handle": "0x0001d73d", + "platform_get_timer_counter": "0x0001d75d", + "platform_get_us_time": "0x0001d761", + "platform_get_version": "0x0001d765", + "platform_hrng": "0x0001d76d", + "platform_install_isr_stack": "0x0001d775", + "platform_install_task_stack": "0x0001d781", + "platform_patch_rf_init_data": "0x0001d7b9", + "platform_printf": "0x0001d7c5", + "platform_raise_assertion": "0x0001d7d9", + "platform_rand": "0x0001d7ed", + "platform_read_info": "0x0001d7f1", + "platform_read_persistent_reg": "0x0001d821", + "platform_reset": "0x0001d831", + "platform_rt_rc_auto_tune": "0x0001d855", + "platform_rt_rc_auto_tune2": "0x0001d85d", + "platform_rt_rc_tune": "0x0001d901", + "platform_set_abs_timer": "0x0001d915", + "platform_set_evt_callback": "0x0001d919", + "platform_set_evt_callback_table": "0x0001d92d", + "platform_set_irq_callback": "0x0001d939", + "platform_set_irq_callback_table": "0x0001d955", + "platform_set_rf_clk_source": "0x0001d961", + "platform_set_rf_init_data": "0x0001d96d", + "platform_set_rf_power_mapping": "0x0001d979", + "platform_set_timer": "0x0001d985", + "platform_shutdown": "0x0001d989", + "platform_switch_app": "0x0001d98d", + "platform_trace_raw": "0x0001d9b9", + "platform_write_persistent_reg": "0x0001d9d1", + "printf_hexdump": "0x0001db85", + "pvPortMalloc": "0x0001e679", + "pvTaskIncrementMutexHeldCount": "0x0001e761", + "pvTimerGetTimerID": "0x0001e779", + "pxPortInitialiseStack": "0x0001e7a5", + "reverse_128": "0x0001e94d", + "reverse_24": "0x0001e953", + "reverse_256": "0x0001e959", + "reverse_48": "0x0001e95f", + "reverse_56": "0x0001e965", + "reverse_64": "0x0001e96b", + "reverse_bd_addr": "0x0001e971", + "reverse_bytes": "0x0001e977", + "sm_add_event_handler": "0x0001eb15", + "sm_address_resolution_lookup": "0x0001ec6d", + "sm_authenticated": "0x0001efe9", + "sm_authorization_decline": "0x0001eff7", + "sm_authorization_grant": "0x0001f017", + "sm_authorization_state": "0x0001f037", + "sm_bonding_decline": "0x0001f051", + "sm_config": "0x0001f4ad", + "sm_config_conn": "0x0001f4c5", + "sm_encryption_key_size": "0x0001f67b", + "sm_just_works_confirm": "0x0001fc01", + "sm_le_device_key": "0x0001ff39", + "sm_passkey_input": "0x0001ffcf", + "sm_private_random_address_generation_get": "0x00020389", + "sm_private_random_address_generation_get_mode": "0x00020391", + "sm_private_random_address_generation_set_mode": "0x0002039d", + "sm_private_random_address_generation_set_update_period": "0x000203c5", + "sm_register_external_ltk_callback": "0x00020501", + "sm_register_oob_data_callback": "0x0002050d", + "sm_request_pairing": "0x00020519", + "sm_send_security_request": "0x00020fef", + "sm_set_accepted_stk_generation_methods": "0x00021015", + "sm_set_authentication_requirements": "0x00021021", + "sm_set_encryption_key_size_range": "0x0002102d", + "sscanf_bd_addr": "0x00021389", + "sysSetPublicDeviceAddr": "0x0002173d", + "uuid128_to_str": "0x00021d51", + "uuid_add_bluetooth_prefix": "0x00021da9", + "uuid_has_bluetooth_prefix": "0x00021dc9", + "uxListRemove": "0x00021de5", + "uxQueueMessagesWaiting": "0x00021e0d", + "uxQueueMessagesWaitingFromISR": "0x00021e35", + "uxQueueSpacesAvailable": "0x00021e51", + "uxTaskGetStackHighWaterMark": "0x00021e7d", + "uxTaskPriorityGet": "0x00021e9d", + "uxTaskPriorityGetFromISR": "0x00021eb9", + "vListInitialise": "0x00021f73", + "vListInitialiseItem": "0x00021f89", + "vListInsert": "0x00021f8f", + "vListInsertEnd": "0x00021fbf", + "vPortEndScheduler": "0x00021fd9", + "vPortEnterCritical": "0x00022005", + "vPortExitCritical": "0x00022049", + "vPortFree": "0x0002207d", + "vPortSuppressTicksAndSleep": "0x00022111", + "vPortValidateInterruptPriority": "0x00022239", + "vQueueDelete": "0x00022295", + "vQueueWaitForMessageRestricted": "0x000222c1", + "vTaskDelay": "0x00022309", + "vTaskInternalSetTimeOutState": "0x00022355", + "vTaskMissedYield": "0x00022365", + "vTaskPlaceOnEventList": "0x00022371", + "vTaskPlaceOnEventListRestricted": "0x000223a9", + "vTaskPriorityDisinheritAfterTimeout": "0x000223e9", + "vTaskPrioritySet": "0x00022495", + "vTaskResume": "0x0002255d", + "vTaskStartScheduler": "0x000225e1", + "vTaskStepTick": "0x00022671", + "vTaskSuspend": "0x000226a1", + "vTaskSuspendAll": "0x0002275d", + "vTaskSwitchContext": "0x0002276d", + "xPortStartScheduler": "0x0002281d", + "xQueueAddToSet": "0x000228e5", + "xQueueCreateCountingSemaphore": "0x00022909", + "xQueueCreateCountingSemaphoreStatic": "0x00022945", + "xQueueCreateMutex": "0x00022989", + "xQueueCreateMutexStatic": "0x0002299f", + "xQueueCreateSet": "0x000229b9", + "xQueueGenericCreate": "0x000229c1", + "xQueueGenericCreateStatic": "0x00022a0d", + "xQueueGenericReset": "0x00022a75", + "xQueueGenericSend": "0x00022b01", + "xQueueGenericSendFromISR": "0x00022c6d", + "xQueueGiveFromISR": "0x00022d2d", + "xQueueGiveMutexRecursive": "0x00022dd1", + "xQueueIsQueueEmptyFromISR": "0x00022e11", + "xQueueIsQueueFullFromISR": "0x00022e35", + "xQueuePeek": "0x00022e5d", + "xQueuePeekFromISR": "0x00022f85", + "xQueueReceive": "0x00022ff1", + "xQueueReceiveFromISR": "0x0002311d", + "xQueueRemoveFromSet": "0x000231b1", + "xQueueSelectFromSet": "0x000231d3", + "xQueueSelectFromSetFromISR": "0x000231e5", + "xQueueSemaphoreTake": "0x000231f9", + "xQueueTakeMutexRecursive": "0x00023365", + "xTaskCheckForTimeOut": "0x000233a9", + "xTaskCreate": "0x00023419", + "xTaskCreateStatic": "0x00023475", + "xTaskGetCurrentTaskHandle": "0x000234e5", + "xTaskGetSchedulerState": "0x000234f1", + "xTaskGetTickCount": "0x0002350d", + "xTaskGetTickCountFromISR": "0x00023519", + "xTaskIncrementTick": "0x00023529", + "xTaskPriorityDisinherit": "0x000235f5", + "xTaskPriorityInherit": "0x00023689", + "xTaskRemoveFromEventList": "0x0002371d", + "xTaskResumeAll": "0x0002379d", + "xTaskResumeFromISR": "0x00023865", + "xTimerCreate": "0x000238f1", + "xTimerCreateStatic": "0x00023925", + "xTimerCreateTimerTask": "0x0002395d", + "xTimerGenericCommand": "0x000239c9", + "xTimerGetExpiryTime": "0x00023a39", + "xTimerGetTimerDaemonTaskHandle": "0x00023a59" } \ No newline at end of file diff --git a/bundles/mass_conn/ING9187xx/meta.json b/bundles/mass_conn/ING9187xx/meta.json index dcc1fe5aa..4197bbb20 100644 --- a/bundles/mass_conn/ING9187xx/meta.json +++ b/bundles/mass_conn/ING9187xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 135824 + "size": 135900 }, "version": [ 1, 9, - 40 + 41 ] } \ No newline at end of file diff --git a/bundles/mass_conn/ING9187xx/platform.bin b/bundles/mass_conn/ING9187xx/platform.bin index 3ed0d92b9aab3929f4032fa615ab81e9ad104f19..00fd19c846e28ec3f784e5e94fe3f72ec2bed76f 100644 GIT binary patch delta 20291 zcmZX+3tUvy_Bg)RnHgqyξ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 delta 20243 zcmZX+2|!fU_c(sfn;B-<2M_@Pc>^LKlAxmCI)FTeT#(At%mkN@gJ?o!N@zf7Vnskt zx|&&#OWMkagoucymS!fnRAzm|6>)vI^xiDY{LUM#Pv8IFdUNhQ@2=;bd$xNYe{9oK z;s5%{uBU*c;NyA*$i`Gcf)K{wll(X@<1+u1mhWbjdRyl(O zu*qnW!;lM-M>`RWR$?F-71c*{u%NnYDRa%zFaw@(QF%PYkiiWm^%97BN&?}RUUmg> zQJy8?KAegT6%0}W7j5h>jIfdDu8x9MLiBvPYn=apmVyjIl($Kz!a$4%RL~JBjN#Y1 zni-p(f5WXR$k$$GR8$k)iEhv;4es2N{qs0t3>CiPW8E`gSHsKh)7+TDWBDKb_l6xE z$B=?X6{j{R^9F<}Zyq73Mlwj%k&;tR0)-zNw)9;H>Qc#NM~G0&`ve|zZ?G$+Uhilw zNLaxC8JGxOykAf{oNSmGNM?^l;9m5czUIMii-AhMS$6`m8`g%$0R%QQMnnSa;?EBV^AxO_Rua*V3*thAGrT%7 zGW3F^5c*lXg=uDYA=w73LtO9B3X9DOwy*FNpBWh%{Gz14cPU-T?MU@J?P}03ncCb} zc&RtZ)K^%}mqp&x1PE8!f`!g~4X+Fw4xY&tWoMS)7@CJYtl}G^*6N-g%aE<(8Ishf zL|l@c;qZMtsUi`e%gGBBD)`yap%Jf3gw4q%Y*Oo^a)JLU$2iL^;WtNzDno=G2fsgh z5M=P((OK|(LvlLa}DAcGa{t=F}Bt?(+pb8zU`K@JtSyXW3`*Y@|rUFryH7tOY4uJw9> zzOV4!9yJ?XAa)hB&VOa@;ssC4L;i4^l=XmR)ss8t_Y-FDint-(ti7M`ywzXWU^jAJ z!Yn=|E-K)*oovVrs(t7&wLR&LUBLPaSFqIKhLX5S1!x<*6UqRF^VLKB;CX)A(9y7! zzc}v>Xvw3yJpV$m6290O13R zawm)MeT(w*JdVK{g=W|KcqD`ewjsBW*G$M6Y(q}Z!}Pn4@v|{~>v4KIrhmdR+C~M3 ze8mqNu7mabwBh6Nw`TZfs(o1Qc|IjE*ryMs7~E`C(r-lGe9!Ys5`%FT>k@;V90Sf# zzrV+Zttm2HjoH%rAxzG?^0Lx`jOY0yiAx6`e%$B8J=mw5cGj4%=M1KmhO*ZnM$y6O z%3cZ-uC?(wBaBZTemr=<3J)GvU<6Csgn!Zx+LZsK@3eg+m&ZmK;dC|qJEqk_o&E6ZCCzJetnyf|7zsKAesB0$2Y_TEQ9kX`)9sBNdZ3cTN!&$ zs(MU?0xl&Bz{#=04(NflJa3C56SaXa?SaCUh+H4 zZax23@`vyxUp*?=_Z6)8_dq@O?P>Kk??b1d#B zA;Tdq-{UX5##_g9!!-Wt*a(=+yN*ln`O}8N9l81=2Vlt{VFN#LTqZ2wYsRI+>-_m~ zBSVh%GMr{)%dWb0wMM%*(?N8J7h$I{q_1$-#y>GW(0`QOr;EiVp0l*<(p4@BVY$A- zIDXdnd9a;t8=nSW^9p@JOnNUeSbM|cW{%oNaWOi%!;;?juIVc0R_2FnX9?{qB=EEK zFT;GkL!SsnUY$}0v-zDVQIN@Zq+~FWy}T_wkRO^lg6Xw6lW(N@hArqNZ0B2QmMtJc zgoUuzx(XUyxDd{t({TR6Z~VbDfBtA{2(-sESeMfu&f5#bxNEW@-Y zXywxX;b~e7WMiEnW>CJTS^7c=9ag7<#%pl79|mea&sR-S@`g$A%09va2M#)rUq6XuewCAb_#Y?r3s~b&5=A?^BG6RBO0Cc0 zBhMp&w@#YnGsPAt^zS9n)(%s{#7* zZ%%y&+8eyHTfwEr`mn2gbi=8q`U1@3yPvLsK)&Re)9`h})6t2hW(iyVcQ8j@ zkpjJ+@akSap)VgW(+nc-^IVJHPiYLPmlWEv(t1gyJy_}|RPh&{iwauVtksn*!5cRzE_uxZ0nIB$beNad~X=0zQ{$@^Lq)%(4LxYocVZ{b=i zV}ObS6`FoB#kZCc)?0X!l>EW`aJXbk};xpw$Q?_{tBKCA(WxoJ*tMd>T*PL-olGkf(jtixt-iIzq{`~K+9!I1EzWl+5A{K4{kQp(eVtZ`HLIF zaG%463GiQj*oQjznUablIxSB38Gg=()u<7AK8#Q;x3~!Te9)$mp_RSSXq1k!>+yG_ z-K}0;E4@%kcA^YK(`{1}^zb#CR>3O`ejnWjxWlVI4)t4RE9JH=0yZv`+*GrS&Rdwz zkNkKDO6i3k4~b|p=d5G}AUUsSTMHUPIAw%#v)s6{AiY%H;9kNOzWL)~VEDvOsQ)}W z7*9x^+S2l`Bp>40qb6$M2!HXD1u%xssJ+ZcHhyqj2+ZO$>tf+PzpPFNyLnpI2n+ei zp9b_h(ONFOU;UiKlGj$0O4T|X|5{rKVQ)?0U;i`&KIJ!kszd9!_0wSZfIs(XByzUn z(;yha2W^=Mp8SF>dAK?!w+st-*Q(Y*f%4%mucVjij43&}#6DFL!VxU_cew<9^Jm#`n7{kkH1~788lAGo zoiOO!W$l>hoop`UvL3uPH-QT=cnL4^O*>|KF1N(XJ1s?_^AdXa(47G&ofCH^xEio- zP6#7R;Fs>qh0}b;&NwLN9Xn&-Gd||?IOO5!pDQ3M$$myU3ZBAndu^VJ&}}8U&P5J! zt6ABTL|lYKo3bY!VS+7ZvBu;gOty6{auFnJ?IJn1!OC);LV*2|Uqo;KU+_D>(E06f zC^-*Q`0?diB_K&y2KYa}2nD9W`b8AL&wRvJg>aRx`KsFcW9ODN>KMaAaogT1KJn|9 z17_OdP2pS&C(o-uPlU632hhiYJVY+LpRmsWo3g&k< zM4}~d5`Q1^4;#i}SHpJef{s}Bm>}A}oh=_7?yUpiO^HFd;3+G<-Q!^+|JCkf@Zh_4 z=fXrjv#|yUf1xn~_VbEw=Xg%B#d4`!CZ{mCqusLf+fdlqQ1PuRz~?+|`o`}&>r5$< zC^oiB`*b4=`Vdc{nV-2Q5nA}lJ;Q+I5ADf>V&1bk%O^!5(aYN*nsh)U`=X0*o?p^D z7R{(HnxkL?f4cc;c#)6Vn}wL=d+T5(AJihk8s2ALFm&^A`-XYXc1$S!{;fxR=_wp- zSh_C;m|lthuyp|Z!MC-}Lt8jvzb^J^G}L$WFa*~KwZZ^WS~SBHkEHVyreb`?sRvSI zuJsh&=a=qJfPB7g|8!6^nD=8iV+tR2pbS}d=Yb|L@wo@b;})trI1DFy_TYImXHDNt zi{hLb za=npenGjN%hcL7m;hXZPWdljUDg{R`|Jso!po`ymBp&(;fu_`0VyDq(@=<0_KG_zIIC={#Lsd#y0e}4*|6F;!Y*wmRWdew*OTdaIKP( zl%*F-4_(i8fg7&q_R=^{kA(4YQ80d0Si4$V^PfiC9 za^dC(pjO{hMn-e)g1a@|G(TkPu6~0bo_1wr^?2mII~!k$yw}A)I2{ge@BwFr;Xayp zW{7LNSr&KRLM{L1nPeE*(0ZmAeBQLPE9y;i%g;z|#3S>bSj=bsG8%$~jlIfxgDmFfIK&tC zf8G%EM<#eiS#z4jE=}gTFmFNEu=G!~NG9{i7ouAp% zHr&3Z065O~bgjbhz|!kuaW%fWKGrAIL7Imb4B}Gn&4DCN6o>NG>qXF?U)DXu^Mq|E z;wOLs@x8pMI}IB7hux8=(1UM8p!quf#za`ezjGr4IR5mFcYHQT^9NR0{}OTvY9uS; zjXurNn>x=9iG=I_QluzYQM|}+zPSX+=zgmkN%HX4!Tx7ZfIRGCalmoiLP{tXKBW)m z&3&G#X!jB%3xDSJbGWI7+zCQDX5Lwj68+$vEQsQL?uMchH016w+0wuJ3FPqULNQM4 zpb&*|i*6wf1~dfp_yEo_=3Xc~$!FZlLrH47=LhNhk$aW+JMI1!lz!&>OQEnK@4-n1 z(i@V+iQqpQqXcXL%ee{%Fh-zl9YPc&kl!dxMhV>|Ed+_rGKXSYOU#quyM`9CNde*f zlHQZBv|+407|<)5=~x2?_zR8{__js|P4KYh9E8HX8W9p8ipF3O2&0n$)(i=o&cvp8VUJy@7vgw@l;Eh7YAc)7Q2v7+5G>?IZfS(HmS_Xv+*~p!21&-2=6pO`J@96!3}bRcVm3C$Nu_y9&y@^4?_njh$RkrtYmRwD@C~+3A(jSzN0>`PV z3KHVj$6bUtXkDwqfdXoCuJT~+3y74e)| z6ltgnq{A6H&jqGKIBju3ihWFPyTEuKuD36{qku$&qc}C-yb9@9H6#S+rM)YPRzxF$ z?fu`&$#jhx2lf&DK@Fi9$9wN~saPVMu&GF3y8@#vBBSX6U^z(?9V9}Qt4Y{`tF&JF z4{=2Q)IIEcG zaO>>cMZ&G(3wBlKT8Se0WIWiZmm9p{v#d9;Q`YNp6A9Qv7OiuGU~te@H<%u<#;(rv zWzi|omKVqb_jMBg290&cLAlcf?vUwYx4ArCSGJkOmM_sZcciwR26(_MT+)|4U=@s{ zJsvP50xZ|MF6{ygXj{dI-p(%htj8v%Sn^j~+NHwjTg3x3%@a~wt=32ECDIB{hzN7F zdv?AQqT~9pRgfZcp_yj-Knbj)$9!NU6jAVnZk1%dD^8$y zeIX#|hIxRI48Gq%a9uRmMn9`;xZD*-&@ey9fOxvl4;H{$dcqIJ!hflI9~c{yX_g~C zTD@90+`It=vMkedQ``j;&FzCCU@a|?!F0O04@_6-W&+tp&3#}S+@hcOLo9SsRP@Ur zhoNT_Jwa?11gAQIXCX&IEzqJEI*-q)@$)Jm_U-x2d@b3a%Ju~Ziflab0xgCPz+p__wY4lJd; z!EhfQHuZ!+BESwB)gQt_Kke;f$}zTHw^tI@+7;Jr&#J<>X&FZ%?}%^HdHvxt&^Nh< zA(O#In$E%yc!w@yvF{h@CKkobJbFaVar7pO(;P(ubeIdJV|Dn>moC&{1%Xl>i10eC z49AXV(j(!xM(Gr#j6c#kAOcH9(v%2%=SG)DIEh&!BkO2e1a7<+XjcT}0Z+3BKu|=L zh2;ubqcMi3ZFGnyElO^x&fRcZT;oW&Hx*d!wpdCl2H?7B=MLP_O55UG?+lLtbWPo>!|W;wLY9)^SYL8d!mHO(7{BQ2p7 z10h{`S5!#!mw_-J`qR--kiw{&>FZIj3%1aNXymL+2WyNrImDaN;cg{3#A3U=w0FcB zni~yA;8_|K1LNJF*azW^PR%|LV`yOvE>t;f!^j7$q`$_%Ovq?T7=*GCPSNGDFdN>a zXJc{u?xYEWAuTRWa^Z58)JvfKQSIN}T?B%HDO(jTn^%&WyIw>vpR=TFl?P%1Xx(5W zr-rr-27jfSU~|yl1_KK{)I1nF_?eDJPtSE`J&=5SGU&lLm>x9C@dn2l4;Gc851?QY zj0f(kwd+>730XAZ36$#@bk!3`wD2Y>1J7SE45@9@FFCN%O~`9%9RerOwxtybPz>vu zT!+exc9D)pD=6TS!+m4DwdWpKeThCKx)j*k7zDZ4v}72HbLdOI84fXhtya~9&bN&w z60Umq!7?8%kaZJ!tn|)s2xP8Un>2|qL*~QW5uk%f^vw}450|fN1nh(gT0IgQda~*C zNF)}{c}Oxc;zNp2<2lGXjmb#K52)WL$b|89_9*15*>ue)9G{l9j6yLxoc=lrr}qbq z7>)Hmpe3V`hbn37XsCb&I&lmHsm&Tqux z(bcjlL2XW#^=q_ed#&!4IGdgx2bbYp+B6=9!Ata}47N6f=|RolR*p)=j!`%wG+d#}({cB-HC;@HB{E&IGLW64>B|{#8W}FbfEuon78!8iqG)C& zq(K?2$b?NOHe;SdQL>O$KZ%0NjjGY_XA~Ct+(g&`UsJ^-d7b& zOPW%qKnK7FO@341BEZY^VKz`4SjAJ1cJx!IRXS<#)9?@$H2FLOo`CCz$N4%`lPS|s zNc~KUr@?ZVMek38iRyl6=BWg4n*J=}%4qAeD0sZ7`B_whZ_(w`k>301q3Mw6KMXaD zN{BWKMag)MrC^LJG{SVMn}M=AkQU8=cc83EH4{cNs+sG7=xF*ZsDWB~eilmjjkN4} z1ZQZ}Y~+=SrpDRGT&{nb@FvDCc~@P10b4mn$IfvI{+c;(3*SXOk%h z=Z7NsZZ2415WP7UHpBU*b@Sk$0xV5G(YG4?1MOAkFx6OMb8^XNAUuzE6v? zM^A2vBk2+pl1K+w1Yx+Ox^CD=3{Y_8jBmd)EHZKMI0&dI{Agl4j1!@Fx}?`wH?1T&GKyp^AN%M!gE7y+5$*6PHm`t~;Dx<8&9a^DVQ80hJ~27p$Wqm`0y#&MSKNA-kiW@HEhWHa5xdy_5!ZG|eKV)C( z+4Ceu)vl4CDvwjtUKjh)rE4Id#0}+)tTwb5(dyhA88_l(7CX>1zVt0Y5AwQLZ%N4{ ztfn9Z2~^;-^u7k*-WHz&m`*Y31R*;mM=Ogk^+CY3QUt9h*x^Lc7H8aF3SeFha0I9+oa(^VZzgl&f-PU@>3R zGBb2JIbCACUCz6qKANGc#rzJtLyUD~Js>MmFqY9RMoK9df$bJ`QmKwX7%Jr$_oOoI zNt{Z!ZL2lbV>%wwT{bq47iVx_PwJ^_nkt6G#H!+qDDJKK2izez{?lf1j%fT;r zw8Ql#=TcCyCl#e9OF9Xwzc+ym+Ob*Q_) zvFV?NKcdn~Xg>#Q^8*sAM#SiE=>ySB()ctJ;3Ydi@cKlO9 ze{Za>0?SOLqu++mph|}tZN= zvHnEU-hnQk?RFPDM$sgZ@NQgv|~v(<_fs z9^X0EnS?tK{LzY~Q;x46PaqIPh#F3eeZ$7Rr(_n|AG*P41yNmi!~ zPSf8T>8qCyhhIZih2JaT%84SscAiK#w>bvJ!F;0C&0Ls zjVTX^59G*BstbEtoUmU>)Ou|r2w-mSCcZM$%BQRD9D|_~Wwg2jO-CflzI`&pMQ@Xj z+?CuN@wgqh&bP}_6{qAn=mYH6w#u$tNS6LyrGM6g|Gp9(L~gbh;4vY0Q~Ymqhf8}zC!AXrLONgRzb*CFpV9dGq}2sO9yi6~R?jD&O5Kk#!4yb3n}cQPpq)TE zllqmVlHUe%+jqsIRpBNnh2Qb4z}n$FNkV6&baj8cq~&Hr5za7aZaGTf-R1&N>XpJT zdkPv;Cb@C+{Tdk4_alj2vEaT^JF8RX?;)95PAPoeOs~|yOQ__ge*mGggZ9g>+IQU* zZ?(#)>RnooyW;aL3+^96hey7chX9-2){h~JQC{Yt+%)1dAD_FT)_IY$pwW|a&-8ef zMT(isktSIS$=j)kc6$bIJ^u44cY*s z6?erKX~0IbB>mgyl#P(YgtXG~jW7@mu5UJ?(@{r{ZG^DA%jkNzW@;K;jmK1~cA_KI zd8kd^Gs{;sppX+nH-sI4@+Xgdb@3hY;o7BPlvb#B=>s!U+22hiD*er!5~s!W^?*YE3u` zEXO8t7#_#V7*GXW5erlU%2SV zdUdBtxQMw&^*~3eqOsNpI&l+PEd6QmCI~9&68lN>L%vLv&dV#KtVL0`M_${=_@Ogc z?B5Na;K}9n(RoT?rsXy==q<6$PS6GMLS4Vx48q$Ec@LrQCAwN~h_mtL>MhY`_nw5k zju^`2aXS{NgnMR)mOB2v0t`AOs}L-ByYgD980L`CH}GaK=v0WlYri5ZVphI=V8^4D z!06ypH^py}%L6;Ei=%p##IJpY?wYvAy1gu(yDt7or+tLXkVA_`szed3kE2`S7FjqsQhY8Zp?h!kv? zitr%q+6;-RpKyD6Q{Bff+W(~FHHkIuX!gX~rILrU_DWj#F$B9e^|EMAB;giCL^FDz*#;=+F z{0Ynmx#19uM~u;-3gN81)~N4ao0EgTIXMc!;h?Ft@I-7O9t2;+d$-C{`oEsf_NaA; zZZ?PbibEj`vNF+dS}BZ@RKjakg^)xy)xwYfUp#@)HZmV&n!Tm3c;P`)xqT80xKEp)9w%_*%1wgB~n^*g!qTr6`k_+ht;xw9S%F=jkuz8@>YoODKr~#_l=Wpw{6gxRKglswiNt}8k0h(p$Xf;Z+x#!A)K?VH&2+V?9r-SJJ~#gNj7z- zI}5F}FX_Kz7m2(7$7*Q;au8l55U%W#H4nz31}X(3eRDg8O7BblrWM9DsmwW*u#mQH zN1FUZ9or$%KUVT;RtUbf0=2R|>p@we0>}0l&HN0;x|ic!^d#GrJO#R})t_N#A)6lg z41KM;G!d`1<23VjK#cciy|vA%PIbAFOU7j@p>;c8Uf5O3;0Y7bZ=P?FJhaMsRjqvV zbxmB`T!zII!Z;eS6KaMg?$IyPi>9?~9fSvBI&x23wNIId3hj~c}s#_b*p1*uZffB#xF2zkxk8C zKuOFEn|r4bHQy~;*=u#qEABBI3B4-ru-2Mn{BivF;SO5W@6ft0G5)iWHhu|XU4Oyt z^9;Ey{z9!^VzhAzt@#Q)`9<{fS7@DL%`Xr*!AK(>2= zg*7P+&&1zG4ZH3evnT51Nuv`5xn70c)l z69#Y6=qeM8XU^TC`%RGQ9@wf4*KtOyxQn{)f)t%5Y*N z=&Wkc@w-Y>8k`aBrUsmGD}9L9NZp^c&MnS;TaBGup?SNZJ17x7eEGEMnpo)=^!TcY z7b=8un%@YaBj!pPC(-9i8O8{15C#TFozb`e=dC*yX~X&WJnW-^y6%B|zlr8SD|Z%8!_w!lsTUBQ zrEB-VavvA7Ze==VYs|XhF$k-vcQcZ751lQ8rSywt)CphEADS`p5l1KQMbUAY=I=$} zH;z{Bg`$+>s8*Cc&%@zv?Nm2|AxHK`tF10Njp3G9jkkg3gBr22me-(x>C!3_p|-`7 zWd8-^m;(qNakOAe>t%Yd1vW=Ki&Rz{VisKyuQ;L?txkh>`HK+1M^?<}QjvFQ**>%* z4p7rR99bAWu@6$hjyjYNtBN$8svWn){SLQyZFnZm{ROLJk}=3?)vdT^ z?$d3p5D`&lH^^?CT6OlPa4lZExuIL^bAMj zHX6Af4?AYqZxqL@jKncqqYL&!SjaL<^vZ&Q>&5j2(XT5o;!0SdK(XP#uA8FLN^AE+ zKggvm`_b>5u2hghNbu<{jEdzV=0 z^rO4PeA;{nP3MIc+1uz6i|C(+Al>^K#zM+=ZIiy&hSkc)oe75_LU~OLls=nr7{K$K zWnOW3aovhA?C?Ky!4cG)uhC6MAi{mSMIMMh;)l~?M<5#yyn?^Sa9R{y_B~7vx@W0f zL?V8CG7r5MzfQaOp+s~?4cEkH==twaFRw;7d7r@$kL-$G(0**?ed_rGBnJIqN8@ux zw`jMMp6AsoiXmFvF6V!tvwncc5`$w!bJXGwyGSib$Qc@` zvzRpzR#&7+8{R&l6IgTCdnlW3iAyYMrxZ=V?~;;Ntj9hREJ-Wsipx`7I@V;mgilFG z3cV~kddp3<#T!gz2G}_z-Y%Z9Ry_$j)je+Ha{jd`ctTo_jkATuF8Pj3x!JXIxwG*M z%Q7b%jUVLv(D9NpooLaTlsJH{F2J%cndN!R#*nF0ZE((U6`gz(xoEz`n%Hs|-A!>J ztvCwV-hJ#O+SFmWh6Ki7Y6rc26fJ~k8g>k~OEDdN40rH3I`bIJOZiN?RIFPWk5frB zKf%6%Up_d*Ry6L2FvFI_zSgBHPr~rV2D>6W0_Bxm9AaN~P2Rp8cYrKY;$3OldkhV) z$h+XYv^$@s{0L)JDz$jM4VeF~{Kr z*he=VM{)8wZ99${Z#}(v9Iao}xIe*=Kr8O+)dd)wMPaVBxo}E6@4hO!+vrn2VQ@Hu zw*G_>tr%+l$!RbLoxniIw{-LgL~f8lC|!R7Mlc~(`qK$W_3&~0*)^^9V%}xZ!$JG~ z44=v^{0wQXa2v<~`KuS|dJ@O5lO~?Tqg^v?Jqf+gLR;D)PUX{^)cPNKyB$nuB7cH6 z!Tp?Rk3rg z?C|vZFnGEG?N`O?^ztI_D{(!9TG#)gpr^nC0!k~A{@cvxkj-EcQzey-F2jX$n1BkjHt)LUn zV&Tb@KMM(?OB^Ya*nGXf5_aAOsV_hoyJxYfTTum!#jNQtedkSXxZ(kC@uI zN*UvOD%nIHrW6dPjxP4c>3!vNP-ON`74ycm$dR%nCy2| zQlX=Xp+F^cIK=N9mr-2a{S}#cAa(x@ZIdr(_HWQrGG-5&d}|-I=jx0K$nDmr$*%ro zF+y^P_nk+Wm&GV_qx)klxqM-NL#pw+`wCxXkfkH_#pfgD-Ea3z{SUL`X-xG?Wfm|? z!Uch0hdNUa3g$8o$xDyZsm#ODr8fn}I^Sps1W zNbj=8mabDWXR-t?r3^3O<9a-vv{hV59p{jBzoucogYJm~7?+UMTv(&#NhPQLvEsU# zTo&J#6zf%!ph_7r->CT96-}$!jIh?9M$s34hyJjfR{V}8({IjfUwYto(BQ%JF&TGd z6utI4Ou)S#dme%q+bGJNhj8U(6moR&d0w z)LPLNAH#&Tl@oXkN(m_l=>K{=^tfYA+4>FAVJeL~m`rwzY8Cf@Sgt zn>c2o?9kuaguav&@A1%_|H7W2ExkSyiKqSs#LqP1UBXiv-_}f+k>e13Xu<__$doPe z=fv6v`jUt3+E$t8l?qoq;CHHO3~r{=!V6HuJhzYDx&Wz6(mopBiT+`PjXu{2*AKfus;fgXgM7Fl?#M`kfD$Ss&N97ia#m4Vfj<*G9e<`Nyu z%@R6U$Suna)1~Apbdc+0J=Wn+Q}2uDEsUf1T}G7pXFM=;h|}oii|`2?qGK;X7^Ab& z7cN0RrC*D-l?oRyT3mGrub$ZHmP?QuQ-%>TnH)ato(7UH4{=PkI}Y)ng$SV*f~vwQ zT5TWOP+{o)F= z1$<}@njCFhof^|l21lU}KcQE?K;}=&uEN@Z368##N%Zx(VeKG%f&m`ac6~@thq^xN z0h8N$JznpPLrHF?Ph5j=--~h+`5(JLnIDYr!Ydho%dsgvvtEw}1QIJU<0}&c~S<|?jw)ZbMurBg< zD{CEiJ1iW%HHUb}nk9h7AtqaJ3cU`|&w^nOywm|57~H5@Z%%)lPOox^QTTzh9F{q0 zjh}=OWvl4GR#A!m5t{4d-pF z)8BWIB@2AF;hS&L61h76xwrqTRQU zeNRx;ZAgyX-TR2b^HajG*jK%*5pMxHMMz#sFk-f1#TV(k+h~|!&;$W9zn6C2hH=b< zUdrCVn><5%>4ZD*L`J{f{|!ceZ*lHetgY=O!cgnqt5cYpggBSpBzbi-f3HrxRGYuY zlqrWej26*Ko9{qq>^=#PZDqQ@sobD3g_>MC9pWx2%1Qs>7Kn6+U!ZaxhH=0(6z)Rs zw2jguLZ_fH%yMq+RuN-)!f@0QR&kq|MDIq&=y;b^{KQ=DTxyxpet4P6iZKcNrX8aj zTmD7q&1lwI@d{$$U5Jb*w~c6K7ss2j9^B0J!3mVwkYvsJdo!K8qzK25Mw{=VM$V__ z?m}GpRNKEu|W7MoWCN%E_j#*~y3-V|&b`(=SMWl-k8>j&1ozOxZ{Xi#U`{ z6hJq)$MHA&sgMl)kqmaR%khW|d1e@B7dvqu8Lf74uY-Pm5BiP%*`abW+^aa}M|9YR z5;o7tQ}Xdk!(%#}k*b_@P$3-*PM)f!w*};jH>qn6D$^F4&;x!dlNE1q(aatc!k^Oo z9+>GG;Xqe>zFkbACwd^IWRmp}|I}n>;gr&mmJ7{)ulI-9Pa$D_q9INK6!Ix3NZzc-;>ykq}2GfXjgI0enc>|wQ* z5YYoC|6ltHPR_`YWRm=fC-HMEc09Y@c@Kh1j@Tb@#uA)8%lRT_d}Jm<4z9gL?7&YM zzHDFCU>B?GIg4gAu=)6hJbJt#y3-;aa&($lV^XtSd;hakC9rrMz7}k;{6}d^Fs>+~n5pP0?wwb)|*YK7fJhe$L_x=!pk-LR?KlAHsOQ zZRVW(y8PUExEzc0A?#d>xR)+{2xFtdY&#YOnp7Adw~Ilx>v)wWJg*G3n=Y5!ECtQY zG7=Mtf3bp|eh8x@Cz)&IUGdj{3j?vgbj;xb&!4;a;-c!*h<0rYi$(vS!~Q}+@;NR1 z3%&RC^w3{uxc`Tm5e(ZW$&q+94u7WAe{ys_49qblbAAT9I1WDti!mNsRGu1e4%j=W zuZ1$XwRD;*La=Ip&4No^hIi0auSs@s5N#46O6OvY#v%&q^+n-%8Vl+9d(^IvM}3(( zM6?JOQhy0OT_w$sATG>;K?u8e$;PsG@B6GNz3)^0HxtT4uA;mIy3kFQi}-co(7bZJ zHZ49EuszpIxLHbc*xzfk1Dgx}&aNbGxY6V&J^n$2XNGa|w=xE7BZG#TA=kJA2eWOUtdwBtWtfh+^N`M$6!#g8KMH-aH#P!_;|G6O3{9M zX30zJ)344Wn`yHd;+Px5mVn0N;@pu!3bbL1Fh>r^iKO5TzMFTMQ8)Qh|UWC>kk zf$?M4{Eqj5@bN#7(KLiJ@ws~rNF>6C2>gvAIqAPhq&|6^?U_dl{3TCHIEG~MsTn`Hx zM7Rs{sy>hKDwdFMF|S4_|MOyAB2tg-uE%|L%0X?eGnc%=#NltzwcuhfbbCJ z16fi++}iYlLGT!*T30gxp2MctqSlsDE5A1)fV`Y>p%OVFL3e#>ZfZ}o5 zomHy?@PiT=?}2_S9;!Lho@`JMt~EBXOvMaww(5&THBOWXTgCp4shoqmtztG|Zk>xW z_mvAX2Xmfk=a6#MOn`IXY3!IW0a!VIBSF%5c@32Nq1EcgBQ~%aO_&pPP|b|alt+`r zKJ}FQ<55m!)zf5-YuG@@92|Z0<53o~)0}v@JlOj84|D*!)#(y<&zk) zgI;xG#F8U@fXH9ZrMLhYittD(kYNaO5hfx`p8#Y8!h;A$B0M%3KT<`QFaFqfP#07*rJ>ytpz5c*?* z2?&p1J{@5UHozfVmWJ0b5k}%b3*VGOo25n&$UC&}+|Ad?Y>(pC>9 zK;ya+NbQphp@mu|q+}1KMj=5|etrD=#f&E2NT}{7fVd-^9gj*5&=dpsH#rof5%Uufs<7Qj2s05*MwpJ}ry$&k?@^SJW_GAN zLxyAylYbeq8E3Euc`_bf8&Mck(HbviwC>?PxtNmFA(ZP?;N?%b0vAq}W=hitZ{~F<(cw*Bx%4!Ia#v6-w}ry)JsD5Pi3*w2_&3-v zFAIdmN_o}s&fJ^wsuPmE7LYp#DOxSBKK{M7b@J*H(z8ZheL`}voFBpyW%BCd7JFA- zeL`y9mRBF8^z3)!DG(Ba1>{kx5V|5v#ExVMaO@3v;}LSORAvuCjv!PcT!l~;FBLdI z`9?@ymCT-mL}Gb)@4tyq-qR|4|AdUk_GBXc-wCUnGo~glCdemes?1IQ`?rE#^kIs9 z2IHTN!+&f&_WFT=An}*@GJ(btKIh!CKIb{l^PK0L z%a&7qu2X)iGKMz&LCpU$v8F4;)@3nv5qKL9wLFZgX(9g=R^#epL|Q7IOgx2nit&`K zUJ)6!1OYVzs!e1S0=r-fYGks*$;>Qo)at`Vny|WMHa(~rP368mt`dQDnqKoCznK&t z>3%g=0MY+&Lt*>dUB+KpgihT!-GZz&@1)pCzv|Qp>9d&*h^?1Y+8HF|Hx^y90EP3Oi^>aLa4J@{!DZ&&bKP`3Z8W&}?Yvkvg!Ls5F zk|)|p^eSt-A#z8XMhur1O0&8~MRxLL-1$9MYub{fKk0AIm^HjUT+Z>NTf^miX;asm zy5qY#$ko`S<>-ywFXu@WK9Vy~K{iD5<(qvT2U<|4zOHe#Y>#Z_O%V%t==F;BNd$vdPQ z-Ho(C(kDeynUt86_IQ-ZhXtARjS-L2NsU%L^TT@?=MlJjxy-FYt!RUJvW8X>7P^$Ow_UNXL?*$R*uC zLq(GB`_T!KaLWZIXk~!?$f!$ zM)r$K=`oM7#Zup1{e>r2Ixmmu5) zb*t$M5nlW#T#oP*^yK8sAG{&1+HwOF&V@vSk&edFnfA9n+TjH7Kpg z_qP<<)+7r>%a>KE@1?Rnvy+~A)T82h^ax?}#`Lh%nEErQ;s4^p>l>xQeqnJr_D&dW z^FOseQ9l#qwC2i}DN)lT7%S&=lzT{d=_R9{c|-;KF2)Y1`9X!d2*0Ja+1j%|cm1m7 zX$@c5_5MHM=3Tx137^|F1mTCXb86QslCJN3W2gV=>D#+r`JedfyKGW*-&nzKr1Wjy zL76Hc?x6~1B~btoD*q-S(zSy^Er)Cs%wRcSTWnBQA4rRIHQzzosz;=zlb1F3(L zCIW-lB`xSTf~usZeuHU?6xBa6L@oC)halJNXKa;}-+w$UlQ!Y^U5TCuf9w=`@i##Q zIcxtPi2KzBn%Fyni5W4y^1o~lN=!Ri%6ekD&~CK!#S@csYP~KgY`~kskkQgd1KtyI zMoUjV*)b#tgZ{g{*nJ?YRPyBPzP1#4 zdv+REPVXd|!eyHjo;?|IW`1@yHB0-mQ)#nwJ3Bn&ru*$H#+8#+&gk@s$auIcNf9~E z(+O!sP8!8XhjOaPDNW6drxs~NZXO+yPUjZTdMVD-P3@5>ie8dtn^I|lRBh@>+0toK zHW{Uey!dv}9wu+Mt76drDeh-#FKb=W$h-vMmQyM1iGzY@tCTdTn^5VH zh81*_UKmsryv$R*@<8WhSs~{{Q8g_|Wfn^a8^A z)X+R>;K(+zSWj)Ty5(Yl6Ae(NEMK7rHd=n z?zNM%rOao-x~1>Vy3>oQY$FWNuVs~G3ylZM+Q~^s9p0L{FlJHt!KiT~+sUy~qn0rewm!X|DKC_&m&Tn_$Bn>3%+N!CeY!)Lm+6*?<* zeZ92Grma|7gxSsvl}}2>$>DuQxpftbOB=41W`xQIAvd5xSZQsPshz2fNf#@?Akvvb zu>!W76gZ=d zWNE>S0w48F;8p3wjF(%3umql(IS8dbn3W13NXVu|1^)P&5f*U-+IA6~vJ&}hlJU^JbP{9o-WwDC$g zuO`r{npv;*(W1{apS%{J#q?QU5BH;)HAmm}C90L0Ru(`87*}l$47C|zGEKo|o!mw` zxvC_-ze`<1it_nhgS=^PhjfGdY=dB?6$e)MbyVs2aRn0%@+oQZ>YcW%%QDOnnU))q-UNwpq#tuc{J@~)XnZ%A|3Celi&dhKnYtwUP#@8fi;W->oY z5VuL|`cl3$ZJjY#?`)n_H9eu88BxtL z3SYC)6q*t&Pw{FIYLC!FZ-U7nUy+>eMZnAsTR)k4)|9UwC_rP>e-KSKq_ZESLPQ0A zXbf!f>Y&#RVzB(9)aS$1X#VJjvAP)^AF$-@5Bqc;Z%=@!yVIS4-|g;z9qK$}$Q5iW zM4jJrl4-*lt)Gmc{kGv140n9hU4k$#_$Vs0&{1L9G@ZnxD0ahF6pX?0$I`-&l4*&w z9luAU3m=8)=eo6}xsX+*8Nu=;i8jus&eDR7JZzzpEXQnmL&dVsZ6Qp5+n4#tr=`S? zr_vN@<;Rzz(_I=Pm6}ktmrWC0Sy8;~U`6#Zs(e@z7X7Af^pn)E$w>F43!ALaM5{ju zr(kL8Cp}>Zo&O{Xv~+%ARE?s|k@TL_cXJ%Ak|u7Bpq^6s=D~DcI=s1rzLt`=^b9}X z@I_nN`~P_%x58-2EGo8C76r@kQu&r*DysQqOCUjaw`?_1rsThEIjWSl<5ZY8MWqM*>20J_&eWJ$^B^|eJ2%sHY%{#?q}5A4rChn8EN}xV}obeDoh3UUY?X{ z>V#4sN#UQ5)qiSFQI}7q26GT6E%-c~;-s~or}{VA{ES7NG?@6GJ};)9rPMEyXpA)R zi$wZVT8?n{nz}DER4~(h%Jv<#kuC135?}eIjTxJ#dzE+X+S}>OSMCc;0jAlDX8Kuu zo7zkHG(!Rcs zP1E)j(=F-fzP0qRG;x0{R_vnv6ZLm&-Aq}ge3Ql;D3?jM_D9js8vOx(BCyfH?V-=v z#@gbTW?iFgud$ywqf;Asf^_y^8YN4?U-yLBm;Lov3YR|kx*+7dizUo$qy*MPapJ#x zjCtY)c;VN)<@Rbq$!7au&9GNUIyY%G|vD+Uz-2k4xSosVbL$HyS>K<=^e0p;GSAvoQIhzptd_QuX)y>9$n-!$A5$ zs{Wy;kTp*F&krN%NvYe95%htS`{Q;xE8YKbRPZtf8Zrcl-<75>BRN$Xdn_{PE=C;M zNTRxAgRo?M&3YMDXRDCPsYry_D1q2enN<%vzWP`sg-Q*_y3uUu+ObIgTV5?#IY=HV z>5r?ndgk#&|Gh{{Kw3xX`Qv@s_O`Eb-j~I)lx0N~BBmemWAE{lz_LfeI|zoTa=d^7 zq`aR-#Ku5m2g&6S*$r21*+KFP4ZuaEwLUPP^d^m{lS8D2pOUdSZvHd_w&>W#xX>=U zl3FE?0Xe?D8`vdC4wP0mej43Yj_$P-k&`M5 zxlbmAylZC(5sg0J{!EkJ90c9k|5QBnkS3oRjCHpCRBG^9PoTN4DWlUVuwamULb`P- zjSfn2rzg<2HH%JH6LvdsKPSPtGUDej3g7N}%#>vDx0DA|4ZEv29g{%xYHz07Q*TXfiaBdWJmqLGekw!_&e~G6rCF?KIg0Dk5@yisU?VfkGw3CMX zYM_HP6Mju5x+JYQ-^>~j6e7=+`u;XT6XL4p1@%x9vMb0G%Xy=fPELIbY9knA7eQU$X? zPLNJs=u3Gu`sVo*GQlp++hLuw?368l1?AsSMoH@~PQU_EE^ftQs{Xx2@INTMaj73> zwuswg=r4G{e%V*U^^~RM(LzYdu!wjB*p`!e2U)H#q=`Ci` zZ}%3}D=mKc%cFzktu_0v9wk9PPMJku{Xz4MNRF^ z0s(SbC-=nrzVg7pAcr?bYs@m=R+zL%9)P|3K{-^v*?9mSaHvQH|wo!F6KkF)79VvPA`sKn{>3KRdcZ~5Ewob=A^ZFIe6z#Wb1yv@A3 z00M9S-2t>ha^D>g@{*I)_bPqNlyzq!rJEio&q;&tmD4BE;d{yY&E6hJ&ml9?Qzg2e zP1mH{`*E;9X55dZZ={v?2h)erFZc7XAB=r~&5C5VW zSxm+QO{PYCpm^O|e@kag-r(+y1C#7ZdNdi0F9IH90fN6f>-yDcH0v zOVij!9wR+(A5Z8jg8W2Hh*sGu7vJ?D8_)zzMjkgn^zv#G4spMDbX zrtX|TgD5Q6#=udc$sc}b*vt*7Ov85YzFHbe$N5q%O`~o6mX@MuJ=g1y_(I)y9a%N> z8rP#DGS;2SQ55%YL$To@-sXB$3RIL+ zg03+rhK!=grF_A&+tApsv!3tvjIniXeW`5>f?9PcE4j4|ZSaq`J=U7j%Ety%BJJUe zf+;Py3GQ%p(Y0%R_XIx@Oz{-JZv|7IsJ(8#=HY0Gy|Ke8z!mdmId#)Ec0^96@-5Fc zU=-i-X$A~5l5aIoYSJX{!zTXpsM#yaDbWWV^lL3J(hI53;D?QWA{=);G z#rBEKrP{{FS_w6QQ+tZ+cG$sURiT`YO4obV*q&qFgfmSnwg(i7ns&+4)Z*J(pdZg` zPyIu#I8y4XT4$p}Yw~}%)E*PvksodkV!p|5wx_S{&^=#($Dj1n^`Mw+mvT`ODB4h+Vkh5DAD+{GpbqBe08T& zDRp#cez(Wnmf_`9R^k5Va}v>jLpjD9qOjUN!AK%@I^ zy;)WsgMt5-Vt4ZoJJVN`%ST01e=_pb(X^0Sc!)@S=pxS-=~~*;&cBq8Tn4k&;@|vP z7O6&5GZSyc_*UOi%+4+r*8Of1!({oP)_K^ImuCE>tl`s)lt*v#?M9kPmw8wW4WK9Z z2tdSUOs~3Q@RjfFNr609MWJz6kletx#-Q()`4JUr`Q;cIt*f3!ERJW!(k2?jTVkmj zJ;_76(2F#HFYkhBtK}EF(00Kvj=vK}@5J@?sx>oN2j{woy1yY+9S<5pqR~=xm*I>| zRxZ@#ccpBB6uu&X;^;44qe2run?PxS7O%!!WqTp_FJ%vpNQC5Dz$+6W@{0IRiIhaQ zxjT_2(m_7qF}h26b%ot1jRc2>FY8X7qwaayS&J+US3N74=xj;4<|$ZZ>SU@kvACPc zul!JV+Dz}%%}4?-(ha`paZ0B1{Pg2!`~Y`84zX0rq);Qjm4cQ(<#DN)HqMJv!RN2>xv9uGmsi6NOwaJ2Q$fe2{Jxqvhe!9o zdVH4W^`H{a*xG|4Vt;pvrqYIlS0VFjy~_E=vaO}jcVvVU)`I+Bi7qQOM=y_+^~If zO-o*7zDJ$cn@S5m*qaX1B)+r{4GcWDk75L)uXtBE&71mQme%m-bPC5J?vqYqF+Ho( zAy26b|G6(spwm39A6EEQzPcY}C-rsun2KiYu#w?=->}AOyBlDh)}x0 z*_0UO>(%8nzhSYm7~TDUzZhcbAO^^8J~SIm$#v7RK^t1f59W}OKIE5jXfo~KdAYO| z%zir;)%2_DX#%A%?JM)ZfqA?(4@{3$Yz7&x^5@NzPpf%@84R_ZUpAw6lXzr4mr#=HvO$4^=2QG!pSCIKcv^L6ESuefL& z@HakrB#nS!P&blF1gEDiW)#gN%Hb=Y2H)@EHBZw?tih$Dp&{q;`q8k$g6;f`F_a}l zx%lxh^d3||$ykV;jl5|rq}-o8ZyXiUK)!Aqrsq1(9uF=*#No@#qgZ}+Jf>wY@B0i! zx0ufcB$eZGL3VM7cwKqH`=w38GGw9{#AbO5?&TD>L&)NNsNZEJmNz{^+o`y&aso9G z&8r(RkrD+;E52FS)lwX>ke9|zo4U!i5WS~KovQh&wx%?#|O*= z^x&6fg2issmCXWA`ky~YZ0pzRQmpK;Ttw$7v@U8fc!gf(1xsK|cjmsYQ~%%=TS|QloWj1% zKKVX!GcSCd!qp0=zfO;XAJ)B&A{+S+uTzqm>Ufqb4E#~OPQe%r^=JXa7=*o^0 ztL3BKf@1rYFL?`^V>_>T3;d$x!7I?uS-fNgG~r3Ub_LeYc3!^%41cLE;%&%9G`w~t z&DUi?&G+SDtFS)4=KEKHuioc@t7!q*`0~}*Iec5^T#dy@pYW+`VA;K2*RqCI3slX^ zIYs*Hg5d2imcPd-y$y2=ADQ1tbKQqsQyg~Q%&9Zx!OJOpVUDAt>R4aOSlsifqz=L{ zxVEZANq=O^7~sjX?T$<8{k+KFcCVfD6~hj(E=%S(8k`qvQRnhzNvibxvISH?Ia5F z09%hC9gJczi@Ku7?t*(2MS|SZ#_m^46-$=f^;@PZ8iQPq*?di7j73FPl;7NHJjUjO zcopLRaeI|+kO*vECfqMA$_Q^JTu3cSfw#ga00(=EEW5IV#&nZTUgxQ@MC?E$1rf<3 zmN3f}Y*;tluR!15nKV;&91v`pm|n5(=}x^Ke`Tj*Ms>}_`>yAdeOXkJtY1} z-m)GV|C~F*%x)}ZIhG)t!>Kkbk7x$CAAz8x1 z_IOU&x@!!`1Rq9ix>0AoqU_{JAHZ1K$OnHw5n=z{!&vzRYAs0l8j;D3^=Z8P11b|7 zF8=2SbS31J+XqKUe(5acDrOTi$}fG0o73EF0$Wj`;N|?7oCiY!S46-GUo+}y=08O9`y{vW|EInU!hf?%lQ zWgpQ-ir`@zX%Ut2bsItRcDzmn9Y4JhK7=#&Q`Z>z6^R&4F}%Wl%~zDJJo{sc3k-FV zcq2xg=CAnkA5(6`pE$%*-3O($fkQ2`GJHZ#cmG$0cvUqOw5wgB>8kPx zE*x$#Rrv^~2{~Tm12$1hcsFO(9W7g&-90Tm97LP zaR~^2B2G4q6_!7h#DC&KYuxxxT+{Y!_d z7XW%ls7M3Ws9M#>dlco#{mfjNw>h`mkw&DbJZ2)pe^Ih%Jvy|yzNpV*o{WeG~IMv`NOd! zOVcz^J21$%F}7KiPOo-i&98L+B@P+s3y3**_o<%3iBU$scNaQ-1flxxn z$}D!Kmud6PbQ8;w!)$E7R?f1i7irR4nH-~K8CfqB&zUy$1+kx)GA}MAeO`c?s=*Bc zXf{E}4k*&f*LSI8{|lz@%1QwL5(hl`z?F5_lhEDc{qE>GX8*0@nt*|fMFz_LvAV<|F zMkhaAA27(TwyouaPS=QI+IOZyUpZWw)(f;cc_Kgh8N~-KcW9bf?6}T4`8aoe221Nn z-t%)xow(X&Yp}NvdjSJd@5VCu36EAD;%dEJ8_QOy_h&_uk9^IR-tY?cyg`t62Xuao ztP8Et$*+5GweV9PBU|I!tdq+TdsvQ)Y*hkE9p{HWr{tusZ0fB?brfK|&ORpndDcbS zoI1g$>avpJozm&EEZZ+C3u+Nh;L%@D#KN1-Kb3*58%na5VGs1G=cdxdA;`mQ>PjPU zQ8_g4eisCjGSeG81g-Y&VJb0gnXZ%Ha8iP;>F9h8_f!|_t5;Kv`Fj5TZJsScyLU5ZvNc0`*KfD;^1<|lw-9g*hY zz)^hS4ocG%IkYmo6gwcGCp+2<5iMKl^(fuW5!71Rz_0C~$iM=x2)iXcLn~urZG{_U z7Vm3?XrIVOSt&Ny-|YkQsj8?=bCKn;V&Y4!lpT__S40Pmj|@Yt+=>5Uh0A3T&)rF5 zBVV=4mcy2WD6L##gRRiHs;CIRMOZizuir_@-E{7%=@)TFT6-en!83(HRbFMA(~HfV zM*ho*^X-#b`M6ytw{>gfA9-jEC5LZo6{*7e`PP`CZ>|Lsflo19KDGw-&~(1A2Fh(L z|DcBY`){;qZ+Bo?c>}*#gMFldCw~dkX$H^#lGa5TaTB1lp#nUh3TUl7(pEJi!8%c9 zTCH5lyaB>OY!>uxXkqh_grOu z$YAFCYoXC$`g}#>+f=&Po{T%8sgZbd*UqPZMG4Wr*{e#rnKC0fLN<97e{W#(8tnQj zeKn^sJ)&U+iTG?=<=BDCM_$j3~~f@!wta4nuC+-eHMX+yPh+R2js{8e3+i*30@8hN!xBhTUocTs5kExVe@@F>&WUl-eQ zz-zb!BG22W%6<6Nx@u(?ckY5mSh9s#=UJ9y31@Y(m#5W(q%-;4dP)mBWN%Zikw0;l z`f3{s?p2m)(6>B(u$~44CfIOw#QjH!Mur)*8{6-EK43R(7OvIvE4!%&74nEZlo(v? zs;bvD`!2JX`hwsJFWf_uqc7OI=j7zx_+^hR$e`V!t3uBvUREl1RU(^4{)(U6gT0i0 z-Kf3T?4>T<=U01h1zWvn#cRv69%#rDU8#{z z@@oyS?}qTeebjA4Z*O$Nf0q|R)bguP-mjKsqSlqd%F5+!kroB5V5<$o6~pN`1h}bG z+SR!qZdDx`qUjIisCsa)?xu2{FW*P2Ll5nl0{1UyndfVIeaDksR{n$_L<74+z zwDGjJK<*O|Zl&bdruNMmvFQ1($kW3{JF6FWtNKIvkgwZM6SRLSZZCK2r&kl7a0WJ8 zU@Sc8tbDn;^(%%%6N~x-o5d=tnjQr%`>W{++OIx9p~4LZ|LOoe;s2UfdwV4NQ+bU$ z55S9B#n&E$$Dutxc@UeE-aO)KO3NQ-uiP1D`zE?um0PKBBrdZo%goqXk$_maBTD?e zr3Cj6yviY08*B=%DA|v4N8^2oBVpOrW#$Y^MHFI_IR6^%kzk&5hzbK2*+i?>JTm1^ zoGmRs1i|$z-*kwK{@;LbsUTQ>-A{+$zlp!Hhly+ztrAvgRxx?Fy`!1M#t$kniRo7q zyO)^I7zcWsxf=xv^P1dgqVyzU5y5X|o%p_0H!&Pnr&-|$5ny?M!ZbS+{j zl!bbLcUigUe(cdLqBhV#=lG1H6qWX+#}5;6S^3J7XNfgonIr42JT>KAd~$TV$pbYz zq}BDWeu80uM7*Rt#T$-->2~uAM=4Ri!eLydN_Gv}EaG9`qvHZ^`kp@UKW9&zzZ9w4 z`P?6AL_tb_Q<<5ZqC*A`^f-hPI@xn>w1U^W-2+vfpJAETf7 zhBCmVy*-6|k*b;yez5a)?p0|}wMWmI0tA-d4t^4UKIkWU2^-^sKhXzWCc*#XYfhYg zN$KrLn7%lh8r4sO2#;zCUmDTDf49u%b}u9um71M{p%k^llb|cDNjG!Q@L}K z?OQ{1l~Y;EQ_rXhzHamxBGO-WOr9Szzj|IY8r#LEo`q8G%GaNz*ub3*wG&}Tf1Tqt zRUzHvk>}uBJIP->M?*X2*sG?q*zd8}4Jo0`ZsiUP&F{>YmFsT)>pAM&t_`;Dd(GyQ zKa@)@GVMb(f7p1NU#M5aG7pU1EmxIo9(MZ~-+A*1_lVT^Ykd4K6u0m__q_V}neVCB zfl#>7&DQREnPU4zF{4M}j&w+$ah~S+B0m2zmiuM*YRqXS(cbblq}2^20y`B|ur6{5 zroQvmpwUIP^m*0umu2}hEy?$Z8J3zJ^}AB&T4t@9|E{&tOk0Pgc$5>)RfA}&@9h9~ zX~ty%Yn6Vb@U*-37hCIWfjxVqX-;eSqTOKCqP>Eg>R#%1Yn#N>E1F|m+N9wpiH;uUqZ z7HR}`zk|Rkx%)gUwoQntYth9sf1?39t*?f)=Zg@eZ}`FA;EZi?@pHdXmw>hqH40j5 z@o>Kj(CvG9{|oSyTKM`45FbzT{THD3GWd-Pu$rNFn_)N(^=R)eE`=8vQ!&ZmW76V) z{|{vXFKnh6!d*At*9<4`X>M;ukso-(MF`JHy#GbGTXIy0;%hEaZ;1OJER`0XuEne^M|t39%J&uUg8gB zvHj6r!l=fk;$odD{r*sT)T=zqvQ7Pg6hDE;`!D_9f6{adgO$8vo58jjY>TPWK9 zJfuzfJg0J&SGV9?Wf;HKLKmT?f4EB1B34!6c4FC<+wJ_%;5z}<6=!evDE@-&6+ZY{ zYi8*hrS@-fXAKc&WXK{DC%=$t!ik9f22~0kCtr1ghJ^O<>abHa$fTtvuky9` zB81F)So0Td>dXA)xGVTp}HkiZ;84|H^aAXsJ*DX=z+c7dIWn> zDThBugrj=dG|`-8`TDM=t?-zmso>tcIl^R&Va@^DTcTggYm*}eWlhO=AjD)n*I`iB zBo_19q=I`*&mXY8o8l9D=(&P>nLQ8KDpJ}G)=X_XI6Gu&wk7)>(_|NEW@O8vMl+e8 zxk;U}`nEc19(GHc(KXZHN5tr$IlwQ#{F=e34DnE_Q>8RdT_p=^+nE9fska<_zgNFZ zy{O#t@GgJhiu+Z#a?~8rwSI%N|GYip(X7!8p;g-0DHhE(f0$NPdC?8`c-dcI`3AoF zFNzdcA^+kp90Y9O$JA(0A;10?{{-=YYiOCcY03;a2Z&%Q;*qz;7-n<;HIQt|1C z66wn5T(NUWmfs0cHD++&uJR`{UQ()g18Ru>)2*_!ny8Cma>%Z~i!%ABr+B4bPSH|T zXdL2hWY&MtTHerF{$D&+1`mA02g?-O?LFt0S#)B~SDu!hxFXyamocs@Bb`-|i+Apd zSh|ySzu2T1ly4dit01Coos2cSu*Kt2&boa~U*gNxFYUOw2rq6%7VU(vQTDiB!?s7g zS{3Q0xV|XoQmjbR-dMs45jMDIb@EHP^9$NR>|@lj=e7`RXnGibAMt?Zho%1gU#0H5 zW_7B~y7SAf+qg#0N8F*P{B<7n+N=xi^a_(-TtIUsE*`m*QdFQe)feHP9u>k@OSnAQ z%N~P{e(UtVk)`QSs=e`=`r$588hHI3DjB@P)nRnBYL)(1cQqpqj&kshMO{?j$bc>~!2D6m|G{V7g=IX9Z@vp63P~_pxx3 z`Q`gGFgVyDT10Eco$!!0Q00ES=L3rM7jSo_G=t`@TSW&EcFPS)Ml#Z`|04a~_BM&Iv*Mn<(US$bSRA>X$@S_U2IEi0V(DP`n zv!VF_o@|3_`6gd&qwtVpHYP_o81#=*ndT(953je;2w^?+yB(Lol6jmR!+DkG*)g18 zKGhCQGJ!9*Lp%@S+wHWJe0U!RHAFa+PrMOB6D*6f5*u0fc$_KZxYbH4x!y@j^=aPr zLs`PrNzsi2pG&n9k~f#vJ1I8g@-E-j&z|#hhU8*I>@>gW1i8a`mSmcN=|?y4B6Ed#H!twe!wi>OgmRA1_76 z&vAcf)j56SAt_E}FI;H>urn9iOiX)wh|s_F_?4}}?KZx^OG&Y2cNcgVHk7Fy&2o3P z<|0;ICN#%^S+Yaap7i0zyl~oV;w@fy?;>!J*RWPE^a&p0(BAICyvj%i+wWEOt{ou^ z9(vrh`!);qX%c6u%y!2(6y?8h2}!<9%`>Q#BzKKwr0sSw`IIZAUi+?^?}0HJX**om z1qCwmhsWe;wZ>saqFBnF3e4%5sovZYG{;QJp~#JxifbQo$IBfoa!yl@Bo+ zPWaOsNC@|J+SN!7|AmBZ$sJww|BS5QURhZe^w{9q1tIi*V>_JM8L2uKw#__E5c**A zJ4+BEv87rr2z}%BIvR%96}TquWgxC zWg3;#kVqz{fWwGiv_b?9%I<50xY$*W-u2?l6l=k~8^s|Q!!id*R-bWaY?&UhO3d&; zK0qf#V=pm5CnV*Lar`&GX$zl3u3-))TX08I*UDS|g?*8h<9Nhbqc7Ngt?=Ob%%&NK zt%ab4LwS$?q!Ww~QMYwMXopMQhl7Xg>FQB_^?H>lPLJ}HSLLaWqrdm+S~=<^nD!3` zs>eV}z%^Js@EF##4%DGM;a$}_P#p%E)5=D6h`v$q)_m0TosE_L?GIcJGu??Z!xcV4 ze8eI9e^0EdI07B7w|kYj{Fo0qh-<<=!dU-kT(PX0;(-_`^c6CLN7^4U)!M=WWFN|_ zeTC32*)Zk0SN=U@w%?;Pd#Yx9XNC87vS=~XJCz4Ee#Tem+z0aGzvh3KHK=vrUo7m2 z%G%jI$~n)ot-SDzO(n-kSY_jJ#qM*SCA;V0yTylU%GpYdRA zW?Kwop3S3l;syRfY*=?(1_QTO;$MQC&FCl=C7|Ige5t>X7`WD}W1SjDiVkHJ-{UVt zhwTRcVmadwR;#X%4QgILe#>8o*SA$`zcb8eK9jrQd$33{pI3N&f;65K6DD)2=>8(Sq>f_evT0U+`l5UvCBMejyA!-gizpsq#M zzNS#K2YZlXK|**!rt{+T$4Y$ge{&4k3B`1ylKJP;jS6Or@+hLqfdi4>TW}8C!i(An z?Rkt|Xs3J4>Tf zS-+qB#@4CgLW|xC{l(Ymg;Zkv2fdK26H(o7+^ZMD1)Ga^Xd{TYLfW?tWaCSGR2u<~ zbNAnRstY@Ijg9PSQa|}IgZ|rjbsHhtumN24N<+cDO=SY8@|Bx6wh=mnU$ce43fKWN zO0!D4O1DkBRkOvT?Bm`xLVWleZeRSzfE3tP6|h}K&YB~Rcxf_Q%LfDtN!X{(2o~^Z z2LB-#Yb&1L3>LzDHhGBYQh9(ucyhpkoA_r(c=Ue}vjPk8wERgd3V0K^4o?%FO?Xo6 z#76ZN*!eVp8G-e6OAJDdu<$JYZP8OAV=n@%)wFGMf=6v=H7RWTI!1+X3PD_|H< zt)~4W3MYhWZ$%`XDgdSZZwfhoYPz*L|*o*uxXz%-F9Y;CwV z5`IELAK-_;^hekis1o`K;M>3fkMK$01;hseHvlt$YQ9XM+CUcY4`4R%8ZZZV3z!R3 z|4ib;j^>GhjNQNsGZJppC51!UP&qG*02}?mtq}tLuL{?76!341cxp%J>!W-WAmV5< zvH3xQpk>6=@GC)DEu4?+C|}(XWsdU8$W^Sq@ezX!YKv;v7mWnts~GjqPZUK0s_Fg+ zWB=V64iJgd9BO)?=<6Gf{AxHz6od|s!g?_x0uzkZN+N~iIQ4Z~Wc7PgEL3dM#)lDe zuV!g};?L8sPObteq;D95$r5v^m&MA0s2CG%qj8v6L)Lr@f* z6(xit*ODk9R3dEY+_Il!ZMp9?e=5;Flejm4!-V8l2K1xU{l%Lg7td=PNO zcw&PYEoA5;*l~ zh!P;q_Sn(wY49329%9@0{jBR2A%1FiNH3%T%;R-cEm$~nLWWczy&B5 z3OtJRc0gQ6XJNp#!1ln@0mK4;2eZM?z{(sD#}|R99KtUe8cfU&I23VQ2w9Y%*pIs7nFU1M!s{QyKg|I;JxBCZNiGWqt9z2GE+0SpupZjRY=FBi0Fc zI&C3A5~63wAOg=LgAo|j8^Rp82^a&M3hWG=h4(7QrlKRUz$A>gE3l*&v3Q^n6(<0% zA%7xp1?p9KHxBQI0;^GO81OQ%0H{kr1;Y`DKnC^ymXtrKju4V%&g8{ zFUXf?_y=)9|DH|9)NERI{zo;NmZc)D0a}4-H6_O%Rx=BzR&(erQATZ)YdAsHpcpXsHQW9TY+c=q8q5nnXnBiUoe*X zj>;GKZ&d##@DF2WC6zxIv%jnI2V;e6RsLY?;%b#Y7#q4u+*Or-k&bAjqu+;6LV!`RLDRR)6?K*v-mvIz~T z;zEOR9e@MSu?V0Y9ahD~ROC+qEt*2qiNc4&I!#we z!NeWt$nJc`UO^mTv8o)j9?BTC>$r`mQ5&^ow9wYuHlv-rMCkafwxdvqCKS&h1wCNMuRY=rQCrwwe6J!4$hn&Y~ delta 20846 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 diff --git a/bundles/mass_conn/inc/bluetooth.h b/bundles/mass_conn/inc/bluetooth.h index a7d216362..44c58585a 100644 --- a/bundles/mass_conn/inc/bluetooth.h +++ b/bundles/mass_conn/inc/bluetooth.h @@ -521,6 +521,7 @@ typedef enum { #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2 0x29 // Vendor specific subevents +#define HCI_SUBEVENT_LE_VENDOR_CONNECTION_ABORTED 0xFD #define HCI_SUBEVENT_LE_VENDOR_CHANNEL_MAP_UPDATE 0xFE #define HCI_SUBEVENT_LE_VENDOR_PRO_CONNECTIONLESS_IQ_REPORT 0xFF diff --git a/bundles/mass_conn/inc/btstack_event.h b/bundles/mass_conn/inc/btstack_event.h index 20ae54c5d..e5ab49a55 100644 --- a/bundles/mass_conn/inc/btstack_event.h +++ b/bundles/mass_conn/inc/btstack_event.h @@ -1386,6 +1386,43 @@ typedef struct le_meta_subrate_change // Time Range: 100 ms to 32 s } le_meta_subrate_change_t; +typedef struct le_meta_event_vendor_channel_map_update +{ + // connection handle + uint16_t conn_handle; + // current channel map (the lower 37 bits are used) + // channel `n` is identified by bit `(channel_map & 0x7)` of `channel_map[n / 8]` + uint8_t channel_map[5]; +} le_meta_event_vendor_channel_map_update_t; + +// @brief BLE Link Layer security context +typedef struct le_security_ctx +{ + uint8_t opaque[40]; +} le_security_ctx_t; + +typedef struct le_meta_event_vendor_connection_aborted +{ + uint16_t conn_handle; // connection handle + uint8_t role; // role (0: master, 1: slave) + phy_type_t rx_phy; // Rx PHY + phy_type_t tx_phy; // Tx PHY + uint32_t access_addr; // Access address + uint32_t crc_init; // CRC init value + uint32_t interval; // interval in us + uint16_t sup_timeout; // supervision timeout in 10ms + uint8_t channel_map[5]; // channel map (lower 37 bits) + uint8_t ch_sel_algo; // channel selection algorithm (0: ALG #1, 1: ALG #2) + uint8_t hop_inc; // frequency hopping increment (only for ALG #1) + uint8_t last_unmapped_ch; // last unmapped channel (only for ALG #1) + uint16_t slave_latency; // slave latency + uint8_t sleep_clk_acc; // sleep clock accuracy + uint64_t next_event_time; // start time of next connection event + uint16_t next_event_counter; // event counter for next connection event + uint8_t security_enabled; // is security enabled + le_security_ctx_t security; // security context (available when enabled) +} le_meta_event_vendor_connection_aborted_t; + typedef struct le_mete_event_prd_adv_subevent_data_req { uint8_t adv_handle; // Used to identify a periodic advertising train diff --git a/bundles/mass_conn/inc/ll_api.h b/bundles/mass_conn/inc/ll_api.h index 275c71b50..24558161d 100644 --- a/bundles/mass_conn/inc/ll_api.h +++ b/bundles/mass_conn/inc/ll_api.h @@ -100,14 +100,15 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co /** **************************************************************************************** - * @brief Create a connection directly (without advertising & initiating) + * @brief Create/Resume a connection directly (without advertising & initiating) * * @param[in] role connection role. master (0), slave (1) * @param[in] addr_types address types for advertiser and initiator - * bit [0] for slave, bit [1] for master + * bit [0] for slave (advertiser) + * bit [1] for master (initiator) * 0: public address; 1: random address - * @param[in] adv_addr address of advertiser - * @param[in] init_addr address of initiator + * @param[in] adv_addr address of advertiser (little-endian) + * @param[in] init_addr address of initiator (little-endian) * @param[in] rx_phy Rx PHY (1: 1M, 2: 2M, 3: Coded) * @param[in] tx_phy Tx PHY (1: 1M, 2: 2M, 3: Coded) * @param[in] access_addr access address @@ -115,21 +116,26 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co * @param[in] interval connection interval (unit: us) * @param[in] sup_timeout supervision timeout (unit: 10ms) * @param[in] channel_map channel map - * @param[in] ch_sel_algo channel selection algorithm (1 or 2) - * @param[in] hop_inc hop increment for CSA#1 ([5..16]) + * @param[in] ch_sel_algo channel selection algorithm (0: ALG #1, 1: ALG #2) + * @param[in] hop_inc hop increment for CSA#1 ([5..16]) (only for ALG #1) + * @param[in] last_unmapped_ch last unmapped channel index (only for ALG #1) * @param[in] min_ce_len information parameter about the minimum length of connection * event needed for this LE connection. * @param[in] max_ce_len information parameter about the maximum length of connection * event needed for this LE connection. - * @param[in] start_time start time of the 1st connectin event + * @param[in] start_time start time of the 1st connection event + * @param[in] event_counter event counter for the 1st connection event * @param[in] slave_latency slave latency - * @param[in] sleep_clk_acc sleep clock accuracy + * @param[in] sleep_clk_acc sleep clock accuracy (only for SLAVE role) * @param[in] sync_window slave's sync window for 1st connection event + * @param[in] security link layer security context + * NULL: security not used + * otherwise: security is used, which is `le_security_ctx_t *` in + * `le_meta_event_vendor_connection_aborted_t`. * @return 0 if successful else error code **************************************************************************************** */ -// int ll_create_conn( -// uint8_t role, +// int ll_create_conn(uint8_t role, // uint8_t addr_types, // const uint8_t *adv_addr, // const uint8_t *init_addr, @@ -142,12 +148,15 @@ void ll_hint_on_ce_len(const uint16_t conn_handle, const uint16_t min_ce_len, co // const uint8_t *channel_map, // uint8_t ch_sel_algo, // uint8_t hop_inc, +// uint8_t last_unmapped_ch, // uint16_t min_ce_len, // uint16_t max_ce_len, // uint64_t start_time, +// uint16_t event_counter, // uint16_t slave_latency, // uint8_t sleep_clk_acc, -// uint32_t sync_window); +// uint32_t sync_window, +// const void *security); // WARNING: ^^^ this API is not available in this release @@ -242,6 +251,20 @@ void ll_set_conn_latency(uint16_t conn_handle, int latency); // WARNING: ^^^ this API is not available in this release +/** + **************************************************************************************** + * @brief Abort an existing connection + * + * After a connection is aborted, `HCI_SUBEVENT_VENDOR_CONNECTION_ABORTED` is emitted. + * + * @param[in] conn_handle handle of an existing connection + * @return 0 if aborting is ongoing else non-0 + **************************************************************************************** + */ +// int ll_conn_abort(uint16_t conn_handle); +// WARNING: ^^^ this API is not available in this release + + /** **************************************************************************************** * @brief Set default antenna ID diff --git a/bundles/mass_conn/inc/platform_api.h b/bundles/mass_conn/inc/platform_api.h index 7f945d7bb..78ed07d0b 100644 --- a/bundles/mass_conn/inc/platform_api.h +++ b/bundles/mass_conn/inc/platform_api.h @@ -405,7 +405,7 @@ uint8_t platform_read_persistent_reg(void); * ING918: starting from 0x20000000, 64KiB * ING916: starting from 0x20000000, 16KiB * - * @param[in] duration_cycles Duration before power on again (measured in cycles of 32k clock) + * @param[in] duration_cycles Duration before power on again (measured in cycles of real time clock) * Minimum value: 825 cycles (about 25.18ms) * When = 0: only power on when external wake up source is asserted * @param[in] p_retention_data Pointer to the start of data to be retained @@ -426,13 +426,18 @@ typedef enum PLATFORM_CFG_LOG_HCI, // flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_POWER_SAVING, // flag is ENABLE or DISABLE. default: DISABLE PLATFORM_CFG_TRACE_MASK, // flag is bitmap of platform_trace_item_t. default: 0 - PLATFORM_CFG_RC32K_EN, // Enable/Disable RC 32k clock. Default: Enable - PLATFORM_CFG_OSC32K_EN, // Enable/Disable 32k crystal oscillator. Default: Enable - PLATFORM_CFG_32K_CLK, // 32k clock selection. flag is platform_32k_clk_src_t. default: PLATFORM_32K_RC - // Note 1: When modifying this configuration, both RC32K and OSC32K should be ENABLED. + PLATFORM_CFG_RT_RC_EN, // Enable/Disable internal real time RC clock. Default: Enable + PLATFORM_CFG_RC32K_EN = PLATFORM_CFG_RT_RC_EN, + PLATFORM_CFG_RT_OSC_EN, // Enable/Disable external real time crystal oscillator. Default: Enable + PLATFORM_CFG_OSC32K_EN = PLATFORM_CFG_RT_OSC_EN, + PLATFORM_CFG_RT_CLK, // real time clock selection. flag is platform_rt_clk_src_t. default: PLATFORM_RT_RC + // Note 1: When modifying this configuration, both RT_RC and RT_OSC should be ENABLED. // Note 2: Unused clock can be disabled. - PLATFORM_CFG_32K_CLK_ACC, // Configure 32k clock accuracy in ppm. - PLATFORM_CFG_32K_CALI_PERIOD, // 32K clock auto-calibration period in seconds. Default: 3600 * 2 + PLATFORM_CFG_32K_CLK = PLATFORM_CFG_RT_CLK, + PLATFORM_CFG_RT_CLK_ACC, // Configure real time clock accuracy in ppm. + PLATFORM_CFG_32K_CLK_ACC = PLATFORM_CFG_RT_CLK_ACC, + PLATFORM_CFG_RT_CLK_CALI_PERIOD, // real time clock auto-calibration period in seconds. Default: 3600 * 2 + PLATFORM_CFG_32K_CALI_PERIOD = PLATFORM_CFG_RT_CLK_CALI_PERIOD, PLATFORM_CFG_PS_DBG_0, // debugging parameter PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION, // sleep time reduction (deep sleep mode) in us. (default: ~550us) PLATFORM_CFG_PS_DBG_1 = PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION, // obsoleted @@ -465,9 +470,13 @@ typedef enum typedef enum { - PLATFORM_32K_OSC, // external 32k crystal oscillator - PLATFORM_32K_RC // internal RC 32k clock -} platform_32k_clk_src_t; + PLATFORM_RT_OSC, // external crystal oscillator + PLATFORM_32K_OSC = PLATFORM_RT_OSC, + PLATFORM_RT_RC, // internal RC clock + PLATFORM_32K_RC = PLATFORM_RT_RC, +} platform_rt_clk_src_t; + +#define platform_32k_clk_src_t platform_rt_clk_src_t #define PLATFORM_CFG_ENABLE 1 #define PLATFORM_CFG_DISABLE 0 @@ -484,11 +493,13 @@ void platform_config(const platform_cfg_item_t item, const uint32_t flag); typedef enum { - PLATFORM_INFO_OSC32K_STATUS, // Read status of 32k crystal oscillator. (0: not OK; Non-0: OK) + PLATFORM_INFO_RT_OSC_STATUS, // Read status of real time crystal oscillator. (0: not OK; Non-0: OK) // "OK" means running. - // For ING916: this clock become running **after** selected as 32k + // For ING916: this clock become running **after** selected as real time clock // clock source. - PLATFORM_INFO_32K_CALI_VALUE, // Read current 32k clock calibration result. + PLATFORM_INFO_OSC32K_STATUS = PLATFORM_INFO_RT_OSC_STATUS, + PLATFORM_INFO_RT_CLK_CALI_VALUE, // Read current real time clock calibration result. + PLATFORM_INFO_32K_CALI_VALUE = PLATFORM_INFO_RT_CLK_CALI_VALUE, PLATFOFM_INFO_IRQ_NUMBER = 50, // Get the underline IRQ number of a platform IRQ // for example, platform_read_info(PLATFOFM_INFO_IRQ_NUMBER + PLATFORM_CB_IRQ_UART0) PLATFOFM_INFO_NUMBER = 255, @@ -506,36 +517,52 @@ uint32_t platform_read_info(const platform_info_item_t item); /** **************************************************************************************** - * @brief Do 32k clock calibration and get the calibration value. + * @brief Calibrate real-time RC clock and get the calibration value. * - * 32K clock auto-calibration timer is also reset, which means that next auto-calibration - * is supposed to be carried out after `PLATFORM_CFG_32K_CALI_PERIOD` seconds. + * Real time clock auto-calibration timer is also reset, which means that next auto-calibration + * is supposed to be carried out after `PLATFORM_CFG_RT_CLK_CALI_PERIOD` seconds. * * @return Calibration value. **************************************************************************************** */ -uint32_t platform_calibrate_32k(void); +uint32_t platform_calibrate_rt_clk(void); /** **************************************************************************************** - * @brief Tune internal the 32k RC clock with `value`. + * @brief Tune internal the real-time RC clock with `value`. * - * @param[in] value Value used to tune the clock (returned by `platform_32k_rc_auto_tune`) + * @param[in] value Value used to tune the clock (returned by `platform_rt_rc_auto_tune`) **************************************************************************************** */ -void platform_32k_rc_tune(uint16_t value); +void platform_rt_rc_tune(uint16_t value); /** **************************************************************************************** - * @brief Automatically tune the internal 32k RC clock, and get the tuning value. + * @brief Automatically tune the internal real time RC clock, and get the tuning value. * - * Note: This operation costs ~250ms. It is recommended to call this once and store the - * returned value into NVM for later usage. + * This is equivalent to `platform_rt_rc_auto_tune2(65536000000 / frequency)`. * * @return Value used to tune the clock **************************************************************************************** */ -uint16_t platform_32k_rc_auto_tune(void); +uint16_t platform_rt_rc_auto_tune(void); + +#define platform_calibrate_32k platform_calibrate_rt_clk +#define platform_32k_rc_tune platform_rt_rc_tune +#define platform_32k_rc_auto_tune platform_rt_rc_auto_tune + +/** + **************************************************************************************** + * @brief Automatically tune the internal real-time RC clock to a target frequency, and + * get the tuning value. + * + * Note: This operation costs ~250ms. + * + * @param[in] target_frequency target frequency of tuning (Hz) + * @return Value used to tune the clock + **************************************************************************************** + */ +uint16_t platform_rt_rc_auto_tune2(uint32_t target_frequency); /** **************************************************************************************** diff --git a/bundles/mini/ING9168xx/apis.json b/bundles/mini/ING9168xx/apis.json index 0c553ab02..40c56fa3e 100644 --- a/bundles/mini/ING9168xx/apis.json +++ b/bundles/mini/ING9168xx/apis.json @@ -17,21 +17,21 @@ "att_set_db": "0x02004d89", "att_set_read_callback": "0x02004d9d", "att_set_write_callback": "0x02004da9", - "bd_addr_cmp": "0x02004f7d", - "bd_addr_copy": "0x02004f83", - "bd_addr_to_str": "0x02004f8d", - "big_endian_read_16": "0x02004fc5", - "big_endian_read_32": "0x02004fcd", - "big_endian_store_16": "0x02004fe1", - "big_endian_store_32": "0x02004fed", - "btstack_config": "0x02005019", - "btstack_memory_pool_create": "0x02005157", - "btstack_memory_pool_free": "0x02005181", - "btstack_memory_pool_get": "0x020051e1", - "btstack_push_user_msg": "0x02005249", - "btstack_push_user_runnable": "0x02005255", - "btstack_reset": "0x02005261", - "char_for_nibble": "0x02005487", + "bd_addr_cmp": "0x02004f79", + "bd_addr_copy": "0x02004f7f", + "bd_addr_to_str": "0x02004f89", + "big_endian_read_16": "0x02004fc1", + "big_endian_read_32": "0x02004fc9", + "big_endian_store_16": "0x02004fdd", + "big_endian_store_32": "0x02004fe9", + "btstack_config": "0x02005015", + "btstack_memory_pool_create": "0x02005153", + "btstack_memory_pool_free": "0x0200517d", + "btstack_memory_pool_get": "0x020051dd", + "btstack_push_user_msg": "0x02005245", + "btstack_push_user_runnable": "0x02005251", + "btstack_reset": "0x0200525d", + "char_for_nibble": "0x02005483", "eTaskConfirmSleepModeStatus": "0x020057bd", "gap_add_dev_to_periodic_list": "0x02005e2d", "gap_add_whitelist": "0x02005e3d", @@ -186,161 +186,162 @@ "ll_set_initiating_coded_scheme": "0x0200becd", "ll_set_max_conn_number": "0x0200bed9", "ll_set_tx_power_range": "0x0200bf6d", - "nibble_for_char": "0x0201c0c1", - "platform_32k_rc_auto_tune": "0x0201c149", - "platform_32k_rc_tune": "0x0201c195", - "platform_calibrate_32k": "0x0201c1b1", + "nibble_for_char": "0x0201c0d1", + "platform_calibrate_rt_clk": "0x0201c159", "platform_call_on_stack": "0x020021fb", - "platform_config": "0x0201c1b5", - "platform_delete_timer": "0x0201c2dd", - "platform_enable_irq": "0x0201c2e5", - "platform_get_current_task": "0x0201c339", - "platform_get_gen_os_driver": "0x0201c35d", - "platform_get_heap_status": "0x0201c365", - "platform_get_link_layer_interf": "0x0201c37d", - "platform_get_task_handle": "0x0201c385", - "platform_get_timer_counter": "0x0201c3a5", - "platform_get_us_time": "0x0201c3a9", - "platform_get_version": "0x0201c3ad", - "platform_hrng": "0x0201c3b5", - "platform_install_isr_stack": "0x0201c3bd", - "platform_install_task_stack": "0x0201c3c9", - "platform_patch_rf_init_data": "0x0201c401", - "platform_printf": "0x0201c40d", - "platform_raise_assertion": "0x0201c421", - "platform_rand": "0x0201c435", - "platform_read_info": "0x0201c439", - "platform_read_persistent_reg": "0x0201c469", - "platform_reset": "0x0201c475", - "platform_set_abs_timer": "0x0201c489", - "platform_set_evt_callback": "0x0201c48d", - "platform_set_evt_callback_table": "0x0201c4a1", - "platform_set_irq_callback": "0x0201c4ad", - "platform_set_irq_callback_table": "0x0201c4c9", - "platform_set_rf_clk_source": "0x0201c4d5", - "platform_set_rf_init_data": "0x0201c4e1", - "platform_set_rf_power_mapping": "0x0201c4ed", - "platform_set_timer": "0x0201c4f9", - "platform_shutdown": "0x0201c4fd", - "platform_switch_app": "0x0201c501", - "platform_trace_raw": "0x0201c519", - "platform_write_persistent_reg": "0x0201c531", - "printf_hexdump": "0x0201c6e9", - "pvPortMalloc": "0x0201d11d", - "pvTaskIncrementMutexHeldCount": "0x0201d205", - "pvTimerGetTimerID": "0x0201d21d", - "pxPortInitialiseStack": "0x0201d249", - "reverse_128": "0x0201d431", - "reverse_24": "0x0201d437", - "reverse_256": "0x0201d43d", - "reverse_48": "0x0201d443", - "reverse_56": "0x0201d449", - "reverse_64": "0x0201d44f", - "reverse_bd_addr": "0x0201d455", - "reverse_bytes": "0x0201d45b", - "sm_add_event_handler": "0x0201d761", - "sm_address_resolution_lookup": "0x0201d8b9", - "sm_authenticated": "0x0201dc35", - "sm_authorization_decline": "0x0201dc43", - "sm_authorization_grant": "0x0201dc63", - "sm_authorization_state": "0x0201dc83", - "sm_bonding_decline": "0x0201dc9d", - "sm_config": "0x0201e0f1", - "sm_config_conn": "0x0201e109", - "sm_encryption_key_size": "0x0201e2bf", - "sm_just_works_confirm": "0x0201e845", - "sm_le_device_key": "0x0201eb7d", - "sm_passkey_input": "0x0201ec13", - "sm_private_random_address_generation_get": "0x0201efcd", - "sm_private_random_address_generation_get_mode": "0x0201efd5", - "sm_private_random_address_generation_set_mode": "0x0201efe1", - "sm_private_random_address_generation_set_update_period": "0x0201f009", - "sm_register_external_ltk_callback": "0x0201f145", - "sm_register_oob_data_callback": "0x0201f151", - "sm_request_pairing": "0x0201f15d", - "sm_send_security_request": "0x0201fc33", - "sm_set_accepted_stk_generation_methods": "0x0201fc59", - "sm_set_authentication_requirements": "0x0201fc65", - "sm_set_encryption_key_size_range": "0x0201fc71", - "sscanf_bd_addr": "0x0201ffd1", - "sysSetPublicDeviceAddr": "0x02020085", - "uuid128_to_str": "0x02020841", - "uuid_add_bluetooth_prefix": "0x02020899", - "uuid_has_bluetooth_prefix": "0x020208b9", - "uxListRemove": "0x020208d5", - "uxQueueMessagesWaiting": "0x020208fd", - "uxQueueMessagesWaitingFromISR": "0x02020925", - "uxQueueSpacesAvailable": "0x02020941", - "uxTaskGetStackHighWaterMark": "0x0202096d", - "uxTaskPriorityGet": "0x0202098d", - "uxTaskPriorityGetFromISR": "0x020209a9", - "vListInitialise": "0x02020a0f", - "vListInitialiseItem": "0x02020a25", - "vListInsert": "0x02020a2b", - "vListInsertEnd": "0x02020a5b", - "vPortEndScheduler": "0x02020a75", + "platform_config": "0x0201c15d", + "platform_delete_timer": "0x0201c285", + "platform_enable_irq": "0x0201c28d", + "platform_get_current_task": "0x0201c2e1", + "platform_get_gen_os_driver": "0x0201c305", + "platform_get_heap_status": "0x0201c30d", + "platform_get_link_layer_interf": "0x0201c325", + "platform_get_task_handle": "0x0201c32d", + "platform_get_timer_counter": "0x0201c34d", + "platform_get_us_time": "0x0201c351", + "platform_get_version": "0x0201c355", + "platform_hrng": "0x0201c35d", + "platform_install_isr_stack": "0x0201c365", + "platform_install_task_stack": "0x0201c371", + "platform_patch_rf_init_data": "0x0201c3a9", + "platform_printf": "0x0201c3b5", + "platform_raise_assertion": "0x0201c3c9", + "platform_rand": "0x0201c3dd", + "platform_read_info": "0x0201c3e1", + "platform_read_persistent_reg": "0x0201c411", + "platform_reset": "0x0201c41d", + "platform_rt_rc_auto_tune": "0x0201c431", + "platform_rt_rc_auto_tune2": "0x0201c439", + "platform_rt_rc_tune": "0x0201c4bd", + "platform_set_abs_timer": "0x0201c4d9", + "platform_set_evt_callback": "0x0201c4dd", + "platform_set_evt_callback_table": "0x0201c4f1", + "platform_set_irq_callback": "0x0201c4fd", + "platform_set_irq_callback_table": "0x0201c519", + "platform_set_rf_clk_source": "0x0201c525", + "platform_set_rf_init_data": "0x0201c531", + "platform_set_rf_power_mapping": "0x0201c53d", + "platform_set_timer": "0x0201c549", + "platform_shutdown": "0x0201c54d", + "platform_switch_app": "0x0201c551", + "platform_trace_raw": "0x0201c569", + "platform_write_persistent_reg": "0x0201c581", + "printf_hexdump": "0x0201c739", + "pvPortMalloc": "0x0201d16d", + "pvTaskIncrementMutexHeldCount": "0x0201d255", + "pvTimerGetTimerID": "0x0201d26d", + "pxPortInitialiseStack": "0x0201d299", + "reverse_128": "0x0201d481", + "reverse_24": "0x0201d487", + "reverse_256": "0x0201d48d", + "reverse_48": "0x0201d493", + "reverse_56": "0x0201d499", + "reverse_64": "0x0201d49f", + "reverse_bd_addr": "0x0201d4a5", + "reverse_bytes": "0x0201d4ab", + "sm_add_event_handler": "0x0201d7b1", + "sm_address_resolution_lookup": "0x0201d909", + "sm_authenticated": "0x0201dc85", + "sm_authorization_decline": "0x0201dc93", + "sm_authorization_grant": "0x0201dcb3", + "sm_authorization_state": "0x0201dcd3", + "sm_bonding_decline": "0x0201dced", + "sm_config": "0x0201e141", + "sm_config_conn": "0x0201e159", + "sm_encryption_key_size": "0x0201e30f", + "sm_just_works_confirm": "0x0201e895", + "sm_le_device_key": "0x0201ebcd", + "sm_passkey_input": "0x0201ec63", + "sm_private_random_address_generation_get": "0x0201f01d", + "sm_private_random_address_generation_get_mode": "0x0201f025", + "sm_private_random_address_generation_set_mode": "0x0201f031", + "sm_private_random_address_generation_set_update_period": "0x0201f059", + "sm_register_external_ltk_callback": "0x0201f195", + "sm_register_oob_data_callback": "0x0201f1a1", + "sm_request_pairing": "0x0201f1ad", + "sm_send_security_request": "0x0201fc83", + "sm_set_accepted_stk_generation_methods": "0x0201fca9", + "sm_set_authentication_requirements": "0x0201fcb5", + "sm_set_encryption_key_size_range": "0x0201fcc1", + "sscanf_bd_addr": "0x02020021", + "sysSetPublicDeviceAddr": "0x020200d5", + "uuid128_to_str": "0x02020891", + "uuid_add_bluetooth_prefix": "0x020208e9", + "uuid_has_bluetooth_prefix": "0x02020909", + "uxListRemove": "0x02020925", + "uxQueueMessagesWaiting": "0x0202094d", + "uxQueueMessagesWaitingFromISR": "0x02020975", + "uxQueueSpacesAvailable": "0x02020991", + "uxTaskGetStackHighWaterMark": "0x020209bd", + "uxTaskPriorityGet": "0x020209dd", + "uxTaskPriorityGetFromISR": "0x020209f9", + "vListInitialise": "0x02020a5f", + "vListInitialiseItem": "0x02020a75", + "vListInsert": "0x02020a7b", + "vListInsertEnd": "0x02020aab", + "vPortEndScheduler": "0x02020ac5", "vPortEnterCritical": "0x20000325", "vPortExitCritical": "0x2000035f", - "vPortFree": "0x02020aa1", + "vPortFree": "0x02020af1", "vPortSuppressTicksAndSleep": "0x2000038b", - "vPortValidateInterruptPriority": "0x02020b45", - "vQueueDelete": "0x02020ba1", - "vQueueWaitForMessageRestricted": "0x02020bcd", - "vTaskDelay": "0x02020c11", - "vTaskInternalSetTimeOutState": "0x02020c5d", - "vTaskMissedYield": "0x02020c6d", - "vTaskPlaceOnEventList": "0x02020c79", - "vTaskPlaceOnEventListRestricted": "0x02020cb1", - "vTaskPriorityDisinheritAfterTimeout": "0x02020cf1", - "vTaskPrioritySet": "0x02020d9d", - "vTaskResume": "0x02020e65", - "vTaskStartScheduler": "0x02020ee9", + "vPortValidateInterruptPriority": "0x02020b95", + "vQueueDelete": "0x02020bf1", + "vQueueWaitForMessageRestricted": "0x02020c1d", + "vTaskDelay": "0x02020c61", + "vTaskInternalSetTimeOutState": "0x02020cad", + "vTaskMissedYield": "0x02020cbd", + "vTaskPlaceOnEventList": "0x02020cc9", + "vTaskPlaceOnEventListRestricted": "0x02020d01", + "vTaskPriorityDisinheritAfterTimeout": "0x02020d41", + "vTaskPrioritySet": "0x02020ded", + "vTaskResume": "0x02020eb5", + "vTaskStartScheduler": "0x02020f39", "vTaskStepTick": "0x2000070b", - "vTaskSuspend": "0x02020f79", + "vTaskSuspend": "0x02020fc9", "vTaskSuspendAll": "0x2000067f", - "vTaskSwitchContext": "0x02021035", - "xPortStartScheduler": "0x020210d9", - "xQueueAddToSet": "0x020211dd", - "xQueueCreateCountingSemaphore": "0x02021201", - "xQueueCreateCountingSemaphoreStatic": "0x0202123d", - "xQueueCreateMutex": "0x02021281", - "xQueueCreateMutexStatic": "0x02021297", - "xQueueCreateSet": "0x020212b1", - "xQueueGenericCreate": "0x020212b9", - "xQueueGenericCreateStatic": "0x02021305", - "xQueueGenericReset": "0x0202136d", - "xQueueGenericSend": "0x020213f9", - "xQueueGenericSendFromISR": "0x02021565", - "xQueueGiveFromISR": "0x02021625", - "xQueueGiveMutexRecursive": "0x020216c9", - "xQueueIsQueueEmptyFromISR": "0x02021709", - "xQueueIsQueueFullFromISR": "0x0202172d", - "xQueuePeek": "0x02021755", - "xQueuePeekFromISR": "0x0202187d", - "xQueueReceive": "0x020218e9", - "xQueueReceiveFromISR": "0x02021a15", - "xQueueRemoveFromSet": "0x02021aa9", - "xQueueSelectFromSet": "0x02021acb", - "xQueueSelectFromSetFromISR": "0x02021add", - "xQueueSemaphoreTake": "0x02021af1", - "xQueueTakeMutexRecursive": "0x02021c5d", - "xTaskCheckForTimeOut": "0x02021ca1", - "xTaskCreate": "0x02021d11", - "xTaskCreateStatic": "0x02021d6d", - "xTaskGetCurrentTaskHandle": "0x02021ddd", - "xTaskGetSchedulerState": "0x02021de9", - "xTaskGetTickCount": "0x02021e05", - "xTaskGetTickCountFromISR": "0x02021e11", + "vTaskSwitchContext": "0x02021085", + "xPortStartScheduler": "0x02021135", + "xQueueAddToSet": "0x02021239", + "xQueueCreateCountingSemaphore": "0x0202125d", + "xQueueCreateCountingSemaphoreStatic": "0x02021299", + "xQueueCreateMutex": "0x020212dd", + "xQueueCreateMutexStatic": "0x020212f3", + "xQueueCreateSet": "0x0202130d", + "xQueueGenericCreate": "0x02021315", + "xQueueGenericCreateStatic": "0x02021361", + "xQueueGenericReset": "0x020213c9", + "xQueueGenericSend": "0x02021455", + "xQueueGenericSendFromISR": "0x020215c1", + "xQueueGiveFromISR": "0x02021681", + "xQueueGiveMutexRecursive": "0x02021725", + "xQueueIsQueueEmptyFromISR": "0x02021765", + "xQueueIsQueueFullFromISR": "0x02021789", + "xQueuePeek": "0x020217b1", + "xQueuePeekFromISR": "0x020218d9", + "xQueueReceive": "0x02021945", + "xQueueReceiveFromISR": "0x02021a71", + "xQueueRemoveFromSet": "0x02021b05", + "xQueueSelectFromSet": "0x02021b27", + "xQueueSelectFromSetFromISR": "0x02021b39", + "xQueueSemaphoreTake": "0x02021b4d", + "xQueueTakeMutexRecursive": "0x02021cb9", + "xTaskCheckForTimeOut": "0x02021cfd", + "xTaskCreate": "0x02021d6d", + "xTaskCreateStatic": "0x02021dc9", + "xTaskGetCurrentTaskHandle": "0x02021e39", + "xTaskGetSchedulerState": "0x02021e45", + "xTaskGetTickCount": "0x02021e61", + "xTaskGetTickCountFromISR": "0x02021e6d", "xTaskIncrementTick": "0x20000511", - "xTaskPriorityDisinherit": "0x02021e21", - "xTaskPriorityInherit": "0x02021eb5", - "xTaskRemoveFromEventList": "0x02021f49", + "xTaskPriorityDisinherit": "0x02021e7d", + "xTaskPriorityInherit": "0x02021f11", + "xTaskRemoveFromEventList": "0x02021fa5", "xTaskResumeAll": "0x200005cb", - "xTaskResumeFromISR": "0x02021fc9", - "xTimerCreate": "0x02022055", - "xTimerCreateStatic": "0x02022089", - "xTimerCreateTimerTask": "0x020220c1", - "xTimerGenericCommand": "0x0202212d", - "xTimerGetExpiryTime": "0x0202219d", - "xTimerGetTimerDaemonTaskHandle": "0x020221bd" + "xTaskResumeFromISR": "0x02022025", + "xTimerCreate": "0x020220b1", + "xTimerCreateStatic": "0x020220e5", + "xTimerCreateTimerTask": "0x0202211d", + "xTimerGenericCommand": "0x02022189", + "xTimerGetExpiryTime": "0x020221f9", + "xTimerGetTimerDaemonTaskHandle": "0x02022219" } \ No newline at end of file diff --git a/bundles/mini/ING9168xx/meta.json b/bundles/mini/ING9168xx/meta.json index 38dd47b7a..148bf9bc7 100644 --- a/bundles/mini/ING9168xx/meta.json +++ b/bundles/mini/ING9168xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 33562624, - "size": 155732 + "size": 155824 }, "version": [ 2, 3, - 0 + 1 ] } \ No newline at end of file diff --git a/bundles/mini/ING9168xx/platform.bin b/bundles/mini/ING9168xx/platform.bin index 5a4983df0367aa1b1ca8fa6cd5037663cf1e58ba..a3318d639e42fa26ec4c955d644e0c37af5e6f5b 100644 GIT binary patch delta 22688 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 delta 22550 zcmZ5|3tUvy_WxODW*A051`z=PnE{c(7a$^FsemwoFU0pV2OrnL#}%}Pr6!anR;G5e zowsX3WoqSBBtleDD{q;3gVfSrnP?&^A_sh&dC&iQ2JLqLd_IToIs3iWUVH7e*4}## zozh%5soCo8#&KJD{;EY=&xyyaTn;yCoDe`UL_!K}qh#R>Ndf1kaQukUbI$)XoqVlQ<$bZ&0oq8 zdg))L?ZPhoi0JhhJbx>b=ZmUUMs-eBVebfK%V{pt%=J|@WSGjh5b-U+tzSgx!lI}a z_1`UC`@+SQ!i?xsKKX8?#p!P_hKgz-rgxGuM0B`?*}b!9nNZO?m_n;+dlx9_x)2t( zQ&p7C^Sy=IxE(>)ZCq?)<>wY9`5Qvce{S)jQ1L&){JvADrmD7Y5(OQ!kLpO6nBMV9 zhR(=|TkZ1yxdQc%rd>iz|GlW@vRkO{Z=giM+W#Dlton99BJrP(5Nrec6zntx8@n1+ z#;caGB>|25Lb;auqAYE$QD;0dDm|NTC_h|xOWep`R<@Ih8b4|$uj!G^MgzXfGr6CZh3`Au)XZ@u>w9rtQBLWKur_|P<{f+8Ep56}8X*KGoDU5- z5++_c?v@-UR_WZ5bV6ILG?py!66Xl+gb2SAKsh zY|Ingg9?q|;vW`a;GhZXese30C(C;1m7>a`Gb+Wg4zp1qR=PPuTLbBoqQ$1lQHlpG zoZ)IiUo+`nvD9l*>n=s{{K;sZPerxi;`>hCh+-4Ctz0zeO@-lNoIACS(-n=9>>}%vIN%wV>rot&rwd>6C*EdlreB}ujlV(tVA%1W?l?!tRulD=dRJq6_t_n2NeOu8Q8J$p~lW*6Q~d0CU@@NG03-O^J+WNIjd3Tdh5 zx{JY0|w(z-hsGofTE%gfqJ+M~hGNKtzYTju^&Lij zg3vl_%sNYNp688}qY$qjwIDR1+7}aH)1gqK7Bgs`jWhT*6oRpX#hW(eejV_-P5DWo zkw=a*HqD`gI*v1-47r3;M>$SJ8S?uvyzhG)UX6F}n9lHnc)x`--qoBCXzU`?4ELj_ zh10|P@rR;?j^V>)7&PKzuS>{_Hvc}N=eh*Bi8-8kt7Q#WG)nFY&nt5^=6uVS@w{oY zIn%VsTxu#BC5L;B<_uc1vVMYPczhRANg3bx$`as~vXaht@^tn0+7OhfKpC$u;Z2*i zlp?mXTzM9fQCaSk##;IQbeVKo;f3@W0~#N9h1H_@ct_KbPVVSiwf)hZ|9-z#+gos^ zhpihd6T*{XMXiV&%AC@dC{EG9>q}RJipP)0H7bX3I(3e=I&&!mm)EMxrAsX*Jj__FFaIAx zd~<|DiT@?U@grk}ZJE(DTd2+)GgKa&RY)(-bRL8+{mWn~MhBXw&(oSq=gAVMb07$5 za^}l}CJY_fGeC*TpHO_#5svc}7LJ_6KZp{JjvU?B;b92gtTAVRB{I#UO(o{C#|+V# zi5J^I${SI_z^s}4Z!&}kA7o|5-9^qWwOJioqn@;z7dIm1^uP3s7hgVM7W}en-#g)iYo#az3eZ{+FP#kUeU7+L6D6MkDkj zz8}v3uo0ibiy=EFe(x>Ibl8I8ZXIX;GteN*GVa1XpYe@OCBZ^ zasovx6*lJt(_~>!PBbkL&g6_BZ$XnAM$ZZ{x%r{Lxp?EF@Ggg{4yR#t!>TsQC8eDR z5_w@u?rkiUFOH6;Tw&Mf#BMQ;L`-{5eBVt-87kg!2#uq2unfhG$)^2mL=gI>p0d!93ZrhT}fXE z3&$nXA>qAoFHp7+I6jWQ<`9OD??dN=h2uvFj`2F-hw%wiDmcgYlUth?0S+9Mmq;Up z7xR)RPB@S^lGH+bUR?L#4o>{iD$9I%+It&=#M^dZ-~+@G%^}aA<@JD?@avT5fFVcv|4-<6!GCIONRa3{ zk?@!BAhG>K5AhF&Fn($u{<1@OerkWZD111z)-TMWG;*sZ)aF30YlOmSm5T0SyO1#> zSQtFL7yT?un!boWz;}>PKYa+TdHkjnbTf1`7hmxdAQaCCqVvMW8HIrjcJ4%o_;)*J zus6s8EJU0sC}vKg6;;z_`jh&O^I@~hpUY-hX|b?qb`@!busLtg_f>o6)RC&i{;*kB zRX8`4Fkr8mm>gSho<6Q>D@Y^K2yycd`hC<7ifVtJUoe2@pB0+sfB3&4RXY|a6f{=Y zxo8Sa71|c1D84!NbXA-=NkRImIZLAXfd46AAkR;(+P18gv@aZyXO}ERuJEK9gmj7nYkC^_V$i!-!0xG-Pka#!>UZE=y&yWA>0bQkD0TR4vJpSW(~ zRbjx&6LNX?R{qUju2g1KyG~c)i-mvwvm5wZF~Xf^M|zETgpEJw4R>>G?0@+^@gzcNuIijF!Q; z%0tq>t?JcPE>b3TStqgIUe&vMPsd;**T20X&dlk&=Rq))BFp!yj>5mhEhVor>k{nJUZLfsxD-zZbGw-9O&T+A&NX`*wH{rw=+avMbxeIlFWY#)Vz_MHsVsn5UPkb3)!c+DXn%Iv%pjd_u=Nt8@74c46?E1<*ow zuIY#Qa(Yd?`k_r{wo8^O`}$S(aPys&N@Jrqu_+es6Ixh0q(QT5`acXl# zrm|jszb@>3ZDi1ok7F7frDacIz7X86<)aPx8zUg&mTwH!tZ;CKdkr?}S7FP>8PH{K zZ_Go7(#qC_-LiW((mtDX$IeG*n+rBCHg?hN8zqPQAe=9YS6|0q*raelvuTD#um?8s zh}j`5*%apYt|#XI>~hFbLD-ZRG|8^=#80uOZ!XVVS}(^86{Jm(erfhRv8#8!CpJxp zemw=N{H)je@i!ep+3UkYeu5gjuYnW)Vb>hO7`@7IpFPd#z>>ee-h;+gJ$yZgr-4;I zo6{&P%F6Xtd&-HnDvet$1Gpoghg_4FF!!w>O&4oSqc^^Mg|%;up$6g1Td`Q6+uy43 zDY9^Vv>qxJ3sqb6G)B0%@QkaBy3g&&%#k;#;LJgp1p%eci5* zKA$xz_gN**Exhyg0`>1M1Ez*fAYpgVMR#V0c13zeX@DH|gL=Y-!=>=ij2cfjMYS9OwN|=wOA4k$!q2l92 zC^P3jK0&_;!ro}rb(>lgg=2eD!l&B}#z)fo)^z-T&)P*Ep3-!&gxlZzc~Vu^eIbN} zId*>ptrW8NXV64pF{mE&pj2WLE#0uU1 zX%HP1)St~FZPonGh7np;aX=3T$=3&*{Dl6k?X}_2*0IGaNj(>W9)ss{x{+D4o-H6&tIPj+`eNE~t;Lb zM#NXW@m(%Y>xGNokA#p2J)1)LLjKvc)UE2rv(ZHV5$^vm*KdNgpE1*zYgFX;h$E`z zo>M7lo3OCqY``^FqR}JlGV&h0G|yLz7BYT%gM_McKdBWor|ROxAPV@8V~VA>)>l_* zS<9uCkvLJX{~StnRYAWzMf^jTF!9oM8YDDd%BSk8w98J?oN$&JN#`qmFO2wg9lcU@ z;@4}0QLnhNh(-vS-wWZ>TKW5JS}x4F`UXv^x_uQL=u(w*{YRn?suVZkh~`%fXxc%_ z>yEq4!pm2CRQ-0dFY)Qeh5F0gtHN&$C;DBObvunt2|I4j2};0vU1w2prJ2f0byhDf z(daMs5!838AlHuFN$TrmoGX%A-J*;!7(1ltmW0X$;k}i;eIM3qbTW^gzVD+;DB*OL zX2H;sNkPJrmLwP$yIaB{FS}Kos@+#f^A#7_6h0644YkcHlm&zD2xNDT&m>%9P&2Z^f z9jcsHcEQqx^UZCS@&#+Fp7MmSd$B=pxRkvz>wR_Y(pKa#LkDk{%)+#LrHH?LFBYsx zZE0b>T&5*TvB}=JOj{X}+AbY`ycD!c7GX+TF$U$^wrKwVSJ8sHTkhQ)H-0#$+ay@q zvZ=2yLL7-H^QxFZn}pM1KlNFM0d?#aBykjdB#dZ3NCu&;ePoxu4%5<*%65r&3Qu>W z(jDQsj`wJ=5OBZ2f1+J^$iq8x-O|!82UoS<&m&neeK>|jS8aay6vf_-C;k~u!NFh_ z11*H^9JhJpY_$yPrWch|0@Nbxfzb9SNWo}p=WCYq7_lya^ecxrDKrZ z+9++VOtephY$+Cs=rU<9(Jw-fbtLSM8P-?~b*VKH`euc77F2wvH5*f6q>cF`SVD6Y zdO2%9p~)5tFRPzD6ox~r{Z)EJ_|!g<77A_lVA?IH9eNlhagKhV+Z6ow6G|PUc$HiD z-Z4ln(vcEowU5aio6{vqo47SWlv-W6IqoQ>{yV%k33<*uzp2)fUdoHg_OH0E;#A>N z=Y0RQE^VbKO>d%{~ZevM2{>K4$MJC^`SAor{u<*bn~pNSf=={@KU*_O5y=%F<^PiPAhf2m8<0 zlkSl;)*-<}@m|L1MuUTjszZ!^u+P=V=?B`3VtOU@qakdZlJwMrEmu-dK#(0mwUxEJs=`*lv#dcy zq0#efN@JIC9IV0}Sev_w28#)Aad?Zilo!dPJC*sttDchODOiny$LLFoP8D_6Q?V!w ze_X|w&WWY>Hr|)kTDYk6M~V!E?vWJ9=6KOCp0l%mdePs}8y_|0Qv#c#rfl+KAF62y z8JWK~&7e?L=uI)amyK=prgUmz4c=5h*(^yzb7%wGrlANL&kkxRp4!+|4QP|Ye7aC5 zJ;h?WP%`P*tS&U4?y(bH=qajab~$b`3-Y140|bjanj9x{xwbmgsKLmobK0bB@R56C zLXubldtZnCwn=ZY3LlE@x5N_Im?;vs-hvr|YJlyhVwn=&LhHLA_c}Vl$I!CZXUkVCK^F)qEcHbxYX-?qcS^u$pDpQ zDf`-w_R~JLtSbiTEZg6e`o&&$mM_k!>esl+T(P(;lNvggxAaFZM1@zhN#7$jq_R!= zfZ4lJ7;R_4{*)b47eM^Hr3;f2<}O`2fBCY3^Er;I94>qEd!PZ~u_l%nK+*n#oxDM6*teK7JZNZ>*4E4qAT?1_ z&5~|ZK^nPuZM8<6#Dcoh2Kt4)*PYgep0#=B=3BmsmubDJto%<}f5Q@kC@ioN)26gU z=8029r%Gh5IKbuxQP8+un0VoegSH-kKE^-Y!6-2>4OHia-kgqtH{SgFFG?S@%V4fM+m>v`{Ak?NSOBZz< zd;~hR*d6YeOP1N3y1q>cv#A?96)#TgI2w}LCIzz{Jy1XgtLZ^=>3J3$Ob2KnI~`1m zXiUw35US+q0K3|g)=@m08%F)2nfvC#qPoUqA*uJIcia|;OPOg0+!ix>KvUD8y z&kjv`$8+7hD>zi=!-{)Re1y)$<0IRp$J*d4J`Ka0e;4n1=4- zNk7%n8xDhSS+NewFr>N#$)pPR?B*h49a?6eFB^dqaA}A zbB*CS_oOhU!Uh)gWSjI9q50L`7iyV9Dq#op6z9LuUXF=66kBqENVWQ=_6$)u=OCq&*M_vewz%lUr$*SGjU1W`jAxi2S$ZUpfqxWKh({!R2d_8j(xx zSr9fyWi3;S!9Bp{M^Q9=#5P7@u06~4Mqyfg%Fabmm^uzd~WFPh>y=IQ%#Z?LDb1Xa8n_`|?XupKip-7D!p0s)_s`sQ2`-`g#NT#%Da!#!x zETJc{`Q*nk*{qa-#hhB7qQt)Y!Fqu*o|F*JZKu^(e7I-|+fNoF3T zmYXm4+^yRHQ%4VL>7KORCVNU{y2?pOEKeYD1WOP>k%q|+>^4~Wsk7WM&? zZf86C&@e2B=ljq!+R6IG(rH@2+G8m#?2PqD6&aGzk0A{`^ai*}uDObisnDYBEZab7 zfrBkQQ1KeyY&)@t3l9&zi@4`qE{&rlq(v^LAN1zJ^HNWH?S>=@C_yPZg9l%#(+x#&*w z)Gqnjwp-re+=ibUxadLP=TtOgmF>r7wWkzNx%mk-WJzPlk*N{P-isrjVLsM(F;oG6 z8LA%Oa+{=crPg-xg{nTpGppj!+KT4uPR@jfm1bpq-gFw78L zWgk$+F70OR{h_)3!^(5ipls|JB?rS#$btuuJ}eU_2a>RyC;lb3KL*4G4RO){%J=!r zIUPd9AHpl09UR~hY~K!`Wihd^1i9#ts5m73+TEqG@h}%qo31 zp5g<)b*LLBKsq0iSFc*R`|q>B1R4?ftfzp(&Izc~yWT6;t;@H>Xk|BqJbP+caRSAt zCprzNWh>j2Ku`IvwyGLGSj9!lBVa>^niD8R-PI`%?N}C*2#Y3xEl;H6r!G4GXuflp zpf=g0)y^x;TvPzs^^Sf1syl~OXroP<==!O7-YVHTJ?%TUXBz->@kfeLbVPg%uB?Q1x_}+O5(%Y}+8p z=y&*kWOL`*-6`N(rA65H>xF@da>yMpF(;~^O)Msf;{7IBl#N^zpp(4MOH8vHT;8Z8ca))qwTWW$L(?Z=%M7;Bm>&|pFd}R5$2H>D!gtBL>uoz5o(pL zvAAT+*L!SjGL3=haV8nE(a7w{Fe3M}}=Z*Fb`t~ zhEVa)&#kS}Rck;_-h-0om1a%jXPHl&FN2I~r2fd-+syU9-@t*ny;1Qto2)IgO5fKq z-4N=|mZnh8(5tobjsZnoxDBE0IgBG~46PDlyHjXk_YAA4uvOY+)p@pHF!`|u-w2X~Qr7&J;V~bOv1rBCcQqjHJ%s&kh>lZdG z4Snv;HsQ8Ah*S=QeMQWIai^(EB(sq zhC&3MW$i<0H`rs_Q#6hiv8zwfBKX-s#?g$)WU1-LXTC9fW3KvrH!EY=##D_ z%LM=QULhrSrDK@>vYDBVV|7K+edRvNuLhT*`Y+c{%5eA5?11TPrin`!g*K zWDYRhl{ULRw@l#Ddwqoe{m{G-u5WHD>8|t|nq9(LM$mv^3!Lg4rC9|=Evhq__hsUA z0T|EPa95fQxl~jq*Ql*_OU(|Yak}0o=dSd3Tiye$hf@mKlyq3j39K|7vckaLONZ$d z$bLzu+@}%Wpf`m<-AdU1xj6s575> zu>`(X1;2ms$@^;UrnOzfmFz$Ut)xn(&%{#c%d#^uhaEKwGYNmeY|%()B9&~zQE?w&jHk7brm-<&;JZ4=>c-G7YOBj+Zow+|-dKuB zyzTJH`rJ~+<%t|0U^G>R=)4}j^Snm9@;JOCf{Q9S9AKozDBU|lG-3m5A4@OLOErb# zpbrGsyL^oNC!8L0s9T(whfb`CcqAFwiSaZl;({{})>U>fn0SzT6TlV|*f}{cn6*v7`m~p&n> z81a&0pG@|j1dF^5U{G$-POLudA`bV<`}x(Ju_ zwoQptEz%K~0WH#ERy+}`f%+y=VB&jl`*lYgb2JvVNVyI!rm3KOv9_{B8tK?GuhH{1 z+|e}81e=_%Z;?{j#fjh@=$RAY4hm)wldy)pj_vD*QY9NUiL4mvl*z>46#8*8L{A2b zm;&D4&T^-~D+oJVU#@GBI&9fk;yFXt`f~jp=_mH;6xu>zEO07K3+!&;+TT$(t_Ba1 z!OTUpKu2FYl_G<@MVtHokNSaCP6fGUv-4AF7L8)@(;z~Em@p0gfuC6DbgHHo*pJiE z0{Ek*L#@uT5^7Z#y1*wQ>jmx7Cv4OVMD#+04jr{QF2m$Yp4Obo_a_Vr9G0{>?IvuG2Q zvYoR?uWXSx3;S{wWzslCv(c~=Hefau#GY)?Y)sKN*`C?R1Nl804h5t8Bg^YtLE{}M zg9Xlk5%DftG6%E#8FqCJ-4A}wCEJAEV$&LZV^bPyEedWzfo>Z!EpHhJpy?i|W32ZX6Cz&yCg+6yq@_p_1nXf;;(6Z0@}=P<>5N}&Plsri`b zYgxs7FhMhGn~#M>&t@z@9CV!pkOfw@e*q;071$f+HCCmW$y8fbT2lLBY4IItB5Pj& zKgVV^V}9rr1(ZJ%$&-BX2v>J4WLC%^m56<8yR9T_lRa*A++JgRFw? zc)R52v|>bQ2As*4At7Xqsuw(D{!sPqNLQJAAsFO7tNt7MF^j1e(Q=ArFD#;qen+gj z%1mt0C83<{Y=#+&_RH1>m3>zghRc)b4w&*sGX`V~i!H=N?Zb)-;YoeSt`uVRzg*+9 z7zdK+Gz(aQsaDMrmr#I@Zw2_HjjdZj{rCq~_Sp(rN`J7>m6$@+ z?75Y+PUE+ic+Eapd^=Y{IEAq}&(b2k*~0$)EZqYuS3gH%G@b;I@qSG6JUDm<8~Hp{ ztHbQH@3!=J=6)WH-p9tg0IkT$*1iCVw}OpaMZ5f>t!qtOl))Teye;Wj>nboxR?Var zDMCR(HN|U?Fzlc!PmJlZ)ov62)DIus?8Yi?!S9m)GFF6z%=t1%dxAx*!}8+KURVb) z;9@)1A$QN3xh3+d7s(1rA*5!pb)^)y?i{+*sZmE@{FO$WNrm%&pzfCRyrUaL_WGhx zMR4JovWuZhW!#dAj%%yKjTC)L`kO=PahKuk&#>8lhRsHp(x{C72dVV2C@s&CRl+@X zu-%fz9Y>v`aJ0E5_7xI%64|l!^aerbY`|=PgKgMAZm8!QUc(&yoqhTmTwHam^)(3n z{VZrB80>Fs*+z^@9y_xUJxpUQ8`157%%=>Z=@ph-1_rsx&Xjp*ak~tZd9`N8CWsYk zWv5=J9|I<1ug9YuH+ttL7**m}R`CYZ*8NHB%Qpxn6Ki_|1LVu}Z&JJ*I`K^^p}y?= zn;6lZ%x^O#s{6T5A8wWmEPFG}=x%rE&FPt^GV~@{(UOg{kCNEo&6Msx+7*Qf)43zw z3@<*tg(j+5zqcr~r_JJB*$t`_>2yU2W`pTa*}f84l|qHjyhX!hpWXX!(L`tu?Qg+7 zeTlud1(w67tZfT@OAc1E6@3@k<*jJ>XDRH_R?-C@ad7$~U9%M7>|9GC>x=Zwl9LVC zMtQ2|s)(;;rQ4u1WUQ5+xO~5^@&5;HCVGqQdJod) zOV<1ztyMP5ON;rR)HiVKQD~#-oSy4E@>$#heyK%(ud(v2j(Z}ozstQ=tshw;sZRt0=N*rx* zVHM$Y9Ph;cOpND2$Exeietn-(e9z+mYpPzAb5l~;S+CvD zk{_|Bc0;kf&8F;zsGiDx-A%dc5}jc=T+4bc%iOqWU#5Jxz0)Grck5PhQ;Kpvk%4&+ zwyp3(NT^dz7kIhcoE7@S9?pBPV}%#ue4IE)kg2NgQ`C97-5MYGQTel((+)ARmcuSn8qP%66-K><$XAK~=9bs2c)| zArRXk$7O7mR-GssC5yj%QX9@)G`?P%srX6Gb5Clfu+y@TRa8(Q98}d6SWC^!=K~5e3eLeO=&N?`XNPo5Bw4pj&kc+myf8AqD^{@ z{rV9l^8qJVw>^{^YN%6)NWzn^B1fbA%KY}>E+fA(xurvF{vJwOSB>-Onq2Q{jroj9 zRSzMstq^kGWWhQ1Xgbu>7;2njQMM?>4EYj6E7z#4mhTX$#A+MCYfti?r~E`I#jRg< z8SP!&&HR&GP89d{Vw5u&4lMbilS*TV0Mtifck14?CYqz42i=Np_ zDSES%kI~arZ28BOs3NDOj@X`$vA;UQnOe67w~l;qhV`V%yPoS!+g0L8xJ>C&FFm(i z-KY|)@a4Jxgv|wRs{!>7XYP+7)%&pcy%ZMkvvWcCXPK5?bj6t^8l zJ+^3JQM>L*cdaCw4zQ>RG~RB#11p_iQGez3AB)0=3^EoPZ!N~DId*U_Cc)UWbwks9&XTl0J9sDK!{xNr#zwAL-}svh(`Q7H{nVi-zNND5CjKl<*bO zj(gHSVGp_Lw&Eya8J;4z1-`|J&YtxZoBYtmmz>IW6W4o@3Plw-ql|&Ma-nZKJMYPr zX2@SF;mEiJhs+!Ms1g>!u>G))9zX{jp$WO4+rm$t7 zU`dH%n?9jv?KMb4PFHT~+GsN0l(ZIh{1ccQN0|E)tUe#G7eA$f;33E5$;vDx0K9?z&r!(%$0_Rwh6spRD3yM2PxU_zGXsf-UCOm28AzT6$df#2Quj(EsWn{(IKXwSiZocu-!6~nTxyF z5LbBmwnA%x_L6|ndG<%*p{^ls2YcfXO8tZFKLkZ#8gm|kD)2OmtfbJ;;ixsmwcVOE zLD{ZVYZ`U9c_%L)(JUX)U1PqKHA`He>(eClcCl5J)W7ROYf$AX^M*|Ra+BoiVuvd! zogZ#x4=QPJk9udnxuD}Hwv4iciD!+81Q6v z>M-qd-H^y#6IBi7NPOdjclD{w+_qOYzp^Rw zk%GLTUHxqJt}ER{Q6ZQ)t7VU1hSIoklh>B)EebJ(?f3#Dn#XFspnj9ax+ClUnx7Al z^S^`q-qo}erEcN3ly2&Vut7r0`%o%f`R zEV+hC0}GFb5A$qfk5U_7J2V`-LmSzd8mPFRvxha5>@(d$hbz|iD{q3KmVAWfDDO$p z7WU2&dU@D&yAKZTHcL0`r7u-@t`x=@xriH5ysNxY4*wc^@b?;;rB@xq`PILNc#?JZEc7~m;gMB`N zg??>aVBy!a2iB3#H*m3RV3WR~Tt3py z-v5T4?GodTTm4M=4N322;iu_k%{7;P_0#yi!ah8We!j)pWmwKe{2P+;Q#R}0(7`sc zYyZZyk7w?G)2@sPi*Jq+zL#%qYbSKc$uW7uPta!f(tE?BI}5(D1*Ar(+&ORf(!Mz^ zx4Hb7A9wLO@#F3iKa5@Z7Oui`Y|3|-v!Km)6wKFWu^wk=An)sB#xpcK@_o1R;no+u z8&&)6O55G?nY%6te@M5TmP$E9V5iPdoSy~v8@5~01E!(bM84T1-1%Q;NbhMHsNV94?@ zHrD+|dW~=QW`}-)V7>GsnSxeZy>htz%4b#e%~GxB#$+?j1dXewFwK0ctVuRYAF|?l z8rAiHyY%oL%fGde+0>9iP10#x(@R^m19g?UQ&&~2F3a?4 zcrDi}YJ6g9#2?aIZ21K&z$zzu>jL#mj6)5J=aN=g z<#yG$u39YHay@PSg06{E7IBd#`7gsIr$Y_)o1a^Ib9W)x)?LI( zyn|Ib>3A&{dxV(<5f{s+(>SldeYR+w`!=;Fd#td~yiLMuJ z$}?cjuf$tL;y1I+Khsm1N_@&JV`2?I(=e4vt>A)L;4hGyIV}GdRAOg^zhI#LVC)wx zX}__vztCL1hl};UgxwCMi%qyhec@4DeF<)jBKF=Tcv^Fv%7^QVIK3Jq{lM;JRAT45 z3FnlqU83cDkc&;cOhZXxn=d0v20L(>^t{%=>gCW5_Ty!WV21yrA$+)vnf{M5edai> zG*2qOR``cBogMf;`j8KDvWdUaPz?&;({bA~mF@Ty%sYUc`W3p@dY1niIeE36O}GND z$vjqi1&Y}Ymh?OA;5A>e?|-LxPmxV_95+dcwkV@Fl)5HqpzX0zrjns(K+aEG+q;$=)-<-jIxTBAokmNwGfAcw;%r{2|{%>QDxvOj;oeSCESTiNOe+eN1C5l{B;Q0ehi|m-w3S(nj4N{ zY16Mu{>R|}!0qUI3r8pKD-yg6a+!0S*Cmrvk#nk0FQ(I}0=c#DLBNi3z^yUj4~$DL zoBIa@dJ!xAgMxwwI2GGfV`-~0dVyK-i3V$9`KZXcHS7SA^4*;5KYvh9Dw98h-?>5F z(0?^IAhx%&m>XDnzh+BrP$>Ud6npIkB*BO5(;K8;SB?v8GUs)kjlzXIDbJPOtK{&8 zOz)p$KZO&Ub+Yj0pw6GIHEl6unKt$*lFw548c%Ij87ngB(haHAEf1ueP89_|#gQka zabk0K%3jlm<^z$Z7CbKlQ>|v( z=b7}=iZ5KvNw|ZNhE3}h>8_(ZZ2jRQp&Ji#{jW7BM&}wQU~SpY^fxKb=Spp^$5L*V zF4e5Q3F^^VwyPPA-L)+37VR3Vb9Oz%=g7o9i67-iUHn8lz%r0~UAk|HdfXFEe?$7` zvD2WBw%QkQT*Ni$X_x%V3fel4&BvXIVo|p#b@J;N$Ue4@mRy$%@cqao7eBY~xrJ~X zpqHGoA-&_XV!qriJ?|`EqOJS?6hD?+6a)ib6hd6qup3X9mZ>W8NI|-x6(%S5PR1?*Rbqr?!g87Cfjun``kaoeo(x&E>B*RX$b z{vN#GV_0MxW%vzn_ZY_+Zq19VCu}J$Yl9$sj%{dz_uvHE--eR!u^-!LOy6@ZbD^Q~ zn)Hp!E?sb6lTN$jGPMon!c~=qB{F?(6v*`HVPjb$POV>I)gp}u#$HfEh#A`;T!;x= z;PK1Yu?-sBPKiM~aXWEPZZ57f%LAAekbwMK*qnBd@Fljfol?3zg9Vbup`5%2HO1W# zJJrhS+o_N2XVsM#G)kh|H;2p_VtNLd8l_*DUk60@F_zImfrc+Ud*B@BQA|B7a#62A z8EWfinaa!Q9Y5=3rr@k>O$QD1zh&tRJ*rnD^ct&`OIpcVJ79eOjj8WbWb7xF_bXL) zFL5j`gGRx2?gABMy~W5W+sE=xdA!Wrb_^*Scb^7Cmsonk%-db;kJ4Vk*@$d>RTT4$ zF`(4Q0J$B@*{=I2Je1X-aJ5~^w_KB2*_HcHnEK-KXm8Ff^}!wKYw(FiKcL(^yX0j# zDj&sY&@Gke-Ju^>Zj&5tet^26afy5!G`-`#J_lhPZce=5NT^l5E2n#;ABnJA?vZ(L zjcW45lBsf`FSBD0FuMO?*B*dzXENylMf8~p7lhX#*lQcFNfR7VP>!MB}UV(hv;Gh30Egw4>AZ4s5uFqd~AvIpt2b z^s(nEY%S77;Rff{hT*0Y_w%-#xW9bM>&Vj;8^M@fhz)eGLl3D>{6u%{pWV%SP+Z&_ z-NTq&dA8Xut+tg_%FHAWK(HL^CG|x@fgQ9^kSYSNudy>0TqgO> zIiyy%G@&x@K}$gZ`f}0<($%JS%qaH5SFO`6uwJHzeY4Xz$w#NCG?WSF|{Dy{iv+Y@Ox-uU$u}ibrZY$~gbD&5k+o?d2ULJ}( zvUXBrnUx^X+N{^44m>xl9_E{M#j5i3{(1PrI(xs;eogufHo9H<0%28;dwq49R;E2NjubyQnt&6_3j6D z!bUSRc{pxXz5sKD>Ft!^|E8mp+jivVA^8SYY^T8J)lg#kmp-9^JoU8J@+IF@ruQnJ zuQO|FWh(5o!~SvNuE2l!Vtl2qM^;?RPeNH^F;1!RCZxq}JXe_0PGRdV zSUTBZ8GgA*XY2-cSPTX_4>j2?9YEM;_0LsZla5FuVmcV<3YY&D-obI$VR_e^D zwb!J7S>)eLnr2lQuOY`1mPz!KkcG13Qa1e$(O&ToZ3yCaceSi(RyDetagxFeM;qJY zz~s5i&NwJL;0t^2+Vn>|GP&v&$6=zPU@q6 z1XrgGD+#QoJRI69c2P`Bhpk*@=SRO6hahDOzAyj_<}JOp7(Y8xuRSK8Ng2wHxgY|5 zXI2+XwGKAM4gL2YtP~K2D^b|{QlsJ;N6Yl}%YsIUxs2MGn#QVJJ2 zwUlsrw58jQZG2+bOk5i6TxNQ6IN38f$vD(=@EWpg#}z)({|eT)HFbFp_CWcuNk^Cu z@u9)bIRdcYAA%O8*s9#B`b4>3vCoAA61WQ+8~mnKjh_WcfC42u8YeGXp_}yle6Eze zh>d7mI>3JPTz;sPdGoxkR~+`FWL3-Kk}O=daK%c`jT-LM&&0Q@7!QY7&rmnAwc;rRL60X@!b5Jj#POh@}E)H+0aos5ax44u#fpo(4bmFpsqh-t_ehlyoa4c}y zL^!s94Z!ihg_8)^&4>#cN&Ez0F)$xkok#pcVDbdwCjkp56F(W~#P<~7m3-o-0)xg8 zKMgo#Jn_>xTE`V5!3+fWp@5mdV&E)bVFvNDfiY;v9H1&kzCKLcW#C+3X)f_5Aa-^5 z0$^e`E~Eh)fb)R`2wwnPm___T;5p#mfCokszX;eghIlhK0vQodC`XJXelc(ya0##h zJzEOQK*ot2d|g*KJ_&?BO~eldUS2``KiR1O5b<;TV$DQ8)EU^2qBz}xr^ki&JvcLNq9T_CU);oX7Rz#!lTU=Lu#K;pXqor8(@0@fuH zuLjOYrggjmFV#;I?+x692o7k)HvtC>BmBIVf=lZ|yb`!JoOl&*KTrcqMEXeJH8e~I z+y;yXZjK|IzEyDN48-e!azmqle#jRMoC1si=JsAkd>_2*=uLcYpavQG0_Q{#-wzlQ z18E3s0QLuN0~&z)^~A>kccNhffO=41AaFxp;uC?lk$(_yS2Xd#zzj4X1ULohLxDkv z?+IMC4h4qcz%pO12`Sha#J?S;T)Ionp_LVodcp8uDDF*M2_3=lFW%5 zHwWY94_vrL=15%MER{Ku;~uV+Ig;a&kuDHeu}bDhTw`7@b0o)|c}3<(h`s%<${fXU z))!=s;<$@I?1gf*Xh1M<7goAt;4*}J0gHihZ~TDXz-t?1mgcwsbi@Z}MMbi-pN4!P zz#XgQf#$ezz@ET3G&BrYfP9G@npS~|WcvL{2{tT@kM8zE8kP;Dd-8W9t!70S@6zbA zvf(k~@Cz|RvGOHx{DXBoFYosEM(VD8Ies$R7Q>(AALwhI>BE18>lHQn@jUJ^53Y%r z!KW$LX?#z1aQ#iA(mR~}Pj>Kl%XrlOEo~t>(iZYBRlpZR?acDLqGOp2jMNd zqi#)SSmvYCkKe{VD#e=|oBrscZ)e{BH-~T0K)oP4e7;QtvVgMnK;~Hp)7|@WDU(gAQUf*xFKo-cW?w?Abrucq4Y6B5-`z8s|>)`J3 zEfA{3>)T1FLbq>)Py^k*orJMIfeZwP&bLB{W_Qm|nbT|InH~h|0Qdb0{TFhOJK@5_ zw1Y)z1B=uVmZ&`fnk-RgSiDo5Wi(YZd8AfwXtHRkNV+oRFdDHion#eaOa%?cPC9Yy Xk_j+t3Ipd?7w|J{U0`Q6Qjh@vtI8#$u0m(bGG%p6>D&`fYi2u*NF%uwuP zM=KLDQ!^7JLR4H*ODz*Lzp^sN%#hqJD&9N$|GlI2ec$i-^E`9!Ip?1BJ@0qd7!%wI%ozLyUjSxHCc{MII~9L9Px4aPg#SuQdFeL`%NFBrHU2i?ZwLMwH&%sf z&tO8T0E{}0G0B*#qF*b+o9&E|$=$N?ln$ykw$BGw!$g?irOX~HV`etgdyfG)N!+T) z<#XJ?pLMb&jF;jPqYvbiYy@v|Cv&mp-uyFmCbqq;sD)ul(qzm~hGG5ir!X>R&>wrC zg0;QXtQUXr5W^_$FcvwMA5%h`mLGbsDEI%CjsK@i(|E#sd4G9az~xnD3)!kpgc;dk6(VBI&g)KKV1|^?II@P72&p9Jo;LSJpXA~YYE9#^#-u%r&14ob*KGk7;ofT&J zMn-q812hVwFE_GxA;*}t{BI=QHy6Gq3w@Je8QI}G2$nTm@x|E^($-@md_iUe$H6vI z6`U&nREW-iST2lTMlOZwg3Fy=%$-)YH2Jm4%#OA~&ZG_H`x4)< z9B3!w!gfM3v4$l;FA~%1DqJAm;aW%}(c!w}x9xY@>qSV4Pw3-k5>EKxaI+8?L7tOuT?_KOWqQfJ7i z@Ge+I4n-uuJkk+S08clJ(guTU{9rP@cP9KocJz*fZ^^0N$+{P;OpK-e3sC_9v7r~g z5WOIbAMIpfgWA5Zs=$jMNVP(H*#zGt6@ zEhJ7iCjMDhNj<~{wyv&cC{U@pcy0hEZNV&iQi(j)yEVZgmG*Jt|Y|-bb|7@1FSjPL2Tl#w0*mUw?RBy;9El~|%AjN&O>fsIv!xTJEXrK6mlOBAn zmNBfVkztu?6=L^sr8hq1t%Y0!A8J>%Fj2j@Fibnhy*|;}PPd%DYYpHxh`#(GJFsry z9k+)6P?WPh`J*H`S{q*DHr)R`N5SpN^uMS!8s?2{?#Zumq}BK2*OJ2MJ7J2W;k@Fo zTW}mL!Pdf2O{0PcMp&zv4d=l8Mpiymx4Q1*;6Oy z%Ump{;1Af$xRo(3CiY$%unK;rRcVy-(QYR8YFj@u=vIiWnzWX8hRB#-5%JS-5F~l0 zjKf}&m}({pbf&@xzR{i5!mvfT(sx6lu^zuBGf~XOUYt@F!GGdrSW^MRrnRJndO9%t zR|hgr2b;+1*hpEJn|u=659X7$*nD`WK^HdzAcU;$w+1E>|M+Fm-CQ-(<$6X3Y&frS zSxlOd-PkyD)lF}PiRxC{%{a##!9Pd##p@u4w8e+RZgMAHt9<>Sf^Q-L{d>kUew=@+ z>?yb?XNy|ck~ni^rn1dTuhW{%PGO&2RgY_EIn^PXdAFU6?jI3-$q~Ru+Pm>uyNVx$ zJGIuX;hpXtJaIAo<*gD1X!u>Es=rn{)TQLU=)6Bd-TJoPtCnG1g4`L)wcIQ+1oJiI zoBokdLfZQ$j(N`6i(hIB=0A0sxo-SMr-EZP8y>wCnE!Cc?8;2I2rOe^*wuPXtxGuO z7|iK7h7IQ3PG+;BYezv%*ACN){eUHpu%AE3jD+QCZ-<}7%((?Mxs?!xG_QPWD$FD^ zo=S&Yvh}HC^;<`DCG9m%p_2UgRGxZd zTWGMGXIM&O7sPRjP8Acvr;s~I(*j3WWn4!kSb{9CSct&LYGOAmT5i&-` z0pgpfxyNwwVM@g4gI2|EmJ8v(v?@L=I2x-;;DYrcXXe zr(n7db|}?Jz_emG@fz3xHZ?qMG^S)oq}Ae5MiN32 zmMikq=5gYYM44%%In%V(TwyB8eTNjJMkY#M!82R)fq~dkjy2z$D>JR#P*MJOYl#Sf zQy_RE$iCEqJjavC>5$tiq{(^O_d4K*X@#-kHHee9$#fM9LV2H~QXk`iVZDu-#>|%u z_gCn=jBX*+s=#MEnfxzpcyFt>Q7X@TSt@gj5(3IF_1%FyvhiO*BOM4?Fv|EJk1|aE zC!@*u)}u?MS>VVr{_N4A|D;bI{XwelDL-=bHm0S$knsnOMhqu+|D}hyByi9~-C=AH z#QET|q>l@ZMqtPP$;KbpATDCj|BS6Vx{8cR3xSWxthBi(o7>W6D5aJkko5F* zaGRV;e;@uJ1%t!8e}?V;o^c1_PXFO#{oq#ufB3KB-B|o9@gEYR{SHeb8WkU$>tF^x z9$tnEt#(FWjkid~knmt>kcSd{JPXTtj4PygNN)6I{33y64Awn>X=MN8KYe66k?k|P z$dw^cP)A_s2yGu6OV#)`^LB(U$Gi=kw_X}c=Bam#OdUE-=I0`HLwmxf`)U+xBuMNQx|2^pRTn@GX%9BjFB_#k*lt_}}N z40qI4!KcjIEH`7le!UB2Ol=j*`Rc>?InKa#7JHavJG5W7VNL|g_2lP}m=QBjM_4yP z2S>?XeEvqxk4Q$r2!@creU9~i>NZT@FgM~8mZ3fQsU*&@5Z)nM4XOCNXjlRV$f%4s zSW6aX#K2;*H6vFx&Oy3yp~RKZ1KuJ*nL1hA45M#6oL)Y-k(H^*}LOyWv>x%FMu@r5x*$ zakU!`VeJAEl^ccnMQ-l8#LwN=s^p(m-Skpyuli_h9OuP41r_qZmYe(rFP1H0EczmK z9gDJs&kyFmCt#cm0c46%2b0M%wH+Ll~cHQu;2gG zS$MSn|K!&ZZC*%BigRN7Q~y&wXk+-rXq4k?svE@1ZNkE%nKh}F!Cj3k>&%9f^Hl7>IJ%b=BA$vw=1-cxe{7eTE zYj2Yqq^;p_SXMw13C~6&ofgBnW9#ZCxZO(iIAeAh3o9Z(- zw#F`4$(=D#@FEF(I>`U9ZBlcKsM7Sr@*hd^)5+dxP8^RpMhc&v7PiiH1bgpYf7#P} z3idwS)B9d>?di!Nk|FsqNK!NMr$7ohny-buAeIPYXF&#;IxY(p z>e_Ky|25A4tfqo|J1!Dx$gOeFkWK=h$@faPceSeqlb4?9ll-aUF;JvwL-h+d?UyXD z%OQN{Xc7IGn+>}%pSgG-^Vy%SbOh_9@;}I-XTpM$ML8pDh5jRc%CR&*nMxq(cxDzj zNdB`4$m5nhJ26b@V4|}u%+bMOu<6D60l2tHxHzrdv$(g%DrY3W0R@rj@z zF%!mwO|mhuA+0T9H|Dr9=#s%Z@RDq|L4q-HpjYaAj6wW+X z^Zr1n5ueqdf?Hfsyj*v@IEcT2rDHv%%k?Wuk87VFAH@Gc#!X6u6Qp92R{2G9cYZwC zKIwt?SqIAn@u_6%JW(lSe6a z3S)OZ+^H;IRV3-x-T5_GN5&|zj+X1eb>oy#GPJamSWD&f!df+=eC*?z3yvr}_5Qc7 zF2{fRD!{(vo;tOip^6&v?6hL-a=SG1M=n4y^gr8dlrfvhwP~BYpSQAHcm5PvW{QF^ zQfrEeDs!-AU9Ih)W!jI@)n-xSY?6>ZGud+&IoE{F^MF5thQc#ercK*}0@JjovDJ<<<=B zjyVk5ShH2ok`c30L!|my7lHAUy~Y^s2kK>LmDz+3$hz5CFqE919j%pWNJg!u(Jgp8 zHKS!5!q+-g(+y{Jiv*g(!uyMiJ}8gH*^dw(e0-+Q8HLZ)b0mD&F(=Yrnz@80l^#54n-d-MxpN@L^zUqo zGoue;I^tUe;>_Fv7*6KSO@$~@J6GDFQ*#s16zZBgKmIW^tLp~p!}H9D7gOw#4H@e6 z-_?_^xAh$DziZ%7ojENzh@Vb2ygUX@lPfQ$hJWagX@UFbrU~@s3mt0N@eYNIHM2=} zVK7OU7c)reRi5W#ZZ)aRGIO3;#c6UMkA(Xs^ta2nYn47VRw31`=!{_OLILswyD*om zn>P$+cV=E*2z%HAUF=7KW1aZ?6FA1bG9@t4nY|zSt6CZM8NGL{O$Z^IUYUYQW9KXR zu!dyJ4~f(q)U@12g-_GyjqHqx#kyTkgd-s3*o9ZflKFYiNRH1>fDg&N`Rk&3IDxea zfldaWy*%jm*|^SLT*;Ngf|)`cy{mjUJoV z?FLDys9-#P&vF9A!vgy_y(|jjz@*j=rn|DniUwhRaZ1oGha9~ZR^elZtdCM>+HV!M zkxj*^Y=@ZE?3E|ecS}}uc4Mr1!KUrN;01HTa zNfdf`d`rV*A#T#Q^ttE~v?!C1vil^hsZ-+IBAvkL*ITO4Ad_w1Fuh7+vdH{x|?KF|2{u*jlPE#9a$;{N8R;WA!1 zAhllXg!Q%PJj$#(m?>*Zs`rV~dqx613!^p$|}Oo zI#j4J*-&GWMdg?as^)M$?5R3UZr(K9$dxj#n>n1bI3xCBDnT{g-+^ z9dSrg7)w%?Cw7m8U@XFdNgy+akm14Yw({ zYB7O1fFP9eI8H^dI@%U(QDH8I?5l`|%j6P1Zxee(oUG4q(s#wb(7c+uV!7{|R;I7U zGof{)eT5EY5%tOq!Lg1(^>JJXPAbY#C|M^J64vcq84lMP&a4cBnE5C+G_BXF)L3Pi z-R#-yW7fypy!i=Jwh667y}HpiObqS2+oHg^^de_g&+xXoV-Ze6NXi=u*yia@Ex1yOp|k{fRff+biWi zqF1k5iI#x+t*FFEhen^l1sD~4F9)zDQ;k`}D+27TK6x6wCOL@{gjbL`7g)<8*=A{i7=hGH-v}uc34Wx z_5P^GG8Tr-fB4)2|5{PVBgxev;lu1EGx*6`W6pAw1JzcuroMbmx!BhrVSpg0JR<84oUsOH%*6V& z3Bp6WR4=q%!2^_w#{wVMd~it9@}GMCSkGej!g{O+9?(`JZhg|{Z&(w37al11W1l^+ z?peFKn^9qYp?)TtlNGx^5T|@~V=x>iT^pN`GwyqP2$J2cx0BJUt0mFs0m>rzY9*4- z(AG!7m*jnt2usPgWNTQ0HUHtmC5$c&mp8_iEk-kzhIHeA*&^b2)uPKI|$%obh9b+?jZbQ-oB z|C_s#e=wRpysQ5!O7VoRm? z_QvN?(!N$wE^gEz5Y|X7`izk=xVGG@VtKi=XB*M-VxlLBeTs|-uKr|0tqxuw^|j&f zG&xrr9sZ{kqNNj&$E_u(cyR%obSB(R{67jo?^pCkDG0;K9~D9z=;tb;DH z_2U?sTO?n9YyuaF*^vjMNbwF`z-g;jk)rr-P^OUD9pMm6T6UB|H!|pxsDPQ)>~gPS zrN_AJ#-AsJpM?A8W7*#&hsefH#_5(iu8Nh_N`~q5Q%n~776F=M62CFrPwcL(eI!_j zd}pffC8tWK==4P+p_OFqoE&gMEa&nczBWCXi!gTMMY3mSM)Wr41hJ1sqld1hVpXSx z=@Q=cU>w*Ud#dD!9%UqOS4h}pyO(FYzsJgd`00XR94mul>P9 zvn!;!UVqm$+`rP@2kSm?)l{+%-D8=q>Y|!*HJema6ye9SP=-?f2G(Y3e8k3UD$pD%=G$+FLv z!)oIEJRD_N*uGKdA)d7_AL2;kz8Kg}uI!7GF)pI2>w_vnLR}W(YjIr=yiZowWx$){ zn>q^FWLkZGP=tL_1H{I)vQdLMxh~Y`&)1XV^&v^SQLxuWBynBB$0A!Pr6))_Y}e7E zF5!JqR|)I{QKzX8*Mr0-7$;Hf?;ms#J)wW^qeZXAT^vqw_vffb*%h1wuH9tQ{%H7w z9Kz>Ha&7-GxJM!zbhw&~h7kCXOl}wfF=R_aI=n|NHWZ+amiomel$qat5e3hadtXF@ zF9~i;_y5%%&t;<5Om6h$+sKqgEes;1jpq^Id0(dE@>YJiFKDcNG71d&mR9kw?q5bj zgg>84a+*?M2`Otzfn#J}Qy!>^wJAUFJf0yhX@yv(4Wijsyztn1@_}Kni_ilxQ^q=# z|E$RHsC(v&+AcwKnM+yJR?Nk*r3PNZ#1_}g$tczFD#$4A64KEWmkuP;P$LQy*_WB- z=$TzYn%E`u7fml~nw5NCrwL0ENmz3p9%9UBu9Xf$4_1Mhkb{Z1&JzdIk-<6-hT~kr z4y6R#a%Gpl@r0`V`R5v@9Et;2M^+z>4%uw=5RdoYKo|8YoFKZx4v#^#BcMeWe+@PJ zU7a$7@E3+-W})Mak%#l++rD(EX9LrnDp@_^Vo?p^`LUdSk34CZbf^bhHWSZ_Kd~=y9z&mZJO}T?wiVMDCr)kNLnR<6l6H+K)daN`Mfv{P<%B@V&CA(F+}P{+t}+3=WZ5 zClkZAJO3BZ`47Kc;ESO4C3{aki%uXo6&+M`sINyg&|phR(D?BaN&2ZFK*{1$$sxTk z{6*rye{Ypdufz5$Nz18is4-0aIs`$#`0IMKnq$6+_s>RKXaIV~{gNI?dcrqxh^uSA zNeH}&@eg6GUP!DNoIgVGbMnnMG2ln;eKQJm!Xc-V0~&0;#&pgQ@dM($AO9ICJDrMT zUw=9pPl$dzoq{6E_sj!$hPcnfpwlJhY(>}>n`dpxzh{>J@H(#Tp@c?fgW;)$AI}Cs z$a=9KmyBopF5!%*h+we@bAa#Ub2~H0>|j3!Y*Ni^QDaBg%5yrUtKb0M~*BPz4@^v{=2EWKP3Zkmj~<^!;6GOF>4azA$9a&5<(3dlcwp zw;27i62FX9ww8<4fuPfHzWg&SlF9H`S!Sa9bI{l8mI9%OdccM7!Q~vp_&u${Qw8r^ z3e-S+`E52s{mh7u_rEKC2Q`@wep0iNVt49+uWlC_WDF~ydS^&xSaR%w9(>643n@@d zLM|q%zqCqXDgeWg@-L<%Z@ltdNJGuVnGopfW=rbor&s49`{5%T$zp|N{AGNFUnv(4eD!AGNhe^>nSjV6kH$S|A*UPbn6wmQ%Rk8 zO11ZTs_soUyMT$AyVakv%!evD@f4I44m_Xo6&fFRdzE9 zdXjB7M*&Z6-ONRsFr{N%;49+HzSZ_eys2oDcpd_fvz_nI`LDDxdcz}mhMYxvmpD7- zK@yq!R|j&&3AgY>1<#ke+Q&YDo0ii*-2)ZVPc!AM-T1R4<@OZd$cEct$c=X2UILeh z?oK{h;Kg^ec#^!~&SJz3<=t(tne4b*1|x~?UKCW3oO=oIS;NA6fe;yDXXhFl;?XA6 z&BX|xHh8QiKGN$WYVQjwvYjssz8ne+9;l=yO?&y}8T02!XDUoR(RFTsR8rr$9kR%T z`}3i;;ne-}GN^CZ)RhH2buKiYi&#$0zlrvfrX>;2EyiY$yN^cWe1{0LBM&=ou$INU z!Utua+V2vUyS$j7)-Zh%_mlX7h8OmdxVg@a^-I~ln}u{#Pn$R_vd=o+gkPl^M3KD}0ag;5$g-HIe$_`oVR zu0S(EV>peuO`Ar*JQ%cTFGNB2O>Gbib(`8@GW<+40D@p6odB>+9cS%_o*k#4rA~l2 zh@&wwNDVlHabpr`_P}or;Zr(S1~DL`LYhOmfT6u#|iaUafw5m8a}Ek-;*RuA(Ro&qr;-t8|YXMuCC~awt&eSxZZj&=WI) z7APPGBIr&9Oav2kDE z&&Q4Qj1njIGxhZXEqK#7F9`P^Au>@C+m}vm$Ix+J5ahc_Y-{&M+ZxYH>3lC35*Y1F zYOW~-WOSjP;uZ9e7tY~pddCZaFpLI!Lpoff`Q9*2_pIwV3;J|)4#CGU4pY7K585SB z5UOv*@XmX}UV7Xc=0-n2{hNsjMK#JUl)8N^mi>(0E_~!tTGogZfg_dY&~YkQnb7PE z#iOLhJtSif;ga^jK;LTdvPRupE?zcCHp}Ai2gX5$DLTH;m?1=gUSx9TUB!QAVs)|47g+QC( z^fz`2Z()qzJz+N8(hZuRo{kHEA)upG0k9mNrT!X3ViFp1r-5NTYk4;ejG&}> zVK4@6QW^#cu!NopgK3CF(Y@dSoNEdThg5(SG(Q3&VJV#-ffJrd*G0fi=+%^>MSO#W zbY5>rgjsZJZyeD`PxMB%GK}7lax4vs#Fg}*BO)PMCOGIzkq`^F>4r#bah4v91OX<| zCKd-tp?6pq5)$c%_1Kz8c<^1+h@Koq(|T9%p%@|+Cv)5B932dVKj=0c()eQ9f~7!c zyABC;G!4*0;jnpj3>P;m(LYesVlwZ_l(kCxX>GeJ%t4~WV`c1EI)=Q69`><1U*lb2 znwbAkgFA9pc%C-uaX&5efgZL%6|IVbC5ht>w%l}7FwEl_p^Dz;uCUeSZ3G;oat;Q_ zv_T)4MQvu{1RUf&n$id17)J~GKxAN{%_U5BYnuIx$LEIC-xcQ4jeU@ZPNt20AQyh2 z&OR_pCR*vtXfPmh?udqluw_>N(F~rqjASfxE9)h<>evP9+IxbI7Wc)Co=?~Ig;NM; zj9D4syZ?1#bfuM(An`&s$Tm!Fz@4U3GIkS3?4%>`r`sJ=;Zz| zDq;zKkbL<)jg4L9%N1sC^ijX4?@@bKusNEJ^@mXKFGWR5(`cA?Y^e`FrRhcjoCj#2 zjfqeOGn$f0~ZoVb2D&u=jgHw+`LuvLbF z%o$A+M#DLPrA<*!!!>}3R5=zX_|mOo5$d=jV{y!rG=3a(L0*&Y8Sn+gU&13dO?nns zxIxD~i%jk`UH2?3!Ht)Xhf%5?s0Au{wT(VE9$rO3b8b8gk*QtOX96sRa=K;$Li%HR zaRTH8C!n}e@_H*@nvNl$a+$eA#ZREg&mrD?NY_3G>!7|Vcp^4eR=o|(I67f6Y=SrF zt;r|`&d`m|?3 z3dKKO2I>cDk>MlRnx$ zH@x0dqN+zT>yV<;z}yxB>9W~~5SMA78HK=NnrueO_!nJ=R~8_e?lq&ZJ=8R-5H}eY zvwIF$WhlY6&%;?&Q~Nwbti?^quK>sZno^2T2qSFf7Q+=NY|2}Jcml1oY$5i66tf71 z1Z;ODHS0M>hmQ3;CI10kwg`Df72UK5v7m&WT7)g8QDG7C*eV*m7*@kox@R%WhgWF$ zt2nPpy7*Pp96JP;TaS9*t0*dF(0i}qN+&s0_1#fE0E@0rbF8VZa#y(| zFRG|^2~Mz@PFRAfLp9yF1abXl(~Tua2;iW5OL4^u==oBl#jog%Qpi`Brgfe7TNFi-Yq0HlIT1Lk$Lk96B-M0+!q`Jwz4Dw|V z)HJFb=E-F4BlO@3=%rkRhrD8Kp~AW<35sBr==Z zmkaN??+V|z{t{lWMzAtIMI10XRL2%D+IHbEQe?SF#>a_FSNSZqaPR<~Ql=bq~9bM%(_f9%*6@;miY=5E9SMqPu4XYqn*;&sp>*(%PpbO5n zDU6{1$N=VzSzwYtbyLWuS66}7KgO=?)IdqSiu+3#N7bugs_c=KnpcA!?$ULuVMf4o zG5>x5V=hmuWcu6`_E0q8h6E22YjWT+cr4ERhg%k;)piIebj%wlOZw8;Z=ie#qE&A| zqT;4tbJJsQAaCiQ*WN&W%hH%Nkd^SUJIu)3TE%3W{hpksQhoQ@o5E(dWo=#N-(7Fk z`(xR9O4q=Ye3M)Af12b!{BVH^D?E#hP&0WlAH)4&-Q`$nbk~>-QzcLSyoC#=Eh<i8*@EY+4vAR?^51cr7(HIBtOBMJ~xFhTJa{tk9pP| zYwQq~;!#GsFwxC2Nv&=n*j>&8b6T&*Y7d-0bjZLh3~`}54}G@h^ja*v>FjM}FqFva zQjJ+xhFVLeFOId4THl1|D^btBydHPvH!4W4^E7w^Ob-6Y{zC@?Die#VDZtY_m8D&{Pgib$Xy2-0AwxNB*Z?_U2dtix!U{YO9%G(o@Cv-t{}lt$+9n!Uje`m_p&GIK5US1{!b?sj zW*1lECA%b1Whz}(4ecSf9GUkO%&M&ZSs2UOT~~YZ0mI%DKA>eAp+E+9`rAh6w|orV zFu^|-!ya_y<~u^pKY5uaKkT2p+>=lJC$I426aL97J^AQ=@?M_2_Mg1BCm;MzUM1zb z3;zEUs67>wbj#bQu{@wHZ=>9LhoXE7e&#O5ta>BT10QUaV#y@FAjQ@Bax!!dC}O?a zP)9^K)U`xRxqKKK%)$QjPy1YwMg|eXd-qUky5Su?+K?psg3(J ze)ojz!?PZoKzSt*6TU!UxD<*Py%>ez0NTaJ@OK!0_XP2fUL)2tD)|SrU=u>+GrD>cL=HA%saIYs-tSblN&vv2a!=1G z%2mxR%Jt%xHcNxw6Am8|g}0iekjy#*!>rx^Nbql=ziom(D3Rsw!XTZGU2}M<*u##| zz9YXvyhKKdfzWq^%`F45gFl6L>6CXN%DeTb)PFf${VohyKKlOHq<02p(lkk z2I&42`r^$$z(DhMf!GZ9H}o{zclSsNV{WzLHl%U4gf#o=OnKV~#Rxy|)+md_|6Y$^ zEK7TTl6mV&5`K@hd!r-jme9w(5AXk#hBKCqaIAIFfT`GC6`9OW1G%01(>NxF4;GoD zcsUo()$DC)l7|=#Ky+1SE-F|sd)6X$Fq>2oos?GMBb7>Fm?%SKvMe8yg4Z9AHsqf0 z=rBF`E)0}49-+2(Aq_Uu6pH$rfli?)6Kd&V3Xz5Fh?eR+RioN`Mu`B{F&hg}oV{(8 z?yy3gbc=PWsJNx%7osI3-R0IaO2INpzTJ-6`{T%DDLPrN;J-TRGg8&q-F!jnN6)-H z2m5)+F85qXRr23bCl2o0CCV*K)bqWS{9u~688w|x>Fmvr9Orb2Ey)*wS%j;Rf{qzJ z%_ZGel{}726jLqTEoHI83H1182-e-l;3?SSrDNXlwkY`()Ccw2*Fd} zz}6B(xmw4LidZD|W7NF`bP*5iGF=s3GubPu8D^6_O7^J&{bR7{u5i~yhrS09@t*<|_DZH28f~2h(Zl`w*A# zi}-3pz*CPdMi~|SB~fSWk)+_;#7JW-zR!tT<4}B`5yOpR@qLP}dmmDjt)hYtqNm=6 zAww>T(#3>b&HmVWmFVYbT`u|fF&TdW72vJJ`g7rJ;GY|(D?1VWS} z+mhJ6oImNRnHyU_jb{{c-a_MRATsC!Tg}{Sc>18YXn4dWYj84zPOU*Bs3#>g$Xm^{ zsRm;FIlHkr|DmH;g%w8ATQ#UKB+!Ifn9{A&#vC%-4@$;c>4IRT@76-B>~||YRtpiq zI+xtSqMox#GW+$gJIRb2Ogn2KDq*qJjAT0;!y=i@ntCN)WffZjjeF~%P;I_k&qODO z_v7%6JRjs%^2=$)N4Vl5I_)DErcm-Kk=A?!Nobt6eFVD5NToBeTjK>rtGqkpHB-uMxYhZ?H@yGaEjQiSkL(1&8$zd519ouS~?to7QEvq8>#yXpF!sQnM5`*uQnNN+K+<-a?S1xg+C zp`AM+C~gnlRuvnAG2Cko9vR#f3eacCY#v)Lxj0zv2D-iRm|@FZp@k;wf{j7rj=YSn zT?AXMH}^)}aCB{E(6(LZf1N~~yC70`&YjN>@(HO&mw#JNi<~tr?2C1}TVa3gs`#2e zg)};BH+rzH(5<^+`LMH2UyLDc7rt{=ye7q8d!a*|(cTc=an#gH<$FBw*X_bw7djeR z-&zoBHkx)-swyOdp_ESk6o#p%BQqS&+!dzNZJ(k;budlegFctubjcpHds=DB9!Sl* zX|LEHEuM^w$D7eMt{xT&mr7*lnoeJYjn*GVIIBsIZ}Qk)$M~3GPp&j?}JQV#SsnOp)zC359z*r za0uDP+&c767148b=%DDJH|o%#HH}WG#})3TTafU4pSMphD|piz`)sBD`=KLDC+ayr z6d3Kod<;f-94ysM*Djc8Km%weW?H2iJ?%oaHP;-)A-!VN1G!R3UldG_Z}dpl)*pxK zYEUHqA>4MynrlpEvjw%rH0cTeqi?O5!^B3m0$=K?nbR&9>B$cjatCZNa9H(PD zL=QH=LHK|!{sOkDFIeNs)?jfS4R3_>fO_k$IUQxyVjp%X7Dm$upc_i-BkB`gW_vFeuQV79`hD;tXM zWwhZ-gl#rOf6o|H5c8YR#yCjlHo@x1Ylu%w>kCP!&v=xOa&$rk*D{u#wV~MZJPkO2 z>@$<59Dve{iB>RLR?z)55u6&ZDSn@xFkq)t5D#@d52O%=# zx=V3CLsP;1DHu^#dPg(_PQ(>GOT7<4WYlSwR5J*jAksTflvkf?$0{J-gFP?E<8BLU zXx<@+irV2aN(QXA^3r#D4Td`Y&io-^y5SJS2fXgW!miE5UY!H6 z5RXL(M_`=#pQ;MI9o4!4QEwIboj?cl9eVTx z`VN1gVJGnj8d`JajXiFL;-f0bWX!@|Dzm5~63uiY3i4FTW>+HYNQjyeKl84!j0Y zgSCv#B~V)$V#iIo#@ zR+;J5wmQ#C|8#Pi_PTJ(MJrE1M8XwU9rnT&o7<&mr%J2Zvc%KNMcZP}`y0G=`%T*d zPx?4*I|V`h0qFY`HyS7i zbmP~MtnK02jE;Dwdb21?+AIPqftIoKwq)TXXVa@+qmpoiI=_Y)zI(*q%XCYVuv|yy zegokVBi(X+6ml__kmy?cr$nRH+rVs<$(Xo1^rLTJuzJiL@Z9tIfZq59hA9=^a;7JZ zISs?YX5znhkQ9VfbKb(6OicfQt+6=QzmQKXI}OolA2F^>z>zBGp3{hZAJeO+QL?>4 zN1Q<>@&cW42BjiLH=IG`83pkfNDOU9N?uijerIIyyu%Cshfx})ZaL_qGcX5Hqu?z1 zXjWXDnBx!qL)8OVhrEf5}8UE&3J=-L4Bx_m%buHP;HS3!o=;iN_0B+dm^mE`qH_x>1Awe1JOl$d&Zu}nVA(dvG zM?G~XEj*8U%UXI_%Dq6{7%e*FhFym~?i)fd-lI^Vsc}Q-?s#Hq=%m~O`(qFI4dK`! zkABjzWX&~QhH>Aed$pmI&&ddsk-UUFI`{w$Vj#&Tz};tI}UYWFflT+oH|dZsI*C^avm0L&S9tOKT_ z5Aru89X=-UysCR$xPX_9H7z~lk|&hm_n}X~E&S#22|N^r(tVdui=njZ5_B$)ZALzcet2mB zwZ{!34RjNu05px)g#fD?qroMJUKfJUZxVqX^~%{1#!T~959Hlt{cLUd4@(xvX5cCp z924JSRr(b(f=6b~G(3{&Ghga4GIKhkUok!ZVcWuE;^ri;s1q;cKg>uuCYC348zrCB zZB*9qSy|?+hm1VSB%hnbvvTJvv^+4K{{9o5sq-RLp$9uRHvRF0iaeUIbiMVK!_d2Y|LRQD z1s2(+7PVkW)HAvp!k~ku4YAp#HGR=JCaFostCU=ACj4|mSV8AshOiW+t6+l)E1=?x z|LaLrFI9}jpJdP-tE$XY{Umky*OLPjsY?YtbQv8tpV8}=Au4{b>x)ddu;5EqdkO|{ zr(=l7Eg{KK6TWKyfv`3Enf}+>kaoq0=w1Ng%9jB`!~?5-^TxdRAc~tCY}Eq zghVIlDhj;wju$XGn4ZsDSSY9{NYrH%$aR4Cq;aL}gb7Nz=QrfJy{PY1i19v)2cd2} zP)WZE+h7m9d=(;P$8FSh6&KKOkoL6T6h5?3g9S{mjMiEpB(T87@LC�>Ul`4&VpT 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 delta 27135 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 ScU-VLD_6-=d75pGNc#^&HRa|2 diff --git a/bundles/mini/ING9188xx/apis.json b/bundles/mini/ING9188xx/apis.json index 1117837b3..3ef59b0b5 100644 --- a/bundles/mini/ING9188xx/apis.json +++ b/bundles/mini/ING9188xx/apis.json @@ -32,314 +32,315 @@ "btstack_push_user_runnable": "0x000068e5", "btstack_reset": "0x000068f1", "char_for_nibble": "0x00006bcd", - "eTaskConfirmSleepModeStatus": "0x00006ead", - "gap_add_dev_to_periodic_list": "0x00007519", - "gap_add_whitelist": "0x00007529", - "gap_aes_encrypt": "0x00007535", - "gap_clear_white_lists": "0x0000756d", - "gap_clr_adv_set": "0x00007579", - "gap_clr_periodic_adv_list": "0x00007585", - "gap_create_connection_cancel": "0x00007591", - "gap_default_periodic_adv_sync_transfer_param": "0x0000759d", - "gap_disconnect": "0x000075b5", - "gap_disconnect_all": "0x000075e1", - "gap_ext_create_connection": "0x00007621", - "gap_get_connection_parameter_range": "0x000076f9", - "gap_le_read_channel_map": "0x00007731", - "gap_periodic_adv_create_sync": "0x0000779d", - "gap_periodic_adv_create_sync_cancel": "0x000077c1", - "gap_periodic_adv_set_info_transfer": "0x000077cd", - "gap_periodic_adv_sync_transfer": "0x000077dd", - "gap_periodic_adv_sync_transfer_param": "0x000077ed", - "gap_periodic_adv_term_sync": "0x00007809", - "gap_read_antenna_info": "0x00007891", - "gap_read_periodic_adv_list_size": "0x0000789d", - "gap_read_phy": "0x000078a9", - "gap_read_remote_used_features": "0x000078b5", - "gap_read_remote_version": "0x000078c1", - "gap_read_rssi": "0x000078cd", - "gap_remove_whitelist": "0x000078d9", - "gap_rmv_adv_set": "0x00007955", - "gap_rmv_dev_from_periodic_list": "0x00007961", - "gap_rx_test_v2": "0x00007971", - "gap_rx_test_v3": "0x00007981", - "gap_set_adv_set_random_addr": "0x000079cd", - "gap_set_callback_for_next_hci": "0x00007a09", - "gap_set_connection_cte_request_enable": "0x00007a29", - "gap_set_connection_cte_response_enable": "0x00007a45", - "gap_set_connection_cte_rx_param": "0x00007a55", - "gap_set_connection_cte_tx_param": "0x00007aa9", - "gap_set_connection_parameter_range": "0x00007af5", - "gap_set_connectionless_cte_tx_enable": "0x00007b0d", - "gap_set_connectionless_cte_tx_param": "0x00007b1d", - "gap_set_connectionless_iq_sampling_enable": "0x00007b79", - "gap_set_data_length": "0x00007bd5", - "gap_set_def_phy": "0x00007bed", - "gap_set_ext_adv_data": "0x00007bfd", - "gap_set_ext_adv_enable": "0x00007c15", - "gap_set_ext_adv_para": "0x00007c85", - "gap_set_ext_scan_enable": "0x00007d5d", - "gap_set_ext_scan_para": "0x00007d75", - "gap_set_ext_scan_response_data": "0x00007e15", - "gap_set_host_channel_classification": "0x00007e2d", - "gap_set_periodic_adv_data": "0x00007e3d", - "gap_set_periodic_adv_enable": "0x00007ead", - "gap_set_periodic_adv_para": "0x00007ebd", - "gap_set_periodic_adv_rx_enable": "0x00007ed5", - "gap_set_phy": "0x00007ee5", - "gap_set_random_device_address": "0x00007f01", - "gap_start_ccm": "0x00007f31", - "gap_test_end": "0x00007f79", - "gap_tx_test_v2": "0x00007f85", - "gap_tx_test_v4": "0x00007f9d", - "gap_update_connection_parameters": "0x00007fc1", - "gap_vendor_tx_continuous_wave": "0x00008001", - "gatt_client_cancel_write": "0x00008529", - "gatt_client_discover_characteristic_descriptors": "0x0000854f", - "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x0000858f", - "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000085df", - "gatt_client_discover_characteristics_for_service": "0x0000862f", - "gatt_client_discover_primary_services": "0x00008665", - "gatt_client_discover_primary_services_by_uuid128": "0x00008697", - "gatt_client_discover_primary_services_by_uuid16": "0x000086db", - "gatt_client_execute_write": "0x00008717", - "gatt_client_find_included_services_for_service": "0x0000873d", - "gatt_client_get_mtu": "0x0000876b", - "gatt_client_is_ready": "0x00008809", - "gatt_client_listen_for_characteristic_value_updates": "0x0000881f", - "gatt_client_prepare_write": "0x0000883f", - "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x0000887b", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000088a5", - "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000088ab", - "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000088d9", - "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x000088df", - "gatt_client_read_multiple_characteristic_values": "0x0000890d", - "gatt_client_read_value_of_characteristic_using_value_handle": "0x0000893d", - "gatt_client_read_value_of_characteristics_by_uuid128": "0x0000896b", - "gatt_client_read_value_of_characteristics_by_uuid16": "0x000089b7", - "gatt_client_register_handler": "0x00008a01", - "gatt_client_reliable_write_long_value_of_characteristic": "0x00008a0d", - "gatt_client_signed_write_without_response": "0x00008e11", - "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008ed5", - "gatt_client_write_client_characteristic_configuration": "0x00008f0f", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008f61", - "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008f71", - "gatt_client_write_long_value_of_characteristic": "0x00008fad", - "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008fbd", - "gatt_client_write_value_of_characteristic": "0x00008ff9", - "gatt_client_write_value_of_characteristic_without_response": "0x0000902f", - "hci_add_event_handler": "0x0000a565", - "hci_power_control": "0x0000aced", - "hci_register_acl_packet_handler": "0x0000aea1", - "kv_commit": "0x0000b609", - "kv_get": "0x0000b665", - "kv_init": "0x0000b671", - "kv_init_backend": "0x0000b6ed", - "kv_put": "0x0000b701", - "kv_remove": "0x0000b70d", - "kv_remove_all": "0x0000b741", - "kv_value_modified": "0x0000b771", - "kv_value_modified_of_key": "0x0000b78d", - "kv_visit": "0x0000b799", - "l2cap_add_event_handler": "0x0000b829", - "l2cap_can_send_packet_now": "0x0000b839", - "l2cap_create_le_credit_based_connection_request": "0x0000b9f5", - "l2cap_credit_based_send": "0x0000bb39", - "l2cap_credit_based_send_continue": "0x0000bb65", - "l2cap_disconnect": "0x0000bbe1", - "l2cap_get_le_credit_based_connection_credits": "0x0000be31", - "l2cap_get_peer_mtu_for_local_cid": "0x0000be4d", - "l2cap_init": "0x0000c221", - "l2cap_le_send_flow_control_credit": "0x0000c317", - "l2cap_max_le_mtu": "0x0000c621", - "l2cap_register_packet_handler": "0x0000c749", - "l2cap_register_service": "0x0000c755", - "l2cap_request_can_send_now_event": "0x0000c865", - "l2cap_request_connection_parameter_update": "0x0000c87f", - "l2cap_send_echo_request": "0x0000cd59", - "l2cap_unregister_service": "0x0000ce19", - "le_device_db_add": "0x0000ce71", - "le_device_db_find": "0x0000cf39", - "le_device_db_from_key": "0x0000cf65", - "le_device_db_iter_cur": "0x0000cf6d", - "le_device_db_iter_cur_key": "0x0000cf71", - "le_device_db_iter_init": "0x0000cf75", - "le_device_db_iter_next": "0x0000cf7d", - "le_device_db_remove_key": "0x0000cfa3", - "ll_aes_encrypt": "0x0000cfd1", - "ll_config": "0x0000d04d", - "ll_free": "0x0000d083", - "ll_get_heap_free_size": "0x0000d08d", - "ll_hint_on_ce_len": "0x0000d0a1", - "ll_legacy_adv_set_interval": "0x0000d0d9", - "ll_malloc": "0x0000d0e9", - "ll_query_timing_info": "0x0000d221", - "ll_register_hci_acl_previewer": "0x0000d26d", - "ll_scan_set_fixed_channel": "0x0000d2d1", - "ll_set_adv_access_address": "0x0000d4e9", - "ll_set_adv_coded_scheme": "0x0000d4f5", - "ll_set_conn_acl_report_latency": "0x0000d51d", - "ll_set_conn_coded_scheme": "0x0000d549", - "ll_set_conn_latency": "0x0000d571", - "ll_set_conn_tx_power": "0x0000d59d", - "ll_set_def_antenna": "0x0000d5e1", - "ll_set_initiating_coded_scheme": "0x0000d5fd", - "ll_set_max_conn_number": "0x0000d609", - "nibble_for_char": "0x0001e571", - "platform_32k_rc_auto_tune": "0x0001e611", - "platform_32k_rc_tune": "0x0001e68d", - "platform_calibrate_32k": "0x0001e6a1", + "eTaskConfirmSleepModeStatus": "0x00006eb1", + "gap_add_dev_to_periodic_list": "0x0000751d", + "gap_add_whitelist": "0x0000752d", + "gap_aes_encrypt": "0x00007539", + "gap_clear_white_lists": "0x00007571", + "gap_clr_adv_set": "0x0000757d", + "gap_clr_periodic_adv_list": "0x00007589", + "gap_create_connection_cancel": "0x00007595", + "gap_default_periodic_adv_sync_transfer_param": "0x000075a1", + "gap_disconnect": "0x000075b9", + "gap_disconnect_all": "0x000075e5", + "gap_ext_create_connection": "0x00007625", + "gap_get_connection_parameter_range": "0x000076fd", + "gap_le_read_channel_map": "0x00007735", + "gap_periodic_adv_create_sync": "0x000077a1", + "gap_periodic_adv_create_sync_cancel": "0x000077c5", + "gap_periodic_adv_set_info_transfer": "0x000077d1", + "gap_periodic_adv_sync_transfer": "0x000077e1", + "gap_periodic_adv_sync_transfer_param": "0x000077f1", + "gap_periodic_adv_term_sync": "0x0000780d", + "gap_read_antenna_info": "0x00007895", + "gap_read_periodic_adv_list_size": "0x000078a1", + "gap_read_phy": "0x000078ad", + "gap_read_remote_used_features": "0x000078b9", + "gap_read_remote_version": "0x000078c5", + "gap_read_rssi": "0x000078d1", + "gap_remove_whitelist": "0x000078dd", + "gap_rmv_adv_set": "0x00007959", + "gap_rmv_dev_from_periodic_list": "0x00007965", + "gap_rx_test_v2": "0x00007975", + "gap_rx_test_v3": "0x00007985", + "gap_set_adv_set_random_addr": "0x000079d1", + "gap_set_callback_for_next_hci": "0x00007a0d", + "gap_set_connection_cte_request_enable": "0x00007a2d", + "gap_set_connection_cte_response_enable": "0x00007a49", + "gap_set_connection_cte_rx_param": "0x00007a59", + "gap_set_connection_cte_tx_param": "0x00007aad", + "gap_set_connection_parameter_range": "0x00007af9", + "gap_set_connectionless_cte_tx_enable": "0x00007b11", + "gap_set_connectionless_cte_tx_param": "0x00007b21", + "gap_set_connectionless_iq_sampling_enable": "0x00007b7d", + "gap_set_data_length": "0x00007bd9", + "gap_set_def_phy": "0x00007bf1", + "gap_set_ext_adv_data": "0x00007c01", + "gap_set_ext_adv_enable": "0x00007c19", + "gap_set_ext_adv_para": "0x00007c89", + "gap_set_ext_scan_enable": "0x00007d61", + "gap_set_ext_scan_para": "0x00007d79", + "gap_set_ext_scan_response_data": "0x00007e19", + "gap_set_host_channel_classification": "0x00007e31", + "gap_set_periodic_adv_data": "0x00007e41", + "gap_set_periodic_adv_enable": "0x00007eb1", + "gap_set_periodic_adv_para": "0x00007ec1", + "gap_set_periodic_adv_rx_enable": "0x00007ed9", + "gap_set_phy": "0x00007ee9", + "gap_set_random_device_address": "0x00007f05", + "gap_start_ccm": "0x00007f35", + "gap_test_end": "0x00007f7d", + "gap_tx_test_v2": "0x00007f89", + "gap_tx_test_v4": "0x00007fa1", + "gap_update_connection_parameters": "0x00007fc5", + "gap_vendor_tx_continuous_wave": "0x00008005", + "gatt_client_cancel_write": "0x0000852d", + "gatt_client_discover_characteristic_descriptors": "0x00008553", + "gatt_client_discover_characteristics_for_handle_range_by_uuid128": "0x00008593", + "gatt_client_discover_characteristics_for_handle_range_by_uuid16": "0x000085e3", + "gatt_client_discover_characteristics_for_service": "0x00008633", + "gatt_client_discover_primary_services": "0x00008669", + "gatt_client_discover_primary_services_by_uuid128": "0x0000869b", + "gatt_client_discover_primary_services_by_uuid16": "0x000086df", + "gatt_client_execute_write": "0x0000871b", + "gatt_client_find_included_services_for_service": "0x00008741", + "gatt_client_get_mtu": "0x0000876f", + "gatt_client_is_ready": "0x0000880d", + "gatt_client_listen_for_characteristic_value_updates": "0x00008823", + "gatt_client_prepare_write": "0x00008843", + "gatt_client_read_characteristic_descriptor_using_descriptor_handle": "0x0000887f", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle": "0x000088a9", + "gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x000088af", + "gatt_client_read_long_value_of_characteristic_using_value_handle": "0x000088dd", + "gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset": "0x000088e3", + "gatt_client_read_multiple_characteristic_values": "0x00008911", + "gatt_client_read_value_of_characteristic_using_value_handle": "0x00008941", + "gatt_client_read_value_of_characteristics_by_uuid128": "0x0000896f", + "gatt_client_read_value_of_characteristics_by_uuid16": "0x000089bb", + "gatt_client_register_handler": "0x00008a05", + "gatt_client_reliable_write_long_value_of_characteristic": "0x00008a11", + "gatt_client_signed_write_without_response": "0x00008e15", + "gatt_client_write_characteristic_descriptor_using_descriptor_handle": "0x00008ed9", + "gatt_client_write_client_characteristic_configuration": "0x00008f13", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle": "0x00008f65", + "gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset": "0x00008f75", + "gatt_client_write_long_value_of_characteristic": "0x00008fb1", + "gatt_client_write_long_value_of_characteristic_with_offset": "0x00008fc1", + "gatt_client_write_value_of_characteristic": "0x00008ffd", + "gatt_client_write_value_of_characteristic_without_response": "0x00009033", + "hci_add_event_handler": "0x0000a569", + "hci_power_control": "0x0000acf1", + "hci_register_acl_packet_handler": "0x0000aea5", + "kv_commit": "0x0000b60d", + "kv_get": "0x0000b669", + "kv_init": "0x0000b675", + "kv_init_backend": "0x0000b6f1", + "kv_put": "0x0000b705", + "kv_remove": "0x0000b711", + "kv_remove_all": "0x0000b745", + "kv_value_modified": "0x0000b775", + "kv_value_modified_of_key": "0x0000b791", + "kv_visit": "0x0000b79d", + "l2cap_add_event_handler": "0x0000b82d", + "l2cap_can_send_packet_now": "0x0000b83d", + "l2cap_create_le_credit_based_connection_request": "0x0000b9f9", + "l2cap_credit_based_send": "0x0000bb3d", + "l2cap_credit_based_send_continue": "0x0000bb69", + "l2cap_disconnect": "0x0000bbe5", + "l2cap_get_le_credit_based_connection_credits": "0x0000be35", + "l2cap_get_peer_mtu_for_local_cid": "0x0000be51", + "l2cap_init": "0x0000c225", + "l2cap_le_send_flow_control_credit": "0x0000c31b", + "l2cap_max_le_mtu": "0x0000c625", + "l2cap_register_packet_handler": "0x0000c74d", + "l2cap_register_service": "0x0000c759", + "l2cap_request_can_send_now_event": "0x0000c869", + "l2cap_request_connection_parameter_update": "0x0000c883", + "l2cap_send_echo_request": "0x0000cd5d", + "l2cap_unregister_service": "0x0000ce1d", + "le_device_db_add": "0x0000ce75", + "le_device_db_find": "0x0000cf3d", + "le_device_db_from_key": "0x0000cf69", + "le_device_db_iter_cur": "0x0000cf71", + "le_device_db_iter_cur_key": "0x0000cf75", + "le_device_db_iter_init": "0x0000cf79", + "le_device_db_iter_next": "0x0000cf81", + "le_device_db_remove_key": "0x0000cfa7", + "ll_aes_encrypt": "0x0000cfd5", + "ll_config": "0x0000d051", + "ll_free": "0x0000d087", + "ll_get_heap_free_size": "0x0000d091", + "ll_hint_on_ce_len": "0x0000d0a5", + "ll_legacy_adv_set_interval": "0x0000d0dd", + "ll_malloc": "0x0000d0ed", + "ll_query_timing_info": "0x0000d225", + "ll_register_hci_acl_previewer": "0x0000d271", + "ll_scan_set_fixed_channel": "0x0000d2d5", + "ll_set_adv_access_address": "0x0000d4ed", + "ll_set_adv_coded_scheme": "0x0000d4f9", + "ll_set_conn_acl_report_latency": "0x0000d521", + "ll_set_conn_coded_scheme": "0x0000d54d", + "ll_set_conn_latency": "0x0000d575", + "ll_set_conn_tx_power": "0x0000d5a1", + "ll_set_def_antenna": "0x0000d5e5", + "ll_set_initiating_coded_scheme": "0x0000d601", + "ll_set_max_conn_number": "0x0000d60d", + "nibble_for_char": "0x0001e585", + "platform_calibrate_rt_clk": "0x0001e625", "platform_call_on_stack": "0x00004183", - "platform_config": "0x0001e6a5", - "platform_delete_timer": "0x0001e7c9", - "platform_enable_irq": "0x0001e7d1", - "platform_get_current_task": "0x0001e809", - "platform_get_gen_os_driver": "0x0001e82d", - "platform_get_heap_status": "0x0001e835", - "platform_get_link_layer_interf": "0x0001e84d", - "platform_get_task_handle": "0x0001e855", - "platform_get_timer_counter": "0x0001e875", - "platform_get_us_time": "0x0001e879", - "platform_get_version": "0x0001e87d", - "platform_hrng": "0x0001e885", - "platform_install_isr_stack": "0x0001e88d", - "platform_install_task_stack": "0x0001e899", - "platform_patch_rf_init_data": "0x0001e8d1", - "platform_printf": "0x0001e8dd", - "platform_raise_assertion": "0x0001e8f1", - "platform_rand": "0x0001e905", - "platform_read_info": "0x0001e909", - "platform_read_persistent_reg": "0x0001e939", - "platform_reset": "0x0001e949", - "platform_set_abs_timer": "0x0001e96d", - "platform_set_evt_callback": "0x0001e971", - "platform_set_evt_callback_table": "0x0001e985", - "platform_set_irq_callback": "0x0001e991", - "platform_set_irq_callback_table": "0x0001e9ad", - "platform_set_rf_clk_source": "0x0001e9b9", - "platform_set_rf_init_data": "0x0001e9c5", - "platform_set_rf_power_mapping": "0x0001e9d1", - "platform_set_timer": "0x0001e9dd", - "platform_shutdown": "0x0001e9e1", - "platform_switch_app": "0x0001e9e5", - "platform_trace_raw": "0x0001ea11", - "platform_write_persistent_reg": "0x0001ea29", - "printf_hexdump": "0x0001ebdd", - "pvPortMalloc": "0x0001f6c9", - "pvTaskIncrementMutexHeldCount": "0x0001f7b1", - "pvTimerGetTimerID": "0x0001f7c9", - "pxPortInitialiseStack": "0x0001f7f5", - "reverse_128": "0x0001f9d5", - "reverse_24": "0x0001f9db", - "reverse_256": "0x0001f9e1", - "reverse_48": "0x0001f9e7", - "reverse_56": "0x0001f9ed", - "reverse_64": "0x0001f9f3", - "reverse_bd_addr": "0x0001f9f9", - "reverse_bytes": "0x0001f9ff", - "sm_add_event_handler": "0x0001fced", - "sm_address_resolution_lookup": "0x0001fe45", - "sm_authenticated": "0x000201c1", - "sm_authorization_decline": "0x000201cf", - "sm_authorization_grant": "0x000201ef", - "sm_authorization_state": "0x0002020f", - "sm_bonding_decline": "0x00020229", - "sm_config": "0x00020685", - "sm_config_conn": "0x0002069d", - "sm_encryption_key_size": "0x00020853", - "sm_just_works_confirm": "0x00020dd9", - "sm_le_device_key": "0x00021111", - "sm_passkey_input": "0x000211a7", - "sm_private_random_address_generation_get": "0x00021561", - "sm_private_random_address_generation_get_mode": "0x00021569", - "sm_private_random_address_generation_set_mode": "0x00021575", - "sm_private_random_address_generation_set_update_period": "0x0002159d", - "sm_register_external_ltk_callback": "0x000216d9", - "sm_register_oob_data_callback": "0x000216e5", - "sm_request_pairing": "0x000216f1", - "sm_send_security_request": "0x000221c7", - "sm_set_accepted_stk_generation_methods": "0x000221ed", - "sm_set_authentication_requirements": "0x000221f9", - "sm_set_encryption_key_size_range": "0x00022205", - "sscanf_bd_addr": "0x00022561", - "sysSetPublicDeviceAddr": "0x00022915", - "uuid128_to_str": "0x000230b5", - "uuid_add_bluetooth_prefix": "0x0002310d", - "uuid_has_bluetooth_prefix": "0x0002312d", - "uxListRemove": "0x00023149", - "uxQueueMessagesWaiting": "0x00023171", - "uxQueueMessagesWaitingFromISR": "0x00023199", - "uxQueueSpacesAvailable": "0x000231b5", - "uxTaskGetStackHighWaterMark": "0x000231e1", - "uxTaskPriorityGet": "0x00023201", - "uxTaskPriorityGetFromISR": "0x0002321d", - "vListInitialise": "0x000232d7", - "vListInitialiseItem": "0x000232ed", - "vListInsert": "0x000232f3", - "vListInsertEnd": "0x00023323", - "vPortEndScheduler": "0x0002333d", - "vPortEnterCritical": "0x00023369", - "vPortExitCritical": "0x000233ad", - "vPortFree": "0x000233e1", - "vPortSuppressTicksAndSleep": "0x00023475", - "vPortValidateInterruptPriority": "0x0002359d", - "vQueueDelete": "0x000235f9", - "vQueueWaitForMessageRestricted": "0x00023625", - "vTaskDelay": "0x0002366d", - "vTaskInternalSetTimeOutState": "0x000236b9", - "vTaskMissedYield": "0x000236c9", - "vTaskPlaceOnEventList": "0x000236d5", - "vTaskPlaceOnEventListRestricted": "0x0002370d", - "vTaskPriorityDisinheritAfterTimeout": "0x0002374d", - "vTaskPrioritySet": "0x000237f9", - "vTaskResume": "0x000238c1", - "vTaskStartScheduler": "0x00023945", - "vTaskStepTick": "0x000239d5", - "vTaskSuspend": "0x00023a05", - "vTaskSuspendAll": "0x00023ac1", - "vTaskSwitchContext": "0x00023ad1", - "xPortStartScheduler": "0x00023b75", - "xQueueAddToSet": "0x00023c3d", - "xQueueCreateCountingSemaphore": "0x00023c61", - "xQueueCreateCountingSemaphoreStatic": "0x00023c9d", - "xQueueCreateMutex": "0x00023ce1", - "xQueueCreateMutexStatic": "0x00023cf7", - "xQueueCreateSet": "0x00023d11", - "xQueueGenericCreate": "0x00023d19", - "xQueueGenericCreateStatic": "0x00023d65", - "xQueueGenericReset": "0x00023dcd", - "xQueueGenericSend": "0x00023e59", - "xQueueGenericSendFromISR": "0x00023fc5", - "xQueueGiveFromISR": "0x00024085", - "xQueueGiveMutexRecursive": "0x00024129", - "xQueueIsQueueEmptyFromISR": "0x00024169", - "xQueueIsQueueFullFromISR": "0x0002418d", - "xQueuePeek": "0x000241b5", - "xQueuePeekFromISR": "0x000242dd", - "xQueueReceive": "0x00024349", - "xQueueReceiveFromISR": "0x00024475", - "xQueueRemoveFromSet": "0x00024509", - "xQueueSelectFromSet": "0x0002452b", - "xQueueSelectFromSetFromISR": "0x0002453d", - "xQueueSemaphoreTake": "0x00024551", - "xQueueTakeMutexRecursive": "0x000246bd", - "xTaskCheckForTimeOut": "0x00024701", - "xTaskCreate": "0x00024771", - "xTaskCreateStatic": "0x000247cd", - "xTaskGetCurrentTaskHandle": "0x0002483d", - "xTaskGetSchedulerState": "0x00024849", - "xTaskGetTickCount": "0x00024865", - "xTaskGetTickCountFromISR": "0x00024871", - "xTaskIncrementTick": "0x00024881", - "xTaskPriorityDisinherit": "0x0002494d", - "xTaskPriorityInherit": "0x000249e1", - "xTaskRemoveFromEventList": "0x00024a75", - "xTaskResumeAll": "0x00024af5", - "xTaskResumeFromISR": "0x00024bbd", - "xTimerCreate": "0x00024c49", - "xTimerCreateStatic": "0x00024c7d", - "xTimerCreateTimerTask": "0x00024cb5", - "xTimerGenericCommand": "0x00024d21", - "xTimerGetExpiryTime": "0x00024d91", - "xTimerGetTimerDaemonTaskHandle": "0x00024db1" + "platform_config": "0x0001e629", + "platform_delete_timer": "0x0001e74d", + "platform_enable_irq": "0x0001e755", + "platform_get_current_task": "0x0001e78d", + "platform_get_gen_os_driver": "0x0001e7b1", + "platform_get_heap_status": "0x0001e7b9", + "platform_get_link_layer_interf": "0x0001e7d1", + "platform_get_task_handle": "0x0001e7d9", + "platform_get_timer_counter": "0x0001e7f9", + "platform_get_us_time": "0x0001e7fd", + "platform_get_version": "0x0001e801", + "platform_hrng": "0x0001e809", + "platform_install_isr_stack": "0x0001e811", + "platform_install_task_stack": "0x0001e81d", + "platform_patch_rf_init_data": "0x0001e855", + "platform_printf": "0x0001e861", + "platform_raise_assertion": "0x0001e875", + "platform_rand": "0x0001e889", + "platform_read_info": "0x0001e88d", + "platform_read_persistent_reg": "0x0001e8bd", + "platform_reset": "0x0001e8cd", + "platform_rt_rc_auto_tune": "0x0001e8f1", + "platform_rt_rc_auto_tune2": "0x0001e8f9", + "platform_rt_rc_tune": "0x0001e99d", + "platform_set_abs_timer": "0x0001e9b1", + "platform_set_evt_callback": "0x0001e9b5", + "platform_set_evt_callback_table": "0x0001e9c9", + "platform_set_irq_callback": "0x0001e9d5", + "platform_set_irq_callback_table": "0x0001e9f1", + "platform_set_rf_clk_source": "0x0001e9fd", + "platform_set_rf_init_data": "0x0001ea09", + "platform_set_rf_power_mapping": "0x0001ea15", + "platform_set_timer": "0x0001ea21", + "platform_shutdown": "0x0001ea25", + "platform_switch_app": "0x0001ea29", + "platform_trace_raw": "0x0001ea55", + "platform_write_persistent_reg": "0x0001ea6d", + "printf_hexdump": "0x0001ec21", + "pvPortMalloc": "0x0001f70d", + "pvTaskIncrementMutexHeldCount": "0x0001f7f5", + "pvTimerGetTimerID": "0x0001f80d", + "pxPortInitialiseStack": "0x0001f839", + "reverse_128": "0x0001fa19", + "reverse_24": "0x0001fa1f", + "reverse_256": "0x0001fa25", + "reverse_48": "0x0001fa2b", + "reverse_56": "0x0001fa31", + "reverse_64": "0x0001fa37", + "reverse_bd_addr": "0x0001fa3d", + "reverse_bytes": "0x0001fa43", + "sm_add_event_handler": "0x0001fd31", + "sm_address_resolution_lookup": "0x0001fe89", + "sm_authenticated": "0x00020205", + "sm_authorization_decline": "0x00020213", + "sm_authorization_grant": "0x00020233", + "sm_authorization_state": "0x00020253", + "sm_bonding_decline": "0x0002026d", + "sm_config": "0x000206c9", + "sm_config_conn": "0x000206e1", + "sm_encryption_key_size": "0x00020897", + "sm_just_works_confirm": "0x00020e1d", + "sm_le_device_key": "0x00021155", + "sm_passkey_input": "0x000211eb", + "sm_private_random_address_generation_get": "0x000215a5", + "sm_private_random_address_generation_get_mode": "0x000215ad", + "sm_private_random_address_generation_set_mode": "0x000215b9", + "sm_private_random_address_generation_set_update_period": "0x000215e1", + "sm_register_external_ltk_callback": "0x0002171d", + "sm_register_oob_data_callback": "0x00021729", + "sm_request_pairing": "0x00021735", + "sm_send_security_request": "0x0002220b", + "sm_set_accepted_stk_generation_methods": "0x00022231", + "sm_set_authentication_requirements": "0x0002223d", + "sm_set_encryption_key_size_range": "0x00022249", + "sscanf_bd_addr": "0x000225a5", + "sysSetPublicDeviceAddr": "0x00022959", + "uuid128_to_str": "0x00023105", + "uuid_add_bluetooth_prefix": "0x0002315d", + "uuid_has_bluetooth_prefix": "0x0002317d", + "uxListRemove": "0x00023199", + "uxQueueMessagesWaiting": "0x000231c1", + "uxQueueMessagesWaitingFromISR": "0x000231e9", + "uxQueueSpacesAvailable": "0x00023205", + "uxTaskGetStackHighWaterMark": "0x00023231", + "uxTaskPriorityGet": "0x00023251", + "uxTaskPriorityGetFromISR": "0x0002326d", + "vListInitialise": "0x00023327", + "vListInitialiseItem": "0x0002333d", + "vListInsert": "0x00023343", + "vListInsertEnd": "0x00023373", + "vPortEndScheduler": "0x0002338d", + "vPortEnterCritical": "0x000233b9", + "vPortExitCritical": "0x000233fd", + "vPortFree": "0x00023431", + "vPortSuppressTicksAndSleep": "0x000234c5", + "vPortValidateInterruptPriority": "0x000235ed", + "vQueueDelete": "0x00023649", + "vQueueWaitForMessageRestricted": "0x00023675", + "vTaskDelay": "0x000236bd", + "vTaskInternalSetTimeOutState": "0x00023709", + "vTaskMissedYield": "0x00023719", + "vTaskPlaceOnEventList": "0x00023725", + "vTaskPlaceOnEventListRestricted": "0x0002375d", + "vTaskPriorityDisinheritAfterTimeout": "0x0002379d", + "vTaskPrioritySet": "0x00023849", + "vTaskResume": "0x00023911", + "vTaskStartScheduler": "0x00023995", + "vTaskStepTick": "0x00023a25", + "vTaskSuspend": "0x00023a55", + "vTaskSuspendAll": "0x00023b11", + "vTaskSwitchContext": "0x00023b21", + "xPortStartScheduler": "0x00023bd1", + "xQueueAddToSet": "0x00023c99", + "xQueueCreateCountingSemaphore": "0x00023cbd", + "xQueueCreateCountingSemaphoreStatic": "0x00023cf9", + "xQueueCreateMutex": "0x00023d3d", + "xQueueCreateMutexStatic": "0x00023d53", + "xQueueCreateSet": "0x00023d6d", + "xQueueGenericCreate": "0x00023d75", + "xQueueGenericCreateStatic": "0x00023dc1", + "xQueueGenericReset": "0x00023e29", + "xQueueGenericSend": "0x00023eb5", + "xQueueGenericSendFromISR": "0x00024021", + "xQueueGiveFromISR": "0x000240e1", + "xQueueGiveMutexRecursive": "0x00024185", + "xQueueIsQueueEmptyFromISR": "0x000241c5", + "xQueueIsQueueFullFromISR": "0x000241e9", + "xQueuePeek": "0x00024211", + "xQueuePeekFromISR": "0x00024339", + "xQueueReceive": "0x000243a5", + "xQueueReceiveFromISR": "0x000244d1", + "xQueueRemoveFromSet": "0x00024565", + "xQueueSelectFromSet": "0x00024587", + "xQueueSelectFromSetFromISR": "0x00024599", + "xQueueSemaphoreTake": "0x000245ad", + "xQueueTakeMutexRecursive": "0x00024719", + "xTaskCheckForTimeOut": "0x0002475d", + "xTaskCreate": "0x000247cd", + "xTaskCreateStatic": "0x00024829", + "xTaskGetCurrentTaskHandle": "0x00024899", + "xTaskGetSchedulerState": "0x000248a5", + "xTaskGetTickCount": "0x000248c1", + "xTaskGetTickCountFromISR": "0x000248cd", + "xTaskIncrementTick": "0x000248dd", + "xTaskPriorityDisinherit": "0x000249a9", + "xTaskPriorityInherit": "0x00024a3d", + "xTaskRemoveFromEventList": "0x00024ad1", + "xTaskResumeAll": "0x00024b51", + "xTaskResumeFromISR": "0x00024c19", + "xTimerCreate": "0x00024ca5", + "xTimerCreateStatic": "0x00024cd9", + "xTimerCreateTimerTask": "0x00024d11", + "xTimerGenericCommand": "0x00024d7d", + "xTimerGetExpiryTime": "0x00024ded", + "xTimerGetTimerDaemonTaskHandle": "0x00024e0d" } \ No newline at end of file diff --git a/bundles/mini/ING9188xx/meta.json b/bundles/mini/ING9188xx/meta.json index 1a0c39d60..7ea10d6a2 100644 --- a/bundles/mini/ING9188xx/meta.json +++ b/bundles/mini/ING9188xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 141296 + "size": 141388 }, "version": [ 1, 9, - 40 + 41 ] } \ No newline at end of file diff --git a/bundles/mini/ING9188xx/platform.bin b/bundles/mini/ING9188xx/platform.bin index c79a6a8a8dbc6016b24617fd59110d08e6db11ca..e81141e5bdfaa72858a0c3f71f4251ad8c50a3da 100644 GIT binary patch delta 28488 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 delta 28254 zcmZs@30zcF`#64|J2NnBGKdHWBX<}P5D^ebh)fo}4l1IlshK&r^%oQ^p$_q?n0I%e_3uh$|es=s{nF`B(l9KosQ-o0L zU}9QZ3L6;aPA-}0-7Pu}lgj&ySz%yIM^(_$T`(Ok9PP_G{D-m2Qmwenv|9D8&4slp$pmJvnli^N2y7%iP4>I1C7$) z!w>CVz%w`zCCT$0!ai}3Exw81M^5_o2fu3Yd#r|gq$6k(_>$FKV?iWUT~n0KL%)wA zce{QUVSa^W3Tsrnr$JfJL#w=Zg2^&5y;Lok#xf>USWb=w_lFmVEqJ18jmty0P9}y- zN^fXX>O6#_jcktEsMN6r40$MD^R8#ZDM<+@&SdNB8!xkX9umSwfI6!1oEsBqIo61xq8T(Yp+ zPFO>%K{xKov4oV)-O*r6W zVgg$ZTGZend_>Z@9H3+sHyL)2TU;&VknOr0pCcBvL7h0r7%D6!?YfE3PI4o2p`L7u z3=L?oCl)JWJe%Xqa(`h$5IGS!8YYoY{US&pL>~+1NP|AdEAf!LpRDjI@$XTkJ34}8 zUas-w*Gp=~W9vT2i#y%M1S<6G9;J@sJ%pX)T94}JwKf^WfMWzrouJkdDsG+QaEf?8I;0OiHW(|(#r(8Q$;7kOp{hvLeBNpX=gdO zsV^hP!9UKZV7RH62p!5Wh4>600rA>p|2?D>{OwGnj_+t?IL-6Ag*95sIq;>z|iJ{?Z*aoZ3cZe zR;3H)x(bq0#UE^cG|;R0!$^+`hI5K4M-1+4VMeggWVi*GFy}#JMzmrb{Ll*04zD+3=@Wvb$yoUz3jeb6Ymmz z?69UH%cG@PQXWm_U*uzvy_<)~Z`w$F!X$W;tV>8kVmy(M68M5+1+ThS##CBZO^PLk z2@&FnU*ZI>SC8n5Tgx5dD`akBj#s=he~}q;v7{++KeUjdq+?-o9ZOox#Y{|j%g(aA zLzg6m8O&!Cgw(sl-6XHCE~wV#5|`RcQ_YKF=HU$5)!6qTva0Xo051#6x0Qi8(EOIU z2z&J>9eu~bcrq-xKm0^iB$oyaM;tU{=e#)h)xjgiycm_(w-_Z03GJ889v)3z?e_*; zBQ^c>s^eH~IJweq*s>>MScc`npb(aS_XJB5ksGM^HI<>fhG&E+Rwl+5*=!6SB4k;W zyE%NmY*p?l;8|=@VD+j@M1<*qeaJoJf5$L?VjpsPBBsB5UOpDn%CXPN^DuoA>!@oO z63Ba#ohg1`A~h*-?AN2o^^}+8N8}63;WF9rf?jnVdr*?oFNDSRmgk8gbEC9`af?eN zIAxBPX_Ry%fi(^_Wf|9)N{xj>lq8^kM1o9?;9k|g>bqb|1=d_Ui#4v7SwE88?;p0z`1dHC>;J?SN<-

cwuanR09&!=MHA7^cWVo~B(4P8bRD<}LuiCeFA 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 A9smFU delta 29045 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 diff --git a/bundles/noos_exp/ING9187xx/apis.json b/bundles/noos_exp/ING9187xx/apis.json index f29114b2c..85586e5cc 100644 --- a/bundles/noos_exp/ING9187xx/apis.json +++ b/bundles/noos_exp/ING9187xx/apis.json @@ -265,22 +265,22 @@ "sm_config_conn": "0x00020f21", "sm_encryption_key_size": "0x000210d7", "sm_just_works_confirm": "0x0002165d", - "sm_le_device_key": "0x000219a9", - "sm_passkey_input": "0x00021a3f", - "sm_private_random_address_generation_get": "0x00021df9", - "sm_private_random_address_generation_get_mode": "0x00021e01", - "sm_private_random_address_generation_set_mode": "0x00021e0d", - "sm_private_random_address_generation_set_update_period": "0x00021e35", - "sm_register_external_ltk_callback": "0x00021f71", - "sm_register_oob_data_callback": "0x00021f7d", - "sm_request_pairing": "0x00021f89", - "sm_send_security_request": "0x00022a5f", - "sm_set_accepted_stk_generation_methods": "0x00022a85", - "sm_set_authentication_requirements": "0x00022a91", - "sm_set_encryption_key_size_range": "0x00022a9d", - "sscanf_bd_addr": "0x00022e6d", - "sysSetPublicDeviceAddr": "0x00023221", - "uuid128_to_str": "0x00023855", - "uuid_add_bluetooth_prefix": "0x000238ad", - "uuid_has_bluetooth_prefix": "0x000238cd" + "sm_le_device_key": "0x00021995", + "sm_passkey_input": "0x00021a2b", + "sm_private_random_address_generation_get": "0x00021de5", + "sm_private_random_address_generation_get_mode": "0x00021ded", + "sm_private_random_address_generation_set_mode": "0x00021df9", + "sm_private_random_address_generation_set_update_period": "0x00021e21", + "sm_register_external_ltk_callback": "0x00021f5d", + "sm_register_oob_data_callback": "0x00021f69", + "sm_request_pairing": "0x00021f75", + "sm_send_security_request": "0x00022a4b", + "sm_set_accepted_stk_generation_methods": "0x00022a71", + "sm_set_authentication_requirements": "0x00022a7d", + "sm_set_encryption_key_size_range": "0x00022a89", + "sscanf_bd_addr": "0x00022e59", + "sysSetPublicDeviceAddr": "0x0002320d", + "uuid128_to_str": "0x00023841", + "uuid_add_bluetooth_prefix": "0x00023899", + "uuid_has_bluetooth_prefix": "0x000238b9" } \ No newline at end of file diff --git a/bundles/noos_exp/ING9187xx/meta.json b/bundles/noos_exp/ING9187xx/meta.json index 4e87e6e14..f588668dc 100644 --- a/bundles/noos_exp/ING9187xx/meta.json +++ b/bundles/noos_exp/ING9187xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 136384 + "size": 136368 }, "version": [ 1, 9, - 39 + 40 ] } \ No newline at end of file diff --git a/bundles/noos_exp/ING9187xx/platform.bin b/bundles/noos_exp/ING9187xx/platform.bin index 3224c7aa7dddefc5368eb35be4075b451b2be5f2..72cfa41287e0e5b3b5016eeac835495a8ea2083a 100644 GIT binary patch delta 6227 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 EKgE%*rvLx| diff --git a/bundles/noos_exp/inc/bluetooth.h b/bundles/noos_exp/inc/bluetooth.h index 9839e3d8e..a7d216362 100644 --- a/bundles/noos_exp/inc/bluetooth.h +++ b/bundles/noos_exp/inc/bluetooth.h @@ -152,8 +152,13 @@ typedef enum { #define ERROR_CODE_CONNECTION_FAILED_TO_BE_ESTABLISHED 0x3E #define ERROR_CODE_MAC_CONNECTION_FAILED 0x3F #define ERROR_CODE_COARSE_CLOCK_ADJUSTMENT_REJECTED_BUT_WILL_TRY_TO_ADJUST_USING_CLOCK_DRAGGING 0x40 -#define ERROR_CODE_UNKNOWN_ADVERTISING_IDENTIFIER 0x42 -#define ERROR_CODE_LIMIT_REACHED 0x43 +#define ERROR_CODE_UNKNOWN_ADVERTISING_IDENTIFIER 0x42 +#define ERROR_CODE_LIMIT_REACHED 0x43 +#define ERROR_CODE_OP_CANCELLED_BY_HOST 0x44 +#define ERROR_CODE_PACKET_TOO_LONG 0x45 +#define ERROR_CODE_TOO_LATE 0x46 +#define ERROR_CODE_TOO_EARLY 0x47 + // HCI roles #define HCI_ROLE_MASTER 0 #define HCI_ROLE_SLAVE 1 @@ -508,6 +513,12 @@ typedef enum { #define HCI_SUBEVENT_LE_TRANSMIT_POWER_REPORTING 0x21 #define HCI_SUBEVENT_LE_BIGINFO_ADV_REPORT 0x22 #define HCI_SUBEVENT_LE_SUBRATE_CHANGE 0x23 +#define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHED_V2 0x24 +#define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_REPORT_V2 0x25 +#define HCI_SUBEVENT_LE_PRD_ADV_SYNC_TRANSFER_RCVD_V2 0x26 +#define HCI_SUBEVENT_PRD_ADV_SUBEVT_DATA_REQ 0x27 +#define HCI_SUBEVENT_PRD_ADV_RSP_REPORT 0x28 +#define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2 0x29 // Vendor specific subevents #define HCI_SUBEVENT_LE_VENDOR_CHANNEL_MAP_UPDATE 0xFE @@ -686,7 +697,10 @@ typedef enum { SM_CODE_IDENTITY_INFORMATION, SM_CODE_IDENTITY_ADDRESS_INFORMATION, SM_CODE_SIGNING_INFORMATION, - SM_CODE_SECURITY_REQUEST + SM_CODE_SECURITY_REQUEST, + SM_CODE_PAIRING_PUBLIC_KEY, + SM_CODE_PAIRING_DHKEY_CHECK, + SM_CODE_PAIRING_KEYPRESS_NOTIFICATION } SECURITY_MANAGER_COMMANDS; // IO Capability Values @@ -703,6 +717,7 @@ typedef enum { #define SM_AUTHREQ_NO_BONDING 0x00 #define SM_AUTHREQ_BONDING 0x01 #define SM_AUTHREQ_MITM_PROTECTION 0x04 +#define SM_AUTHREQ_SC 0x08 // Key distribution flags used by spec #define SM_KEYDIST_ENC_KEY 0X01 @@ -720,6 +735,7 @@ typedef enum { #define SM_STK_GENERATION_METHOD_JUST_WORKS 0x01 #define SM_STK_GENERATION_METHOD_OOB 0x02 #define SM_STK_GENERATION_METHOD_PASSKEY 0x04 +#define SM_STK_GENERATION_METHOD_NUM_COMPARISON 0x08 // Pairing Failed Reasons #define SM_REASON_RESERVED 0x00 @@ -732,6 +748,11 @@ typedef enum { #define SM_REASON_COMMAND_NOT_SUPPORTED 0x07 #define SM_REASON_UNSPECIFIED_REASON 0x08 #define SM_REASON_REPEATED_ATTEMPTS 0x09 +#define SM_REASON_REPEATED_ATTEMPTS 0x09 +#define SM_REASON_INVALID_PARAMETERS 0x0a +#define SM_REASON_DHKEY_CHECK_FAILED 0x0b +#define SM_REASON_NUMERIC_COMPARISON_FAILED 0x0c +#define SM_REASON_KEY_REJECTED_FAILED 0x0f // also, invalid parameters // and reserved diff --git a/bundles/noos_exp/inc/gap.h b/bundles/noos_exp/inc/gap.h index 7d2699db2..eebe6c30b 100644 --- a/bundles/noos_exp/inc/gap.h +++ b/bundles/noos_exp/inc/gap.h @@ -183,7 +183,7 @@ typedef enum typedef uint8_t adv_event_properties_t; -#define PERIODIC_ADV_BIT_INC_TX BIT(6) +#define PERIODIC_ADV_BIT_INC_TX BIT(ADV_INC_TX_POWER) typedef uint8_t periodic_adv_properties_t; /** @@ -1408,11 +1408,11 @@ uint8_t gap_test_end(void); typedef struct { - uint8_t subevent; // The subevent index of the data contained in this command. Range: 0x00 to 0x7F - uint8_t rsp_slot_start; // The first response slots to be used in this subevent - uint8_t rsp_slot_count; // The number of response slots to be used. - uint8_t data_len; // The number of octets in the `data`. [0..251] - uint8_t data[0]; // Advertising data + uint8_t subevent; // The subevent index of the data contained in this command. Range: 0x00 to 0x7F + uint8_t rsp_slot_start; // The first response slots to be used in this subevent + uint8_t rsp_slot_count; // The number of response slots to be used. + uint8_t data_len; // The number of octets in the `data`. [0..251] + const uint8_t * data; // Advertising data } gap_prd_adv_subevent_data_t; #pragma pack (pop) @@ -1448,7 +1448,7 @@ uint8_t gap_set_periodic_adv_subevent_data(uint8_t adv_handle, * @return 0: Message is sent out; Other: Message is not sent out */ uint8_t gap_set_periodic_adv_rsp_data(uint16_t sync_handle, - uint8_t request_event, + uint16_t request_event, uint8_t request_subevent, uint8_t rsp_subevent, uint8_t rsp_slot, @@ -1460,7 +1460,7 @@ uint8_t gap_set_periodic_adv_rsp_data(uint16_t sync_handle, * * @param[in] sync_handle Identify the PAwR train. Range: 0x0000 to 0x0EFF * @param[in] periodic_adv_properties Properties (bit combination of \ref `adv_event_property_t`). - * Only 0 or (1 << ADV_INC_TX_POWER) is allowed. + * Only 0 or PERIODIC_ADV_BIT_INC_TX is allowed. * @param[in] num_subevents Number of subevents. Range: 0x01 to 0x80 * @param[in] subevents Each subevent to synchronize with. Range 0x00 to 0x7F * @return 0: Message is sent out; Other: Message is not sent out diff --git a/bundles/noos_exp/inc/platform_api.h b/bundles/noos_exp/inc/platform_api.h index 6700b4a48..2c7815798 100644 --- a/bundles/noos_exp/inc/platform_api.h +++ b/bundles/noos_exp/inc/platform_api.h @@ -462,6 +462,9 @@ typedef enum PLATFORM_CFG_PS_DBG_3, PLATFORM_CFG_PS_DBG_4, // Debugging parameters for ING916. Default (0) // Bit [0]: `platform_shutdown` uses DEEPER SLEEP (1) or SLEEP (0) + PLATFORM_CFG_FAST_DEEP_SLEEP_TIME_REDUCTION, // sleep time reduction (fast deep sleep mode) in us. + // Requirement: < PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION + // Only available for ING916 (default: ~2000us) } platform_cfg_item_t; typedef enum diff --git a/bundles/noos_extension/ING9168xx/apis.json b/bundles/noos_extension/ING9168xx/apis.json index be3e37588..292b2b343 100644 --- a/bundles/noos_extension/ING9168xx/apis.json +++ b/bundles/noos_extension/ING9168xx/apis.json @@ -279,22 +279,22 @@ "sm_config_conn": "0x02021be9", "sm_encryption_key_size": "0x02021d9f", "sm_just_works_confirm": "0x02022325", - "sm_le_device_key": "0x02022671", - "sm_passkey_input": "0x02022707", - "sm_private_random_address_generation_get": "0x02022ac1", - "sm_private_random_address_generation_get_mode": "0x02022ac9", - "sm_private_random_address_generation_set_mode": "0x02022ad5", - "sm_private_random_address_generation_set_update_period": "0x02022afd", - "sm_register_external_ltk_callback": "0x02022c39", - "sm_register_oob_data_callback": "0x02022c45", - "sm_request_pairing": "0x02022c51", - "sm_send_security_request": "0x02023727", - "sm_set_accepted_stk_generation_methods": "0x0202374d", - "sm_set_authentication_requirements": "0x02023759", - "sm_set_encryption_key_size_range": "0x02023765", - "sscanf_bd_addr": "0x02023b3d", - "sysSetPublicDeviceAddr": "0x02023fed", - "uuid128_to_str": "0x02024835", - "uuid_add_bluetooth_prefix": "0x0202488d", - "uuid_has_bluetooth_prefix": "0x020248ad" + "sm_le_device_key": "0x0202265d", + "sm_passkey_input": "0x020226f3", + "sm_private_random_address_generation_get": "0x02022aad", + "sm_private_random_address_generation_get_mode": "0x02022ab5", + "sm_private_random_address_generation_set_mode": "0x02022ac1", + "sm_private_random_address_generation_set_update_period": "0x02022ae9", + "sm_register_external_ltk_callback": "0x02022c25", + "sm_register_oob_data_callback": "0x02022c31", + "sm_request_pairing": "0x02022c3d", + "sm_send_security_request": "0x02023713", + "sm_set_accepted_stk_generation_methods": "0x02023739", + "sm_set_authentication_requirements": "0x02023745", + "sm_set_encryption_key_size_range": "0x02023751", + "sscanf_bd_addr": "0x02023b29", + "sysSetPublicDeviceAddr": "0x02024055", + "uuid128_to_str": "0x020248b1", + "uuid_add_bluetooth_prefix": "0x02024909", + "uuid_has_bluetooth_prefix": "0x02024929" } \ No newline at end of file diff --git a/bundles/noos_extension/ING9168xx/meta.json b/bundles/noos_extension/ING9168xx/meta.json index 18a945c69..f844720d7 100644 --- a/bundles/noos_extension/ING9168xx/meta.json +++ b/bundles/noos_extension/ING9168xx/meta.json @@ -4,15 +4,15 @@ }, "ram": { "base": 536870912, - "size": 3228 + "size": 3236 }, "rom": { "base": 33562624, - "size": 150868 + "size": 151000 }, "version": [ 2, - 2, - 53 + 3, + 0 ] } \ No newline at end of file diff --git a/bundles/noos_extension/ING9168xx/platform.bin b/bundles/noos_extension/ING9168xx/platform.bin index ce974268b5f8559db4c0302482ec3a0a715593ce..2254d9ba4a051c1f89844fe12f3de8bd1826efa7 100644 GIT binary patch delta 12267 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 delta 12187 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 AGXMYp diff --git a/bundles/noos_extension/ING9188xx/apis.json b/bundles/noos_extension/ING9188xx/apis.json index 8afeffc58..6149ebf05 100644 --- a/bundles/noos_extension/ING9188xx/apis.json +++ b/bundles/noos_extension/ING9188xx/apis.json @@ -271,22 +271,22 @@ "sm_config_conn": "0x00020bf1", "sm_encryption_key_size": "0x00020da7", "sm_just_works_confirm": "0x0002132d", - "sm_le_device_key": "0x00021679", - "sm_passkey_input": "0x0002170f", - "sm_private_random_address_generation_get": "0x00021ac9", - "sm_private_random_address_generation_get_mode": "0x00021ad1", - "sm_private_random_address_generation_set_mode": "0x00021add", - "sm_private_random_address_generation_set_update_period": "0x00021b05", - "sm_register_external_ltk_callback": "0x00021c41", - "sm_register_oob_data_callback": "0x00021c4d", - "sm_request_pairing": "0x00021c59", - "sm_send_security_request": "0x0002272f", - "sm_set_accepted_stk_generation_methods": "0x00022755", - "sm_set_authentication_requirements": "0x00022761", - "sm_set_encryption_key_size_range": "0x0002276d", - "sscanf_bd_addr": "0x00022b3d", - "sysSetPublicDeviceAddr": "0x00022ef1", - "uuid128_to_str": "0x00023691", - "uuid_add_bluetooth_prefix": "0x000236e9", - "uuid_has_bluetooth_prefix": "0x00023709" + "sm_le_device_key": "0x00021665", + "sm_passkey_input": "0x000216fb", + "sm_private_random_address_generation_get": "0x00021ab5", + "sm_private_random_address_generation_get_mode": "0x00021abd", + "sm_private_random_address_generation_set_mode": "0x00021ac9", + "sm_private_random_address_generation_set_update_period": "0x00021af1", + "sm_register_external_ltk_callback": "0x00021c2d", + "sm_register_oob_data_callback": "0x00021c39", + "sm_request_pairing": "0x00021c45", + "sm_send_security_request": "0x0002271b", + "sm_set_accepted_stk_generation_methods": "0x00022741", + "sm_set_authentication_requirements": "0x0002274d", + "sm_set_encryption_key_size_range": "0x00022759", + "sscanf_bd_addr": "0x00022b29", + "sysSetPublicDeviceAddr": "0x00022edd", + "uuid128_to_str": "0x0002367d", + "uuid_add_bluetooth_prefix": "0x000236d5", + "uuid_has_bluetooth_prefix": "0x000236f5" } \ No newline at end of file diff --git a/bundles/noos_extension/ING9188xx/meta.json b/bundles/noos_extension/ING9188xx/meta.json index cb783e0e1..5c3e4ebdc 100644 --- a/bundles/noos_extension/ING9188xx/meta.json +++ b/bundles/noos_extension/ING9188xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 135684 + "size": 135664 }, "version": [ 1, 9, - 39 + 40 ] } \ No newline at end of file diff --git a/bundles/noos_extension/ING9188xx/platform.bin b/bundles/noos_extension/ING9188xx/platform.bin index c4f2da50a0062ba4c69e9239355253d42d43a789..f97cf540ae174452227b167e6dc013a9381deb92 100644 GIT binary patch delta 6486 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 diff --git a/bundles/noos_mass_conn/ING9187xx/apis.json b/bundles/noos_mass_conn/ING9187xx/apis.json index 84c6b4c19..ad5227eeb 100644 --- a/bundles/noos_mass_conn/ING9187xx/apis.json +++ b/bundles/noos_mass_conn/ING9187xx/apis.json @@ -231,22 +231,22 @@ "sm_config_conn": "0x0001e6b1", "sm_encryption_key_size": "0x0001e867", "sm_just_works_confirm": "0x0001eded", - "sm_le_device_key": "0x0001f139", - "sm_passkey_input": "0x0001f1cf", - "sm_private_random_address_generation_get": "0x0001f589", - "sm_private_random_address_generation_get_mode": "0x0001f591", - "sm_private_random_address_generation_set_mode": "0x0001f59d", - "sm_private_random_address_generation_set_update_period": "0x0001f5c5", - "sm_register_external_ltk_callback": "0x0001f701", - "sm_register_oob_data_callback": "0x0001f70d", - "sm_request_pairing": "0x0001f719", - "sm_send_security_request": "0x000201ef", - "sm_set_accepted_stk_generation_methods": "0x00020215", - "sm_set_authentication_requirements": "0x00020221", - "sm_set_encryption_key_size_range": "0x0002022d", - "sscanf_bd_addr": "0x00020589", - "sysSetPublicDeviceAddr": "0x0002093d", - "uuid128_to_str": "0x00020f49", - "uuid_add_bluetooth_prefix": "0x00020fa1", - "uuid_has_bluetooth_prefix": "0x00020fc1" + "sm_le_device_key": "0x0001f125", + "sm_passkey_input": "0x0001f1bb", + "sm_private_random_address_generation_get": "0x0001f575", + "sm_private_random_address_generation_get_mode": "0x0001f57d", + "sm_private_random_address_generation_set_mode": "0x0001f589", + "sm_private_random_address_generation_set_update_period": "0x0001f5b1", + "sm_register_external_ltk_callback": "0x0001f6ed", + "sm_register_oob_data_callback": "0x0001f6f9", + "sm_request_pairing": "0x0001f705", + "sm_send_security_request": "0x000201db", + "sm_set_accepted_stk_generation_methods": "0x00020201", + "sm_set_authentication_requirements": "0x0002020d", + "sm_set_encryption_key_size_range": "0x00020219", + "sscanf_bd_addr": "0x00020575", + "sysSetPublicDeviceAddr": "0x00020929", + "uuid128_to_str": "0x00020f35", + "uuid_add_bluetooth_prefix": "0x00020f8d", + "uuid_has_bluetooth_prefix": "0x00020fad" } \ 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 467d52e96..31755cf55 100644 --- a/bundles/noos_mass_conn/ING9187xx/meta.json +++ b/bundles/noos_mass_conn/ING9187xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 125060 + "size": 125040 }, "version": [ 1, 9, - 39 + 40 ] } \ 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 c2e024fa9bb075183101c21a332072161f1ee837..df2ae97359ee0caafa3bc2fe0edb7645d4f6a6ec 100644 GIT binary patch delta 5861 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 delta 5854 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 b=%SSa)&9}SKOK1?`o(DfKOLvZZ4mcA>mrRC diff --git a/bundles/noos_mass_conn/ING9188xx/apis.json b/bundles/noos_mass_conn/ING9188xx/apis.json index 607560bd2..290cd6dd1 100644 --- a/bundles/noos_mass_conn/ING9188xx/apis.json +++ b/bundles/noos_mass_conn/ING9188xx/apis.json @@ -245,22 +245,22 @@ "sm_config_conn": "0x0001faf1", "sm_encryption_key_size": "0x0001fca7", "sm_just_works_confirm": "0x0002022d", - "sm_le_device_key": "0x00020579", - "sm_passkey_input": "0x0002060f", - "sm_private_random_address_generation_get": "0x000209c9", - "sm_private_random_address_generation_get_mode": "0x000209d1", - "sm_private_random_address_generation_set_mode": "0x000209dd", - "sm_private_random_address_generation_set_update_period": "0x00020a05", - "sm_register_external_ltk_callback": "0x00020b41", - "sm_register_oob_data_callback": "0x00020b4d", - "sm_request_pairing": "0x00020b59", - "sm_send_security_request": "0x0002162f", - "sm_set_accepted_stk_generation_methods": "0x00021655", - "sm_set_authentication_requirements": "0x00021661", - "sm_set_encryption_key_size_range": "0x0002166d", - "sscanf_bd_addr": "0x000219c9", - "sysSetPublicDeviceAddr": "0x00021d7d", - "uuid128_to_str": "0x0002251d", - "uuid_add_bluetooth_prefix": "0x00022575", - "uuid_has_bluetooth_prefix": "0x00022595" + "sm_le_device_key": "0x00020565", + "sm_passkey_input": "0x000205fb", + "sm_private_random_address_generation_get": "0x000209b5", + "sm_private_random_address_generation_get_mode": "0x000209bd", + "sm_private_random_address_generation_set_mode": "0x000209c9", + "sm_private_random_address_generation_set_update_period": "0x000209f1", + "sm_register_external_ltk_callback": "0x00020b2d", + "sm_register_oob_data_callback": "0x00020b39", + "sm_request_pairing": "0x00020b45", + "sm_send_security_request": "0x0002161b", + "sm_set_accepted_stk_generation_methods": "0x00021641", + "sm_set_authentication_requirements": "0x0002164d", + "sm_set_encryption_key_size_range": "0x00021659", + "sscanf_bd_addr": "0x000219b5", + "sysSetPublicDeviceAddr": "0x00021d69", + "uuid128_to_str": "0x00022509", + "uuid_add_bluetooth_prefix": "0x00022561", + "uuid_has_bluetooth_prefix": "0x00022581" } \ 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 164ab842a..68a18759e 100644 --- a/bundles/noos_mass_conn/ING9188xx/meta.json +++ b/bundles/noos_mass_conn/ING9188xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 131104 + "size": 131084 }, "version": [ 1, 9, - 39 + 40 ] } \ 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 953db23d4119fcb0c88b160573f77b45d1689285..7b9be1918bdf6a0bac725fc6a76c82bb499a0d30 100644 GIT binary patch delta 6346 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 CBUn!BT_Km!$%aE<4!C2v86qTQ9;U;I#L=&D4; z>~dWzVI9H;oi3*LG}9uV2q~7;-8jZVLeDj<=%(W=sw$}o*w$7+SzYf=agC|AyB5n< zP51hj(VQP4+INwItzwJh>c>KsO>G*?4m62zluGMnkwTe;(3(FDn3|kEQeyh4DM$;y2 zvPpu1)hy=_LL93fis2OB0i=V5)I&1f;92z$FLPB$$N+i(NmxRk*5m0KLuCyZFan>3N7yWVMX$Nw^0B8S$}Me4vnk#yd4>OqkcF#LtY_m=ZRhL zbBHomQD&Ew32JGM37u3wD%AKp--W_eyr?!%->VSl_qDA&TUiyXCZ;I0Bxzk#kbDxbgSt+N+o@+G)*Iv@eCWp(ZG#F4xdSLutr0 z?0M1g*D%YM(}mX{*sq{76utDqB5nT?m~y)?${u10EkZAe>;QV=8c6X;a%!D6LcBaFsuRM?0o z@(}%|5hA<}*vO~wX=sr$SiVo(bTqROl4TkAy88}|Zo)(rM&~v`iVx>d8A5TRzIK?Z z~O zML{&Z_!H)VGCKDLx~7e8y#Y~iC!K08lzSjNbp~-ttw{aqOnx5u*Tm-q__PPY6=x_G zK>EZ7!WYNI@^5WF249n){(6^4vXMsL!~(&MZn=q3!qYuBA<)IoA?ISUZGsQI zd=rC;P@kVcfTPso7T)S_)An0f2%Mpwx3TI|(fPMAT_@5nZ(}g)=*8PugLu){J9x)e z(xZ1E#rv{dhA(g`Gwwu#Q#j?kCtRiezu<;u(~-Ym#l+LKzd$?Ijmz$WkB=E&Bvgm* z32t`W*6!STPw=KY@4`mUM>S#zrAQ=1nrIV_(V->`hkw&l6NWP;{I<7Q1uyz;SEs8FrwI+OQx!CiiW)mo}j_4GJ4pEn?&KC3SC#}f9teML-aQERd9CYE5?o#J zouf61OX6ZVrRK44h#t6yCo0EScMnfRUX1fzW& zemY{&I$t}4#B!67+K*$>$Ax4H((d-G0m_Kyw@@+mN>R(vcE(fH(9_?6eOFV@tbhJt zR=X{0z~Q9lx2oF-38HxqAVAwm&ZwxetPNSb)>Qrzx@a`wB-S0PMvJ+Rmo^n7@Ipn8Ddh1esWqo?aWh^1n=+nm#m^T%Ndt+BbZ^XYL z_CfqRq7R~|rteGiMVyQMeu(1Fk0m4n`~49YA^IbV@+_jLCkQbMF%oeK;xI&UdBYKx zBSy0%ulvDo;J|x0FcOhNjCqN%h@#&|A-;ha{}M+dZp3~9VlrYPq9`{8QG7rW;zx*M z5w{|aL!^k~5ycvL6@bk-NrSyKjt4GMFgHG|%CLe&2Q`TZZs diff --git a/bundles/noos_mass_conn/inc/bluetooth.h b/bundles/noos_mass_conn/inc/bluetooth.h index 9839e3d8e..a7d216362 100644 --- a/bundles/noos_mass_conn/inc/bluetooth.h +++ b/bundles/noos_mass_conn/inc/bluetooth.h @@ -152,8 +152,13 @@ typedef enum { #define ERROR_CODE_CONNECTION_FAILED_TO_BE_ESTABLISHED 0x3E #define ERROR_CODE_MAC_CONNECTION_FAILED 0x3F #define ERROR_CODE_COARSE_CLOCK_ADJUSTMENT_REJECTED_BUT_WILL_TRY_TO_ADJUST_USING_CLOCK_DRAGGING 0x40 -#define ERROR_CODE_UNKNOWN_ADVERTISING_IDENTIFIER 0x42 -#define ERROR_CODE_LIMIT_REACHED 0x43 +#define ERROR_CODE_UNKNOWN_ADVERTISING_IDENTIFIER 0x42 +#define ERROR_CODE_LIMIT_REACHED 0x43 +#define ERROR_CODE_OP_CANCELLED_BY_HOST 0x44 +#define ERROR_CODE_PACKET_TOO_LONG 0x45 +#define ERROR_CODE_TOO_LATE 0x46 +#define ERROR_CODE_TOO_EARLY 0x47 + // HCI roles #define HCI_ROLE_MASTER 0 #define HCI_ROLE_SLAVE 1 @@ -508,6 +513,12 @@ typedef enum { #define HCI_SUBEVENT_LE_TRANSMIT_POWER_REPORTING 0x21 #define HCI_SUBEVENT_LE_BIGINFO_ADV_REPORT 0x22 #define HCI_SUBEVENT_LE_SUBRATE_CHANGE 0x23 +#define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHED_V2 0x24 +#define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_REPORT_V2 0x25 +#define HCI_SUBEVENT_LE_PRD_ADV_SYNC_TRANSFER_RCVD_V2 0x26 +#define HCI_SUBEVENT_PRD_ADV_SUBEVT_DATA_REQ 0x27 +#define HCI_SUBEVENT_PRD_ADV_RSP_REPORT 0x28 +#define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2 0x29 // Vendor specific subevents #define HCI_SUBEVENT_LE_VENDOR_CHANNEL_MAP_UPDATE 0xFE @@ -686,7 +697,10 @@ typedef enum { SM_CODE_IDENTITY_INFORMATION, SM_CODE_IDENTITY_ADDRESS_INFORMATION, SM_CODE_SIGNING_INFORMATION, - SM_CODE_SECURITY_REQUEST + SM_CODE_SECURITY_REQUEST, + SM_CODE_PAIRING_PUBLIC_KEY, + SM_CODE_PAIRING_DHKEY_CHECK, + SM_CODE_PAIRING_KEYPRESS_NOTIFICATION } SECURITY_MANAGER_COMMANDS; // IO Capability Values @@ -703,6 +717,7 @@ typedef enum { #define SM_AUTHREQ_NO_BONDING 0x00 #define SM_AUTHREQ_BONDING 0x01 #define SM_AUTHREQ_MITM_PROTECTION 0x04 +#define SM_AUTHREQ_SC 0x08 // Key distribution flags used by spec #define SM_KEYDIST_ENC_KEY 0X01 @@ -720,6 +735,7 @@ typedef enum { #define SM_STK_GENERATION_METHOD_JUST_WORKS 0x01 #define SM_STK_GENERATION_METHOD_OOB 0x02 #define SM_STK_GENERATION_METHOD_PASSKEY 0x04 +#define SM_STK_GENERATION_METHOD_NUM_COMPARISON 0x08 // Pairing Failed Reasons #define SM_REASON_RESERVED 0x00 @@ -732,6 +748,11 @@ typedef enum { #define SM_REASON_COMMAND_NOT_SUPPORTED 0x07 #define SM_REASON_UNSPECIFIED_REASON 0x08 #define SM_REASON_REPEATED_ATTEMPTS 0x09 +#define SM_REASON_REPEATED_ATTEMPTS 0x09 +#define SM_REASON_INVALID_PARAMETERS 0x0a +#define SM_REASON_DHKEY_CHECK_FAILED 0x0b +#define SM_REASON_NUMERIC_COMPARISON_FAILED 0x0c +#define SM_REASON_KEY_REJECTED_FAILED 0x0f // also, invalid parameters // and reserved diff --git a/bundles/noos_mass_conn/inc/btstack_event.h b/bundles/noos_mass_conn/inc/btstack_event.h index f2d412930..32610c414 100644 --- a/bundles/noos_mass_conn/inc/btstack_event.h +++ b/bundles/noos_mass_conn/inc/btstack_event.h @@ -1013,11 +1013,11 @@ typedef struct le_directed_adv_report } le_directed_adv_report_t; // LE Directed Advertising Report Event -typedef struct le_meta_directed_adv_report +typedef struct le_meta_event_directed_adv_report { uint8_t num_of_reports; le_directed_adv_report_t reports[1]; -} le_meta_directed_adv_report_t; +} le_meta_event_directed_adv_report_t; typedef struct le_meta_event_enh_create_conn_complete { @@ -1045,14 +1045,44 @@ typedef struct le_meta_event_enh_create_conn_complete uint8_t clk_accuracy; } le_meta_event_enh_create_conn_complete_t; +typedef struct le_meta_event_enh_create_conn_complete_v2 +{ + //Status of received command + uint8_t status; + //Connection handle + uint16_t handle; + //Device role - 0=Master/ 1=Slave + uint8_t role; + //Peer address type - 0=public/1=random + bd_addr_type_t peer_addr_type; + //Peer address + bd_addr_t peer_addr; + //Local_Resolvable_Private_Address + bd_addr_t local_resolv_priv_addr; + //Peer_Resolvable_Private_Address + bd_addr_t peer_resolv_priv_addr; + //Connection interval + uint16_t interval; + //Connection latency + uint16_t latency; + //Link supervision timeout + uint16_t sup_timeout; + //Master clock accuracy + uint8_t clk_accuracy; + //the advertising set + uint8_t adv_handle; + //the periodic advertising train + uint16_t sync_Handle; +} le_meta_event_enh_create_conn_complete_v2_t; + // LE PHY Update Complete Event -typedef struct le_meta_phy_update_complete +typedef struct le_meta_event_phy_update_complete { uint8_t status; uint16_t handle; phy_type_t tx_phy; phy_type_t rx_phy; -} le_meta_phy_update_complete_t; +} le_meta_event_phy_update_complete_t; // evt_type #define HCI_EXT_ADV_PROP_CONNECTABLE (1 << 0) @@ -1106,6 +1136,24 @@ typedef struct le_meta_event_periodic_adv_sync_established uint8_t clk_accuracy; } le_meta_event_periodic_adv_sync_established_t; +typedef struct le_meta_event_periodic_adv_sync_established_v2 +{ + uint8_t status; + uint16_t handle; + uint8_t sid; + bd_addr_type_t addr_type; + bd_addr_t address; + phy_type_t phy; + uint16_t interval; + uint8_t clk_accuracy; + + // [V2] additional fields + uint8_t num_subevents; + uint8_t subevent_interval; + uint8_t rsp_slot_delay; + uint8_t rsp_slot_spacing; +} le_meta_event_periodic_adv_sync_established_v2_t; + #define HCI_PRD_ADV_DATA_STATUS_CML (0) #define HCI_PRD_ADV_DATA_STATUS_HAS_MORE (1) #define HCI_PRD_ADV_DATA_STATUS_TRUNCED (2) @@ -1116,12 +1164,25 @@ typedef struct le_meta_event_periodic_adv_report uint16_t handle; int8_t tx_power; int8_t rssi; - uint8_t unused; + uint8_t cte_type; uint8_t data_status; uint8_t data_length; uint8_t data[0]; } le_meta_event_periodic_adv_report_t; +typedef struct le_meta_event_periodic_adv_report_v2 +{ + uint16_t handle; + int8_t tx_power; + int8_t rssi; + uint8_t cte_type; + uint16_t periodic_event_counter; + uint8_t subevent; + uint8_t data_status; + uint8_t data_length; + uint8_t data[0]; +} le_meta_event_periodic_adv_report_v2_t; + // LE Periodic Advertising Sync Lost Event typedef struct le_meta_event_periodic_adv_sync_lost { @@ -1132,21 +1193,21 @@ typedef struct le_meta_event_periodic_adv_sync_lost // {} // LE Advertising Set Terminated Event -typedef struct le_meta_adv_set_terminated +typedef struct le_meta_event_adv_set_terminated { uint8_t status; uint8_t adv_handle; uint16_t conn_handle; uint8_t num_events; // Num_Completed_Extended_Advertising_Events -} le_meta_adv_set_terminated_t; +} le_meta_event_adv_set_terminated_t; // LE Scan Request Received Event -typedef struct le_meta_scan_req_received +typedef struct le_meta_event_scan_req_received { uint8_t adv_handle; bd_addr_type_t scanner_addr_type; bd_addr_t scanner_addr; -} le_meta_scan_req_received_t; +} le_meta_event_scan_req_received_t; typedef enum ble_ch_sel_algo { @@ -1156,11 +1217,11 @@ typedef enum ble_ch_sel_algo } ble_ch_sel_algo_t; // LE Channel Selection Algorithm Event -typedef struct le_meta_ch_sel_algo +typedef struct le_meta_event_ch_sel_algo { uint16_t conn_handle; ble_ch_sel_algo_t algo; -} le_meta_ch_sel_algo_t; +} le_meta_event_ch_sel_algo_t; typedef struct le_iq_sample { @@ -1168,7 +1229,7 @@ typedef struct le_iq_sample int8_t q; } le_iq_sample_t; -typedef struct le_meta_connless_iq_report +typedef struct le_meta_event_connless_iq_report { uint16_t sync_handle; uint8_t channel_index; @@ -1180,9 +1241,9 @@ typedef struct le_meta_connless_iq_report uint16_t event_counter; uint8_t sample_count; le_iq_sample_t samples[0]; -} le_meta_connless_iq_report_t; +} le_meta_event_connless_iq_report_t; -typedef struct le_meta_pro_connless_iq_report +typedef struct le_meta_event_pro_connless_iq_report { bd_addr_type_t addr_type; bd_addr_t addr; @@ -1195,9 +1256,9 @@ typedef struct le_meta_pro_connless_iq_report uint8_t packet_status; uint8_t sample_count; le_iq_sample_t samples[0]; -} le_meta_pro_connless_iq_report_t; +} le_meta_event_pro_connless_iq_report_t; -typedef struct le_meta_conn_iq_report +typedef struct le_meta_event_conn_iq_report { uint16_t conn_handle; phy_type_t rx_phy; @@ -1210,15 +1271,29 @@ typedef struct le_meta_conn_iq_report uint16_t event_counter; uint8_t sample_count; le_iq_sample_t samples[0]; -} le_meta_conn_iq_report_t; +} le_meta_event_conn_iq_report_t; + +typedef struct le_meta_event_cte_req_failed +{ + uint8_t status; + uint16_t conn_handle; +} le_meta_event_cte_req_failed_t; -typedef struct le_meta_cte_req_failed +typedef struct le_meta_event_prd_adv_sync_transfer_recv { uint8_t status; uint16_t conn_handle; -} le_meta_cte_req_failed_t; + uint16_t service_data; + uint16_t sync_handle; + uint8_t adv_sid; + bd_addr_type_t addr_type; + bd_addr_t addr; + phy_type_t phy; + uint16_t prd_adv_interval; + uint8_t clk_acc; +} le_meta_event_prd_adv_sync_transfer_recv_t; -typedef struct le_meta_prd_adv_sync_transfer_recv +typedef struct le_meta_event_prd_adv_sync_transfer_recv_v2 { uint8_t status; uint16_t conn_handle; @@ -1230,7 +1305,13 @@ typedef struct le_meta_prd_adv_sync_transfer_recv phy_type_t phy; uint16_t prd_adv_interval; uint8_t clk_acc; -} le_meta_prd_adv_sync_transfer_recv_t; + + // [V2] additional fields + uint8_t num_subevents; + uint8_t subevent_interval; + uint8_t rsp_slot_delay; + uint8_t rsp_slot_spacing; +} le_meta_event_prd_adv_sync_transfer_recv_v2_t; typedef enum le_clock_accuracy { @@ -1244,12 +1325,12 @@ typedef enum le_clock_accuracy LE_CLOCK_ACCURACY_20_PPM, } le_clock_accuracy_t; -typedef struct le_meta_request_peer_sca_complete +typedef struct le_meta_event_request_peer_sca_complete { uint8_t status; uint16_t conn_handle; le_clock_accuracy_t peer_clock_accuracy; -} le_meta_request_peer_sca_complete_t; +} le_meta_event_request_peer_sca_complete_t; typedef enum le_path_loss_zone_event { @@ -1258,12 +1339,12 @@ typedef enum le_path_loss_zone_event PATH_LOSS_ZONE_ENTER_HIGH = 2, } le_path_loss_zone_event_t; -typedef struct le_meta_path_loss_threshold +typedef struct le_meta_event_path_loss_threshold { uint16_t conn_handle; uint8_t current_path_loss; // Current path loss (always zero or positive) Units: dB le_path_loss_zone_event_t zone_entered; -} le_meta_path_loss_threshold_t; +} le_meta_event_path_loss_threshold_t; typedef enum le_tx_power_reporting_reason { @@ -1272,7 +1353,7 @@ typedef enum le_tx_power_reporting_reason TX_POWER_REPORTING_REASON_HCI_COMPLETE = 2, } le_tx_power_reporting_reason_t; -typedef struct le_meta_tx_power_reporting +typedef struct le_meta_event_tx_power_reporting { uint8_t status; uint16_t conn_handle; @@ -1285,7 +1366,7 @@ typedef struct le_meta_tx_power_reporting // negative indicates decreased power, zero indicates unchanged) // Units: dB // 0x7F: Change is not available or is out of range -} le_meta_tx_power_reporting_t; +} le_meta_event_tx_power_reporting_t; typedef struct le_meta_subrate_change { @@ -1305,6 +1386,83 @@ typedef struct le_meta_subrate_change // Time Range: 100 ms to 32 s } le_meta_subrate_change_t; +typedef struct le_mete_event_prd_adv_subevent_data_req +{ + uint8_t adv_handle; // Used to identify a periodic advertising train + // Range: 0x00 to 0xEF + uint8_t subevent_start; // The first subevent that data is requested for. + // Range: 0x00 to 0x7F + uint8_t subevent_data_count; // The number of subevents that data is requested for. + // Range: 0x01 to 0x80 +} le_mete_event_prd_adv_subevent_data_req_t; + +typedef struct le_prd_adv_rsp_report +{ + int8_t tx_power; // Range: -127 to +20. Unit dBm + // 0x7F: Tx Power information not available + int8_t rssi; // Range: -127 to +20. Unit dBm + // 0x7F: RSSI not available + uint8_t cte_type; // 0x00: AoA; 0x01: AoD (1us); 0x02: AoD (2us) + // 0xFF: no CTE + uint8_t response_slot; // The response slot the data was received in. + // Range: 0x00 to 0xFF + uint8_t data_status; // 0x00: Data complete; + // 0x01: Data incomplete, more data to come; + // 0xFF: Failed to receive an AUX_SYNC_SUBEVENT_RSP PDU + uint8_t data_length; // Length of the Data field +#ifdef __ICCARM__ + uint8_t data[1]; +#else + uint8_t data[0]; +#endif +} le_prd_adv_rsp_report_t; + +typedef struct le_mete_event_prd_adv_rsp_report +{ + uint8_t adv_handle; // Used to identify a periodic advertising train + // Range: 0x00 to 0xEF + uint8_t subevent; // The subevent number. + // Range: 0x00 to 0x7F + uint8_t tx_status; // 0x00: AUX_SYNC_SUBEVENT_IND packet was transmitted + // 0x01: AUX_SYNC_SUBEVENT_IND packet was not transmitted. + // Others: reserved + uint8_t num_responses; // Number of responses in event. + // This is always <= 1 + le_prd_adv_rsp_report_t reports[1]; +} le_mete_event_prd_adv_rsp_report_t; + +// for naming compatibility +#define le_meta_tx_power_reporting_t le_meta_event_tx_power_reporting_t +#define le_meta_tx_power_reporting le_meta_event_tx_power_reporting +#define le_meta_path_loss_threshold_t le_meta_event_path_loss_threshold_t +#define le_meta_path_loss_threshold le_meta_event_path_loss_threshold +#define le_meta_request_peer_sca_complete_t le_meta_event_request_peer_sca_complete_t +#define le_meta_request_peer_sca_complete le_meta_event_request_peer_sca_complete +#define le_meta_prd_adv_sync_transfer_recv_v2_t le_meta_event_prd_adv_sync_transfer_recv_v2_t +#define le_meta_prd_adv_sync_transfer_recv_v2 le_meta_event_prd_adv_sync_transfer_recv_v2 +#define le_meta_prd_adv_sync_transfer_recv_t le_meta_event_prd_adv_sync_transfer_recv_t +#define le_meta_prd_adv_sync_transfer_recv le_meta_event_prd_adv_sync_transfer_recv +#define le_meta_conn_iq_report_t le_meta_event_conn_iq_report_t +#define le_meta_conn_iq_report le_meta_event_conn_iq_report +#define le_meta_cte_req_failed_t le_meta_event_cte_req_failed_t +#define le_meta_cte_req_failed le_meta_event_cte_req_failed +#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_pro_connless_iq_report le_meta_event_pro_connless_iq_report +#define le_meta_connless_iq_report_t le_meta_event_connless_iq_report_t +#define le_meta_connless_iq_report le_meta_event_connless_iq_report +#define le_meta_ch_sel_algo_t le_meta_event_ch_sel_algo_t +#define le_meta_ch_sel_algo le_meta_event_ch_sel_algo +#define le_meta_scan_req_received_t le_meta_event_scan_req_received_t +#define le_meta_scan_req_received le_meta_event_scan_req_received +#define le_meta_phy_update_complete_t le_meta_event_phy_update_complete_t +#define le_meta_phy_update_complete le_meta_event_phy_update_complete +#define le_meta_directed_adv_report_t le_meta_event_directed_adv_report_t +#define le_meta_directed_adv_report le_meta_event_directed_adv_report +#define le_mete_prd_adv_subevent_data_req_t le_mete_event_prd_adv_subevent_data_req_t +#define le_mete_prd_adv_subevent_data_req le_mete_event_prd_adv_subevent_data_req +#define le_meta_adv_set_terminated_t le_meta_event_adv_set_terminated_t +#define le_meta_adv_set_terminated le_meta_event_adv_set_terminated + typedef enum btstack_l2cap_msg_def { BTSTACK_L2CAP_MSG_CAN_SEND_NOW = 0, diff --git a/bundles/noos_mass_conn/inc/gap.h b/bundles/noos_mass_conn/inc/gap.h index 595bde525..94ec41d4e 100644 --- a/bundles/noos_mass_conn/inc/gap.h +++ b/bundles/noos_mass_conn/inc/gap.h @@ -183,7 +183,7 @@ typedef enum typedef uint8_t adv_event_properties_t; -#define PERIODIC_ADV_BIT_INC_TX BIT(6) +#define PERIODIC_ADV_BIT_INC_TX BIT(ADV_INC_TX_POWER) typedef uint8_t periodic_adv_properties_t; /** @@ -539,6 +539,53 @@ uint8_t gap_set_periodic_adv_para(const uint8_t adv_handle, const uint16_t interval_max, const periodic_adv_properties_t properties); +/** + * @brief LE Set Periodic Advertising Parameters command + * + * @param adv_handle handle of advertising set + * + * @param interval_min 0xXXXX Range: 0x0006 to 0xFFFF + * Time = N * 1.25 ms + * Time Range: 7.5ms to 81.91875 s + * + * @param interval_max refer to interval_min + * + * @param properties BIT(6): Include TxPower in the advertising PDU + * + * @param num_subevents Number of subevents. Range: 0x00 to 0x80 + * + * @param subevent_interval Interval between subevents. Range: 0x06 to 0xFF + * Time = N × 1.25 ms + * Time Range: 7.5 ms to 318.75 ms + * + * @param response_slot_delay 0x00: No response slots + * 0xXX: Time between the advertising packet in a subevent and the first + * response slot. Range: 0x01 to 0xFE + * Time = N × 1.25 ms + * Time Range: 1.25 ms to 317.5 ms + * + * @param response_slot_spacing 0x00: No response slots + * 0xXX: Time between response slots. Range: 0x02 to 0xFF + * Time = N × 0.125 ms + * Time Range: 0.25 ms to 31.875 ms + * + * @param num_response_slots 0x00: No response slots + * 0xXX: Number of subevent response slots. Range: 0x01 to 0xFF + * + * @return 0: message sent to controller + */ +// uint8_t gap_set_periodic_adv_para_v2(const uint8_t adv_handle, +// const uint16_t interval_min, +// const uint16_t interval_max, +// const periodic_adv_properties_t properties, +// const uint8_t num_subevents, +// const uint8_t subevent_interval, +// const uint8_t response_slot_delay, +// const uint8_t response_slot_spacing, +// const uint8_t num_response_slots); +// WARNING: ^^^ this API is not available in this release + + /** * @brief LE Clear Advertising Sets command * @@ -728,6 +775,48 @@ uint8_t gap_ext_create_connection(const initiating_filter_policy_t filter_policy const uint8_t initiating_phy_num, const initiating_phy_config_t *phy_configs); +/** + * @brief LE Extended Create Connection command [V2] + * + * @ref `gap_ext_create_connection` + * + * When creating connection through PAwR, the `adv_handle` parameter is used to identify + * the periodic advertising train, and the `subevent` parameter is used to identify the + * subevent where a connection request shall be initiated from a periodic advertising train. + * Otherwise, these two parameters shall be set to 0xFF, in which case, the behavior of + * this function is exactly the same as [V1]. + * + * @param adv_handle Advertising_Handle identifying the periodic advertising train + * Range: 0x00 to 0xEF or 0xFF + * + * @param subevent Subevent where the connection request is to be sent. + * Range: 0x00 to 0x7F or 0xFF + * + * @param filter_policy @ref `gap_ext_create_connection` + * + * @param own_addr_type @ref `gap_ext_create_connection` + * + * @param peer_addr_type @ref `gap_ext_create_connection` + * + * @param peer_addr @ref `gap_ext_create_connection` + * + * @param initiating_phy_num @ref `gap_ext_create_connection` + * + * @param phy_configs @ref `gap_ext_create_connection` + * + * @return 0: message sent to controller + */ +// uint8_t gap_ext_create_connection_v2(const uint8_t adv_handle, +// const uint8_t subevent, +// const initiating_filter_policy_t filter_policy, +// const bd_addr_type_t own_addr_type, +// const bd_addr_type_t peer_addr_type, +// const uint8_t *peer_addr, +// const uint8_t initiating_phy_num, +// const initiating_phy_config_t *phy_configs); +// WARNING: ^^^ this API is not available in this release + + /** * @brief Cancel connection process initiated by gap_ext_create_connection * @@ -1333,6 +1422,78 @@ uint8_t gap_tx_test_v4(uint8_t tx_channel, uint8_t test_data_length, */ uint8_t gap_test_end(void); +#pragma pack (push, 1) + +typedef struct +{ + uint8_t subevent; // The subevent index of the data contained in this command. Range: 0x00 to 0x7F + uint8_t rsp_slot_start; // The first response slots to be used in this subevent + uint8_t rsp_slot_count; // The number of response slots to be used. + uint8_t data_len; // The number of octets in the `data`. [0..251] + const uint8_t * data; // Advertising data +} gap_prd_adv_subevent_data_t; + +#pragma pack (pop) + +/** + * @brief Set the data for one or more subevents of PAwR + * + * The data for a subevent will be transmitted only once. Total length of the packed + * HCI command should not exceed maximum length. + * + * @param[in] adv_handle Used to identify a periodic advertising train. Range: 0x00 to 0xEF + * @param[in] num_subevents Number of subevent data in the command. (0x01..0x0f) + * @param[in] data data for each subevents + * @return 0: Message is sent out; Other: Message is not sent out + */ +// uint8_t gap_set_periodic_adv_subevent_data(uint8_t adv_handle, +// uint8_t num_subevents, +// const gap_prd_adv_subevent_data_t *data); +// WARNING: ^^^ this API is not available in this release + + +/** + * @brief Set the data for a response slot in a specific subevent of the PAwR + * + * The data for a subevent will be transmitted only once. + * + * @param[in] sync_handle Identify the PAwR train. Range: 0x0000 to 0x0EFF + * @param[in] request_event The value of `paEventCounter` for the periodic advertising + * packet that the Host is responding to. + * @param[in] request_subevent The subevent for the periodic advertising packet that the Host is responding to. + * @param[in] rsp_subevent Identify the subevent of the PAwR train. Range: 0x00 to 0x7F + * @param[in] rsp_slot Identify the response slot of the PAwR train. Range: 0x00 to 0xFF + * @param[in] rsp_data_len The number of octets in the `rsp_data` parameter. (0..251) + * @param[in] rsp_data Response data. + * @return 0: Message is sent out; Other: Message is not sent out + */ +// uint8_t gap_set_periodic_adv_rsp_data(uint16_t sync_handle, +// uint16_t request_event, +// uint8_t request_subevent, +// uint8_t rsp_subevent, +// uint8_t rsp_slot, +// uint8_t rsp_data_len, +// const uint8_t *rsp_data); +// WARNING: ^^^ this API is not available in this release + + +/** + * @brief Instruct the Controller to synchronize with a subset of the subevents within a PAwR train + * + * @param[in] sync_handle Identify the PAwR train. Range: 0x0000 to 0x0EFF + * @param[in] periodic_adv_properties Properties (bit combination of \ref `adv_event_property_t`). + * Only 0 or PERIODIC_ADV_BIT_INC_TX is allowed. + * @param[in] num_subevents Number of subevents. Range: 0x01 to 0x80 + * @param[in] subevents Each subevent to synchronize with. Range 0x00 to 0x7F + * @return 0: Message is sent out; Other: Message is not sent out + */ +// uint8_t gap_set_periodic_sync_subevent(uint16_t sync_handle, +// uint16_t periodic_adv_properties, +// uint8_t num_subevents, +// const uint8_t *subevents); +// WARNING: ^^^ this API is not available in this release + + /** * @brief Start/Stop transmission of continuouswave. * diff --git a/bundles/noos_mass_conn/inc/platform_api.h b/bundles/noos_mass_conn/inc/platform_api.h index 6700b4a48..2c7815798 100644 --- a/bundles/noos_mass_conn/inc/platform_api.h +++ b/bundles/noos_mass_conn/inc/platform_api.h @@ -462,6 +462,9 @@ typedef enum PLATFORM_CFG_PS_DBG_3, PLATFORM_CFG_PS_DBG_4, // Debugging parameters for ING916. Default (0) // Bit [0]: `platform_shutdown` uses DEEPER SLEEP (1) or SLEEP (0) + PLATFORM_CFG_FAST_DEEP_SLEEP_TIME_REDUCTION, // sleep time reduction (fast deep sleep mode) in us. + // Requirement: < PLATFORM_CFG_DEEP_SLEEP_TIME_REDUCTION + // Only available for ING916 (default: ~2000us) } platform_cfg_item_t; typedef enum diff --git a/bundles/noos_mini/ING9168xx/apis.json b/bundles/noos_mini/ING9168xx/apis.json index 50fb8e0d0..cf9886307 100644 --- a/bundles/noos_mini/ING9168xx/apis.json +++ b/bundles/noos_mini/ING9168xx/apis.json @@ -246,21 +246,21 @@ "sm_config_conn": "0x0201d2d1", "sm_encryption_key_size": "0x0201d487", "sm_just_works_confirm": "0x0201da0d", - "sm_le_device_key": "0x0201dd59", - "sm_passkey_input": "0x0201ddef", - "sm_private_random_address_generation_get": "0x0201e1a9", - "sm_private_random_address_generation_get_mode": "0x0201e1b1", - "sm_private_random_address_generation_set_mode": "0x0201e1bd", - "sm_private_random_address_generation_set_update_period": "0x0201e1e5", - "sm_register_external_ltk_callback": "0x0201e321", - "sm_register_oob_data_callback": "0x0201e32d", - "sm_request_pairing": "0x0201e339", - "sm_send_security_request": "0x0201ee0f", - "sm_set_accepted_stk_generation_methods": "0x0201ee35", - "sm_set_authentication_requirements": "0x0201ee41", - "sm_set_encryption_key_size_range": "0x0201ee4d", - "sscanf_bd_addr": "0x0201f1ad", - "sysSetPublicDeviceAddr": "0x0201f261", + "sm_le_device_key": "0x0201dd45", + "sm_passkey_input": "0x0201dddb", + "sm_private_random_address_generation_get": "0x0201e195", + "sm_private_random_address_generation_get_mode": "0x0201e19d", + "sm_private_random_address_generation_set_mode": "0x0201e1a9", + "sm_private_random_address_generation_set_update_period": "0x0201e1d1", + "sm_register_external_ltk_callback": "0x0201e30d", + "sm_register_oob_data_callback": "0x0201e319", + "sm_request_pairing": "0x0201e325", + "sm_send_security_request": "0x0201edfb", + "sm_set_accepted_stk_generation_methods": "0x0201ee21", + "sm_set_authentication_requirements": "0x0201ee2d", + "sm_set_encryption_key_size_range": "0x0201ee39", + "sscanf_bd_addr": "0x0201f199", + "sysSetPublicDeviceAddr": "0x0201f24d", "uuid128_to_str": "0x0201fa09", "uuid_add_bluetooth_prefix": "0x0201fa61", "uuid_has_bluetooth_prefix": "0x0201fa81" diff --git a/bundles/noos_mini/ING9168xx/meta.json b/bundles/noos_mini/ING9168xx/meta.json index 4d59d8c75..d76a23456 100644 --- a/bundles/noos_mini/ING9168xx/meta.json +++ b/bundles/noos_mini/ING9168xx/meta.json @@ -4,15 +4,15 @@ }, "ram": { "base": 536870912, - "size": 16996 + "size": 17116 }, "rom": { "base": 33562624, - "size": 144728 + "size": 144840 }, "version": [ 2, - 2, - 53 + 3, + 0 ] } \ No newline at end of file diff --git a/bundles/noos_mini/ING9168xx/platform.bin b/bundles/noos_mini/ING9168xx/platform.bin index d76a6caa3a1b9a8a248d81f287eb3dd141a968eb..3244dbfd96609f5ed03d5f1b8739d87a0c902029 100644 GIT binary patch delta 12804 zcmZ8{30RXy^Y}ZP69fq=1wrzVnjvoK3XfN^i#j8QCq?Di+H@@Nb;Y313cgF&-1XeGdnXoyE{8OyKk;O zke_`hFMMA@dvMB4Me{ci5%)O+!C&TJsD}m%ke#wj=yAM}^T|rpHs0>2g^u#jhBpqF z+}?VutyR~!)5k;8HCA@i9=Fv}UOqKH^NPxAYSW-=9N8w9^78c#U6bDb|MmZGPXjt+ zr?*L<);0-Uqw_V7Y|6{qZLPY-9G`Y8>y`;M^LB6FyjyKlUE{4bjl&!LJ2c*E)2Mwp zu0vYpkxtb$ZhEa<=I=u1QQEkRHX0|ss zCQmjG?eq?bm~7tG>5IHG9_G}P#w~q4yt+nJN0$%VCtZFpJjI z0bkL9hYR@P4qVCbUiSGN1eL&$(}Al6Je%R>O21oq9ix=gGlK>Eb_XsO@M|4- zgn-v};GBS;>%hGQ{8$?fX@&)+RE`^!#1>5?v{^iD?;=4g5cYHkO9cGe4%|n;zv{q! z1>D?$cNg#t9k^7$S25hY*gu?fOE!P$KM;ZClE2yyzB9j2W}s7yR1L@aI#o!(K3p2F zRF04|LzY-Y3{v~Nqx;Mis{bI@7PXbMw3Hj+5M!Eg!STZWfJa9lE3^tz`kP5rZeglJ{z!E)hoR@srA2n7&>YBMf6E-fBn-I-V%fN+W zByhsAF1H`?%Ef8+O!cuPlc3lfy0kz1ZO&X8f#ruwH(&|N`d}HeY>@BY!Yawz7I*%# zvB-aFnH5`?FAt1lts;XsO=~RBL9LswI%-N~w7;A{AbpJSl2MWRx4B~Z(s)K)JeDJh zaEcJTg~owt~Yv|FeE=D$PH9 zriM?==RRA7=Dkt)BaxWU?njoU&p#mWg*j)78Le_|c?OZ1p`4QAx@tMnRjVlj4XG6w zsvZ0MO{v5HCQ~YFKVlBp)}OqkGpBDG+@)bKMxpdwj`Og~@jJ5N`fuIV1q8an-sK3S zc@~sQHXqua01f8H+xwxDn8UujgC@dPpS3yImao2Hh{rbV!4+WRvH z#7%ww{pqpOIpjz$=}u7d%v}*!uG=+T!p2fxU|S4dZL>pr8DDaFChE?bF=kIVjp z<+=UeV3}Fl)x6BI4Qm0vGPOH?o#UZedX#SjtnNNA7E9-W_pqF4O~oGeT7P5><0>{_ zdAlNnHCGJ6a=@X7SgH=6!Sep$3@nq5Sg?G2g!QzklBsx6`GGex<~0u3=;s|xht3SQ zvr(g;A?uQ!_nOXZfHteWPCep2F{jeDG z&C595mh3BmOnhRV{b^T)>o$yD9?aLKCk&Va}6&{W=qj{Odg| zH~mFf{RSJ?;v1g+x|-!TUqgK4O-9{*^BI<#ZheboyzQYdQFe>!_6gG7(o~Zy|9)V?SY} z>z{RpUgqzgMZg2|xo3Tt@XKcjKoWk>yg!%jN}C$RoNFEP|O3OEkK7MZtR$JMZN3sGznrBxRcIja5PVWC2c z;S9wRnijBbe`xx{n{lLbB2Jua{-jwaWrq*b+uVz(f8qhJw7ko(k6JeRaxK+Tah>?- zan9Gynf+Riv4%^nn;DqqRKq~?YG(vPesZ!wn9nCb7;%lOH;&V?-!+X5 zaLX&erg+O5&@=D{3`Rh`0Y*bLod7TgUZJM|hD#ICRBexf>{je#2$^Gh+(~;Spu^e{7B-V@0Wm%;V&hS&h+Y}Fp%L(q%e`e zKc&Fdo;FK8d_!e$G>F*}bKjm4s#lNhruWnTq!ZQn*d493n;e!gEuYJQjg`KX3!|g6 zyr4J3Klg&s4BqjAj~JZj4POd;-oO@?_U`1N@9G2z(3#eC0_G`{_`rUI)&o8uWiCUH z`r_ylhg!#UhN0+y)*?SRLwwmZu+YMB{@O3-%q||`&%3}MommqmGIkLj%xw0$divYd z6~2R;*3@p0#1@0D41k{*OnAj(@4K&ni*@{NAgmM^?gT*=jHkncp_1{D?(hSHKXr#g z49*Ji=>0MT*pge1hd^&Z?nw_=A}rHZIyV$vhb6Qk6fzi#cNlcR%}+za!HS?R91bHW zQUXRUnxsPB2D(}W7}Mx&4;Z2b+{d&`4Qo9yk`9T0NkSkUj={E??u-Boax|qUBqLbf z6L5E1YkR_1AVlQB$b_EsQ7PF8VxMW(#+m~v58jn zhUo}G`@rx&7c4f;Zv- z!!o@QCkUj(gBkm)iw6>K={vZe;CM}gFf*MX*qZ7d@VfdXPuzIN!W3<)w)6pGUCPR%YVSwW-Zd8d9am6kANx<3w=BS=5+VL zgRK47pF1@N4}OjtH*Or8-UTBuakJBkk?;%il-YWZr+lr)PJNQC=k?H;crkgwi>!j(83$n>K(|FGV_r0hj%n5UOwQ*P{ zPKJ39!c;JknEURG)%(nPUp?3B_%m6Q%&xHBodQXuon4)Ud!=3b;B2_wUhh5)erm6u zp9U^rsf3B7wbLOOex(nm!znbPYzA%`p+7ogCah(%b9yGEcV{HAq0o`gCB-g>e1z>s z2<<%!4luquv*61%(G~CEP#hHV9ExC^5tjj1)`;$gGx4VpUcw3Mg&dsQw&@O?10#u} z**aqmh>3@0ojVs@Tf)NCR%`7CkmsRqwT@eWuIBM6YxW}8SWDN{zt1eyx|8DDN+*Uh0U-@<>j2@NQOn4o_< zI8A-+j2?gQ-{M%tmFViP-mMo#Kd}(>g5RUS4~6gv6YN!lK?LEnB0TZL$<|9n@FzQ& zcAEhcAZ)n)1)N7~tv_smSayb4|J;h}##m#wp$ayTpTETMp*MU90pR~;Yit^(FZM55 zV$uL%A?3e<-KzCCm)8g$W+G1MXa-Vvn@(WM5EWD%Xwj){8La zfkbOi<#y}icj;Dx$nM=Oq_-+zTxv#U=ZRBC%{0!P|KZr~Whr*RLpnJ zFJDk8vL{l@E{K6*dV3fABDspHYv`75;af5ynGXIAKI+0)iDAW(v>q$k-q5Vazk_*V zG9!s5?1r;&hPLcRQ@hacpCCB61cSlC52w$ZIYT+~qnYy-DRUMMj?DGuifQIgu++b< zl~WF_9EbmJ<3Go3q&I$oRB1v5dz_=a_h8C_aLgWf7tYeMJ#Iq;53??yjO&JXBU5s-f;<5-a9K*pM>v%xK+x?QZS0!O{ zBma{!DD2dFa38*0W#RaX>AL+eoGJQazsEje!ORr#(H6{H5gxK&PPLf+W5Eogm`45z zm!Znq^eZeUKKVy08{BJI=g7Cx3a^HKAj|%6krC%IXL|Oc8Opfa$XucD#-x9b^|BRX zkT>I(;X#cuFAu_KU-q0K&8$G4WpqvjOklmAuE0DPq4y!&tC2M35N@_& zy7~~z31)f->cPx-_}YCEJj6_4qQZa8o=d$BL$cS@60w>yl0prA<1mEgjW79!Pii?@ zrnDs%R7rkZ`bDt^|9SQ&Revw>YJG2FskH!VC3ZIJ6+zBYsi1AWi?6 zk8(=6B{hi!8Fo(2w2W%+1hsf^M9|XGYA|rQoJ>;pyIP?VKfS~K&Bu0YRj9EF(x(PQ z@48Td*J9Sh~s4sjdJ0tq+z)FN?(S9&G;AAqCUwD-Jo>r(JRQK-_euzX0`jNBvt}nq{WG zriP{aOqx$b8ehD}*-fHt)%zduK}{m1aiM5i>8G-NT76}MeHAF}^~JRA2n_I=FRl?B zZaM8*32CsJPN_t$j=J3JB{XfrCIvRt*C(LXJq{(Bda;$$tgB(QSo%vfgmkKD@~ID0Di?aO z;a5W@c`B!`orKrujANjkI~~ITXE3FHfnJO^o@JhQVixkndMSqaTW+a=>nmO)sj26i zTrB+8^L0lRm7b?#PAN@OlpAKqmvI_tjTrgQxIH{~kwZLn#!%P0=6Y1&`FaUm_hfhF6AlJlZI{@iY_p3Pk|I}ADw5}+oFHXQn zT;$}FFab`{Ehix@L+7sN`#MTya}np#bM%V1t~MwCz|E=7U|LerD%;20=eQw9Z-{g8 z6I-49Uv4hq7;+xN_LD77>JJ+Xarbz0E9fh+yBRd*6h!5PxNGZO{Pos9>LsNQ_(e{c zjlr!>?&)M%?o!amY8XBbU(g$CZA;(8jm^=dg51R<;!voI-`7l(xeFWXiw#;-eV{eB zBI^C^h9o`19<_2?4laR+!J(YW#edbDsK3X5;>iEdyWUci4!dPf zy}7${>iLl^)%d8dod143r*!d!O`U83Hj(XP)&c*a<3j=FVBT}8c7afz?ogD8ZJ_+8 zJ`hkKw~39BZ@uMk6r~B{52QJ#VL;$|m$FP*AXPo$*R`r`QOa-|bJ$6={4}Hn??n&Z zSKD$A*N=O|yWIKu@Cw%4hX$O%6FQv^IRk;=Z#pX+9LIv#Xd$3*g-Q%Wz~$)Wn2QXg z3(w$Yen9CNNEs<|-&v|!7Kc;d<&0IXs%P4&aJO*wiLHssrS+A*wNeQ6azHLHGY4^X|C2JXwKA1cZ;8z zIVT_LVm!6TGoqEK@7+$+jIMc2W9?}7rBBacwiiof=OH}!bZcp@yevY++4`$Q>La&N z%Zmb&lfOrYorl1{i!I_8pPD$84E>{9vs5ouF;DTMbI;>AoOJhjG;_2`VCa@CY|&fLX$o+t^N~3%Ebd-yvgL4^yyvriF3o+*R!pD%?nz8u zxc~ztFK%OQOEWJ(MnI-3$fChTEORxKNpV409X;y;y3SB~;{t?)u;{Ea9jzUPy?#K{mo)E5ghYbQ)NS<*3G*yY8TU@8i-1s z=}_r4xUNMGwO*daYMULYjd5eNjVo~I_xObl4W54{?LA(9kX^^p>_9jT)ZF6@^jQtY z%Q6~Wi&;qyT~P}GoxZGMAEU%#f9*!Pvlc?UesM|liMg%(9(t-4QX_{ov4l)f3G83^ z)W>n(vAi`c-AJ;$)~(1lrG7`_FF_ywvjUkI)3fpmQW6yQOP@Px(Ov|mJC|v$IE+)j9gAboP95Di$kD0XNOZb|*(?*OEKgtWnJx zg*H?)jVagJl|)SkU4iiMQ>gPUZ)?UKXd^bIUCY_B@l;%ki-E6cXX*Sa&^7H;vzz~~ zkRsgWPafhpxj|80(>5Pc4O>Q6%UvE?MTTQJD!UerWwRwwpaO-ql|OhC(vRQg@RJ$d zNv{Zz)_DalCB-zlPQYe*z|K0{$R>KO4hCTx-kNb=S=0VR4<kpkHLAl2cCik;?&Z0Ia^$2Oj`95bDc(#A3|7xk|d_7CxF*()%cw&A6mWKLztt zR+lL`&JU&8pIoU_0zyXj!aB?US>0O+ctiKpJ1J$d@V4H3l!PeT>b}b0U@_yNb8T&g zbwO4ZGnk65%Fdmo9B@giIMPiik$4HL$85q-{;}a}ZY5oDTfn}*4O0=5+<~#dOf&^W z`(ZDSH*iF!luF}Rk97VWoWn}G?hZuwGA@HsE{_&kD(*nCK*~^#8PiGV2kyd;!dy+o zkqls5C@~kU4@Q$%eG%3N3ep$u;u+6K%aGI^rDM?II0~`_&?_}%fNAQZ6$dj$J z?D%L3x2#2tAOrEOXiiD9pFoiH*Jlvqty(k)KfcFv#5j%+cA+oDMM;n5$XUdL@EPbN zee8rm6C+j%kDjSG-`ax5oJ|1=ZG)CmcE<#`7X4Oa4{TM1 zE)m%e(@;0GMCqDD_K{7TN@P#PS~~u}(ZqTHrJK)mi|nsAvB#e`whSYxpl(e@d=wel z#QJ=IeS(Vh=hd_&myDXap#to!6&N>rc2Z^S7ukK9*vnPFzWg<*$_LrRO;QyzvJ=)_ z2R*+P`rw1Pkuz}qCyg94W{NfvUmIp{%xp26j`B`={Ge9ruMfgbA6W6_w@i5a{gaTM zUS)WbQj~-JDiw*yAlYVTB6fd_rie(4Z=>+21j1<;Lc8}6qC6AcD&vzv?3MQ-6(7- zZ+JtZEN?ok1$#rQA6~n}4@Yp4ht(pYzI-3Rr$5-Y(N$tH1zPBBG3f(ysjq|#@gI$g z$>H=KaijOu5*))M3891>q0c2m4>xJDlmwIRN9o&AvY$v@)LTXtz!17zMgsA}%@!GX zPx$7LjqZ)1NKV2rU`5Ia0JPF5FH!^+YlRmX0wlQA>hLD70e(%e4)h^|MeMV}0zaZ5 z-J58!9|^-p`on%?2Z9L-l7tDGSwW_Z_iw&s;CgxvL>E8GeIxBJgVZ*o$3~s#2Act5 z52(=1{apH@PEi?i-;r_IaLe(IIVh3qwbppe(bqr24xRSvQ|$S04zZe1${g);E=x&M z{Yhw^52rJxm*L~5vJel$ZFmA{_2*^ATCj1w`1;kxO5L=}$Bl<{Q!iU&Q);d`xcC## zM6VrrD)ocf3_J1u{>73k_C~%^SAepp+KxLvo4XXCKk}5|*~K`Q*6zkrPHSAPQ(n__ zzv>85xcOmjZ%yzuRUV!cdGk}AYeAL0Gv~W>u;-=t58s)6&7oAL>D6`z(bkh^@E0;cU2i!iuegf$rME|w zWFb9{GupB;>^3FjsIpUXva|DZN^njUpv8yPa|pd&6nyOBozA>BG4~I3B^ev?(t2b+ zTgf$ioMcql0g|$`vL1Cijb|Nrf*WodgW>=ca-F)_-1Vi#eJ`4)$}XWd2+0sT{5kt6 z2aXYQHW&ZY2{sph)5*nls@de=_Lb)4=(S<&@}@EPBoZTszE;`b_zV*;pOlDEC3&32 zuf~?wlWyor24$q2QN-h*f1lc^ShC*Aqp;>lVcb=i}4%mIc^ae=;y3+ z{429J4e3TydAsTrej;!8U>$VcFc+6``IWB?kOB9mR=WQsa= zU(Rsb^0YGVx{^GRMus*Xa&q<|n87QwF21r-QJG=S*QUJhC2p--F&h_7wPKn#X1%5U zs^|IH)d)?gEDOd(wUba_giHUR!Dt~%lUe5E;u|Vm{6CfSQ8$u^&zg||BpS#Q7k%>; zQixH4{mdtjMQBC&wo&Z;jJ?v}u2i`A*J!6e@`2YCXNefl*<$IcK=LtOz*+)Hf7nj@ z1(7Ix7#kl%;=z}$3nCxDtF$SI%n_bHh0kBfbY3v&g;&Qd!Px5pS`|!A4L;tCvE}pr zHksb*;aYA@PUkXEayI;xow{hJi|1M-Pkp>!v6^7;_W6QH<}`{Z$)!PqaSC??^nR} zbn!9tmk=@}U{Z6*NVw+dG~@a91xd)CNudV`h7mNR2Z@Aun$iPD6+{>IAS#g2Ej`Fc zc}WFJXYmWgogQRz=>8^l)lig|JPi`N_;;Ip4JtjScJtj_EM2y$LkR}zj@51&XZ1;FTcUm7xhIJjaVnGMUFF8-{8ZVV%nV{SNR7`TU@ zawCjBZSzdklTkyh!?tdpu6-J|smCMj3=Ie;6C&Pl3^B+P-F%Fb*_Gi?hQ-x@-M2X( zH~vL+A~LR{Md2g>KA}H`lVnMj!^Qj4`f$=GRD94>esX{Hvrdt+zHq61ioaRlk3xfK zKP3sC5Q80;c66NaeAfatAhn~!sGVZMgL*QK>2Wbf<}O?~by4=hIqZu!`+(%}Q72#R zE*b^Ola53YS9JwTy#M(%*E;!1>rN%4~2EJ^i*P z84nw1OHZ;F!s+fvau}x3nZ1Zv!ajl9DgLTvrlzD-InTwrn|sajwPnqFr;Mv|@s8$_ zc_;4&OT|dx>$9-^zs+=g6qzNPAaEa~d=yEQB?w3n9jPHBWj+EjhZbo_KyX%@g1)wr zc?G&xYk!!PfT~>lTeM0;VlWkWtRWNdSvNHr_whG$W;EFj^Qb$Tp8KjqYYA8_)e)**42&j>vqp%dcCB%(;B z2ja<1I7YW5kO={*zSWJ;H!F4I%jL^FwT#9oR#AVFN;*fB_=$Sg$V3Us9vsL0KOeOP A9{>OV delta 12781 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 Ng+N)a<(`C){|7x(s_6g# diff --git a/bundles/noos_mini/ING9187xx/apis.json b/bundles/noos_mini/ING9187xx/apis.json index d61e08c57..7e5abb8b5 100644 --- a/bundles/noos_mini/ING9187xx/apis.json +++ b/bundles/noos_mini/ING9187xx/apis.json @@ -231,22 +231,22 @@ "sm_config_conn": "0x0001e495", "sm_encryption_key_size": "0x0001e64b", "sm_just_works_confirm": "0x0001ebd1", - "sm_le_device_key": "0x0001ef1d", - "sm_passkey_input": "0x0001efb3", - "sm_private_random_address_generation_get": "0x0001f36d", - "sm_private_random_address_generation_get_mode": "0x0001f375", - "sm_private_random_address_generation_set_mode": "0x0001f381", - "sm_private_random_address_generation_set_update_period": "0x0001f3a9", - "sm_register_external_ltk_callback": "0x0001f4e5", - "sm_register_oob_data_callback": "0x0001f4f1", - "sm_request_pairing": "0x0001f4fd", - "sm_send_security_request": "0x0001ffd3", - "sm_set_accepted_stk_generation_methods": "0x0001fff9", - "sm_set_authentication_requirements": "0x00020005", - "sm_set_encryption_key_size_range": "0x00020011", - "sscanf_bd_addr": "0x0002036d", - "sysSetPublicDeviceAddr": "0x00020721", - "uuid128_to_str": "0x00020d2d", - "uuid_add_bluetooth_prefix": "0x00020d85", - "uuid_has_bluetooth_prefix": "0x00020da5" + "sm_le_device_key": "0x0001ef09", + "sm_passkey_input": "0x0001ef9f", + "sm_private_random_address_generation_get": "0x0001f359", + "sm_private_random_address_generation_get_mode": "0x0001f361", + "sm_private_random_address_generation_set_mode": "0x0001f36d", + "sm_private_random_address_generation_set_update_period": "0x0001f395", + "sm_register_external_ltk_callback": "0x0001f4d1", + "sm_register_oob_data_callback": "0x0001f4dd", + "sm_request_pairing": "0x0001f4e9", + "sm_send_security_request": "0x0001ffbf", + "sm_set_accepted_stk_generation_methods": "0x0001ffe5", + "sm_set_authentication_requirements": "0x0001fff1", + "sm_set_encryption_key_size_range": "0x0001fffd", + "sscanf_bd_addr": "0x00020359", + "sysSetPublicDeviceAddr": "0x0002070d", + "uuid128_to_str": "0x00020d19", + "uuid_add_bluetooth_prefix": "0x00020d71", + "uuid_has_bluetooth_prefix": "0x00020d91" } \ No newline at end of file diff --git a/bundles/noos_mini/ING9187xx/meta.json b/bundles/noos_mini/ING9187xx/meta.json index 32442a8dd..0da92b43a 100644 --- a/bundles/noos_mini/ING9187xx/meta.json +++ b/bundles/noos_mini/ING9187xx/meta.json @@ -8,11 +8,11 @@ }, "rom": { "base": 16384, - "size": 124504 + "size": 124484 }, "version": [ 1, 9, - 39 + 40 ] } \ No newline at end of file diff --git a/bundles/noos_mini/ING9187xx/platform.bin b/bundles/noos_mini/ING9187xx/platform.bin index e7710dd49bc28ecbff3e585f6eadaffdc2f0306b..dacb8ddd197ec3875ace0d0cec5ae83194151436 100644 GIT binary patch delta 5960 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 Y8a+Gv8aq3uzkYze*X$2z>;o9|e*z(q+yDRo delta 5867 zcmY*d3s_S}_Mda}Ab`d!_&zB6`670T1{h^3&39N+Ag|eU-0RBQya0$3xjzo;mtNNUVZE5&KA;a+dHaAwEZYYhR28B$ zo-c_DHMnp*Vt!i;*J3HZ zg(DTHxhaE5%iETd?H$ec8@Q-X(aX8@#XGwS0*ZjqS z>E#EG(>!+&tj=8PvTKRY``+;Mb01mSB&XunLJBp$(cpi-#7u(G0jFE zy!3x648 z;h*iYeJgKE2!&YwdO~QByy8NcC9jvsba*A~;HSP}hPnI~Z>)zgf+6u7$l|2O z@E!lt2+HUJgcT#lF_0#l8$DbJS^>--Fxp-o64O>|Z`36PyZnUBW77dAcs8z00bdEt z6Xq$k--j|}Sx<(n31i4ae(t0_f9?^qf4#{-F@JyZW+)UEPx(a|@TU>I7&1&)_;(Ss z-bh7{FU^!=*O(R#@qB99C@goT4aV|%S|T1#?acLnjqS5GVi_`97NpLO#B%xU8CcfM zmax1&XC9V==B|Z-eA(QwScmu4zC7g{-jmz4@1+^74)8;lI0;>vd~- zy1e3@>6KWf&hL+hJ7>N;s(F4WWboRIsjz@g&sd2)cQU$S`7A^BYSM!70Wv-Eu`hMM z`!XQP7CeTf!WRqg0LIP6Md4l8_9V{U=*l4^hTziqvPDj~$M3U#3Xg>0i=V2YCvVK0 z4c`kpGY2cdDqLUVuY^m&?d)I;l=98F5=8M2^2S4~kg#c|5~_u7wkG=_=Rvz~D`B