Hi,
I am testing the Bluetooth function on my custom board with nRF5340 CLAA chip. I have tested the clock, I2S and SPI on this chip previously and they all worked perfectly. Now, I am using the sample code peripheral_nus to test the Bluetooth function. In my board, I connected an antenna Johanson Dielectrics 2450AT43B100E to the ANT pin of the chip.
I encountered an issue when I got to bt_enable in the code. The program got stuck here and would not proceed. Then I debugged further and found out that the error came from this line
err = send(group, full_packet, len + NRF_RPC_HEADER_SIZE);
within the nrf_rpc_cmd_common function in nrf_rpc.c file. This line returned -32 which I believe indicated -EPIPE (Broken pipe). So I suspect that the network core of my chip was not initialized properly and the IPC communication between two cores failed because my previous testings were all on application core alone and they all worked fine.
I have a Kconfig.sysbuild file in my application folder following another example, with the contents below:
source "${ZEPHYR_BASE}/share/sysbuild/Kconfig" config NRF_DEFAULT_IPC_RADIO default y config NETCORE_IPC_RADIO_BT_HCI_IPC default y
I believe that this allows me to generate two images for two cores separately, with the Bluetooth sample code built for application core and the default ipc_radio built for the network core. I created my own board folder called nrf5340_platform and built the application with nrf5340_platform/nrf5340/cpuapp. Both firmwares were built and flashed to the board successfully.
In my prj.conf, I enabled:
CONFIG_I2S=y CONFIG_AUDIO=y CONFIG_AUDIO_DMIC=y CONFIG_GPIO=y CONFIG_RTT_CONSOLE=y CONFIG_USE_SEGGER_RTT=y CONFIG_UART_CONSOLE=n # CONFIG_DISK_ACCESS=y # CONFIG_DISK_DRIVER_SDMMC=y # CONFIG_FILE_SYSTEM=y # CONFIG_FAT_FILESYSTEM_ELM=y # CONFIG_SPI=y CONFIG_MAIN_STACK_SIZE=4096 CONFIG_BT=y CONFIG_BT_PERIPHERAL=y CONFIG_BT_ZEPHYR_NUS=y CONFIG_BT_DEVICE_NAME="MynRF5340" # Enable HCI over RPMsg for nRF5340 CONFIG_BT_RPC_STACK=y # Enable IPC service and OpenAMP for RPMsg CONFIG_IPC_SERVICE=y CONFIG_IPC_SERVICE_RPMSG=y CONFIG_OPENAMP=y # Ensure the Net Core domain is specified for sysbuild CONFIG_BUILD_WITH_TFM=n
In the dts files of app and net, I have zephyr,bt-hci-ipc = &ipc0 with:&ipc0 {
status = "okay";
};
In nrf5340_platform-shared_sram.dtsi, I have:
/ { chosen { /* shared memory reserved for the inter-processor communication */ zephyr,ipc_shm = &sram0_shared; }; reserved-memory { #address-cells = <1>; #size-cells = <1>; ranges; sram0_shared: memory@20070000 { /* SRAM allocated to shared memory */ reg = <0x20070000 0x10000>; }; }; };
I also tried to debug with RTT viewer. The app console gives me messages:00> [00:00:00.000,15[00:00:00.000,244] <dbg> clock_control: clkstarted_handle: lfclk: Clock started
00> [00:00:00.000,274] <dbg> os: setup_thread_stack: stack 0x200029e8 for thread 0x20000d48: obj_size=768 buf_start=0x200029e8 buf_size 768 stack_ptr=0x20002ce8
00> --- 1 messages dropped ---
00> [00:00:00.000,366] <dbg> os: setup_thread_stack: stack 0x20005228 for thread 0x20001668: obj_size=1024 buf_start=0x20005228 buf_size 1024 stack_ptr=0x20005628
00> [00:00:00.000,457] <dbg> BT_RPC: serialization_init: Init begin
00> [00:00:00.000,488] <dbg> NRF_RPC: nrf_rpc_init: Initializing nRF RPC module
00> [00:00:00.000,518] <dbg> NRF_RPC: nrf_rpc_init: Group 'bt_rpc' has id 0
00> [00:00:00.000,579] <dbg> os: setup_thread_stack: stack 0x20002ce8 for thread 0x20001280: obj_size=1024 buf_start=0x20002ce8 buf_size 1024 stack_ptr=0x200030e8
00> [00:00:00.000,579] <dbg> os: setup_thread_stack: stack 0x200030e8 for thread 0x20001348: obj_size=1024 buf_start=0x200030e8 0m
00>
The net console gives me messages:00> [00:00:00.000,000] <dbg> clock_control: clkstarted_handle: lfclk: Clock started
00> [00:00:00.000,061] <dbg> os: setup_thread_stack: stack 0x2100ab30 for thread 0x21008670: obj_size=2048 buf_start=0x2100ab30 buf_size 2048 stack_ptr=0x2100b330
00> [00:00:00.000,091] <dbg> os: setup_thread_stack: stack 0x2100aa30 for thread 0x210085f0: obj_size=256 buf_start=0x2100aa30 buf_size 256 stack_ptr=0x2100ab30
00> [00:00:00.000,122] <dbg> os: setup_thread_stack: stack 0x21009630 for thread 0x21002390: obj_size=2048 buf_start=0x21009630 buf_size 2048 stack_ptr=0x21009e30
00> [00:00:00.000,244] <dbg> os: setup_thread_stack: stack 0x21009e30 for thread 0x21008550: obj_size=1024 buf_start=0x21009e30 buf_size 1024 stack_ptr=0x2100a230
00> [00:00:00.000,335] <dbg> os: setup_thread_stack: stack 0x2100b330 for thread 0x210086f0: obj_size=2048 buf_start=0x2100b330 buf_size 2048 stack_ptr=0x2100bb30
00> --- 8 messages dropped ---
00> [00:00:00.002,471] <dbg> os: z_impl_k_mutex_4245unt: 1
00> --- 26 messages dropped ---
00> [00:00:02.394,165] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.395,721] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.397,247] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.398,803] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 27 messages dropped ---
00> [00:00:02.400,360] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.401,916] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.403,472] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.405,029] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.406,585] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.408,142] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.409,667] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.411,224] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.412,780] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.414,306] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.415,863] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.417,388] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.418,945] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.420,501] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.422,027] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.423,583] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.425,109] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.426,666] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.428,222] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.429,748] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.431,304] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 27 messages dropped ---
00> [00:00:02.432,891] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)
00> --- 29 messages dropped ---
00> [00:00:02.434,600] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)
00> --- 28 messages dropped ---
00> [00:00:02.436,340] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)
00> --- 29 messages dropped ---
00> [00:00:02.438,018] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)
00> --- 29 messages dropped ---
00> [00:00:02.439,758] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)
00> --- 29 messages dropped ---
00> [00:00:02.441,467] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)
00> --- 28 messages dropped ---
00> [00:00:02.443,145] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.444,732] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.446,289] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.447,875] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.449,432] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.450,988] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 27 messages dropped ---
00> [00:00:02.452,545] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.454,101] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.455,657] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.457,214] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.458,770] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.460,327] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.461,883] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.463,409] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.464,965] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.466,522] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.468,078] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.469,604] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.471,160] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.472,686] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.474,243] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.475,799] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.477,355] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.478,881] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.480,438] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.481,994] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.483,520] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.485,076] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.486,602] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.488,159] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.489,715] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.491,241] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.492,797] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.494,323] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.495,880] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.497,406] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.498,962] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.500,518] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.502,044] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.503,601] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.505,126] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.506,683] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.508,239] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.509,765] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.511,322] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.512,847] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.514,404] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 26 messages dropped ---
00> [00:00:02.515,960] <dbg> os: z_impl_k_mutex_unlock: mutex 0x21000d54 lock_count: 1
00> --- 27 messages dropped ---
00> [00:00:02.517,547] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)
00> --- 29 messages dropped ---
00> [00:00:02.519,256] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)
00> --- 28 messages dropped ---
00> [00:00:02.520,965] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)
00> --- 29 messages dropped ---
00> [00:00:02.522,674] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)
00> --- 29 messages dropped ---
00> [00:00:02.524,414] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)
00> --- 29 messages dropped ---
00> [00:00:02.526,123] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x21000d54: 0 (prio: -1000)
Can you please advise me which directions I should go to enable the Bluetooth on my board? Thank you very much for your help!