CH552的bootload程序IAP直接对ROM-flash修改数据(未尝试)

手动写bootload程序的可能

1,根据ch552g的使用手册内容查看到

在这里插入图片描述

2,在下面的参考文件的IAP文件夹中看到IAP文件

参考
下面程序中并没有跳转到厂家bootload的过程,这是直接通过控制有关的寄存器对FLSH进行直接写入和修改,这样可以认为就是一个bootload程序了

void CH55X_IAPDownload( void )
{UINT8  s;UINT16 i;UINT16 len,Data;UINT32 addr;switch( iap_cmd.other.buf[0] )                                  // 分析命令码{case CMD_IAP_PROM:                                              // ISP 编程命令Flash_Op_Check_Byte1 = DEF_FLASH_OP_CHECK1;Flash_Op_Check_Byte2 = DEF_FLASH_OP_CHECK2;len = iap_cmd.program.len>>1;                               //必须为2的整数倍,按照半字进行操作addr = (iap_cmd.program.addr[0] | (UINT16)iap_cmd.program.addr[1]<<8);if( Flash_Op_Unlock( bCODE_WE | bDATA_WE ) ){CH55X_Respond( 0xFF );break;}for( i=0; i!=len; i++ ){Data = (iap_cmd.program.buf[2*i] | (UINT16)iap_cmd.program.buf[2*i+1]<<8);s = ProgWord( addr,Data );addr+=2;if( s != 0x00 ){break;}}Flash_Op_Check_Byte1 = 0x00;Flash_Op_Check_Byte2 = 0x00;Flash_Op_Lock( bCODE_WE | bDATA_WE );CH55X_Respond( s );                                         //返回校验break;case CMD_IAP_ERASE:                                             // ISP 擦除命令Flash_Op_Check_Byte1 = DEF_FLASH_OP_CHECK1;Flash_Op_Check_Byte2 = DEF_FLASH_OP_CHECK2;if( Flash_Op_Unlock( bCODE_WE | bDATA_WE ) ){CH55X_Respond( 0xFF );break;}addr = (iap_cmd.erase.addr[0] | (UINT16)iap_cmd.erase.addr[1]<<8);for( i=0; addr < IAP_CODE_ADDR; i++ ){s = EraseBlock( addr );addr+=1024;if( s != 0 ){break;}}Flash_Op_Check_Byte1 = 0x00;Flash_Op_Check_Byte2 = 0x00;Flash_Op_Lock( bCODE_WE | bDATA_WE );CH55X_Respond( s );break;case CMD_IAP_VERIFY:                                             // ISP 校验命令addr = (iap_cmd.verify.addr[0] | (UINT16)iap_cmd.verify.addr[1]<<8);len = iap_cmd.verify.len>>1;                                 // 必须为2的整数倍,按照字进行操作s = FlashVerify( addr,&(iap_cmd.verify.buf[0]),iap_cmd.verify.len );CH55X_Respond( s );break;case CMD_IAP_END:                                                // ISP 结束命令SAFE_MOD = 0x55;SAFE_MOD = 0xAA;GLOBAL_CFG |= bSW_RESET;                                     // 复位单片机,进入用户程序 break;default:CH55X_Respond( 0xfe );                                       // 未知的命令break;}
}

没有尝试编写bootload的原因

1.CH552g的手册中没有对ROM_CTRL控制器的详细描述

除了下面的内容没有更多内容
在这里插入图片描述

2,对于下载来说有USB和串口的内容,涉及文件太多

3,厂家已经给了bootload程序,没太多必要花费时间重新造轮子

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

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

相关文章

如何学习Hadoop:糙快猛的大数据之路(利用GPT 学习)

目录 引言Hadoop是什么&#xff1f;学习Hadoop的"糙快猛"之道1. 不要追求完美&#xff0c;先动手再说2. 从简单的MapReduce开始3. 利用大模型加速学习4. 循序渐进&#xff0c;建立知识体系 构建您的Hadoop技能树1. 夯实基础&#xff1a;Linux和Java2. 深入理解HDFS3.…

