回复: 有谁知道如何在linux下建立stm32开发环境。 |
|
新手上路, 积分 42, 距离下一级还需 8 积分 |
RE: 有谁知道如何在linux下建立stm32开发环境。
|
|
初级会员, 积分 112, 距离下一级还需 88 积分 |
RE: 有谁知道如何在linux下建立stm32开发环境。
|
|
说到STM32,大家不陌生,mdk环境+开发板+jlink即可搞定,但对于mdk开发环境,大部分人并不能说清楚。对于一个工程的编译,链接,烧写,调试过程完完全全集成在一个软件里,一键即可实现,这当然方便开发,但我们想要了解的编译、链接规则,调试原理等,却一无所知,所以当MDK出现一些奇怪的BUG时无从下手,明明是软件问题我们却查找代码错误。本文介绍一种原始的stm32开发方式,在linux操作系统下,所有的编译,链接,调试工作都是由你自己去决定完成,包括makefile的编写,以后对于高级嵌入式开发有需求的开发者可以先用stm32这种易上手的系统试试水,了解这种linux下的嵌入式开发的一般流程,这样,以后不管遇到任何平台的任何芯片,都有一个大体开发思路可以遵循,不至于一头雾水。进入正题,直接开始操作吧。
对于交叉编译这一概念,很多人陌生,在windows下几乎没有这一概念(实际就是交叉编译),所谓交叉即为pc端编译好的工程拿去嵌入式端直接运行,因为嵌入式系统资源有限,没有能力自己编译自己的工程再运行,试想以下MDK不就是这样吗,实际上MDK也用类似的编译器,功能完全一样。ps:pc端编译pc端运行的程序叫做本机编译,例如vs,vc等工具。所以,让我们先在linux下安装交叉编译工具链吧。
这是一个嵌入式交叉编译开发者项目团队的官网,如下有几个下载链接
顾名思义,我们选linux下的download(Source为工具链的源码,需要经过编译后才能生成交叉编译工具链,捋一捋关系),而我们选择下载现成工具链,有兴趣的可以查阅相关资料自己编译Source生成工具链。
可以看到我们已经安装的工具了。其中后缀为gcc的为C编译器,后缀为g++的为c++编译器,ld为链接器,gdb为debug等
这样你只需要以后键入gcc-arm然后按Tab键系统就会按照此路径寻找到bin下的各个工具,然后自动补齐为
到此我们的交叉编译工具链已经安装好(包括编译器和链接器)。
openecd是一个集成了stlink,ulink,jlink等多种协议的调试软件,相当于mdk的烧写和debug功能,因此不用问为什么,想要烧程序,必须安装。
解压,进入文件夹后执行 cat README.txt查看安装说明,按照要求执行命令后重启系统。
至此jlink的驱动安装完毕。
所有准备工作以完成,下一节开始应用实践。
编译 编译 这是最原始的、
刚开始学最烦的就是创建工程模板,都不知道为什么要...
开发已经有一定的...请读者随时注意
更新版本 注意: 当从内置SRAM启动,在应用
编程的基本使用教程 1,什么是
运行C语言_计算机软件及应用_IT/计算机_专业资料。详细介绍了
编程 在上面我上传了如何用虚拟机安装Linux
图文资料,那里很清楚...
四、实验步骤 1.一个
GNU 编译器集 (其前身为 ...创建一个