[学习引导]4412开发板之嵌入式技术学习步骤及项目案例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式技术的学习步骤(基于iTOP-4412)
北京迅为电子有限公司
嵌入式技术的知识体系
•适用于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驱动从总体上分三种:网络设备、块设备、字符类设备驱动
•网络设备和块设备的相关驱动是默认移植好的,可直接使用
•重点学习字符类设备驱动设计,其中针对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处理器本身体系结构的知识,甚至不需要搞裸机程序!
•后续继续研究细化---高手之路。
•物联网的发展,嵌入式开发也将无处不在。
谢谢!。