Codeforces Round 959 sponsored by NEAR (Div. 1 + Div. 2) 20240718

A. Diverse Game 题目 彼得看着谢尔盖的流&#xff0c;想出了一个矩阵 a a a &#xff0c;由 n n n 行和 m m m 列组成( i i i 第一行和 j j j 第列中的数字表示为 a i , j a_{i, j} ai,j​ )&#xff0c;它包含了从 1 1 1 到 n ⋅ m n \cdot m n⋅m 的所有整数。但是…

GreenDao实现原理

GreenDao 是一款针对 Android 平台优化的轻量级对象关系映射 (ORM) 框架&#xff0c;它将 Java 对象映射到 SQLite 数据库&#xff0c;以简化数据持久化操作。GreenDao 的主要优点包括高性能、低内存占用、易于使用以及对数据库加密的支持。 以下是基于源码的 GreenDao 实现原…

AI 应用还没有大量出现,缺什么?缺聊天机器人编程语言 | Chatopera

只有帮助人发挥创意的才是大市场 现在是需要大量的 AI 应用了。如何产生大量的 AI 应用呢&#xff1f;当年乔布斯说&#xff0c;他看到了个人电脑的两个趋势&#xff0c;一个是图形化用户界面&#xff0c;一个是面向对象编程语言。今天&#xff0c;AI 应用也是新的【图形用户界…

【QT】label中添加QImage图片并旋转(水平翻转、垂直翻转、顺时针旋转、逆时针旋转)

目录 0.简介 1.详细代码及解释 1&#xff09;原label显示在界面上 2&#xff09;水平翻转 3&#xff09;垂直翻转 4&#xff09;顺时针旋转45度 5&#xff09;逆时针旋转 0.简介 环境&#xff1a;windows11 QtCreator 背景&#xff1a;demo&#xff0c;父类为QWidget&a…

Cisco 路由重发布 —— 实现路由信息在不同路由选择域间的传递

一、技术背景 在实际的组网中&#xff0c;可能会遇到这样一个场景&#xff1a;在一个网络中同时存在两种或者两种以上的路由协议。例如客户的网络原先是纯 Cisco 的设备&#xff0c;使用 EIGRP 协议将网络的路由打通。但是后来网络扩容&#xff0c;增加了一批华为的设备&#…

应用层——HTTP

像我们电脑和手机使用的应用软件就是在应用层写的&#xff0c;当我们的数据需要传输的时候换将数据传递到传输层。 应用层专门给用户提供应用功能&#xff0c;比如HTTP,FTP… 我们程序员写的一个个解决我们实际的问题都在应用层&#xff0c;我们今天来聊一聊HTTP。 协议 协议…

【接口自动化_12课_基于Flask搭建MockServer】

知识非核心点&#xff0c;面试题较少。框架搭建的过程中的细节才是面试要点 第三方接口&#xff0c;不方便进行测试&#xff0c; 自己要一个接口去进行模拟。去作为我们项目访问模拟接口。自己写一个接口&#xff0c;需要怎样写 一、flask:轻量级的web应用的框架 安装命令 …

旧系统的会员信息如何导入新系统?

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

ES6 中的 generator 函数究竟是什么

ES6 中的 generator 函数究竟是什么 我们在学习 js 的时候应该都知道一个概念&#xff1a;一旦函数开始执行&#xff0c;它将运行直至完成&#xff0c;没有其他的代码可以在运行期间干扰它。 但是在 ES6 中引入了一种新型的函数&#xff0c;它不按照“运行至完成”的规则。这…

数据库相关概念

MySQL 启动停止 MySQL安装完成之后&#xff0c;在系统启动时&#xff0c;会自动启动MySQL服务&#xff0c;无需手动启动。 手动的通过指令启动停止&#xff0c;以管理员身份运行cmd&#xff0c;进入命令行执行如下指令&#xff1a; net start mysql80 net stop mysql80 注意 …

