物联网BLE开发环境搭建 -- (3)配置SEGGER Embedded Studio编译器

配置SEGGER Embedded Studio编译器

 

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

物联网BLE开发环境搭建 -- (2)从零开始搭建SES工程模板

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

 

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

物联网BLE开发环境搭建 -- (3)配置SEGGER Embedded Studio编译器_第1张图片

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

物联网BLE开发环境搭建 -- (3)配置SEGGER Embedded Studio编译器_第2张图片

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

物联网BLE开发环境搭建 -- (3)配置SEGGER Embedded Studio编译器_第3张图片

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

物联网BLE开发环境搭建 -- (3)配置SEGGER Embedded Studio编译器_第4张图片

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

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

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

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

 

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

物联网BLE开发环境搭建 -- (3)配置SEGGER Embedded Studio编译器_第5张图片

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预处理时的配置项,通常需要修改以下相关内容,如下图所示。

物联网BLE开发环境搭建 -- (3)配置SEGGER Embedded Studio编译器_第6张图片

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

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

 

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

物联网BLE开发环境搭建 -- (3)配置SEGGER Embedded Studio编译器_第7张图片

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

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

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

 

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

物联网BLE开发环境搭建 -- (3)配置SEGGER Embedded Studio编译器_第8张图片

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

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

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

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

 

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

物联网BLE开发环境搭建 -- (3)配置SEGGER Embedded Studio编译器_第9张图片

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程序调试加载的配置项,通常需要修改以下相关内容,如下图所示。

物联网BLE开发环境搭建 -- (3)配置SEGGER Embedded Studio编译器_第10张图片

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

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

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

 

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

物联网BLE开发环境搭建 -- (3)配置SEGGER Embedded Studio编译器_第11张图片

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

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

 

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

物联网BLE开发环境搭建 -- (3)配置SEGGER Embedded Studio编译器_第12张图片

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

 

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

 

物联网BLE开发环境搭建 -- (3)配置SEGGER Embedded Studio编译器_第13张图片

 

你可能感兴趣的:(物联网,BLE,应用开发)