查看: 862|回复: 0
打印 上一主题 下一主题

[提问] 嵌入式开发板的学习步骤-基于iTOP-4412开发板 [复制链接]

落风 (离线)
积分
1974
帖子
51
跳转到指定楼层
楼主
发表于 2019-11-11 14:28:32 |只看该作者 |倒序浏览

本文主要介绍嵌入式开发板技术的学习步骤。

嵌入式技术的知识面非常广,学起来往往不知道如何下手,那么嵌入式技术应该从哪里开始学起,以及按照什么样的步骤学习,顺利入门,成为一个合格的嵌入式工程师。

最初最基本的东西呢就是要搞清楚几个概念,要搞清楚什么是bootloadre引导程序,什么是Linux操作系统内核Kernel,什么是文件系统。如果搞不明白,直接去学其他的内容,学起来就比较迷糊,实际上是在走弯路。

接下来大多数工作都是围绕这几个文件展开的,比如编译环境的搭建,源代码的编译和烧写,应用程序和驱动程序的编程等等,就是说这几个文件是贯穿我们整个嵌入式学习的始终的。把这几个文件搞明白了,后面的学习也就有了目标,所以说搞明白这几个文件的含义非常重要。

接下来需要我们做的是搭建编译环境,迅为公司为了让大家少走弯路,已经把安装步骤做了很大程度的简化,比如已经做好了虚拟机的ubuntu镜像,直接拷贝进去就可以使用了。

开发环境搭建起来以后,这个时候可以学习一下对源码进行编译,同时也可以学习一下烧写,一步步按照教程去做就可以了。

系统的编译和烧写都是依赖于这个开发环境的,也就是必须在虚拟机上安装好ubuntu,并且把源代码从光盘中拷贝到ubuntu的环境下面,只要按照教程的提示往下做就可以了。

在熟练掌握系统的编译和烧写以后,就可以进一步开始嵌入式开发了,那么这个时候建议先学习一下Linux应用程序的设计,也就是按照教程开始逐步深入。

这个时候要按照网盘里的iTOP-4412开发板视频教程及其相关’里的‘嵌入式linux视频’。

大家在初学的时候,还是要按照这个实验的顺序来走一遍,这里强调两个方面,来帮助大家理解:

一、第一个实验也就是第0个,是制作linux的最小系统,那么什么是最小系统呢,就是Linux运行的时候能跑的起来的最小系统,也就是说我们在文件系统当中把图形系统的内容从这个文件系统里面砍掉了;在很多设备里面,比如说路由器,或者一些通讯类或者控制类的产品中是不需要图形界面的,这样我们就可以做一个简化的Linux文件系统,这时候最小系统的设计就排上用场了。

二、这些实验都是通过烧写文件系统的方式来测试的,其实有一种比较简单和实用的方法,那就是通过网络文件系统来进行(NFS),至于什么是NFS,以及如何搭建,大家一定要学习一下,具体可以参考第12个试验,就是‘实验12’,因为将来我们调试应用程序或者驱动都是要通过这个手段来进行的,它是公认的比较好用的调试办法。也就是说我们这些实验回过头来,都是可以通过NFS来进行调试的,这时候就不用每次烧写,整个调试工作变得更容易,在实际的Linux调试中,多数是通过这种方式来进行的。

所以说大家一定要学会NFS的调试方法。

学完Linux的应用程序设计,接着应该学习一下Linux驱动方面的编程了。Linux驱动程序全部掌握是非常困难的,但是要明确我们的目标是能利用Linux这个操作系统来开发产品。大家都知道,Linux的驱动分为网络设备驱动、块设备驱动以及字符类设备驱动,如前面所述,我们只需要把字符类设备的驱动掌握好就可以了。

因为在开发产品的时候,网络设备以及块设备驱动在开发套件里都是做好的,直接用就可以了,几乎没有人从头去做,就算开发不同的网络接口驱动,也是直接把现成写好的驱动拿来直接调试一下。所以说块设备和网络设备不需要我们去太多关注,但是对于字符类设备驱动就需要我们仔细研究并且完全掌握了,那么最基本的字符类驱动就是针对GPIO的驱动设计,这个是一定要掌握的。比如我们的产品增加一个步进电机,驱动几个开关、继电器、采集电流电压模拟量、扩展并对外部RAM内存数据的读取等等,都是基本的字符类的驱动,至于RFIDGPS模块、GPRS模块、CAN总线等等实际都是利用Linux本身已经做好的驱动,归根到底是使用串口、I2C以及SPI等来实现的,很多开发并不需要我们做什么。对于网络设备,只需要在上层做个应用程序,用SOCKET来实现数据通讯就可以了。

那么在学习这部分内容之前呢,建议大家读一下另一个聊天记录:Linux驱动初探_精英版QQ群聊天记录.doc’,这个文档会对大家理解驱动的架构很有好处。

那么我们前面说到了,应用程序的调试要通过NFS来进行,驱动也是这样的,而且要学会用模块的方法来调试驱动。

我们在Android的视频中比较详细的介绍了Linux的底层如何构建LED的驱动程序。除此之外呢,我们会在补充文档里面跟大家说明如何使用模块,也就是module的方法来调试驱动程序。掌握这些方法是很重要的。也就是说大家一定要掌握通过module的方法动态加载和卸载驱动来调试驱动程序。

当大家熟练学会了以上强调的Linux系统的开发技术,我想大家对Linux的体系有了基本的了解,这个时候其实已经算是入门了,也就是说可以尝试去做一些产品,并不是说我们对Linux的源码分析一遍才能真正做事情,不是那样的,我们的目标是做产品,学会利用Linux这个操作系统,开发出目标产品!


https://tbm-auth。alicdn。com/e99361edd833010b/IHoXeCwkmNglA8TJjKN/TWlohDN2B7AJCf2469S_241822315598_hd_hq。mp4?auth_key=1573456163-0-0-fe46a24962306b7a82860d61003da090


TB2QPkbaFXXXXc3XXXXXXXXXXXX_!!684017536.jpg


您需要登录后才可以发表评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   | 京公网安备11010502021702
回顶部
北京赛车论坛 秒速时时彩开奖 加拿大28 江苏快3走势 秒速时时彩 北京赛车彩票 秒速时时彩平台 安徽快3 pk10代理网址 福利彩票北京赛车