打印

keil4编译后code问题

[复制链接]
1362|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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这个数就不能再增加啦,不知道咋回事?还有问题二有可能是什么问题?

使用特权

评论回复
评论
lihui567 2020-1-31 16:10 回复TA
是字节的 
地板
ayb_ice| | 2020-1-14 09:12 | 只看该作者
hhhhhhgggg 发表于 2020-1-13 23:48
code后面的数单位应该是字节吧,程序code到3327这个数就不能再增加啦,不知道咋回事?还有问题二有可能是 ...

问题2是WDT在影响,复位后WDT是自动开启的,C语言在运行到MAIN函数时,其实是要调用很多代码的,这段代码可能会花费较长时间,导致WDT溢出复位了,所以运行不到MAIN函数

使用特权

评论回复
5
ayb_ice| | 2020-1-14 09:13 | 只看该作者
hhhhhhgggg 发表于 2020-1-13 23:48
code后面的数单位应该是字节吧,程序code到3327这个数就不能再增加啦,不知道咋回事?还有问题二有可能是 ...

当然是字节,不可能只到3327,这才几K,肯定是哪里没设置对吧

使用特权

评论回复
6
hhhhhhgggg|  楼主 | 2020-1-17 23:21 | 只看该作者
ayb_ice 发表于 2020-1-14 09:13
当然是字节,不可能只到3327,这才几K,肯定是哪里没设置对吧

谢谢前辈。

使用特权

评论回复
7
hhhhhhgggg|  楼主 | 2020-1-17 23:50 | 只看该作者
ayb_ice 发表于 2020-1-14 09:12
问题2是WDT在影响,复位后WDT是自动开启的,C语言在运行到MAIN函数时,其实是要调用很多代码的,这段代码 ...

前辈 c8051f5xx的can通信参考哪些资料?

使用特权

评论回复
8
ayb_ice| | 2020-1-19 08:25 | 只看该作者
ayb_ice 发表于 2020-1-14 09:12
问题2是WDT在影响,复位后WDT是自动开启的,C语言在运行到MAIN函数时,其实是要调用很多代码的,这段代码 ...

都说了,在启动文件里关WDT,启动文件是在MAIN之前运行的

使用特权

评论回复
9
airwill| | 2020-1-19 21:59 | 只看该作者
编译是以字节为单位的,  你只要对比字节数,  你最好字节看占用地址空间

使用特权

评论回复
10
qd118| | 2020-1-30 19:45 | 只看该作者
可以改变程序优化等级的选项试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

7

主题

121

帖子

2

粉丝