历史上的今天
返回首页

历史上的今天

今天是:2024年12月28日(星期六)

2021年12月28日 | 在Mac OS X中搭建STM32开发环境(2)

2021-12-28 来源:eefocus

在上一篇文章中,我们在OSX中编译了ST-Link2调试工具,并且简单的对其功能进行了测试。在这篇文章中,我们安装交叉编译工具。


提前声明,当我提到“用户文件夹”时,指的就是你的用户文件夹,拿我自己举例子,我的用户名是apple,我的用户文件夹绝对地址就是/Users/apple。如果你的用户名是pear,那你的用户文件夹就是/Users/pear。非常简单,在终端,我们可以直接输入“cd”命令来跳转到自己的用户文件夹。以下所有例子都是以我的用户文件夹做例子的,切记在使用时更换成你自己的用户文件夹。KEEP THIS IN MIND!


(二)安装STM32F4交叉编译器

(1)打开网站 https://launchpad.net/gcc-arm-embedded/+download

NewImage

在这里,我们下载第一个 gcc-arm-none-eabi-4_8-2013q4-20131218-mac.tar.bz2即可,这是已经编译好的交叉编译工具,免去了我们的编译之苦(随后的文章中会给出编译过程,敬请期待),如果你愿意多尝试一下的话,也可以下载src源码包自己尝试编译。


(2)将压缩包解压到你的用户文件夹(~/)中

文件夹名字可能跟我现在的名字不同,不要紧,因为这些东西保不准啥时候就更新了,我们把解包出来的文件夹统一命名为gcc-arm-none-eabi,这样以后就方便了。


我们可以看一下gcc-arm-none-eabi的文件夹结构:

NewImage

在这里,最重要的就是gcc-arm-none-eabi/bin文件夹下的这些编译和调试工具了,最最常用的当然就是arm-none-eabi-gcc啦!


(3)添加交叉编译器的用户环境变量

那么,我们为什么要添加用户环境变量呢?因为现在我们只是把编译器放到了自己的用户文件夹里,但是系统要调用的时候,根本找不到它们在哪。我们很火大,为什么系统你就不能自己找呢?系统也很火大,要是我自己什么都能找到,那你硬盘里的那些Mao Pian怎么办!所以僵持之下,我们还是手动给这些编译器添加环境变量吧:)


OK,要想找到我们用户环境变量,很简单,只需在终端输入

cd ~/

ls -a

出来一大堆东西,我们找到文件.profile,这就是我们要找的东西,如果没有的话也不用着急,手动创建一个即可。


用任何编辑器打开它均可,我使用vim打开它:

vim .profile

打开后不管文件是否为空,在文件的最后添加两行:

export PATH=/Users/apple/gcc-arm-none-eabi/bin:$PATH

export PATH=/Users/apple/stlink.git:$PATH


在这里,需要把上面的apple换成你自己的用户名,如果不明白请看本文开头部分,一定不要搞错了。


非常简单吧,第一行是把我们交叉编译器所在文件夹的绝对地址添加到了环境变量中。第二行是顺便把我们上一篇中使用的ST-Link2工具所在的文件夹也添加到环境变量中。


保存退出,重新启动终端使设置生效。


(4)验证配置是否正确

在终端直接输入echo $PATH


我这边打印出来的信息是

    /Users/apple/stlink.git:/Users/apple/gcc-arm-none-    eabi/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

他们以冒号分割,大家可以看到前两个路径是我们刚刚添加进去的,说明环境变量添加成功!


挺有意思的吧?所有的东西都在我们的控制之下,这种感觉好极了:)

 

在下一篇中,我们将编译一个小例子,使用st-flash工具烧写bin文件,实现点亮一个led的功能。

推荐阅读

史海拾趣

COMPEX公司的发展小趣事

COMPEX公司自成立以来,一直致力于电子技术的研发与创新。在光通讯领域,公司凭借先进的光通讯模块电路板小器件技术,逐渐在市场中占据了一席之地。COMPEX团队不断突破技术壁垒,推出了多款高性能、高可靠性的产品,赢得了客户的广泛认可。同时,公司还积极与国内外知名企业和研究机构合作,共同推动电子行业的技术进步。

AIC [Analog Intergrations Corporation]公司的发展小趣事

COMPEX公司深知客户需求的重要性,因此在生产过程中始终坚持灵活多变的原则。无论是小批量生产还是大规模定制,公司都能迅速调整生产线,满足客户的多样化需求。这种高度的生产灵活性,使得COMPEX在应对市场变化时能够迅速作出反应,抢占先机。

EMC [ELAN Microelectronics Corp]公司的发展小趣事

