打印

Flash空间问题

[复制链接]
1376|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dfsa|  楼主 | 2013-2-20 09:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
最近发现一个问题,MPLAB编译出来的hex只有97KB,flash有128KB,但是下载进去以后,程序已经跑不起来了,简单去掉几行代码以后又可以了,初步判断是FLASH的空间不够了,但是hex转为bin以后只有35KB左右,远远未到FLASH的上限,这是为何?

相关帖子

沙发
xsgy123| | 2013-2-20 09:33 | 只看该作者
你确认你烧写的文件和操作没有问题?烧写的设置没有问题?

使用特权

评论回复
板凳
秋天落叶| | 2013-2-20 09:44 | 只看该作者
flash在运行用户程序时相当于是个ROM,但内存也就是RAM需要作为堆和栈来保存运行时的数据。另外如果有全局静态变量或局部静态变量也会在RAM中存放的。

使用特权

评论回复
地板
baidudz| | 2013-2-20 09:53 | 只看该作者
你的FLASH足够放下代码,但在运行时,RAM可能会不够,你查一下是不是在代码里面用了很大的内存空间,有时一句代码就可以占用很大的空间的,你也可以用调试器查一下程序是死到哪了。

另外,有没有可能不是RAM不够的问题,而是你自己的代码逻辑问题,在运行时出现了错误。

使用特权

评论回复
5
firstblood| | 2013-2-20 18:18 | 只看该作者
128K是整体的空间吧,这还包括其他的用途的,而真正存放代码的空间是小于128K的

使用特权

评论回复
6
comeon201208| | 2013-2-21 17:51 | 只看该作者
看下这个单片机的flash空间结构图的就可明了了啊

flash.jpg (56.98 KB )

flash.jpg

使用特权

评论回复
7
smilingangel| | 2013-2-25 13:21 | 只看该作者
程序当中若有死循环的话也会出现这问题的

使用特权

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

本版积分规则

282

主题

2404

帖子

2

粉丝