历史上的今天
今天是: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

在这里,我们下载第一个 gcc-arm-none-eabi-4_8-2013q4-20131218-mac.tar.bz2即可,这是已经编译好的交叉编译工具,免去了我们的编译之苦(随后的文章中会给出编译过程,敬请期待),如果你愿意多尝试一下的话,也可以下载src源码包自己尝试编译。
(2)将压缩包解压到你的用户文件夹(~/)中
文件夹名字可能跟我现在的名字不同,不要紧,因为这些东西保不准啥时候就更新了,我们把解包出来的文件夹统一命名为gcc-arm-none-eabi,这样以后就方便了。
我们可以看一下gcc-arm-none-eabi的文件夹结构:

在这里,最重要的就是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的功能。
史海拾趣
|
雪崩光电二极管是一种高灵敏度、高速度的光电二极管。施加反向电压时,能启动其内部的增益机构。APD的增益可以由反向偏置电压的幅度来控制。反向偏置电压越大增益就越高。APD在电场强度的作用下工作,光电流的雪崩倍增类似于链式反应。APD应用于对 ...… 查看全部问答> |
|
protues元件库 立元件库元件名称及中英对照 AND 与门 ANTENNA 天线 BATTERY 直流电源 BELL 铃,钟 BVC 同轴电缆接插件 BRIDEG 1 整流桥(二极管) BRIDEG 2 整流桥(集成块) BUFFER 缓冲器 BUZZER 蜂鸣器 CAP 电容 CAP ...… 查看全部问答> |
|
我们做的这个项目要求连四路摄像头到开发板上,我们打算用交换机连在开发板上的网络口,然后通过交换机引出四个摄像头,这个方案我们需要做些什么啊,没有思路。摄像头指令怎么发啊。大家谁做过分享一下经验,有没有这方面的例子啊。在 ...… 查看全部问答> |
|
获取电池电量函数问题GetSystemPowerStatusEx2 我查了我的sdk里已经包含了Coredll.lib和Winbase.h,为什么我在EVC里调用GetSystemPowerStatusEx2函数,编译时说没有定义呢,头文件我已经加了的… 查看全部问答> |
|
怎样实现:在线监控嵌入式软件的全部运行过程。包括报错,警示等功能。 是监控运行过程哦。 给一个思路也可以的,当然最好能写详细点啦!!! 比如可以把嵌入式软件的运行情况全部记录在一个数据库中。 不过在数据库中应该记录哪些具体的信息 ...… 查看全部问答> |
|
我刚学习了FPGA 有一个问题一直困恼我 testbench是用来给源码测试激励 赋值等用于仿真的 但是真正下载到板子上去是不用testbench的 那这个测试激励又由谁给的呢?没有测试激励就不可能有源码实现的功能… 查看全部问答> |




