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升级介绍及问题解答--(持续更新) 网络升级的更多相关文章

  1. 私人网盘系统2.0—全部升级为layUI+PHP(持续更新中)shang

    网盘系统2.0   上周,我做了第一版的“私人网盘系统”,http://www.cnblogs.com/sunlizheng/p/7822036.html 没看过的朋友可以去看一下,这周在家升级做了第 ...

  2. 网络存储技术介绍(1) ( based on zt)

    最近由于某同学微信发了一些网络存储的文章,开始感兴趣,稍微收集了一些 一.  网络存储技术 http://ask.zol.com.cn/q/187044.html  (yxr:很老的技术介绍吧) 网络 ...

  3. iOS开发网络篇—简单介绍ASI框架的使用

    iOS开发网络篇—简单介绍ASI框架的使用 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大 ...

  4. 网络攻防工具介绍——Wireshark

    网络攻防工具介绍 Wireshark 简介 Wireshark(前称Ethereal)是一个网络封包分析软件.它是一个理想的开源多平台网络协议分析工具.网络封包分析软件的功能是撷取网络封包,并尽可能显 ...

  5. 家庭洗车APP --- Androidclient开展 之 网络框架包介绍(一)

    家庭洗车APP --- Android客户端开发 之 网络框架包介绍(一) 上篇文章中给大家简单介绍了一些业务.上门洗车APP --- Android客户端开发 前言及业务简单介绍,本篇文章给大家介绍 ...

  6. SequoiaDB版本在线升级介绍说明

    1.前言 在SequoiaDB数据库发展过程中,基本保持每半年对外发行一个正式的Release版本.并且每个新发布的Release版本相对老版本而言,性能方面都有很大的提高,并且数据库也会在新版本中加 ...

  7. kali linux学习笔记(四) : 网络端口大全介绍

    端口大全介绍 2端口:管理实用程序 3端口:压缩进程 5端口:远程作业登录 7端口:回显 9端口:丢弃 11端口:在线用户 13端口:时间 17端口:每日引用 18端口:消息发送协议 19端口:字符发 ...

  8. Openstack 网络服务 Neutron介绍和控制节点部署 (九)

    Neutron介绍 neutron是openstack重要组件之一,在以前是时候没有neutron项目. 早期的时候是没有neutron,早期所使用的网络的nova-network,经过版本改变才有个 ...

  9. Openstack 网络服务 Neutron介绍和控制节点部署 (十)

    Neutron介绍 neutron是openstack重要组件之一,在以前是时候没有neutron项目. 早期的时候是没有neutron,早期所使用的网络的nova-network,经过版本改变才有个 ...

  10. 今天升级Xcode 7.0 bata发现网络访问失败。

    今天升级Xcode 7.0 bata发现网络访问失败.输出错误信息 The resource could not be loaded because the App Transport Securit ...

随机推荐

  1. CentOS部署MySQL

    Linux上安装MySQL 第一步:确保服务器在最新的状态(可有可无) [root@chenstudy ~]# yum -y update 第二步:检测系统是否自带安装MySQL 我之前安装过MySQ ...

  2. POJ1094 Sorting It All Out (floyd传递闭包)

    关系具有传递性,可以用floyd解决. 将关系都看做i<j的形式,令d[i][j]=1,如果d[i][j]=d[j][i]=1,说明矛盾:d[i][j]=d[j][i]=0,说明i与j的关系无法 ...

  3. 洛谷P2827 [NOIP2016 提高组] 蚯蚓 (二叉堆/队列)

    容易想到的是用二叉堆来解决,切断一条蚯蚓,其他的都要加上一个值,不妨用一个表示偏移量的delta. 1.取出最大的x,x+=delta: 2.算出切断后的两个新长度,都减去delta和q: 3.del ...

  4. 5.ElasticSearch系列之文档的基本操作

    1. 文档写入 # create document. 自动生成 _id POST users/_doc { "user" : "shenjian", " ...

  5. Chrony时间同步服务

    概:  网络时间协议(Network Time Protocol,NTP)是用于网络时间同步的协议.提供NTP时间同步服务的软件有很多,这里采用Chrony软件来实现时间同步 chrony 的优势:  ...

  6. 4.websocket基本概念

    websockey的模式就是在于当前端向后端发送请求创建一个websocket链连接之后,连接默认不断开,前端和服务端就维护了一个连接,前端可以通过连接给服务端发消息,服务端也可以通过连接给前端发消息 ...

  7. 7.pyagem-游戏背景

    背景交替滚动 游戏启动后,背景图像不断的向下移动 在视觉上产生角色不断向上移动的错觉 游戏背景不断变化,游戏主角的位置报错不变   实现方案 创建两张背景图 第一张完全和屏幕重合,第二章在屏幕的正上方 ...

  8. nrf52——DFU升级OTA升级方式详解(基于SDK开发例程)

    在我们开始前,默认你已经安装好了一些基础工具,如nrfutil,如果你没有安装过请根据官方中文博客去安装好这些基础工具,连接如下:Nordic nRF5 SDK开发环境搭建(nRF51/nRF52芯片 ...

  9. 【性能测试】Loadrunner12.55(二)-飞机订票系统-脚本录制

    1.1 飞机订票系统 Loadrunner 12.55不会自动安装飞机订票系统,要自己手动安装. 我们需要下载Web Tools以及一个小插件strawberry https://marketplac ...

  10. 所有selenium相关的库

    通过爬虫 获取 官方文档库 如果想获取 相应的库 修改对应配置即可 代码如下 from urllib.parse import urljoin import requests from lxml im ...