TDC-GP30固件升级笔记

news2025/2/3 16:06:46

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代码部分不会被擦除,并且保持不变。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/103734.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8-Arm PEG-DBCO分子量决定外观性状,用于修饰生物分子

英文名称:8-Arm PEG-DBCO 中文名称:八臂-聚乙二醇-二苯基环辛炔 分子量:1k,2k,3.4k,5k,10k,20k(可按需定制) 质量控制:95% 存储条件&#xff…

计算机毕设Python+Vue学校教务管理系统(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

计算机中丢失vcruntime140_1.dll,要怎么修复这个问题

关于计算机中丢失vcruntime140_1.dll其实是非常的常见的,当出现这种情况的时候,不需要担心,其实有好多种方法可以解决的。 解决丢失vcruntime140_1.dll的方法 第一种方法:既然计算机丢失了这个vcruntime140_1.dll文件&#xff0…

git:合并多个commit

目录1. 查看提交记录2. 合并commit3. 查看合并后的日志记录1. 查看提交记录 git log --oneline --graph2. 合并commit 这里希望合并最后3个commit(modify1,modify2,modify3) git rebase -i idid需要使用倒数第4个commit的id&am…

【docker】安装MySQL

实战:安装MySQL 思考:MySQL的数据持久化的问题 #获取镜像 docker pull mysql:5.7 #运行容器,需要做数据挂载 #安装启动MySQL,需要配置密码(docker Hub) #官方测试 docker run --name some-mysql -e MYSQL…

WebAPi实现多文件上传,并附带参数

需要实现的效果为&#xff0c;通过WebApi实现多文件上传功能&#xff0c;并且在上传时需要能附带文件说明参数&#xff0c;用于保存文件记录 –这里是需要的文件说明参数类 /// <summary>/// 前端文件上传时参数数据/// </summary>public class DistributionData{…

【Spring篇】基于xml的自动装配

&#x1f353;个人主页&#xff1a;个人主页 &#x1f352;系列专栏&#xff1a;SSM框架 自动装配&#xff1a; 根据指定的策略&#xff0c;在IOC容器中匹配某一个bean&#xff0c;自动为指定的bean中所依赖的类类型或接口类 型属性赋值 ①场景模拟 创建类UserControllerpublic…

29.图像卷积代码实现

1. 互相关运算 接下来&#xff0c;我们在corr2d函数中实现如上过程&#xff0c;该函数接受输入张量X和卷积核张量K&#xff0c;并返回输出张量Y。 import torch from torch import nn from d2l import torch as d2ldef corr2d(X,K): # X是输入&#xff0c;K是核矩阵计算二维互…

Cambridge IGCSE Chemistry 真题讲解1

考试局&#xff1a;Cambridge Assessment International Education (CAIE)考试类别&#xff1a;Cambridge International General Certificate of Secondary Education (IGCSE)考试科目&#xff1a;Chemistry考试单元&#xff1a;Paper 2 Multiple Choice (Extended)试卷代码&a…

什么是混合云、公有云、私有云?

很多用户都不清楚混合云、公有云、私有云的定义是什么&#xff0c;很多用户都不是很清楚具体的含义接下来一起跟着小编来看看吧。 一、混合云( hybrid cloud) 在混合云模式中&#xff0c;云平台由两种不同模式(私有或公有)云平台组合而成。这些平台依然是独立实体&#xff0c;但…

GIt远程仓库pull拉取代码

GIt远程仓库pull拉取代码 git教程可以参考之前的这篇文章使用git命令对gitee存放项目到仓库、切换分支以及合并分支教程 这篇文章主要说一下远程连接拉去并提交代码 如果你使用git clone <项目地址>拉取代码后更改无法提交的问题&#xff0c;可以使用以下解决方案 本地…

C++基础学习笔记(三)——核心编程PART1

参考链接&#xff1a;https://www.bilibili.com/video/BV1et411b73Z?p84&vd_sourceb4d9cee68649c8adcb1e266f7147cd5c 一、内存分区模型 C程序在执行时&#xff0c;将内存大方向划分为4个区域 代码区&#xff1a;存放函数体的二进制代码&#xff0c;由操作系统进行管理…

LeetCode 92 双周赛

2481. 分割圆的最少切割次数 圆内一个 有效切割 &#xff0c;符合以下二者之一&#xff1a; 该切割是两个端点在圆上的线段&#xff0c;且该线段经过圆心。该切割是一端在圆心另一端在圆上的线段。 一些有效和无效的切割如下图所示。 给你一个整数 n &#xff0c;请你返回将…

从CRUD到入职阿里,全靠猛刷P8总结的Github所有高热度面试题合集

很多工作过了 5 年之后的工程师&#xff0c;都表示写不动 CRUD 代码了&#xff0c;都会考虑转架构师&#xff0c;但是一想到面试&#xff0c;可能心里就会一紧。 一般面试大厂架构师的岗位至少需要 3 轮技术面试&#xff0c;我咨询了一下阿里的大佬&#xff0c;了解到每一轮的…

专利解析|数据中台—数据流配置弹框交互优化方法

优化用户交互 在企业信息化转型的过程中&#xff0c;数据中台提供全行业从咨询规划到技术平台落地运营的数字化方案。随着企业规模的不断扩大&#xff0c;企业信息化转型的必要性也逐步地增加&#xff0c;其功能的复杂度更是跨越式地增加。人们在处理信息、学习规程和记忆细节…

【Go】参数验证,对象数组核验-validator

文章目录背景功能介绍范围比较验证标记之间特殊符号说明字符串验证特殊字符串验证例子扩展问题我的问题验证slice举例输出说明详细举例二维slice举例&#xff1a;说明map核验举例输出说明嵌套map核验举例说明参考背景 一直做的 go 项目中想要方便简洁的对接口参数字段进行核验…

HTTP模块的数据结构

1.ngx_module_t 1.1数据定义 背景&#xff1a; ngx_module_t结构体作为所有模块的通用接口&#xff0c;它只定义了init_master、init_module、init_process、init_thread、ext_thread、exit_process、exit_master这7个回调方法&#xff08;事实上&#xff0c;init_master、i…

DEJA_VU3D - Cesium功能集 之 090-台风过境实时动画

前言 编写这个专栏主要目的是对工作之中基于Cesium实现过的功能进行整合,有自己琢磨实现的,也有参考其他大神后整理实现的,初步算了算现在有差不多实现小130个左右的功能,后续也会不断的追加,所以暂时打算一周2-3更的样子来更新本专栏(尽可能把代码简洁一些)。博文内容…

内网穿透软件对比——cpolar : 花生壳(上)

系列文章 内网穿透软件对比——cpolar : 花生壳&#xff08;上&#xff09;内网穿透软件对比——cpolar : 花生壳&#xff08;中&#xff09;内网穿透软件对比——cpolar : 花生壳&#xff08;下&#xff09; 文章目录系列文章1. 前言2. 对比内容2.1 官网主页对比2.2 用户注册…

JS中的事件循环机制(Event Loop)

JS中的事件循环机制(Event Loop) javascript是单线程的非阻塞的脚本语言 单线程 只有一个主线程来处理任务。非阻塞 JS引擎执行异步任务时&#xff0c;不会一直等待返回结果&#xff0c;主线程会挂起&#xff08;pending&#xff09;这个任务&#xff0c;继续执行其他任务&am…