[STM32] 程序的size大于iram的怎么解决呢?

[复制链接]
 楼主| ling1874 发表于 2016-12-12 15:26 | 显示全部楼层 |阅读模式
硬件条件是这样的:   1M flash , iram 128k
每次编译binary程序都会说iram overflow了多少多少, 那么我想问最终的binary size不是只要小于1M不就可以了吗?
iram是运行时态时候所需要的资源吧?怎么大的binary 在小的iram上运行下去呢?
ccxlslr 发表于 2016-12-12 15:30 | 显示全部楼层
优化程序,计算机不是也要内存大的吗,硬盘再大也解决不了,内存小的问题!
 楼主| ling1874 发表于 2016-12-12 15:39 | 显示全部楼层
ccxlslr 发表于 2016-12-12 15:30
优化程序,计算机不是也要内存大的吗,硬盘再大也解决不了,内存小的问题! ...

有没有别的办法呢.比如说固话library到flash某个地址?
ccxlslr 发表于 2016-12-12 17:28 | 显示全部楼层
你是新手,还是老手啊?你是不懂单片机呢。还是说你是高手,你想像计算机一样把程序,把程序加载到IRAM里运行。

一般来说程序是静态的,也就是程序都在FLASH里执行,常量也在FLASH里面,动态变量在IRAM里。
Ketose 发表于 2016-12-12 17:30 | 显示全部楼层
是不是使用了大的数组了?
菜狗 发表于 2016-12-13 08:57 | 显示全部楼层
减小变量的数目,能用位变量就不要用char,能用char就不要用int。对读写速度要求不严格的变量加idata或xdata修饰,或者target配置下memory model选large

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
lyncxy119 发表于 2016-12-13 09:32 | 显示全部楼层
使用分散加载
 楼主| ling1874 发表于 2016-12-13 19:19 | 显示全部楼层
菜狗 发表于 2016-12-13 08:57
减小变量的数目,能用位变量就不要用char,能用char就不要用int。对读写速度要求不严格的变量加idata或xdat ...

多谢  之前一直用的cygwin下的arm-gcc  昨天换成了keil ,size直接缩减了一半  惊呆了
 楼主| ling1874 发表于 2016-12-13 19:22 | 显示全部楼层
ccxlslr 发表于 2016-12-12 17:28
你是新手,还是老手啊?你是不懂单片机呢。还是说你是高手,你想像计算机一样把程序,把程序加载到IRAM里运 ...

之前弄过固化一个固件在flash 然后指针调用这样子 但是超级不友好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

40

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部