ainet 发表于 2008-3-15 15:03

可用的2407 cmd配置文件的疑问

这个是可用的烧写时的2407&nbsp;cmd配置文件,但是有几个疑问:<br />1.PAGE&nbsp;0:&nbsp;PROG:&nbsp;origin&nbsp;=&nbsp;0x0060,&nbsp;&nbsp;length&nbsp;0x6000<br />&nbsp;根据手册上所说:0040&nbsp;-&nbsp;0043&nbsp;为密码字,用户代码从44开始,<br />&nbsp;为什么这里要用60,不用44呢?<br /><br />2.stack&nbsp;160是如何定义的呢?为什么是160,而不是320呢,依据是什么<br /><br /><br />-stack&nbsp;160<br />-o&nbsp;ex.out&nbsp;<br />-m&nbsp;ex.map<br />/*Main.obj&nbsp;Define.obj&nbsp;*/<br />-l&nbsp;rts2xx.lib<br />MEMORY<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;0:&nbsp;VECS:&nbsp;origin&nbsp;=&nbsp;0x0000,&nbsp;&nbsp;length&nbsp;0x040<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;0:&nbsp;PROG:&nbsp;origin&nbsp;=&nbsp;0x0060,&nbsp;&nbsp;length&nbsp;0x6000<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;1:&nbsp;B0&nbsp;&nbsp;:&nbsp;origin&nbsp;=&nbsp;0x200,&nbsp;&nbsp;&nbsp;length&nbsp;0x100<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;1:&nbsp;B1&nbsp;&nbsp;:&nbsp;origin&nbsp;=&nbsp;0x300,&nbsp;&nbsp;&nbsp;length&nbsp;0x100<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;1:&nbsp;DATA:&nbsp;origin&nbsp;=&nbsp;0x0860,&nbsp;&nbsp;length&nbsp;0x700<br />}<br /><br />SECTIONS<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.vectors&nbsp;&nbsp;:&nbsp;{}&nbsp;&nbsp;&gtVECS&nbsp;PAGE&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;中断向量表&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.text&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&nbsp;&gtPROG&nbsp;PAGE&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;可执行代码和字符串&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cinit&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&nbsp;&gtPROG&nbsp;PAGE&nbsp;0&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&nbsp;&gtDATA&nbsp;PAGE&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;初始化变量和常数表&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.bss&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&nbsp;&gtDATA&nbsp;PAGE&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;保留全局变量和静态变量空间&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.const&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&nbsp;&gtDATA&nbsp;PAGE&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;字符串和switch表&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.switch&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&nbsp;&gtPROG&nbsp;PAGE&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;包含.switch语句建立的表格&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.stack&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&nbsp;&gtDATA&nbsp;PAGE&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;为系统堆栈分配存储器&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.system&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&nbsp;&gtDATA&nbsp;PAGE&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;为动态存储器函数分配存储器空间&nbsp;*/&nbsp;<br /><br />}&nbsp;&nbsp;&nbsp;&nbsp;<br />

ainet 发表于 2009-5-13 09:10

我觉得应该是习惯性问题。

PAGE&nbsp;0:&nbsp;PROG:&nbsp;origin&nbsp;=&nbsp;0x0060,&nbsp;&nbsp;length&nbsp;0x6000<br />你也可以定义从0x0044开始,不过有的cmd文件中定义了外部中断向量从这里开始。<br /><br /><br />-stack&nbsp;160<br />首先也要看cmd中以下定义是否足够,一般堆栈都不会定义的很大<br /><br />.stack&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;{}&nbsp;&nbsp;&gtDATA&nbsp;PAGE&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;为系统堆栈分配存储器&nbsp;*/<br />像你这个定义,&nbsp;-stack&nbsp;320&nbsp;也是可以的。<br /><br />如果.stack定义为b0,b1,那么&nbsp;-stack&nbsp;320就会报错的,因为b0,b1只有256<br /><br />

jianghehupo 发表于 2010-1-19 22:57

1. 从44h以后任何一个地址都可以
2. 具体的堆栈大小看你的具体应用了,够用就行了。堆栈是需要频繁操作的,最后定位的DARAM
页: [1]
查看完整版本: 可用的2407 cmd配置文件的疑问