扩大sbl代码段

一、简介

本文以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

技术交流QQ群(香瓜BLE之CC2541):127442605


四、实验前提

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

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)

[cpp]  view plain  copy
  1. // CODE Root - Taking the first 2K of flash (the 1st page contains the INTVEC's).  
  2. //  
  3. -D_IVEC_BEG=0x0000  
  4. -D_IVEC_END=0x07FF  

修改为

[cpp]  view plain  copy
  1. //8K  
  2. -D_IVEC_BEG=0x0000  
  3. -D_IVEC_END=0x1FFF  

注意这里必须要修改,不能用//注释,否则后面工程编译会报错。


2、修改SBL工程中的文件(……BLE-CC254x-1.4.0\Projects\ble\util\SBL\iar\cc254x\sbl.eww

1)修改跳转地址(sbl_main.c

[cpp]  view plain  copy
  1. asm("LJMP 0x2000");       //8K asm("LJMP 0x800");    

2)修改跳转地址(sbl_ivec.s51)

[cpp]  view plain  copy
  1. OFFSET   EQU    0x2000//8K 0x800  

3)修改CRC地址(sbl_app.h)

[cpp]  view plain  copy
  1. /* 
  2. #define HAL_SBL_IMG_BEG                (uint16)(0x800 / HAL_FLASH_WORD_SIZE) 
  3. #define HAL_SBL_IMG_CRC                (uint16)(0x890 / HAL_FLASH_WORD_SIZE) 
  4. */  
  5. //8K  
  6. #define HAL_SBL_IMG_BEG                (uint16)(0x2000 / HAL_FLASH_WORD_SIZE)  
  7. #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)修改应用代码首地址

[cpp]  view plain  copy
  1. // CODE  
  2. //  
  3. -D_CODE_BEG=0x0800  
  4. -D_CODE_END=0x7FFF  
修改为

[cpp]  view plain  copy
  1. // CODE  
  2. //  
  3. -D_CODE_BEG=0x2000  
  4. -D_CODE_END=0x7FFF  

2)修改CRC地址

[cpp]  view plain  copy
  1. -Z(CODE)CHECKSUM=0x890-0x891  
  2. -Z(CODE)CRC_SHDW=0x892-0x893  
修改为

[cpp]  view plain  copy
  1. -Z(CODE)CHECKSUM=0x2090-0x2091  
  2. -Z(CODE)CRC_SHDW=0x2092-0x2093  

3)修改CRC算法中使用到的CRC地址

[cpp]  view plain  copy
  1. -J2,crc16,=_CODE_BEG-890,894-_BANK7_END  
修改为

[cpp]  view plain  copy
  1. -J2,crc16,=_CODE_BEG-2090,2094-_BANK7_END  

4、实验结果

1)按照《CC2541之SBL》中的步骤重做,会发现应用工程中的simpleBLEPeripheral.map中的应用代码位置由2K(0x800)位置变为8K(0x2000)位置,对比如下图



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值