新闻  |   论坛  |   博客  |   在线研讨会
[学习引导]基于迅为4412开发板的嵌入式技术学习步骤
梦想的初衷 | 2015-06-10 16:05:26    阅读:1175   发布文章


本文转自迅为:http://www.topeetboard.com

视频讲解地址:http://v.youku.com/v_show/id_XOTI4Njc0NDIw.html

 

 

嵌入式技术的知识体系:

适用于iTOP-4412开发板及配套教程的学习步骤

 

嵌入式的知识面广泛,初学者难于入门

 

本节阐述嵌入式技术学习步骤,适用于初学者

 

力图起到提纲挈领的作用,在大量学习资料中有一个比较清晰的脉络

 

最后会介绍一个实战案例

 

 

首先要搞明白几个重要文件的意义:

学习方法:首先要掌握基础架构

对于架构来说,最基本的东西就是要搞清楚几个概念(几个文件的意义):

bootloader引导程序(UBOOT)

linux操作系统内核(kernel)

文件系统(可能包含2个文件)

 

推荐大家首先研读:“澄清几个基本概念-迅为精英版聊天记录.doc”

该文件在QQ群共享中

 

开发编译环境的搭建、源代码的编译和烧写、应用和驱动的建立等等都是围绕这几个文件展开的!

 

 

第二步:搭建开发编译环境

64位WIN7系统--》虚拟机--》ubuntu

对于初学者,推荐按照教程的要求和步骤来做,这样少走弯路,效率更高

其他系统不是不可以,但可能会遇到各种安装和编译过程的问题

熟练掌握以后,再去创新,这时才可以去做各种不同的尝试

搭建开发环境,有的时候并不顺利,需要克服一些安装问题

迅为已经把安装步骤做了很大程度的简化,比如虚拟机上的ubuntu镜像,直接拷贝进去就可以用了,避免了通过网络安装各种插件

搭建完成,就可以按照教程学习源代码编译和系统的烧写。

再次强调:这些工作都是围绕那三个文件展开的(实际是4个文件)

Linux或Android系统的编译和烧写都是依赖于这个开发环境的。

 

第三步:Linux应用程序的设计

学会系统文件的编译和烧写后,应进一步学习嵌入式Linux应用程序开发。

要按照网盘里的视频目录:“ iTOP4412开发板视频教程及其相关”--->“嵌入式Linux视频”,进行该部分的学习。

初学者要按照该视频教程来学习linux应用开发,有两个方面需要注意:

第一个实验(第0个),制作最小系统。即最小文件系统(简化的linux文件系统),其中砍掉了图形系统等功能(图形系统往往最耗资源);像很多设备不需要屏幕,如路由器、通讯类控制类产品等需要这样的最小系统。

这些实验除了视频中的方法(直接烧写)外,可以通过网络文件系统(NFS)来实现,这种方法很重要,一定要掌握(参照实验12)。它可以使得调试工作更加方便和快捷。

 

第四步:Linux驱动程序的学习

全面掌握Linux驱动程序设计很困难

Linux驱动从总体上分三种:网络设备、块设备、字符类设备驱动

网络设备和块设备的相关驱动是默认移植好的,可直接使用

重点学习字符类设备驱动设计,其中针对GPIO的操作是基础内容(步进电机、开关量、继电器、电流电压模拟量、PWM)。

RFID、GPS、GPRS、CAN等实际是利用Linux系统自身的串口、I2C以及SPI总线等来实现。

网络设备编程,直接在应用程序使用SOCKET就可以了,不需要修改底层

学习驱动之前,建议大家首先研读一个文档:“Linux驱动初探_精英版QQ群聊天记录.doc”,此文档在售后QQ群共享中。

调试Linux驱动,也要用到网络文件系统(NFS)

学会用模块(module)的方法来编写驱动

使用模块可以动态加载和卸载驱动

insmod    rmmod

学完这部分内容可以学一些Android上层应用,并开始尝试做一些小的产品了。

不需要过多分析Linux源码,不需要过多研究ARM体系结构!

Ready now!

 

 

实战案例(门禁系统)

改项目主要实现四个功能:

实时监控RFID   

通过SPI总线读取数据

采集到信号并核对通过后,驱动(门)继电器

GPIO来控制

通过网络把记录信息传递到数据库

SOCKET通讯(在Linux实验教程中讲过)

需要一个屏幕,用于状态显示与交互。

使用C++(QT)或者JAVA(Android)来编写上层应用程序

我们将提供整套案例源码供大家使用和参考

 

嵌入式产品开发,屏幕的选择很重要,它是首先要做的事情。

PC显示器接口完全兼容

VGA、DVI、HDMI

嵌入式虽然规范相同,但接口大多不兼容

RGB、LVDS、MIPI、eDP

比如三星和苹果手机屏幕不能混用,华为、小米、联想也如此

各种嵌入式设备屏幕大多不兼容

嵌入式产品追求差异化,以及外观上的创新

对于不同规格的屏幕,需要针对性定制驱动板,并修改驱动

产品开发时,需要工程师自己进行屏幕选型,随后外壳以及产品外形才确定下来。屏幕一旦选定则不容易再更换其他型号,所以要慎重!

 

屏幕选定以后,相应驱动程序开发的难度并不大

 

硬件接口设计会遵循RGB、LVDS等接口规范,只需按照接口定义制作驱动板,并增加背光电路(一般根据参考电路来设计即可)

 

Linux驱动程序一般已经完善,只需修改分辨率、刷新频率等参数,这部分内容开发板有配套教程可参考。

 

总结

提供该实战项目源码

读懂这个项目-----嵌入式学习是否入门的标志

明确目标:做出产品,成为合格的工程师

不需要读通Linux源码,不需要过多研究ARM处理器本身体系结构的知识,甚至不需要搞裸机程序!

后续继续研究细化---高手之路。

物联网的发展,嵌入式开发也将无处不在。

 

 

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客