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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1H系列
  4. MCAL环境下,32B1H固件升级加密问题

MCAL环境下,32B1H固件升级加密问题

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

    想请教一下,云途的固件升级加密方案

    方案1:驻留在ROM区的安全引导代码 + 串口/CAN + 加上位机软件,完成固件升级。

    方案2:用户自己编bootLoad代码,上电启动后跳转到主App。

    优选方案1,简单安全。

    还有固件加密问题,不同厂家方案不一样,想知道云图的解决方案。

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

      https://forum.ytmicro.com/topic/90/ytm32b1mc-安全启动demo?_=1737338340238

      yxydoctorY 1 条回复 最后回复
      0
      • xianghanX 离线
        xianghanX 离线
        xianghan YunTu
        写于 最后由 编辑
        #2

        目前YTM32B1MC03, YTM32B1HA01 支持硬件secure boot ,即ROM方案1。其余芯片在Flash里划分一部分区域做Secure boot,即方案2

        yxydoctorY 1 条回复 最后回复
        0
        • yxydoctorY 离线
          yxydoctorY 离线
          yxydoctor
          在 回复了 xianghan 最后由 编辑
          #3

          xianghan 您好,我在自己账号里面没找到关于32B1H固件升级的文档和烧录软件,这个需要单独申请么?

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

            https://forum.ytmicro.com/topic/90/ytm32b1mc-安全启动demo?_=1737338340238

            yxydoctorY 1 条回复 最后回复
            0
            • yxydoctorY 离线
              yxydoctorY 离线
              yxydoctor
              在 回复了 Diga 最后由 编辑
              #5

              Diga 您好,这篇文档拜读了,还是有疑问(32B1H+MCAL)
              问题1:似乎只涉及到安全boot和加密解密,没有涉及串口或CAN口做固件下载;
              问题2:所涉及到的HCU等模块配置,在MCAL环境下还好配置吧;

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

                流程可以是这样的,ROM 区的安全引导+用户自己的 bootloader
                MCAL 的 crypto 模块就是加密的

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

                  Diga 明白了,还是得自行编写两段代码做跳转通过YTC做加密。
                  还奇怪为什么大部分Cortex都有BOOT引脚,而32B1H没有,原来是直接放弃这种方案了

                  FrankieF 1 条回复 最后回复
                  0
                  • FrankieF 离线
                    FrankieF 离线
                    Frankie YunTu
                    在 回复了 yxydoctor 最后由 编辑
                    #8

                    yxydoctor 汽车MCU都没有吧

                    yxydoctorY 1 条回复 最后回复
                    0
                    • yxydoctorY 离线
                      yxydoctorY 离线
                      yxydoctor
                      在 回复了 Frankie 最后由 编辑
                      #9

                      Frankie 谢谢专家提醒。设定这样一种串口升级方案(32B1H+MCAL),不知是否可行
                      BOOT固件:增加一个IO用于开机模式设置。 如果一定时间内(如100ms),BOOT引脚拉低,则不跳转,通过串口接收上位机新固件,接收完毕后再跳转,否则直接跳转。

                      用户APP固件:不涉及跟串口升级有关的任何代码。

                      但不论是BOOT固件还是APP固件,都会涉及跟Linker文件有关的修改重新配置,这点是有难度的。

                      想请教一下:官方是否有这方面的例程或应用笔记,

                      1 条回复 最后回复
                      0
                      • FrankieF 离线
                        FrankieF 离线
                        Frankie YunTu
                        写于 最后由 编辑
                        #10

                        根据你们项目的实际情况,自行决定升级方案。我们提供了CAN UDS Bootloader的demo。https://yt-micro.feishu.cn/wiki/Vu7WwWjLwi8AT4kkeHxctEEYnjh?fromScene=spaceOverview

                        yxydoctorY 1 条回复 最后回复
                        0
                        • yxydoctorY 离线
                          yxydoctorY 离线
                          yxydoctor
                          在 回复了 Frankie 最后由 编辑
                          #11

                          Frankie 您给的连接只有协议文档,没有demo
                          另外,官方还能提供UDS上位机烧录软件么?

                          FrankieF 1 条回复 最后回复
                          0
                          • FrankieF 离线
                            FrankieF 离线
                            Frankie YunTu
                            在 回复了 yxydoctor 最后由 编辑
                            #12

                            yxydoctor 都有,联系一下代理商获取

                            yxydoctorY 2 条回复 最后回复
                            0
                            • yxydoctorY 离线
                              yxydoctorY 离线
                              yxydoctor
                              在 回复了 Frankie 最后由 编辑
                              #13

                              Frankie 好的好的

                              1 条回复 最后回复
                              0
                              • yxydoctorY 离线
                                yxydoctorY 离线
                                yxydoctor
                                在 回复了 Frankie 最后由 编辑
                                #14

                                Frankie 可否帮忙看看,链接文件这样理解对不对。这是YTC默认生成的MCAL链接文件。
                                假如就以默认链接做BOOT固件的化,用户APP有关链接文件的处理。

                                // 1-BVT: APP应该是不需要这段定义。
                                define exported symbol BVT_memory_start = 0x2000000;
                                define exported symbol BVT_memory_end = 33556479;
                                define region BVT = mem:[from BVT_memory_start to BVT_memory_end]; /*0x800*/
                                
                                // 2-IVT:需偏移如+0x4000
                                define exported symbol IVT_memory_start = 0x2000800;
                                define exported symbol IVT_memory_end = 33557503;
                                define region IVT = mem:[from IVT_memory_start to IVT_memory_end]; /*1024*/
                                
                                // 3-NC_TEXT:需偏移如+0x4000
                                define exported symbol NC_TEXT_memory_start = 0x2000c00;
                                define exported symbol NC_TEXT_memory_end = 33603583;
                                define region NC_TEXT = mem:[from NC_TEXT_memory_start to NC_TEXT_memory_end]; /*0xB400*/
                                
                                // 4-TEXT:需偏移如+0x4000
                                define exported symbol TEXT_memory_start = 0x200c000;
                                define exported symbol TEXT_memory_end = 35651583;
                                define region TEXT = mem:[from TEXT_memory_start to TEXT_memory_end]; /*0x1F4000*/
                                
                                // 5-dflash: 不需要偏移
                                define exported symbol FEE_memory_start = 0x6000000;
                                define exported symbol FEE_memory_end = 100925439;
                                define region FEE = mem:[from FEE_memory_start to FEE_memory_end]; /*0x40000*/
                                
                                // 6-IVT_RAM,默认占用ITCM的最后1K,不需要偏移
                                define exported symbol IVT_RAM_memory_start = 0x0;
                                define exported symbol IVT_RAM_memory_end = 1023;
                                define region IVT_RAM = mem:[from IVT_RAM_memory_start to IVT_RAM_memory_end]; /*0x400*/
                                
                                // 7-ITCM,不需要偏移
                                define exported symbol CODE_RAM_memory_start = 0x400;
                                define exported symbol CODE_RAM_memory_end = 32767;
                                define region CODE_RAM = mem:[from CODE_RAM_memory_start to CODE_RAM_memory_end]; /*0x7C00*/
                                
                                // 8-DTCM,不需要偏移
                                define exported symbol D_RAM_memory_start = 0x20000000;
                                define exported symbol D_RAM_memory_end = 536997887;
                                define region D_RAM = mem:[from D_RAM_memory_start to D_RAM_memory_end]; /*0x1F000*/
                                
                                // 7-STACK,默认占用DTCM的最后4K,不需要偏移
                                define exported symbol STACK_memory_start = 0x2001f000;
                                define exported symbol STACK_memory_end = 537001983;
                                define region STACK = mem:[from STACK_memory_start to STACK_memory_end]; /*4096*/
                                
                                // 8-NC区,默认占用OCRAML的最后64K(开的好大),不需要偏移
                                define exported symbol NC_RAM_memory_start = 0x20020000;
                                define exported symbol NC_RAM_memory_end = 537067519;
                                define region NC_RAM = mem:[from NC_RAM_memory_start to NC_RAM_memory_end]; /*0x10000*/
                                

                                因为这种方案是唯一选择,加密就在BOOT代码中做了。

                                1 条回复 最后回复
                                0
                                • ,FrankieF Frankie 将这个主题转为问答主题
                                • ,FrankieF Frankie 将这个主题标记为已解决

                              • 云途开发生态介绍

                                快速上手云途开发生态

                              • 云途论坛规则/Yuntu Forum Rules

                                发帖前请查看

                              • YT CONFIG TOOL调查问卷

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

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

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