小便签

来源:互联网 发布:win8办公软件 编辑:程序博客网 时间:2024/04/27 13:21

1.在C语言中使用换行连接符 "\" 时,要注意在"\"后只允许有一个回车,其他什么都不能加,尤其是空格,不然会出错误。

下面举一个比较隐蔽的错误:


#define CMD_RESET"ABBCC\

DD9“                                                    //正确,CMD_RESET代表"ABBCCDD9“        


#defineCMD_RESET"ABBCC\

空格空格空格空格空格DD9“                //编译连接运行都不会出错,但是实际上CMD_RESER代表

                                                           //的是"ABBCC空格空格空格空格空格DD9"


2.使用JLINK烧写程序时,出现RAM check failed @ADDRESS 0x20000000错误
当你检查了:
(1)工程里选择芯片型号是否无误
(2)连线是否正确
(3)JTAG/SWD接口线是否有短路或短路(板子上的连线和杜邦线)
(4)试着把下载速度降低
(5)可能接口用线太少不稳定
以上几点后发现还是出错,这时不妨把jlink工程删掉,重现建一个工程试一下。
注:本人就遇见过这种情况
其他:个人感觉用segger下载对电器特性要求要高一些,很多时候用MDK可以下载,但segger就不行,这时我就用MDK直接下载hex文件;如果下载bin文件,先把bin转换成hex再用MDK下载。


3.调试程序时出现HardFault_Handler
芯片:STM32F205RG
系统:FreeRTOS
现象:程序总是跑在到UDP_Task()任务中间某个地方时串口打印出硬件异常
解决:非常谢这篇博客http://blog.csdn.net/zyboy2000/article/details/7668331,里面提到可能的原因是堆栈溢出,因此增加了UDP_Task()的堆栈,果然问题解决。
0 0