嵌入式开发板的学习步骤
本文主要介绍开发板技术的学习步骤。嵌入式技术的学问面十分广,学起来往往不知道如何下手,那么嵌入式技术应当从哪里开头学起,以及根据什么样的步骤学习,顺当入门,成为一个合格的嵌入式工程师。最初最基本的东西呢就是要搞清晰几个概念,要搞清晰什么是bootloadre引导程序,什么是操作系统内核Kernel,什么是文件系统。假如搞不明了,挺直去学其他的内容,学起来就比较迷糊,事实上是在走弯路。接下来大多数工作都是围绕这几个文件绽开的,比如编译环境的搭建, 源代码的编译和烧写, 应用程序和驱动程序的编程等等,就是说这几个文件是贯通我们囫囵嵌入式学习的始终的。把这几个文件搞明了了,后面的学习也就有了目标,所以说搞明了这几个文件的含义十分重要。接下来需要我们做的是搭建编译环境,迅为公司为了让大家少走弯路,已经把安装步骤做了很大程度的简化,比如已经做好了虚拟机的ubuntu镜像,挺直拷贝进去就可以用法了。开发环境搭建起来以后,这个时候可以学习一下对源码举行编译,同时也可以学习一下烧写,一步步根据教程去做就可以了。系统的编译和烧写都是依靠于这个开发环境的,也就是必需在虚拟机上安装好ubuntu,并且把源代码从光盘中拷贝到ubuntu的环境下面,只要根据教程的提醒往下做就可以了。在娴熟把握系统的编译和烧写以后,就可以进一步开头嵌入式开发了,那么这个时候建议先学习一下Linux应用程序
的设计,也就是根据教程开头逐步深化。这个时候要根据网盘里的‘iTOP-4412开发板视频教程及其相关’里的‘嵌入式linux视频’。大家在初学的时候,还是要根据这个试验的挨次来走一遍,这里强调两个方面,来协助大家理解:一、第一个试验也就是第0个,是制作linux的最小系统,那么什么是最小系统呢,就是Linux运行的时候能跑的起来的最小系统,也就是说我们在文件系统当中把图形系统的内容从这个文件系统里面砍掉了;在无数设备里面,比如说路由器,或者一些通讯类或者控制类的产品中是不需要图形界面的,这样我们就可以做一个简化的Linux文件系统,这时候最小系统的设计就排上用场了。二、这些试验都是通过烧写文件系统的方式来测试的,其实有一种比较容易和有用的办法,那就是通过网络文件系统来举行(NFS),至于什么是NFS,以及如何搭建,大家一定要学习一下,详细可以参考第12个实验,就是‘试验12’,由于未来我们调试应用程序或者驱动都是要通过这个手段来举行的,它是公认的比较好用的调试方法。也就是说我们这些试验回过头来,都是可以通过NFS来举行调试的,这时候就不用每次烧写,囫囵调试工作变得更简单,在实际的Linux调试中,多数是通过这种方式来举行的。所以说大家一定要学会NFS的调试办法。 学完Linux的应用程序设计,接着应当学习一下Linux驱动方面的编程了。Linux驱动程序所有把握是十分困难的,但是要明确我们的目标是能利用Linux这个操作系统来开发产品。大家都知道,Linux的驱动linux内核视频教程全套
分为网络设备驱动、块设备驱动以及字符类设备驱动,如前面所述,我们只需要把字符类设备的驱动把握好就可以了。由于在开发产品的时候,网络设备以及块设备驱动在开发套件里都是做好的,挺直用就可以了,几乎没有人从头去做,就算开发不同的网络接口驱动,也是挺直把现成写好的驱动拿来挺直调试一下。所以说块设备和网络设备不需要我们去太多关注,但是对于字符类设备驱动就需要我们认真讨论并且彻低把握了,那么最基本的字符类驱动就是针对GPIO的驱动设计,这个是一定要把握的。比如我们的产品增强一个,驱动几个开关、、采集模拟量、扩展并对外部RAM内存数据的读取等等,都是基本的字符类的驱动,至于、模块、GPRS模块、CAN等等实际都是利用Linux本身已经做好的驱动,归根到底是用法串口、I2C以及SPI等来实现的,无数开发并不需要我们做什么。对于网络设备,只需要在上层做个应用程序,用SOCKET来实现数据通讯就可以了。那么在学习这部分内容之前呢,建议大家读一下另一个谈天记录:‘Linux驱动初探_精英版QQ谈天记录.doc’,这个文档会对大家理解驱动的架构很有益处。那么我们前面说到了,应用程序的调试要通过NFS来举行,驱动也是这样的,而且要学会用模块的办法来调试驱动。我们在的视频中比较具体的介绍了Linux的底层如何构建的驱动程序。除此之外呢,我们会在补充文档里面跟大家解释如何用法模块,也就是module的办法来调试驱动程序。把握这些办法是很重要的。也就是说大家
一定要把握通过module的办法动态加载和卸载驱动来调试驱动程序。当大家娴熟学会了以上强调的Linux系统的开发技术,我想大家对Linux的体系有了基本的了解,这个时候其实已经算是入门了,也就是说可以尝试去做一些产品,并不是说我们对Linux的源码分析一遍才干真正做事情,不是那样的,我们的目标是做产品,学会利用Linux这个操作系统,开发出目标产品!