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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. OTA 升级 bootload 跳转后(在APP做地址偏移)APP启动异常

OTA 升级 bootload 跳转后(在APP做地址偏移)APP启动异常

已定时 已固定 已锁定 已移动 YTM32B1M系列
19 帖子 6 发布者 1.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • RyanGR 离线
    RyanGR 离线
    RyanG
    写于 最后由 编辑
    #1

    1、问题:
    8cd613af-f399-40db-af3e-cb19baa96ca7-61120d41fcb69a4633ea860186e84c5.png

    使用 YTM32B1MC03 SDK 1_3_1
    我创建一个bootload工程,并集成了OTA升级功能,在升级完成后执行跳转APP操作,但APP无法正常启动,单步调试APP发现程序卡在了SPI Master初始化里不出来了

    2、配置如下:
    boot:
    144423cd-d5d1-4b86-acb4-c3da6c24225d-6299e211d1c76e033e19a1985fc438e0_.png
    06cadc11-2895-491d-af64-2a7f00a728fa-269d6a21873411c782f732b49a0207b0_.png

    3、补充:
    A、屏蔽掉无法初始化的外设,启动定时器,启动RTOS task,分别在两个位置操作IO翻转,示波器观察到,bootload升级完APP 跳转至APP后,IO一直在翻转,可以确定升级跳转都没问题。

    B、在APP做地址偏移之前 程序所有功能都能正常执行。

    C、另外,在修改APP的偏移地址后,编译出现下面图片中的信息
    f9003ffb-6934-4cf6-8efb-247dc5812334-image.png

    1 条回复 最后回复
    0
    • DigaD 离线
      DigaD 离线
      Diga
      写于 最后由 编辑
      #2

      具体卡死在哪一步

      RyanGR 1 条回复 最后回复
      0
      • RyanGR 离线
        RyanGR 离线
        RyanG
        在 回复了 Diga 最后由 编辑
        #3

        Diga 你好,串口、SPI master 、SPI slave 都起不来
        RTOS TIMER IO 都正常,
        其中SPI master 卡死在这部分了:
        7c593364-e4d9-4b28-9e7b-967b4e1b0605-image.png

        1 条回复 最后回复
        0
        • DigaD 离线
          DigaD 离线
          Diga
          写于 最后由 编辑
          #4

          我看了这个函数,应该没有卡死的可能性。
          是不是 boot 里有产生过 SPI 的中断,但没有处理

          RyanGR 1 条回复 最后回复
          0
          • ws420115W 离线
            ws420115W 离线
            ws420115
            写于 最后由 编辑
            #5

            BOOT 里面只有串口和flash,并且在跳转前都卸载了并禁用了中断

            1 条回复 最后回复
            0
            • RyanGR 离线
              RyanGR 离线
              RyanG
              在 回复了 Diga 最后由 编辑
              #6

              Diga 请参考ws420115的消息,这是客户的技术工程师。感谢Diga。

              1 条回复 最后回复
              0
              • ws420115W 离线
                ws420115W 离线
                ws420115
                写于 最后由 编辑
                #7

                d1932543131f11035c778a8c0638fdc.png
                图片是我手动修改.SCF文件的截图,只有头两处地方改了,且只改了这个文件,是否是我哪里没改全?

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

                  这个可能得配合具体工程才好分析,建议先联系 FAE 咨询一下

                  ws420115W 1 条回复 最后回复
                  0
                  • ws420115W 离线
                    ws420115W 离线
                    ws420115
                    在 回复了 Diga 最后由 编辑
                    #9

                    Diga 问题解决了,就是.scf文件修改不全,因为不知道YCT工具里link选项不知道怎么修改地址,最后手动修改.scf文件,没改全造成的跳转成功但是运行异常

                    1 条回复 最后回复
                    0
                    • zhaodong1Z 离线
                      zhaodong1Z 离线
                      zhaodong1
                      编写于 最后由 编辑
                      #10

                      您好,我在使用YTM32MB105的BT的demo工程时,可以正常刷写和跳转APP,跳转后运行正常,,,我在我新的BT工程里现在可以正常刷写app工程,但是刷写完的BT执行跳转APP函数会进入故障,app也没有正常运行,这个跳转函数执行有什么依赖前置项吗

                      quanfengQ 1 条回复 最后回复
                      0
                      • quanfengQ 离线
                        quanfengQ 离线
                        quanfeng YunTu
                        回复了zhaodong1 最后由 编辑
                        #11

                        zhaodong1 跳转前要反初始化 Boot 里使用到的外设,同时关闭所有中断。可以在 APP main 开头加上 while(1) 卡住,定位是跳转 APP 成功,但 APP 代码运行失败,还是跳转 APP 失败。

                        1 条回复 最后回复
                        0
                        • zhaodong1Z 离线
                          zhaodong1Z 离线
                          zhaodong1
                          编写于 最后由 编辑
                          #12

                          1、我已经通过你们提供的BT的demo工程验证APP程序运行没有问题,可以正常跳转运行2、我已经将所有的外设反初始化,并且下图所示哪一行调用会报错,我在demo里测试了这一行屏蔽不会影响跳转,跳转函数执行前除了外设初始化还需要有哪些操作吗
                          image.png

                          quanfengQ zhaodong1Z 2 条回复 最后回复
                          0
                          • quanfengQ 离线
                            quanfengQ 离线
                            quanfeng YunTu
                            回复了zhaodong1 最后由 编辑
                            #13

                            zhaodong1 SCB->VTOR = APP_IMAGE_START; 这个传的是 APP 起始地址呀,这个就是跳转的目标地址呀,这个注释后怎么确认不影响跳转的了

                            1 条回复 最后回复
                            0
                            • zhaodong1Z 离线
                              zhaodong1Z 离线
                              zhaodong1
                              编写于 最后由 编辑
                              #14

                              我用你们提供的demo工程,屏蔽掉这里后也可以正常跳转,只要传入的appentry是app的启动地址就能跳转过去,,我自己的BT工程现在执行这一行会报错,我不清楚是什么原因导致的

                              quanfengQ 1 条回复 最后回复
                              0
                              • quanfengQ 离线
                                quanfengQ 离线
                                quanfeng YunTu
                                回复了zhaodong1 最后由 编辑
                                #15

                                zhaodong1 方便截图或者直接发一下你 APP 工程的 YCT 配置文件吗 c101def2-8e30-415e-9a71-73f0fe641fc4-image.png

                                1 条回复 最后回复
                                0
                                • zhaodong1Z 离线
                                  zhaodong1Z 离线
                                  zhaodong1
                                  编写于 最后由 编辑
                                  #16

                                  image.pnglink文件我用的默认配置,生成后手动修改的

                                  zhaodong1Z 1 条回复 最后回复
                                  0
                                  • zhaodong1Z 离线
                                    zhaodong1Z 离线
                                    zhaodong1
                                    回复了zhaodong1 最后由 编辑
                                    #17

                                    zhaodong1 The target stopped in MemManage exception state.

                                    Reason: Unknown at 0x0001235E.

                                    For more information about analyzing faults on Cortex-M, refer to:
                                    https://wiki.segger.com/Cortex-M_Fault.我执行跳转后报错是这样的,,现在看起来能跳转到APP,但是APP不能正常运行,,,同样的APP 工程我用你们的demo跳转后是可以正常运行的0eb3249f-462e-4612-98c6-ca1ccc3932e4-image.png

                                    1 条回复 最后回复
                                    0
                                    • zhaodong1Z 离线
                                      zhaodong1Z 离线
                                      zhaodong1
                                      回复了zhaodong1 最后由 编辑
                                      #18

                                      我的APP单独运行,或者用你们的BTdemo都可以正常运行,我感觉核心原因还是我的BT这一行无法正常通过导致的,我想知道这一行和什么有关,需要做哪些配置才能正常使用19caac7a-f23c-4028-b174-9a8c5efe0dff-image.png

                                      yishui66Y 1 条回复 最后回复
                                      0
                                      • yishui66Y 离线
                                        yishui66Y 离线
                                        yishui66
                                        回复了zhaodong1 最后由 yishui66 编辑
                                        #19

                                        背景: 在Cortex-M33中,用户模式(非特权模式)无法直接操作多数SCB寄存器。非特权访问尝试将触发故障(如MemManage故障或HardFault)。只有特权代码(如操作系统内核或异常处理程序)才能安全地配置这些寄存器。

                                        **分析:**SCB->VTOR赋值属于内核操作,故需要使用特权模式。且YTMEVB_Demo_RevC 这个demo是启用了非特权模式的

                                        方法一: 修改YCT工程配置并重新生成工程
                                        ①YCT工具配置删除以下宏
                                        9adbec80-997d-472c-a1c5-d87f56fa09c4-0c96960d-76ed-4a57-8329-6b9d20ef7e26.png

                                        ②确认所有外设均取消勾选EnableUserModeSupport
                                        948970a8-c564-4f9f-b233-ec430b994889-57bda4e2-4527-4f5b-9ba2-2f09d9b0a9ba.png

                                        方法二: 在代码中直接增加进入特权模式,无需修改YCT配置
                                        69cbb451-1ca9-4af1-9298-ba595f90785b-2e2cf0070fad973803cb915adb976ba9.png

                                        1 条回复 最后回复
                                        0

                                      • 云途开发生态介绍

                                        快速上手云途开发生态

                                      • 云途论坛规则/Yuntu Forum Rules

                                        发帖前请查看

                                      • YT CONFIG TOOL调查问卷

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

                                      • can
                                        23
                                        demo
                                        20
                                        uds
                                        13
                                        lin stack
                                        12
                                        md14
                                        6
                                        fbl
                                        5
                                        yt-link
                                        5
                                        adc模块
                                        4
                                        Online Users
                                        XinLongQiuX
                                        XinLongQiu
                                        Tiger987T
                                        Tiger987
                                        jiankang_wangJ
                                        jiankang_wang
                                        pengszP
                                        pengsz
                                        • 登录

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