keil4编译后code问题

[复制链接]
 楼主| hhhhhhgggg 发表于 2020-1-12 23:24 | 显示全部楼层 |阅读模式
各位前辈:
1、单片机c8051f系列flash为16k;
2、编译环境为keil4;
问题1是keil4中程序编译后code不能超过多少?是16*1024/8字节吗?
问题2keil4用硬件仿真,code、xdata不超量,但是有时候多定义一个变量就造成硬件仿真不成功(不进主函数)有可能是什么原因啊?
ayb_ice 发表于 2020-1-13 08:43 | 显示全部楼层
记得关WDT(最好是在启动文件里操作)
flash的最后512字节其实不可用,被内部使用了,所以实际可用空间只有15.5K

这些手册都有说明的,多看手册
 楼主| hhhhhhgggg 发表于 2020-1-13 23:48 | 显示全部楼层
ayb_ice 发表于 2020-1-13 08:43
记得关WDT(最好是在启动文件里操作)
flash的最后512字节其实不可用,被内部使用了,所以实际可用空间只有 ...

code后面的数单位应该是字节吧,程序code到3327这个数就不能再增加啦,不知道咋回事?还有问题二有可能是什么问题?

评论

是字节的  发表于 2020-1-31 16:10
ayb_ice 发表于 2020-1-14 09:12 | 显示全部楼层
hhhhhhgggg 发表于 2020-1-13 23:48
code后面的数单位应该是字节吧,程序code到3327这个数就不能再增加啦,不知道咋回事?还有问题二有可能是 ...

问题2是WDT在影响,复位后WDT是自动开启的,C语言在运行到MAIN函数时,其实是要调用很多代码的,这段代码可能会花费较长时间,导致WDT溢出复位了,所以运行不到MAIN函数
ayb_ice 发表于 2020-1-14 09:13 | 显示全部楼层
hhhhhhgggg 发表于 2020-1-13 23:48
code后面的数单位应该是字节吧,程序code到3327这个数就不能再增加啦,不知道咋回事?还有问题二有可能是 ...

当然是字节,不可能只到3327,这才几K,肯定是哪里没设置对吧
 楼主| hhhhhhgggg 发表于 2020-1-17 23:21 | 显示全部楼层
ayb_ice 发表于 2020-1-14 09:13
当然是字节,不可能只到3327,这才几K,肯定是哪里没设置对吧

谢谢前辈。
 楼主| hhhhhhgggg 发表于 2020-1-17 23:50 | 显示全部楼层
ayb_ice 发表于 2020-1-14 09:12
问题2是WDT在影响,复位后WDT是自动开启的,C语言在运行到MAIN函数时,其实是要调用很多代码的,这段代码 ...

前辈 c8051f5xx的can通信参考哪些资料?
ayb_ice 发表于 2020-1-19 08:25 | 显示全部楼层
ayb_ice 发表于 2020-1-14 09:12
问题2是WDT在影响,复位后WDT是自动开启的,C语言在运行到MAIN函数时,其实是要调用很多代码的,这段代码 ...

都说了,在启动文件里关WDT,启动文件是在MAIN之前运行的
airwill 发表于 2020-1-19 21:59 | 显示全部楼层
编译是以字节为单位的,  你只要对比字节数,  你最好字节看占用地址空间
qd118 发表于 2020-1-30 19:45 | 显示全部楼层
可以改变程序优化等级的选项试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:积小流,成江海

7

主题

121

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部