跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Blogs
  3. 如何解决Flash被保护后的程序下载问题

如何解决Flash被保护后的程序下载问题

已定时 已固定 已锁定 已移动 Blogs
16 帖子 3 发布者 3.7k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • BJXB 离线
    BJXB 离线
    BJX
    写于 最后由 编辑
    #2

    你好 有没有B1HA01的示例

    1 条回复 最后回复
    0
    • houjun_xiaoH 离线
      houjun_xiaoH 离线
      houjun_xiao YunTu
      写于 最后由 编辑
      #3

      目前没有专门针对每款芯片做示例,操作的方式是原理都是一样的,可以直接参考这个示例做。

      BJXB 1 条回复 最后回复
      0
      • BJXB 离线
        BJXB 离线
        BJX
        在 回复了 houjun_xiao 最后由 编辑
        #4

        houjun_xiao 请问,打开这个工程报如下错误怎么解决
        19a8f720-1e7d-4a3d-b008-ad64a9ec1322-QQ_1763602634173.png

        1 条回复 最后回复
        0
        • houjun_xiaoH 离线
          houjun_xiaoH 离线
          houjun_xiao YunTu
          写于 最后由 编辑
          #5

          Erase_CUSNVR.zip你试一试,这个是基于SDK 1.4.0的

          BJXB 1 条回复 最后回复
          0
          • BJXB 离线
            BJXB 离线
            BJX
            在 回复了 houjun_xiao 最后由 编辑
            #6

            houjun_xiao 好的,可以打开了,但HA01的 EFM_Type 没有 NVR_ADDR ,
            代码里的 EFM->NVR_ADDR = 0x10000400U; 要怎么替换
            3bb39ebe-a3ed-40cb-9794-1f0b87b62ab3-QQ_1763604478637.png

            1 条回复 最后回复
            0
            • houjun_xiaoH 离线
              houjun_xiaoH 离线
              houjun_xiao YunTu
              写于 最后由 编辑
              #7

              直接对目的地址赋值即可,例如*((uint32_t *))0x10000400)=0;
              需要注意HA0的FLASH存在WE控制位,在赋值前先将CTRL寄存器中的WE位置1
              image.png

              1 条回复 最后回复
              0
              • OliverChenO 离线
                OliverChenO 离线
                OliverChen
                编写于 最后由 编辑
                #8

                按照示例在RAM中调用接口对CUS_NVR擦除成功后,还是没办法对芯片擦写,JLink提示擦除失败。

                image.png
                ff7dd09f-376c-4e66-91de-be20a3d30c94-image.png
                有什么其他需要注意的地方吗?

                1 条回复 最后回复
                0
                • houjun_xiaoH 离线
                  houjun_xiaoH 离线
                  houjun_xiao YunTu
                  编写于 最后由 编辑
                  #9

                  擦除NVR中的protect配置数据后,需要Reset MCU才能生效。

                  OliverChenO 1 条回复 最后回复
                  0
                  • OliverChenO 离线
                    OliverChenO 离线
                    OliverChen
                    回复了houjun_xiao 最后由 编辑
                    #10

                    houjun_xiao 有个问题就是,软件上电之后会执行写保护的动作,就算之后在RAM中擦除了NVR,复位之后是不是也会被重新写保护?

                    1 条回复 最后回复
                    0
                    • houjun_xiaoH 离线
                      houjun_xiaoH 离线
                      houjun_xiao YunTu
                      编写于 最后由 编辑
                      #11

                      擦除NVR后,Protect的配置数据就被清除了,所以Reset之后不会再有写保护,升级完程序后,如果想恢复写保护,就需要重写NVR。

                      OliverChenO 1 条回复 最后回复
                      0
                      • OliverChenO 离线
                        OliverChenO 离线
                        OliverChen
                        回复了houjun_xiao 最后由 编辑
                        #12

                        houjun_xiao Project是指CUS_NVR的配置,还是用户代码的配置?

                        1 条回复 最后回复
                        0
                        • houjun_xiaoH 离线
                          houjun_xiaoH 离线
                          houjun_xiao YunTu
                          编写于 最后由 houjun_xiao 编辑
                          #13

                          EFM写保护功能可以通过两种方式配置:1.通过CUS_NVR中合法的值在MCU初始化阶段即完成写保护写保护寄存器设置,2.若CUS_NVR中无合法的值,则可通过代码设置EFM写保护寄存器,从而配置写保护功能。需要注意,这个寄存器在代码中只能由1改写为0,不能由0改写为1, 该寄存器中某位的值为0时,该为位对应的区域被写保护。
                          image.png

                          OliverChenO 1 条回复 最后回复
                          0
                          • OliverChenO 离线
                            OliverChenO 离线
                            OliverChen
                            回复了houjun_xiao 最后由 编辑
                            #14

                            houjun_xiao 对使用的方法没有疑问,有疑问的点是如何解除写保护,比如我在初始化时候 EFM->ADDR_PROT[0] = 0;
                            EFM->ADDR_PROT[1] = 0; EFM->ADDR_PROT[2] = 0;即写保护了全部Flash地址,这个时候没办法重新用JLink烧写软件了,使用示例的代码生成的Hex用JLink下载到RAM,然后在RAM去擦除CUS_NVR,这个时候擦除的只是NVR的数据吧,那么复位之后,初始化的时候是不是还是会重新写保护?

                            1 条回复 最后回复
                            0
                            • houjun_xiaoH 离线
                              houjun_xiaoH 离线
                              houjun_xiao YunTu
                              编写于 最后由 编辑
                              #15

                              如果你时代码设置的写保护,擦除CUS_NVR是没有用的。这种情况你如果想通过JLink下载程序,只能Attach到MCU,然后Reset,然后在执行EFM->ADDR_PROT[0] = 0;
                              EFM->ADDR_PROT[1] = 0; EFM->ADDR_PROT[2] = 0前打断点,此时可以下载。

                              OliverChenO 1 条回复 最后回复
                              0
                              • OliverChenO 离线
                                OliverChenO 离线
                                OliverChen
                                回复了houjun_xiao 最后由 编辑
                                #16

                                houjun_xiao 好的,了解了多谢

                                1 条回复 最后回复
                                0

                              • 云途开发生态介绍

                                快速上手云途开发生态

                              • 云途论坛规则/Yuntu Forum Rules

                                发帖前请查看

                              • YT CONFIG TOOL调查问卷

                                帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

                              • can
                                25
                                demo
                                22
                                lin stack
                                13
                                uds
                                13
                                md14
                                6
                                yt-link
                                6
                                fbl
                                5
                                adc模块
                                4
                                Online Users
                                • 登录

                                • 登录或注册以进行搜索。
                                • 第一个帖子
                                  最后一个帖子
                                0
                                • 版块
                                • 最新
                                • 标签
                                • 热门