查看: 2828|回复: 2

[求助] 关于KEAZFLASH保护问题

[复制链接]
  • TA的每日心情
    开心
    2018-6-4 15:15
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    20

    主题

    36

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    252
    最后登录
    2022-4-6
    发表于 2019-5-22 21:23:22 | 显示全部楼层 |阅读模式
    本帖最后由 小小浮云 于 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寄存器是只读,无法在代码对它进行修改,换句话说,跳转 ...
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-6-4 15:15
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    20

    主题

    36

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    252
    最后登录
    2022-4-6
     楼主| 发表于 2019-5-23 11:27:09 | 显示全部楼层
    APP中通过CAN将保护字部分发出来发现还是FF,现在不能通过JLINK烧写程序了,还有其他补救措施吗?APP里直接配置FTMRE_FPROT没用了
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25450
    最后登录
    2025-9-4
    发表于 2019-5-24 15:25:58 | 显示全部楼层
    小小浮云 发表于 2019-5-23 11:27
    APP中通过CAN将保护字部分发出来发现还是FF,现在不能通过JLINK烧写程序了,还有其他补救措施吗?APP里直接 ...

    FTMRE_FPROT寄存器是只读,无法在代码对它进行修改,换句话说,跳转到APP不会改变FTMRE_FPROT寄存器的值,即使在其启动文件中设置了Flash Configuration区域。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-6 23:00 , Processed in 0.097467 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表