stm32w108 Bootloader的使用
来源:互联网 发布:变色龙运行mac黑屏 编辑:程序博客网 时间:2024/06/06 01:29
stm32w108系列可以通过radio无线射频发送数据,也就是说可以通过无线来更新程序。在线升级。开始也是摸索下,下载了st公司提供的simplemac源程序。 分析了几天源代码,但是不知道怎么用,后来查找资料大楷明白了是什么流程。
其实可以理解为两个程序 ,FLASH中有两段代码,一段是IAP代码,另一段就是用户的应用程序即APP代码,以自己理解的话,只有当APP代码段跳刀iap的时候,程序就进入了升级模式,拿simplemac的sun的例子来说 ,有一个“O”commend,通过串口输入O就进入iap。当然这只是基本的程序流程。下载的
时候注意的东西还是蛮多的。下面是做的时候出的些错误。(iar环境下编译调试的,注意下iar版本,有的源代码不能在低版本运行。)
1选择正确的device 。就拿我这块板子来说源代码初始设置是st stm32w108cc 编译可以通过,但是下载时候报错。后来换成stm32w108cb(板子的datasheet可以找到)。
2.通过分析源代码,了解到app的代码段运行在0x08003000后,所以要设置下载地址。iar就可以。option的linker下 点击edit(可能有的不能编辑,可以先选取edit上的选项再编辑,就可以弹出对话框)。
IAP跳转的地址必须APP的起始地址一致,相应的中断向量表(开始就是因为这个问题走了很多弯路。)也要修改,否则APP将不能正确的运行。代码中,串口方式的IAP跳转的地址为0x08003000,因此应用程序的起始地址也应为0x08003000。如下图所示:
后面再改memory:
后面再通过其他下载工具把simplemac里面的STM32W108xx_SimpleMAC_V2.0.1\Utilities\iap_bootloader\STM32W108xB文件夹的iap_bootloader.s37加载到0x08000000上面。这样就下载好了第一块板子。
既然是在线通信,当然是两块板子配合。另一块板子下载Bootloader_demo这个程序。然后通过串口调试。下载过程如下:
1通过串口打开进入“o”模式。(例子:sun),可以单步走来看下流程。(以前如果没有下载iap_bootloader.s37的话会一直死在硬件错误中断里面,while(1);里面,如果加载了可以在调试工具里面看到程序运行在0x08000000下面点。因为app是下载到0x08003000后面,就可以理解为程序已经跳转到升级模式下面了)。
2在另一块板子下面可以看到有些get loadimage等命令。可以输入loadimage这样就可以把一段程序下载到第一块板子上面了。(可以在源码中找到const unsigned char image[] = { 0x00,0x04,..........................)很长很长····。文件名是image.h/image256.h.
3.运行loadimage。串口会打印进度条。(如果是node not found的话有可能是距离的问题。话说我们那块板子很多时候要把两块芯片挨的足够近才能够发送数据。略坑··)
4.会显示下载时间什么的。这时第一块板子会重启变成下载的那个程序。
- stm32w108 Bootloader的使用
- stm32w108 Hal_Driver库hal_uart.c的错误
- 003.FL2440 Bootloader VER-5.1的使用
- bootloader详解----bootloader的基本概念
- 与AN2546协同使用的LFAE BootLoader示例与接口(S12X bootloader)
- 使用ADS调试bootloader
- nuc700 bootloader使用
- arm9 bootloader 的 MMU配置与使用--section
- Feescale K60开发笔记5: K60 Bootloader++的使用
- 怎么使用stm32写IAP的bootloader和APP
- 如何使用STM32F4的BootLoader和APP程序
- 怎么使用stm32写IAP的bootloader和APP
- 怎么使用stm32写IAP的bootloader和APP
- 怎么使用stm32写IAP的bootloader和APP
- 如何使用STM32F4的BootLoader和APP程序
- 17、Bootloader(1) ---Bootloader的结构
- Bootloader的作用、为什么需要Bootloader?
- MINIX3的BootLoader分析
- int *a; int &a; int & *a; int * &a
- php class
- 黑马程序员------------------泛型
- Git winxp实用出现Git.run() have no output问题解决办法
- ubuntu-10.04.4系统update以及upgrade失败解决办法
- stm32w108 Bootloader的使用
- .net(C#)命名规范
- Windows API 用户、认证和对象安全
- (数据结构)栈_迷宫求解(严蔚敏P50) _模仿
- 给树莓派安装看门狗
- 驱动第六天
- Android display架构
- SQL描述(3)
- 数据存储过程