初学ARM学习笔记..doc

上传人:scccc 文档编号:12480636 上传时间:2021-12-04 格式:DOC 页数:9 大小:30KB
返回 下载 相关 举报
初学ARM学习笔记..doc_第1页
第1页 / 共9页
初学ARM学习笔记..doc_第2页
第2页 / 共9页
初学ARM学习笔记..doc_第3页
第3页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《初学ARM学习笔记..doc》由会员分享,可在线阅读,更多相关《初学ARM学习笔记..doc(9页珍藏版)》请在三一文库上搜索。

1、转初学 ARM 学习笔记 (转抄新手一定要看的学习笔记 我的笔记刚公布就有 很多朋友来找我,把我当高手,问我 “ARM怎么入门”。我不是高手,仍然是菜 鸟。但是回想起自己当时的迷茫,特意写了这篇东西,当作给和我一样的兄弟姐 妹的帮助吧。问这个问题的人多半不是已经工作的工程师,而是和我一样是学生, 所以这篇笔记就把看家当成我一样的菜鸟,高手勿怪。 首先声明:本人还没有找 工作,事实上处于研究生刚毕业,还没开始找工作的空闲时间,44B0只是兴趣所在,打发时间。所有看*完全是自己的感受,不代表任何他人。错了的观点各位帮 我纠正。再次补充:很多朋友看了上面的话就问我为什么研究生毕业了还不找工 作:)说

2、是打发时间,其实是因为研究生的时候带了一个项目,申请提前毕业以后 项目还有块尾巴,答应导师把项目做完再走:)就这么简单。男人总点负点责,呵 呵以下问题常被问到,我就想到哪说到哪吧。 一首先说说 ARM 的发展可以用一 片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。 广义的嵌入式无非几种:传统的什么 51、AVR、PIC 称做嵌入式微控制器; ARM 是嵌入式微处理器; DSP;FPGA。客观的讲,工作需求量上 DSP的需求比 ARM 要多,而 ARM 和 FPGA差不多。 DSP因为数字处理与通信领域的空前发展而火 暴,小到 MP3 射象头,大到我们军品里的控制器,应用

3、面很广。 FPGA的兄弟一 般做 ANSIC (特殊芯片设计,好象是这么翻译的)。 而 ARM 单纯说来并不比一 个单片机强多少,但是它的独特就在于不断下降的价格和提升的性能。这完全依靠 于 ARM 公司的战略,厉害!很佩服他们的战略眼光! 值得注意的是:在找工 作中,企业(著名的,小的不算)对单纯的 ARM 硬件开发工程师并不比单片机重 视,很少有大企业的职位里写“从事过 ARM 开发优先”。写的多的是什么? “嵌入 式 LINUX” 到这相信大家看出来了吧,需要的是硬件中的软件。 二 ARM 是硬件 还是软件很难说, ARM 是硬件, LINUX 是软件。 ARM 的硬件多半已经模块化 了

4、,像我这样把板子改成这样的就算动的多的了,这同样是 ARM 公司的战略,再 次佩服。实际中的 LINUX 的开发工作更多,更耗时。从这方面说 ARM 应该算是 软件了。在找工作中更是这样,举个例子,联想里和 ARM 最接近的是“BIOS工程 师”是软件, MOTO 里接近的是嵌入式 LINUX 工程师是软件。而其他很多公司把嵌入式产品开发归为硬件。 所以,不要讨论这个,好好玩转自己的板子才是关 键。实在不爽你就把自己叫“嵌入式开发工程师”三 要不要买开发板买哪家我的答案是“在你个人的学习方 *”,但是如果看家是需要看这骗笔记的水 平,个人推荐还是买现成的。 1 买买板子可以把注意力集中在软件开

5、发上,软件 开发(尤其是驱动)可以不必担心自己硬件上的问题,我就是以便调试一边写驱动 和程序,每次写驱动前就要先确认硬件没问题。 另外,买板子更省钱和时间,我 自己做的板子,原理图 PCB花了 2周以上!制版又 15天,回来以后焊接 44B0 160 个脚!那叫一个麻烦 花了多少钱呢? 2层板,制版费就 300块!当然我把接口都 外引了,还做了个 20X18的 LCD 背板,板子比较大。总体下来元件+LCD 屏 +PCB=11XX 块!够 2410的了。再有就是买的资料相对来说比较全,但是不要指 望有技术支持!都是骗人的,卖你之后就不会理你。 2 做自己做可以更了解底层 硬件,可以按照自己的要

