与一线Linux嵌入式开发project师的对话

转:与一线Linux嵌入式开发project师的对话

陈project师一直做Linux的嵌入式开发。作为在开发一线的project师。他对非常多问题的看法可能更切合实际需求,于是,通过邮件。就嵌入式开发方面的问题,请他谈了一下自己的看法:

问:关于嵌入式开发。我们准备给同学们解说一些入门知识。从你一线开发经验来说,给我们一些建议:

陈工回答:

对于嵌入式Linux入门,假设有一定基础,可以从驱动開始;假设没有基础。我个人建议还是从应用程序開始。由于从应用程序開始是最easy的,也是 最直观的。而驱动程序执行在内核态。驱动本身的结构就比較复杂,假设要彻底弄明确驱动的执行机制,必然牵涉内核,对于高年级的学生恐怕问题会少一些。而 对于低年级的学生,问题预计较多。我以前遇到过一些刚開始学习的人,就是一入门就栽了。失去了信心,当然这仅仅是少数。只是。假设在遇到问题之后,可以得到即时、 正确的点化,那就是好事了。

既然您决定讲驱动,那就从内核模块開始。在PC上就能够进行的虚拟设备实验。如基于内存的内核模块。能够考虑从模块的结构、编译、插入、卸载等方 面进行阐述。

驱动模块无非分字符驱动、块设备驱动和网络驱动三大类。可是一定要让学生知道,不论什么一个系统。特别是嵌入式系统,而且在眼下的嵌入式Linux产品 开发中。最简单、最重要、最多、最复杂的也是字符设备驱动,从IO驱动到串口驱动、到USB驱动等等,广义上都是字符驱动。

让学生最好专注于字符设备驱 动,由于一个嵌入式设备,网卡一般一块,FLASH一般也是一块(也包含几块组成的FLASH组),可是这双方面,基本都有完好的驱动,如网卡驱动有非常 多。块设备驱动,硬件层已经有通用接口。无论是NOR FLASH还是NAND
FLASH,文件系统层更是有了许多、很成熟的文件系统,如 JFFS2、YAFFS、YAFFS2、EXT2、EXT3、ROMFS、CRAMFS等等。无需我们再去研究,学会应用就可以。

而除此之外的其他设备, 如AD、DA、CAN、RS485等等。都是须要依据应用来进行设计的,这才是一个产品差别于其他产品的重点。更是市场价值增值点。

另外呢,也是前一点引申为而来的。学习Linux,准备做产品的话,不要把Linux当成了终极目标(当然,这是相应用而言的),要有仅仅是把 Linux当成一个平台的思想。

更重要的还在各种产品所需求的专业技术,如通信方面像CAN、RS485、GPRS等等,或者工业控制方面,IO控制、 实时特性等等。Linxu博大精深。研究起来永无止境,可是在产品中,仅仅要到了一个产品够用就能够了(当然。多一些更好,要视人而定)。

问:嵌入式应用程序的开发。应用场景较多的是图形界面还是字符界面,假设是图形界面,开发环境QT和Minigui哪一种更合适,哪种类型的应用程序在嵌入式系统中应用比較多?

陈工回答:

对于嵌入式Linux的应用。大多数的应用并不须要图形界面,比方交换机、路由器、嵌入式网关以及server等等。图形界面呢,主要应用在多媒体、手机等手持设备和一些须要图形界面的人机交互系统。

嵌入式Linux可选图形界面非常多,上网找找的话,能够发现远非我们常说的QT、MiniGUI等。包含Tiny-X。matchbox、OPIE、GPE等等。不同GUI有自己的特色,有自己的特殊应用场合,对于产品开发,依据须要选择合适的GUI。对于学习,自然是选择easy得到、easy开发的GUI。QT是一个不错的选择,因为QT有一个PC上的模拟器,能够在没有实际液晶LCD的情况下,甚至在没有不论什么硬件的情况下都能够在PC上进行模拟开发。QT是收费的,当然。有免费版可用。MiniGUI呢,纯粹国产的。支持国货,能够考虑选择MiniGUI。

这是一个轻量级的嵌入式GUI,能够跨平台,学习版也才100多块。MiniGUI能够用于工业控制场合。QT在这方面的应用眼下还没有遇到,主要用在手持设备。

我们在开发中採用Tiny-X,这也是一个能够用于工业控制的GUI。基本兼容X-Window。体积小,占用资源少,速度快,稳定。

对于Linux的应用程序开发。除了GUI程序之外,最主要的应用程序有:

(1)串口编程。

不管是在Windows下还是Linux下,串口编程都是极为复杂的,可是很锻炼一个人的编程水平和能力。

(2)网络编程以及WEB相关编程。网络编程的tcp、udp、tcp/ip等。

至于WEB编程,主要是在系统开启一个WEBserver。制作一些网页,通过远程登录可以对整个系统进行配置甚至升级等功能。比方我们的路由器配置网页。

这样的应用在以后会越来越广泛。

(3)另外一个就是Shell编程了。Shell的作用我想,*NIX世界的人都非常清楚。

在非常多应用里面,通过一些非常富有技巧性的Shell脚本。实现了非常复杂的功能。包含远程系统升级等。

以上我提到的这3方面,很易于实验,在没有硬件。仅仅有PC的情况都能够做。

学生电脑安装ubuntu。那以后配置嵌入式Linux开发环境可能遇到的问题会多一点。只是没关系,可以解决的。在我个人看来ubuntu适合于家用、办公,但要用于开发,配置难度略微大一点。只是没有办法,如今电脑硬件太新。最适合的RedHat 9.0无法安装。