作为一家有社会责任感的企业,义隆电子一直积极履行社会责任,致力于可持续发展。公司注重环境保护和资源节约,采用环保材料和节能技术生产产品。同时,公司还积极参与公益事业和社会活动,回馈社会。这种注重社会责任和可持续发展的企业文化使得义隆电子在行业内树立了良好的形象。

以上五个故事简要概述了义隆电子股份有限公司(Elan Microelectronics Corp.)在不同发展阶段的关键事件和成就。这些故事展示了义隆电子在技术创新、市场拓展、人才培养和社会责任等方面的努力和成就。

3E SECURITY公司的发展小趣事

在追求经济效益的同时,3E SECURITY公司始终关注社会责任。公司积极参与社会公益活动,支持教育事业和环境保护事业。同时,公司还加强了对员工的人文关怀和职业发展支持,为员工提供了良好的工作环境和成长空间。这些举措不仅提升了公司的社会形象,还增强了员工的归属感和忠诚度,为公司的长期发展奠定了坚实的基础。


请注意,以上故事纯属虚构,仅用于展示电子行业中安全公司可能的发展路径和经历。实际情况可能因公司策略、市场环境等因素而有所不同。如果您需要关于3E SECURITY公司的真实发展故事,建议您查阅相关资料或联系该公司进行了解。

博众电气(BZCN)公司的发展小趣事

随着国内市场的日益饱和,博众电气开始将目光投向国际市场。公司制定了国际化发展战略,积极参与国际竞争与合作。通过在国外设立分支机构、参加国际展会等方式,博众电气成功打开了国际市场的大门。如今,公司的产品已经远销海外多个国家和地区,国际市场份额逐年攀升。

DCD [Digital Core Design]公司的发展小趣事

DCD公司自创立之初,就专注于数字核心设计领域的研发。创始人们凭借对电子技术的深刻理解和市场需求的敏锐洞察,带领团队攻克了一个又一个技术难关。在产品研发初期,公司面临着资金短缺和技术难题的双重压力,但团队凭借着坚韧不拔的精神,成功研发出了首款具有竞争力的数字核心设计产品,为公司的发展奠定了坚实的基础。

问答坊 | AI 解惑

雪崩光电二极管反向电流的测量

雪崩光电二极管是一种高灵敏度、高速度的光电二极管。施加反向电压时,能启动其内部的增益机构。APD的增益可以由反向偏置电压的幅度来控制。反向偏置电压越大增益就越高。APD在电场强度的作用下工作,光电流的雪崩倍增类似于链式反应。APD应用于对 ...…

查看全部问答>

protues元件库

protues元件库 立元件库元件名称及中英对照 AND 与门 ANTENNA 天线 BATTERY 直流电源 BELL 铃,钟 BVC 同轴电缆接插件 BRIDEG 1 整流桥(二极管) BRIDEG 2 整流桥(集成块) BUFFER 缓冲器 BUZZER 蜂鸣器 CAP 电容 CAP ...…

查看全部问答>

2440开发板通过交换机连摄像头

  我们做的这个项目要求连四路摄像头到开发板上,我们打算用交换机连在开发板上的网络口,然后通过交换机引出四个摄像头,这个方案我们需要做些什么啊,没有思路。摄像头指令怎么发啊。大家谁做过分享一下经验,有没有这方面的例子啊。在 ...…

查看全部问答>

超级终端+批处理

做的是linux+arm,现在需要写个批处理来,烧写uboot,内核,和文件系统 当前完成了   1.一个批处理来烧写Uboot.              2.打开超级终端 粘贴1段语句来设置uboot的环境    &nbs ...…

查看全部问答>

SBC84500 没有SDK 如何开发程序

请问如果没有SDK 怎么开发基于wince的程序? 急寻高手指点…

查看全部问答>

获取电池电量函数问题GetSystemPowerStatusEx2

我查了我的sdk里已经包含了Coredll.lib和Winbase.h,为什么我在EVC里调用GetSystemPowerStatusEx2函数,编译时说没有定义呢,头文件我已经加了的…

查看全部问答>

怎样实现:在线监控嵌入式软件的全部运行过程??

怎样实现:在线监控嵌入式软件的全部运行过程。包括报错,警示等功能。 是监控运行过程哦。 给一个思路也可以的,当然最好能写详细点啦!!! 比如可以把嵌入式软件的运行情况全部记录在一个数据库中。 不过在数据库中应该记录哪些具体的信息 ...…

查看全部问答>

管理到底是什么意思阿

我发了一个帖子,系统告诉我管理,到底是意思阿。 …

查看全部问答>

Verilog 源代码与testbench直接的关系

我刚学习了FPGA 有一个问题一直困恼我 testbench是用来给源码测试激励 赋值等用于仿真的 但是真正下载到板子上去是不用testbench的 那这个测试激励又由谁给的呢?没有测试激励就不可能有源码实现的功能…

查看全部问答>