PIC单片机的flash空间问题
最近发现一个问题,MPLAB编译出来的hex只有97KB,flash有128KB,但是下载进去以后,程序已经跑不起来了,简单去掉几行代码以后又可以了,初步判断是FLASH的空间不够了,但是hex转为bin以后只有35KB左右,远远未到FLASH的上限,这是为何?
[解决办法]
这个问题,你确认你烧写的文件和操作没有问题?烧写的设置没有问题?你有没有查一下是不是你的RAM不够哇。flash在运行用户程序时相当于是个ROM,但内存也就是RAM需要作为堆和栈来保存运行时的数据。另外如果有全局静态变量或局部静态变量也会在RAM中存放的。
你的FLASH足够放下代码,但在运行时,RAM可能会不够,你查一下是不是在代码里面用了很大的内存空间,有时一句代码就可以占用很大的空间的,你也可以用调试器查一下程序是死到哪了。
另外,有没有可能不是RAM不够的问题,而是你自己的代码逻辑问题,在运行时出现了错误。