调试日志
- 控制台输出
printf("Main done 3\n");
请注意,在 CCS 中,默认情况下,控制台的输出可能会被缓冲,并在程序执行结束后才显示。如果希望实时显示输出,可以使用
fflush(stdout);
函数来强制刷新缓冲区
ccs控制台输出效果:
这种方式会影响采样中断,具体原因不详
- Bios Log
LOG_printf(&LOG_Debug,"Main done 1\n")
使用之前首先需要在Bios configuration Tool界面添加日志事件LOG_Debug :
->1).双击.tcf bios/DSP 配置文件打开Configration Tool窗口
-> 2).点击Log - Event Log Manager
-> 3).Insert Log
代码运行后,打开Tools下的RTOS Object View (ROV)便可以查看
查看结果:
常用快捷键
跳转行 :Ctrl+L(VS里面Ctrl+G)
搜索替换(文档):Ctrl+F
高级搜索(全局):Ctrl+H
按文本搜索(Work space):Ctrl+Alt+G ,个人觉得这个搜索用的最多
注释或者反注释:Ctrl+/
初学者必须要知道的功能
View->Memory Browser
调试的时候查看变量
在内存浏览器上面有一个 Continuous Refresh的按钮,可以实时跟踪变量的变化(大量的持续刷新会影响性能)
常用问答和Tips
-
问:仿真器写入的程序,重启DSP一定会再次加载吗?
-
答:如果不flash进去,就写不进内存。下次重启就不会加载,但又一个flash函数可以写进去。
-
问:好多 ifndefine define的文件头,有什么用?
-
答:避免编译的时候多次添加头文件导致编译问题。
-
问:为什么用CCS5.5,而不是最新的版本?
-
答:因为最新的只支持TI自己的仿真器,需要一万美金,而SEED的只需要5000左右人民币。
-
main函数的变量可以不用引用头文件。
-
“Unsolve Symbol remain”:字段或函数未声明,或者多了异常字符
-
删除文件可能会引发很多问题。