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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1H系列
  4. YTM32B1HA01 UDS OTA (A/B SWAP) Demo

YTM32B1HA01 UDS OTA (A/B SWAP) Demo

已定时 已固定 已锁定 已移动 YTM32B1H系列
demo
24 帖子 4 发布者 778 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • DigaD 离线
    DigaD 离线
    Diga
    写于 最后由 编辑
    #5

    404 是网络有问题吧

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

      Diga 67f3d55c-d8bd-494a-82b6-83b3cef99060-image.png 你好 我的网应该是没问题,请帮忙解决一下,需要查看这个工程

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

        Diga 或者能不能提供一下 a b这两个工程的yt-link 的配置图

        1 条回复 最后回复
        0
        • zyqZ 离线
          zyqZ 离线
          zyq YunTu
          写于 最后由 编辑
          #8

          请参考下面的工程:

          以下是一个基于YTM32B1HA01 使用UDS升级的硬件swap OTA示例工程:
          uds_ota_demo.zip

          工程目录

          590ca57a-8d94-4d73-80f2-dbf51db86c43-image.png
          其中:

          • APP A面(uds_can_ota_app_a)代码是一个打印信息功能的工程
          • APP B面(uds_can_ota_app_b)代码是一个基于FreeRtos操作系统的工程
          • 上位机uds_pc_tool_write_a工程用来下载uds_can_ota_app_a代码
          • 上位机uds_pc_tool_write_b工程用来下载uds_can_ota_app_b代码

          使用步骤:

          1. 编译uds_can_ota_app_a或uds_can_ota_app_b APP工程代码
          2. 将编译好的代码下载YTM32B1HA01-EVB评估版
          3. 使用Type-C线连接EVB板和PC,并通过串口工具打开COM口,设置波特率为115200,可以看到打印的信息。
            若下载的代码为uds_can_ota_app_a,打印的信息为“Hello! APP A is running! Countx”;
            若下载的代码为uds_can_ota_app_b,打印的信息为“Hello! APP B Freertos demo is running! Countx”;
          4. 使用USB-CAN设备连接PC和板子的CAN0通道。
          5. 使用YCT打开uds上位机工程uds_pc_tool_write_a或uds_pc_tool_write_b
            33b3f445-fc31-4030-8701-917c3729a396-image.png
          6. 编译上位机工程脚本,如图
            dc9f2622-adab-4f33-9a46-e7019483e05f-image.png
          7. 运行OTA流程
            eb97b9ec-1659-4573-b7af-82b5b48be287-image.png
          8. 运行完毕手动复位即可跳转至更新的APP代码,可通过串口打印信息查看是否升级成功。

          OTA 更新流程

          1. 切换至扩展会话模式。(10 03)
          2. 切换至编程会话模式。(10 02)
          3. 请求安全访问种子以进行身份验证。(27 01)
          4. 发送密钥以通过安全验证。(27 02)
          5. 将Flash驱动程序加载到RAM中。(34、36、37)
          6. 对Flash驱动程序进行CRC校验,确保其完整性。(31 01 F0 00)
          7. 通知MCU Flash Driver已下载完成。(31 01 F0 01)
          8. 清除目标Flash区域(PFLASH1)的现有数据。(31 01 FF 00)
          9. 将新固件文件写入PFLASH1区域。(34、36、37)
          10. CRC校验写入的固件文件,确保数据完整。(31 01 F0 00)
          11. 触发Boot Swap操作,切换至新固件。(31 01 F0 02)
          12. 清除RAM中的Flash驱动程序,释放资源。(31 01 F0 03)

          其他具体信息也可查看ReadMe、工程配置、工程描述等信息。

          示例演示视频

          YTM32B1HA0_UDS_OTA_DEMO_演示视频.mp4

          BJXB 1 条回复 最后回复
          1
          • BJXB 离线
            BJXB 离线
            BJX
            在 回复了 zyq 最后由 编辑
            #9

            zyq 请问有没有哪个寄存器可以判断进行swap OTA后当前处于哪个Bank,没在手册上找到啊

            zyqZ BJXB 2 条回复 最后回复
            0
            • zyqZ 离线
              zyqZ 离线
              zyq YunTu
              在 回复了 BJX 最后由 编辑
              #10

              BJX 6e5cabeb-a241-46de-9392-0498fdf7e145-image.png

              BJXB 1 条回复 最后回复
              0
              • BJXB 离线
                BJXB 离线
                BJX
                在 回复了 BJX 最后由 编辑
                #11
                此主題已被删除!
                1 条回复 最后回复
                0
                • BJXB 离线
                  BJXB 离线
                  BJX
                  在 回复了 zyq 最后由 编辑
                  #12

                  zyq 31c21f48-96c2-464d-8728-061edace87a6-image.png
                  983b19a7-cb37-4912-800b-bbb58ad179b6-image.png
                  e6b21089-a713-488a-9501-0ab24b23b28a-image.png
                  跳转前我在AB区都读了,为什么返回都是0

                  zyqZ 1 条回复 最后回复
                  0
                  • zyqZ 离线
                    zyqZ 离线
                    zyq YunTu
                    在 回复了 BJX 最后由 编辑
                    #13

                    BJX SWAP后BOOT_INFO为1

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

                      zyq 8b58b8f3-c720-40cd-b1f2-3461fbd17020-image.png
                      SWAP后读取还是为0,求解

                      zyqZ 1 条回复 最后回复
                      0
                      • zyqZ 离线
                        zyqZ 离线
                        zyq YunTu
                        在 回复了 BJX 最后由 编辑
                        #15

                        BJX 你说的SWAP成功是指BOOT SWAP command成功吗,在复位跳转后读

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

                          zyq FLASH_DRV_BootSwap(0) 是这个函数执行成功,在复位前和复位后都读过,都是0

                          zyqZ 1 条回复 最后回复
                          0
                          • zyqZ 离线
                            zyqZ 离线
                            zyq YunTu
                            在 回复了 BJX 最后由 编辑
                            #17

                            BJX 复位后成功跳到B面了吗

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

                              zyq 成功跳到B面了

                              zyqZ 1 条回复 最后回复
                              0
                              • zyqZ 离线
                                zyqZ 离线
                                zyq YunTu
                                在 回复了 BJX 最后由 编辑
                                #19

                                BJX 直接调试看下寄存器状态

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

                                  zyq ea3dd0a8-2275-424a-80be-1bafbbcd00cd-image.png
                                  这里一直都是灰色的0,没有变化

                                  1 条回复 最后回复
                                  0
                                  • zyqZ 离线
                                    zyqZ 离线
                                    zyq YunTu
                                    写于 最后由 编辑
                                    #21

                                    基于我前面发的demo加了BOOT_INFO的打印,运行正常。
                                    具体改动如下:
                                    app_a
                                    90731f69-cd02-4810-87e7-d39b79552f34-image.png
                                    app_b
                                    61202301-7c1b-4005-b440-68d7bf437360-image.png

                                    串口打印结果:

                                    0fbb228e-df15-442e-b2c0-a56e9db830dc-image.png

                                    调试:
                                    1214a0da-7796-404e-9a9c-f171c8697c81-image.png
                                    d23fe9d1-1e45-4d0d-9812-1027e67f90e4-image.png

                                    BJXB 2 条回复 最后回复
                                    0
                                    • BJXB 离线
                                      BJXB 离线
                                      BJX
                                      在 回复了 zyq 最后由 编辑
                                      #22

                                      zyq 感谢,现在能读出来了,还是有点疑惑,昨天我是通过rtt接收字符来判断是读取 BOOT_INFO 状态,还是进行swap跳转,还是复位,到今天上午测试读出来一直为0。然后 我就参照你的方法 在一个任务里每隔1s读取一次 打印,这时就正常了。然后,擦除全片flash 换回昨天的工程,也正常了.......

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

                                        zyq 有个问题想请教下,我往pflash0写入固件a,pflash1写入固件b,在固件a里面进行swap跳转且跳转成功后,擦除pflash0里面的固件a,然后设备再次复位后会直接运行pflash1里面的固件b吗

                                        zyqZ 1 条回复 最后回复
                                        0
                                        • zyqZ 离线
                                          zyqZ 离线
                                          zyq YunTu
                                          在 回复了 BJX 最后由 编辑
                                          #24

                                          BJX 在pflash1/固件b里面没进行SWAP操作,那么复位后还运行pflash1

                                          1 条回复 最后回复
                                          0

                                        • 云途论坛规则/Yuntu Forum Rules

                                          发帖前请查看

                                        • YCT离线License申请流程

                                          帮助没办法联网的电脑使用YCT

                                        • YT CONFIG TOOL调查问卷

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

                                        • demo
                                          12
                                          can
                                          8
                                          lin stack
                                          6
                                          yt-link
                                          5
                                          vscode
                                          3
                                          adc模块
                                          2
                                          i2c
                                          2
                                          uuid
                                          2
                                          Online Users
                                          qerguQ
                                          qergu
                                          李芷姗李
                                          李芷姗
                                          • 登录

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