在线时间8 小时
UID3563892
注册时间2019-5-15
NXP金币0
TA的每日心情 | 开心 2019-5-31 08:27 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]初来乍到
注册会员

- 积分
- 82
- 最后登录
- 2019-8-7
|
各位大神:
S32K144单片机,IAP从0开始,APP从0x8000开始,link文件分别配置如下:
MEMORY
{
/* Flash */
m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x00000400
m_flash_config (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010
m_text (RX) : ORIGIN = 0x00000410, LENGTH = 0x0007FBF0
/* SRAM_L */
m_data (RW) : ORIGIN = 0x1FFF8000, LENGTH = 0x00008000
/* SRAM_U */
m_data_2 (RW) : ORIGIN = 0x20000000, LENGTH = 0x00007000
}/*IAP启动文件配置*/
MEMORY
{
/* Flash */
m_interrupts (RX) : ORIGIN = 0x00008000, LENGTH = 0x00000400
m_flash_config (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010
m_text (RX) : ORIGIN = 0x00008410, LENGTH = 0x00077BF0
/* SRAM_L */
m_data (RW) : ORIGIN = 0x1FFF8000, LENGTH = 0x00008000
/* SRAM_U */
m_data_2 (RW) : ORIGIN = 0x1FFF9000, LENGTH = 0x0000E000
}/*APP启动文件配置*/
IAP程序刷好后,通过编译APP产生的BIN文件,通过串口(YMODEL)协议,用IAP进行升级,flash擦写均成功了,最后跳转的时候,死机,感觉任何程序都没有了一样。
我最后跳转的时候是直接用函数指针跳转到0x8000,在跳转前没有调用堆栈初始化,不知道堆栈初始化指令是多少,__set_MSP,不识别,提示未定义。下面是跳转代码
unsigned int JumpAddress;
typedef void (*pFunction)(void);
pFunction Jump_To_Application; //应用程序地址指针
JumpAddress = *(volatile unsigned int*)(APPLICATION_ADDRESS + 4);
Jump_To_Application = (pFunction)JumpAddress;
Jump_To_Application();
请大神们看看,为什么启动不起来??
|
|