在线时间54 小时
UID3448572
注册时间2017-12-21
NXP金币0
TA的每日心情 | 开心 2018-11-23 14:51 |
---|
签到天数: 2 天 连续签到: 1 天 [LV.1]初来乍到
中级会员
 
- 积分
- 299
- 最后登录
- 2019-1-2
|
基本步骤将Bootloader程序烧写至板子,接收应用程序代码->擦、写flash->开始执行应用程序
最近搞这个搞晕了,程序总是在执行完跳转之后停在Reset_Handler,再继续就复位了,不知是什么原因,怀疑是相关地址写错,
有3个问题想请教下:
写Bootloader时,Bootloader程序对应的Linker File(.ld文件)(未做修改):
/* Flash */
m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x00000400
m_flash_config (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010
m_text (RX) : ORIGIN = 0x00000410, LENGTH = 0x0007FBF0
1.编写应用程序时,应用程序对应的Linker File(.ld文件)是否改为如下(A:可以改动如下,B:不修改,同上):
/* Flash */
m_interrupts (RX) : ORIGIN = 0x00006000, LENGTH = 0x00000400
m_flash_config (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010
m_text (RX) : ORIGIN = 0x00006400, LENGTH = 0x00079C00
2.串口将应用程序代码数据流发送,Bootloader程序接收,擦、写Flash,假设从0x7000开始写入,
最后在跳转前设置中断重定向寄存器:
FSL_SCB->VTOR = (uint32_t)0x_ _ _ _,针对Linker File(.ld文件)和写入位置,这里的地址应该填多少
3.最后跳转__asm__("b 0x_ _ _ _");
跳转地址应该是多少呢,假设应用程序(00001188 <main>:;0000046c <Reset_Handler>:;)
最佳答案
编写bootloader的时候,其实思想差不多。
回答你的几个问题:
1.编写应用程序时,应用程序对应的Linker File(.ld文件)是否改为如下(A:可以改动如下,B:不修改,同上):
/* Flash */
m_interrupts &n ...
|
|