Ubuntu+Stm32cubeMX+vscode+stlink开发

个人工作至于捣鼓一些硬件单片机之类的,偶尔需要开发stm32单片机,以前在win7下使用keil开发和调试。近期,家中电脑换成Ubuntu系统,个人比较喜欢尝试新事物,上网查找资料整理出一份完整的给予Ubuntu+Stm32cubeMX+vscode+stlink的开发环境。

此开发环境核心思想是,Stm32cubeMX用来生成基础的单片机代码和框架,vscode通过安装插件来支持c语言代码开发和调试,openocd是开源的GDB服务可以连接stlink调试单片机。

以下进入正题:

一、安装stm32CubeMX

下载stm32CubeMx

http://www.st.com/content/st_com/zh/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html

STM32CubeMX-4.24.0安装包解压后有四个文件

Readme.html
SetupSTM32CubeMX-4.24.0.app
SetupSTM32CubeMX-4.24.0.exe
SetupSTM32CubeMX-4.24.0.linux

执行SetupSTM32CubeMX-4.24.0.linux安装,提示No such file or directory

sudo ./SetupSTM32CubeMX-4.24.0.linux 
[sudo] password for user: 
sudo: unable to execute ./SetupSTM32CubeMX-4.24.0.linux: No such file or directory

检查SetupSTM32CubeMX-4.24.0.linux文件类型

file SetupSTM32CubeMX-4.24.0.linux 
SetupSTM32CubeMX-4.24.0.linux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=99f89dc87e2b65d8a610802a4cd6e5de3b6ea957, not stripped

原来是32位的可执行文件,而我的Ubuntu是64位系统。首先安装32位运行时库。

sudo apt install libc6-i386

再执行SetupSTM32CubeMX-4.24.0.linux安装

sudo ./SetupSTM32CubeMX-4.24.0.linux 
Please install Java JRE 1.7.0_45 or a more recent version

要求先安装JRE

sudo apt install default-jre

再执行SetupSTM32CubeMX-4.24.0.linux安装就可以了,接下去按照安装向导提示安装即可。

二、安装openocd

git clone
git://git.code.sf.net/p/openocd/code
cd openocd 
./bootstrap
./configure
make
sudo make install

三、安装GDB及gcc

sudo apt-get install gdb-arm-none-eabi
sudo apt-get install gcc-arm-none-eabi

四、配置udev

sudo vim /etc/udev/rules.d/49-link.rules
//按i键入以下内容
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0102", \
    MODE:="0666", \
    SYMLINK+="jlink_%n"

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3744", \
    MODE:="0666", \
    SYMLINK+="stlinkv1_%n"

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", \
    MODE:="0666", \
    SYMLINK+="stlinkv2-1_%n"

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", \
    MODE:="0666", \
    SYMLINK+="stlinkv2_%n"

以上输入完成后按 :wq回车保存。

使udev生效  sudo /etc/init.d/udev restart

五、安装vscode

  1. 下载vscode https://code.visualstudio.com/;
  2. sudo dpkg -i code_1.24.0-1528306776_amd64.deb  安装;
  3. 安装插件  ARM;
  4. 安装插件  C/C++;
  5. 安装插件 C/C++ Clang Comamnd Adapter;
  6. 安装插件 Cortex-Debug;

六、生成代码并且编译

打开Stm32CubeMx选好配置生成代码,注意要生成makefile类型的代码。进入生成好的代码,目录下会有Makefile文件,输入make执行编译命令。

七、在vscode中调试

使用vscode打开上一步生成代码的目录;
按照下图在调试界面点击绿色三角,在弹出的对话框中选择Cortex Debug;

Ubuntu+Stm32cubeMX+vscode+stlink开发_第1张图片

在弹出的 launch.json中输入如下内容:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Cortex Debug",
            "cwd": "${workspaceRoot}",
            "executable": "./build/test.elf",
            "request": "launch",
            "type": "cortex-debug",
            "servertype": "openocd",
            "configFiles": [
                "interface/stlink-v1.cfg",
                "target/stm32f0x_stlink.cfg"
            ]
        }
    ]
}

再次点击绿色三角形即可调试。

八、调试之前编译源代码

建立一个task,然后在launch.json调试之前依赖此task,具体的留给你们实现,欢迎各位喜欢折腾的朋友一起交流。


你可能感兴趣的:(硬件开发,单片机,stm32,Linux技术)