CC2541 OAD空中升级存储问题解决方法 最近做BLE CC2541 OAD空中升级,鉴于256K的flash,如果编译代码code大的话,存储空间显得有些力不从心。有的人会采用双CPU工作,主从形式,不过显得有些奢侈。Flash分成三个区:bootloader(BIM)、Image-A、Image-B区。bootloader(BIM)区是固定的不用改,Image-A应该尽量小,这样Image-B才会有足够的升级空间。遇到的问题列一下:
1.在PC端用SmartRF Flash Programmer软件下载好BIM、Image-A之后,BIM下载时Actions要选择全部擦除芯片。下载Image-A要选择烧录到前一个映像后面Append and verify。然后打开BLE Device Monitor软件进行Image-B bin文件写入。遇到端口无反应
这是因为USB Dongle固件的问题,在作为BToolBLE Device Monitor 使用前,需要下载对应的固件,在协议栈目录下:c:Texas InstrumentsBLE-CC254x-1.4.0AccessoriesHexFilesCC2540_USBdongle_HostTestRelease_All.hex下载后就可以识别端口了。
2.下载了BIM和Image-B,用BLE Device Monitor加载Image-B .bin文件后,点击Start开始升级,一会就断开连接,软件自动关闭。如下: 这是可能由于软件版本太低的原因,下载最新的即可。
不过感觉在PC端升级时间太长,可以适当修改从机的连接参数,速度会提升。如: // Minimum connection interval (units of 1.25ms, 80=100ms) if automatic parameter update request is enabled #define DEFAULT_DESIRED_MIN_CONN_INTERVAL 16//80
// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic parameter update request is enabled #define DEFAULT_DESIRED_MAX_CONN_INTERVAL 16//800
// Slave latency to use if automatic parameter update request is enabled #define DEFAULT_DESIRED_SLAVE_LATENCY 0
// Supervision timeout value (units of 10ms, 1000=10s) if automatic parameter update request is enabled #define DEFAULT_DESIRED_CONN_TIMEOUT 50//1000
// Whether to enable automatic parameter update request when a connection is formed #define DEFAULT_ENABLE_UPDATE_REQUEST FALSE//TRUE
|