6、求加东西,比如我就加了 GPS模块、 GPRS模块、SD卡 模块,扩了个 IIC的35个键子的键盘、把 LCD 接口按照买的 LCD改装了,可以 用 FPC线直接连接。做的很爽的。玩一把吗。 当然,你可以有策略的做,比如像 我一样,把 RAM 和 ROM,网络都保持和某现成的板子一样,这样他们的资料你 就可以拿过来直接用,给自己留个退路。其他的如 SD了什么的自己做。都达到了 就是费钱,费时间。再有就是给做的朋友几点建议:尽量拿到现成的板子,尽 量多搜集其他板子的全套资料,一定要拿到一张没问题的原理图。 网上流传的原 理图多数是龚俊 03年画的,再这里对龚俊表达一下我的敬意!牛人! 但是那个

7、图有个小 BUG,我指的是 03版的,后来的没这问题了。 8019那地址线和地址有 问题。还有人仿照他的 PDF图画的 SCH,更是漏洞百出!谴责!顺便谴责把龚俊 板子偷卖的人。 3 买哪家个人感觉分 3类吧 1)首先是 ZLG的,资料非常的全, 感觉他是真正想教你怎么开发 ARM ,而不是像有的公司自己技术都没做好就做个 板子出来卖钱。但是最大的不利就是价格太贵!而且主要是 PHILIP 的,货源比较 麻烦可能有人说 21XX 系列的不贵啊,那是总线不外扩的,只能跑 UCOS,不能 跑 UCLINUX 。但是说是话, 21XX 系列才是 ARM7 的价格性能结合点。 ARM7 最 适合做工业

8、控制, ARM 普及,销量都是怎么来的?都是 ARM7 来的,而 44B0是 典型的商业片子。但是,这里如果你看中的是为工作做准备,还是选能跑UCLINUX 的吧。 但是仍然作为第一个推荐,因为菜鸟时期,合适的资料太重要 了!在这里被 ZLG 的务实 *感动!你看人家那代码写的。 2)感觉立宇泰的 44B0 不错 硬件没别的,就是资料比较全的说,不像有些家,原理图直接拿人家 的,还错的 3)找个最便宜的 好象最便宜的有卖 350的吧?也是没别的,就是即省了钱 还省时间搜集资料,至于资料全不全,别 计较了硬件肯定好使就行吧。 四 要不要有 51 AVR 等单片机基础 有更好,但没 有也无所谓。

9、两个月以前,我只是看别人做,耳濡目染 ,本科学过单片机,从 来没做过。我们这的技术主干做 AVR 和 51,我就跟他们调过 C 语言程序。你看出 来了?我是个不折不扣的菜鸟吧? 但是做这个之前我特意找了 ZLG 的两本书,看 了里面的例子和原理图,这很重要。例程里有汇编有 C,都看懂了就 OK ,不用自 己现写 五 开发都需要学习哪些软件 总结起来最主要的有以下几个吧 1 ADS 调试用 确切的说是 ADS+AXD 。ADS 里包含 AXD 。原来都用 SDT后来 ARM 公司停止对 SDT支持了,改支持 ADS了,还是用 ADS 吧。 有的人的程序发布的仍然是 SDT 版本的,但基本都可以找

10、到相应 ADS 的,新人在这里不要发蒙。 ADS 是编译器, AXD 是调试器。便宜成 AXF 以后再在 ARM 的 RAM 里调试。 2 PLASHPGM FLASH 烧写的软件。 AXD 在 RAM 里调试,掉电就没有了,方便程序修改。调试 好的程序再下到 FLASH 里,上电直接运行。 同类的软件还有很多,什么 FLUTED 了、 FLSHP 了都是,但 FLASHPGM 最好,要是有人还问 FLASH 不支持 BIN 格式 文件的问题就要看我写的 PLASHPGM 使用了。 3 BANYANT 调试代理(不知道名 对不,起这么个难记的,我一般都叫它 “半羊 ”因为知道它那几天刚吃了烤羊

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

12、C 只类的。工具链就是 把很多工具打包在一起发布的方便你开发的东西。具体安装方 * 看我另一篇笔记。另外如果你开发 LINUX 就要用 ARM-LINUX-TOOLS ,不一样,不通用。 5 U- BOOT 大名鼎鼎的 BOOTLOADER 生成工具,同类的好象还有 VIVI (名字很暧昧 )生成的 BOOTLOADER 烧到 FLASH 里,然后就可以用 BOOTLOADER 下载 烧写其他了 有了 BOOTLOADER 才能下 UCLINUX 。 BOOTLOADER 就像电脑上 的 BIOS。当然 UCOS 的不用这个,用什么我不知道:) 最新版本是 1.1.4 具体使 用方*看我另一篇

