新手入门
- 积分
- 13
- 金钱
- 13
- 注册时间
- 2017-7-12
- 在线时间
- 2 小时
|
本帖最后由 higuoxing 于 2017-7-16 04:54 编辑
上个学期入手了原子的stm32mini板,在win下开发也是很轻松的,但是没有折腾的话就没什么意思了,参考了很多资料如何在OS X或者linux下开发stm32的教程,但是这样做的人还真少,自己在做这些的时候也踩了许多坑,所以在这里把自己折腾的过程发出来,与大家一起探讨。 在win下,开发单片机编译下载的过程基本被编译器都做了,所以在某种程度上单片机是一种黑盒,它内部的一些东西被简化掉了,我们根本不用去关心它的内部结构,以及在烧录程序时发生了什么。自己也是一个小白,目前也只能用stm32做一个pwm小灯或者一个流水灯...在装配环境时也学到了一些东西,自己也去学了一下makefile的写法,在这里推荐一本书叫做《跟我一起写makefile》好了,废话不多说,下面进入正题。
首先我们的单片机里面是跑的机器码,而我们使用C/C++这样的高级语言来“指示”编译器生成什么样子的机器码,C/C++是一个跨平台的语言,理论上讲,任意一个操作系统只要能够编译C代码生成arm能够运行的机器码,并可以下载到开发板上面就可以被我们拿来开发单片机。而Linux/ OS X下面最常见的工具就是gcc,对于arm芯片使用的是arm-none-eabi-gcc,这只是tool chain中的编译这一环节,到这里就可以得到了(https://developer.arm.com/open-s ... in/gnu-rm/downloads)。那么有了编译的工具,还缺少一个下载的工具啊。我选择了某宝的st-link作为下载调试器。软件在这里(https://github.com/texane/stlink)。现在我们就有了开发最最基本的两个工具了。工具的使用就不多说了,很多地方可以看得到。为了方便我直接写好了空白的工程文件,很容易就看明白了,其实有两个空白文档,一个是原子的mini开发板另一个是F407discovery,我把它push到了github上面,原理很简单,就是在写makefile时有一些小坑,估计有勇气折腾linux的童鞋都不会在意的,这里主要是方便大家,我建立了空白的文件,大家可以直接make就可以下载啦。(https://github.com/Higuoxing/STM32RCT6_Blank_Project)
补充一下,编译成功和下载成功是这样子的:
对了,这里提醒一下,如果在linux/ OS X下跑原子的示例代码,你需要将.hex文件利用arm-none-eabi-objcopy来转化为.bin文件写入,hex文件可以写入但是没有运行,我还没用弄明白怎么回事,请大家赐教
|
|