We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I know how to debug mcuboot and tfm-s image, it can be done in this way:
Start the CADI Debug Server in one terminal:
/usr/local/DS-5_v5.27.1/bin/FVP_MPS2_AEMv8M --parameter fvp_mps2.platform_type=2 --parameter cpu0.baseline=0 --parameter cpu0.INITVTOR_S=0x10000000 --parameter cpu0.semihosting-enable=0 --parameter fvp_mps2.DISABLE_GATING=0 --parameter fvp_mps2.telnetterminal0.start_telnet=1 --parameter fvp_mps2.telnetterminal1.start_telnet=0 --parameter fvp_mps2.telnetterminal2.start_telnet=0 --parameter fvp_mps2.telnetterminal0.quiet=0 --parameter fvp_mps2.telnetterminal1.quiet=1 --parameter fvp_mps2.telnetterminal2.quiet=1 --application cpu0=~/TF-M/trusted-firmware-m/cmake_build/bl2/ext/mcuboot/mcuboot.axf --data cpu0=~/TF-M/trusted-firmware-m/cmake_build/tfm_sign.bin@0x10080000 -S
Start debugger in the other terminal to debug secure image:
/usr/local/DS-5_v5.27.1/bin/debugger --cdb-entry "ARM FVP::MPS2_AEMv8M::Bare Metal Debug::Bare Metal Debug::Debug AEMv8M_0" --image "trusted-firmware-m/cmake_build/app/secure_fw/tfm_s.axf"Connected to stopped target ARM_AEMv8M_0Semihosting server socket created at port 8000Semihosting enabled automatically due to semihosting symbol detected in image 'tfm_s.axf'>b mainBreakpoint 1 at 0x10085CD0 on file tfm_core.c, line 159>cExecution stopped in Secure Thread mode at breakpoint 1: 0x10085CD0In tfm_core.c0x10085CD0 159,0 {>sExecution stopped in Secure Thread mode at 0x10085CD80x10085CD8 160,5 uart_init(UART0_CHANNEL);
But if I try to debug the non-secure image:
/usr/local/DS-5_v5.27.1/bin/debugger --cdb-entry "ARM FVP::MPS2_AEMv8M::Bare Metal Debug::Bare Metal Debug::Debug AEMv8M_0" --image "trusted-firmware-m/cmake_build/app/tfm_ns.axf"Connected to stopped target ARM_AEMv8M_0Semihosting server socket created at port 8000Semihosting enabled automatically due to semihosting symbol detected in image 'tfm_ns.axf'>b mainBreakpoint 1 at 0x00102358 on file main_ns.c, line 100>c>sERROR(CMD440-COR89): ! Stepping failed! Target is currently running
The execution simply cannot achieve achieve the main() of non-secure image. And I know the root cause of the problem is the execution entry point and secure non-secure switch. But I just don't know how to make it right. Any idea? Thanks.