【BLE】CC2541之SBL修改bootloader大小

本篇博文最后修改时间: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搜索,依然能正常搜到设备的广播。因此,实验成功。
  









评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值