`
naiquan_hu
  • 浏览: 66669 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

嵌入式学习入门 (献给后来的bitier)(转一个网友的)

阅读更多

嵌入式学习入门 (献给后来的bitier)

 

说明:这是我总结了自己学习这门学问的一些体会,尽量把问题说明白。作为菜鸟,我很清楚,往往在技术论坛问一个问题,高手回答一句,自己得琢磨半 天。不能怪回答问题的人,人家又不是非得回答你,能给点提示已经很不容易了。因此,我尽量把文章写得让以前一无所知的同学能够明白。如果有什么不明白的, 一定提出来,我再详细解释。
还有,非常重要的一点,我不能保证文章里的所有东西都是对的。
再有,可能会不知不觉地引用别人的文章,以节省自己的打字时间,请大家理解。
PS: 既然说到嵌入式,肯定会说到Linux,不过我并不打算把这个文章写成Linux入门。我只会告诉你,你不会Linux?先找本入门的书看。
又PS: 通信工程专业是不会开设嵌入式课程的,电子的同学在大四上的时候周金和老师会开一门课。所以通信工程专业的同学有点可惜啊。不过我也是通信工程的,呵呵,一直缠着周老师争取机会吧。
再PS(大家不要打我):我在文中提到的软件包,过一阵我会尽量把它们整理出来,放到59.64.74.100里面给大家下载的。

那么开始吧。

先介绍一下自己学习嵌入式的历程。大三上学期选修了C51,51芯片就是嵌入式系统,算是开端吧。大三下学期的,正好周金和老师招人参加Intel赞助的 嵌入式竞赛。我和班上的另两位牛人(pft和我宿舍的大哥)一起报名参加了。他们两个人都很有特点。pft学习非常好,理论基础特别扎实。经常有学弟学妹 问我,学这些专业课有什么用。我觉得pft的经历就告诉了大家,你信号与系统学好了,就是非常非常有用。在竞赛中,pft负责图像和语音压缩,如果没有信 号处理的知识,你编程能力再强也是屠龙之技罢了。大哥呢,则是非常卖命的一个人,只要他想做一件事,那真是没日没夜的钻研。大三下,大家都在准备考研。我 们三个也不例外,时间很紧张。要抽时间去实验室,要抽时间复习,要抽时间上课。那时候,大四的学长带着我们,当时他们在周老师手下做毕业设计。我个人的学 习过程是这样的:因为大一的时候我就选修过Unix,对Linux算是有了基础。所以,那个时候就熟悉硬件开发板,自己尝试写一些程序到板子上运行。就这 样慢慢地进入状态了。到后来就水到渠成了。2004年5月,比赛正式开始。到9月份结束。最后我们学校获得了3等奖。应该是非常不错了。因为去看过获奖作 品演示,有些学校的作品真是XXX,全是靠学校的招牌。当然,也有做得非常好的,跟他们比有很大差距。

上面的经历涉及到的术语(如果有出现),你看不懂也没有关系,下面我来谈谈一些基本问题。

1. 我什么基础都没有,该怎么学习嵌入式?

没关系的,只要你有兴趣!

1.1 在我谈到具体技术之前,先给大家一些建议:
a 好好利用搜索引擎。在碰到问题后,最先想到得应该是去网上找找答案。百度和google应该是经常去的地方。比如说装Linux出现了n多问题,最好的办法是上网找答案,而不是去找个nb的学长帮你装完。真正山穷水尽了,那就不要怕羞或者怕人笑话,尽管找人问吧。
b 好好利用学校的图书馆。大家都在抱怨学校书少,真正利用了图书馆资源的没有几个。常去借书绝对是应该的。在此,强烈推荐大家使用超星电子图书。这个电子图书的具体使用我就在这儿啰嗦几句。先访问学校的超星主页 :http://211.68.37.141/bookhtm/index.asp 。下载浏览器和注册机。浏览器要在注册之后才能使用的。有不少同学打开超星浏览器后,就去外网的超星公司主页去找书了,结果是看不了——因为这个需要自己去买超星的充值卡才行的。大家要看书,还是访问学校的超星主页 :http://211.68.37.141/bookhtm/index.asp , 然后在信息检索那输入书名,比如输入Linux,就会出现好多书供你选择。你想阅读,点“阅读”,下载呢,就点“下载”。好了,说完了。听说不少同学装好 了浏览器,但是点了“下载”,就是不出现下载页面。这种问题我没遇到过。大家如果碰到这类问题,不妨从同学的电脑下载,然后传到自己电脑上看。
学校的维普电子期刊也非常不错,平常写论文什么的,基本上能够在那儿找到范文。嘿嘿。
c 好好利用外网的技术论坛以及我们学校的发达网络。我觉得最好的嵌入式或者Linux论坛就是这个:http://www.linuxforum.net/forum/ubbthreads.php
还有,当你从事某个具体项目是,最好加入邮件列表。我们学校的邮箱好像收不到许多国外的邮件(也有同学在论坛上说只要设置好自己的邮箱就行)。我的做法是,去申请一个国外的邮箱。在此也推荐一个印度的1G免费邮箱:http://in.rediff.com/index.html
很多外国网友都挺热心的。跟他们通信也可以提高自己的e文水平。

1.2 从技术层面回答
接着,说说技术学习。现在,你一无所知是吧,那我介绍的这些东西,今后你就该开始学了。我觉得,一直到大三下复习考研前的这么多时间,在本专业学习之余, 完全是有余力掌握一两门技术的,寒假和暑假都是很好的机会。如果能参加个竞赛什么的那就更好了。还有,在学技术之前,最好认清自己——你是否真得喜欢技术 工作?还是因为自己专业课学得不好,想学技术混口饭吃?还是看到别的同学也学自己也随大流?我只想提醒一句:真正学好一门技术,并坚持下去——这个难度不 比学模电数电小。因此,兴趣是最好的老师。

好,大家想明白了吧。那么,进入正题。

我认为首先必须掌握C语言。以前也学过是吧?可能是混过去的,现在什么都不会。那么,找本谭浩强的书看看吧,在Windows下编编程序。积累这个基础不 用很长时间的。至于掌握C的水平高低咱就不管了——今年去找工作的时候,我被一家公司先笔试后鄙视,他给的一份题,考得全是指针、数据结构、堆栈算法,然 后对我下结论:“你对C一窍不通”。#@$%^&*。我就FT。

C语言的重要性我就不多说了,大家应该对此不会有什么疑义吧?

1.3 安装Linux
现在说说Linux。这个也是必须要掌握的。我想,困扰大家的是安装问题。按理说RedHat是最适合初学者的。问题是现在大家的电脑都是那么高级,很多 硬件RedHat 9都不支持。有一个办法,市面上出了一个Fedora Core 3,是由Red Hat公司赞助的发行版,可以买一个来装。硬件支持性应该还不错。(声明:该发行版销售商与我素不相识,没给我任何好处,如果买了发现用的不爽不要找 我)。
我使用的是Debian 。它的优点是可以不断升级,这样就能支持各种硬件了。缺点是不很适合初学者。Debian安装包请到我在学校的个人网页那儿下载。至于Debian的一些资料,大家可以搜索,或者访问我的个人网页,那儿有些资料不妨看看。
等等,你刚才说的Redhat和Debian是什么?跟Linux有什么关系?
呃,Redhat和Debian都是Linux操作系统的发行版本。如果有这方面疑问的同学,请先到图书馆找本入门的书看。以后我就假定你已经掌握了这些知识,仅仅是在安装系统碰到问题而已。
如果你的配置不是特别奇怪,嗬嗬,Redhat 9 绝对是个不错的选择。安装包在学校的Ftp有,图书馆的ftp有6个iso文件,只要前三个就可以了,后面3个是源代码包。这个iso文件呢,可以放在硬 盘上,从硬盘上安装Linux。背心论坛的Unix板有这个贴子,大家可以搜出来看看。也可以把iso刻录到光盘上从光盘上安装。刻录时注意了,有同学刻 录了之后无法自启动,原因是刻录时没选对选项。刻录Redhat的盘跟刻录XP系统盘的方法是一样的。这个过程并不难,大家不要怕。
好,有Redhat或者Debian的盘了。我的经验是,先在Windows中留出一个空盘。比如我把E盘的文件都先拷贝到别的盘上,然后用 PQ(Partition Magic 8.0,学校ftp里有)从E盘分出ext3和swap分区(注意:千万别选安装另一个操作系统,仅仅是选择创建一个分区)。这样做速度最快,最安全。如 果你用PQ分区时是选择的是安装另一个操作系统,最有可能出现的情况是要求你重启电脑,然后是不能进入windows了。呵呵。这个问题我碰到过N次。
呃,删掉Linux分区。我的做法是,用PQ把分区删除,然后格式化就可以了。呵呵,可能这样做后不能进入系统了。没有关系,找张DOS启动盘(软盘或者光盘),带fdisk的那种,输入命令fdisk /mbr 就可以了。肯定有更好的办法,我只说一下我的做法。

不行,安装了之后,要么没声音,要么进不了图形界面,要么分辨率只能是800X600……
那么,何不试试虚拟机。如果你的内存足够大,用虚拟机也是非常好的选择。VMware和Connectix Virtual PC都不错。软件学校ftp有,去外网下也很快。

Cygwin也不妨用一下。这个更简单。点击安装就可以了,然后出来类似Linux的字符界面。不过,好多命令都没有。

说了那么多Linux。其实,你只要看看书,然后实践几次就可以了。比如在虚拟机下感觉感觉Linux就行了。以后有机会进入学校实验室,这些电脑安装RedHat 9都没有问题,到时候你就可以大干一场。所以说,Linux可以说重要也可以说不重要。


总结一下这个问题的答案。那就是掌握C和Linux。

下一讲,我会举例说明嵌入式开发的具体流程。大家看了之后就会比较感性的了解嵌入式的开发工作,就不会再觉得Embedded System深不可测了。

2. 嵌入式到底是什么东西?

这个问题,我从以下几个方面说明:嵌入式的概念;嵌入式中的一些重要术语;嵌入式的具体开发过程。至于嵌入式的前途之类的不再赘述。反正在实验室搞这些的找工作是不成问题。

什么是嵌入式呢?我觉得这个东西出现的不比计算机晚。比如控制某些机床使用了一些程序,那么这个控制系统就是嵌入式系统。像我们的电梯,它能接受大家的指 令,把大家送到目的地,这也是一个嵌入式系统。一开始,嵌入式系统并不需要有操作系统。许多嵌入式系统根本就没有操作系统,对很简单的嵌入式系统来说,这 可能已经足够。不过,随着嵌入式系统在复杂性上的增长,一个操作系统显得重要起来,因为否则的话,将使(控制)软件复杂度变得极不合理。像我们学的51单 片机,上面就没有用操作系统(想用也用不了)。对嵌入式系统很难下定义,只能说嵌入式的特点是:小巧、轻便、成本低(这个是最重要的)。我不知道这样说, 大家是不是了解了嵌入式系统这个概念。北航的何立民教授是这样定义嵌入式的:嵌入到对象体系中的专用计算机系统。嵌入性、专用性、计算机系统是嵌入式 (Embedded System)的三个要素。

嵌入式上使用的操作系统。在嵌入式系统中流行的操作系统太多了。比较有名的是WinCE,Linux,以及仿Linux的eCos(这个可能是将来的主 流)。还有什么uCOS、Palm、VxWorks、QNX等等。由于Linux免费且公开源代码,成为了大家的首选。电子的同学大四学嵌入式的时候,使 用的是uCLinux。这跟Linux有什么区别呢?首先声明一点我没有用过uCLinux。据我所知,uCLinux不带MMU(内存管理单元。嗬嗬, 这个术语不好理解。我也没有真正搞懂核心机理。不过,可以说一下它的作用:1把物理地址转换为连续的虚拟地址2 保护某些地址空间,限制对空间的访问。大家不懂也没有关系),所以uClinux使用在那些不带MMU功能的处理器芯片里,如s3c44X0。

嵌入式系统使用的处理器。如果你学习嵌入式,肯能经常会碰到ARM、StrongARM、Xscale、S3C2410、ARM9、PXA255。是不是 晕了呢?我来解释一下吧。ARM(Advanced RISC Machine。RISC指精简指令集,简单得说就是x86汇编指令的进化改进版)是一个公司的名字,于1990年11月在英国剑桥成立,它本身不生产芯 片,它设计出嵌入式微处理器核心,然后卖给Intel等厂商,它们生产的处理器类型就是ARM,所以ARM也是这类处理器的俗称。ARM处理器有很多家 族,如ARM7、ARM9、ARM11,数字越大越高级。Intel公司买了ARM核之后,融合了Intel的一些设计,给出了StrongARM、 Xscale等架构,具体生产时,加一些外围线路、元件啊,封装成为具体的处理器芯片,如PXA255。同样的s3c2410也是芯片的型号,韩国三星的 产品,同时也是ARM9。大家再看一下结构图就会明白这么多名字的关系了。通俗的说,ARM是最里面的核心,加点东西构成了Xscale,在Xscale 外面又加点东西就变成芯片了。

 


像PXA255芯片,是个17mmX17mm的正方形芯片,256个管脚(好像是)。

嵌入式开发板。学校实验室目前有两块开发板——三星的SMDK2410和Intel的Sitsang板。这儿要炫耀一下,Intel的Sitsang板是 李眈率领的团队在西藏开发的,Intel公司有这么一个习惯:哪儿开发的东西就以地名命名,所以叫Sitsang。这位李眈先生,00年于北京理工大学博 士毕业,嘿嘿,他的导师即将是我的导师。开发板就是以ARM处理器为核心,添加了一些外围资源,比如说ROM、RAM、USB口、LCD液晶显示屏、 LED灯等等,其实跟一台PC机差不多。只是价格不菲,比如Sitsang,价值RMB 2w。所以一般小公司能买得起开发板算是很不错了,更不用说更贵的调试设备了。所以学校还是花了不少money在实验室的。不过都得归功于周老师和苏进老 师的努力啊。
这张图就是三星的SMDK2410。它的CPU是s3c2410,200M的主频,32MB的内存,32MB的ROM。(说一下,嵌入式中的ROM通常是flash芯片,价格比较便宜)。
user posted image

Sitsang板。也是2004年竞赛的指定开发板,是Intel免费赠送的。这个竞赛可不是哪个大学都可以参加的。嗬嗬,背心不容易啊。Sitsang 使用的是Intel的PXA255作为处理器,主频400M。RAM、ROM都是64MB。性能超过了98年的PC机了。
user posted image
实际开发在开发板上进行,成功后,对开发板进行裁减。一些没有用到的硬件就可以不用了。比如做一个会议系统,只要一部分硬件,Sitsang板上的加速度传感器、红外口啊,在新系统中就可以不用了。画PCB板,制版,移植软件,成品。大概就这么个研发流程。

3. 在ARM开发板上运行我们的第一个程序

如果你已经安装好Linux,那么可以跟着一起做。如果你没有装Linux,也没有关系,看一遍也就了解了。以后修炼自己的技术在Windows下用VC即可。

其实所有的工作都可以在Windows下完成的,这个稍后再说。现在我们的工作环境是Linux。

首先用任意的文本编辑工具写一段程序(我喜欢用Vi):

#include <stdio.h>
void main()
{
printf(“Hello World!\n”);
}

保存为hello.c。
然后我们使用gcc编译这个c文件。(如果你是刚接触Linux,没编过程序的话,可以找本Linux编程方面的书来看)。绝大多数Linux发行版都是已经默认安装好gcc的。
我们在Windows下编写C程序,然后编译、链接,生成可执行文件。gcc就是完成这个功能。
我们在终端使用gcc命令:
$ gcc –o hello hello.c
如果程序没错,应该顺利通过编译,生成可执行文件hello。大家要编译别的文件,可以仿照这行命令:
$ gcc –o 生成文件 c源文件
我们用file命令察看这个hello。
$ file hello
这是你就可以看到hello是386平台上的可执行文件。
现在我们执行一下这个文件:
$ ./hello
(注意:前面应该加上当前路径,即 ./ 表示当前目录)
屏幕上是不是显示了 “ Hello World!” ?

现在开始介绍本节的重点内容。
大家知道ARM使用的是精简指令集,也就是说它用的汇编指令跟我们386平台的指令是不同的。从现象上看,就是我们在386电脑(就是使用赛扬、奔腾、迅 驰处理器的电脑)上的可执行文件不能在ARM平台上运行。怎么办呢?由此引出“交叉编译”这个名词。交叉编译的意思是:我们在i386平台上编译出ARM 可执行文件。也就是说,同样的hello.c,我用类似于gcc的交叉编译工具来编译,生成的文件能够在ARM平台上运行。
就是这么简单。嵌入式开发,我们一般都是在PC上写好程序,然后交叉编译生成可执行文件,通过数据线(如串口线、网线)下载到ARM开发板上运行。
网上可以下载到好多现成的交叉编译工具链(Toolchain)。我在下节会提供下载地址。我使用的是intel提供的。大家下载的文件是:xscale-arm-linux-toolchain.tgz
把它解压:
$ tar zxvf xscale-arm-linux-toolchain.tgz
然后会在当前目录出现一个usr的文件夹。它的目录结构是这样的:usr/local/arm-linux,里面有很多目录。把arm-linux这个目录移动到/usr/local下。
$ mv arm-linux /usr/local
然后修改环境变量:
$ echo “export PATH=/usr/local/arm-linux/bin:${PATH}” >>~/.bashrc
$ source ~/.bashrc
其实这么做仅仅是为了省事,你也可以在命令前加上长长的一串地址。
还是上次的hello.c。
我们这次用交叉编译工具arm-linux-gcc来编译:
$ arm-linux-gcc –o hello hello.c
如果没有修改.bashrc,你也可以这样:
$ /usr/local/arm-linux/bin/arm-linux-gcc –o hello hello.c
现在再用file命令看看,有什么区别:
$ file hello
是不是ARM可执行的?
然后我们通过串口或者网线把hello下载到ARM开发板上,就可以执行了。
至于怎么下载,这个涉及到具体平台,如果有机会去实验室尝试一下,不用几分钟就学会了。所以这个不是很重要。大家只需要在自己电脑上修炼编程功夫和熟悉Linux就可以了。

前面也说了,这些工作都可以在Windows下做的。有兴趣的同学可以用用cygwin。cygwin是在windows下模仿linux的一个软件。也有在cygwin环境下的交叉编译工具。
很多同学会问ARM开发板怎么和PC连接啊。
我在这儿说一下。通过串口线,把电脑和开发板相连。然后通过PC上的接口程序就可以和ARM板交互通信了。接口程序在Windows下使用超级终端(附件 ->通讯->超级终端)。做好一些设置,则会在程序上显示ARM板通过串口传过来的信息。在Linux下使用minicom,你只要运行 minicom命令就可以进入界面。这个界面(超级终端或者minicom)其实就相当于Linux的一个终端。因为ARM板上用的是Linux,所以这 个终端上可以接受你输入的命令,跟Linux上是一样的。

下节将会介绍一下软件下载地址和推荐几本书。

前面提到的操作系统,如Redhat、Debian、Fedora Core 3在外网都有下载,大家就没有必要自己去市场上买了。我要澄清一下:Linux是没有正版盗版这个概念的。比如Redhat,你可以去买,也可以去下载。 不同的是你花钱买的能够得到Redhat公司的技术支持。
大家可以登陆: ftp.tsinghua.edu.cn , 在OS下面后很多资源的。比如Linux发行版,cygwin等等。进入Linux文件夹,在distribution下面有debian、redhat 等。推荐大家使用redhat下面的fedora-core3,以及hiweed下面的hiweed-debian- desktip_0.55_i386.iso。下载速度挺快的。大家可以刻盘安装。
校内的同学,欢迎你访问我的资源网站:

首页里放了大量一位计算机系的超级n人b1gm0us搜集的资料。包括了linux\c\c++\嵌入式等等资料。大家认真看看应该还是很有收获的。

这个目录放了一些软件。其中有上节提到的toolchain。
http://59.64.74.100/quanhua/downloads http://59.64.74.100/quanhua/

quanhua/kaoyan" target=_blank>http://59.64.74.100/quanhua/kaoyan
通信考研的一些资料。
如果你有兴趣,可以看看我的毕业设计。

书:
《Linux上的C编程》 中国电力出版社 怀石工作室
关于ARM的书大家就不用去买了,有点浪费钱,看看学校图书馆有没有,借来看看,或者看电子版就可以了。
其它的书就不推荐了,都是特别贵,而且没什么用。Linux的学习呢,网上搜资料看看就可以了。推荐一个页面:http://www.etc.edu.cn/blog/archives/000323.html Linux入门学习。在百度搜索“北师大 Linux”,第一个结果就是这个。

学习方向:
周老师的实验室里需要这几类人才:
(1)信号与系统、DSP学得特别好,理论功底扎实。老师会让你钻研图像和语音的压缩算法。这个很难哦。既要有编程能力,专业课又要学得很好才行。不过,钻这个绝对钱途无量。
(2)纯粹的程序写手。往这方面发展,你需要精通Linux上的C语言编程,C++熟练,网络编程熟练。也就是计算机系同学的特长。如果你想往这方面发展 的话。先学好C++,然后学网络,最后把阵地转移到Linux上去编程。嵌入式系统的图形界面很多用的是qt。简单的理解呢,就相当于VC++的MFC。 只要掌握了C++,用qt还是很容易上手的。学校超星有电子书,你可以搜索”qt ”看看。
(3)研究底层硬件。你需要掌握ARM汇编,C是不用说了。Linux内核编程。硬件驱动程序等等。可以从分析Linux源代码做起(很难啊)。
(4)暂时想不起来。
想进入嵌入式实验室?周老师喜欢那种肯钻研、能拼命干活那种。如果你不强,老师可有n多借口拒绝哦。进不了也没事,争取跟他作毕设。大家千万别说是我推荐的啊。这可跟我没有任何关系。

(完)
以后想到什么再写吧。

嵌入式工程师step by step

 

(1)首先学嵌入不是为了跟风,而是为了逐浪。不是要看大家都去做

这一行才去做。是真的喜欢,这样才能精,才能做到“逐浪”!

(2)成功的历程是漫长、艰辛的,要有一颗艰韧不拔的心

很多人以为搞嵌入式就是随便找本书看看,在电脑上编几个程序就完事。非也,其实嵌入式的门槛是比较高的。具体如下:  

  1、您得有一定数量的Money。

    (1)、开发板贵

    (2)、培训费更贵

    (3)、开发平台是贵得不能再贵。(除非您只是想玩玩而已)

  2、需要学习的东西多。(1)、window环境编程;(2)、Linux环境编程;(3)、单片机

  3、最后也是最重要的一点,你得有坚韧不拔之志和一颗平常之心。

   (1)、自信 坚强 积极 勤快 (注:好的自信是自觉的!)

   (2)、成功其实就是成为最好的您自己       

  嵌入式门槛虽然较高,但也跟其他事物一样,并不是牢不可破。只要我们用心去对待,东雪终将化去,春风定会吹来。具体步骤如下:

  1、《C语言》第二版 谭浩强 ; 《C程序设计语言》第二版 徐宝文译机戒工业出版社

  你能区分开指针数组和数组指针吗?你知道函数指针吗?

  你能区分开定义一个变量时系统给它分配的空间与用malloc()函数给一个变量分配的空间有什么不一样吗?

  2、《数据结构》C语言版  黄国愉、叶乃青编 清华大学出版社

  你能合上书本,用C语言实现书中的单链表、双链表数据结构吗?

  3、《实用C++程序设计》第二板 中国电力出版社 Steve_Oualline著

  此阶段主要是学习其面向对象的编程思想,加深对C语言和数据结构的理解。

  4、学习单片机,最好能找个前辈带一带。

 你能用51单片机做出一样实际的东西吗?即使它再简单!

 要注意加深对中断的理解。

  5、学习ARM单片机。

   (1)、细读《ARM微控制器基础与实战》周立工编写 (注:即使你不用书中的开发板)

   (2)、细读相关芯片的原版英文文档。如:arm920TE.pdf  S3C2410_1.2.pdf

  6、学习uCOS!!操作系统。

   (1)、细读《嵌入式实时操作系统uC/OS-!!》第二版 召贝贝译

    你能把uCOS!!移植到自己的平台上吗?

   (2)、能编写在uCOS!!操作系统环境下运行的针对具体硬件的驱动程序

  7、熟悉Linux环境,学习Linux环境编程,学习交叉编程

   (1)、细读《linux命令大全.pdf》

   (2)、细读《GNU Make 使用手册(中译版).pdf》

   (3)、学习创建交叉编程环境.

  8、学习Linux操作系统。     

   (1)、《UNIX环境高级编程》

   (2)、细读“joyfire 笔记”,可在“www.qianrushi.com ”网站的好书下载栏目获取

  (3)、细读《linux内核完全注释》

   (4)、细读《understanding the linux kernel 2》

   (5)、利用源代码阅读利器工具"Source Insight"进行真正的linux内核原码刨析

   (6)、最后进行内核移植,并能编写在linux操作系统环境下运行的针对具体硬件的驱动程序

  9、学习Linux设备驱动编写。可参考《Linux设备驱动程序》

 10、复习C++,学习用QT进行图形界面编程

   (1)、细读《QT编程宝典》

   (2)、学会通过查看QT电子文档进行QT GUI实地编程

   (3)、学习交叉编程.(其实就是把命令qmake变为tmake)

 11、当然,你也可学习一下PCB的制作和设计一个自己的CPU(即软壳)

  至此,你已学完嵌入式的整流程!但谨记:一个有思想的人才真是一个力量无边的人;有容乃大,能予方强

分享到:
评论

相关推荐

    基于Arduino的嵌入式系统入门与实践课件—Arduino嵌入式综合应用系统.pdf

    基于Arduino的嵌入式系统入门与实践课件—Arduino嵌入式综合应用系统.pdf基于Arduino的嵌入式系统入门与实践课件—Arduino嵌入式综合应用系统.pdf基于Arduino的嵌入式系统入门与实践课件—Arduino嵌入式综合应用系统...

    嵌入式学习入门资料集锦

    嵌入式学习是一个涵盖多个领域的综合技术,包括操作系统、硬件平台、编程语言和应用软件等。这个"嵌入式学习入门资料集锦"提供了一系列的资源,帮助初学者全面了解和掌握这一领域。 首先,"嵌入式LINUX 教程.rar"是...

    嵌入式LINUX入门笔记

    本入门笔记旨在为初学者提供一个清晰的学习路径,逐步掌握嵌入式Linux的基本知识和技能。 在PC机上熟悉Linux是学习嵌入式Linux的第一步。首先,你需要安装一个Linux发行版,如Ubuntu或Fedora,来体验Linux环境。...

    C语言嵌入式编程入门

    《C语言嵌入式编程入门》这本书旨在为初学者提供一个清晰的路径,逐步引领他们进入这个充满机遇和挑战的领域。本文将深入探讨C语言在嵌入式编程中的应用,以及如何通过学习这本书来提升你的技能。 首先,C语言是...

    嵌入式开发入门 ppt

    总的来说,这个压缩包提供了一个全面的嵌入式开发入门教程,涵盖了从理论到实践的多个关键点。通过学习这些内容,初学者能够逐步掌握嵌入式系统的设计和开发,为我国的嵌入式事业发展贡献自己的力量。无论是对硬件的...

    嵌入式linux入门笔记

    4. **Bootloader**:Bootloader是启动嵌入式系统的第一个软件,负责加载操作系统到内存中。常见的Bootloader有U-Boot和LiBRE。 5. **文件系统**:嵌入式Linux系统也需要文件系统来组织和管理数据。常见的文件系统...

    嵌入式开发入门教程 嵌入式开发入门教程

    嵌入嵌入式开发入门教程开发入门教嵌入式开发入门教嵌入式开发入门教程

    2024年最全嵌入式开发一嵌入式开发新手入门

    2024年最全嵌入式开发一嵌入式开发新手入门2024年最全嵌入式开发一嵌入式开发新手入门2024年最全嵌入式开发一嵌入式开发新手入门2024年最全嵌入式开发一嵌入式开发新手入门2024年最全嵌入式开发一嵌入式开发新手入门...

    从51到ARM32位嵌入式系统入门-2

    从51到ARM32位嵌入式系统入门-2,一共有二个压缩包文件,这是第二个,需下载完2个,才能解压文件成功!请注意了!

    嵌入式 linux入门学习

    嵌入式 linux入门学习

    嵌入式Linux入门笔记(pdf,清晰)

    它提供了一个稳定、可靠且可定制的操作环境,适合于开发各种嵌入式应用。 3. **Linux内核裁剪**:由于嵌入式系统的资源有限,通常需要对Linux内核进行裁剪,只保留必要的功能模块,以优化性能和减少内存占用。 4. ...

    国嵌_嵌入式Linux入门班实验手册-1.pdf

    国嵌_嵌入式Linux入门班实验手册-1pdf,

    嵌入式系统入门教程和初学者必备

    嵌入式系统作为现代科技的重要组成部分,已经成为日常生活中不可或缺的一...因此,本文提供的嵌入式系统入门教程和学习资源,旨在为初学者提供一个坚实的学习平台,帮助他们快速入门并深入探索这个充满无限可能的领域。

    嵌入式入门前

    嵌入式系统是计算机科学的一个重要分支,它涉及到硬件和软件的紧密结合,用于控制、监视或优化机器和设备的操作。在这个领域,开发者需要掌握一系列的技能,包括微处理器知识、操作系统原理、编程语言以及硬件设计等...

    嵌入式linux快速入门

    【嵌入式Linux快速入门】是针对想要涉足嵌入式领域并使用Linux操作系统进行开发的初学者的一门课程。这门课程涵盖了从基础到进阶的多个方面,旨在帮助学习者快速掌握Linux环境下的基本操作和开发技能。 首先,课程...

    嵌入式系统入门

    "第1章 嵌入式系统基础入门.ppt"文件可能是这个入门教程的第一部分,它可能会涵盖嵌入式系统的概念、基本组成、以及s3c2410处理器的特点和应用。学习这部分内容可以帮助初学者建立起对嵌入式系统的基本认识,为...

    国嵌嵌入式体验入门班实验手册

    实验手册主要是为了配合国嵌嵌入式入门班的培训课程而设计的,包含了丰富的实验案例和操作指南,旨在帮助学习者更好地理解和掌握嵌入式系统的开发技能。实验手册不仅包括理论知识讲解,还有具体的实践指导,非常适合...

    一份讲的比较细致的嵌入式linux入门材料

    【嵌入式Linux入门知识详解】 嵌入式Linux是指将Linux操作系统应用于专门设计的硬件系统中,用于控制或管理各种设备,如路由器、PDA、工控设备等。相较于传统桌面版Linux,嵌入式Linux更注重系统资源的优化、低功耗...

Global site tag (gtag.js) - Google Analytics