单片机实际可用的程序存储空间的问题

2020-01-12 17:16发布

在用c8051f350单片机做温度采集和发送的项目,在项目的进展中,为不使得程序所占空间超过单片机的容量(8K),逐步的添加功能,但当程序写到6.6K时,程序便开始出现问题,程序执行一次后便无法再次执行. 说明FLASH擦除出现了问题,难道此单片机的真正可用容量只有这么大吗?
        减小几百个字节后,程序可以运行,但AD采集温度前两个通道出现错误;
       再减小几个字节,程序运作正常,温度采集也正常。
     why?标称8KFLASH的单片机可用空间仅仅是6.6K么?目前程序所占空间为:
    Program Size: data=79.4 xdata=712 code=6613;
    这时候正常,再增加程序会出现意想不到的错误·······
***************************************************************
这是一位网友的帖子,ms没有一个满意的答案, 前几天俺也遇到类似的问题  请问 大家有没有遇到这样的坑  是怎么爬出来的.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
tomzbj
1楼-- · 2020-01-12 19:27
没用过c8051。。。我把65536字节的stm32写到过65520还是多少,也没问题啊。不过之后就换128k的了。
wye11083
2楼-- · 2020-01-13 00:03
可能编译器出bug了。我之前是AVR代码超过8KB之后开始出现各种异常情况,折腾一段时间无果切换riscv了。。
wmm20031015
3楼-- · 2020-01-13 03:25
应该不会,看一下MAP文件
zhouqw1979
4楼-- · 2020-01-13 03:40
c8051应该最后512bytes不让用,Flash用满也没出现问题
qd118118
5楼-- · 2020-01-13 07:53
 精彩回答 2  元偷偷看……
wincom
6楼-- · 2020-01-13 13:29
我用过C8051F410和411,是量产的产品(每月差不多能k的量吧),写得满满的,没问题啊
后来是因为要增加代码,优化、压缩后还是几乎用完Flash,所以才改了STM32

一周热门 更多>