调试STM32过程中遇到的问题总结(持续更新)--KEIL4+C语言

来源:互联网 发布:美工设计助理骗局 编辑:程序博客网 时间:2024/05/14 13:19

背景:正点原子开发板,程序植入固件库与FATFS文件。如有不妥,大家多提意见。(这些问题仅仅是我个人写程序遇到的问题及其解决方法,供参考)

直入正题

NUMBER ONE :

多处用到同一个函数或变量,定义时,第一个可以带参数或变量值,重复定义时不需要带参数。如:

第一次定义:uint8_t  POINT_COLOR=oxoooo;

第二次定义(只需声明即可):extern  uint8_t  POINT_COLOR;

说明:第二次只是声明已经定义过的,编译器会自动使用第一个。


NUMBER TOW:

调试出错:error:#513 :a value of type "int" cannot be assigned to an entity of type "FileInfoStruct"

这个错误的可能性:有的头文件没包含进去、有函数没有定义。


NUMBER THREE:

调试出错:error: the code size of this image (63002 bytes) exceeds the maximum allowed for this version of the linker.

出错可能性:keil安装完后,License Management 注册没成功,即使显示成功,注意看Product下面的显示,若显示MDK-ARM Standard,则正确,否则不对。重新输入CID注册,注意选项。


NUMBER FOUR:

调试出错:

Error:L6406E:No space in execution regions with .ANY selector matching adc_dma.o(.bss)

Error:L6407E:Sections of aggregate size 0x12f20 bytes could not fit into .ANY selector(s).

修改地方:我的是改了malloc.h里面定义的如下两个变量的值。

#define MEM1_BLOCK_SIZE 4

#define MEM1_MAX_SIZE 2*1024

修改上述阴影部分的值即可。


NUMBER FIVE

调试出错:

Error:#268:declaration may not appear after executable statement in block

修改地方:定义变量应放在函数开头。


如果程序显示X,但确定这个地方没错误,或者新建文件后,里面字体全黑,可以把工程关闭,重新开启。

特此感谢网友的帮忙!

原创粉丝点击