error: #147
....\lib\cm_backtrace\cm_backtrace.c(48): error: #147: declaration is incompatible with "char STACK$$Base" (declared at line 65 of "......\components\libraries\util\app_util.h")
the line 65 of "......\components\libraries\util\app_util.h" as follow
extern char STACK$$Base;

你的 main stack 段名字不是 STACK 吗?
可能是stack定义的类型不一样吧,你定义的是 extern const int CSTACK_BLOCK_START(CMB_CSTACK_BLOCK_NAME);,我的工程里用的是 char。 我把你的类型改成 extern char CSTACK_BLOCK_START(CMB_CSTACK_BLOCK_NAME),编译过了。
现在遇到问题,最后的打印为什么没有打出地址呢?只是个“s”,是对的吗? Show more call stack info by run: addr2line -e Si_Gateway_v100.axf -a -f s
说明栈的识别不太正常。你用自带的 demo 先试试吧
这是编译选项的问题,Linker的设置,对比一下demo工程即可。
@ShaoyuLee
我移植到Cortex-M4,编译器 Keil5 也出现类似的问题,地址只打印了一个s。
调试发现堆栈信息解析到了,存储到了 call_stack_info中,但是打印不出来,应该是 keil5 编译器解析字符串出了问题,解决方法是:
1、去掉 print_info[PRINT_CALL_STACK_INFO] 中最后的 %.*s
2、在函数 print_call_stack() 中追加打印 call_stack_info
@LinTeX9527 谢谢!上次没成功就搁置了,我找时间再试试。
@LinTeX9527 @ShaoyuLee
- 有没有用源码中的 demo 工程测试?
- 可否提供具体测试工程
@armink 移植在Cortex-M4上的工程我有,怎么发给你?


@LinTeX9527
- 有没有使用项目自带的 demo
- 工程发我邮箱就行哈
- 不太明白你的截图
@armink 没有板子测试项目自带的demo。 截图是根据demo改的程序,在Cortex-M4上运行。