电子信息工程自学嵌入式arm要有哪些知识 怎么准备,听说要学操作系统,数据结构算法,linux

100分!!!电子信息工程大三学生自学嵌入式arm要有哪些知识 怎么准备,听说要学操作系统,数据结构算法,linux操作系统,那位大侠知道,怎么自学,最好推荐下比较通俗易懂的教材,视频之类的,最好是教材,还有dsp学起来怎么样,还希望结交一些志同道合的朋友,期待大侠ing
fpga怎么样,如果以后要从事通信方面的工作的话,最好学dsp arm 还是fpga,另外NS-2这个软件怎么学,通信还要学习哪些比较有用的软件,O(∩_∩)O谢谢

我知道的ARM入门最好的方法
1、抓住51开发ARM

我自己个人的观点:51是一个基础,而且还很重要,这是再我看了ARM之后感觉到的。它可以加速你的ARM学习速度,真得!不相信你试一试好了。
凡是要求一个速度、效率,不要做一些无用功,抓紧身边的每一个一分钟,人是活的,东西(知识、书)是死得。

2、ARM怎么入门?

一、首先说说ARM的发展
可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。客观的讲,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。DSP因为数字处理与通信领域的空前发展而火暴,小到MP3 射象头,大到我们军品里的控制器,应用面很广。

值得注意的是:在找工作中,企业(著名的,小的不算)对单纯的ARM硬件开发工程师并不比单片机重视,很少有大企业的职位里写“从事过ARM开发优先”。写的多的是什么?“嵌入式LINUX”到这相信大家看出来了吧,需要的是硬件中的软件。

二、ARM是硬件还是软件

很难说,ARM是硬件,LINUX是软件。ARM的硬件多半已经模块化了,像我这样把板子改成这样的就算动的多的了,这同样是ARM公司的战略,再次佩服。实际中的LINUX的开发工作更多,更耗时。从这方面说ARM应该算是软件了。

在找工作中更是这样,举个例子,联想里和ARM最接近的是“BIOS工程师”是软件,MOTO里接近的是嵌入式LINUX工程师是软件。而其他很多公司把嵌入式产品开发归为硬件。所以,不要讨论这个,好好玩转自己的板子才是关键。实在不爽你就把自己叫“嵌入式开发工程师”。

四、要不要有51 AVR等单片机基础

有更好,但没有也无所谓。
五、开发都需要学习哪些软件
总结起来最主要的有以下几个吧:

1、ADS调试用

确切的说是ADS+AXD。ADS里包含AXD。原来都用SDT后来ARM公司停止对SDT支持了,改支持ADS了,还是用ADS吧。
有的人的程序发布的仍然是SDT版本的,但基本都可以找到相应ADS的,新人在这里不要发蒙。ADS是编译器,AXD是调试器。便宜成AXF以后再在ARM的RAM里调试。

2、PLASHPGM

FLASH烧写的软件。AXD在RAM里调试,掉电就没有了,方便程序修改。调试好的程序再下到FLASH里,上电直接运行。
同类的软件还有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人还问FLASH不支持BIN格式文件的问题就要看我写的PLASHPGM使用了。

3、BANYANT调试代理(不知道名对不,起这么个难记的,我一般都叫它“半羊”因为知道它那几天刚吃了烤羊)

调试代理就是用它帮你使用更简单的JTAG(便宜啊)来实现原本1K才卖的JTAG仿真器的大部分功能。JTAG调试原理看我另一篇笔记。简单的就可以把他理解为你自己做的JTAG的驱动就行了。调试代理还有很多种,什么H-JTAG了、ARM7了(不知道具体叫什么,就记得可执行文件叫 ARM7.EXE)都是,BANYANT比较好。需要注意的是,没种调试代理安装方法虽然都简单但都不一样,需要看说明。而且AXD调试之前都要运行。省钱了,就别怕麻烦了。

4、ARM-ELF-TOOLS工具链

里面是UCLINUX开发用的工具比如ARM-ELF-GCC只类的。工具链就是把很多工具打包在一起发布的方便你开发的东西。具体安装方法看我另一篇笔记。另外如果你开发LINUX就要用ARM-LINUX-TOOLS,不一样,不通用。

