EDA365电子论坛网

标题: 【Ai8051U&OTA】分享个固件&Apk,安卓OTG升级 [打印本页]

作者: 岁月如歌21    时间: 2025-10-16 08:56
标题: 【Ai8051U&OTA】分享个固件&Apk,安卓OTG升级
本帖最后由 岁月如歌21 于 2025-10-16 09:23 编辑
; v; \4 v- b# w0 @, `, Q+ G5 ?1 E/ j; s' {% k: \. L$ N! N
7 |; P; H1 Y% r
一.概述OTA的两种分区模式:
a) 用户程序区 + EEPROM + 用户系统区
b) 用户系统区 + 用户程序区 + EEPROM: ]  [0 i2 [& D9 t
这次踩的坑主要是在模式b上玩Ai8051U芯片AIAPP-ISP里的“用户系统区”设置,再加上下图左上角的误导,一错千里.... :(
模式a(貌似是Ai8051U独有?),keil中常规设置不需要管理中断映射\rom分布等问题,空间布局直接在AIAPP-ISP程序里设置,使用IAP_CONTR寄存器切换系统区和APP区。
/ P1 K. c& F, m& `6 l) a
: h$ q' N0 c9 U: R2 l: z/ E
7 {; r3 p% S3 J, a& w
二.Ai8051U用户系统区使用操作流程
2 d* d9 U" k+ x6 X# O3 Z5 z
下面主要记录下模式a的使用流程:
1.常规开发自己的用户系统区和用户程序区,参考链接1或附件。
2.两个区可以同时烧录,也可以只烧录系统区,自己通过串口等途径烧录用户区。
7 ?, c- N. n, f* K! y$ d
4 s# h1 ^! v1 o: M' e$ v这里分区使用模式a) 用户程序区54K + EEPROM 2K + 用户系统区 8K。注意这里的EEPROM大小选择10k实际涵义为(2K EEPROM + 8K系统区)1 Y+ K: A) Y- D, q$ h/ }! _
: R$ F/ ^" V  o' L3 V
三、模式a地址分布验证: ]( }  c' B8 q9 T: T
用户系统区程序:1 K- Z4 j1 ^2 g

/ q- Z/ I. f' B% _& b用户程序区代码:
9 |; M; Z5 v: [

4 L, M6 V  t/ `- _7 g* J输出结果:7 S# P& x7 z- U) ~+ M: Y

0 [- q1 F- Y: l2 B' k 1 R( V* f; w( o9 J

. @* M1 Q3 w; y4 R0 u, Y; V4 n四、otg升级测试- W! E( X, ~) \2 _6 C: f
4.1 自定义协议
APKP0 : 擎天柱P2灯全亮
APKP1 : 擎天柱P2灯全灭
APKPO : 用户区进入系统区
APKPP : eeprom测试
APKPR : 重置OTA流程,传输bin总大小
APKPE : 删除用户区片头
OTAP : 分包升级协议,OTAP包头 + 包内容 + crc-16\x25校验,当前一包最大64字节- B$ f7 d6 [* \& i, Z/ i! [5 A' Z( e0 V
4.2 操作流程1 F/ M: W# ^5 F9 Q
如视频演示:
1.连接设备和手机,app里扫描设备,连接
2.接口界面测试灯亮灭,通讯正常
3.ota界面发送指令,进入系统区
4.设备界面重新连接
5.选择bin文件
6.烧录,等待提示ota流程结束
7.重新连接4 I6 Y7 K+ I0 h4 G, k( f
4.3 一个和安卓otg流程相同的pc验证脚本
* w, w1 D+ Y  x, n: H  U# Q
命令行调用,输入自己的bin路径和串口号即可:3 c$ c" x& K4 o
1.python .\main.py --bin_path .\Ai8051U-C251-APP-P27.bin --com_port COM36
. s) m5 Z. w( h4 z" H, c; e& P' X2 E2.
python .\main.py --bin_path .\Ai8051U-C251-APP-P20.bin --com_port COM36
0 D; c, H# {$ w! a/ G+ w& g

作者: Sleep_xz    时间: 2025-10-16 09:39
这个开发板功能很强大




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2