新闻动态   News
你的位置:大功率电感 > 技术

如何将SES工程从GNU工具链迁移到Segger工具链上?

时间:2023-08-13 06:07:00  来源:  作者: 点击统计:

如何将SES工程从GNU工具链迁移到Segger工具链上?[复制链接]

#
介绍背景
Segger的编译器、链接器和实时运行库是专门针对嵌入式开发人员的需求而设计。

特点:快速、灵活、使用简单并支持Cortex-M微控制器。

其链接程序脚本文件的指令和IAR的icf文件相似非常容易编写。

SEGGERSES环境的编译器、链接器和实时运行库可以轻松地用于已有项目中,取代GNU编译器、链接器和实时运行库。

我们以一个EmbeddedStudio4.30上生成的STM32F401RE的GNU工具链项目为例,介绍如何将其迁移到Segger自己的工具链上。

#
迁移过程
1、将链接器改成Segger选中项目文件名,按右键,选择Options,打开项目设置窗口,从左侧选择Code->Linker,然后在右侧选择Linker,点击下下拉键选择Segger。

2、当你选中的SEGGER链接器生效以后,系统会显示和SEGGER链接器相关的选项,如下图:
3、将$(StudioDir)/samples/SEGGER_Flash.icf文件添加到项目目录中,选择LinkerScriptFlie链接脚本文件选项,点按LinkerScriptFile右侧的“…”按钮,在弹出的窗口中浏览项目目录,选择SEGGER_Flash.icf文件,添加$(ProjectDir)/SEGGER_Flash.icf,按OK即可。

4、选择SupplyMemorySegmentsToLinker[segger-ld]选项,在最右侧点击“下拉键”选择Yes。

*此选项用于选择LinkerScriptFlie中的内存段(MemorySection)或MemorymapFile中的内存段。

5、从Options窗口的左侧,选择编译器Compiler,在右侧编译器栏的最右侧,点击,按下“下拉键”,在弹出的菜单中选择Segger。

6、从Options窗口的左侧,选择库Libraries,在右侧实时运行库RumtimeLibrary栏的最右侧,点击“下拉键”,在弹出的菜单中,选择Segger。

7、从STM32F401RE项目中,选中thumb_crt0.s,按右键,选择ExcludefromBuild,然后在项目中再添加$(StudioDir)/samples/SEGGER_THUMB_Startup.s文件。

8、现在我们从EmbeddedStudio的菜单上选择Build->RebuildSTM32F401RE进行构建。

9、构建完成后,提示Flash重复定义:-------------------------------------------------------------------------1>D:/Users/jiang/Documents/SEGGEREmbeddedStudioforARMProjects/STM32F401RE/SEGGER_Flash.icf:48:21:error:region'FLASH'isalreadydefinedBuildfailed-------------------------------------------------------------------------10、查看文件SEGGER_Flash.icf,发现这个语句defineregionFLASH= FLASH1;11、再查看项目目录中STM32F401RE_MemoryMap.xml文件,发现其中:-------------------------------------------------------------------------  -------------------------------------------------------------------------对比EmbeddedStudio5.32a中新建的同类项目,发现其引用的中MemorySegments中的定义是FLASH1RX0x800000000x00040000; RAM1 RWX0x200000000x00010000 因此,我们就将STM32F401RE_MemoryMap.xml文件的FLASH和RAM改成了FLASH1和RAM1:-------------------------------------------------------------------------  -------------------------------------------------------------------------12、重新编译通过,下载,调试也都正常。

#
小结
过几步操作,可以将一个简单工程的工具链迁移到SeggerEmbeddedStudio的工具链,移植相对容易。

我们在这个项目中使用的是GCC的汇编器、Segger的编译器、Seggerd链接器和Segger的实时运行库。

目前Segger的汇编器还在完善之中,因此暂时不推荐使用。

此帖出自综合技术交流论坛|||目前Segger的汇编器还在完善之中,,楼主的用的哪个编辑器?|||
火辣西米秀2021-4-2121:44目前Segger的汇编器还在完善之中,,楼主的用的哪个编辑器?
是SEGGER EmbeddedStudio软件本身自带的编辑器哦

  • HDMI接口静电保护解决方案
    HDMI高清多媒体接口,是一种将音频和视频信号整合在一起的单一数字接口,能够应用在DVD播放器、蓝光播放器、数字电视、游戏机、PVR、机顶盒等音频视频设备。 业内人都知道,高清多媒体接口中的接收器和发射器IC芯片采用的是亚微米CMOS工艺制造而成的,而亚微米CMOS十分地敏感,为此需要借助ESD静电保护器件和ESD静电保护解决方案为其...
  • 线上逛 MPS 芯云展厅,了解最新技术,简单闯关赢好礼!
    线上逛 MPS 芯云展厅,了解最新技术,简单闯关赢好礼![复制链接]MPS 线上芯云展厅重磅上线啦~两轮智慧出行、人工智能、电感、智能电机、智能驾驶及中大功率电源,六大前沿应用资讯一网打尽,技术资料随手下载,干货多多,精彩不断,简单闯关还能赢好礼! 【活动时间】即日起——5月16日 【参与方式】Step1:逛>> MPS 芯云展厅,点击地图中的定...
  • EDA四选一多路选择器的设计
    多路选择器(又称为数据选择器)①功能在选择变量控制下,从多路输入数据中选中某一路数据送至输出端。 对于一个具有2n个输入和1个输出的多路选择器,有n个选择变量。 ②典型芯片典型中规模多路选择器有双4路数据选择器74153,其引脚排列图和逻辑符号如图1(a)、(b)所示。 数据选择器74153芯片含两个4路数据选择器,每个选择器接收4路数据输...