5、U-BOOT

大名鼎鼎的BOOTLOADER生成工具,同类的好象还有VIVI(名字很暧昧~~),生成的BOOTLOADER烧到FLASH里,然后就可以用 BOOTLOADER下载烧写其他了。有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像电脑上的BIOS。当然UCOS的不用这个,用什么我不知道:)最新版本是1.1.4 具体使用方法看我另一篇笔记吧。

6、UCLINUX包

UCLINUX的源码包,不用多说了吧?建议大家用现成的先体会一下,然后再自己编译,裁剪。因为单独UCLINUX的编辑技术上比较简单,但涉及的方面还是比较广的。

7、VMWARE

老牌的虚拟机软件,在一个机器上虚拟出一个机器装LINUX(PC上用的),省得你来回开关机了。记得装VMWARE-TOOLS,安装方法在我另一篇笔记里。

六、有哪些书推荐

主要推荐ZLG的三本书,有这3本再加网络就不用别的书了,其中主要推荐前2本,3是介绍体系结构的,也不错:

1、ARM嵌入式LINUX系统构建与驱动开发,北航版,驱动写的很详细,前期开发介绍也很好
2、ARM 嵌入式系统实验教程(二),北航版,有ZLG2200的原理图,实验程序和注释,了解人家是怎么开发的。
3、ARM嵌入式系统基础教程,最重要的是体系结构,汇编部分介绍,看看吧,增加理论素质。
4、44B0数据手册,写在这里是强调它的重要。

不推荐ZLG早期出的红色皮的ARM什么体系结构~只类的,写的太多,看烦了。其他的书没了几本,没看见好的,大家有看过的推荐吧。

七、选UCOS?UCLINUX?LINUX?VXWORKS?还是当单片机用

1、搞开发,工程设计,用UCOS,小巧,多进程,简单,体现了ARM7的精髓。
2、LINUX 正根的嵌入式系统,LINUX消费与通信领域用的比较多,但缺点是必须ARM9才能跑,ARM9的板子自己做就不行了,6层板太贵。买开发板1K达底吧。但是还是推荐选ARM9+LINUX
3、UCLINUX 算投机嵌入式系统:)ARM7上可以跑,由有LINUX近亲,学好好可以比较方便的转向LINUX,像我一样的穷鬼用吧,呵呵
4、VXWORKS,学好后可以找到高薪工作,但工作机会本身并不比LINUX好找。
5、当单片机用,不推荐,虽然我景仰的ZLG一直号召这么干。因为对于学习来说多进程的系统设计才是ARM7的玩头,至少你也要整个UCOS啊:)

有朋友问我先学这个当基础不行吗?那当然可以~~但我当时就用了1周搞定,就是我先的ADS在RAM中调试的笔记。后来我清空FLASH用的小段程序还是当时写的LED闪烁程序呢。另外1周里其中还因为自己过于菜,没把OM设置好导致晶阵不阵哈哈。这个是必须做的,但一带而过。目标放的远一点。

八、学习要用多长时间

我从菜鸟到现在两个多月,中间被打扰数次。仍然搞定了PCB设计与制版,RAM调试,FLASH下载,UBOOT移植和下载UCLINUX(没剪裁,用现成的),LCD驱动。再次坦诚的说:我确实比较菜,说这些不是让大家羡慕,只是告诉你们“你们应该比这个更好”,我相信良好的态度+合适的方法+及时的总结=成绩!

九、ARM都玩什么

就几点:
1、硬件设计
2、系统移植
3、驱动开发
4、应用开发

没了。其中推荐把注意力放在后两个上,3有难度,4比较灵活,最重要的是都是找工作的砝码。

十一、开发流程

这里是我的开发流程:

