CC2541 OAD总结

原创 2015年07月08日 11:01:30

1、2541的OAD要加上ccservice这个profile才能工作,但源码工程没包含。

2、OAD的工作模式是:BIM+A+B

     BIM根据FLASH里的一个掩码来选择启动A还是B,一般是用A来作OAD升级程序,B是正常使用的固件。

     当固件要更新流程是:

    B收到手机软件端命令,自己复位到A,然后手机软件与A连接,进行OAD,下载更新完A会自动复位到B运行。

void enter_oad(void)
{
  
    GAPRole_TerminateConnection(); 
#ifdef FEATURE_OAD    
    uint16 crc[2] = { 0x0000, 0xFFFF };
    uint16 addr = OAD_IMG_R_PAGE * ((uint16)(HAL_FLASH_PAGE_SIZE / HAL_FLASH_WORD_SIZE)) + OAD_IMG_CRC_OSET / HAL_FLASH_WORD_SIZE;
    HalFlashWrite(addr, (uint8 *)crc, 1);
#endif
    HAL_SYSTEM_RESET();
}

3、OAD过程android和ios中会存在着service的缓存的更新, 软件端要先订阅0x2a05 (services changed)这个服务,然后设备端调用GATTServApp_SendServiceChangedInd

这样软件就会自动更新服务缓存。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【BLE】CC2541之OAD

本篇以SimpleBLEPeripheral工程为例,介绍如何进行OAD升级

CC2541 Large OAD 空中升级方式

CC2541 OAD 有两种方式,一种是Flash对半分成Image A和Image B的,另一种是Large Image OAD. Large Image OAD 这种方式的好处是可以通过压缩Ima...

【BLE】-CC2541 OTA 程序开发手册介绍

1.目的使开发者能够快速的使用TI BLE 协议栈在CC2541 的SOC上进行TI OAD Profile 功能的开发。2.功能概要BLE 协议栈有一个可拓展的特性 OAD,它提供了一种增值服务通过...

【BLE】CC2541之Large OAD

本篇以SimpleBLEPeripheral工程为例,介绍如何进行Large OAD升级

CC2541之OAD问题总结

第一篇博客,为记录、为交流。 一、简介 本篇以SimpleBLEPeripheral工程为例,使用空中升级功能。 二、实验平台 协议栈版本:BLE-CC254x-1.4...
  • wqw1233
  • wqw1233
  • 2015年12月11日 14:46
  • 991

TI CC2541 OAD流程

TI CC2541 提供空中升级更新运行demo,该功能其实实用性比较差,由于低功耗蓝牙传输数据的限制,无法实现快速空中升级, 在bin文件为126K的情况下本人最快的记录是2mine,如果需要楼主...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

CC2541之电池电量服务

转自:http://blog.csdn.net/feilusia ps:1、注意分压电阻,最好两个电阻都超过100k,      2、resolution为 HAL_ADC_RESOLUTION_...

CC2541关于OAD空中升级(安卓客户端收不到服务的)

OAD升级关于安卓找不到服务的解决方法

CC2541堆内存布局与如何合理分配其大小分析

1 osal_mem_alloc()和osal_mem_free()的用法类似标准C语言中的malloc和free函数。 2 堆内存的大小可以通过INT_HEAP_LEN来配置。 3 可以在工程选项里...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CC2541 OAD总结
举报原因:
原因补充:

(最多只允许输入30个字)