当前位置: 首页 > news >正文

TC3xx学习笔记-启动过程详解(一)

文章目录

    • 前言
    • Firmware启动过程
      • BMHD Check流程
        • ABM启动
        • Internal Flash启动
        • Bootloader Mode
        • Processing in case no valid BMHD found
        • Processing in case no Boot Mode configured by SSW
    • 总结

前言

之前介绍过UCB BMHD的使用,它在启动过程中起着重要的作用,本文详细介绍TC3xx的启动过程中的硬件启动阶段-Boot Firmware

Firmware启动过程

在这里插入图片描述
Firmware存储在BootRom中

BROM是内置在芯片内的一块存储区域,这块存储区通常为只读存储区,可用于存储Firmware程序,之后,由Firmware引导程序启动。如下,为Tc3xx的BROM地址,8开头带cache,A开头不带cache在这里插入图片描述
在这里插入图片描述
SSW在CPU0上执行——所有其他cpu在引导期间保持Halt状态,由用户软件启动,而:

BootROM中的SSW起始地址为CPU0程序计数器寄存器中的复位值。从这个位置获取一条指令,这是任何设备启动后执行的第一条指令

-在此入口点之后,固件立即检查testmode,如果选择testmode,则执行跳转到测试固件

最后一条SSW指令执行跳转到第一条用户代码指令。根据用户选择的启动配置,可以从不同的位置获取第一个用户指令

启动软件包含根据以下一项或多项初始化设备的过程

-先前存储在专用闪存位置的信息

-专用寄存器/内存位置的特殊位/字段的当前状态

-触发ssw执行的事件类型(最后一次重置事件)

-应用于外部(配置-)引脚的值(可选)
在这里插入图片描述
在这里插入图片描述

BMHD Check流程

在这里插入图片描述
在这里插入图片描述
BMHD从0-3依次进行check,如果找到有效的BMHD,则不会check后面的了

BMHD校验有效后,会获取PINDIS,如果=0,且DMU_HF_PROCONTP.BML等于0时
会获取STSTAT.HWCFG [3],当为0时,通过HWCFG4,5来确认要执行的模式,否则从BMHD中的BMI字段获取启动模式
在这里插入图片描述

ABM启动

Alternate Boot Mode备用启动模式处理由备用启动模式标头的内容控制。表47中定义了单个备用启动模式头的结构。
在这里插入图片描述
当选择ABM启动时,BMHD中的STAD地址需要设置为ABMHD的地址

ABMHD可以是pflash上的任意一块地址

而在ABMHD中的STADABM中定义用户的起始地址

在这里插入图片描述
ABM模式可以校验用户的内存区域,在上图的Code CRC校验处,可以作为简单的校验用户的boot

使用的应该是和BMHD一样的校验算法
校验失败时,如果是从HW启动的(在BMHD阶段会Set BOOT_PIN Flag),则会再次根据PIN4,5的状态来加载是ASC还是Generic BSL01 Generic,10 ASC

BOOT_PIN在如下寄存器中:
在这里插入图片描述

Internal Flash启动

内部flash启动,一般正常启动时用的就是这种方式
-这是通常的简单启动模式,其中执行是从内部flash开始的

-起始地址由启动模式头(BMHDx.STAD)定义

如果是HW PIN方式,则需要PIN4,5都为高电平

如果不是HW PIN方式,则根据BMHD中的BMI的HWCFG寄存器位决定,需要设置为111

Bootloader Mode

根据HW PIN或BMHD中的HWCFG来决定选哪个内部boot
在这里插入图片描述

Processing in case no valid BMHD found

