返回列表 发新帖我要提问本帖赏金: 80.00元(功能说明)

[MM32生态] 在Windows下使用SEGGER Embedded Studio搭建MM32 MCU开发平台

[复制链接]
12863|10
 楼主| 春娇霹雳娃 发表于 2023-6-6 11:31 | 显示全部楼层 |阅读模式
本帖最后由 春娇霹雳娃 于 2023-7-31 17:27 编辑

#申请原创# @21小跑堂

[payamount]20.00[/payamount]


1.简介
SEGGER Embedded Studio简称SES,是SEGGER开发的一款专业的嵌入式集成开发环境,支持ARM处理器架构,并支持跨平台,可在Window、Linux和MACOS操作系统上运行。SES内置了GCC和Clang工具链,以及基于Clang优化过的SEGGER工具链,也可以使用外部的工具链,如IAR和KEIL。灵动MM32系列的MCU目前已得到KEILIAR 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实物图


7671647ef02091366.png

MM32L073原理图
31606647ef11f04d93.png

3. SES搭建环境流程
3.1 下载安装SES
SEGGER Embedded Studio for ARM 最新的版本已经更新到V7.20,选择对应的 Windows 系统下载,官网下载地址:https://www.segger.com/downloads/embedded-studio/
40652647d70699535a.png

找到下载路径的.exe文件,双击打开准备安装。根据提示一直next,选择安装路径和默认的配置即可,直至安装结束选择Finish。
33798647d71ca90874.png

在桌面生成图标后可双击打开,弹出对话框选择Accept。
81163647d7218ef59e.png
[pay]
进入工程界面,默认新建了一个工程。
74573647d72bc04fc8.png

3.2 下载插件
SES 使用在线的 Packages 提供对不同厂家 MCU 的支持。用户可以直接从 SES 的 “Tools” ->"Packages Manager" 在线下载对应的 MCU 支持包(和 KEIL 中的 Pack Installer 一样的作用)。
67998647d72e2afc00.png

搜索灵动 MM32 系列的在线支持包,目前已支持MM32F031,MM32F103,MM32L0 系列的MCU。双击想要的package选择"NEXT" 按键,或右击package 选择 “Install Selected Packages” 进行安装。
38752647d72f357a57.png

点击“NEXT”,列出即将要安装的插件清单。安装结束后会提示安装成功的提示,点击 “Finish”。
99126647d7345a36ea.png

点击 "Tools"->"Show Installed Packages" 就会显示已经安装完成的pack包,并可以查看已经安装完成pack包的相关信息。
76622647d7359df660.png

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 工程。
84429647d73a30ee70.png

选择MDK工程文件。
91374647d73c5efe85.png

选择内核型号。
81941647d73d2e54b3.png

选择内部和外部编译工具,选择KEIL软件的安装位置到ARM级。
43934647d73e47fdbc.png

可看到工程导入成功。
31250647d73ef1bf69.png

此时将硬件开发板和JLINK连接好,与电脑连接后,在SES的Target选项选择连接J-Link。
14873647d74271efec.png

点击Build,进行编译。
49789647d7446b12df.png

出现Build complete则说明文件编译成功。
79415647d745322492.png

同时在KEIL平台编译文件,可以对照两个平台的编译时间,SES是比KEIL编译快很多的。
88047647d74c8a8fcf.png

选择Debug->Go选项可进入调试模式。
62575647d74de0310d.png

在行号旁边点击,可以添加断点。SES 是配套 J-Link 的官方调试软件,所以其他专业软件有的功能 SES 都能做到,至此,环境搭建完成。也可以选择Debug with Ozone进行调试。
32598647d74f9d007c.png

Ozone中选择Debug下的Debug & Reset Program。
22763647d7533c1d54.png

在调试时,只能看到 CPU 的寄存器(内核定义的寄存器),MCU 外设寄存器还是没有的。若看外设寄存器,需自行添加 SVD 文件。右击 Project,选择 Debug 下的 Debugger,确认目标芯片 Device,选择寄存器定义文件,添加 SVD 文件。
66761647d75510d1e6.png

3.3.2 在SES下新建工程
1.新建工程
点击 File 下的 new project,创建新的工程。
82051647ea300e0654.png

选择MM32的芯片系列,并配置工程名,默认工程名为 Executable_1。
82532647d75cc674a5.png

点击Target Processor,选择芯片的具体型号。
37016647d75db29cb5.png

选择加载文件。
34278647d75e86aef4.png

选择next,默认配置走下去,完成一个新的project创建。
60630647d75f422b1b.png

移植MM32L073的库到我们的工程,需现在灵动官网下载该型号代码包,然后解压。
63735647d760005806.png

