CH579(Cortex-M0)网络IAP升级介绍及问题解答--(持续更新) 网络升级
CH579网络IAP升级的源码可以从码云(Gitee)上git clone下来。
码云地址:https://gitee.com/maji19971221/wch-ch57x
以下是一个朋友问的几个常见问题,这边弄一个总结文档。
一、MCU基本工作机理方面的疑问:
1,“bootloader_vector_dynamic_test” 文件部分:
疑问:
1) 这块程序看着只是将MCU程序执行的代码启动重定位到0x400吗? 像原来的中断向量TIMR0(0X0040), ……, ETH(0X005C), 等等是否有变化?
答:是的,因为M0内核的MCU 。需要在FLASH最前面放中断向量表,否则程序无法正常启动。所以在程序的最前面放了一个中断跳转的工程。0x400和0x4400一个就是IAP程序,一个就是APP用户程序的起始地址。
2) MCU执行代码的流程是如何的?是从MSP的地址开始执行,然后跳转到其他指定地址去执行吗(是何时指定这个地址的?)?。*.bin文件用贵司的工具生成后,默认带了私有的16bytes头,IAP_FLASH逻辑是将升级*.bin代码放到0x4400地址,然后跳转到0x4400地址执行APP程序的吗?那0x4400地址代码放的是私有的16bytes头信息,如何执行APP程序的?
答:16个字节的数据因为实在一开始传过来的,所以是单独处理的。具体可以看用户程序里面,以太网的接收函数那部分。然后后面的APP才是放在0x4400。
3) 升级标志位不用dataflash存,单独划出512字节code区(比如最末尾区域)来存储升级标识是否可以?
答:可以。只要你别把这块FLASH擦除即可。
一、Demo代码的方面的实现疑问:
疑问:
1)FLASH文件里面IAP升级程序,98*1024地址是0x18800.
入下图 tcpclient文件里面下载bin写到flash是bin_addr=0x14400, 两个地址感觉对不上?
答:这个是因为hextobin软件的原因。因为工程时从0x4400开始。但是软件在转成bin文件的时候,前面0x00-0x4400都是0所以造成了浪费。所以0x18800就是0x4400+0x10000+0x4400。如果你自己可以做一个hextobin软件,把前面0去掉,那么就可以从0x14400开始了。
2)FLASH文件里面IAP升级程序,蓝色虚框里面的“code_addr<162*1024”.是什么含义,没看明白。
答:根据上面的回答,可以知道下载下来的程序是放在0x18800的地址。这个就是98KB,再加上我定义的用户程序是64KB,98+64 =162KB。
CH579(Cortex-M0)网络IAP升级介绍及问题解答--(持续更新) 网络升级的更多相关文章
- 私人网盘系统2.0—全部升级为layUI+PHP(持续更新中)shang
网盘系统2.0 上周,我做了第一版的“私人网盘系统”,http://www.cnblogs.com/sunlizheng/p/7822036.html 没看过的朋友可以去看一下,这周在家升级做了第 ...
- 网络存储技术介绍(1) ( based on zt)
最近由于某同学微信发了一些网络存储的文章,开始感兴趣,稍微收集了一些 一. 网络存储技术 http://ask.zol.com.cn/q/187044.html (yxr:很老的技术介绍吧) 网络 ...
- iOS开发网络篇—简单介绍ASI框架的使用
iOS开发网络篇—简单介绍ASI框架的使用 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大 ...
- 网络攻防工具介绍——Wireshark
网络攻防工具介绍 Wireshark 简介 Wireshark(前称Ethereal)是一个网络封包分析软件.它是一个理想的开源多平台网络协议分析工具.网络封包分析软件的功能是撷取网络封包,并尽可能显 ...
- 家庭洗车APP --- Androidclient开展 之 网络框架包介绍(一)
家庭洗车APP --- Android客户端开发 之 网络框架包介绍(一) 上篇文章中给大家简单介绍了一些业务.上门洗车APP --- Android客户端开发 前言及业务简单介绍,本篇文章给大家介绍 ...
- SequoiaDB版本在线升级介绍说明
1.前言 在SequoiaDB数据库发展过程中,基本保持每半年对外发行一个正式的Release版本.并且每个新发布的Release版本相对老版本而言,性能方面都有很大的提高,并且数据库也会在新版本中加 ...
- kali linux学习笔记(四) : 网络端口大全介绍
端口大全介绍 2端口:管理实用程序 3端口:压缩进程 5端口:远程作业登录 7端口:回显 9端口:丢弃 11端口:在线用户 13端口:时间 17端口:每日引用 18端口:消息发送协议 19端口:字符发 ...
- Openstack 网络服务 Neutron介绍和控制节点部署 (九)
Neutron介绍 neutron是openstack重要组件之一,在以前是时候没有neutron项目. 早期的时候是没有neutron,早期所使用的网络的nova-network,经过版本改变才有个 ...
- Openstack 网络服务 Neutron介绍和控制节点部署 (十)
Neutron介绍 neutron是openstack重要组件之一,在以前是时候没有neutron项目. 早期的时候是没有neutron,早期所使用的网络的nova-network,经过版本改变才有个 ...
- 今天升级Xcode 7.0 bata发现网络访问失败。
今天升级Xcode 7.0 bata发现网络访问失败.输出错误信息 The resource could not be loaded because the App Transport Securit ...
随机推荐
- 关于JDK8中stream的用法小总结。
import java.io.Serializable; import java.util.*; import java.util.stream.Collectors; public class Ma ...
- MYSQL-->函数与约束条件
函数 用法 函数最常用的地方就是查询语句处 select 函数(字段) from 表名; select 字段列表 from 表名 group by 分组字段 having 函数(字段); 字符串函数( ...
- 关于IOC容器
1.什么是 IOC (1)控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理 (2)使用 IOC 目的:为了耦合度降低
- python字典推导&&列表推导&&输出随机数
字典推导: x = ['A', 'B', 'C', 'D'] y = ['Alice', 'Bob', 'Cecil', 'David'] print({i:j for i,j in zip(x,y) ...
- RegExp正则表达式的匹配
JavaScript RegExp 对象 RegExp 对象 正则表达式是描述字符模式的对象. 正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具. 语法 var patt=n ...
- 苹果 App Store 开始支持隐藏上架应用:只能通过链接下载
据MacRumors报道,苹果公司最近宣布,正如其开发者网站上所概述的那样,App Store现在支持只能通过直接链接才能发现的隐藏应用. 图片来自 Apple 拥有不适合公开发布的应用的开发 ...
- 河北首家城商行传统核心业务国产化,TDSQL突破三“最”为秦皇岛银行保驾护航
11 月 1 日,秦皇岛银行新一代分布式核心系统成功投产并稳定安全运行超过三个月,标志着秦皇岛银行数字化转型应用和服务水平登上了一个新台阶. 这是秦皇岛银行有史以来规模最大.范围最广.难度最高的一次系 ...
- VMware ESXi 8.0 SLIC 2.6 & macOS Unlocker (Oct 2022 GA)
ESXi 8.0.0 GA (General Availability) 请访问原文 VMware ESXi 8.0 SLIC 2.6 & macOS Unlocker (Oct 2022 G ...
- C#where关键字约束
where关键字的用法 where关键词一个最重要的用法就是在泛型的声明.定义中做出约束. 约束又分为接口约束.基类约束.构造函数约束.函数方法的约束. 1.接口约束,泛型参数必须实现相应的接口才可以 ...
- mysql删库报错
3.开发人员测试环境删库报错 #解决:在数据库的物理目录中(mysql的data目录),进入要删除的数据库目录,查看是否有文件存在,若存在,使用rm -rf 命令清除:再次执行删除数据库命令即可 [r ...