TDC-GP30固件升级笔记
Posted 狂奔De鸵鸟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TDC-GP30固件升级笔记相关的知识,希望对你有一定的参考价值。
CPU Handling
CPU处理通过寄存器SHR_CPU_REQ执行。在那里,以下请求可以开始在CPU中执行程序代码:
- Bootloader
- Checksum Generation(生成校验和请求)
- Firmware Initialization(固件初始化)
- Post Processing(后置处理请求)
- General Purpose Handling(通用处理请求)
通常,通过在SHR_CPU_REQ中设置相应的位来发送这些请求中的任何一个,可以让芯片在任务定序器周期内的适当位置启动CPU。然后,通过检查请求,固件操作总是在ROM代码内开始。
引导加载程(Bootloader)序和校验和生成请求(Checksum Generation)直接在ROM事务中处理,而对于固件初始化、后处理(Post Processing)和通用处理(Post Processing),固件用户代码始终在程序启动时启动。
Check of CPU Request
如果在SHR_CPU_REQ中设置了任何请求,CPU首先在ROM代码中启动,并检查请求类型。
如果设置了引导加载程序或校验和生成请求,则这些请求将直接在ROM代码中提供
对于其他3个CPU请求,必须在固件代码中处理检查,用户可以在其中定义应在哪个固件代码位置处理请求。
有关固件开发的更多信息,请参阅“Firmware User Guide GP30_Vol4”
Register | Address | Parameter |
SHR_CPU_REQ | 0x0DC | CPU Requests |
Bootloader介绍
系统重置或系统INIT发生后,总是请求引导加载程序。但是,只有在设置了引导加载器发布代码时,才会执行引导加载器操作。
Bootloader操作包括:
- “Register Configuration” 寄存器配置”,将配置数据传输到寄存器区域
- “Get Firmware Revisions 获取固件版本”,在寄存器SRR_FWU_REV 和 SRR_FWA_REV 中设置固件版本
- ““High Speed Clock Setting” 高速时钟设置”,将HS_CLK_SEL位从CR_CPM传输到SHR_RC,从中控制高速时钟设置
- 如果CR_MRG_TS中的MR_CT配置为值>0,则启用测量速率生成器
- 通过将UART_CRC_MODE从CR_UART传输到控制CRC模式设置的SHR_RC,启用用户定义的CRC模式
- 设置在引导加载程序序列完成后执行的“FW Init”请求
- 如果CPU_BLD_CS设置在CR_IEH中,则设置““Checksum Generation 校验和生成”请求,这在引导加载程序序列完成后直接执行
最后,引导加载程序清除SHR_CPU_REQ中的请求,并跳回到ROM代码以检查CPU请求。
固件位置 Firmware Location
由于GP30 CPU的哈佛架构,GP30中的可编程固件位于两个非易失性存储器(NVRAM)中,一个用于固件程序代码(FWC),另一个用于硬件数据(FWD,例如参数、配置数据)。
固件代码存储器(FWC)是程序代码区的一部分,可通过远程接口进行编程。
固件数据存储器(FWD)是随机存取区的一部分,所有数据存储器都位于随机存取区,并通过远程接口进行读写访问。
绿色区域用于用户编程。
Register | Address | Parameter |
SRR_FWU_RNG | 0x0EC | 可从此处读取为用户编程保留的固件代码长度 |
SRR_FWU_REV | 0x0ED | 固件代码USER的最后四个字节保留用于用户实现修订代码。在编程用户固件代码和GP30的系统重置之后,可以从这里读取固件用户代码的版本 |
SRR_FWA_REV | 0x0EE | 固件代码ams的修订版可从此处读取 |
NVRAM 框架介绍
Each of the two NVRAMs in GP30 is a combination of a volatile SRAM and a non-volatile FLASH memory. Access to/from NVRAM is only given via the SRAM part, where volatile data can be read and written in an unlimited number of times, while non-volatile data resides in FLASH part.
Each of the two NVRAMs in GP30 is a combination of a volatile SRAM and a non-volatile FLASH memory. Access to/from NVRAM is only given via the SRAM part, where volatile data can be read and written in an unlimited number of times, while non-volatile data resides in FLASH part.
GP30中拥有2组NVRAM 每组NVRAM都由一个SRAM和FLASH组成,对NVRAM的访问只能通过SRAM部分进行,其中易失性数据可以无限次读取和写入,而非易失性存储在FLASH部分。
读写访问可以按任何顺序进行寻址。
SRAM到FLASH的完整数据传输由STORE执行。从FLASH到SRAM,数据通过RECALL完全传输。必须首先启用两个事务的执行。
存储用户数据和代码时,可以使用FW_STORE_LOCK。然后,固件数据不能被读取,芯片的数据和代码内容只能被擦除,而不能被修改(见第7.5节)。
当这种锁定的芯片被擦除时,它会再次解锁。这种芯片中受保护的ams代码部分不会被擦除,并且保持不变。
以上是关于TDC-GP30固件升级笔记的主要内容,如果未能解决你的问题,请参考以下文章
H7-TOOL固件发布V2.1.4,优化主界面,优化升级脱机烧录,增加导入功能,示波器操作说明增加485差分测量(2022-02-24)
乐鑫Esp32学习之旅30 对接华为IoT物联网平台适配踩坑,使用ESP-IDF 编程使用HTTPS请求固件跳过证书校验,实现OTA远程升级文件。(附带源码)
乐鑫Esp32学习之旅30 对接华为IoT物联网平台适配踩坑,使用ESP-IDF 编程使用HTTPS请求固件跳过证书校验,实现OTA远程升级文件。(附带源码)
乐鑫Esp32学习之旅30 对接华为IoT物联网平台适配踩坑,使用ESP-IDF 编程使用HTTPS请求固件跳过证书校验,实现OTA远程升级文件。(附带源码)