ARM9入门学习心得分享

电子说

1.3w人已加入

描述

  ARM9采用哈佛体系结构,指令和数据分属不同的总线,可以并行处理。在流水线上,ARM7是三级流水线,ARM9是五级流水线。由于结构不同,ARM7的执行效率低于ARM9。平时所说的ARM7、ARM9实际上指的是ARM7TDMI、ARM9TDMI软核,这种处理器软核并不带有MMU和cache,不能够运行诸如linux这样的嵌入式操作系统。而ARM公司对这种架构进行了扩展,所以有了ARM710T、ARM720T、ARM920T、ARM922T等带有MMU和cache的处理器内核。本文首先介绍了ARM9的优势及特点,其次阐述了ARM9要学的内容汇总以及书籍推荐,最后介绍了ARM9入门学习心得。

  ARM9的优势

  1)时钟频率的提高

  虽然ARM7和ARM9内核架构相同,但ARM7处理器采用3级流水线的冯·诺伊曼结构;,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9则至少在200MHz以上。

  2)指令周期的改进

  指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。

  3)MMU(内存管理单元)

  ARM7一般没有MMU(内存管理单元),(ARM720T有MMU)。

  ARM9一般是有MMU的,ARM9940T只有MPU ,不是一个完整的MMU。

  这一条很重要,MMU单元是大型操作系统必需的硬件支持,如LINUX;WINCE等。这就是说,ARM7一般只能运行小型的实时系统如UCOS-II,eCOS等,而ARM9无此限制,一般的操作系统都可以移植。其实即使ARM720T能支持LINUX;WINCE等系统,也鲜有人用,因为以ARM7的运行速度跑这种大型操作系统,实在有点吃力。再者两者的应用领域明显不同,也无此必要。

  ARM9的特点

  1、提供1.1MIPS/MHz的哈佛结构。

  2、支持32位ARM指令集和16位Thumb指令集。

  3、支持32位的高速AMBA总线接口。

  4、全性能的MMU,支持WindowsCE,Linux,PalmOS等多种主流嵌入式操作系统。

  5、MPU支持实时操作系统。

  6、支持数据Cache和指令Cache,具有更高的指令和数据处理能力。大小都为16K.

  

  ARM9要学的内容汇总

  1、学习Linux系统安装、常用命令、应用程序安装。

  2、学习Linux 下的 C 编程、这本书必学《UNIX 环境高级编程》、《UNIX 网络编程》,Rechard Stevens 写的,C 高手大都学习过《C 和指针》、《C 缺陷与陷阱》、《高质量C/C++编程指南》、《C 专家编程》、《The C programming Language》

  3、程序员大都要学:数据结构,嵌入式程序员数据结构必学!

  4、底层开发人员大都要学:微机原理、计算机体系结构,嵌入式开发人员必学!

  5、单片机可以让一个从事软件开发的人了解和如何操作硬件,有必要学,因为一开始就从 ARM 入手,不太现实!

  6、ARM 体系结构,其中有汇编。

  7、数字电路有必要学习,不然你在做底层开发时真的会不知道怎么看原理图,起码也得懂与或门吧。

  8、ARM + Linux 应用程序开发。(前提是要有开发板)到此,你勉强算是在嵌入式Linux 这个行业有了初步入门了吧, 但遗憾的是这还远远不够!

  9、要做底层开发,就必须知道软硬件之间是如何衔接和配合工作的,那么电子技术应该要好好学习了,很多时候会用到模拟电路知识,这是区别好手与菜鸟的不同之处之一。

  10、Linux 下的汇编要学,这样你才能真正了解你写的程序是如何在一个特定的硬件上跑的。这是区别好手与菜鸟的不同之处之二。

  11、TCP/IP 协议栈要学,所有的嵌入式高手都得掌握的东西,这是区别好手与菜鸟的不同之处之三。

  12、有了这些东西,拿下 Linux 驱动已经不再话下,需要你去学习 Linux 内核源代码和Linux驱动程序设计,这是一个技术升华。

  13、音频、视频的解码译码技术你得学。

  14、各种 IC ,各种 bootloader 你能够参与其开发设计。

  

  ARM9入门书籍推荐

  1、《ARM 嵌入式系统开发 ------ 软件设计与优化》

  2、《Arm程序分析与设计》

  3、《鸟哥的Linux私房菜》

  4、《Qt GUI Design》

  5、《Linux 高级程序设计》

  6、《构建嵌入式Linux系统》

  ARM9入门学习心得

  1、关于裸机程序下载的问题,使用J-link的情况下:

  (1)、额外的电源线供电,开发板能正常工作的前提一定要有电源供电;

  (2)、连接J-link,J-link在2440开发的过程中的作用有两个:

  第一、是用于下载2440.jflash程序,

  第二、用于下载U-boot到Nor Flash

  配合使用的,还有J-Flash ARM软件,打开J-Flash ARM,然后open project-》s3c2440.jflash,加载该程序后,点击Target-》connect,连接到ARM开发板,注意执行此操作之前,ARM开发板应该已经上电且和PC之间连接了J-Link,J-link需要提前装好驱动。连接成功后,说明PC端软件和ARM开发板之间已经建立连接,可以下载程序。

  保证此时的Flash启动开关在Nor flash上(上电之前就应该拨到Nor 启动),然后open data file-》u-boot.bin,加载u-boot程序,加载成功后,选择地址0,选择Target-Auto,就会下载U-boot到开发板了。

  2、下载U-boot的作用是为了开发板能被PC的控制指令引导,主要是为了交互,便于后期的程序下载。

  3、使用串口终端secureCRT用于终端控制,Nor 启动,上电后,会自动发送消息到该终端。此时用空格停止u-boot引导后,输入n,,将会将裸机程序下载到Nand Flash,此时开发板就会接收到命令,等待PC下载裸机程序

  4、使用DNW软件,发送要下载的裸机程序。Transmit。

  5、以上3和4可使用Linux下直接完成,使用minicom软件和Linux下 的DNW软件。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分