1.简介
SEGGER Embedded Studio简称SES,是SEGGER开发的一款专业的嵌入式集成开发环境,支持ARM处理器架构,并支持跨平台,可在Window、Linux和MACOS操作系统上运行。SES内置了GCC和Clang工具链,以及基于Clang优化过的SEGGER工具链,也可以使用外部的工具链,如IAR和KEIL。灵动MM32系列的MCU目前已得到KEIL、IAR 和 SEGGER 开发工具的官方支持,MM32系列可在SEGGER Embedded Studio平台进行开发。
2.准备工作
2.1 系统环境
• Windows 10
2.2 软件环境
• 编译器环境:SEGGER Embedded Studio v7.20(SES)
• 仿真器驱动:J-Link Software & Pack
• 软件开发包:Lib/samples
2.3 硬件环境
• 开发板:MM32L073
• 仿真器:J-Link v11.0
MM32L073实物图
MM32L073原理图
3. SES搭建环境流程
3.1 下载安装SES
SEGGER Embedded Studio for ARM 最新的版本已经更新到V7.20,选择对应的 Windows 系统下载,官网下载地址:https://www.segger.com/downloads/embedded-studio/
找到下载路径的.exe文件,双击打开准备安装。根据提示一直next,选择安装路径和默认的配置即可,直至安装结束选择Finish。
在桌面生成图标后可双击打开,弹出对话框选择Accept。
进入工程界面,默认新建了一个工程。
3.2 下载插件
SES 使用在线的 Packages 提供对不同厂家 MCU 的支持。用户可以直接从 SES 的 “Tools” ->"Packages Manager" 在线下载对应的 MCU 支持包(和 KEIL 中的 Pack Installer 一样的作用)。
搜索灵动 MM32 系列的在线支持包,目前已支持MM32F031,MM32F103,MM32L0 系列的MCU。双击想要的package选择"NEXT" 按键,或右击package 选择 “Install Selected Packages” 进行安装。
点击“NEXT”,列出即将要安装的插件清单。安装结束后会提示安装成功的提示,点击 “Finish”。
点击 "Tools"->"Show Installed Packages" 就会显示已经安装完成的pack包,并可以查看已经安装完成pack包的相关信息。
3.3 在SES适配MM32开发环境
基于Embedded Studio平台可以创建新的工程,IAR,MDK(AC5),MDK(AC6),Eclipse,CMSIS,CMake 创建的工程也可以转换到SES平台使用,本章将实验以两种方式创建MM32L07工程环境。
3.3.1 将 KEIL 工程导入 SES 平台
点击 File,点击 Import Project,可选择导入 KEIL 工程。
选择MDK工程文件。
选择内核型号。
选择内部和外部编译工具,选择KEIL软件的安装位置到ARM级。
可看到工程导入成功。
此时将硬件开发板和JLINK连接好,与电脑连接后,在SES的Target选项选择连接J-Link。
点击Build,进行编译。
出现Build complete则说明文件编译成功。
同时在KEIL平台编译文件,可以对照两个平台的编译时间,SES是比KEIL编译快很多的。
选择Debug->Go选项可进入调试模式。
在行号旁边点击,可以添加断点。SES 是配套 J-Link 的官方调试软件,所以其他专业软件有的功能 SES 都能做到,至此,环境搭建完成。也可以选择Debug with Ozone进行调试。
Ozone中选择Debug下的Debug & Reset Program。
在调试时,只能看到 CPU 的寄存器(内核定义的寄存器),MCU 外设寄存器还是没有的。若看外设寄存器,需自行添加 SVD 文件。右击 Project,选择 Debug 下的 Debugger,确认目标芯片 Device,选择寄存器定义文件,添加 SVD 文件。
3.3.2 在SES下新建工程
1.新建工程
点击 File 下的 new project,创建新的工程。
选择MM32的芯片系列,并配置工程名,默认工程名为 Executable_1。
点击Target Processor,选择芯片的具体型号。
选择加载文件。
选择next,默认配置走下去,完成一个新的project创建。
移植MM32L073的库到我们的工程,需现在灵动官网下载该型号代码包,然后解压。
将Device下面的HAL_lib复制到我们的工程路径下,在SES工程中新建一个文件夹HAL_lib,并将HAL_lib中的文件添加到工程。
在SES工程中新建一个HAL_lib文件夹。
将HAL_lib中的文件添加到SES工程。
用工程中的IOtoggle的main.c替换原工程中的main.c文件。
在工程中新建BSP文件夹,将IOtoggle文件夹下,HARDWARE文件夹下的led.c复制到BSP文件夹下面。
在SES工程中添加SYSTEM文件夹并添加文件,并在原工程位置添加到工程项目。
新建SYSTEM文件夹,在下面新建一个inc文件夹,将从官方库SYSTEM中移植过来的.h文件放在此文件夹下面。
在SES工程中添加3个文件。
添加MM32L07库的头文件,将官网Device文件夹下的CMSIS文件中的头文件,复制到我们工程CMSIS_5->CMSIS文件夹下面Include文件夹下。
添加头文件路径。右击Project->Options,在Code目录下的Preprocessor中,点击User Include Directories添加所有头文件路径。
最终我们SES界面可见如下。
编译工程。
(1)在delay.c \ uart.c中添加#include "HAL_conf.h"头文件,并在uart.c中注释FILE __stdout这行代码
(2)注释MM32L0xx_Startup.s文件中,SystemCoreClockUpdate这行代码
4.SES平台测评总结
SES 项目管理使用了 Solution + Project 的方式,KEIL 的项目管理为单 Project 项目管理,不支持文件夹嵌套。SES平台中一个 Solution 下可以有多个 Project,Project 下可以有个多个文件或者文件夹,文件夹下又可以有文件夹或文件。
SES 默认的项目文件是有好几种配置的,包括Solution,Project及以下文件的配置。其中 Solution 下还有 Public Configuration,Private Configuration 和 Loader Configuration 配置。Project 下还有 Public Configuration,Private Configuration 配置。配置范围由大到小依次为 Solution > Project > Configuration,后者可以继承前者的配置。
SES特点总结:
• 适用于嵌入式C/C ++编程的专业IDE解决方案
• 跨平台:可在Windows,macOS和Linux上运行
• SES自带简易串口终端,在调试时不再需要使用第三方串口工具
• 文本和二进制比较工具方便快速的对源码和编译生成的目标文件等进行对比
• 具有无缝J-Link集成的功能丰富的调试器
• 强大的项目管理器和源代码编辑器
• 免费用于任何非商业用途,例如教育和评估目的,没有任何限制
5.SES使用技巧
SES针对IDE提供了很细致的设置选项,从Tools > Options打开环境设置选项。可选择不同的主题样式。
在Text Editor中,将Ctrl + Left Click Action设置为“Go to Definition”,可实现类似“Ctrl+鼠标单击”的方式跳转函数定义。
DebugDownloadActive(F8):下载当前工程。
EditGoToDeclaration(F11):跳转到函数声明。
SES的工程文件(*.emProject)是一个XML文件,某些场景下可以直接编辑它。点击Project --> Open Solution in Editor,即可打开emProject文件。
选择Edit->Column Tidy,即可自动按照等号对齐。
---------------------
作者:春娇霹雳娃
链接:https://bbs.21ic.com/icview-3306498-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。