Building errors on BLUENRG-LP Examples

Comments

19 comments

  • Avatar
    Michael Johnson

    The vector table is in BLUENRG_Startup.s - you can comment it out. Not sure what the OTA_VALID_APP_TAG/BLUE_FLAG_TAG are for. The standard CW names for SVC etc don't have IRQ in them use the cpp definitions to set SysTick_Handler=SysTick_IRQHandler.

    Not sure what the section .ram_vr is but the NO_INIT can be removed.

    REQUIRED(RAM_VR_TypeDef RAM_VR);

    0
    Comment actions Permalink
  • Avatar
    m.koeppchen

    With excluding system_BlueNRG_LP.c I got:

    Building ‘Micro_Hello_World’ from solution ‘Micro_Hello_World’ in configuration ‘THUMB Release’
    Compiling ‘bluenrg_lp_ll_timer.c’
    Compiling ‘bluenrg_lp_evb_com.c’
    Compiling ‘hal_miscutil.c’
    converting a packed 'crash_info_t' {aka 'struct crash_infoS'} pointer (alignment 1) to a 'uint32_t' {aka 'volatile unsigned int'} pointer (alignment 4) may result in an unaligned pointer value [-Waddress-of-packed-member]
    hal_miscutil.h
    hal_miscutil.c
    defined here
    Compiling ‘Micro_Hello_World_main.c’
    Generating linker script ‘Micro_Hello_World.ld’
    Linking Micro_Hello_World.elf
    Micro_Hello_World THUMB Release/Micro_Hello_World.elf section `.crash_info_ram_vr' will not fit in region `UNPLACED_SECTIONS'
    region `UNPLACED_SECTIONS' overflowed by 40 bytes
    Build failed
    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    I think you'll need the system_BlueNRG_LP.c to do the clock setup. I got it to build with

    #if 0
    SECTION(".ram_vr")
    NO_INIT(REQUIRED(RAM_VR_TypeDef RAM_VR));

    /* BLUE RAM, reserved for radio communication. Not usable from the application */
    SECTION(".bss.__blue_RAM")
    REQUIRED(uint8_t __blue_RAM[CONFIG_NUM_MAX_LINKS*80+28]) = {0,};

    /* Interrupt Vector Table */
    SECTION(".intvec")
    REQUIRED(const intvec_elem __vector_table[]) = {

    ...

    };
    #endif

    ....

    uint8_t SystemInit(uint8_t SysClk, uint8_t BleSysClk)
    {
    uint8_t ret_val;

    /* Vector Table Offset Register */
    SCB->VTOR = (uint32_t) (__vector_table);

    /* Store in RAM the AppBase information */
    //RAM_VR.AppBase = (uint32_t) (__vector_table);

     

    0
    Comment actions Permalink
  • Avatar
    m.koeppchen

    Still got:

    Building ‘Micro_Hello_World’ from solution ‘Micro_Hello_World’ in configuration ‘THUMB Release’
    Assembling ‘thumb_crt0.s’
    Assembling ‘BlueNRG_Startup.s’
    Compiling ‘bluenrg_lp_ll_adc.c’
    Compiling ‘bluenrg_lp_ll_crc.c’
    Compiling ‘bluenrg_lp_ll_dma.c’
    Compiling ‘bluenrg_lp_ll_exti.c’
    Compiling ‘bluenrg_lp_ll_flash.c’
    Compiling ‘bluenrg_lp_ll_gpio.c’
    Compiling ‘bluenrg_lp_ll_i2c.c’
    Compiling ‘bluenrg_lp_ll_lpuart.c’
    Compiling ‘bluenrg_lp_ll_pka.c’
    Compiling ‘bluenrg_lp_ll_pwr.c’
    Compiling ‘bluenrg_lp_ll_rcc.c’
    Compiling ‘bluenrg_lp_ll_rng.c’
    Compiling ‘bluenrg_lp_ll_rtc.c’
    Compiling ‘bluenrg_lp_ll_tim.c’
    Compiling ‘bluenrg_lp_ll_spi.c’
    Compiling ‘bluenrg_lp_ll_timer.c’
    Compiling ‘bluenrg_lp_ll_usart.c’
    Compiling ‘bluenrg_lp_ll_utils.c’
    Compiling ‘bluenrg_lp_evb_com.c’
    Compiling ‘bluenrg_lp_it.c’
    Compiling ‘system_BlueNRG_LP.c’
    Compiling ‘Micro_Hello_World_main.c’
    Compiling ‘hal_miscutil.c’
    converting a packed 'crash_info_t' {aka 'struct crash_infoS'} pointer (alignment 1) to a 'uint32_t' {aka 'volatile unsigned int'} pointer (alignment 4) may result in an unaligned pointer value [-Waddress-of-packed-member]
    hal_miscutil.h
    hal_miscutil.c
    defined here
    Generating linker script ‘Micro_Hello_World.ld’
    Linking Micro_Hello_World.elf
    Micro_Hello_World THUMB Release/Micro_Hello_World.elf section `.crash_info_ram_vr' will not fit in region `UNPLACED_SECTIONS'
    region `UNPLACED_SECTIONS' overflowed by 40 bytes
    Build failed
    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    You'll need to import the placement file - right click on the project node and select "Import Section Placement"

    Then edit the imported flash_placement.xml  and add

    <ProgramSection alignment="4" load="No" name=".crash_info_ram_vr"/>

    to the RAM MemorySegment

     

    0
    Comment actions Permalink
  • Avatar
    m.koeppchen

    Hallo Michael,

    thanks for helping so far. Your changes work fine for the basic examples, but unfortunately the ble examples have many of the unknown sections. Did you succced on one of the examples in the “..Projects\BLE_Examples\..” folder?

    Regards Mathias

    0
    Comment actions Permalink
  • Avatar
    m.koeppchen

    Puh ... working hard ... have a look the my progress writhing the placment file below...

    and these section or symbols of the static libraries don’t have the same size. So I also have to discover and enter the right size into the placement file. Right?

    Isn’t there any discovery or automation program I can use?

     

    <ProgramSection alignment="4" load="No" name="i.aci_gap_init" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_terminate" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_set_advertising_configuration" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_set_advertising_data" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_set_advertising_enable" />
    <ProgramSection alignment="4" load="No" name="i.GAP_set_advertising_configuration_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.GAP_set_advertising_data_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.GAP_set_advertising_enable_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_srv_add_char" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_srv_add_service" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_srv_get_char_decl_handle" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_srv_get_service_handle" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_srv_init" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_srv_notify" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_srv_resp" />
    <ProgramSection alignment="4" load="No" name="i.BLE_STACK_ReadNextRadioActivity" />
    <ProgramSection alignment="4" load="No" name="i.HAL_Set_TX_Power_Level" />
    <ProgramSection alignment="4" load="No" name="i.HAL_Write_ConfigData" />
    <ProgramSection alignment="4" load="No" name="i.aci_hal_set_tx_power_level" />
    <ProgramSection alignment="4" load="No" name="i.aci_hal_write_config_data" />
    <ProgramSection alignment="4" load="No" name="i.hal_radio_activity_state_callback_check" />
    <ProgramSection alignment="4" load="No" name="i.hal_radio_activity_state_init" />
    <ProgramSection alignment="4" load="No" name="i.hal_read_radio_activity_state" />
    <ProgramSection alignment="4" load="No" name="i.BLE_STACK_Init" />
    <ProgramSection alignment="4" load="No" name="i.HAL_Init" />
    <ProgramSection alignment="4" load="No" name="i.ble_HAL_Init" />
    <ProgramSection alignment="4" load="No" name="i.BLE_STACK_Tick" />
    <ProgramSection alignment="4" load="No" name="i.BlueNRG_Stack_Initialize_ConfigData" />
    <ProgramSection alignment="4" load="No" name="i._BlueNRG_Stack_Initialization" />
    <ProgramSection alignment="4" load="No" name="i.csm_task_init" />
    <ProgramSection alignment="4" load="No" name="i.total_buffer_size_value" />
    <ProgramSection alignment="4" load="No" name="i.Events_Process_Q" />
    <ProgramSection alignment="4" load="No" name="i.Events_Process_init" />
    <ProgramSection alignment="4" load="No" name="i.aci_att_clt_exec_write_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_att_clt_find_by_type_value_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_att_clt_find_info_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_att_clt_prepare_write_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_att_clt_read_blob_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_att_clt_read_by_group_type_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_att_clt_read_by_type_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_att_clt_read_multiple_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_att_clt_read_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_att_exchange_mtu_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_att_srv_exec_write_req_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_att_srv_prepare_write_req_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_event_fifo_push" />
    <ProgramSection alignment="4" load="No" name="i.aci_event_fifo_push_header" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_addr_not_resolved_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_authorization_req_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_bond_lost_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_device_found_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_keypress_notification_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_limited_discoverable_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_numeric_comparison_value_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_limited_discoverable_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_pairing_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_limited_discoverable_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_pass_key_req_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_proc_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_limited_discoverable_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_slave_security_initiated_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_clt_disc_read_char_by_uuid_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_clt_error_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_clt_indication_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_clt_notification_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_clt_proc_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gap_slave_security_initiated_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_proc_timeout_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_srv_confirmation_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_hal_adv_scan_resp_data_update_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_hal_scan_req_report_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_l2cap_cfc_connection_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_l2cap_command_reject_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_l2cap_connection_update_req_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_l2cap_connection_update_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_l2cap_disconnection_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_l2cap_flow_control_credit_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_l2cap_proc_timeout_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_l2cap_sdu_data_rx_event" />
    <ProgramSection alignment="4" load="No" name="i.aci_l2cap_sdu_data_tx_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_att_clt_exec_write_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_att_clt_find_by_type_value_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_att_clt_find_info_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_att_clt_prepare_write_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_att_clt_read_blob_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_att_clt_read_by_group_type_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_att_clt_read_by_type_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_att_clt_read_multiple_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_att_clt_read_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_att_exchange_mtu_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_att_srv_exec_write_req_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_att_clt_read_multiple_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_att_srv_prepare_write_req_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gap_addr_not_resolved_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gap_authorization_req_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gap_bond_lost_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gap_device_found_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gap_keypress_notification_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gap_limited_discoverable_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gap_numeric_comparison_value_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gap_pairing_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gap_pass_key_req_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gap_proc_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gap_pass_key_req_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gap_slave_security_initiated_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gatt_clt_disc_read_char_by_uuid_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gatt_clt_error_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gatt_clt_indication_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gatt_clt_notification_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gatt_clt_proc_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gatt_proc_timeout_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gatt_srv_attribute_modified_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gatt_srv_confirmation_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gatt_srv_read_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gatt_srv_write_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_gatt_tx_pool_available_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_hal_adv_scan_resp_data_update_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_hal_fw_error_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_hal_scan_req_report_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_l2cap_cfc_connection_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_l2cap_command_reject_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_l2cap_connection_update_req_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_l2cap_connection_update_resp_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_l2cap_disconnection_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_l2cap_flow_control_credit_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_l2cap_disconnection_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_l2cap_proc_timeout_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_l2cap_sdu_data_rx_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_aci_l2cap_sdu_data_tx_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_authenticated_payload_timeout_expired_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_data_buffer_overflow_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_disconnection_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_encryption_change_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_encryption_key_refresh_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_advertising_report_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_advertising_set_terminated_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_channel_selection_algorithm_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_connection_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_connection_update_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_data_length_change_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_direct_advertising_report_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_enhanced_connection_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_extended_advertising_report_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_generate_dhkey_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_long_term_key_request_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_phy_update_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_read_local_p256_public_key_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_read_remote_used_features_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_scan_request_received_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_le_scan_timeout_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_number_of_completed_packets_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_read_remote_version_information_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.cb_hci_rx_acl_data_event" />
    <ProgramSection alignment="4" load="No" name="i.fifoBuf_getFreeHeader" />
    <ProgramSection alignment="4" load="No" name="i.fifoCtrl_init" />
    <ProgramSection alignment="4" load="No" name="i.hci_authenticated_payload_timeout_expired_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_encryption_change_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_encryption_key_refresh_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_advertising_report_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_advertising_set_terminated_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_channel_selection_algorithm_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_connection_update_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_data_length_change_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_direct_advertising_report_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_extended_advertising_report_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_generate_dhkey_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_long_term_key_request_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_phy_update_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_read_local_p256_public_key_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_read_remote_used_features_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_scan_request_received_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_scan_timeout_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_number_of_completed_packets_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_read_remote_version_information_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.hci_rx_acl_data_event" />
    <ProgramSection alignment="4" load="No" name="i.int_cb_hci_disconnection_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.int_cb_hci_encryption_change_event" />
    <ProgramSection alignment="4" load="No" name="i.int_cb_hci_encryption_key_refresh_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.int_cb_hci_le_advertising_report_event" />
    <ProgramSection alignment="4" load="No" name="i.int_cb_hci_le_advertising_set_terminated_event" />
    <ProgramSection alignment="4" load="No" name="i.int_cb_hci_le_connection_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.int_cb_hci_le_direct_advertising_report_event" />
    <ProgramSection alignment="4" load="No" name="i.int_cb_hci_le_enhanced_connection_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.int_cb_hci_le_extended_advertising_report_event" />
    <ProgramSection alignment="4" load="No" name="i.int_cb_hci_le_generate_dhkey_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.int_cb_hci_le_long_term_key_request_event" />
    <ProgramSection alignment="4" load="No" name="i.int_cb_hci_le_read_local_p256_public_key_complete_event" />
    <ProgramSection alignment="4" load="No" name="i.GAP_Init" />
    <ProgramSection alignment="4" load="No" name="i.GAP_LimDiscTimeoutcb" />
    <ProgramSection alignment="4" load="No" name="i.GAP_PrivateAddrTimercb" />
    <ProgramSection alignment="4" load="No" name="i.GAP_Process_Q" />
    <ProgramSection alignment="4" load="No" name="i.int_cb_hci_le_scan_timeout_event" />
    <ProgramSection alignment="4" load="No" name="i.GAP_check_and_set_role_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.GAP_dynamic_allocator" />
    <ProgramSection alignment="4" load="No" name="i.GAP_enable_controller_privacy_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.GAP_Terminate_Link" />
    <ProgramSection alignment="4" load="No" name="i.GAP_generate_new_rpa" />
    <ProgramSection alignment="4" load="No" name="i.GAP_get_current_address" />
    <ProgramSection alignment="4" load="No" name="i.GAP_get_identity_address_type" />
    <ProgramSection alignment="4" load="No" name="i.GAP_get_own_address_type" />
    <ProgramSection alignment="4" load="No" name="i.GAP_get_public_address" />
    <ProgramSection alignment="4" load="No" name="i.GAP_get_rpa" />
    <ProgramSection alignment="4" load="No" name="i.GAP_get_static_random_address" />
    <ProgramSection alignment="4" load="No" name="i.GAP_hci_disconnection_complete_evt_hndl" />
    <ProgramSection alignment="4" load="No" name="i.GAP_hci_le_advertising_report_evt_hndl" />
    <ProgramSection alignment="4" load="No" name="i.GAP_hci_le_advertising_set_terminated_evt_hndl_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.GAP_hci_le_connection_complete_evt_hndl" />
    <ProgramSection alignment="4" load="No" name="i.GAP_init_context" />
    <ProgramSection alignment="4" load="No" name="i.GAP_set_controller_random_address_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.GAP_slave_connection_complete_handler_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.GapIsPrivacySupported" />
    <ProgramSection alignment="4" load="No" name="i.gap_extended_scan_supported" />
    <ProgramSection alignment="4" load="No" name="i.gap_timers_callback" />
    <ProgramSection alignment="4" load="No" name="i.gap_timers_callback_wrapper" />
    <ProgramSection alignment="4" load="No" name="i.GAP_DiscProcTimeoutcb_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.GAP_discover_peer_name_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.GAP_enable_disable_scan_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.GAP_master_connection_complete_handler_ucf" />
    <ProgramSection alignment="4" load="No" name="i.GAP_master_connection_complete_handler_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.GAP_parse_advertising_report_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.GAP_parse_connectable_advertising_report_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.GAP_advEvtProp_to_advType" />
    <ProgramSection alignment="4" load="No" name="i.GAP_check_adv_status" />
    <ProgramSection alignment="4" load="No" name="i.GAP_check_discoverability_mode" />
    <ProgramSection alignment="4" load="No" name="i.GAP_check_flags" />
    <ProgramSection alignment="4" load="No" name="i.GAP_search_flags_index" />
    <ProgramSection alignment="4" load="No" name="i.GAP_set_discoverability_mode" />
    <ProgramSection alignment="4" load="No" name="i.GAP_set_legacy_advertising_configuration" />
    <ProgramSection alignment="4" load="No" name="i.GAP_set_legacy_advertising_data" />
    <ProgramSection alignment="4" load="No" name="i.GAP_set_legacy_advertising_enable" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_cmn_connection" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_cmn_disconnection" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_cmn_for_each_conn_descr" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_cmn_get_conn_descr_p" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_cmn_get_conn_index" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_cmn_handle_disconnec_iterate_f" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_cmn_init" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_cmn_process_q" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_cmn_rcv" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_cmn_send" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_cmn_start_timer" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_cmn_stop_timer" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_cmn_timeout_cb" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_cmn_timeout_cb_wrapper" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_cmn_get_opcode" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_alloc_resp_packt" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_common_check" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_confirm_exc" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_confirmation_pending" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_connection" />
    <ProgramSection alignment="4" load="No" name="i.GAP_suspend_resume_active_advertising_sets_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_disconnection" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_exchange_mtu_exc" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_exec" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_exec_wr_exc" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_extract_write_packet_data" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_find_by_type_val_exc" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_find_info_exc" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_flush_rx_pckts" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_flush_user_pending_list" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_get_exec_fn_id_by_op" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_get_handle_range" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_hvtx" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_init" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_no_confirm_pending" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_prep_wr_exc" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_rcv" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_read_by_type_exc" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_read_exc" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_read_multi_exc" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_request_user_pending" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_resp" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_run" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_send_response" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_set_attr_value_check" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_value_read" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_write_err_packet" />
    <ProgramSection alignment="4" load="No" name="i.GAT_att_srv_write_exc" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_find_by_handle_p" />
    <ProgramSection alignment="4" load="No" name="i.PM_Get_Host_Pckt" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_srv_read_event_push" />
    <ProgramSection alignment="4" load="No" name="i.aci_hal_fw_error_event_push" />
    <ProgramSection alignment="4" load="No" name="i.__ARM_common_switch8" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_aes_cmac_append" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_attr_direct_value_write" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_attr_value_read" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_attr_value_write" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_check_change_aware" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_check_perms" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_check_sec_perm" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_connection" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_disconnection" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_exec" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_disconnection" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_find_by_type_attr_p" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_find_from_handle_p" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_generate_hash" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_get_att_group_end_handle" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_get_attr_type" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_get_attr_value" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_get_attribute_handle" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_get_cccd_attr_p" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_get_cccd_val" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_get_chr_decl_val" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_get_chr_descr_val" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_get_chr_val" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_get_fast_buffer_val" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_get_from_nvm" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_get_incl_srv_val" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_get_zip_val" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_hash_attr" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_init" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_is_bonded" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_is_supported_grouping_type" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_set_cccd_val" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_set_zip_val" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_store_to_nvm" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_tx_service_change" />
    <ProgramSection alignment="4" load="No" name="i.aci_gatt_srv_attribute_modified_event_push" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_add_char_descriptor" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_add_characteristic" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_add_service" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_char_sanity_check" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_check_group_size" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_checks_for_notify" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_db_update_allowed" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_descr_sanity_check" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_get_char_decl_handle" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_get_service_handle" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_notify" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_set_change_unaware" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_notify" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_resp" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_rm_characteristic" />
    <ProgramSection alignment="4" load="No" name="i.GAT_srv_rm_service" />
    <ProgramSection alignment="4" load="No" name="i.hci_acl_Init" />
    <ProgramSection alignment="4" load="No" name="i.hci_acl_Process_Q" />
    <ProgramSection alignment="4" load="No" name="i.hci_number_of_completed_packets_event_pus" />
    <ProgramSection alignment="4" load="No" name="i.hci_number_of_completed_packets_event_push" />
    <ProgramSection alignment="4" load="No" name="i.hci_rx_acl_data" />
    <ProgramSection alignment="4" load="No" name="i.hci_tx_acl_data_done" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_set_advertising_enable" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_set_advertising_parameters" />
    <ProgramSection alignment="4" load="No" name="i.Controller_Process_Q" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_set_advertising_parameters" />
    <ProgramSection alignment="4" load="No" name="i.HCI_Init" />
    <ProgramSection alignment="4" load="No" name="i.LLC_offline_control_procedures_processing" />
    <ProgramSection alignment="4" load="No" name="i.hci_get_set_legacy_ext_flag" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_set_event_mask" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_set_random_address" />
    <ProgramSection alignment="4" load="No" name="i.hci_set_event_mask" />
    <ProgramSection alignment="4" load="No" name="i.PKA_Offline_Processing_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_encrypt" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_long_term_key_request_reply" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_long_term_key_requested_negative_reply" />
    <ProgramSection alignment="4" load="No" name="i.hci_le_check_own_address_type_max_value_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.ext_adv_scan_enabled_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.data_length_extension_csr_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.phy_upd_csr_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.PRIV_controller_privacy_csr_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.master_csr_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.L2C_cos_cfc_init_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.L2C_cos_physical_link_disconnection_hndl_ucf" />
    <ProgramSection alignment="4" load="No" name="i.L2C_cos_physical_link_disconnection_hndl_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.L2C_cos_process_q_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.L2C_cos_reset_any_pending_channel_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.L2C_release_unexpected_acl_packet" />
    <ProgramSection alignment="4" load="No" name="i.l2c_cos_csr_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.L2C_cos_le_frame_data_hndl_ucfg" />
    <ProgramSection alignment="4" load="No" name="i.L2C_Init" />
    <ProgramSection alignment="4" load="No" name="i.L2C_acl_cframe_signaling_hndl" />
    <ProgramSection alignment="4" load="No" name="i.L2C_build_command_reject_pdu" />
    <ProgramSection alignment="4" load="No" name="i.L2C_discard_accumulated_acl_data" />
    <ProgramSection alignment="4" load="No" name="i.L2C_dynamic_allocator" />
    <ProgramSection alignment="4" load="No" name="i.L2C_get_link_control_block_index" />
    <ProgramSection alignment="4" load="No" name="i.L2C_get_link_control_block_ref" />
    <ProgramSection alignment="4" load="No" name="i.L2C_hci_disconnection_complete_evt_hndl" />
    <ProgramSection alignment="4" load="No" name="i.L2C_mux_acl_packet" />
    <ProgramSection alignment="4" load="No" name="i.L2C_hci_le_connection_complete_evt_hndl" />
    <ProgramSection alignment="4" load="No" name="i.L2C_post_process_incoming_request_packet" />
    <ProgramSection alignment="4" load="No" name="i.L2C_post_process_outgoing_response_packet" />
    <ProgramSection alignment="4" load="No" name="i.L2C_pre_process_incoming_response_packet" />
    <ProgramSection alignment="4" load="No" name="i.L2C_process_basic_mode_command" />
    <ProgramSection alignment="4" load="No" name="i.L2C_process_q" />
    <ProgramSection alignment="4" load="No" name="i.L2C_receive_data" />
    <ProgramSection alignment="4" load="No" name="i.L2C_send_frame" />
    <ProgramSection alignment="4" load="No" name="i.L2C_timeout_handler_signalling" />
    <ProgramSection alignment="4" load="No" name="i.aci_l2cap_command_reject_event_push" />
    <ProgramSection alignment="4" load="No" name="i.aci_l2cap_connection_update_req_event_push" />
    <ProgramSection alignment="4" load="No" name="i.l2cap_timers_callback" />
    <ProgramSection alignment="4" load="No" name="i.l2cap_timers_callback_wrapper" />
    <ProgramSection alignment="4" load="No" name="i.LL_Disconnect_Link" />
    <ProgramSection alignment="4" load="No" name="i.LL_Send_ACL_Data" />
    <ProgramSection alignment="4" load="No" name="i.LL_channel_selection_algorithm_2" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_CSA_2_update_remapped_table" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_calc_data_packet_time_st" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_calc_packetlength" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_calculate_ww" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_close_event" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_clr_ch_classification_pending" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_clr_disconnect_reason" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_clr_instant_reached_passed" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_clr_isr_active" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_clr_nack_flag" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_clr_rx_acl_blocked" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_clr_rx_ctrl_pdu_full" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_clr_start_enc" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_clr_stop_enc" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_clr_tx_acl_blocked" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_convert_sca_to_ppm" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_copy_tx_data_packet" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_decrement_enc_count_rx" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_disconnect_link_from_CPF" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_encryption_on_off_routine" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_ch_classification_pending" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_cntxt_p" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_cntxt_per_p" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_cntxt_per_p_from_handle" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_conn_idx" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_ctrl_flds_instant" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_ctrl_flds_isr_p" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_ctrl_pdu_ctrl_fld_p" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_ctrl_pdu_data_p" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_disconnect_reason" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_enc_on" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_eventcount" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_handle" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_instant_passed" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_instant_reached" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_isr_active" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_latency" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_phy_upd_cntx_per_p" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_latency" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_rx_acl_blocked" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_rx_ctrl_pdu_full" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_start_enc" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_stop_enc" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_tx_acl_blocked" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_tx_ctrl_pdu_state" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_go_to_connect" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_guard_time_for_close_conn_event" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_init" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_latency" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_latency" />
    <ProgramSection alignment="4" load="No" name="i.LL_conn_get_latency" />
    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    I wouldn't expect to do this. You can do

    <ProgramSection alignment="4" load="No" name="i.*" />

    I get

    1> Linking BLE_ANCS.elf
    1> "C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld" -X --omagic -ereset_handler --defsym=__do_debug_operation=__do_debug_operation_mempoll -EL --defsym=__vfprintf=__vfprintf_float_long_long --defsym=__vfscanf=__vfscanf_float_long_long_cc --fatal-warnings --gc-sections "-TC:/Users/mpj/ST/BlueNRG-LP DK 1.0.0/Projects/BLE_Examples/BLE_ANCS/MDK-ARM/STEVAL-IDB011V1/BLE_ANCS THUMB Release/BLE_ANCS.ld" -Map "BLE_ANCS THUMB Release/BLE_ANCS.map" -u_vectors -o "BLE_ANCS THUMB Release/BLE_ANCS.elf" --emit-relocs --start-group "@C:/Users/mpj/ST/BlueNRG-LP DK 1.0.0/Projects/BLE_Examples/BLE_ANCS/MDK-ARM/STEVAL-IDB011V1/BLE_ANCS THUMB Release/BLE_ANCS.ind" --end-group
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: BLE_ANCS THUMB Release/BLE_ANCS.elf section `i.aci_gap_allow_rebond' will not fit in region `UNPLACED_SECTIONS'
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: region `UNPLACED_SECTIONS' overflowed by 82240 bytes
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: BLE_ANCS THUMB Release/bluenrg_lp_hal_power_manager.o: in function `PowerSave_Setup':
    1> bluenrg_lp_hal_power_manager.c:(.text.PowerSave_Setup+0x4a4): undefined reference to `CS_contextSave'
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: bluenrg_lp_hal_power_manager.c:(.text.PowerSave_Setup+0x7bc): undefined reference to `RAM_VR'
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: BLE_ANCS THUMB Release/bluenrg_lp_hal_power_manager.o: in function `HAL_PWR_MNGR_Request':
    1> bluenrg_lp_hal_power_manager.c:(.text.HAL_PWR_MNGR_Request+0x210): undefined reference to `RAM_VR'
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: BLE_ANCS THUMB Release/bluenrg_lp_ll_timer.o: in function `_update_xtal_startup_time':
    1> bluenrg_lp_ll_timer.c:(.text._update_xtal_startup_time+0x4): undefined reference to `blue_unit_conversion'
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: BLE_ANCS THUMB Release/bluenrg_lp_ll_timer.o: in function `us_to_machinetime':
    1> bluenrg_lp_ll_timer.c:(.text.us_to_machinetime+0xc): undefined reference to `blue_unit_conversion'
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: BLE_ANCS THUMB Release/bluenrg_lp_ll_timer.o: in function `update_cal_delay':
    1> bluenrg_lp_ll_timer.c:(.text.update_cal_delay+0x10): undefined reference to `blue_unit_conversion'
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: BLE_ANCS THUMB Release/bluenrg_lp_ll_timer.o: in function `update_system_time':
    1> bluenrg_lp_ll_timer.c:(.text.update_system_time+0x14): undefined reference to `blue_unit_conversion'
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: BLE_ANCS THUMB Release/bluenrg_lp_ll_timer.o: in function `get_system_time_and_machine':
    1> bluenrg_lp_ll_timer.c:(.text.get_system_time_and_machine+0x14): undefined reference to `blue_unit_conversion'
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: BLE_ANCS THUMB Release/bluenrg_lp_ll_timer.o:bluenrg_lp_ll_timer.c:(.text.TIMER_GetPastSysTime+0x1c): more undefined references to `blue_unit_conversion' follow
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: ../../../../../Middlewares/ST/Bluetooth_LE/Library/libbluenrg_lp_stack.a(ll_connect.o): in function `LL_conn_go_to_connect':
    1> (i.LL_conn_go_to_connect+0x68a): undefined reference to `__aeabi_uread4'
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: ../../../../../Middlewares/ST/Bluetooth_LE/Library/libbluenrg_lp_stack.a(ll_connect.o): in function `LL_conn_reschedule_taskslot_params':
    1> (i.LL_conn_reschedule_taskslot_params+0x1b2): undefined reference to `__aeabi_uread4'
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: ../../../../../Middlewares/ST/Bluetooth_LE/Library/libbluenrg_lp_stack.a(ll_ext_scan.o): in function `UTIL_AdvConvStringToSrambledIntWithType':
    1> (i.UTIL_AdvConvStringToSrambledIntWithType+0xa): undefined reference to `__aeabi_uread4'
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: (i.UTIL_AdvConvStringToSrambledIntWithType+0x14): undefined reference to `__aeabi_uread4'
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: ../../../../../Middlewares/ST/Bluetooth_LE/Library/libbluenrg_lp_stack.a(aes128cmac.o): in function `AES128ECB_Wrapper':
    1> (i.AES128ECB_Wrapper+0x2c): undefined reference to `__aeabi_uread4'
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: ../../../../../Middlewares/ST/cryptolib/libcrypto.a(crypto.o):..\..\src\crypto.c:(i.AES_CMAC_Encrypt_Append+0x60): more undefined references to `__aeabi_uread4' follow
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: BLE_ANCS THUMB Release/BLE_ANCS.elf: hidden symbol `__aeabi_uread4' isn't defined
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: final link failed: bad value
    Build failed

    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    I've got the BLE_ANCS project to build. I added

     <MemorySegment name="$(FLASH_NAME:FLASH);FLASH1">

    <ProgramSection alignment="4" load="Yes" name="i" inputsections="*(i.*)"/>
    <ProgramSection alignment="4" load="Yes" name=".constdata" />
    </MemorySegment>

    <MemorySegment name="$(RAM_NAME:RAM);SRAM;RAM1">
    <ProgramSection alignment="4" load="No" name=".ram_vr" start="0x20000004" size="0x2C"/>
    <ProgramSection alignment="4" load="No" name=".crash_info_ram_vr" start="0x20000034"/>
    <ProgramSection alignment="4" load="No" name=".bss.__blue_RAM" start="0x200000C0"/>

    <ProgramSection alignment="4" load="No" name=".noinit" /

    </MemorySegment>

    to the flash_placement.xml and put the (previously commented out)

    /* Exported variables ---------------------------------------------------------*/
    SECTION(".ram_vr")
    REQUIRED(RAM_VR_TypeDef RAM_VR);

    /* BLUE RAM, reserved for radio communication. Not usable from the application */
    SECTION(".bss.__blue_RAM")
    REQUIRED(uint8_t __blue_RAM[CONFIG_NUM_MAX_LINKS*80+28]) = {0,};

    #if 0

    /* Interrupt Vector Table */
    SECTION(".intvec")

    The blue_unit_conversion.s can be included into the build and make mul32 into a label

    mul32:

    The __aeabi_uread4 is missing from the C library you can add this to 

    int
    __aeabi_uread4(char* p)
    {
    struct unaligned_int {
    int v;
    } __attribute__((__packed__, __may_alias__));
    return ((struct unaligned_int*)p)->v;
    }

    to the system_BlueNRG_LP.c

     

    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    Adding 

    <ProgramSection alignment="4" load="No" name=".crash_info_ram_vr"/>

    to the RAM memory segment in the placement file should fix this.

    0
    Comment actions Permalink
  • Avatar
    m.koeppchen

    Hello Michael,

    thanks for help with the basic examples. Could you also please have a look at the project of the STSW-BNRGLP-Mesh example ( https://my.st.com/content/my_st_com/en/products/embedded-software/wireless-connectivity-software/stsw-bnrglp-mesh.license=1619425830232.product=STSW-BNRGLP-Mesh.version=1.00.000.html ).

    I got:

    Building ‘Project’ from solution ‘Project’ in configuration ‘Lighting’
    4> Compiling ‘system_BlueNRG_LP.c’
    4> In file included from ./../../../../../../Middlewares/ST/BlueNRG_LP/hal/Inc/system_util.h:30,
    4> from ./../../../../../../Drivers/CMSIS/Device/ST/BlueNRG_LP/Include/bluenrg_lp.h:130,
    4> from C:\Users\m.koeppchen\ST\STSW-BNRGLP-MESH_1.00.000\Firmware\Drivers\CMSIS\Device\ST\BlueNRG_LP\Source\system_BlueNRG_LP.c:17:
    4> C:\Users\m.koeppchen\ST\STSW-BNRGLP-MESH_1.00.000\Firmware\Drivers\CMSIS\Device\ST\BlueNRG_LP\Source\system_BlueNRG_LP.c:175:33: error: section of 'RAM_VR' conflicts with previous declaration
    4> ./../../../../../../Middlewares/ST/BlueNRG_LP/hal/Inc/compiler.h:192:41: note: in definition of macro 'NO_INIT'
    4> C:\Users\m.koeppchen\ST\STSW-BNRGLP-MESH_1.00.000\Firmware\Drivers\CMSIS\Device\ST\BlueNRG_LP\Source\system_BlueNRG_LP.c:175:9: note: in expansion of macro 'REQUIRED'
    Build failed

    or when i:

    #if 0
    /* Exported variables ---------------------------------------------------------*/
    SECTION(".ram_vr")
    NO_INIT(REQUIRED(RAM_VR_TypeDef RAM_VR));

    /* BLUE RAM, reserved for radio communication. Not usable from the application */
    SECTION(".bss.__blue_RAM")
    REQUIRED(uint8_t __blue_RAM[CONFIG_NUM_MAX_LINKS*80+28]) = {0,};

    /* Interrupt Vector Table */
    SECTION(".intvec")
    REQUIRED(const intvec_elem __vector_table[]) = {
    ...
    };
    #endif

    I got:

    Building ‘Project’ from solution ‘Project’ in configuration ‘Lighting’
    4> Compiling ‘system_BlueNRG_LP.c’
    1> Linking Project.elf
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: ./../../../../../../Middlewares/ST/ST_BLE_Mesh/Library/libBlueNRG_Mesh_CM0P.a(library.o): .symtab local symbol at index 4900 (>= sh_info of 4071)
    1> C:/Program Files/Rowley Associates Limited/CrossWorks for ARM 4.8/gcc/arm-none-eabi/bin/ld: ./../../../../../../Middlewares/ST/ST_BLE_Mesh/Library/libBlueNRG_Mesh_CM0P.a: error adding symbols: bad value
    Build failed

    Regards Mathias

     
    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    Hi Mathias,

    Looks like an object file built with Keil won't link with the GNU Linker - surprised at this. I'll see if I can disassemble it so it can be included as assembly code.

    Regards

    Michael

    0
    Comment actions Permalink
  • Avatar
    Michael Johnson

    Hi Mathias,

    My attempts to disassemble/reassemble haven't been successful.

    I extracted the .object file using

    ST\STSW-BNRGLP-MESH_1.00.000\Firmware\Middlewares\ST\ST_BLE_Mesh\Library>

    $(StudioDir)\gcc\arm-none-eabi\bin\ar -xv libBlueNRG_Mesh_CM0P.a

    this produces library.o in the current directory. I then had to objcopy it to make acceptable to the GNU linker

    $(StudioDir)\gcc\arm-none-eabi\bin\objcopy library.o library_objcopied.o

    I removed the library reference in the project file and added the library_objcopied.o to the project.

    I then unexcluded the .s files data.s, blue_unit_conversion.s, context_switch.s

    I had to modified data.s to define some flash symbols

    .section .bdaddr,"ax",%progbits
    .global _bdaddr
    .global bdaddr
    _bdaddr:
    bdaddr:
    .fill 8, 1, 0xff
    .section .bnrgmNvmBase,"ax",%progbits
    .global _bnrgmNvmBase_data
    .global bnrgmNvmBase_data
    .global bnrgmNvmBase
    _bnrgmNvmBase_data:
    bnrgmNvmBase_data:
    bnrgmNvmBase:
    .fill 4096, 1, 0xff

    The resultant build failed with too big text sections. Doubling the Flash size (to 0x80000) enabled the link to complete.

    Not sure where to go from here...

    Regards

    Michael

     

     

     

     

    0
    Comment actions Permalink
  • Avatar
    m.koeppchen

    Thanks for the efforts Michael. I figured out in the last week, that there should came a new version of libs in may. This version was advise to came with gcc support. So hopefully we'll succeed then using the ble libs with crossworks.

    Regards

    Mathias

    0
    Comment actions Permalink
  • Avatar
    m.koeppchen

    Hallo back again,

    BlueNRG-LP DK-1.1.0.0 is out and it's still hard to build the BLE examples.

    I'll post the current build error soon...

     

    0
    Comment actions Permalink
  • Avatar
    m.koeppchen

    ... trying to build

    flash_placement.xml:

    <!DOCTYPE Linker_Placement_File>
    <Root name="Flash Section Placement">
    <MemorySegment name="$(FLASH_NAME:FLASH);FLASH1">
    <ProgramSection alignment="0x100" load="Yes" name=".vectors" start="$(FLASH_START:)" />
    <ProgramSection alignment="4" load="Yes" name=".init" />
    <ProgramSection alignment="4" load="Yes" name=".init_rodata" />
    <ProgramSection alignment="4" load="Yes" name=".text" />
    <ProgramSection alignment="4" load="Yes" name=".dtors" />
    <ProgramSection alignment="4" load="Yes" name=".ctors" />
    <ProgramSection alignment="4" load="Yes" name=".rodata" />
    <ProgramSection alignment="4" load="Yes" name=".ARM.exidx" address_symbol="__exidx_start" end_symbol="__exidx_end" />
    <ProgramSection alignment="4" load="Yes" runin=".fast_run" name=".fast" />
    <ProgramSection alignment="4" load="Yes" runin=".data_run" name=".data" />
    <ProgramSection alignment="4" load="Yes" runin=".tdata_run" name=".tdata" />
    <ProgramSection alignment="4" load="Yes" name="i" inputsections="*(i.*)"/>
    <ProgramSection alignment="4" load="Yes" name=".constdata" />
    </MemorySegment>
    <MemorySegment name="$(RAM_NAME:RAM);SRAM;RAM1">
    <ProgramSection alignment="4" load="No" name=".ram_vr" start="0x20000004" size="0x2C"/>
    <ProgramSection alignment="4" load="No" name=".crash_info_ram_vr" start="0x20000034"/>
    <ProgramSection alignment="4" load="No" name=".bss.__blue_RAM" start="0x200000C0"/>
    <ProgramSection alignment="0x100" load="No" name=".vectors_ram" start="$(RAM_START:$(SRAM_START:))" />
    <ProgramSection alignment="4" load="No" name=".fast_run" />
    <ProgramSection alignment="4" load="No" name=".data_run" />
    <ProgramSection alignment="4" load="No" name=".bss" />
    <ProgramSection alignment="4" load="No" name=".tbss" />
    <ProgramSection alignment="4" load="No" name=".tdata_run" />
    <ProgramSection alignment="4" load="No" name=".noinit" />
    <ProgramSection alignment="8" size="__HEAPSIZE__" load="No" name=".heap" />
    <ProgramSection alignment="8" size="__STACKSIZE__" load="No" name=".stack" />
    <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
    </MemorySegment>
    <MemorySegment name="$(FLASH2_NAME:FLASH2)">
    <ProgramSection alignment="4" load="Yes" name=".text2" />
    <ProgramSection alignment="4" load="Yes" name=".rodata2" />
    <ProgramSection alignment="4" load="Yes" runin=".data2_run" name=".data2" />
    </MemorySegment>
    <MemorySegment name="$(RAM2_NAME:RAM2)">
    <ProgramSection alignment="4" load="No" name=".data2_run" />
    <ProgramSection alignment="4" load="No" name=".bss2" />
    </MemorySegment>
    </Root>

    Linking Error:

    Building ‘BLE_MultipleConnections’ from solution ‘BLE_MultipleConnections’ in configuration ‘Master’
    Compiling ‘profile_server.c’
    Generating linker script ‘BLE_MultipleConnections.ld’
    Linking BLE_MultipleConnections.elf
    ./../../../../../Middlewares/ST/Bluetooth_LE/Library/libbluenrg_lp_stack.a(hci_white_list.o): in function `hci_le_add_device_to_white_list':
    (i.hci_le_add_device_to_white_list+0x14): undefined reference to `__aeabi_uread4'
    (i.hci_le_add_device_to_white_list+0x20): undefined reference to `__aeabi_uread4'
    ./../../../../../Middlewares/ST/Bluetooth_LE/Library/libbluenrg_lp_stack.a(ll_ext_scan.o): in function `UTIL_AdvConvStringToSrambledIntWithType':
    (i.UTIL_AdvConvStringToSrambledIntWithType+0xa): undefined reference to `__aeabi_uread4'
    (i.UTIL_AdvConvStringToSrambledIntWithType+0x14): undefined reference to `__aeabi_uread4'
    ./../../../../../Middlewares/ST/cryptolib/libcrypto.a(crypto.o): in function `AES_CMAC_Encrypt_Append':
    ..\..\src\crypto.c:(i.AES_CMAC_Encrypt_Append+0x5e): undefined reference to `__aeabi_uread4'
    ./../../../../../Middlewares/ST/cryptolib/libcrypto.a(crypto.o):..\..\src\crypto.c:(i.AES_CMAC_Encrypt_Append+0xb0): more undefined references to `__aeabi_uread4' follow
    BLE_MultipleConnections Master/BLE_MultipleConnections.elf: hidden symbol `__aeabi_uread4' isn't defined
    final link failed: bad value
    Build failed

    How can will handle linking against libbluenrg_lp_stack.a ? Help would  be very nice...

    Regrads

    Mathias

    0
    Comment actions Permalink
  • Avatar
    m.koeppchen

    Thanks. I'll check this out :-D...

    0
    Comment actions Permalink
  • Avatar
    m.koeppchen

    Hello Michael,

    unfortunately linking against the MESH lib is still impossible (CrossWorks for ARM
    Release 4.8.1.2021051901.46277):

    Building ‘Project’ from solution ‘Project’ in configuration ‘Lighting’
    Linking Project.elf
    ./../../../../../../Middlewares/ST/ST_BLE_Mesh/Library/libBlueNRG_Mesh_CM0P.a(library.o): .symtab local symbol at index 4900 (>= sh_info of 4071)
    ./../../../../../../Middlewares/ST/ST_BLE_Mesh/Library/libBlueNRG_Mesh_CM0P.a: error adding symbols: bad value
    Build failed

    Regards

    Mathias

    0
    Comment actions Permalink

Please sign in to leave a comment.