TI中文支持网
TI专业的中文技术问题搜集分享网站

cc2530 SBL功能

各位专家好,

基于应用需要准备给CC2530增加串口升级程序的功能。

现在已经通过TI的SerialBootTool调通了。

具体应用:通过设备上的单片机对ZigBee进行串口升级程序。

需求:能否提供下串口升级的具体流程,包括帧格式,校验计算等细节!万分感谢!

Sfei:

@VV 求助VV!

Sfei:

回复 Sfei:

自己先说说已知的,

首先是指令:

// Bootloader Serial Interface Subsystem#define SB_RPC_SYS_BOOT 0x4D

// Commands to Bootloader#define SB_WRITE_CMD 0x01#define SB_READ_CMD 0x02#define SB_ENABLE_CMD 0x03#define SB_HANDSHAKE_CMD 0x04

我通过串口工具检测整个流程,知道了个大概:

PC发送指令:FE 00 4D 10 5D   //10是什么鬼?

然后发送:FE 00 4D 04 49   //04对应SB_HANDSHAKE_CMD

ZB回复:FE 01 4D 84 00 C8 

然后就开始发包了:FE 42 4D 01 00 00 02 2A 55 02 21 DA FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 02 27 1B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 4B 

此时ZB会回复:FE 01 4D 81 00 CD   //81是写入?00是成功?

…………………………//一直发一直回

PC发送:FE 42 4D 01 F0 E9 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 17

ZB回复:FE 01 4D 81 00 CD 

一共E9F+1=3744包

发完之后,还要再确定一遍:

PC发:FE 02 4D 02 00 00 4D    //SB_READ_CMD

ZB回:FE 43 4D 82 00 00 00 02 2A 55 02 21 DA FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 02 27 1B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF C9   //该指令数据域内除首字节是00外与一开始PC发的数据一致,00是读取成功?

………………//一直问,一直回

PC发:FE 02 4D 02 F0 E9 54 

ZB回:FE 43 4D 82 00 F0 E9 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 95 

完成后,PC再发:FE 00 4D 03 4E   //03对应SB_ENABLE_CMD,,程序生效?

Sfei:

回复 Sfei:

不知道我描述的对不对,另外,每帧的最后那位是校验值吧,这个又是怎么计算啊

Sfei:

for (idx = SB_CMD2_STATE; idx < len; idx++) { rsp ^= sbBuf[idx]; } sbBuf[idx++] = rsp;

上述应该就是SBL的校验,ZB回复的时候(sbBuf[SB_CMD2_STATE] |= 0x80),命令二会或上80,

不知我整体思路对不对,正确的话我就要操作啦,来个人给确认下啊!

Sfei:

回复 VV:

感谢VV的解答,继续追问:

SBL和OTA功能都要求APP code不做flash lock。但不lock我们曾遇到固件变异的情况。lock标志位存于最后一页只读flash中。

手册说只在调试状态下可修改,问:想通过MCU实现修改flash lock标志位,有没有程序例子什么的可供参考?非常感谢!

Sfei:

回复 VV:

比如CCDebguuer 里CC2511的处理方式?

WeiXiang Wan:

回复 Sfei:

这个是bootloader的源码说明,也适用于cc2530的。题主是自己写了sbl Demo吗

user5342508:

回复 Sfei:

怎么没有更新了,现在楼主找到升级方案了吗,我现在也是不想暴露2530的uart,想通过MCU升级

赞(0)
未经允许不得转载:TI中文支持网 » cc2530 SBL功能
分享到: 更多 (0)