程序空间问题

[复制链接]
2216|27
 楼主| wuhany 发表于 2021-4-12 20:15 | 显示全部楼层 |阅读模式
使用16F1939单片机,程序比较大,编译后占用的FLASH空间达到了96%,但没出现什么问题,把程序下载到板子上后可以正常运行。已经好几个月了。
今天在程序里加了几行程序,但立刻编译错误
dingy 发表于 2021-4-12 20:17 | 显示全部楼层
错误原因?
 楼主| wuhany 发表于 2021-4-12 20:19 | 显示全部楼层
Error   [1347] ; 0. can't find 0x166 words (0x166 withtotal) for psect "text2110" in segment "CODE" (largest unused contiguous range 0x164)
dengdc 发表于 2021-4-12 20:22 | 显示全部楼层

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| wuhany 发表于 2021-4-12 20:24 | 显示全部楼层
我加的程序很简单,如下:        if(xx<10)
                xx=0;
        else
                xx-=10;
jlyuan 发表于 2021-4-12 20:26 | 显示全部楼层

很明显,超过范围了。你优化试试、
stly 发表于 2021-4-12 20:28 | 显示全部楼层
是的,需要优化代码了
renyaq 发表于 2021-4-12 20:29 | 显示全部楼层
另外,有个插件也可解决编译后空间紧张的问题

评论

啥插件,说来听听  发表于 2021-4-22 08:10
supernan 发表于 2021-4-12 20:31 | 显示全部楼层
借问用多大晶振你,匹配电容多大
huangchui 发表于 2021-4-12 20:33 | 显示全部楼层
你好, 是什么插件。可以告知吗??
jlyuan 发表于 2021-4-12 20:38 | 显示全部楼层
编译器版本和模式都有影响
 楼主| wuhany 发表于 2021-4-12 20:40 | 显示全部楼层

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先
奔波儿熊 发表于 2021-4-21 18:09 | 显示全部楼层
看错误描述像是程序超出flash地址了。
wooda 发表于 2021-4-22 08:09 | 显示全部楼层
XX的类型是什么,byte或者2byte的,生成的代码差别好大的。
Latin_newday 发表于 2021-4-22 09:31 | 显示全部楼层
编译器优化。
或者查看下程序,删除无用的代码。
wooda 发表于 2021-4-23 09:26 | 显示全部楼层
握手楼主这样动不动用到90%以上,我也是这样。
不过我发现同样的算法,用不同的c写,出来的代码长度会有很大不同,[我老干这事了]
lz不妨研究下,会很有成就感。
systemchip 发表于 2021-4-26 09:42 | 显示全部楼层
碎片化的空余程序空间不能满足连续地址空间的大小要求就是这结果了....
AINZGOWN 发表于 2021-4-28 09:28 | 显示全部楼层
得优化代码了,把一些跳过编译器优化的语句改一下看看。
aoyi 发表于 2021-5-11 14:44 | 显示全部楼层
这个单片机多大的flash啊
drer 发表于 2021-5-11 14:49 | 显示全部楼层
外挂一个存储芯片呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

879

主题

10435

帖子

4

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