如果上述序列没有找到有效的引导模式标头,则SSW不会执行用户代码。SSW准备设备,以便用户可以连接、安装有效的Boot Mode Headers、将应用程序代码写入PFlash或安装其他设备配置。
在这里插入图片描述

  1. 检查设备是否启用了“默认配置”—条件是HSM启动被禁用
    (DMU_SP_PROCONHSMCCFG.HSMBOOTEN=0)和启动模式锁定未激活
    (DMU_HF_PROCONTP.BML = 00 b)
    a)如果是-在SCU_STMEM1寄存器中设置标志BOOTMODE_CONFIGURED=1,继续下一步

    b)如果不是-指示“No Boot Mode configured”(在SCU_STMEM1寄存器中重置标志BOOTMODE_CONFIGURED),然后转到步骤4

    注意: 这种Case下, Processing in case no Boot Mode configured by SSW将会被执行
  2. initialize security sensitive RAMs
  3. 检查是否收到Reset后暂停请求(CBS_OSTATE.HARR=1)(eg:debugger)

    a)如果是,将BOOT_CFG安装为Flash方式内部启动-对应0b111

    b)如果不是- install BOOT_CFG to Generic BSL mode-对应0b100,将CPU0程序暂存内存(CPU0_PSPR)的第一个地址作为用户码起始地址安装到BOOT_ADDR中,然后执行步骤5
  4. 在PFLASH0的逻辑扇区S40中安装偏移量为0x0020的地址(即0xA000A020),作为用户代码启动地址进入BOOT_ADDR
  5. 保存启动模式信息,以便HSM和应用软件可用

    a)配置启动模式BOOT_CFG -在SCU_STMEM1寄存器中

    b)配置启动地址BOOT_ADDR -在SCU_STMEM2[31:2](地址是word对齐的-位[1:0]在这里不改变)
  6. 当没有找到有效的BMI时配置锁步监控功能-设置SCU_LCLCON0.LSEN0=0 (disable lockstep for CPU0)
Processing in case no Boot Mode configured by SSW

如果最初没有找到有效的启动模式头,并且上述序列(在没有找到有效BMHD的情况下进行处理)在其第一步退出(因为设备的“默认配置”被禁用)- SSW不能选择任何启动模式,这意味着不会有效地退出SSW。

在这种情况下,SSW流程是(参见图20):

检查设备是否允许调试访问

—if yes - enable debug access by installing CBS_OSTATE.IF_LCK to 1 (done using CBS_OEC register)

else -enter endless NOP loop
在这里插入图片描述
-没有设置启动模式,SSW会进入无限循环。

-如果调试接口没有被HSM锁定,调试器仍然可以连接到设备重新编程

此处的CBS_OSTATE在手册中查不到,需要到OCDS文档中查,目前没有该文档。对应为Cerberus寄存器中的OSCU寄存器中的OSTATE
在这里插入图片描述
在这里插入图片描述

总结

硬件Firmware启动需要Check BMHD,在开发过程中,通过四个BMHD设置不同的起始地址(第一个BMHD设置为Boot起始地址,后面设置为APP起始地址),可以实现Boot不存在时,单APP也可以正常启动。跳转到BMHD的起始地址后,后面的启动过程就是用户可以修改的了,后面会再介绍~

http://www.xdnf.cn/news/768709.html

相关文章:

  • COUNT(*) 与 COUNT(列名) 的区别解析
  • MySQL中SELECT查询的执行顺序
  • 【 HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解
  • SCAU8643--简单选择排序
  • 2506js,活扩控件
  • 基于ubuntu和树莓派环境对游戏进行移植
  • cJSON简单使用
  • uniapp路由跳转toolbar页面
  • 为何ERP系统更倾向使用业务编码作为主键?兼顾可读性与系统集成的设计思考
  • 【Zephyr 系列 3】多线程与调度机制:让你的 MCU 同时干多件事
  • oracle sql 语句 优化方法
  • 数据库系统概论(十三)详细讲解SQL中数据更新(插入,修改与更新)
  • RocketMQ 消息发送核心源码解析:DefaultMQProducerImpl.send () 方法深度剖析
  • 前端开发知识体系全景指南
  • 小目标检测:YOLOV7改进之双坐标注意力(DCA)
  • Python Day41
  • 神经网络与深度学习(第一章)
  • 链式前向星图解
  • 排序算法C语言实现
  • Linux配置DockerHub镜像源配置
  • Qt实现的水波进度条和温度进度条
  • 神经网络中的梯度消失与梯度爆炸
  • cnn训练并用grad-cam可视化
  • 基于遥感图像深度学习的海洋测深
  • 2024年数维杯国际大学生数学建模挑战赛C题时间信号脉冲定时噪声抑制与大气时延抑制模型解题全过程论文及程序
  • 题目 3230: 蓝桥杯2024年第十五届省赛真题-星际旅行
  • [蓝桥杯]约瑟夫环
  • web架构2------(nginx多站点配置,include配置文件,日志,basic认证,ssl认证)
  • 2025年5月24日系统架构设计师考试题目回顾
  • 【RAG 应用的可视化框架】