在开发过程中,不需要我们自己从0创建整个工程,只需要以SDK里面已有的工程为模板,在该工程基础上进行开发。例如,如果开发GATT设备,则在simpleBlePeripheral工程基础上开发;如果开发HID设备,则在HIDKeyboard工程基础上进行开发。
本文以SDK_3.1.1.2/example/ble_peripheral/simpleBlePeripheral 工程为例介绍Keil编译工具里的配置设置。
1、打开工程Options选项卡。
2、Device和Target为工程固定信息,不需改动。
3、Output为工程编译输出目录。
4、User为用户自定义区,本工程使用formelf将最终目标文件simpleBlePeripheral.hex生成到bin文件目录。
5、C/C++栏为配置宏定义及文件路径。
5.1 DEBUG_INFO=1 为打开工程调试信息。
5.2 CFG_SLEEP_MODE=PWR_MODE_SLEEP 为配置低功耗,
PWR_MODE_NO_SLEEP为不使能低功耗,IC为全功耗运行。
6、Linker栏的scatter File可以配置XIP
XIP
eXectue In Plaec,指芯片内执行。应用程序可以直接在norflash内运行,不必再上电把代码读到系统RAM中。需要注意的是,片内执行不是说程序直接在flash内执行,仍然需要cpu进行取指、译码和执行操作。其中的关键就是取指,norflash必须满足cpu一个地址一个指令或数据的要求。
在配置XIP时,可以将Code较大的文件放在XIP,但是为了保证中断的响应速度,不要将中断服务函数放在XIP(会导致严重问题)。
在Listings文件目录下的.map文件是工程编译输出文件。
在Image component sizes处可以查看本工程编译的相关信息:
可以与分散加载文件scatter_load.sct关联分析,将文件较大的gattservapp,gapgattserver,peripheral等文件放在了XIP中。
8、查看SRAM使用情况
根据工程SRAM具体使用情况,选择使用几个SRAM块。
SRAM0:32K,0x1FFF0000--0x1FFF7FFF
SRAM1:16K,0x1FFF8000--0x1FFFBFFF
SRAM2:16K,0x1FFFC000--0x1FFFFFFF
在工程map文件中搜索__initial_sp,该值即为SRAM真实使用大小。
__initial_sp的值不能超出64K大小,如果超出,可以使用XIP将部分代码放在norflash中。
原文地址:https://www.jb51.cc/wenti/3279760.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。