SEGGER Embedded Studio(SES)是SEGGER公司开发的一款跨平台的ARM和RISC-V架构处理器集成开发环境(IDE),具有运行速度快,功能强等特点。SES内置Clang/LLVM和GCC编译器,使用SEGGER的运行时库,相比GCC的newlib,具有更小的代码空间占用和更高的运行效率。
SES可以导入其他IDE的工程,例如IAR、Keil和eclipse。STM32CubeIDE是基于eclipse的IDE,所以,通过STM32CubeMX生成的STM32CubeIDE工程也可以导入到SES,下面简述这一操作过程。
步骤
1、先准备好需要导入到SES的工程,可以是STM32CubeMX创建的或STM32CubeIDE直接创建工程。以CubeMX为例,在生成工程时选择Toolchain/IDE为STM32CubeIDE,并生成工程:
2、打开SES for ARM,选择File -> Import Project... -> Import Eclipse Project,定位到STM32CubeIDE的工程文件所在的目录,选择.project文件。
3、选择Internal Toolchain并按OK确认,选择使用SES内置的GCC编译器。
4、等待生成SES的.emProject工程文件,完成后会提示如下的信息。
5、在Project Explorer选中Core文件夹,右键单击选择Setup编辑Exclude Specifications,输入Core/; syscalls.c;sysmem.c;startup_*.s,并按OK确认。
基本的项目导入和设置已经完成。通过使用CPU支持包中的目标特定文件,可以为所选目标设备进一步调整项工程:
🔺在嵌入式SES中通过Tools->Package Manager下载芯片的CPU支持包,选择芯片并安装包。(比如针对STM32F474RE安装STM32G4xx包);
🔺接下来通过 File->Open Studio Folder...->Packages Folder,打开刚安装的“Packages”文件夹。(在这个例子中/STM32G4xx/);
🔺在项目位置中创建一个新文件夹/ES/并进入
🔺将以下特定于芯片的文件从包文件夹复制到此文件夹。(在这个例子中从$(PackagesDir)/STM32G4xx/到$(ProjectDir)/ES/);
🔹启动代码, /Source/_Startup.s. (Source/STM32G4xx_Startup.s)
🔹向量表, /Source/_Vectors.s. (Source/STM32G474_Vectors.s)
🔹链接脚本, /Scripts/_Flash.icf. (Source/STM32G4xx_Flash.icf)
🔹存储映射, /XML/_MemoryMap.xml. (/XML/STM32G474RETx_MemoryMap.xml)
🔹寄存器文件, /XML/_Registers.xml. (/XML/STM32G474xx_Registers.xml)
🔹通过拖放将/ES/文件夹添加到项目资源管理器窗口中;
🔹打开项目选项并将构建配置更改为Common
· 设置Code -> Linker -> Linker Script File 为.icf 文件
· 设置Debug -> Debugger -> Register Definition File 为 *_Registers.xml (如果有的话)
· 在项目资源管理器中删除内部文件中的通用启动代码Cortex_M_Startup.s
至此,已经完成了工程的导入和设置,并针对目标系统进行了调整。现在可以在SES中添加代码并调试应用程序了。硬件调试器可使用J-Link,或者支持GDB Server的任何其他硬件调试器。
SES用在评估和教育用途完全免费,并且没有功能和时长的限制。
由于微信公众号近期改变了推送规则,为了防止找不到,可以星标置顶,这样每次推送的文章才会出现在您的订阅列表里。
猜你喜欢:
嵌入式设备AP配网实例分享
嵌入式Linux单板连接飞燕物联网平台
分享一种灵活性很高的协议格式(附代码例子)
嵌入式大杂烩周记 | 第 16 期
嵌入式大杂烩周记 | 第 15 期
访问非法内存为什么不会出错?
嵌入式大杂烩周记 | 第 14 期
分享几个实用的代码片段(第二弹)
分享一种你可能不知道的bug定位方法
分享一种修改配置文件的方法
《嵌入式大杂烩周记第 13 期:lz4》
《嵌入式并行多线程处理器,了解一下!》
《分享一种修改配置文件的方法》
《分享几个实用的代码片段(附代码例子)》
《废旧板子再利用:搭建无线调试环境!》
《嵌入式段错误的3种调试方法汇总!》
《简说TCP通信非阻塞接收(附代码例子)》
《TCP通信常用接口的使用封装》
《嵌入式软件中,总线错误的坑?替大家先踩一步》
《分享嵌入式软件调试方法及几个有用的工具!》
《分享两点提高编程能力的建议!》
在公众号聊天界面回复1024,可获取嵌入式资源;回复 m ,可查看文章汇总