【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

香瓜单片机之STM8/STM32群:164311667
甜甜的大香瓜的小店(淘宝店):https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i


四、实验前提

在进行本文步骤前,请先阅读以下博文:

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搜索,依然能正常搜到设备的广播。因此,实验成功。
  









0 0
原创粉丝点击