在线时间29 小时
UID3128013
注册时间2015-5-16
NXP金币0
该用户从未签到
注册会员

- 积分
- 138
- 最后登录
- 2018-11-29
|
用官方demo中的两个LED工程分别充当BOOT和APP,
红色蓝色交替闪亮的作为boot,红色绿色闪亮的作为APP,
计划, APP偏移22K,
然后,我在boot中的跳转代码为:
typedef void ( *JumpLocation )(void);
。。。。。。。
JumpLocation funJump;
delay 10s;
。。。。。。。
//偏移22K, 0x5800
funJump = ( JumpLocation )(0x5800+4);
__set_MSP(0x5800+4);
funJump();
然后,APP中修改ICF文件,
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x5800; //0; //0x5800; //offset=22k; //0x0;
define symbol __ICFEDIT_region_ROM_end__ = 0x0001ffff;//__ICFEDIT_region_ROM_start__ + ((128-22)*1024);//(128*1024); //((128-22)*1024); //********
define symbol __ICFEDIT_region_RAM_end__ = 0x20000000;
define symbol __ICFEDIT_region_RAM_start__ = __ICFEDIT_region_RAM_end__ - (16*1024)/4 + 0x410; //********
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x5800;//__ICFEDIT_region_ROM_start__;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = (1*1024); //********
define symbol __ICFEDIT_size_heap__ = (2*1024); //********
/**** End of ICF editor section. ###ICF###*/
define symbol __region_RAM2_start__ = 0x20000000;
define symbol __region_RAM2_end__ = __region_RAM2_start__ + ((16*1024)*3)/4;//********
define exported symbol __VECTOR_TABLE = 0x00005800;//0x00000000;
define exported symbol __VECTOR_RAM = 0x00005800;//0x00000000;//__ICFEDIT_region_RAM_start__ - 0x410;
define exported symbol __BOOT_STACK_ADDRESS = __region_RAM2_end__ - 8;
define symbol __code_start__ = 0x00000410+__ICFEDIT_region_ROM_start__;//********
。。。。。。。。。。
然后两边都出Bin,按照22K偏移,拼成一个bin,JLINK烧下去,
运行结果,,只有boot在跑,10秒后,似乎有一个跳转动作,但最终还是红蓝闪亮,没出现期望中的红绿闪亮。
|
|