stm32在linux下开发环境搭建
1268 打赏
在学了在学了! 2020-08-03 11:21:38

说到STM32,大家不陌生,mdk环境+开发板+jlink即可搞定,但对于mdk开发环境,大部分人并不能说清楚。对于一个工程的编译,链接,烧写,调试过程完完全全集成在一个软件里,一键即可实现,这当然方便开发,但我们想要了解的编译、链接规则,调试原理等,却一无所知,所以当MDK出现一些奇怪的BUG时无从下手,明明是软件问题我们却查找代码错误。本文介绍一种原始的stm32开发方式,在linux操作系统下,所有的编译,链接,调试工作都是由你自己去决定完成,包括makefile的编写,以后对于高级嵌入式开发有需求的开发者可以先用stm32这种易上手的系统试试水,了解这种linux下的嵌入式开发的一般流程,这样,以后不管遇到任何平台的任何芯片,都有一个大体开发思路可以遵循,不至于一头雾水。进入正题,直接开始操作吧。

一.linux系统安装

建议安装ubuntu虚拟机,教程百度。

二.gcc-arm-none-eabi交叉编译器的安装

对于交叉编译这一概念,很多人陌生,在windows下几乎没有这一概念(实际就是交叉编译),所谓交叉即为pc端编译好的工程拿去嵌入式端直接运行,因为嵌入式系统资源有限,没有能力自己编译自己的工程再运行,试想以下MDK不就是这样吗,实际上MDK也用类似的编译器,功能完全一样。ps:pc端编译pc端运行的程序叫做本机编译,例如vs,vc等工具。所以,让我们先在linux下安装交叉编译工具链吧。

打开下载页面 https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads/5-2016-q3-update

这是一个嵌入式交叉编译开发者项目团队的官网,如下有几个下载链接

顾名思义,我们选linux下的download(Source为工具链的源码,需要经过编译后才能生成交叉编译工具链,捋一捋关系),而我们选择下载现成工具链,有兴趣的可以查阅相关资料自己编译Source生成工具链。

下载到Windows上之后我们可以将其拷贝到linux下的/opt/gcc-arm-none-eabi/下(自建文件夹),解压。 进入bin: cd /opt/gcc-arm-none-eabi/gcc-arm-none-eabi-5_4-2016q3/bin/ 可以看到我们已经安装的工具了。其中后缀为gcc的为C编译器,后缀为g++的为c++编译器,ld为链接器,gdb为debug等 设置环境变量:export PATH=$PATH:/opt/gcc-arm-none-eabi/gcc-arm-none-eabi-5_4-2016q3/bin
这样你只需要以后键入gcc-arm然后按Tab键系统就会按照此路径寻找到bin下的各个工具,然后自动补齐为 gcc-arm-none-eabi- 到此我们的交叉编译工具链已经安装好(包括编译器和链接器)。

三.openocd安装 openecd是一个集成了stlink,ulink,jlink等多种协议的调试软件,相当于mdk的烧写和debug功能,因此不用问为什么,想要烧程序,必须安装。 下载地址:https://sourceforge.net/projects/openocd/ 同样下载完成后拷贝至linux下,路径随意,我的是/opt/openocd/ 解压,进入openocd-0.10.0,cd /opt/openocd/openocd-0.10.0/ 因为下载的是源码工程,所以要先后经过配置(主要配置调试器的类型),编译,安装流程 配置之前安装两个包:sudo apt-get install libusb++-dev libusb-1.0.0-dev 配置: ./configure 稍等片刻即可列出调试器,如果你想要的调试器处于关闭状态,比如我这里想要配置jlink,则重新配置加上参数:
./configure --enable-jlink 稍等片刻即可,如图: 可以看到已经配置好了segger的jlink 编译: make 安装: make install 至此调试器安装完成,默认安装路径是/usr/local/share下的openocd 四.调试器的驱动安装(jlink) 我使用的是jlink,所以介绍jlink的安装,其他调试器可以自行查找资料。 下载jlink驱动的官网地址:http://www.segger.com/cms/jlink-software.html 选择downloadJ-Link Software and Documentation pack for Linux, TGZ archive, 32-bit 拷贝至linux下的/opt/jlink_driver/ 解压,进入文件夹后执行 cat README.txt查看安装说明,按照要求执行命令后重启系统。 然后执行以下命令: cp libjlinkarm.so. /usr/lib cp JLinkGDBServer /usr/bin/ cp JLinkExe /usr/bin/ usermod -a -G plugdev 至此jlink的驱动安装完毕。

所有准备工作以完成,开始应用实践。

原文链接:https://blog.csdn.net/yanchanchu9519/article/details/79485463

相关推荐:

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
评论
0个
时间排序
内容存在敏感词
    0 条记录 第 0 /
    相关专栏
    打赏作者
    易百纳技术社区
    在学了在学了!
    您的支持将鼓励我继续创作!
    打赏金额:
    ¥1 易百纳技术社区
    ¥5 易百纳技术社区
    ¥10 易百纳技术社区
    ¥50 易百纳技术社区
    ¥100 易百纳技术社区
    支付方式:
    微信支付
    支付宝支付
    易百纳技术社区 微信支付
    易百纳技术社区
    打赏成功!

    感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

    举报反馈

    举报类型

    • 内容涉黄/赌/毒
    • 内容侵权/抄袭
    • 政治相关
    • 涉嫌广告
    • 侮辱谩骂
    • 其他

    详细说明

    审核成功

    发布时间设置
    发布时间:
    是否关联周任务-专栏模块

    审核失败

    失败原因
    备注
    Loading...
    易百纳技术社区
    确定要删除此文章、专栏、评论吗?
    确定
    取消
    易百纳技术社区
    活动规则
    • 1.周任务为周期性任务,每周周一00:00刷新,上周完成的任务不会累计到本周,本周需要从头开始任务,当前任务完成后才可以完成下一个任务
    • 2.发布在平台的专栏需为原创技术专栏,且社区作为首次发布的平台,在其他平台发布需注明为转载
    • 3.周任务中的专栏需要达到一定质量才会被计入完成总数中。具体以平台审核为准,如有疑问,可联系社区客服(ebainacs)。
    • 4.专栏/资料的任务以审核通过的篇数为准,每个任务数量不做累计。
    • 5.任务完成后,现金奖励直接打款到微信账户EBC/收益将自动发放到个人账户,可前往“我的钱包”查看;其他奖励请联系客服兑换。
    易百纳技术社区
    升级提醒
    升级

    恭喜您的社区称号由 升级为 “社区游民”

    同时为了感谢您对社区的支持,我们将送出xxx礼品一份, 记得领取哦~

    升级提醒
    易百纳技术社区