本文转自迅为: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处理器本身体系结构的知识,甚至不需要搞裸机程序!
后续继续研究细化---高手之路。
物联网的发展,嵌入式开发也将无处不在。
原文地址:http://blog.csdn.net/chihiro_s/article/details/46442325