Windows VS Code + EIDE arm-none-eabi-gcc 开发STM32

概述: 本文在Windows系统下, 以VS Code + EIDE 为开发工具, 以 arm-none-eabi-gcc 为编译工具, 以 OpenOCD 为烧录工具, 以 STLink 为下载器, 介绍了如何在由这些工具构成的环境下进行STM32开发.

1.开发环境介绍

1.1硬件环境

  1. PC:

    • 处理器:Intel i7 9750H
    • 内存: 16 G
  2. STM32 开发板

    • 开发板型号: ST NUCLEO-F767ZI
    • 芯片型号: STM32F767ZIT6
    • RAM:1M
    • FLASH:2M
  3. 下载器

    • STLinker V2-1

1.2软件环境

  1. 操作系统

    Windows 10 x64   ver = 1903 (注意: 当前EIDE插件仅支持Windows)

  2. 开发工具

    1. VS Code
    2. EIDE 插件
    3. arm-none-eabi-gcc工具链
    4. OpenOCD
    5. STM32 ST-LINK utility

2. 安装 VS Code + EIDE插件

  1. VS Code 下载链接, 下载完成后安装,安装过程比较简单, 此处不做说明
  2. 在 VS Code 的扩展应用商店搜索 EIDE, 并下载安装
  3. 安装成功后, 在左侧应用栏能够看到一个类似于 CPU 的图标, 表示安装成功
    在这里插入图片描述

3. 安装 arm-none-eabi-gcc 工具链

  1. 下载arm-none-eabi-gcc工具链, 下载 win32 版本, 之后进行安装
  2. 建议(非必须)将安装后的 /bin 目录加入到环境变量中

4. 安装 OpenOCD

  1. 下载OpenOCD, 并进行安装
  2. 建议(非必须)将安装后的 /bin 目录加入到环境变量中

5. 安装 STM32 ST-LINK utility

  1. 下载STM32 ST-LINK utility, 并进行安装

6. EIDE 插件介绍

点击左侧 EIDE 应用图标, 可以看到 EIDE 共有两个区域,operation 区域和project view 区域
在这里插入图片描述

1. operation区域
	- 打开项目: 打开已有的通过 EIDE 创建的项目
	- 新建项目: 新创建一个 EIDE 项目
	- 从模板创建项目: 通过模板创建一个新的项目
	- 打开串口监视器: 打开串口 
	- 设置Keil工具链路径: 指定Keil工具链的路径(指定到 Keil/TOOLS.INI 位置)
	- 下载缺少的外部工具: 可以帮助打开需要下载的工具链接 如arm-none-eabi-gcc、Jlink等
2. prject view区域
	- 源文件视图: 本工程包含的所有源文件的路径
	- CMSIS 包: STM32 CMSIS包 (.pack文件)
	- 编译配置: 选择编译工具链, 可以是arm-none-eabi-gcc、ARM C Complier Version5/6(Keil编译器)等
		- cpuType: STM32 芯片类型
		- floatPointHardWare: 硬件浮点选项
		- useCustomScatterFile: 是否选用自定义链接脚本
		- storageLayout: RAM/FLASH 布局(类似Keil里的内存区域分配)
		- options: 编译选项 包括优化等级等
	- 烧录配置: 烧录程序所用的工具(所选工具不同 其子项也不同 此处以openocd为例)
		- bin: 待烧录的程序
		- target: 目标芯片类型
		- interface: 下载器接口类型
	- 项目依赖: 本工程项目的依赖项
		- 包含目录: 工程包含的头文件目录 (注意 其会自动包含目标目录下的所有叶子目录项 但不会包含中间目录)
		- 库目录: 工程所使用的的库文件路径
		- 宏定义: 作用整个工程的宏定义

7. 配置 EIDE

  • 点击 VS Code 左下角 管理, 并选择 设置 选项, 进入VS Code 设置界面.
    在这里插入图片描述

  • 在用户设置-扩展-Embedded IDE中, 需要更改的配置如下 (路径相关设置 根据自己实际情况 进行设置)

    • ARM.GCC:Install Directory(仅安装路径 不同具体到/bin)

      D:\ARM-GNU-Tool\8 2019-q3-update

    • ARM.GCC:Prefix

      arm-none-eabi-

    • ARM.Open OCD:Exe Path

      D:\OpenOCD\bin\openocd.exe

    • ARM: Stlink Exe Path

      D:\ST\STLinker\ST-LINK Utility\ST-LINK_CLI.exe