1、设计原理图(含WIGGLER的JTAG访真器)
2、设计PCB(含WIGGLER的JTAG访真器)
3、制版
4、焊接电压,确定电压没问题
5、焊接44B0+JTAG电路+WIGGLER的JTAG访真器+周边电路,用BANYANT+仿真器连接,BANYANT提示错误,但可以显示44B0编号,好象是0X0F0F0F0F只类的,说明44B0没问题
6、焊接晶体+RAM+ROM+周边电路,用BANYANT+仿真器连接,可以显示正确的44B0了
7、用BANYANT+仿真器连接,开AXD,在命令行窗口操作RAM,看可不可以修改,可以的话(用内存窗口看RAM地址)RAM就没问题,可以用这个命令“setmem 0xc000000,0xffffffff,32”,我的RAM挂在BANK6上所以地址是0XC000000,你要是改了就也得改。
8、用我写的《自己写了个C工程模板又写了个使用说明 》里的方法调试程序吧,写个简单的,我当时写个LED闪烁的。看好使不。
9、把程序按照《FLASH烧写总结 》里的烧到FLASH里,测试一下
10、按照《UBOOT 移植操作》移植UBOOT
11、按照《UCLINUX下载简单说明》下个UCLINUX
12、看看驱动开发的方法,自己写个驱动看看
13、还有很多事东西着你玩 呵呵

十二、关于JTAG访真器

JTAG访真器现在用的多是简板的,一个244那种,用的没什么不好。按照并口定义不同分几种,建议选WIFFLER定义的,因为支持的软件多。这个网上多的是,不多说了。值得提的是有的JTAG访真器原理图上有跳线用来使能复位信号,这个一般不跳上。就是不用复位信号,因为JTAG协议里本身也可以控制 44B0复位。当然,板子上的复位信号跳线也不用跳。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-20
关于如何学习嵌入式,我刚才看到一篇很不错的文章,是一个专科生介绍自己如何自学嵌入式,并找到嵌入式的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。

专科生学嵌入式到找到工作的前前后后--学习的榜样

先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。

退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘做技术的,可是处处碰壁。

一次偶然的机会,我才听到嵌入式这个行业。那天我去新华书店,在计算机分类那边想找本书学习。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习嵌入式,然后给我介绍了一下嵌入式现在的火热情况,告诉我学嵌入式多么的有前景,给我了一份传单,嵌入式培训的广告。听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。

回家后,我就上网查了下嵌入式,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。我就下决心想学嵌入式了。于是我去找嵌入式培训的相关信息,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。

后来,我在百度知道看到一篇让我很鼓舞的文章《如何学习嵌入式》,是一个嵌入式高手介绍没有基础的朋友怎么自学入门学嵌入式,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。

我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会我再去培训。

主意一定,我就去搜索嵌入式的视频,虽然零星找到一些嵌入式的视频,但是都不系统,我是想找一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教,不懂可以请教的。

后来我又找到一份很好的视频,是在嵌入式学习网推出的一份视频《嵌入式视频教程--零基础手把手教你学嵌入式》,里面的教程还不错,很完整,可以让我从基础的开始学起。视频不便宜啊,但是我也忍了,毕竟买几本书都要几百了,何况他们还有半年的技术咨询和服务,算值了。

======这里我就不给出他们的网址,如果你也想要嵌入式视频的话,那就自己去百度搜索:零基础手把手教你学嵌入式。

下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。

收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C语言视频教程学起,话说简单,其实我还是很多不懂的,我只好请教他们,他们还是很热心的,都帮我解决了。C语言我差不多学了一个礼拜,接下来我就学了linux的基本命令,我在他们提供linux虚拟机上都有做练习,敲linux的基本命令,写简单的C语言代码,差不多也就三个礼拜。我每天都在不停的写一些简单的代码,这样一月后我基本掌握了C和linux的基本操作。

接下来我就去学习了人家的视频的培训教程,是整套的,和去参加培训没有多大的区别,这一看就是两个月,学习了ARM的基本原理,学习嵌入式系统的概念,也掌握了嵌入式的环境的一些搭建,对linux也有更深层次的理解了,明白了嵌入式应用到底是怎么做的,但是驱动我只是有一点点的了解,这个相对难一点,我想以后再慢慢啃。

