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 ...
随机推荐
- 斗鱼 H5 直播原理解析,它是如何省了 80% 的 CDN 流量?
斗鱼直播相信大家都听说过,打开斗鱼官网就可以直接在浏览器中观看直播.那么斗鱼是如何实现浏览器视频直播的呢?本篇文章就来解析斗鱼是如何实现直播的,以及它是如何节省 80% 的 CDN 流量,要知道视频直 ...
- docker gitlab迁移 备份 部署 搭建以及各种问题
当前环境 服务器A 服务器B ubuntu docker gitlab(版本一致) docker安装gitlab 由于考虑到gitlab 包含了⾃身的nginx.数据库.端⼝占⽤等等因数,这⾥使⽤的是 ...
- API接口笔记
1.基类 定义返回信息 protected $user; //用户表 protected $token; //用户token protected $isSuccess = FALSE; //状态是 ...
- springboot+bootstrap实现图书商城管理(大三下学期课程设计)
在csdn上记一次自己的课程设计过程(已经实习两个月了.感觉这个很容易做.支付可能需要多花点时间.): 在此框架基础之上权限认证管理设置成功:https://blog.csdn.net/weixin_ ...
- python dir函数解析
dir() 函数 不带参数,直接执行是返回当前环境中对象的名称列表.指定对象的名称作为参数执行,返回指定对象当中的属性(包括函数名,类名,变量名等) 下面我们具体找几个例子测试一下 dir() ...
- Vitepress搭建组件库文档(下)—— 组件 Demo
上文 <Vitepress搭建组件库文档(上)-- 基本配置>已经讨论了 vitepress 搭建组件库文档的基本配置,包括站点 Logo.名称.首页 home 布局.顶部导航.左侧导航等 ...
- Spark简单介绍,Windows下安装Scala+Hadoop+Spark运行环境,集成到IDEA中
一.前言 近几年大数据是异常的火爆,今天小编以java开发的身份来会会大数据,提高一下自己的层面! 大数据技术也是有很多: Hadoop Spark Flink 小编也只知道这些了,由于Hadoop, ...
- Django Admin save 重写 保存
在 django admin管理控制台中,用户按下"Save and add another",表单的字段值仍然填充最后插入的值 并且保存 在ModelAdmin中添加选项save ...
- mysql是如何实现mvcc的
mvcc的概念 mvcc即多版本并发控制,是一种并发控制的策略,能让数据库在高并发下做到安全高效的读写,提升数据库的并发性能; 是一种用来解决并发下读写冲突的无锁解决方案,为事务分配单向增长时间戳,为 ...
- KubeEdge的云边协同设计原理
1.云端组件与K8s Master的关系 cloudCore和K8s master,非侵入的映射 2.EdgeController详解 -边缘节点管理 -应用状态元数据云边协同 3.DeviceCon ...