文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【Mac+CLion+STM32+ST-Link】Mac(apple sillicon)上使用STM32CubeMX和CLion搭建嵌入式开发环境

2023-10-28 06:41

关注

软件安装

Clion

官网安装或者brew安装,我用的是2023.2版本。

stlink server

https://www.st.com/en/development-tools/st-link-server.html
不安装的话检测不到stlink。

STM32CubeMX

https://www.st.com/en/development-tools/stm32cubeide.html#overview&secondary=st-get-software
用来快速搭建一个工程。

环境搭建

Arm-toolchain

用来编译和debug的组件。

brew install --cask gcc-arm-embedded# 以下命令有输出说明安装成功arm-none-eabi-gcc -varm-none-eabi-gdb -v

P.S.: 有的教程里说用 brew install arm-none-eabi-gcc这个是旧版本,安装以后在我的电脑上会导致编译失败。

Openocd

用于下载程序到单片机的的组件。

brew install open-ocd# 以下命令有输出说明安装成功openocd -v

stlink

brew install stlink# 插入stlink后以下命令应该能检测到该stlinkst-info --probe

如果显示指令不存在,说明stlink没装好,重新用brew再装一遍。
如果检测不到,可能是server有问题。

Clion配置

Step 1:设置插件

Clion应该自动装好了Embeded Development Support插件,如果没有就手动装一下。然后在设置里写上路径,点测试会显示版本而不是报错:
在这里插入图片描述
STM32CubeMX应该会自动检测到。如果不确定openocd路径的话,在命令行输入:

 which openocd

Step 2:新建工程和设置

新建一个工程,选择嵌入式里的STM32CubeMX。
会自动生成一个.ioc文件,在Clion中打开这个文件,会引导打开STM32CubeMX,在这个软件中设置一下使用的单片机信息。需要注意的是,在project manager中,设置的时候要和在Clion中设置的project信息一致,最后会覆盖这个项目的文件夹。且务必要在Toolchain/IDE中选择STM32CubeIDE!设置完成后点右上角的Generate Code覆盖该文件夹。
在这里插入图片描述之后会自动回到Clion,让选择一个cfg文件,按照自己的芯片型号选一个,我的是stm32f103c8t6,所以选这个blue pill的,然后选择复制到项目并使用:在这里插入图片描述
打开这个cfg文件,往里面加一些关于烧录的信息,改成(中间两行是新加的):

set FLASH_SIZE 0x20000source [find interface/stlink.cfg]transport select hla_swdsource [find target/stm32f1x.cfg]

Step 3:设置debugger

在clion的上边这里,点这个编辑:
在这里插入图片描述

在这里选自定义GDB可执行文件,然后输入一下arm-none-eabi-gdb的路径:
在这里插入图片描述

如果不确定路径的话,在命令行输入:

 which arm-none-eabi-gdb

正常来说,做完这里就可以运行和debug了,每次运行会自动烧录程序。

Step 4:修改stm32f1x.cfg(如果不幸买到假芯片)

因为不幸买到了假的stm32f103c8t6,运行烧录的时候一直报错,报错信息如下:

Warn : UNEXPECTED idcode: 0x2ba01477Error: expected 1 of 1: 0x1ba01477

该文件的路径如下,如果没有改过homebrew的默认路径应该都是一样的,但是版本号可能会变:

/opt/homebrew/Cellar/open-ocd/0.12.0/share/openocd/scripts/target/stm32f1x.cfg

如果找不到的话可以用命令行:

sudo find /opt/homebrew -name stm32f1x.cfg

在该文件大概40多行(44行?),有一句set _CPUTAPID 0x1ba01477,把它注释掉,改成set _CPUTAPID 0x2ba01477

# set _CPUTAPID 0x1ba01477set _CPUTAPID 0x2ba01477

现在就可以正常烧录和调试了。

遇到的问题

调试时显示端口问题

报错信息:

Info : tcl server disabledInfo : Listening on port 4444 for telnet connections

端口被占用了,用命令行看看是什么程序占用:

lsof -i :4444

知道pid后,再用kill指令杀掉。

调试时显示"pretty-printer"

弹窗报错:

Undefined info command: "pretty-printer". 

不用管他,不影响使用。

来源地址:https://blog.csdn.net/Marslicy/article/details/132179588

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