newlined 发表于 2024-12-11 10:40:59

请教关于程序编译后在不同单片机下烧录时的大小问题

<pre><code>                        ORG                0000H       
</code></pre>
<p>BEGIN:                        AJMP        INIT<br />
ORG                0100H<br />
INIT:<br />
END</p>
<p>请看这个简单的程序。</p>

newlined 发表于 2024-12-11 10:42:04

<p>编译后时的情况:<br />
<img src="data/attachment/forum/202412/11/105152sob8a6u6aooansyg.png" alt="无标题3.png" title="无标题3.png" /></p>

newlined 发表于 2024-12-11 10:43:52

<p>在8H8K64U下读入烧录软件的情况<br />
<img src="data/attachment/forum/202412/11/104349zuoob9u1bgvgidg9.png" alt="无标题2.png" title="无标题2.png" /></p>

newlined 发表于 2024-12-11 10:44:44

<p>在32G12K128下读入烧录器的情况<br />
<img src="data/attachment/forum/202412/11/104438n7elllutplzs10zl.png" alt="无标题1.png" title="无标题1.png" /></p>

newlined 发表于 2024-12-11 10:48:23

<p>可以看出程序文件大了不少,多出的部分都是FF,假设原程序文件稍大,就会出现L121错误,请问如何避免?谢谢。</p>

bkeuqoaq 发表于 2024-12-11 11:16:13

你直接跳转100以后了,但其实中间好多没有定义指令的空白地方,自动填充FF了,这中间大部分都是中断向量,如果使用了中断,编译器会自动填充这些地方,

newlined 发表于 2024-12-11 11:37:23

bkeuqoaq 发表于 2024-12-11 11:16
你直接跳转100以后了,但其实中间好多没有定义指令的空白地方,自动填充FF了,这中间大部分都是中断向量,如果 ...

<p>FF0000到FF0100这段是中断的入口可以理解,可是这部分空间是从FE0400开始的,到FF0100的话,足有63K,都是FF。<br />
<img src="data/attachment/forum/202412/11/113716q9trytk2nl7rzlqn.png" alt="无标题4.png" title="无标题4.png" /></p>

zxcv1973 发表于 2024-12-11 11:41:23

把用户EEPROM大小设为64K

newlined 发表于 2024-12-11 11:48:46

<p><del>编辑掉了</del></p>

newlined 发表于 2024-12-11 11:50:37

zxcv1973 发表于 2024-12-11 11:41
把用户EEPROM大小设为64K

<p><img src="data/attachment/forum/202412/11/115021akfs8n3skxv20xsl.png" alt="无标题5.png" title="无标题5.png" /><br />
是设置成这样吗?</p>
页: [1] 2
查看完整版本: 请教关于程序编译后在不同单片机下烧录时的大小问题