8. 工程创建示例

  1. 通过 STM32CubeMX 生成 Makefile 工程。
    Project Manager配置如下

    • Project

      • Toolchain/IDE 选择 Makefile (其它使用gcc工具链的也可以 建议选择这个)
        在这里插入图片描述
    • Code Generator 勾选

      • Copy only the necessary library files
      • Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral
        在这里插入图片描述
    • 生成的 STM32CubeMX 工程目录结构如下

      生成的 STM32CubeMX 工程目录结构如下
      demo_test   顶层目录
      ----Drivers
      ----Inc
      ----Src
      ----.mxproject
      ----demo_test.ioc
      ----Makefile
      ----startup_stm32f767xx.s
      ----STM32F767ZITx_FLASH.ld
      在这里插入图片描述

  2. 通过 EIDE 创建新的工程项目

    • 项目类型: Cortex-M MCU
    • 项目名称: test (用户按需自定义)
    • 项目保存位置: D:/stm32projects (用户按需自定义)
    • 生成的 EIDE 工程目录结构如下

      test   顶层目录
      ----.eide
      ----.vscode
      ----dependence
      ----src
      ----test.code-workspace
      在这里插入图片描述

  3. 将 STM32CubeMX 工程内容拷贝到 EIDE 工程下

    • 将 Drivers、Inc 目录拷贝到 EIDE 主目录下
    • 将 Src目录下的所有文件拷贝到 EIDE主目录/src目录下
    • 将 startup_stm32f767xx.s、STM32F767ZITx_FLASH.ld 拷贝到 EIDE主目录/src目录下
      在这里插入图片描述
  4. 在 EIDE 插件的 Project View 区域进行项目配置

    工程默认编译模式为 Release 模式,建议切换为 Debug 模式

    切换方式:点击右端“切换”图标

    在这里插入图片描述

    • 源文件视图:点击右端“+”图标,将 Drivers目录添加到源文件路径。(自动包含子目录路径)
      在这里插入图片描述
    • CMSIS包:不操作 (本文介绍的方法不需要配置该项)
    • 编译配置:点击右端“更换”图标, 选择gcc工具链
      • cpuType:点击右端“配置”图标 选择Cortex-M7 (根据实际情况选择,我用的是STM32F767ZIT6)
      • floatPointHardWare:default
      • useCustomScatterFile: 点击右端“配置”图标 选择true
      • scatterFilePath: 点击右端“配置”图标 选择STM32F767ZITx_FLASH.ld文件 (该选项在上一选项为true时 才会出现)
      • options:不做更改
        在这里插入图片描述
    • 烧录配置:点击右端“更换”图标, 选择 OpenOCD (根据实际情况选择,我用的是OpenOCD)
      • bin: 不更改 (生成烧录文件后 自动填充)
      • target: 点击右端“配置”图标, 选择stm32f7x.cfg (根据实际情况选择,我用的是STM32F767ZIT6)
      • interface: 点击右端“配置”图标, 选择stlink.cfg (根据实际情况选择,我用的是STLinker)
        在这里插入图片描述
    • 项目依赖:
      • 包含目录:点击右端的“+”图标 添加Inc、Drivers为头文件目录
      • 库目录:不更改 (本工程未使用库文件 根据实际情况选择)
      • 宏定义:点击右端“配置”图标 添加STM32F767xx (根据实际情况选择,我用的是STM32F767ZIT6)
        在这里插入图片描述
  5. 修改源文件。按需修改、添加源文件,本文示例修改源文件,实现 led 闪烁。
    在这里插入图片描述

  6. 编译工程。点击 Build Project 图标或 按 F6
    在这里插入图片描述
    在这里插入图片描述

  7. 下载程序。点击 Upload binary file to device 或按F7
    在这里插入图片描述
    在这里插入图片描述

  8. 观察开发板,LED 灯间隔性闪烁,表明程序正常运行。

猜你喜欢

转载自blog.csdn.net/weixin_44347452/article/details/107595294