Linux下搭建Cortex-M嵌入式开发环境
终于换上了Linux,更换之前考虑良久,最后选定了Ubuntu15(PS:自己家里用的是Fedora),主要是考虑Ubuntu确实更易用(但明显没有Debian和Fedora流畅啊,而且Fedora在笔记本上使用几乎可以摆脱鼠标啊,而且Ubuntu确实有好多Bug啊,下面会细说)。换系统是小事一桩,可是搭建工作环境可麻烦了,即要办公,又要做STM32的嵌入式开发啊。看网上资料写得都很麻烦,其实本来可以很简单的。
一、安装Ubuntu
这里就简要说了,下载了Ubuntu的Iso,用“Win32 Disk Imager”将Iso刻录到U盘中(不是做广告哈,其他好多UxISO的软件一旦配置不好就启动失败的,或者只能以UEFI方式安装导致无法引导Win7系统,至于你用什么工具我就不管啦),重启,U盘引导,安装。
二、Ubuntu的基本配置
话说,这一章的内容只是对后面的配置打基础,因为太基础了,所以对于一些朋友来说不是必须的,可以跳过哦。
1.语言修改
安装时选了中文,但是启动后界面都是鸟文啊,然后用户主文件夹下却都是中文,可我喜欢英文目录名因为在命令行中使用cd等命令时不用来回切换输入法好嘛。
于是按下”win“键,输入”setting“,找到”系统设置-语言支持“,分别进入“语言”和“地区格式”标签,选择选择“English”或将其拖拽到顶部,然后分别点击“应用到整个系统”,注销,重新登录,系统提示用户主菜单使用了其他语言,是否重命名成当前语言。选择”是“,这时主菜单就会变成下面这样。
接下来要把系统其他部分文字变成简体中文,同样的,分别进入“语言”和“地区格式”标签,选择“汉语(中国)”,并点击应用到整个系统。
这里有一个Bug,就是“汉语(中国)”有可能始终是灰色的,这时就反复“添加或删除语言...”就好了,把所有语言都删除掉,然后切换成其他语言,如“汉语(香港)”应用到整个系统,注销重新登录(之所以选择中文繁体,是因为除了英汉,其他语言我看不懂,如果你喜欢玩,换成日语或者阿拉伯语什么的试试没准也不错),然后再添加“汉语(中国)”,这时会提示语言包不完整,需要在线安装,选择“是”就好。安装完,鼠标拖拽,将“汉语(中国)”拽到顶部,然后注销系统,重新登录。
系统提示用户主目录需要修改名称,选中不再提示,并选择”否“。此后系统语言是简体中文,主目录是地道英文啦~!
2.输入法
中文输入法必然是常用的啦,除非你外语太好可以不说汉语,否则IBus或者Fcitx是必须要用到的。这两个输入法工具都提供了简体中文输入法。不知道你喜欢哪个,但是Fcitx的图标我是觉特太丑了,还是IBus与Gnome的风格更接近。切换这两个输入法的位置还是系统设置中的“语言支持-语言”标签中。
3.在Ubuntu下必须记住的三个命令
没有应用软件的系统是没有鲜活生命的。Linux下其实拥有大量软件,只是很多不为国人所知,或只有少数人群知道。为了安装这些软件,必须要了解软件安装命令(你不知道在哪里输入命令?Oh No!按下”Win“键,输入”Terminal“就是这个黑色的命令行啦~,注意"$"是提示符,后文的命令行都以该提示符作为起始,但是你并不需要输入”$“)。
在线安装软件命令:
$sudo apt-get install SoftWareName
将“SoftWareName”换成需要安装软件的名字就行了。其中sudo是为了获得高级管理员权限,一般只有管理员才可以安装。
如果需要卸载软件,则使用卸载软件包命令:
$sudo apt-get remove SoftWareName
有人问了,我怎么知道要安装的软件到底叫什么名字?比如eclips,是叫eclipse还是Eclipse,还是eclipse3?这时候就需要用到软件包查找命令:
$sudo apt-cache search SoftWareName
将“KeyWord”替换成你要搜索的关键字就可以了。
有了这几个命令,就可以继续构建我们的工作环境了。
4.安装和使用Axel
没有迅雷,你可以使用Axel来下载软件
$sudo apt-get install -y axel
偷偷告诉你,有可能你的系统已经自带了Axel哈~。接下来,你可以在Terminal中像这样使用Axel:
$axel -nNum -o Path URL
将Num替换成数字(别太大了,当心输入999会吓死你),Path替换成存储下载文件的路径,URL是需要下载文件的网络链接。你还可以像下面这样使用Axel:
axel [选项] [下载目录] [下载地址]
-s [x]:指定每秒下载最大比特数。
n [x]:指定同时打开的线程数。
-o f:指定本地输出文件。
-S [x]:搜索镜像并从X servers服务器下载。
-N:不使用代理服务器。
-v:打印更多状态信息。
-a:打印进度信息。
-h:该版本命令帮助。
-V:查看版本信息号。
这时我用Axel下载的截图,总体来讲速度还不错!
5.安装WPS
Office办公软件那是必须的,没人说嵌入式工程师不写文档吧?Linux下最好的办公软件不是LibreOffice,也不是OpenOffice(好吧,建议你安装这两个软件的要么是老外,要么是Out了),最好的当然是WPS了,WPS与MS Office兼容性是最高的(PS:再强调一次,不是广告,自己喜欢而已,如果你有其他爱好,请自动跳过此小结)。什么,你居然不知道WPS支持Linux?好吧, 我先给你个官网链接哈~
http://community.wps.cn/download/
请下载最新版本,Ubuntu下载“*.deb”包啦,注意自己系统是32位还是64位哈。你可以使用前文提到的Axel下载工具来下载WPS。
下载完成后,双击”*wps*.deb“这个安装包,”Ubuntu软件中心“就会运行起来并分析软件的依赖关系,然后出现类似下面这个界面:
单击”安装“按钮就行了。我那里是”重新安装“因为我已经装过了。
第一次启动WPS可能会提示你缺少必要字体,网上下载symbol、wingdings、wingdings 2、wingdings 3、webding等字体,然后
$sudo mkdir /usr/share/fonts/wps_fonts
$sudo mv symbol wingdings... /usr/share/fonts/wps_fonts
$sudo chmod 755 /usr/share/fonts/wps_fonts
$cd /usr/share/fonts/wps_fonts
$chmod 644 *
$sudo mkfontdir
$sudo mkfontscale
$sudo fc-cache
缺什么字体就补什么字体好啦~。”...“是对应的字体哈!
6.安装为知笔记
当然要用为知笔记记录知识和经验了。
这个最简单了,先将为知笔记加入软件仓库,然后更新软件仓库,然后安装,下面三个命令,可在为知笔记官网找到。
$sudo add-apt-repository ppa:wiznote-team
$sudo apt-get update
$sudo apt-get install wiznote
不过为知笔记在Ubuntu15下启动很缓慢啊,登录界面很酷,但是很卡的有没有,而且Alt+Tab根本切换不到为知笔记,还好在正常编辑模式很流畅。”小为“啊?你到底是用什么写的界面,能优化下不?
7.安装Qt
难免要用到上位机开发的,做个USB通讯,数据显示什么的,嵌入式还是Qt好,只要你都用Qt库,源代码到Windows或者Mac下重新编译一次就成为跨平台软件,不需大改动。
这个要到官网去下载,我下载的是社区版,强烈建议国人不要使用”Qt Online Installer for Linux“,慢啊,是乌龟除以蜗牛的速度。下载页面最下面会有” View All Downloads“字样。
同样给出下载页面链接: http://www.qt.io/download-open-source/
使用Axel下载哈!
下载完了Terminal到对应目录下:
$sudo chmod 777 qt-opensource-linux-x64-5.4.1.run
然后:
$./qt-opensource-linux-x64-5.4.1.run
将”qt-opensource-linux-x64-5.4.1.run“换成你自己软件包的名字哈。其中”chmod 777“是更改权限啦,让”*.run“可以在管理员权限下可执行。
8.安装Git
版本管理,别说没用。
$sudo apt-get install git
安装完需要配置一下。
$git config --global user.name YourName
$git config --global user.emal YourEmail
请把”YourName“和”YourEmail“替换成自己的名字和Email地址。更多Git配置信息不再本文范围之内了,见谅。
三、Cortex-M开发环境搭建
不要觉得麻烦哦~,如果你在Windows下使用Eclips环境开发STM32或其他Cortex-M处理器的嵌入式程序,下面这些软件也是需要安装的。
1.安装ARM-None-Eabi-Gcc
这个是Cortex-M的Gcc编译器了,没记错的话None位指公司名称,Eabi位是目标系统名字,比如arm-none-linux-gcc就是给linux用的ARM GCC编译器,Cortex当然就是Eabi嵌入式系统了。根本不需要网上说的那么费事的源代码编译安装,直接:
$sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded
$sudo apt-get update
$sudo apt-get install gcc-arm-none-eabi
前两行是更新Ubuntu的软件仓库,添加ARM-NONE-EABI-GCC的软件源,这两行一定要有,否则使用Ubuntu自己的软件仓库来安装,总是编译不过去,说“_cxx.cpp...cstdli...No such file or dir..”,ARM-NONE-EABI-GCC的目录里也确实没有C++的这个头文件,fedora也是同样毛病,又不知道哪个软件包没有安装。
2.安装OpenOCD
这个是调试器接口程序,只是jLink、StLink等调试器,总之支持很多款调试器。同样无需源代码编译,直接:
$sudo apt-get install openocd
3.安装LibUSB
大部分调试器都是USB接口吧?这个免驱USB通讯软件可是保证我的STLink正常工作的必备品。
$sudo apt-get install libusb*
没错,可以使用” * “这样的通配符,这里不但安装了libusb程序,还安装了libusb-dev开发包,因为嵌入式工程师们很可能要写USB程序。
4.编译安装STlink工具
这个就只有源代码可用了,但是安装很Easy。
$git clone https://github.com/texane/stlink.git
$cd ~/stlink
$sudo ./autogen.sh
$sudo ./configure
$sudo make
$sudo mkdir /opt/stlink
$sudo mv st-flash st-info st-term st-util /opt/stlink
$sudo cd /opt/stlink
$sudo chmod 777 st-*
简单说就是配置,编译然后在/opt目录下建立stlink目录,将stlink工具移动到这个文件夹,然后使之可以在各个账户权限下可执行。最后别忘了使用
$sudo gedit /etc/profile
命令并添加
PATH=$PATH:/opt/stlink/bin
内容将环境路径更新,重启Ubuntu。
5.安装Eclipse CDT
这个是Ubuntu的坑啊!软件商店上居然不是最新版本,无奈官网下载最新版,给出下载页面链接:http://www.eclipse.org/downloads/
将下载的tar.gz包解压(双击然h后提取就可以了哈),然后:
$sudo mv -f eclipse /opt
$gksudo gedit /usr/share/applications/eclipse.desktop
如果提示没有”gksudo“则“apt-get install gksu”就OK。然后粘贴并保存如下内容:
[Desktop Entry]
Name=Eclipse
Type=Application
Exec=/opt/eclipse/eclipse
Terminal=false
Icon=/opt/eclipse/icon.xpm
Comment=Integrated Development Environment
NoDisplay=false
Categories=Development;IDE;
Name[en]=Eclipse
然后你就可以在启动器中看到Eclipse了。一定要有CDT插件哈!
6.安装GNU-ARM-Eclipse插件
这个插件可以避免你使用命令行来编译配置、调试Cortex-M处理器程序。官网有详细的安装教程,这里只简单说说:
单击
Help → Install New Software…菜单
in the Install window, click the
Add… button (on future updates, just select the URL in the Work with: combo)
fill in Name: with
GNU ARM Eclipse Plug-ins
fill in Location: with
http://gnuarmeclipse.sourceforge.net/updates
click the OK button
然后把下图的插件都选上,下一步下一步来安装就搞定。
官网地址: http://gnuarmeclipse.livius.net/blog/
注意,3.x的eclipse要安装GNU ARM Eclipse的一个”*core*“的插件,这个可以在GNU ARM Eclipse的SourceForge上找到。不过我没尝试,因为我是最新版Eclipse。
四、附录
卸载无用的软件包命令:sudo apt-get autorome
可以帮你清理Ubuntu系统的。