这两个月,除了吃饭睡觉,我几乎都在学习。因为我知道几乎没有基础,比别人差劲,我只能坚持努力着,我不能放弃,我必要要靠自己来养活自己,必须学好这门技术,同时我不懂的就问,这里真的很感谢他们的技术客服对我的任何问题都是耐心的解答,每天都我几乎都有好几个问题问他们,然后我就把不懂的问题总结记下来,这样慢慢积累了一段时间,我发现自己真的有点入门了。

最后的一个月,我就去看关于实践部分的内容,了解嵌入式项目具体的开发流程,需要什么样的知识,我就开始准备这方面的知识,也就是学习这方面的视频,同时他们建议我去找了找一些嵌入式面试的题目,为自己以后找工作做准备。我就到网上找了很多嵌入式的题目,把他们理解的记下来,这样差不多准备了20天左右

我觉得自己差不多入门了,会做一些简单的东西了。我就想去找工作看看,于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。

后来陆续面试了几家公司,终于功夫不负有心人。我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是嵌入式linux应用开发,做安防产品的应用的。我想我也比较幸运,经理很看重我的努力,就决定录用我,开的工资是3500一个月,虽然我知道在上海3500只能过温饱的生活,但是我想我足够了。我至少不用每天都要靠父母养,我自己也能养活自己的。我想只要我继续努力,我工资一定会翻倍的。

把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。

最后祝愿所有想学嵌入式的朋友更早的入门!!!
第2个回答  2010-12-15
前面的不知道,给你说下DSP吧,DSP这东西比ARM NB多了,建议学DSP,DSP核心时钟最高有570多M,好像,他不像ARM功能那么全,因为他的目标就是专注于数据计算,图像处理,声音处理全部用DSP,就业不错,但是DSP很难学,首先你得弄懂硬件组成原理,优化时才能根据硬件特性来做,二是DSP的编程语言不能用,每一种DSP都有他专用的语言。开始要用C语言,完了就可能学DSP专用的汇编了,这就是开始深入学习的第一步,再往后就是根据硬件特性优化,总之很难,但是将来也很赚钱。
第3个回答  2010-12-14
又一个做嵌入式的,欢迎!

首先,学嵌入式重要的不是教材,是玩开发板!推荐2440的板子,资源很多

C语言是基础,要非常熟练,教材用谭浩强的那本就行

操作系统有点用,可以考虑在开发板上自己完成一个,推荐移植ucos,网上有全中文解释,每句都有的,参考书随便找本就行,一定要写几个应用跑一下

数据结构不太有用,我到现在用的算法还是最基础的,嵌入式程序要的是清晰 易读 资源占用少,复杂算法没优势,二分、冒泡之类就行了,搞个三叉树没意义

linux可以玩,顺序是基础操作->调用系统资源编程->熟悉linux其他细节(移植、驱动等),如果要看内核,建议先用ucos熟悉一下,否则看个一年半载的都不一定能搞明白,教材的话太多了,大约一两个立方吧,就不推荐了,先PC上跑,熟悉了移到板子上,后面再考虑上Android什么的

dsp内容很多很有用,但学好要花太多时间,掌握一点点就行,产品里面涉及dsp的基本都不是我们做

祝早日成功!本回答被网友采纳
第4个回答  2010-12-29
我也来凑个热闹,我也是大三的,电子信息科学与技术专业,现在也在考虑学习嵌入式;
1、fanyi_6666回答的不错,可以为他鼓掌。

2、现在学习ARM9还不如学习ARM11。等你学完后ARM9已经有点落后了,那时ARM11如日中
天,你到时 又要学ARM11;另外ARM11可以向下兼容ARM系列;所有直接学ARM11最
好;
3、DSP我们要在大三下期才学,这个不了解,无法帮你;

4、FPGA与NIOSII现在正在学 ,FPGA最好是把verilog hdl 和VHDL两种语言都学了,verilog比
VHDL要好学一点。NIOSII现在网上最好的教程就是《niosII那些事儿》,是黑金开发板的配
套教程,比较好。我们学校给我们班上每两人一块黑金开发板来专门学习niosII,你有不懂的
地方可以来问我,我能帮的地方就帮你。

=====================
QQ:515105256 大家多多交流。。。本回答被提问者采纳
相似回答