可用的2407 cmd配置文件的疑问
这个是可用的烧写时的2407 cmd配置文件,但是有几个疑问:<br />1.PAGE 0: PROG: origin = 0x0060, length 0x6000<br /> 根据手册上所说:0040 - 0043 为密码字,用户代码从44开始,<br /> 为什么这里要用60,不用44呢?<br /><br />2.stack 160是如何定义的呢?为什么是160,而不是320呢,依据是什么<br /><br /><br />-stack 160<br />-o ex.out <br />-m ex.map<br />/*Main.obj Define.obj */<br />-l rts2xx.lib<br />MEMORY<br />{<br /> PAGE 0: VECS: origin = 0x0000, length 0x040<br /> PAGE 0: PROG: origin = 0x0060, length 0x6000<br /> PAGE 1: B0 : origin = 0x200, length 0x100<br /> PAGE 1: B1 : origin = 0x300, length 0x100<br /> PAGE 1: DATA: origin = 0x0860, length 0x700<br />}<br /><br />SECTIONS<br />{<br /> .vectors : {} >VECS PAGE 0 /* 中断向量表 */<br /> .text : {} >PROG PAGE 0 /* 可执行代码和字符串 */<br /> .cinit : {} >PROG PAGE 0 <br /> .data : {} >DATA PAGE 1 /* 初始化变量和常数表 */<br /> .bss : {} >DATA PAGE 1 /* 保留全局变量和静态变量空间 */<br /> .const : {} >DATA PAGE 1 /* 字符串和switch表 */ <br /> .switch : {} >PROG PAGE 0 /* 包含.switch语句建立的表格 */<br /> .stack : {} >DATA PAGE 1 /* 为系统堆栈分配存储器 */<br /> .system : {} >DATA PAGE 1 /* 为动态存储器函数分配存储器空间 */ <br /><br />} <br />我觉得应该是习惯性问题。
PAGE 0: PROG: origin = 0x0060, length 0x6000<br />你也可以定义从0x0044开始,不过有的cmd文件中定义了外部中断向量从这里开始。<br /><br /><br />-stack 160<br />首先也要看cmd中以下定义是否足够,一般堆栈都不会定义的很大<br /><br />.stack : {} >DATA PAGE 1 /* 为系统堆栈分配存储器 */<br />像你这个定义, -stack 320 也是可以的。<br /><br />如果.stack定义为b0,b1,那么 -stack 320就会报错的,因为b0,b1只有256<br /><br /> 1. 从44h以后任何一个地址都可以2. 具体的堆栈大小看你的具体应用了,够用就行了。堆栈是需要频繁操作的,最后定位的DARAM
页:
[1]