Linux下开发STM32板

Linux下开发STM32板


目录

  • Linux下开发STM32板
  • 全流程
    • 第一步:STM32Cube安装
    • 第二步:依赖包安装
      • 2.1 Oracle Java 8的安装与使用
      • 2.2 libusb-1.0-0-dev安装
      • 2.3 交叉编译器安装
      • 2.x STM32CubeMX运行环境
      • 2.End
    • 第三步:stlink驱动安装
    • 第四步:开始测试
      • 4.1 STM32CubeMX生成代码
      • 4.2 编译代码
      • 4.3 烧写程序
        • 4.3.1 ST-link固件升级
        • 4.3.2 板子连接
        • 4.3.3程序烧录

使用CubeMX+SW4STM32

使用Ubuntu18,配套最新版的ROS



我改主意了,IDE不够香

用cubemx生成makefile然后直接make,用vscode编辑

要安装交叉编译器gcc-arm-none-eabi,然后直接make就行

关于烧写,用https://github.com/texane/stlink.git似乎是不行的。。。

现在打算用STM32CubeProCgrammer

tm终于搞成了。。。

全流程

第一步:STM32Cube安装

去st官网下载STM32CubeMX,STM32CubeProCgrammer,解压后整个包(含exe)给整到linux下(我是win下载好挪到ubuntu虚拟机里了),直接运行.linux即可安装,一路next

第二步:依赖包安装

2.1 Oracle Java 8的安装与使用

鉴于STM32CubeProCgrammer用的是oracle的jdk,我们要去官网上下载并安装对应的linuxx64最新版,此时是jdk-8u202-linux-x64.tar.gz

https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html

下载后

$ sudo tar zxvf jdk-8u202-linux-x64.tar.gz -C /usr/lib/jvm
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_202/bin/java 300
$ sudo update-alternatives --config java
#随后根据提示进行,选择刚装那个

对java一窍不通的我:这部分来源于https://blog.csdn.net/lu_embedded/article/details/103032083

2.2 libusb-1.0-0-dev安装

这个是安装stlink的前置要求

$ sudo apt install libusb-1.0-0-dev

2.3 交叉编译器安装

交叉编译器大概就是在A平台的主机下编译出可以在B平台主机下运行的可执行文件。B平台本身可能根本不具备操作系统,更不用说编译器了,所以这个很有必要。现在就是要在linux下生成cortex-M3的bin

ubuntu18下很简单

$ sudo apt install gcc-arm-none-eabi

2.x STM32CubeMX运行环境

我忘了。。。如果跑不起来现搜吧

2.End

此时STM32CubeMX,STM32CubeProCgrammer应当可以正常运行

第三步:stlink驱动安装

我使用的是stlink-v2烧录器,github有开源项目https://github.com/texane/stlink.git

clone下来之后直接make,sudo make install就好

第四步:开始测试

中间我不采用IDE,是因为实在是不太会用。。。

我尝试过SW4STM32,感觉不友好,功能方面可以保障,就是我用不惯。如果想用IDE也直接去官网下SW4STM32,是Eclipse。

目前采用VSCode编辑代码,确实比较好用,这部分的配置见https://www.zybuluo.com/zzzc18/note/1645112

4.1 STM32CubeMX生成代码

其他地方都一样,这里不做演示,只不过最后不用生成对应IDE的,直接生成makefile版

4.2 编译代码

随便写个点灯啥的,然后直接在目录下make,会生成build文件夹,里面有example.bin,example.elf和example.hex,bin和hex可以用于烧写,elf可以用于调试。

4.3 烧写程序

到了最坑的地方

打开STM32CubeProCgrammer

图我不好加,参照官方文档https://www.st.com/content/ccc/resource/technical/document/user_manual/group0/76/3e/bd/0d/cf/4d/45/25/DM00403500/files/DM00403500.pdf/jcr:content/translations/zh.DM00403500.pdf

实际上你能看出来大概咋用

4.3.1 ST-link固件升级

如果前面装的驱动没问题,右侧应该能检测出来。

升级固件么,点Fireware upgrade,之后应该能显示出对应的烧录器信息,点update,如果报错说不行(not in dfu),要插拔一下,并且不能连stm32板子。再点下面的upgrade,进度条走完就好了

4.3.2 板子连接

我折腾了不知道多久,一直以为是没有板子驱动,或者干脆不支持我这块小板子,导致连不上,显不出板子信息,后来发现不是。。。绝望地漫无目的的搜索后,在官方论坛上看见一个说法,push and hold reset,click connect,wait for a second,and release reset。照着做了一遍居然真成了。。。

中间停的时间不能太短,不然不行

这操作为啥手册上不写??这咋推敲得出来???

不过里面似乎是有一定原理的,估计事后证明是我naive

4.3.3程序烧录

