trueStudio开发环境配置笔记

时间:2024-05-22 14:43:50

声明:

  • 上述为依据自身工作环境、项目需求而提供的解决方案之一,可能存在其他更好的方案;该方案可能存在或出现其他未知问题,因而不保证适用所有情况或例外,仅供参考;不足或错误之处欢迎交流指正,谢谢!
  • 该文档参考了部分官方文档及网络链接,文中已注明;本文为原创,如需转载请注明本文出处,谢谢!

由于Keil版权问题及工作需要,STM32开发环境需要由Keil转换到TrueSTUDIO。由于是第一次接触TrueSTUDIO,刚开始使用时遇到了一些基础问题,且发现trueStudio的相关笔记或总结相对Keil而言较少,因此特写此篇总结,备忘;若能帮助到新手,更好。

一、软件环境

  • Atollic TrueSTUDIO:version 9.3.0
  • STM32CubeMX:version 4.26.0
  • STM32CubeProgrammer: version 1.0

二、说明

  • 硬件环境跟本教程低耦合,不再赘述。
  • 该教程假设读者已经使用过STM32CubeMX及STM32CubeProgrammer,具备STM32相关基础开发经验。
  • 确保已分别安装好TrueSTUDIO、STM32CubeMX、STM32CubeProgrammer。
  • TrueSTUDIO官方使用手册中,讲解了一种将STM32CubeMX、STM32CubeProgrammer作为插件的形式整合到TrueSTUDIO中生成及烧录程序的方法,但略感配置繁琐且实际开发暂未用到,因而此处不在赘述,想了解具体内容可参见官方手册。本文介绍了一种不需额外进行繁琐配置的方法。
  • Keil工程转换为TrueSTUDIO问题。经测试,TrueSTUDIO虽然可以直接导入Keil工程,但导入后的工程需要经过一些配置才能完成编译,相关方法请参考官方文档。本文介绍了通过STM32CubeMX的.ioc文件直接生成TrueSTUDIO工程的方式,以及工程配置、编译过程中的方式方法和部分注意事项,不涵盖其他暂未涉及配置事项。

三、简明步骤

该步骤中主要包括两方面内容:

  1. 生成TrueStudio工程代码
  2. 配置TrueStudio工程编译环境

简要步骤如下所述:

1. 使用STM32CubeMX打开或新建所需.ioc文件。

2. 在Project --> Settings面板中根据需要进行配置,如下图。Toolchain/IDE选择TrueSTUDIO即可,其他配置选项不在赘述。

trueStudio开发环境配置笔记
图1 STM32CubeMX生成TrueStudio工程配置

3.生成工程代码。点击Project --> Generate Code,生成TrueStudio工程代码。此时工程中都是STM32CubeMx根据图形化界面配置自动生成的代码,目录结构同STM32CubeMx自动生成的Keil工程大同小异,此处不再赘述。

4. 已有Keil工程的自编API文件移植(复制粘贴)到trueStudio工程。另外,需要将Keil工程中的与本人实际项目开发需求相关的部分.h及.c文件拷贝添加到TrueStudio工程中,主要包括以下几类:

  • 通信协议相关驱动文件:如spi_flash.c等,直接拷贝复制过来即可
  • FatFs驱动文件:只需修改或替换user_diskio.c文件即可
  • DSP库文件:只需添加libarm_cortexM4lf_math.a文件即可(keil使用的是.lib格式文件)
  • 其他:算法文件等

5. 配置库文件。由于使用了DSP库,因此需要对DSP库进行配置。在工程的properties --> c/c++ General --> Paths and Symbols面板中进行Includes、Symbols等配置(注:功能上类似于Keil软件中的‘c/c++’面板中的配置),如下图2所示。其中,涉及修改的主要有以下几项:

  • 【Symbols】:配置全局宏定义。
trueStudio开发环境配置笔记
图2 宏定义相关配置面板
  • 【Libraries &Library Path】:配置库文件路径及文件名。这里需要特别注意的是:

          1) Library Path面板中配置库文件的文件路径,而Libraries中指定所需库文件名。建议先指定库文件的Path,然后再根据下述规则指定库文件名。

          2) Libraries面板中指定库文件名有两种方式:一是直接指定名称即可,二是根据根据文件路径直接选取文件。无论哪种方式,都必须注意库文件名的格式:即要去掉路径、去掉lib前缀、去掉.a后缀,否则编译时出错。具体的,如我们需要使用GNU编译器对应的DSP库文件libarm_cortexM4lf_math.a(该文件建议预先添加到磁盘工程目录中),需要将其文件名修改为arm_cortexM4lf_math,如图3所示。

trueStudio开发环境配置笔记
图3 DSP配置示例

 

6. 配置编译文件格式(可选)。默认会生成hex文件,保存在工程目录下的DEBUG文件夹中。如需生成Bin文件,在项目属性的Build Step面板中(见下图4)按需进行如下配置即可。

  • 若编译后生成hex,添加(IDE默认):

arm-atollic-eabi-objcopy.exe -O ihex “${BuildArtifactFileBaseName}.elf” “${BuildArtifactFileBaseName}.hex”

  • 若编译后生成bin,则添加:

arm-atollic-eabi-objcopy.exe -O binary “${BuildArtifactFileBaseName}.elf” “${BuildArtifactFileBaseName}.bin”

trueStudio开发环境配置笔记
图4 编译命令配置面板

三、其他

主要包括配置实现串口打印log功能、堆栈内存配置文件说明。

1. 配置实现串口打印log功能。

首先,将下表中的代码复制粘贴到工程中即可;

#ifdef __GNUC__

#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

PUTCHAR_PROTOTYPE

{

HAL_UART_Transmit(&huart3, (uint8_t*)&ch, 1, HAL_MAX_DELAY);

return ch;

}

#endif

 

int _write(int file, char *ptr, int len)

{

int DataIdx;

for (DataIdx = 0; DataIdx < len;DataIdx++)

{

__io_putchar(*ptr++);

}

return len;

}

其次,为使printf中支持浮点型数据,需在Tool Settings配置中添加命令:-u_printf_float,见下图4:

trueStudio开发环境配置笔记
图5 串口打印功能配置

 

2. 配置堆栈内存分配、程序运行起始地址。

根据需要可在工程根目录下的STM32F427VI_FLASH.ld文件中直接修改。

 

四、参考资料

1. 官方文档

  • 略,不再列出

2. 网络链接