【BLE】CC2541之SBL修改bootloader大小
来源:互联网 发布:网络交换机品牌排行 编辑:程序博客网 时间:2024/05/22 03:08
本篇博文最后修改时间:2016年11月11日,09:11。
一、简介
本文以SimpleBLEPeripheral工程为例,介绍如何将SBL的bootloader的默认大小从2K修改为8K。
二、实验平台
协议栈版本:BLE-CC254x-1.4.0
编译软件:IAR 8.20.2
硬件平台:Smart RF(主芯片CC2541)
下载软件:SerialBootTool-v1.3.2
三、版权声明
博主:甜甜的大香瓜
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.NET/feilusia
联系方式:897503845@qq.com
香瓜BLE之CC2541群:127442605
香瓜BLE之CC2640群:557278427
Java零基础入门交流群:541462902
四、实验前提
在进行本文步骤前,请先阅读以下博文:
1、《CC2541之SBL》:http://blog.csdn.net/feilusia/article/details/52016766
五、实验步骤
1、修改SBL的xcl文件(……\BLE-CC254x-1.4.0\Projects\ble\util\SBL\app\cc254x\sbl_cc254x.xcl)
将
// CODE Root - Taking the first 2K of flash (the 1st page contains the INTVEC's).//-D_IVEC_BEG=0x0000-D_IVEC_END=0x07FF
修改为
//8K-D_IVEC_BEG=0x0000-D_IVEC_END=0x1FFF
注意这里必须要修改,不能用//注释,否则后面工程编译会报错。
2、修改SBL工程中的文件(……BLE-CC254x-1.4.0\Projects\ble\util\SBL\iar\cc254x\sbl.eww)
1)修改跳转地址(sbl_main.c)
asm("LJMP 0x2000"); //8K asm("LJMP 0x800");
2)修改跳转地址(sbl_ivec.s51)
OFFSET EQU 0x2000//8K 0x800
3)修改CRC地址(sbl_app.h)
/*#define HAL_SBL_IMG_BEG (uint16)(0x800 / HAL_FLASH_WORD_SIZE)#define HAL_SBL_IMG_CRC (uint16)(0x890 / HAL_FLASH_WORD_SIZE)*///8K#define HAL_SBL_IMG_BEG (uint16)(0x2000 / HAL_FLASH_WORD_SIZE)#define HAL_SBL_IMG_CRC (uint16)(0x2090 / HAL_FLASH_WORD_SIZE)
3、修改应用工程的xcl文件(……\BLE-CC254x-1.4.0\Projects\ble\common\cc2540\cc254x_f256_sbl.xcl)
1)修改应用代码首地址
将
// CODE//-D_CODE_BEG=0x0800-D_CODE_END=0x7FFF修改为
// CODE//-D_CODE_BEG=0x2000-D_CODE_END=0x7FFF
2)修改CRC地址
将
-Z(CODE)CHECKSUM=0x890-0x891-Z(CODE)CRC_SHDW=0x892-0x893修改为
-Z(CODE)CHECKSUM=0x2090-0x2091-Z(CODE)CRC_SHDW=0x2092-0x2093
3)修改CRC算法中使用到的CRC地址
将
-J2,crc16,=_CODE_BEG-890,894-_BANK7_END修改为
-J2,crc16,=_CODE_BEG-2090,2094-_BANK7_END
4、实验结果
1)按照《CC2541之SBL》中的步骤重做,会发现应用工程中的simpleBLEPeripheral.map中的应用代码位置由2K(0x800)位置变为8K(0x2000)位置,对比如下图
2)用手机app搜索,依然能正常搜到设备的广播。因此,实验成功。
- 【BLE】CC2541之SBL修改bootloader大小
- 【BLE】CC2541之SBL
- 【BLE】CC2541之修改MAC
- 【BLE】CC2541之修改广播时间
- 【BLE】CC2541之修改广播通道
- 【BLE】CC2541之notify
- 【BLE】CC2541之按键
- 【BLE】CC2541之RSSI
- 【BLE】CC2541之OLED
- 【BLE】CC2541之indicate
- 【BLE】CC2541之timer3
- 【BLE】CC2541之看门狗
- 【BLE】CC2541之SNV
- 【BLE】CC2541之OAD
- 【BLE】CC2541之PWM
- 【BLE】CC2541之OAD
- 【BLE】CC2541之BTool
- 【BLE】CC2541之timer1
- hdu5754 Life Winner Bo (博弈混合)
- 基于arm的音乐播放器制作
- HDU5754 2016年第三场多校C
- HDU 1203 背包问题
- 【Python】基础学习——列表(list),元祖(tuple),字典(dict),字符串(string),集合(set)
- 【BLE】CC2541之SBL修改bootloader大小
- LoadRunner手动关联具体步骤
- TCP/IP,http,socket,长连接,短连接
- 顺序表应用1:多余元素删除之移位算法
- Codeforces Beta Round #95 (Div. 2) E. Yet Another Task with Queens(模拟)
- 【9005】最短网络agrinet
- 记录在写学术论文时使用MATLAB制作折线图
- MAC地址特殊规定--设置MAC地址时需要有非法MAC设置判断,否则会导致网卡无法启动
- 【CodeForces】[274A]k-Multiple Free Set