软件内打开之前生成的example.bin或example.hex,点Download就行了,点板子上的reset就开始运行了

原文地址:https://www.cnblogs.com/zzzc18/p/12573262.html

时间: 2024-11-05 23:21:26

Linux下开发STM32板的相关文章

Linux下开发stm32(一) | 使用gcc-arm-none-eabi工具链编译(转)

[STM32开发环境]Linux下开发stm32(一) | 使用gcc-arm-none-eabi工具链编译 原文地址:https://www.cnblogs.com/LittleTiger/p/12696038.html

在Linux下开发和调试STM32

因为最近需要做一些STM32的开发,而我大部分的其他开发都在Linux上,经常在Windows和Linux下切换感觉比较不方便,于是就研究了一下Linux下开发STM32的工具,顺便在这边做下记录. 使用的开发工具 软件平台: Eclipse Luna 下载:https://eclipse.org/downloads/packages/release/luna/sr2 用于安装System Workbench for STM32插件,建议下载Eclipse IDE for C/C++ Devel

使用eclipse在linux下开发C/C++

一直在Linux下开发,苦于没有IDE,一般都是自己编写Makefile,然后在windows下用文本编辑器ftp打开文件编辑,然后在linux下完成编译.调试代码也只能是命令行用gdb进行调试,相当痛苦. 现在推荐一个可行的方法:jre + eclipse + Xming + SecureCRT 或 Putty 1. 由于eclipse是基于java的,所以必须按照jre,可用下载:jre-8u5-linux-i586.rpm 2. 安装eclipse也很简单,直接到官网下载eclipse-c

linux下开发,解决cocos2d-x中编译出现的一个小问题, undefined reference to symbol '[email protected]@GLIBC_2.2.5'

解决cocos2d-x中编译出现的一个小问题 对于cocos2d-x 2.×中编译中,若头文件里引入了#include "cocos-ext.h",在进行C++编译的时候会遇到例如以下错误: undefined reference to symbol '[email protected]@GLIBC_2.2.5'/lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command li

wxWidgets 在 Linux 下开发环境配置

本文基于 CodeBlocks (16.0.1) 和 wxWidgets (3.0.2) 搭建 Linux 下 GUI 开发环境. 1. 安装 CodeBlocks Ubuntu 默认的源当前 CodeBlocks 版本为 13.x,为安装最新稳定版,如下步骤, $ sudo add-apt-repository ppa:damien-moore/codeblocks-stable $ sudo apt-get update $ sudo apt-get codeblocks 2. 下载 wxW

Linux下开发环境的搭建

说句实话,对于OIer来说,Linux真的是个很好的开发平台. 这里既没有游戏的喧嚣,也没有广告的打扰,gcc/g++早已预装,一切已为你准备好......(???)即使对于日常使用,也绰绰有余. 如果因为不熟悉.对新手不友好.不知道.没有Dev-C++等理由,去放弃它,未免也太可惜了. 那么,如何在Linux下搭建一个好的开发环境呢? 在下面,我会分三部分叙述Linux开发环境搭建的过程,并推荐一些比较好用的软件,供大家平日使用参考. (注:以下命令,请在终端中运行.如果因依赖关系报错,请用s

Linux下开发JSP项目(Hello world)

测试环境: 主机系统:Win 7 虚拟机:VMware workstation 11.1.0 虚拟机OS: centos 6.5 64位 Kernel 2.6.32-431-e16.x86_64 Myeclipse:2015 1.0 Tomcat:6.0.43 ? ? 1. 图形界面下运行Myeclipse#./myeclipse & 2. 新建项目 3. 选择MyEclipse?–> Web?–> JSP (Basic Templates) 4. 输入项目名? HelloWorld

STM32+eclipse+Linux下开发

转载自:http://www.cnblogs.com/amanlikethis/p/3803736.html, 只是按照自己环境修改了一些东西而已 安装软件 安装eclipse IDE for C/C++ developers(自行安装) 安装插件ilg.gnuarmeclipse.repository-2.12.1-201604190915.zip 安装JLink驱动(可以使用beb包安装JLink_Linux_V600i_x86_64.deb) 安装插件ilg.gnuarmeclipse.

在Linux下开发多语言软件(gettext解决方案)

最近的项目出现了一个bug.项目是基于一个已有的成熟开源软件之上做修改的,新写了加解密库,用于为该成熟开源软件增添加解密功能.功能增加完成后效果都很好,可是就是中文出不来了,也就是说没办法自适应多语言环境了(提示信息在中文操作系统下是中文,英文操作系统下是英文).使用strace -o log [要调试的命令]定位出了其在执行期间调用的语言包情况,发现它并没有调用自有的语言包,反而调用了加解密库的语言包(但是这个加解密库就没有开发任何语言包),导致找不到该语言包而默认显示代码中的英文提示信息.经