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

RegisterAddressParameter
SHR_CPU_REQ0x0DCCPU 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_MODECR_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)是随机存取区的一部分,所有数据存储器都位于随机存取区,并通过远程接口进行读写访问。

 绿色区域用于用户编程。

RegisterAddressParameter
SRR_FWU_RNG0x0EC可从此处读取为用户编程保留的固件代码长度
SRR_FWU_REV0x0ED固件代码USER的最后四个字节保留用于用户实现修订代码。在编程用户固件代码和GP30的系统重置之后,可以从这里读取固件用户代码的版本
SRR_FWA_REV0x0EE固件代码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代码部分不会被擦除,并且保持不变。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂奔De鸵鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值