旺凌科技OPL1000开发环境搭建

一、OPL1000的内部存储结构

OPL1000 包含两个 MCU,ARM Cortex M3 和 Cortex M0。所谓 OPL1000 APP 开发是指在 OPL1000 的 M3 MCU 上开发用户的应用程序。OPL1000 的原初 M3、M0 固件以 ROM CODE 的方式包含在芯片中。除此之外由于功能扩展和修复 Bug,OPL1000 也提供了 M3 和 M0 的固件补丁。因此用户 App的开发是基于 ROM Code 和固件补丁基础上完成的。它们之间的关系可以用图 Figure 1 表示。
Figure 1: 用户 APP 和 ROM CODE,Patch 之间的关系
在这里插入图片描述
M0 的 Patch 以二进制文件的方式由 Opulinks 给出。M3 Patch 以 lib 库文件的方式提供,用户的 APP
和 Opulinks 提供的 SDK 源码作为一个 Keil C 工程进行编译,因此生成的 M3 bin 文件包含 M3 的固件
补丁,SDK 和用户 App 应用程序。最终 M0 的 Patch Bin 文件和 M3 的 Bin 文件合并后下载到片外 Flash
中,OPL1000 芯片上电后,将 Flash 中的 M3/M0 Bin 文件载入到 RAM 中执行。整个过程可以用图
Figure 2 表示。
在这里插入图片描述
OPL1000 支持两种类型的 Bin 文件。一种称为“Pure Bin”文件,即在 Figure 2 所示过程。用户的应用
程序编译出 M3 bin 文件之后和 M0 Bin 文件合并在一起,构成 opl1000.bin。该文件存放在 Flash
0x0000 位置,不包含 OTA loader,也不支持 OTA(空中下载) 功能。另一种称为“OTA Image”文
件。它是在“Pure Bin”文件的基础上,增加了 OTA Loader,Bin Header 等信息,构成可以支持 OTA
空中下载的固件文件。使用 download tool 生成的文件名为 opl1000_ota.bin。

二、OPL1000的OTA原理

旺凌科技OPL1000的OTA升级采用乒乓升级方式
在FLASH中维护着两套固件信息,分别存放在不同的位置。
OTA Header信息包括有OTA bin固件的芯片类型、版本信息、固件校验和、固件尺寸大小、Header校验和等信息
如果正在执行的是ota1固件,则将空中下载的固件放置到第二个ota.bin的位置

在这里插入图片描述

与table1(FLASH的地址映射)对应的ota image地址映射:
前三个区域与table1相同,但由于opl1000_ota.bin只包含一个bin文件,因此没有第五个区域,即第二个ota.bin文件数据。并且第四个区段的大小由固件尺寸决定。假定 Flash 中已经存在一个 OTA image,例如对应于 Table1 中的第一个 OTA Bin 文件。那么新下载的 opl1000_ota.bin 文件第 2,4 区段内容将填充 Flash Table1 中的第 3和 5 区段。
在这里插入图片描述
注意 opl1000 固件支持空中下载有两个前提,一个是具备 opl1000_ota.bin 结构,另一个是 OTA Bin 文
件本身支持通过 BLE 或者 WIFI 获取固件功能。对于支持 OTA 功能的用户 APP 编译,下载过程如 Figure3 所示,它包括两次 Pack 合并功能。一次是将用户 APP bin 文件和 M0 bin 文件合并为 opl1000.bin。
第二次是将 opl1000.bin,OTA loader 以及 opl1000.bin 的 Header 信息合并在一起,构成
opl1000_ota.bin 文件。
在这里插入图片描述

三、开发流程

1、IDE在线调试开发模式(只将M0固件下载到FLASH中,随后debug仿真,M3的固件运行在RAM中,没有下载到flash中)
2、串口调试开发模式(需要将M0+M3固件合并下载到FLASH中,随后烧录运行)

这里采用串口调试开发模式

下载helloworld工程:
https://github.com/Opulinks-Tech/OPL1000A2-SDK

下载好 repo 后,切换到 SDK \APS_PATCH\examples\get_started\hello_world 目录下,打开
opl1000_app_m3.uvprojx 工程文件
在这里插入图片描述
在 Keil C 界面下,点击“rebuild”按钮,编译 hello_world 工程。
在这里插入图片描述
编译成功后在\Output\Objects 目录下生成 opl1000_app_m3.bin 文件如下:
在这里插入图片描述
在编译好后,打开 OPL1000 download tool 把上面生成的 opl1000_app_m3.bin 和 m0.bin 打包
(pack)成 OPL1000 固件。
在这里插入图片描述
在 pack 好 OPL1000 固件后,切换到 Download 界面。点击“Load”按钮,选择上面 pack 好
OPL1000 固件(默认情况下已经选中它了),点击”Download”按钮开始下载【注意:在按下”
Download”按钮后,请在 5 秒内复位一下开发板(按一下复位按钮)】

在这里插入图片描述
下载完成后,打开 APS 串口,查看在串口上打印的 log 信息如下:

串口输出:
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值