您现在的位置:智能制造网>技术中心>嵌入式系统学习的入门方法介绍

直播推荐

更多>

企业动态

更多>

推荐展会

更多>

嵌入式系统学习的入门方法介绍

2013年11月13日 17:18:24人气:1213来源:

  工控摘要:也许你会注意到,现在做嵌入式的人中,做linux研究的人远比做WinCE的人多,很多产家提供的资料也是以linux为主。其实WinCE的界面比linux的界面好看多了,使用起来也很方便,更为重要的是,WinCE的开发和Windows下的开发基本一样,学起来简单得多,但是学linux或者使用linux做嵌入式的人就是远比WinCE多。
  
  在和很多工作的人交流时了解到,他们公司从没考虑使用WinCE,因为成本高,都是使用linux进行开发。在学校里,大都研究linux,也有少部分项目使用vxwork,但是就没有听说过使用WinCE的,原因就是开源!当然现在WinCE6.0听说也开源,不过在成本和资源上linux已经有了无人能挡的优势。与此相对应的是,越来越多的电子厂商已经开始使用linux开发产品。
  
  *,学习基本的裸机编程
  
  对于学硬件的人而言,必须先对硬件的基本使用方法有感性的认识,更必须深刻认识该硬件的控制方式,如果一开始就学linux系统、学移植那么只会马上就陷入一个很深的漩涡。刚刚开始学ARM的时候选择ARM9,从底层的硬件控制着手,因为无论做多复杂的系统zui终都会落实到zui底层的硬件控制,因此对这些硬件的控制有了感性的认识就会好很多
  
  学习裸机的编程的同时要好好理解这个硬件的构架、控制原理,这些我称他为理解硬件。所谓的理解硬件就是说,理解这个硬件是怎么组织这么多资源的,这些资源又是怎么由cpu、由编程进行控制的。比如说,s3c2410中有AD转换器,有GPIO(通用IO口),还有nandflash控制器,这些东西都有一些寄存器来控制,这些寄存器都有一个地址,那么这些地址是什么意思?又怎么通过寄存器来控制这些外围设备的运转?
  
  还有,norflash内部的每一个单元在这个芯片的内存中都有一个相应的地址单元,那么这些地址与刚刚说的寄存器地址又有什么关系?他们是一样的吗?而与norflash相对应的nandflash内部的储存单元并不是线性排放的,那么s3c2410怎么将nandflash的地址映射在内存空间上进行使用?或者简单地说应该怎么用nandflash?再有,使用ADS进对ARM9行编程时都需要使用到一个初始化的汇编文件,这个文件究竟有什么用?他里面的代码是什么意思?不要这个可以吗?
  
  诸如此类都是对硬件的理解,理解了这些东西就对硬件有很深的理解了,这对以后更深一步的学习将有很大的帮助,如果跳过这一步,越往后学越会觉得迷茫,越觉得这写东西深不可测。因为,你的根基没打好。
  
  第二,使用linux系统进行一些基本的实验
  
  在买一套板子的时候一般会提供一些linux的试验例程,好好做一段时间这个吧,这个过程也是很有意义的,也是为进一步的学习积累感性认识,你能想象一个从没有使用过linux系统的人能学好linux的编程吗?好好按照手册上的例程做一做里面的实验,虽然有点娃娃学走路,有点弱智,但是很多高手都会经历这个过程。
  
  第三,研究完整的linux系统的的运行过程
  
  所谓完整的linux系统包括哪些部分呢?
  
  三部分:bootloader、linuxkernel(linux内核)、rootfile(根文件系统)。
  
  那么这3部分是怎么相互协作来构成这个系统的呢?各自有什么用呢?三者有什么?怎么?系统的执行流程又是怎么样的呢?搞清楚这个问题你对整个系统的运行就很清楚了,对于下一步制作这个linux系统就打下了另一个重要的根基。
  
  第四,开始做系统移植
  
  上面说到完整的linux有3部分,而且你也知道了他们之间的关系和作用,那么现在你要做的便是自己动手学会制作这些东西。
  
  当然不可能叫你编写这些代码,这不实现。事实上这个3者都能在网下载到相应的源代码,但是这个源代码不可能下载编译后就能在你的系统上运行,需要很多的修改,直到他能运行在你的板子上,这个修改的过程就叫移植。在进行移植的过程中你要学的东西很多,要懂的相关知识也很多,等你完成了这个过程你会发现你已经算是一个初出茅庐的高手了。
  
  在这个过程中如果你很有研究精神的话你必然会想到看源代码。很多书介绍你怎么阅读linux源代码,我不提倡无目的地去看linux源代码,用许三多的话说,这没有意义。等你在做移植的时候你觉得你必须去看源代码时再去找基本好书看看,这里我推荐一本好书倪继利的《linux内核的分析与编程》,这是一本针对linux-2.6.11内核的书,说得很深,建议先提高自己的C语言编程水平再去看。
  
  这一步的zui终目的是,从源代码的*主页上(都是外国的,悲哀)下载标准的源代码包,然后进行修改,zui终运行在板子上。专业嵌入式技术实训,详情了解
  
  第五,研究linux驱动程序的编写
  
  移植系统并不是zui终的目的,zui终的目的是开发产品,做项目,这些都要进行驱动程序的开发。
  
  Linux的驱动程序可以说是五花八门,linux2.4和linux2.6的编写有相当大的区别,就是同为linux2.6但是不同版本间的驱动程序也有区别,因此编写linux的驱动程序变都不是那么容易的事情,对于版本的驱动程序的编写甚至还没有足够的参考资料。那么我的建议就是使用、移植一个不算很新的版本内核,这样到时学驱动的编程就有足够的资料了。
  
  第六,研究应用程序的编写
  
  做作品做项目除了编写驱动程序,zui后还要编写应用程序。现在的趋势是图形应用程序的开发,而图形应用程序中用得zui多的还是qt/e函数库。建议使用国产的MiniGUI函数库。MiniGUI的编程比较相似Windows下的VC编程,比较容易上手,效果应该说是相当不错的。不过MiniGUIzui大的不好就是没有像qtopia这样的图形操作平台,这大大限制了他的推广,完成这一步你基本就学完了嵌入式linux的全部内容了。
关键词:转换器控制器
全年征稿/资讯合作 联系邮箱:1271141964@qq.com

免责声明

  • 凡本网注明"来源:智能制造网"的所有作品,版权均属于智能制造网,转载请必须注明智能制造网,https://www.gkzhan.com。违反者本网将追究相关法律责任。
  • 企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
  • 本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
  • 如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

<
更多 >

工控网机器人仪器仪表物联网3D打印工业软件金属加工机械包装机械印刷机械农业机械食品加工设备制药设备仓储物流环保设备造纸机械工程机械纺织机械化工设备电子加工设备水泥设备海洋水利装备矿冶设备新能源设备服装机械印染机械制鞋机械玻璃机械陶瓷设备橡塑设备船舶设备电子元器件电气设备


我要投稿
  • 投稿请发送邮件至:(邮件标题请备注“投稿”)1271141964.qq.com
  • 联系电话0571-89719789
工业4.0时代智能制造领域“互联网+”服务平台
智能制造网APP

功能丰富 实时交流

智能制造网小程序

订阅获取更多服务

微信公众号

关注我们

抖音

智能制造网

抖音号:gkzhan

打开抖音 搜索页扫一扫

视频号

智能制造网

公众号:智能制造网

打开微信扫码关注视频号

快手

智能制造网

快手ID:gkzhan2006

打开快手 扫一扫关注
意见反馈
关闭
企业未开通此功能
详询客服 : 0571-87858618