凡亿教育-小文
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | (3)配置SEGGER Embedded Studio编译器
(3)配置SEGGER Embedded Studio编译器

上一篇文章讲述了如何使用SEGGER Embedded Studio从零开始搭建工程模板,并成功构建工程下载到设备中运行。


(2)从零开始搭建SES工程模板


工程构建完成后,通常要使用SES编译器对工程进行一系列配置,才能正确下载到nRF52840芯片中运行,本章节将描述一些BLE工程里面较常用的配置,供各位开发者进行参考。


1、鼠标右键“Project ‘template_project’  ->  Options”,可以进入工程配置窗口。

e71b63d5760c60c572649ef1239593.jpg


2、如下图工程配置窗口所示,红框内分别有Debug,Release和Common这三个配置选项。这三个选项的关系是:Common选项配置是针对一些共有的选项进行设置的,而Debug和Release选项,则可以根据不同的场合进行细分定义,也可以直接继承Common选项里面的内容,这种设计可以让工程配置更加灵活。

96540cdcc5b98fc1397e0e12fd229a.jpg


3、对于一般应用来说,首先会配置Common选项,配置窗口主要分为3部分:选项卡,选项内容,选项描述。如下图所示。

d439d38241986d33852c33e7429315.jpg


4、关于Build编译时的配置项,通常需要修改以下相关内容,如下图所示。

72ae2279a9dc84084ad6e7c4b9fe49.jpg

a. Memory Map File - 存储单元分配文件,这里不需要,因此设置为None。

b. Memory Setting - 存储单元设置,这里主要是设置RAM和FLASH的起始位置和大小,根据nRF52840芯片的参数,设置值如上图所示。

c. Output Directory - 输出目录,程序编译后生成的.hex或.bin文件在此目录。

d. Project Macros - 编译时需要用到的工程宏,编译器配置的全局宏定义在这里进行配置,相当于整个编译器的全局变量,注意,这里的宏定义跟代码里面的宏定义有区别,这个宏定义只作用于编译器,不作用于代码。


5、关于Linker链接时的配置项,通常需要修改以下相关内容,如下图所示。

7468f091af5f58c2a3d2a33b4dd7ad.jpg

a. Section Placement File - 段分布文件flash_placement.xml的位置,这里用一个全局宏PROJECT_CONFIG_FILE来表示,这个宏在Project Macros里面配置的。flash_placement.xml这个文件是每个工程都必须的,用来描述工程里面的代码段分布结构。

b. Section Placement Macros - 段分布文件flash_placement.xml里面使用到的宏定义。

c. Additional Output Format - 输出文件的格式,可以是.hex文件,.bin文件或其他格式的文件。

d. Entry Point - 程序的起始执行地址,这里设置为Reset_Handler,这个入口地址主要在ses_startup_nrf_common.s这个文件里面。

e. Treat Linker Warning as Errors– 把链接时的警告当作错误,这里设置为No。


6、关于Preprocessor预处理时的配置项,通常需要修改以下相关内容,如下图所示。

8fd91cfca69c0222dae4c11879ff5e.jpg

a. Preprocessor Definitions – 预处理的宏定义,这里是指定义一些代码用到的全局宏定义,这个宏定义只作用于代码,不作用于编译器,与上面的Project Macros是有区别的。

b. User Include Directories – 头文件包含的路径,代码编译时在这里指定头文件的路径。


7、关于User Build Step用户编译时自定义的配置项,通常需要修改以下相关内容,如下图所示。

8284621c68c4350830cb02d879bc1a.jpg

a. Post-Build Command Control – 编译时执行的命令控制处理,这里设置为 Run When Build Has Occurred,表示编译时执行用户预设置的命令。

b. Post-Compile Command – 表示程序编译时需要执行的命令。这里暂时没有命令,所以设置为None。

c. Post-Link Command – 表示程序链接时需要执行的命令。这里暂时没有命令,所以设置为None。


8、关于Debugger用户调试时的配置项,通常需要修改以下相关内容,如下图所示。

3b37f09a364bdcf9901fa79958b391.jpg

a. Target Connection – 与目标调试设备的连接器,这里是使用了J-Link调试器。

b. Target Device – 目标设备,即目标芯片,这里是nRF52840_xxAA 这款芯片平台。

c.  Run To – 调试运行时的起始点,这里设置main函数作为调试入口。

d. Register Definition File – 寄存器的定义文件。


9、关于J-Link调试器的配置项,通常需要修改以下相关内容,如下图所示。

abffc11c8feb7667b5c7c5a707d8af.jpg

a. Host Connection – J-Link调试器通过USB线与电脑进行连接。

b. Target Interface Type – J-Link调试器通过SWD模式与目标芯片nRF52840进行连接。

c. Speed – SWD通信线的速率是4000 kHz。

d. Show Log Message In Output Window – 在输出窗口显示Log调试信息。


10、关于Loader程序调试加载的配置项,通常需要修改以下相关内容,如下图所示。

7214ceb89b7213f9735a1511833bf0.jpg

a. Additional Load File[0] – 附加载文件,程序可以在调试的时候把协议栈的.hex文件附加载到工程里面。

b. Additional Load File Type[0] – 附加载文件的类型,这里保持默认,Detect。

c. Additional Load File Address[0]– 附加载文件的地址,这里保持默认,None。


11、关于Target Script目标脚本的配置项,通常需要修改以下相关内容,如下图所示。

f3795edf8139eda9d627fa2e4af27b.jpg

a. Reset Script – 调试时的复位脚本,这里设置为 TargetInterface.resetAndStop()。

b. Target Script File – 目标脚本文件,由于已经设置了复位脚本,因此不再需要设置目标脚本文件,这里设置为None。


12、关于Target Trace目标跟踪的配置项,通常需要修改以下相关内容,如下图所示。

6ceb9cebc933406cd2c8dd8deaacd3.jpg

a. Trace Initialize Script – 调试跟踪脚本,这里设置为None。


13、其他没有描述的配置选项,将会在后续的工程里面根据实际情况添加。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论