双系统:ubuntu 22.04
电脑:拯救者Y7000
板子:stm32f103c8t6
一段摸爬滚打的辛酸史,囊括了我在过程中遇见的所有报错及解决方法!
记录自己实现的步骤,过程已经跟新完毕,笔者能力有限所用的方法以及代码考虑的不一定全面,也希望大佬多多补充!
目录
安装stm32cubeIDE
官网下载点击跳转官网
汉化
点击跳转下载汉化包
编辑
安装stm32cubeMX
下载链接官网
多余的swp文件
clion下载安装
激活码宝贵
clion汉化
配置环境变量
创建桌面图标
stlink安装
安装openocd
下载stlink
stm32环境搭建
编译工具gcc配置
调试软件OpenOCD
再次检查是否都正确安装
验证连接
报错1:,端口占用的原因
报错2:Warn : UNEXPECTED idcode: 0x2ba01477 Error: expected 1 of 1: 0x1ba01477
错误3:接口/stlink-v2.cfg已弃用
Clion嵌入式配置
编辑编辑
下载成功,祝大家都能实现!!!
安装stm32cubeIDE
官网下载点击跳转官网
自行下载最新版本
下载目录的终端命令
unzip en.st-stm32cubeide_1.14.0_19471_20231121_1200_amd64.sh.zip
等待
解压后执行命令
sudo sh ./st-stm32cubeide_1.14.0_19471_20231121_1200_amd64.sh
下滑更多,接受y,回车
成功
汉化
点击跳转下载汉化包
自行选择最新版本
打开安装的stm32cubeIDE 点击“HELP”→“ Install NewSoftware”来添加新插件。
点击Add
点next,等新界面后接受条款,点完成finish,等下载结束就可以了
如果下载过程中会弹出弹框,全选然后点Trust
重启完成汉化,这个插件可以更改主题,自行上网学习,这里不截图了
安装stm32cubeMX
下载链接官网
unzip en.stm32cubemx-lin-v6-10-0.zip
解压后点击下面这个文件按步骤安装即可
个人问题:安装之后,由于之前我安装过,这次属于重装,由于以前版本没有卸载干净,桌面的图标打不开可以进计算机的/usr/share/applications文件查看,发现安装路径不一致
如果没有安装vim 需要执行sudo apt-get install vim
cd /usr/share/applications/
##根据自己文件名字自行修改
sudo vim st-stm32cubemx-v6-10.desktop
如果你们没有这个desktop文件也可以参考下文创建桌面图标的方式添加
[Desktop Entry]
Name=CubeMX
Comment=STMicroelectronics STM32CubeMX v6-10
GenericName=STM32CubeIDE Exec=/home/h/Apps/tools/st/stm32cubemx_v6-10/STM32CubeMX Icon=/home/h/Apps/tools/st/stm32cubemx_v6-10/help/STM32CubeMX.ico Path=/home/h/Apps/tools/st/stm32cubemx_v6-10 Terminal=false StartupNotify=true Type=Application Categories=Development 多余的swp文件 由于终端 vim和vi 编辑文件不正常退出会产生swp文件, 每次进入编辑这个文件时都弹出一堆提示信息,只读是因为权限不够,解决方法切换到root用户或者在前面加sudo W10: 警告: 正在修改一个只读文件 需要删除这个缓存文件即可,再次进入就不会报错存在交换文件 sudo rm -r .st-stm32cubemx-v6-10.desktop.swp clion下载安装 官网链接下载官网 解压完运行解压文件bin目录下的clion.sh 激活码宝贵 分享一个好用网站,大家尽快使用不知道什么时候失效 点击这个 clion汉化 直接插件里面找,不用去专门下载汉化包,方便很多 配置环境变量 vim ~/.bashrc #打开文件添加 alias clion=/home/<用户名>/<安装路径>/<安装文件名字版本>/bin/clion.sh #保存退出终端运行下面代码 source ~/.bashrc 之后可以直接通过终端clion就可以打开,也可以通过创建桌面图标 创建桌面图标 cd /usr/share/applications sudo vim clion.desktop 需要注意:Exec和Icon要根据自己clion的安装路径进行修改,并且Comment和Version要和自己安装的clion的版本号相对应。最后保存退出,就可以在应用程序里看到clion了。 #将下面的代码拷贝进去 [Desktop Entry] Encoding=UTF-8 Name=CLion Comment=clion-2023.3.2 Exec=/home/h/Apps/tools/clion-2023.3.2/bin/clion.sh Icon=/home/h/Apps/tools/clion-2023.3.2/bin/clion.svg Categories=Application;Development;Java;IDE Version=2023.3.2 Type=Application #Terminal=1 如果没有图标出现,可以右键复制或者命令行复制到桌面,我建议右键手动复制法,复制桌面图标右键允许运行 命令行复制如下,要多一步操作修改文件权限 cd /usr/share/applications/ ##有的人桌面是英文,我的是中文 sudo cp clion.desktop ~/桌面/ ##切换 cd ~/桌面/ ##改权限 o+rx 增加其他用户读和执行权限 sudo chmod o+rx clion.desktop stlink安装 安装openocd ubuntu的apt可以直接安装 sudo apt install openocd 下载stlink 下载链接点击 —> github 选择合适版本的deb安装 stm32环境搭建 准备: 1、PC:双系统ubuntu22.04 2、开发板:STM32F103C8T6 3、交叉编译工具链:gcc-arm-none-eabi 我下载的是X86_64版本的 4、下载调试软件:OpenOCD 编译工具gcc配置 两个软件分别下载解压 tar -xvif gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 tar -xvif openocd-0.12.0.tar.gz 配置环境变量:如果遇到权限问题就su转到管理员用户或者chmod改变文件权限 vim ~/.bashrc ##将下面代码添加进文件最后,注意看路径是自己的安装目录 export PATH=$PATH:/home/h/Apps/tools/stm32_tools/gcc-arm-none-eabi-10.3-2021.10/bin 保存关闭 ##使环境变量生效 source ~/.bashrc ##查看安装的版本 arm-none-eabi-gcc -v 如果安装版本对不上,应该是系统自带有安装版本,这时候需要删除原来系统的版本 sudo apt-get remove gcc-arm-none-eabi 具体详细过程可以看——>这里 #路径需要根据自己安装文件路径更改 exportline="export PATH=/opt/gcc-arm-none-eabi-10.3-2021.10/bin:\$PATH" #判断配置是否成功 if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi #生效文件 source ~/.profile #查看版本 arm-none-eabi-gcc -v 安装完成也可以通过命令行arm 按Tab看看会不会有下面内容,有的话就安装成功了 arm-none-eabi-gcc --version ##查看版本信息 调试软件OpenOCD 进入openocd安装的文件夹使用以下命令可以查看调试器及其开关情况 ./configure #配置安装路径 ./configure --prefix=/usr/local/openocd 下载相关依赖 sudo apt-get install libhidapi-dev libusb-1.0.0-dev ./configure --enable-cmsis-dap 配置成功,接下来使用make指令编译安装 make sudo make install ##路径可以不用改 cd /usr/local/share/openocd/scripts ls target ls interface interface文件夹下存放着下载器接口的文件,target下存放着目标芯片的配置文件(在使用openocd连接开发板时需要用到这两个配置文件) 再次检查是否都正确安装 su gcc -v arm-none-eabi-gcc -v openocd -v 验证连接 ST-LINK: openocd -f <接口配置文件> -f <目标芯片配置文件>(绝对路径)telnet localhost 4444>halt 目标芯片挂起,相当于关机>flash write_image erase <烧录文件>(绝对路径)>reset 目标芯片复位>exit 关闭连接 openocd -f /usr/local/share/openocd/scripts/interface/stlink-v2.cfg -f /usr/local/share/openocd/scripts/target/stm32f1x.cfg 报错1:,端口占用的原因 第一次我的解决方法简单粗暴重启解决,之后我通过网上查询知道以下解决方法: 端口被占用了,用命令行看看是什么程序占用,下面两个都可以查看 lsof -i:端口号 netstat -tunlp|grep 端口号 知道pid后,再用kill指令杀掉。 kill -9 进程号 报错2:Warn : UNEXPECTED idcode: 0x2ba01477 Error: expected 1 of 1: 0x1ba01477 恭喜你买到国产芯片(假的stm32f103c8t6) 解决方法:vim打开原来的那一行注释掉,改为set _CPUTAPID 0x2ba01477,保存关闭就可以了 cd /usr/local/share/openocd/scripts/target/ sudo vim stm32f1x.cfg # set _CPUTAPID 0x1ba01477 set _CPUTAPID 0x2ba01477 错误3:接口/stlink-v2.cfg已弃用 WARNING: interface/stlink-v2.cfg is deprecated, please switch to interface/stlink.cfg 警告:接口/stlink-v2.cfg已弃用,请切换到接口/stlink.cfg 这里我换成stlink.cfg就没有再报错了 openocd -f /usr/local/share/openocd/scripts/interface/stlink.cfg -f /usr/local/share/openocd/scripts/target/stm32f1x.cfg 下图是没有报错的正常情况 Clion嵌入式配置 点击新建项目 ——> 嵌入式stm32CubeMx ——> 修正 出现下列绿色框说明,文件找对了,应用确认后返回新建项目 构建工具链这也需要将路径选对,不然不出现小锤子 如果和我一样有弹窗点下载,这里面板配置文件跳过,这里生成默认的是STM32F0304Px后续可以在cubeMX里更改,参考下列步骤 要保持一致才能覆盖原文件,也可以通过Mx先创建再从Clion中打开,配置完成后直接点击右上方的Generate Code,点击是, 下面弹窗可以选择登录用户也可以直接不管,点继续,因为我点了登录之后一直登录不上,应该和网路有关。 登录不上无关紧要,这里点继续,就会来到下面这个窗口,打开close 回到clion 回到Clion后板子文件已经改变了,自动重新配置,并且要求我们选择面板配置文件,面板配置文件中对不同型号的板子有不同的配置文件,择对应型号的复制到项目即可 我的板子是STM32F103C8T6 ,所以选了第一个,注意选复制到项目并使用,方便查看修改 报错:-- Warning: Did not find file Compiler/-ASM -- Configuring incomplete, errors occurred! 点击边上三个点,配置编辑,调试器选择自定义GDB,修改OpenOCD为自己的安装路径,不确定的话可以命令行查询一下,找到自己安装文件的bin目录下的arm-none-eabi-gdb whereis arm-none-eabi-gdb 应用后返回界面,打开cfg文件 添加stlink的烧录器配置代码,如下 source [find interface/stlink.cfg] transport select hla_swd source [find target/stm32f1x.cfg] adapter speed 10000 点击小锤子,显示构建成功,连接板子点击运行 下载成功,最后祝大家都能实现!!! 相关文章
发表评论