keilMDK使用总结

举报
kobesdu 发表于 2022/02/08 09:26:49 2022/02/08
1.3k+ 0 0
【摘要】 问题1 warning: #223-D: function "CLR_TX_DATA" declared implicitly解决方法。以上面错误提示为例:1  找到定义函数 CLR_TX_DATA() 的源文件 ,这里假设在 a.c  中;2  在 a.h 中最后声明一下 CLR_TX_DATA(),即添加(假设此函数无返回值无参数)void  CLR_TX_DATA(void);3  再...

问题1 

warning: #223-D: function "CLR_TX_DATA" declared implicitly
解决方法。
以上面错误提示为例:
1  找到定义函数 CLR_TX_DATA() 的源文件 ,这里假设在 a.c  中;
2  在 a.h 中最后声明一下 CLR_TX_DATA(),即添加(假设此函数无返回值无参数)
void  CLR_TX_DATA(void);
3  再次编译 刚才的 warning  即可消失。

问题2
KEIl编译STM32的时候,出现了一点问题!!
程序编译的时候通过了!!但是显示警告:
test.c(45): warning:  #223-D: function "Get_Temp"declaredimplicitly
在望山查了好久,终于明白:
这是因为Get_Temp没有在你所引用的文件里加载,虽然你在头文件里声明了一遍!!
但是还是有错误,
你只需要在你所使用的文件里面在声明一次,问题迎刃而解!!
在VC中,好像不会有此warning ,它应该是intel编译器特有的警信息:
如果无法为非 void 返回类型的 C 函数找到正确的原型,则"英特尔® C++ 编译器"会打印以下警告消息:
warning #266: function declared implicitly
此问题只会在 C 语言函数中发生。在 C++ 函数中,必须声明正确的原型才能成功编译和链接,所以不会发生上述问题。
如以下C程序
main()
{
printf("ok\n");
}
就会产生警告
正确的作法是写出函数的定义或#include函数定义的头文件,这样就没问题
问题3

keil uv5重命名工程的简单方法
假设原来的工程文件名是first,在工程文件目录中,你可以看到很多主文件名为first的文件,其中有两个文件分别叫做:
first.uvopt和first.uvproj。
你只要把这两个文件的主文件名改成你需要的名字,例如second,变成second.uvopt和second.uvproj。其他first文件统统删除。
keil编译提示Execution region RW_IRAM1 size (65552 bytes) exceeds limit (65536 bytes). Region contains 16
错误原因是内存不足。
一方面可以选择内存容量更大的芯片;
另一方面只能进行代码的优化。
一个ARM程序包含3部分:RO,RW和ZI
RO是程序中的指令和常量
RW是程序中已初始化变量
ZI是程序中未初始化或初始化为0的变量(ARM C程序中,所有的未初始化变量都会被自动初始化为0)。
由以上3点说明可以理解为:
RO就是readonly,   C中的指令以及常量被编译后是RO类型数据
RW就是read/write,C中的已被初始化成非0值的变量编译后市RW类型数据
ZI就是zero initial, C中的未被初始化或初始化为0的变量编译后是ZI类型数据。
在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息:
Program Size: Code=6320  RO-data=4864  RW-data=44  ZI-data=1636
代表的意思:
Code :是程序中代码所占字节大小
RO-data :程序中所定义的指令和常量大小 (个人理解 :Read Only)
RW-data :程序中已初始化的变量大小 (个人理解”:Read/Write)
ZI-Data :程序中未初始化的变量大小 (个人理解 :Zero Initialize)
ROM(Flash) size = Code+RO-data+RW-data;
RAM size = RW-data+ZI-data
可以通过.map查看占用的flash和ram大小

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。