ZigBee EmberZNet Bootloader介绍及外挂Flash OTA时修改Bootloader的方法
来源:互联网 发布:为什么淘宝助理打不开 编辑:程序博客网 时间:2024/06/05 08:48
1.基本介绍
Silicon labs公司的为ZigBee设备提供了两种Bootloader:standalone 和 application,它们的区别在于占用的flash空间大小和位置不同,ZigBee设备如果没有bootloader则需要烧录器才能更新固件程序,无法通过OTA来升级固件。
1.1.在flash头部会预留8kB或者16KB空间给Bootloader,在flash尾部会预留4kB到36KB空间给simulated EEPROM 相关介绍,虚拟内存如下
1.2 Standalone Bootloader与应用程序相对独立,应用程序通过halLaunchStandaloneBootloader() API函数来调用它之后,它会通过串口,SPI接口或者OTA等方式获取更新固件,更新固件的方式是新固件直接覆盖旧固件,如果失败则必须重新重头开始获取新固件,无法恢复到原来的旧程序,整个Bootloading 过程中不需要应用程序的参与。
1.3 Application Bootloader需要通过应用程序(OTA,串口等方式)去获取新固件,无论下载的新固件是放在外部存储器还是内部存储器,一旦下载完会调用Application Bootloader去校验下载的新固件,并拷贝到内部flash,如果检验失败则会启动恢复模式,由于Application Bootloader不参与文件下载的过程,因此会比Standalone Bootloader程序占用的空间小很多,原本预留的空间剩下的部分用来存储恢复文件,如果下载过程中出现错误不会对当前运行的程序产生影响,下载可以重新开始或者暂停
2.对于不同信号的芯片,硬件资源不一,可配置的Bootloader也不一样,
如EM3585:
EM357:
另外,使用带secure的bootloader的设备需要烧写key,此key同样用于制作升级文件的EBL文件:
根据不同芯片,不同需求选择不同配置类型的bootloader,使用内部flash做OTA升级的一般用 secure local storange或者 local storange,使用外挂flash则选择secure application或者application。
3.外挂flash修改bootloader驱动方法(EM3585):
a.打开Ember Desktop,修改工程配置,选择Bootloader 类型为secure application或者application(我们以不加密的为例),然后生成IAR工程
b.打开EmberZNet5.6.0.1-GA\tool\bootloader-em3585\app-bootloader目录下的IAR工程app-bootloader.eww
c.修改的flash驱动,驱动程序要根据接口协议(常见的像SPI,I2C)来选择具体的实现方法,总之,我们需要替换IAR工程里面的at45sb021d.c文件的接口:
halEepromInit,
halEepromRead,
halEepromWrite,
halEepromShutdown,
(const void *(*)(void))halEepromInfo,
halEepromErase,
halEepromBusy,
把他们修改成自己所使用的flash型号的对应的驱动,编译之后产生EmberZNet5.6.0.1-GA\tool\bootloader-em3585\app-bootloader目录下的app-bootloader.s37文件,即我们要的Bootloader程序,此程序需要与应用程序编译产生的.ebl 或者.s37文件一同烧录进EM3585模块
- ZigBee EmberZNet Bootloader介绍及外挂Flash OTA时修改Bootloader的方法
- bootloader的具体介绍
- bootloader的功能介绍
- 2440的flash、linux、bootloader
- ARM简介及BootLoader介绍
- ZigBee EmberZNet 常用的数据表
- bootloader修改
- Bootloader介绍
- bootloader介绍
- Bootloader介绍
- Bootloader 介绍
- Bootloader介绍
- bootloader介绍
- bootloader介绍
- bootloader介绍
- Bootloader介绍
- Bootloader介绍
- Bootloader
- lxc基本命令(lxc-checkconfig,lxc-create等命令)
- Delaunay三角剖分算法
- OpenGL核心技术之Gamma校正
- 在数据库中索引的使用须知。
- Apache Solr入门教程(初学者之旅)
- ZigBee EmberZNet Bootloader介绍及外挂Flash OTA时修改Bootloader的方法
- HDU4545 魔法串 字符串处理
- Lcx的多种用法:3个功能+9个参数
- 九大基础排序总结与对比
- 程序员必读书籍排行榜
- java虚拟机垃圾回收的几个特点
- Error converting bytecode to dex:Dex cannot parse version 52 byte code
- Android网络请求框架AsyncHttpClient详解(整理)
- java开发总结