13、笔记吧。 6 UCLINUX 包 UCLINUX 的源码包,不用多说了吧? 建议大家用现成的先体会一下,然后再自己编译,裁剪。因为单独 UCLINUX 的编 辑技术上比较简单,但涉及的方面还是比较广的。 7 VMWARE 老牌的虚拟机软件,在一 个机器上虚拟出一个机器装 LINUX (PC 上用的),省得你来回开关机了。记得装 VMWARE-TOOLS ,安装方 * 在我另一篇笔记里。 六 有哪些书推荐 主要推荐 ZLG 的三本书,有这 3 本再加网络就不用别的书了,其中主要推荐前 2 本,3是介绍体 系结构的,也不错 1 ARM 嵌入式 LINUX 系统构建与驱动开发,北航版 驱动写的 很详

14、细,前期开发介绍也很好 2 ARM 嵌入式系统实验教程(二),北航版 有 ZLG2200的原理图,实验程序和注释,了解人家是怎么开发的。3 ARM 嵌入式系统基础教程 最重要的是体系结构,汇编部分介绍,看看吧,增加理论素质。 4 44B0数据手册 写在这里是强调它的重要。 不推荐 ZLG早期出的红色皮的 ARM 什 么体系结构 只类的 写的太多,看烦了。 其他的书没了几本,没看见好的,大家 有看过的推荐吧。 七 选 UCOS?UCLINUX ?LINUX ? VXWORKS ?还是当单片 机用 1 搞开发,工程设计,用 UCOS,小巧,多进程,简单,体现了 ARM7 的精 髓。 2 LINUX

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

16、有朋友问我先学这个当基础不行吗?那当然可以 但我当时就用了 1 周搞定,就是我先的 ADS 在 RAM 中调试的笔记。后来我清空 FLASH 用的小段程序还是当时 写的 LED 闪烁程序呢。另外 1周里其中还因为自己过于菜,没把 OM 设置好导致 晶阵不阵哈哈。这个是必须做的,但一带而过。目标放的远一点。 八学习要用多 长时间我从菜鸟到现在两个多月,中间被打扰数次。仍然搞定了 PCB设计与制 版,RAM 调试, FLASH 下载, UBOOT 移植和下载 UCLINUX (没剪裁,用现成 的), LCD 驱动。再次坦诚的说:我确实比较菜,说这些不是让大家羡慕,只是 告诉你们“你们应该比这个更好

17、”我 相信良好的态度 +合适的方 *+及时的总结 =成绩 九 ARM 都玩什么就几点 1 硬件设计 2 系统移植 3 驱动开发 4 应用开发没了。其 中推荐把注意力放在后两个上, 3有难度, 4比较灵活,最重要的是都是找工作的 砝码。十我用的什么板子很多人问我这个问题,我特意写过一个的。再说一次吧。我是自己做的, RAM 、ROM 、8019等比较麻烦而当 时的自己不理解的都按照龚俊的做的。保持其他不便的情况下做了如下改动。1 加了串口通信的 GPS模块、 GPRS模块一个 UART0 ,一个 UART1 ,当与要用超级 终端时用跳线切换。 2 SD卡,和 7843触摸屏同时挂在 SPI总线上

18、,因为 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 焊接电压,确定电压没

19、问题 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 我的”R AM 挂在

20、BANK6 上所以地址是 0XC000000,你要是改了就也得改。 8 用我写的自己写了个 C工程模板又写了 个使用说明 里的方 *调试程序吧,写个简单的,我当时写个 LED 闪烁的。看好 使不。 9 把程序按照 FLASH 烧写总结 里的烧到 FLASH 里,测试一下 10 按照 UBOOT 移植操作移植 UBOOT 11 按照 UCLINUX 下载简单说明下个 UCLINUX 12 看看驱动开发的方 *,自己写个驱动看看 13 还有很多事东西着你玩 呵呵 十二 关于 JTAG 访真器 JTAG 访真器现在用的多是简板的,一个 244那种, 用的没什么不好。 按照并口定义不同分几种,建议选

21、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 的入门材料少,价格高,自己看情况定吧。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1