JMeter使用小功能-(持续更新)

1、jmeter在同一个线程组内&#xff0c;uuid的复用 方式一&#xff1a; 方式二&#xff1a; 2、获得jMeter使用的线程总数 ctx.getThreadGroup().getNumberOfThreads()来表示活动线程总数 int threadNumctx.getThreadGroup().getNumThreads(); String threads Integer…

机械学习—零基础学习日志(高数05——函数概念与特性)

零基础为了学人工智能&#xff0c;真的开始复习高数 本小节讲解隐函数&#xff0c;有点神奇&#xff0c;我竟然完全没有隐函数记忆了。 隐函数 隐函数&#xff0c;我个人通俗理解就是&#xff0c;在复杂的环境里&#xff0c;发现纯净天地。例如&#xff0c;在外太空的某个大陆…

工信部信通院首份全景图 | 天空卫士产品26个版块多覆盖

近日&#xff0c;2024全球数字经济大会——数字安全生态建设专题论坛在北京成功举办&#xff0c;论坛由全球数字经济大会组委会主办&#xff0c;中国信息通信研究院和公安部第三研究所共同承办。论坛上&#xff0c;中国信息通信研究院隆重推出了业界首期《数字安全护航技术能力…

Flink集群搭建

&#xff08;1&#xff09;JAVA_HOME 配置 conf/flink-conf.yaml env.java.home &#xff08;2&#xff09;与Hadoop关联&#xff0c;如果确认使用Hadoop相关功能&#xff0c;需要关注对应的版本。如果不使用&#xff0c;则随意 使用flink版本 下载最新版本后&#xff0c;将存…

(四)原生js案例之手风琴效果

手风琴效果也是业务开发中一个比较常见的效果,类似QQ那样的折叠功能 效果预览 代码实现 必要的css * {margin: 0;padding: 0;}body {height: 100vh;background: linear-gradient(200deg, #ffff00 0%, #ee82ee 100%);overflow: hidden;}ul {list-style: none;}#List {margin:…

更新weibo sdk(去掉so以适配Android 15的16K Page Size的版本)记录

1、修改模块的gradle 从 implementation io.github.sinaweibosdk:core:13.6.1aar 改为 implementation io.github.sinaweibosdk:core:13.10.4aar 同步、运行报错&#xff1a; Didnt find class "androidx.core.content.FileProvider" 解决&#xff1a;据此提示…

Stable Diffusion:质量高画风清新细节丰富的二次元大模型二次元插图

今天和大家分享一个基于Pony模型训练的二次元模型&#xff1a;二次元插图。关于该模型有4个不同的分支版本。 1.5版本&#xff1a;loar模型&#xff0c;推荐底模型niji-动漫二次元4.5。 xl版本&#xff1a;SDXL模型版本 mix版本&#xff1a;光影减弱&#xff0c;减少SDXL版本…

C/C++ yaml 库

文章目录 一、yaml 介绍1.1 yaml 介绍1.2 yaml 教程1.3 yaml 在线工具1.4 yaml 出现背景 二、C/C yaml 库选型2.2 libfyaml2.3 yaml-cpp 一、yaml 介绍 1.1 yaml 介绍 YAML&#xff08;YAML Ain’t Markup Language&#xff09;是一种人类可读的数据序列化格式&#xff0c;通…

客户在哪儿AI的ToB获客服务和AI外呼机器人的有何不同

客户在哪儿AI全面提供服务已经快一个月了&#xff0c;我们收到了一些反馈。其中问的最多也是最有意思的问题就是&#xff0c;客户在哪儿AI与市面上其他几类服务于B端的科技产品有什么不同。既然如此&#xff0c;我们决定连出几篇文章把这件事给讲清楚。本期讲——客户在哪儿AI的…