生活中到处都是套路(技巧),嵌入式Linux开发也不例外,初学者如果懂得这些开发中常用的技巧,可以帮助你少走很多弯路,这些技巧不仅仅局限于某一个开发板平台,还可以举一反三地应用在其他开发板上面。
上一篇文章,我们开箱体验了 ELF 1S嵌入式Linux开发板,这款开发板来源于飞凌嵌入式全新的面向入门初学者的子品牌:ElfBoard ,关于上一篇文章的内容,可以点击下面的链接。
想学嵌入式,与其坐言观望,不如起行实践!
本篇文章,我们基于ELF 1S这一款开发板,来列举一些嵌入式Linux应用开发里面,经常使用到的开发技巧和套路。
1-收到开发板,首先要做什么?
先欣赏一下包装外观,然后打开包装盒,小心翼翼拿起来,观赏一下开发板的颜值,还可以凑近点闻一下电路板的松香味和洗板水味。
如果开发板带屏幕,还要看一下屏幕外观是否有破损,如果有,马上联系开发板厂家进行处理。
全面发挥你收集资料的技能,先去ElfBoard的官网,不管三七二十八先把所有的文档资料都下载到你的电脑,然后把以下网址收藏起来,因为教学视频都是在线观看的。
https://www.elfboard.com/information/detail.html?id=1(复制到浏览器打开,或点击【阅读全文】)
2-开发板如何上电测试?
看这份文档《01-0 ELF 1、ELF 1S开发板_快速启动手册_V1.pdf》,基本上,现在很多入门级的开发板,都会配套一份“快速启动手册”之类的文档,旨在帮助初学者快速地把开发板通电使用起来。
至少通过这份手册,你可以知道开发板有哪些硬件资源,以及如何通电让开发板运行起来。
3-我暂时没有硬件基础,能学习嵌入式Linux开发吗?
嵌入式开发是必须要具备硬件电路知识的,不学硬件是不行的。但嵌入式软件和硬件的学习次序,则可以灵活搭配,更何况ELF 1S这款开发板也提供了一系列的硬件学习文档和视频。
如果你是百分百的初学者,同时又对嵌入式技术存在执念,那建议先从嵌入式Linux应用开发入手,这样至少没那么容易被劝退。
嵌入式Linux应用程序开发,包括嵌入式Qt应用程序开发,都可以参考以下的两份文档内容:
《01-1ELF 1、ELF 1S开发板_软件教程_V1.pdf》第一章至第四章。
《01-3 ELF 1、ELF 1S开发板_Qt应用教程_V1.pdf》整篇文档。
4-想学嵌入式Linux应用程序开发,应该怎样开始呢?
要想学嵌入式Linux应用程序,首先得了解什么是“Linux操作系统”?网络上已经有一大堆的概念介绍了。
要先学会用一款桌面型的Linux系统,比如Ubuntu。因为开发板上面的应用程序基本上都是在桌面型的Linux系统上进行开发的,然后经过交叉编译后,再传输到开发板上面运行。
C语言编程是必学的,shell编程也最好打一下基础,这两门语言是嵌入式开发里面必不可少的两大知识点。如果没有这两门语言的基础,建议先不要碰开发板,先在网上找相关的课程,把这两门语言的基础先打一下。
基础不牢,地动山摇!
编程语言学完后,就是搭建开发环境了。说得通俗一点,搭建开发环境其实就是在你的Windows或者Ubuntu系统上面,安装各种软件,使你的电脑能跟开发板连接起来,能在两者之间互相传输文件。安装各种软件,我相信这活难不倒各位。
嵌入式Linux应用程序开发,本质上就是在你的桌面PC上写程序,然后交叉编译,然后把程序传到开发板上面运行起来。因为有些开发板的性能,不足以支撑你在其上面写代码编译。但有些性能非常强大的开发板,是可以直接在上面编程和运行的,完全不需要交叉编译。
记住:嵌入式Linux开发板,本质上也是一台电脑,本质上也是一台电脑,本质上也是一台电脑。
5-很多出学者都被搭建开发环境劝退了,搭建开发环境很难吗?
嵌入式Linux开发板的开发环境,有两种获得方式:1-根据教程和网上的资料,自己折腾。2-开发板厂家搭建好,直接拿来使用。
建议没有嵌入式基础的初学者,先直接用开发板厂家搭建好的开发环境,这样不会那么容易被劝退,到了后期掌握了一定的技巧后,再尝试自己搭建开发环境。搭建开发环境,就是安装ubuntu,以及在Ubuntu上面安装软件。
使用厂家搭建好的开发环境,看《01-1 ELF 1、ELF 1S开发板_软件教程_V1.pdf》的第二章,第2.1.3节,如下图所示。
6-用什么软件编写嵌入式Linux应用程序代码?
写代码的软件多了去了,随便简单改点代码的话,记事本也是可以的。初学者比较常用的,可以用vscode,QtCreator也是一款很不错的编辑器,一开始入门学习,不太建议迷信Vim大法,编辑器只是工具,Vim这种略复杂的编辑工具,还不太适合初级入门的同学。
不用太迷信代码编辑工具,用你自己平时用习惯的,以及觉得编辑效率最高的,如果你平时没有用啥编辑器,那建议用vscode吧,这工具是真香。
7-编写完代码,怎样把代码转化为开发板能运行的程序?
交叉编译!前面提到,如果在开发板上面直接编写代码然后编译,那个叫直接编译运行。如果在桌面型PC上编写代码和编译,然后在开发板上面运行,那就叫做交叉编译。
可以查看《01-1 ELF 1、ELF 1S开发板_软件教程_V1.pdf》这份文档的第二章2.6.3章节,如下图所示。
8-怎样在桌面PC和开发板之间互相传输文件?
一般有两种方式:1-通过TF卡或者U盘互相拷贝,就像在两台电脑直接互拷文件一样。2-用网线把电脑跟开发板连起来,通过FTP协议或者NFS网络文件系统进行传输。
我个人比较喜欢通过网络的方式,在电脑和开发板直接互传文件,FTP协议的方式,在快速启动手册里面的【附录一】有介绍,如下图所示。
NFS网络文件系统,也是一种比较常用的方式,网上很多资料,可自行搜索学习,特别是需要经常修改文件系统配置的时候,通过NFS挂载文件系统,可以起到事半功倍的作用。
TF卡一般用在产品批量生产时的固件烧录,个人感觉,通过TF卡拷贝应用程序到开发板然后运行,略麻烦。
9-开发板的系统被搞坏了,怎样恢复成出厂设置?
开发板厂家一般都会为板子配套出厂镜像,在我们的开发过程中,如果不小心把原有的系统搞坏了,可以根据开发板厂家提供的方法,把开发板恢复成出厂时的状态,一般是通过特定的烧录工具和TF卡进行烧录。
快速启动手册里面的第四章,有讲述如何为开发板恢复出厂设置,如下图所示。
10-我想进一步学习更复杂的嵌入式Linux系统移植和驱动开发,应该怎样开始?
看文档和视频,《01-1 ELF 1、ELF 1S开发板_软件教程_V1.pdf》这份文档的第五章至第九章,提供了Linux内核移植、驱动开发、u-boot介绍、文件系统移植,这几大块基本的知识点,如下图所示。
这几章内容是足够初学者进行入门学习的,但如果想深入,就必须从事嵌入式Linux驱动开发相关的岗位,这类岗位在芯片原厂里面的技术含金量最高,想进阶,还是需要在工作中不断深入学习。
11.嵌入式技术的本质到底是什么?什么是嵌入式开发?
12.嵌入式技术能用在哪些行业,这些行业的普遍工资是多少?
13.我想学嵌入式,到底应该怎么学,学习路线是怎样的?
14.网络上那么多资料,那么多开发板,到底该怎么选?
15.嵌入式需要哪些基础,要不要学硬件,要学哪些编程语言?
16.选单片机还是选嵌入式Linux,两者有什么区别?
17.。。。。。。
以上种种疑问,有些问题或许你已经有了答案,有些或许还在迷茫当中,但作为一名十年的嵌入式老菜鸟,可以给的建议是:嵌入式技术领域没有捷径可言,学习成本也不像纯软件那样,一台电脑或者一台手机就搞定,至少硬件开发板和模块配件的投入是必须的。
经济条件允许的话,建议还可以购买一些质量好的网络课程,对嵌入式技术的学习,将会起到事半功倍的作用。
关于上面的疑问,我们会在后续的文章里面,再继续探讨。
感谢阅读,欢迎关注!