在线时间43 小时
UID3073633
注册时间2014-12-15
NXP金币0
TA的每日心情 | 开心 2018-6-4 15:15 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]初来乍到
中级会员
 
- 积分
- 252
- 最后登录
- 2022-4-6
|
本帖最后由 小小浮云 于 2019-5-22 21:30 编辑
上一个帖子的问题又发生了,换个思路,APP擦掉了地址0的扇区,但是现在出问题的程序是在boot里加了更改FTMRE_FPROT寄存器以保护前16K的。以下是LD文件配置。
boot ld文件配置部分
m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x00000100
m_flash_config (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010
m_text (RX) : ORIGIN = 0x00000410, LENGTH = 0x00020000-0x410
m_data (RW) : ORIGIN = 0x1FFFF000, LENGTH = 0x00004000
boot ld的m_text虽然配置的很大,但是实际只用到前16K。
APP ld文件配置部分
m_interrupts (RX) : ORIGIN = 0x00004000, LENGTH = 0x00000100
m_flash_config (RX) : ORIGIN = 0x00004400, LENGTH = 0x00000010
m_text (RX) : ORIGIN = 0x00004800, LENGTH = 0x00018800
m_calrom (RX) : ORIGIN = 0x0001D000, LENGTH = 0x00000800
m_appconrom (RX) : ORIGIN = 0x0001D800, LENGTH = 0x00000200
m_data (RW) : ORIGIN = 0x1FFFF000, LENGTH = 0x00004000 - 0x00000c00
m_calram (RW) : ORIGIN = 0x20002400, LENGTH = 0x00000800
我在BOOTloader程序中配置了保护前16K。bootloader程序初始化时,配置了FTMRE_FPROT寄存器保护前16K区域,跳转到APP,APP里还需要再次配置FTMRE_FPROT吗?最近发现BOOT和APP的启动文件startup_SKEAZ1284.S中都有/* Flash Configuration */
.section .FlashConfig, "a"
.long 0xFFFFFFFF
.long 0xFFFFFFFF
.long 0xFFFFFFFF
.long 0xFFFEFFFF
是不是APP的启动文件又更改了配置字段,下次复位时以这个为主,因为目前APP里没有再次配FTMRE_FPROT寄存器?这里可以直接修改吗?
或者还有没有什么办法可以更好的配置flash保护关键字以下是在bootloader程序中初始化时使用的保护配置:
FTMRE_FPROT |=FTMRE_FPROT_FPOPEN_MASK;
FTMRE_FPROT &= (~FTMRE_FPROT_FPHDIS_MASK);
FTMRE_FPROT |= FTMRE_FPROT_FPLDIS_MASK;
FTMRE_FPROT |= FTMRE_FPROT_FPLS_MASK
最佳答案
小小浮云 发表于 2019-5-23 11:27
APP中通过CAN将保护字部分发出来发现还是FF,现在不能通过JLINK烧写程序了,还有其他补救措施吗?APP里直接 ...
FTMRE_FPROT寄存器是只读,无法在代码对它进行修改,换句话说,跳转 ...
|
|