This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

adding SPI to ble_app_uart

im using Feather EVM. im using the app_ble_uart . after i added SPI to the project i dont get any errors but the code does not run (goes to main) and when i press run it goes into hard fault.

the SPI is enabled. 

Parents Reply Children
  • You mean this: https://www.adafruit.com/product/3406 - yes

    Have you tried using the SPI on its own - without BLE ? - yes

    Have you used the debugger to see what's causing the Hard Fault? - im using IAR debugger

    Have you enabled the debug logs for information on what's causing the crash? - how do i do that ?

  • im using IAR debugger

    So what have you discovered by using it?

    Have you enabled the debug logs

    When you build the 'Debug' configuration, it should enable the logs.

    They may come out on the UART, or RTT

  • update : after testing the new SDK example of the app_ble_uart with the SPI i got it running (since nothing is connected to the Feather). after that i connected it to my board that has connection on all io's . after running the code it gets halt fault . i think it has something to do with the uart that needs IO's. i tried to disable it or change the uart tx/rx IO's to sothing else, but still no good.

    this is the log :

    Thu Jun 27, 2019 08:55:22: Loaded macro file: C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.2\arm\config\debugger\NordicSemi\nRF52.dmac
    Thu Jun 27, 2019 08:55:23: JLINK command: ProjectFile = D:\Documents\Projects\work facilitation\Miter sow\C ble_app org + spi\examples\ble_peripheral\ble_app_uart\pca10040\s132\iar\settings\ble_app_uart_pca10040_s132_nrf52832_xxaa.jlink, return = 0

    Thu Jun 27, 2019 08:55:23: Device "NRF52832_XXAA" selected.
    Thu Jun 27, 2019 08:55:23: DLL version: V6.44e, compiled Apr 5 2019 16:15:03

    Thu Jun 27, 2019 08:55:23: Firmware: J-Link V10 compiled Mar 21 2019 15:43:57

    Thu Jun 27, 2019 08:55:23: Selecting SWD as current target interface.

    Thu Jun 27, 2019 08:55:23: JTAG speed is initially set to: 1000 kHz
    Thu Jun 27, 2019 08:55:23: Found SW-DP with ID 0x2BA01477
    Thu Jun 27, 2019 08:55:23: Found SW-DP with ID 0x2BA01477
    Thu Jun 27, 2019 08:55:23: Scanning AP map to find all available APs
    Thu Jun 27, 2019 08:55:23: AP[2]: Stopped AP scan as end of AP map has been reached
    Thu Jun 27, 2019 08:55:23: AP[0]: AHB-AP (IDR: 0x24770011)
    Thu Jun 27, 2019 08:55:23: AP[1]: JTAG-AP (IDR: 0x02880000)
    Thu Jun 27, 2019 08:55:23: Iterating through AP map to find AHB-AP to use
    Thu Jun 27, 2019 08:55:23: AP[0]: Core found
    Thu Jun 27, 2019 08:55:23: AP[0]: AHB-AP ROM base: 0xE00FF000
    Thu Jun 27, 2019 08:55:23: CPUID register: 0x410FC241. Implementer code: 0x41 (ARM)
    Thu Jun 27, 2019 08:55:23: Found Cortex-M4 r0p1, Little endian.
    Thu Jun 27, 2019 08:55:23: FPUnit: 6 code (BP) slots and 2 literal slots
    Thu Jun 27, 2019 08:55:23: CoreSight components:
    Thu Jun 27, 2019 08:55:23: ROMTbl[0] @ E00FF000
    Thu Jun 27, 2019 08:55:23: ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB00C SCS-M7
    Thu Jun 27, 2019 08:55:23: ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 003BB002 DWT
    Thu Jun 27, 2019 08:55:23: ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 002BB003 FPB
    Thu Jun 27, 2019 08:55:23: ROMTbl[0][3]: E0000000, CID: B105E00D, PID: 003BB001 ITM
    Thu Jun 27, 2019 08:55:23: ROMTbl[0][4]: E0040000, CID: B105900D, PID: 000BB9A1 TPIU
    Thu Jun 27, 2019 08:55:23: ROMTbl[0][5]: E0041000, CID: B105900D, PID: 000BB925 ETM
    Thu Jun 27, 2019 08:55:23: Reset: Halt core after reset via DEMCR.VC_CORERESET.
    Thu Jun 27, 2019 08:55:23: Reset: Reset device via AIRCR.SYSRESETREQ.
    Thu Jun 27, 2019 08:55:23: Hardware reset with strategy 0 was performed
    Thu Jun 27, 2019 08:55:23: Initial reset was performed
    Thu Jun 27, 2019 08:55:27: J-Link: Flash download: Bank 0 @ 0x00000000: 1 range affected (4096 bytes)
    Thu Jun 27, 2019 08:55:27: J-Link: Flash download: Total time needed: 0.151s (Prepare: 0.034s, Compare: 0.030s, Erase: 0.003s, Program: 0.078s, Verify: 0.000s, Restore: 0.004s)
    Thu Jun 27, 2019 08:55:27: 34024 bytes downloaded (8.57 Kbytes/sec)
    Thu Jun 27, 2019 08:55:27: Loaded debugee: D:\Documents\Projects\work facilitation\Miter sow\C ble_app org + spi\examples\ble_peripheral\ble_app_uart\pca10040\s132\iar\_build\ble_app_uart_pca10040_s132.out
    Thu Jun 27, 2019 08:55:27: Reset: Halt core after reset via DEMCR.VC_CORERESET.
    Thu Jun 27, 2019 08:55:27: Reset: Reset device via AIRCR.SYSRESETREQ.
    Thu Jun 27, 2019 08:55:27: Hardware reset with strategy 0 was performed
    Thu Jun 27, 2019 08:55:27: Target reset

  • Did you check the call-stack when debugging, to see what is running before the hardfault occurs? Do you have anything connected to the UART pins? If they are left floating, errors will be detected on the RX-line, which will result in an error code and leave the application in the error handler.

  • i have no need for physical uart pins, i only use it for the ble communication. i am trying to disable it with no success.call-stack is:
    app_error_fault_handler()
    app_error_handler_bare(uint32_t error_code = ?)
    uart_event_handle(app_uart_evt_t * p_event = ?)
    uart_event_handler(struct <Unnamed 41> * p_event = ?, void * p_context = ?)
    uart_evt_handler(nrfx_uart_event_t const * p_event = ?, void * p_context = ?)
    uarte_irq_handler(NRF_UARTE_Type * p_uarte = 0x40002000, uarte_control_block_t * p_cb = m_cb (0x20003DE0))
    <Exception frame>
    [nrfx_coredep_delay_us::delay_machine_code + 0]

Related