请从官网下载 TD4VM 技术参考手册,地址如下:
TDA4VM 技术参考手册地址
(freetech-MCU 底层软件- TDA4 内容交流与分享)
总体介绍了异构芯片 TDA4VM 的核与芯片域:
下图为芯片顶层的设计框图,更形象的列出了不同芯片域设计与外设:
介绍了 main 域的处理器,以及总体介绍了main 域的外设功能:
介绍了 mcu 域的处理器,并总体介绍了 mcu 域外设的功能:
介绍了 wukp域的处理器,并总体介绍了 wkup 域外设的功能:
1.6 芯片ID
芯片 ID 存储在CTRLMMR_WKUP_JTAGID 寄存器中,值为:
此章节展示了 MAIN 域外设在内存中的寄存器位置,请查看手册。
此章节展示了 MCU 域外设在内存中的寄存器位置,请查看手册。
此章节展示了 WKUP 域外设在内存中的寄存器位置,请查看手册。
这个类似内核外设的寄存器位置分布,因为有 VIC,TCM 相关的东西。
RAT 是 Region-based Address Translation,基于区域的地址翻译。
位于 region 的32位内存地址可以翻译为48 位内存地址。
芯片上所有模块与子系统通过系统互连实现对任意内存的访问。
也就是说任一处理器核可以访问所有内存映射。
系统互联可以分为如下模块:
上述模块是相互链接的,用于传输任意处理器核对内存或寄存器的读写访问。
芯片上电后,先运行固化在 ROM 中的代码,ROM 中的代码会初始化一些必要的外设,比如时钟,启动设备等。
根据 SBL 启动经验,总结如下:
Power on ————> Rom Code ————> SBL
MCU ROM 代码负责采用 BOOT_MODE pin 并从指定的启动外设中读取启动镜像。
MCU ROM 代码也需要验证启动镜像的合法性,MCU ROM 代码架构如下:
Rom Code 软件模块总结如下:
DMSC 即 WKUP 域的核,负责整个芯片的设备管理与安全控制。
DMSC 的 ROM 代码…不清楚
设备管理:即从核的复位启动是由 DMSC 来使能的。
安全控制:解析 X.509? 镜像合法性验证?
ROM 代码主要实现下述功能:
1.对 BOOT_MODE pins 进行采样,初始化并配置必要的外设,比如 PLL与启动外设;
2.从启动外设中读取镜像,并验证;
3.启动从核,并运行镜像。
由 DMSC 执行 SBL 核的复位启动。
DMSC ROM 会配置一个 180 s 的看门狗,SBL 需要加载 TI 提供的固件给 DMSC 运行,这个固件会管理这个看门狗:
如果用户置位了 MCU_ONLY pin (比如通过拨码开关),那么此时芯片只能从 MCU 域启动,ROM 中的代码只采样 MCU_BOOTMODE pins,且只能从 MCU 域的外设读取启动镜像。
NORMAL 启动则需要采样所有的 BOOT MODE pins,可以从 MAIN 域外设中读取启动镜像。
当使用 MCU_ONLY 模式启动时,只采样 MCU_BOOTMODE pins 的值。
MCU_BOOTMODE pin 映射如下:
引脚位域功能如下:
当 MCU_ONLY 引脚没有置位时(拨码开关没有拉高),ROM 中的代码会同时采样 BOOTMODE pins 与 MCU_BOOTMODE pins,来共同确认启动模式。
BOOTMODE pins 映射如下:
引脚位域功能如下:
MCU[0:2]: 可以设置参考时钟频率。
启动参数表给 ROM 的代码使用,主要根据 BOOTMODE pins 的采样值与内建数据来填充。
比如根据 BOOTMODE pins 确定启动外设。
启动镜像的整体格式为一个 X.509 认证头,后跟随启动镜像:
该章节简略介绍了各个启动模式的初始化启动处理与加载处理。
MCU ROM 代码运行在 MCU_R5F 上,芯片上电启动时,需要配置 MPU,ROM 的代码对 MPU 的设置如下图:
MPU 中,数值越大的 region,拥有更高的属性优先级。