- 浏览: 1151686 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (411)
- Java Foundation (41)
- AI/机器学习/数据挖掘/模式识别/自然语言处理/信息检索 (2)
- 云计算/NoSQL/数据分析 (11)
- Linux (13)
- Open Source (12)
- J2EE (52)
- Data Structures (4)
- other (10)
- Dev Error (41)
- Ajax/JS/JSP/HTML5 (47)
- Oracle (68)
- FLEX (19)
- Tools (19)
- 设计模式 (4)
- Database (12)
- SQL Server (9)
- 例子程序 (4)
- mysql (2)
- Web Services (4)
- 面试 (8)
- 嵌入式/移动开发 (18)
- 软件工程/UML (15)
- C/C++ (7)
- 架构Architecture/分布式Distributed (1)
最新评论
-
a535114641:
LZ你好, 用了这个方法后子页面里的JS方法就全不能用了呀
页面局部刷新的两种方式:form+iframe 和 ajax -
di1984HIT:
学习了,真不错,做个记号啊
Machine Learning -
赵师傅临死前:
我一台老机器,myeclipse9 + FB3.5 可以正常使 ...
myeclipse 10 安装 flash builder 4.6 -
Wu_Jiang:
触发时间在将来的某个时间 但是第一次触发的时间超出了失效时间, ...
Based on configured schedule, the given trigger will never fire. -
cylove007:
找了好久,顶你
Editable Select 可编辑select
http://9960286.qzone.qq.com/blog/1231667790
引用
学习嵌入式系统需要具备的条件、方法及步骤
有些人以为搞嵌入式就是随便找本书看看,在电脑上编几个程序就完事。非也,其实嵌入式的门槛是比较高的。具体如下:
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.pdfS3C2410_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(即软壳)
至此,你已学完嵌入式的整流程!但谨记:一个有思想的人才真是一个力量无边的人;有容乃大,能予方强!
介绍ARM入门
一 首先说说ARM的发展
可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。
广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。
客观的讲,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。
DSP因为数字处理与通信领域的空前发展而火暴,小到MP3 射象头,大到我们军品里的控制器,应用面很广。
FPGA的兄弟一般做ANSIC(特殊芯片设计,好象是这么翻译的)。而ARM单纯说来并不比一个单片机强多少,但是它的独特就在于不断下降的价格和提升的性能。这完全依靠于ARM公司的战略,厉害!!很佩服他们的战略眼光!!
值得注意的是:在找工作中,企业(著名的,小的不算)对单纯的ARM硬件开发工程师并不比单片机重视,很少有大企业的职位里写“从事过ARM开发优先”。写的多的是什么?“嵌入式LINUX”到这相信大家看出来了吧,需要的是硬件中的软件。
二 ARM是硬件还是软件
很难说,ARM是硬件,LINUX是软件。ARM的硬件多半已经模块化了,像我这样把板子改成这样的就算动的多的了,这同样是ARM公司的战略,再次佩服。
实际中的LINUX的开发工作更多,更耗时。从这方面说ARM应该算是软件了。
在找工作中更是这样,举个例子,联想里和ARM最接近的是“BIOS工程师”是软件,MOTO里接近的是嵌入式LINUX工程师是软件。而其他很多公司把嵌入式产品开发归为硬件。所以,不要讨论这个,好好玩转自己的板子才是关键。实在不爽你就把自己叫“嵌入式开发工程师”
三 要不要买开发板 买哪家
我的答案是“在你个人的学习方法”,但是如果看家是需要看这骗笔记的水平,个人推荐还是买现成的。
1 买
买板子可以把注意力集中在软件开发上,软件开发(尤其是驱动)可以不必担心自己硬件上的问题,我就是以便调试一边写驱动和程序,每次写驱动前就要先确认硬件没问题。另外,买板子更省钱和时间,我自己做的板子,原理图PCB花了2周以上!制版又15天,回来以后焊接44B0 160个脚!那叫一个麻烦~~花了多少钱呢?2层板,制版费就300块!当然 我把接口都外引了,还做了个20X18的LCD背板,板子比较大。总体下来 元件+LCD屏+PCB=11XX块!够2410的了。
再有就是买的资料相对来说比较全,但是不要指望有技术支持!都是骗人的,卖你之后就不会理你。
2 做
自己做可以更了解底层硬件,可以按照自己的要求加东西,比如我就加了GPS模块、 GPRS模块 、SD卡模块,扩了个IIC的35个键子的键盘、把LCD接口按照买的LCD改装了,可以用FPC线直接连接。做的很爽的。玩一把吗。
当然,你可以有策略的做,比如像我一样,把RAM和ROM,网络都保持和某现成的板子一样,这样他们的资料你就可以拿过来直接用,给自己留个退路。其他的如SD了 什么的自己做。都达到了~~就是费钱,费时间。
再有就是给做的朋友几点建议:尽量拿到现成的板子,尽量多搜集其他板子的全套资料,一定要拿到一张没问题的原理图。
网上流传的原理图多数是龚俊03年画的,再这里对龚俊表达一下我的敬意!!牛人!
但是那个图有个小BUG,我指的是03版的,后来的没这问题了。8019那地址线和地址有问题。还有人仿照他的PDF图画的SCH,更是漏洞百出!谴责!顺便谴责把龚俊板子偷卖的人。
3 买哪家
个人感觉分3类吧
1)首先是ZLG的,资料非常的全,感觉他是真正想教你怎么开发ARM,而不是像有的公司自己技术都没做好就做个板子出来卖钱。但是最大的不利就是价格太贵!而且主要是PHILIP的,货源比较麻烦~~可能有人说21XX系列的不贵啊,那是总线不外扩的,只能跑UCOS,不能跑UCLINUX。但是说是话,21XX系列才是ARM7的价格性能结合点。ARM7最适合做工业控制,ARM普及,销量都是怎么来的?都是ARM7来的,而44B0是典型的商业片子。但是,这里如果你看中的是为工作做准备,还是选能跑UCLINUX的吧。
但是仍然作为第一个推荐,因为菜鸟时期,合适的资料太重要了!!在这里被ZLG的务实精神感动!你看人家那代码写的。
2)感觉立宇泰的44B0不错
硬件没别的,就是资料比较全的说,不像有些家,原理图直接拿人家的,还错的~~
3)找个最便宜的
好象最便宜的有卖350的吧?也是没别的,就是即省了钱 还省时间搜集资料,至于资料全不全,别计较了~~硬件肯定好使就行吧。
四 要不要有51 AVR等单片机基础
有更好,但没有也无所谓。
两个月以前,我只是看别人做,耳濡目染~~,本科学过单片机,从来没做过。我们这的技术主干做AVR和51,我就跟他们调过C语言程序。你看出来了?我是个不折不扣的菜鸟吧?
但是做这个之前我特意找了ZLG的两本书,看了里面的例子和原理图,这很重要。例程里有汇编有C,都看懂了就OK,不用自己现写
五 开发都需要学习哪些软件
总结起来最主要的有以下几个吧
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比较灵活,最重要的是都是找工作的砝码。
十 我用的什么板子
很多人问我这个问题,我特意写过一个的。再说一次吧。
我是自己做的,RAM、ROM、8019等比较麻烦而当时的自己不理解的都按照龚俊的做的。保持其他不便的情况下做了如下改动。
1 加了串口通信的GPS模块、 GPRS模块
一个UART0,一个UART1,当与要用超级终端时用跳线切换。
2 SD卡,和7843触摸屏
同时挂在SPI总线上,因为SPI只能挂一个设备,同时还做了I/O模拟的准备,把两个设备又通过跳线挂在4个IO上。
3 扩了个IIC的35个键子的键盘
用的ZLG的7290,不占用CPU,最大支持64个键子,只上了35个,其他留接口。
4 把LCD接口按照买的LCD改装了,可以用FPC线直接连接。
所以改动虽然多,但真正很移植了,初期调试有关的并没动,就是为了现在不那么菜的时候做准备:)
十一 开发流程
这里是我的开发流程
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复位。
当然,板子上的复位信号跳线也不用跳。
十三 哪个公司的ARM
这个是问题比较简单。
1 ARM7主要就几个公司的
三星,PHILIP,ATMEL的
ATMEL的有比较便宜的AT91SAM7S32 和AT91SAM7S64 专为8位应用产品量身定做,价格很便宜好象《3刀吧。和PHILIP的21XX差不多,资料太少,项目中选还不错。
其他两家上面说了的不多说了吧
2 ARM9
这个玩2410和2440的多吧,现在2440还比较火啊 可以考虑买个了
但是2410就比较便宜了,作为学习来说反到和不错,推荐整一个:)
其实ARM9用的最多的领域应该是消费电子,比如手机PDA,而这上面用的多的应该是INTEL的和TI的吧。
但是INTEL的TI的入门材料少,价格高,自己看情况定吧。
有些人以为搞嵌入式就是随便找本书看看,在电脑上编几个程序就完事。非也,其实嵌入式的门槛是比较高的。具体如下:
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.pdfS3C2410_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(即软壳)
至此,你已学完嵌入式的整流程!但谨记:一个有思想的人才真是一个力量无边的人;有容乃大,能予方强!
介绍ARM入门
一 首先说说ARM的发展
可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。
广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。
客观的讲,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。
DSP因为数字处理与通信领域的空前发展而火暴,小到MP3 射象头,大到我们军品里的控制器,应用面很广。
FPGA的兄弟一般做ANSIC(特殊芯片设计,好象是这么翻译的)。而ARM单纯说来并不比一个单片机强多少,但是它的独特就在于不断下降的价格和提升的性能。这完全依靠于ARM公司的战略,厉害!!很佩服他们的战略眼光!!
值得注意的是:在找工作中,企业(著名的,小的不算)对单纯的ARM硬件开发工程师并不比单片机重视,很少有大企业的职位里写“从事过ARM开发优先”。写的多的是什么?“嵌入式LINUX”到这相信大家看出来了吧,需要的是硬件中的软件。
二 ARM是硬件还是软件
很难说,ARM是硬件,LINUX是软件。ARM的硬件多半已经模块化了,像我这样把板子改成这样的就算动的多的了,这同样是ARM公司的战略,再次佩服。
实际中的LINUX的开发工作更多,更耗时。从这方面说ARM应该算是软件了。
在找工作中更是这样,举个例子,联想里和ARM最接近的是“BIOS工程师”是软件,MOTO里接近的是嵌入式LINUX工程师是软件。而其他很多公司把嵌入式产品开发归为硬件。所以,不要讨论这个,好好玩转自己的板子才是关键。实在不爽你就把自己叫“嵌入式开发工程师”
三 要不要买开发板 买哪家
我的答案是“在你个人的学习方法”,但是如果看家是需要看这骗笔记的水平,个人推荐还是买现成的。
1 买
买板子可以把注意力集中在软件开发上,软件开发(尤其是驱动)可以不必担心自己硬件上的问题,我就是以便调试一边写驱动和程序,每次写驱动前就要先确认硬件没问题。另外,买板子更省钱和时间,我自己做的板子,原理图PCB花了2周以上!制版又15天,回来以后焊接44B0 160个脚!那叫一个麻烦~~花了多少钱呢?2层板,制版费就300块!当然 我把接口都外引了,还做了个20X18的LCD背板,板子比较大。总体下来 元件+LCD屏+PCB=11XX块!够2410的了。
再有就是买的资料相对来说比较全,但是不要指望有技术支持!都是骗人的,卖你之后就不会理你。
2 做
自己做可以更了解底层硬件,可以按照自己的要求加东西,比如我就加了GPS模块、 GPRS模块 、SD卡模块,扩了个IIC的35个键子的键盘、把LCD接口按照买的LCD改装了,可以用FPC线直接连接。做的很爽的。玩一把吗。
当然,你可以有策略的做,比如像我一样,把RAM和ROM,网络都保持和某现成的板子一样,这样他们的资料你就可以拿过来直接用,给自己留个退路。其他的如SD了 什么的自己做。都达到了~~就是费钱,费时间。
再有就是给做的朋友几点建议:尽量拿到现成的板子,尽量多搜集其他板子的全套资料,一定要拿到一张没问题的原理图。
网上流传的原理图多数是龚俊03年画的,再这里对龚俊表达一下我的敬意!!牛人!
但是那个图有个小BUG,我指的是03版的,后来的没这问题了。8019那地址线和地址有问题。还有人仿照他的PDF图画的SCH,更是漏洞百出!谴责!顺便谴责把龚俊板子偷卖的人。
3 买哪家
个人感觉分3类吧
1)首先是ZLG的,资料非常的全,感觉他是真正想教你怎么开发ARM,而不是像有的公司自己技术都没做好就做个板子出来卖钱。但是最大的不利就是价格太贵!而且主要是PHILIP的,货源比较麻烦~~可能有人说21XX系列的不贵啊,那是总线不外扩的,只能跑UCOS,不能跑UCLINUX。但是说是话,21XX系列才是ARM7的价格性能结合点。ARM7最适合做工业控制,ARM普及,销量都是怎么来的?都是ARM7来的,而44B0是典型的商业片子。但是,这里如果你看中的是为工作做准备,还是选能跑UCLINUX的吧。
但是仍然作为第一个推荐,因为菜鸟时期,合适的资料太重要了!!在这里被ZLG的务实精神感动!你看人家那代码写的。
2)感觉立宇泰的44B0不错
硬件没别的,就是资料比较全的说,不像有些家,原理图直接拿人家的,还错的~~
3)找个最便宜的
好象最便宜的有卖350的吧?也是没别的,就是即省了钱 还省时间搜集资料,至于资料全不全,别计较了~~硬件肯定好使就行吧。
四 要不要有51 AVR等单片机基础
有更好,但没有也无所谓。
两个月以前,我只是看别人做,耳濡目染~~,本科学过单片机,从来没做过。我们这的技术主干做AVR和51,我就跟他们调过C语言程序。你看出来了?我是个不折不扣的菜鸟吧?
但是做这个之前我特意找了ZLG的两本书,看了里面的例子和原理图,这很重要。例程里有汇编有C,都看懂了就OK,不用自己现写
五 开发都需要学习哪些软件
总结起来最主要的有以下几个吧
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比较灵活,最重要的是都是找工作的砝码。
十 我用的什么板子
很多人问我这个问题,我特意写过一个的。再说一次吧。
我是自己做的,RAM、ROM、8019等比较麻烦而当时的自己不理解的都按照龚俊的做的。保持其他不便的情况下做了如下改动。
1 加了串口通信的GPS模块、 GPRS模块
一个UART0,一个UART1,当与要用超级终端时用跳线切换。
2 SD卡,和7843触摸屏
同时挂在SPI总线上,因为SPI只能挂一个设备,同时还做了I/O模拟的准备,把两个设备又通过跳线挂在4个IO上。
3 扩了个IIC的35个键子的键盘
用的ZLG的7290,不占用CPU,最大支持64个键子,只上了35个,其他留接口。
4 把LCD接口按照买的LCD改装了,可以用FPC线直接连接。
所以改动虽然多,但真正很移植了,初期调试有关的并没动,就是为了现在不那么菜的时候做准备:)
十一 开发流程
这里是我的开发流程
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复位。
当然,板子上的复位信号跳线也不用跳。
十三 哪个公司的ARM
这个是问题比较简单。
1 ARM7主要就几个公司的
三星,PHILIP,ATMEL的
ATMEL的有比较便宜的AT91SAM7S32 和AT91SAM7S64 专为8位应用产品量身定做,价格很便宜好象《3刀吧。和PHILIP的21XX差不多,资料太少,项目中选还不错。
其他两家上面说了的不多说了吧
2 ARM9
这个玩2410和2440的多吧,现在2440还比较火啊 可以考虑买个了
但是2410就比较便宜了,作为学习来说反到和不错,推荐整一个:)
其实ARM9用的最多的领域应该是消费电子,比如手机PDA,而这上面用的多的应该是INTEL的和TI的吧。
但是INTEL的TI的入门材料少,价格高,自己看情况定吧。
发表评论
-
Hibernate SQLQuery:addEntity & addScalar
2011-05-16 23:34 6497使用它们时的注意: 1.Query 没有addScalar() ... -
uClinux和Linux的具体异同
2011-03-03 16:12 1630http://www.mculover.com/post/57 ... -
关于高端ARM处理器选型的一些个人看法
2011-03-03 08:14 7287(作者:gooogleman) http://www.cnbl ... -
嵌入式开发学习之路
2011-03-02 21:22 1589http://hi.baidu.com/zechen11/bl ... -
十年经验教你如何学习嵌入式系统(基于ARM平台)
2011-03-02 21:15 1969http://hi.baidu.com/glaivelee/b ... -
嵌入式学习指南
2011-02-22 15:41 1832http://blogold.chinaunix.net/u1 ... -
Embedded Foundation
2011-02-22 14:50 1403门槛越低的技术从事的 ... -
Android 淺探
2011-02-21 17:06 1172Android 淺探(一): http://mmdays.co ... -
Chris:怎样成为一名Android应用开发者
2011-02-18 14:01 1522注意这里说的是Android应用开发 Chris(克里斯)是 ... -
问:现在嵌入式和手机方向如android,哪个发展会更好
2011-02-18 13:54 2003最佳答案: 你这个问题,就等于问做Android底层(嵌入式L ... -
Android
2011-02-18 12:57 1287Dalvik虚拟机简介: http://www.ophones ... -
组成原理 概念
2009-12-07 14:53 1209X位结构(X位机、字长为X ... -
纯软件程序员向嵌入式系统工程师转型时需注意的问题
2009-11-23 00:37 2381一席话十年书,不错 ht ... -
中断方式与轮询方式
2009-11-15 13:41 1481http://lionwq.spaces.eepw.com.c ... -
大端(Big Endian)与小端(Little Endian)详解
2009-11-12 23:34 1491http://hi.baidu.com/serial_stor ... -
wanghaioushi
2009-11-12 22:51 1277ram -random access memory rom - ... -
入门入门
2009-09-04 21:53 1426引用 一、首先简要说说 ...
相关推荐
嵌入式系统设计与开发实例是IT领域中的一个重要主题,涉及到硬件、软件和系统集成等多个层面。嵌入式系统无处不在,从智能手机到家用电器,再到...对于想要深入学习嵌入式系统的人来说,这是一个非常有价值的学习资源。
### 嵌入式入门教程及方法详解 #### 一、前言 嵌入式系统是一种专门设计用于执行特定任务的计算机系统,广泛应用于汽车、家电、医疗设备等多个领域。对于想要进入这一领域的学习者来说,掌握正确的学习方法至关...
通过深入阅读"嵌入式系统的C程序设计.pdf"这本书,读者可以逐步掌握以上知识,并具备在Linux环境下进行嵌入式系统开发的能力。同时,结合实际的开发板和实验,能更好地理解和运用这些理论,成为一名合格的嵌入式C...
学习嵌入式系统,首先要理解其硬件基础,包括微处理器架构(如ARM、MIPS等)、存储系统(如RAM、ROM)以及I/O接口电路。 二、操作系统与实时性 嵌入式系统常用的操作系统有RTOS(Real-Time Operating System)如...
- 学习如何在嵌入式系统中实现实时性,理解RTOS(实时操作系统)的基础概念。 - 可能会接触到中断控制器如NVIC(Nested Vectored Interrupt Controller)的配置和使用。 在这些实验中,学生不仅需要掌握理论知识...
嵌入式系统设计的难点在于必须在有限的资源条件下,实现复杂的功能。这就要求设计者在保证系统性能的同时,充分考虑成本控制,使得产品具有较强的市场竞争力。 在实际的设计过程中,首先进行的是可行性研究与分析。...
- **知识点**: 嵌入式系统的定义、特点及应用领域。 - **技能**: 理解嵌入式系统的概念及其在实际中的应用。 **3.2 交叉编译** - **知识点**: 交叉编译器的定义及其工作原理。 - **技能**: 使用交叉编译器编译代码...
题目要求是设计并实现一个基于嵌入式系统的贪吃蛇游戏,这不仅要求开发者具备基本的编程能力,还需要理解嵌入式系统的运行环境和硬件接口。选题背景可能包括了对经典游戏的复现、嵌入式系统的学习需求以及对硬件控制...
3. 获取嵌入式系统镜像:如 BusyBox 或 OpenWrt,作为最小系统的基础。 4. 创建文件系统:根据需求定制文件系统结构和内容。 5. 编译并烧录:将编译后的系统映像写入目标设备。 实验五:Linux进程的创建及进程间...
嵌入式实时操作系统教程是专为理解嵌入式系统架构设计和运作的深入学习资源,旨在帮助读者掌握如何在受限硬件上高效运行...通过深入学习,你将具备设计和优化嵌入式系统的能力,满足各类应用对效率和可靠性的高要求。
- **高效性**:嵌入式系统通常需要具备快速响应的能力,以满足实时性的需求。 - **较长生命周期**:相较于通用计算机系统,嵌入式系统的更新迭代速度较慢,其生命周期更长。 - **高可靠性**:在许多关键应用领域,如...
掌握这些知识点,不仅是通过计算机三级考试嵌入式系统开发技术部分的必要条件,也是从事嵌入式系统开发工作的基础。对于准备考试的学生而言,系统地学习和实践这些知识,无疑能够提高通过考试的几率,也为未来的职业...
嵌入式实验平台是学习和开发嵌入式系统的重要工具,EMBEST EduKit-V就是其中一款专为教学和实验设计的平台,它提供了丰富的软硬件资源,支持多种嵌入式操作系统,如Linux和Windows CE 6.0,适合不同层次的学习者进行...
3. **嵌入式系统的开发流程**: 开发过程通常包括需求分析、系统设计、硬件选择、软件开发、系统集成、测试和调试等步骤。在嵌入式Linux中,通常需要构建BootLoader(如U-Boot)、定制内核、创建根文件系统以及进行...
U-Boot的灵活性和高度可配置性使其成为嵌入式Linux系统开发中的重要组件,也是学习嵌入式系统和Linux内核不可或缺的知识之一。 U-Boot的开发和应用不仅限于教育和研究,还广泛应用于工业、消费电子、网络、通信等...
本课程的目标是培养学员具备嵌入式应用软件开发、嵌入式系统开发或嵌入式驱动开发的基本能力。采用当前最广泛使用的软硬件开发平台——Linux和ARM。 #### 二、学习路径 1. **Linux基础** - **安装Linux操作系统**...
- **启动过程**:嵌入式系统的启动通常涉及几个关键步骤,包括电源上电、复位电路初始化、加载引导程序(Bootloader)、初始化硬件资源、加载操作系统(OS),最终运行用户应用程序。了解这一过程有助于优化系统启动时间...
《嵌入式C语言精华》一书,是针对嵌入式系统开发的C语言学习资料,对于想要在单片机或ARM平台进行开发的工程师来说,是一份极具价值的参考资料。C语言作为嵌入式领域最常用的语言,其灵活性和高效性使其在硬件控制和...