虽然说是烧写到指定位置,但是rom开始的地方存储中断向量表所以是不能动的(也许可以,但是需要修改启动文件等等一系列内部构造,不建议初学者更改),所以下面的方法是占用ROM开始的极少部分空间和从rom中间开始往后的空间,ROM中间的部分为空。
以MDK为例子:
①修改编译器:(0x10000为64K,即从64K的地方存储程序,size请根据自己的芯片rom减去0x10000)
②修改中断向量表: SCB->VTOR = FLASH_BASE | 0x10000(在main函数最开始处,)
如果还是不行的话,请看下面文档55章的串口IAP,选择里面有用的部分即可。
http://wenku.baidu.com/link?url=VRhgvWYTOIRDiD0ZgDAsoLsTcK-N7JIG-0HRLzHcUzyRAYeeMlP7uUKVkseUGG9Bd0vn4FRwRfv44Hv9gCA-myF0vTzM9PxIza6V19gSfie
对于汇编语言源程序,用ORG伪指令指定各程序段入口地址,例如:ORG 100H
PRG1:
……
ORG 200H
PRG2:
……
ORG 300H
PRG3:
……
汇编源程序用编译软件生成目标程序,
录烧软件会自动将目标程序的各程序段写入相应各个区域。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)