* void usr_assert(uin8_t zoo) * { * uint32_t sp = cmb_get_msp(); * cm_backtrace_assert(sp); * foo(zoo); * } * * 那么在进入cm_backtrace_assert的时候,会将foo的地址写进LR,然后将 * LR进栈,所以SP指向LR,LR-4刚好就是cm_backtrace_assert的地址 * (因为BL跳转指令刚好占4个字节)...
当前笔者所使用的平台是keil 5,所使用的控制器是STM32F103,我们准备一个具备串口功能的工程,工程结构如下所示: 紧接着,我们来看下cm_backtrace的源代码: 上述中,cm_backtrace文件夹中存放的是源代码,我们需要将其全部复制到我们的工程目录,demos是使用的例子,里面分为有操作系统和无操作系统两种类型,然后tools存放的...
* @retval 无 */intmain(void){/*初始化USART 配置模式为 115200 8-N-1,中断接收*/USART_Config();/* CmBacktrace initialize */cm_backtrace_init("CmBacktrace",HARDWARE_VERSION,SOFTWARE_VERSION);fault_test_by_div0();while(1){}} 将程序烧录单片机,通过串口调试助手观查输出的信息: image-202103061053...
void cm_backtrace_assert(uint32_t sp) { #ifdef CMB_USING_OS_PLATFORM uint32_t tcb_sp; uint32_t cur_stack_pointer = cmb_get_sp(); #endif CMB_ASSERT(init_ok); cmb_println(" "); cm_backtrace_firmware_info(); #ifdef CMB_USING_OS_PLATFORM ...
使用NXP的S32K144芯片,裸机,gcc version 4.9.3 20150529 (release) [ARM/embedded-4_9-branch revision 227977] (GNU Tools for ARM Embedded Processors)编译器编译发生以下报错: cm_backtrace.c:236: undefined reference to _sstack' cm_backtrace.c:236: undefined r
(), target->GetBacktrace()); failed = true; } } } return failed; } void cmGlobalGenerator::CheckTargetLinkLibraries() const { for (const auto& generator : this->LocalGenerators) { for (const auto& gt : generator->GetGeneratorTargets()) { gt->CheckLinkLibraries(); } for (cons...
错误1: D/gpsd (1390): main() D/gpsd (1390): argv[0] ='/system/bin/glgps'D/gpsd (1390): argv[1] ='-c'D/gpsd (1390): argv[2] ='/system/etc/gpsconfig.xml'E/gpslogd (1390): ASSERTin/media/data/workspace/src/local/v19/customers/lenovo/k3android/../../../proprietary/del...
14:32:29.655 Info DEBUG 234 backtrace: 14:32:29.655 Info DEBUG 234 #00 pc 0001ed28 /system/lib/libc.so 14:32:29.655 Info DEBUG 234 #01 pc 0001c6fc /system/lib/libc.so (abort+4) 14:32:29.655 Info DEBUG 234 #02 pc 00008ac7 /system/lib/libcutils.so (__android_log_assert+86) ...
上述中,cm_backtrace文件夹中存放的是源代码,我们需要将其全部复制到我们的工程目录,demos是使用的例子,里面分为有操作系统和无操作系统两种类型,然后tools存放的是工具,用命令行的形式来分析代码错误的工具,将相关文件复制到工程目录之后工程目录下的文件如下所示: ...
然后,我们找到 cm_backtrace文件夹下的tools工具,将其复制到USART.axf所在的目录,复制之后的文件夹目录如下所示: image-20210306110017993 在当前文件夹下打开 cmd窗口,然后运行addr2line -e USART.axf -a -f 08001844 0800189a,在这里提一下打开 cmd的方法,按住Shift键,然后右键,打开Powershell ...