时间: 2025-01-03 19:59:09

与一线Linux嵌入式开发project师的对话的相关文章

与一线Linux嵌入式开发工程师的对话

转:与一线Linux嵌入式开发工程师的对话 陈工程师一直做Linux的嵌入式开发,作为在开发一线的工程师,他对很多问题的看法可能更切合实际需求,于是,通过邮件,就嵌入式开发方面的问题,请他谈了一下自己的看法: 问:关于嵌入式开发,我们准备给同学们讲解一些入门知识,从你一线开发经验来说,给我们一些建议: 陈工回答: 对于嵌入式Linux入门,如果有一定基础,可以从驱动开始:如果没有基础,我个人建议还是从应用程序开始.因为从应用程序开始是最容易的,也是 最直观的.而驱动程序运行在内核态,驱动本身的结

Android开发project师,前行路上的14项技能

导读: 你是否曾渴望回到宋朝? 或者什么朝,反正就是男耕女织的古代. 哦,那时的首都在汴梁(开封),房价想必没有如今这么高,工作?无非就是给你把锄头,去,种地去.夕阳西下了,麦子垛后,你和翠姑搂抱在一起,那时的你,生活的简单而美好. 看看如今的你,一个刚入门的安卓开发project师,没有信用卡,没有她,没有24小时热水的家.你想念你的锄头和翠姑(或麦垛),可你回不去了.你握在手中的安卓手机,冰冷如铁,你不知道怎样在这4寸屏的小东西上创出一片天地. 你不用感到不知所措和困惑,技术就是你安身立命的

中国软件开发project师之痛

用C#实现文件夹拷贝 C#中没有拷贝整个文件夹的方法,最近需要用到,就写了一个Demo,拿出来跟大家分享一下 主要思想: 1.写一个拷贝文件夹的函数CopyFolder,传入源文件夹路径和目的文件夹路径 2.判断目的文件夹路径是否存在,如果不存在,创建此文件夹 3.获取源文件夹下的所有文件,拷贝这些文件到目的文件夹 4.获取源文件夹下的所有文件夹,循环调用CopyFolder(此处利用了递归) 代码: using System; using System.IO; namespace Folder

linux嵌入式&开发环境的搭建&VMware的安装与使用

学习linux嵌入式开发,顾名思义,需要在linux操作系统下进行开发,所以我们需要先有一个linux操作系统.这里由于我们是在 Windows 下进行开发的,如果想在不安装双系统的前提下进行linux嵌入式开发,这里我们就要用到虚拟机VMware软件了,使用VMware的目的就是可以在该软件下构建出多个操作系统.那么VMware又是如何安装和使用的呢? 1.VMware的安装 下载 VMware-workstation-full-11.1.2.61471.1437365244 软件,这里以WM

掌握11项技能,你就是优秀的前端开发project师

导读: 你或许会认为前端开发是一个非常easy的工作,对呀,你就是刚刚从网页设计转型过来的.但当你深入当中时,一定会发现好像前端开发不是那么简单,光站点性能优化.响应式.框架就让你焦头烂额, 确实,做前端开发就是先易后难,想成为一个优秀的前端开发,没有那么简单. 只是,天下事难则不会,会则不难,你仅仅须要掌握11项技能就能够成为前端"大拿",以下,就告诉你这11项技能是什么?以及每项技能的要点,最后是相关的专业图书. 入门必备的技能: 第1项技能:HTML超文本标记语言: 技能要点:

linux嵌入式开发教程下载

深入浅出linux嵌入式视频教程下载[视频+代码+课件],共计8个多G,课程从c语言--c++基础--数据结构和算法--arm体系结构--STL模板--Linux系统移植--Linux高级编程UC--嵌入式--项目,可以说是一部到位,入门到精通,堪称经典之作! 下载地址:http://bbs.it1717.com/thread-277-1-1.html

ARM+Linux 嵌入式开发环境搭建

这些都是自个从一月份开始学习ARM+Linux中遇到的问题做的笔记,我觉得很有用,所以分享出来! 因为没有老师教,自己琢磨遇到的问题很多,欢迎交流! -------------------------------------------------------------------------------------------------- 零点漂移队:封尘浪 ------------------------------------------------------------------

linux嵌入式开发新方法:阿里云+arm开发板

我们学习arm-linux开发常常需要在自己的电脑上安装虚拟机,虚拟机运行linux操作系统,对于一些没有或者不能安装虚拟机的电脑就不能进行arm-linux开发. 但现在我介绍一种新的方法,使用阿里云计算. 准备: 1.阿里云Linux操作系统 2.arm 开发板 3.window上需要的软件:putty.tftp. 步骤: 1.申请阿里云计算服务器,我选的ubuntu,1核,512内存,100M宽带(流量计费方式). 2.配置linux的nfs服务,创建根目录下forlinux文件夹为NFS

linux嵌入式开发平台网卡驱动解决办法

最近用了下树莓派和inter Edison,本来打算使用一下网卡,可是发现树莓派和Edison竟然都编译不了官方的驱动,报错缺少 /kenerl/bulid 目录,查了下资料,原来是这些嵌入式平台都为了节省空间,都没有搭载源码,而在网卡的驱动程序中有需要调用系统的接口,但是没有源码,这些接口也就没有了,编译的时候就找不到接口,so,报错了. 一编译驱动 解决办法有两个: 第一 安装source-devel source-devel也就是源码库,你所用的内核的接口该有的它都有. 1. 首先,查看内