将Device下面的HAL_lib复制到我们的工程路径下,在SES工程中新建一个文件夹HAL_lib,并将HAL_lib中的文件添加到工程。
94318647d782f6744f.png

在SES工程中新建一个HAL_lib文件夹。
16325647eab5514751.png

将HAL_lib中的文件添加到SES工程。
34190647e99fc20a8e.png


用工程中的IOtoggle的main.c替换原工程中的main.c文件。
3692647e9a190dd90.png

在工程中新建BSP文件夹,将IOtoggle文件夹下,HARDWARE文件夹下的led.c复制到BSP文件夹下面。

18098647e9a2b87fc9.png

SES工程中添加SYSTEM文件夹并添加文件,并在原工程位置添加到工程项目。
16611647e9a39520c8.png

新建SYSTEM文件夹,在下面新建一个inc文件夹,将从官方库SYSTEM中移植过来的.h文件放在此文件夹下面。
34801647e9a465e41d.png

SES工程中添加3个文件。
51870647e9a58eb751.png

添加MM32L07库的头文件,将官网Device文件夹下的CMSIS文件中的头文件,复制到我们工程CMSIS_5->CMSIS文件夹下面Include文件夹下。
67327647e9a6d5b857.png
添加头文件路径。右击Project->Options,在Code目录下的Preprocessor中,点击User Include Directories添加所有头文件路径。
53391647e9a7d7db22.png

最终我们SES界面可见如下。
6155647e9a953482e.png

编译工程。
(1)在delay.c \ uart.c中添加#include "HAL_conf.h"头文件,并在uart.c中注释FILE __stdout这行代码
(2)注释MM32L0xx_Startup.s文件中,SystemCoreClockUpdate这行代码
8368647e9aa524dc3.png

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打开环境设置选项。可选择不同的主题样式。
44696647e9b4de1d3d.png

在Text Editor中,将Ctrl + Left Click Action设置为“Go to Definition”,可实现类似“Ctrl+鼠标单击”的方式跳转函数定义
31466647e9b5dec02f.png

DebugDownloadActive(F8):下载当前工程。
92044647e9b6ca1ef7.png

EditGoToDeclaration(F11):跳转到函数声明。
19832647e9b78cd589.png

SES的工程文件(*.emProject)是一个XML文件,某些场景下可以直接编辑它。点击Project --> Open Solution in Editor,即可打开emProject文件。
39496647e9b89304a6.png

选择Edit->Column Tidy,即可自动按照等号对齐。
37052647e9b9ba6122.png

附件
工程源代码:https://mindmotion.com.cn/products/mm32mcu/mm32l/mm32l_others/mm32l0xxn/
MM32L073电路原理图


演示视频

SES平台下实现MM32L07系列跑灯demo视频:


[/pay]



MB-023_MM32L073PF_eMiniBoard.pdf

53.96 KB, 下载次数: 4

打赏榜单

21小跑堂 打赏了 80.00 元 2023-06-15
理由:恭喜通过原创审核!期待您更多的原创作品~

Bowclad 发表于 2023-6-8 21:58 | 显示全部楼层
这是什么编辑器啊
xld0932 发表于 2023-6-9 09:23 | 显示全部楼层
楼主厉害呀,分享的相当详细呢!
chenjun89 发表于 2023-6-9 23:34 来自手机 | 显示全部楼层
segger啥都想搞啊
 楼主| 春娇霹雳娃 发表于 2023-6-12 10:11 | 显示全部楼层
Bowclad 发表于 2023-6-8 21:58
这是什么编辑器啊

编辑器?
Sunriver_Yao 发表于 2023-6-17 22:45 | 显示全部楼层
1980€,不便宜喔!
 楼主| 春娇霹雳娃 发表于 2023-6-19 10:43 | 显示全部楼层
Sunriver_Yao 发表于 2023-6-17 22:45
1980€,不便宜喔!

啥?SEGGER可以免费测评学习使用的
呜呜呜呜呜呜你 发表于 2023-6-21 10:22 | 显示全部楼层
春娇霹雳娃 发表于 2023-6-19 10:43
啥?SEGGER可以免费测评学习使用的

这个咋免费得
 楼主| 春娇霹雳娃 发表于 2023-6-21 10:30 | 显示全部楼层

官网下载免费版本就可以了
 楼主| 春娇霹雳娃 发表于 2023-6-28 10:29 | 显示全部楼层
xld0932 发表于 2023-6-9 09:23
楼主厉害呀,分享的相当详细呢!

一般,不厉害
 楼主| 春娇霹雳娃 发表于 2023-6-28 10:29 | 显示全部楼层

什么意思?搞起来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:灵动系统开发工程师
简介:none........

19

主题

154

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部