找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1853|回复: 4
收起左侧

pic f25k80单片机 ram空间不够,如何解决?

[复制链接]
ID:932412 发表于 2021-6-16 10:11 | 显示全部楼层 |阅读模式
pic f25k80单片机  RAM只有3649字节,做通信板使用,结合串口,485 ,can通信,主要是mqtt协议数据传输,但是现在问题是,需要接收大于517字节的远程升级包,需要申请1024字节的全局变量,但是ram完全不够用呢,写完代码ram至少差512字节的空间.代码部分通过map文件感觉能优化的都优化了,请问有什么办法呢,或者提供解决思路,和优化方法,谢谢
回复

使用道具 举报

ID:401564 发表于 2021-6-16 16:02 | 显示全部楼层
3649字节都不够?那8051的256个字节怎么办呢?
PIC的18系列是中高端单片机了,不太可能用到资源不的情况的
我不会C,所以不知道怎么回事,但256个字节都足够我用的,那3649字节肯定更加不用说了
回复

使用道具 举报

ID:938708 发表于 2021-6-16 16:08 | 显示全部楼层
1、程序优化:
①、将固定的代码数组等,存到ROM。(51单片机用 code表示存到 ROM)
②、压缩多余缓冲区,如数组长度根据需求来定。不要直接a[100]一棍子打死。
③、合理分配变量数据类型,如计数值在0-100内的数,就没必要用 uint 了,使用 uchar 就够了。只要两个状态的标志位,用 bit 就行了,不要直接 uchar。
④、可以用逻辑运算的,就不要采用算术运算。如 a/8,可以写成 a>>3,当然 a不是浮点型数据才行。而a*2则是 a<<1;而a%4,可以写成 a&0x03;
……
……
……
2、扩大RAM
①、买个同系列高RAM区间的单片机。
②、买个同系列高RAM区间的单片机。
③、买个同系列高RAM区间的单片机。

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:298123 发表于 2021-6-17 09:30 | 显示全部楼层
3649字节,只要不是超复杂的功能,没用OS,应该足够用了。可以共享变量,如果两个功能不同时用的话。
回复

使用道具 举报

ID:81196 发表于 2021-6-17 10:56 | 显示全部楼层
什么鬼,我用51的STC8A8K,还不如你这呢,也是使用的MQTT,485,JSON,很多东西,照样够,自己在程序上想办法优化才是硬道理.会做是一样面,怎么优化地去做,是你该好好考虑的,加油.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表