版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、将维库开发网设为主页 | 加入收藏 您好,欢迎来到维库电子开发网!|维库电子通 全球最大的芯片pdf资料下载基地首页 电子通列表 arm处理器arm处理器 arm处理器简介 arm微处理器的特点 arm微处理器系列 arm的开发软件 arm处理器基础 arm处理器基础-主要内容 1.1 arm概述 1.2 arm设计思想 1.3 arm内核数据流模型 1.4 工作状态与指令集 1.5 arm的工作模式 1.6 arm的寄存器组织 1.7 arm内核扩展 1.8 arm数据类型与存储格式 1.9 流水线 1.10 异常及向量表 1.11 arm体系结构的版本 1.12 arm处理器系列 移植嵌入
2、式linux到arm处理器 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理
3、. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. 移植嵌入式linux到arm处理. arm处理器简介arm(advanced risc machines)微处理器是采用arm技术知识产权(ip)核的微处理器,这种arm核技术是由英国的arm公司所授权。arm公司是专门从事基于risc技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从arm公司购买其设计的arm微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的arm微处理器芯片进
4、入市场。 arm 微处理器作为嵌入式系统微处理器的一种,己遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,约占据了32位risc微处理器75%以上的市场份额,arm技术正在逐步渗入到我们生活的各个方面. arm微处理器的特点采用risc架构的arm微处理器一般具有如下特点: 1、体积小、低功耗、低成本、高性能; 2、支持thumb(16位)iarm(32位)?x指令集,能很好的兼容8位/l6位器件; 3、大量使用寄存器,指令执行速度更快; 4、大多数数据操作都在寄存器中完成; 5、寻址方式灵活简单,执行效率高; 6、指令长度固定; arm微处理器系列下面所列的是arm
5、微处理器的几个系列,以及其它厂商基于arm体系结构的处理器,除了具有arm 体系结构的共同特点以外,每一个系列的arm微处理器都有各自的特点和应用领域。 1.arm7系列 2.arm9系列 3.arm9e系列 4.arm10e系列 5.securcore系列 6.intel的xscale 7.intel的strong arm 其中,arm7,arm9,arm9e和arm10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。securcore系列专门为安全要求较高的应用而设计。 arm7: 小型、快速、低能耗、集成式risc内核,用于移动通信。 arm7tdmi:这
6、是arm公司授权用户最多的一项产品,将arm7指令集同thumb扩展组合在一起,以减小内存容量和系统成本。同时,它还利用嵌入式ice调试技术来简化系统设计。(t:thumb d:debugger m:multiply i:embedded ice) arm9tdmi:采用5阶段管道化arm9内核,同时配备thumb扩展和harvard总线,在生产工艺相同的情况下,性能可达到arm7tdmi的两倍之多,时钟速度为120mhz,每条指令平均执行1.5个时钟周期。 arm9e:是一款含有dsp指令集的cpu,它提供了单周期的16 x 16和32 x 32的mac(累加器运算),增加新的指令以改进除法
7、功能。 arm10:arm10采用armv5t,六级流水处理,指令与数据分离的cache结构,平均功耗为ioo omw,时钟速度为30omhz,每条指令平均执行1.2周期。 strong arm:性能很高,同时满足常规应用需要的一种微控制器技术,与dec联合研制,后来授权给intel.sa110处理器,sa1100pda系统芯片和sa1500多媒体处理器芯片均采用了这一技术。 xscale: intel发布的 strong arm 的第三化架构,目前已正式上市的两款xscale架构的处理器包括intel psa25和intel pxa210,它们强化了前一代strong arm处理器的性能,前
8、者时钟可达400mhz,后者可达200mhz, xscale处理器代表了语音与数据相结合的市场需求,面向pda,掌上电脑、多媒体移动电话以及其它无线网络产品市场。核心采用了英特尔先进的0.18m工艺技术制造,它具备低功耗特性,适用范围从0.1mw-1.6mw, xscale与strong arm相比,可大幅度降低工作电压并且获得更高的性能。 arm的开发软件1 ads调试用确切的说是ads+axd。ads里包含axd。原来都用sdt后来arm公司停止对sdt支持了,改支持ads了,还是用ads吧。有的人的程序发布的仍然是sdt版本的,但基本都可以找到相应ads的,新人在这里不要发蒙。ads是编
9、译器,axd是调试器。编译成axf以后再在arm的ram里调试。 2 flashpgmflash烧写的软件。axd在ram里调试,掉电就没有了,方便程序修改。调试好的程序再下到flash里,上电直接运行。同类的软件还有很多,什么fluted了、flshp了都是,但flashpgm最好,要是有人还问flash不支持bin格式文件的问题就要看我写的flashpgm使用了。 3 banyant调试代理(不知道名对不,起这么个难记的,我一般都叫它“半羊”因为知道它那几天刚吃了烤羊)调试代理就是用它帮你使用更简单的jtag(便宜啊)来实现原本1k才卖的jtag仿真器的大部分功能。jtag调试原理看我另一
10、篇笔记。简单的就可以把他理解为你自己做的jtag的驱动就行了。调试代理还有很多种,什么h-jtag了、arm7了(不知道具体叫什么,就记得可执行文件叫arm7.exe)都是,banyant比较好。需要注意的是,每种调试代理安装方法虽然都简单但都不一样,需要看说明。而且axd调试之前都要运行。省钱了,就别怕麻烦了。 4 arm-elf-tools工具链里面是uclinux开发用的工具比如arm-elf-gcc只类的。工具链就是把很多工具打包在一起发布的方便你开发的东西。具体安装方法看我另一篇笔记。另外如果你开发linux就要用arm-linux-tools,不一样,不通用。 5 u-boot大名
11、鼎鼎的bootloader生成工具,同类的好象还有vivi(名字很暧昧)生成的bootloader烧到flash里,然后就可以用bootloader下载 烧写其他了有了bootloader才能下uclinux。bootloader就像电脑上的bios。当然ucos的不用这个,用什么我不知道:)最新版本是1.1.4 具体使用方法看我另一篇笔记吧。 6 uclinux包uclinux的源码包,不用多说了吧?建议大家用现成的先体会一下,然后再自己编译,裁剪。因为单独uclinux的编辑技术上比较简单,但涉及的方面还是比较广的。 7 vmware老牌的虚拟机软件,在一个机器上虚拟出一个机器装linux
12、(pc上用的),省得你来回开关机了。记得装vmware-tools,安装方法在我另一篇笔记里。 8 source insight 代码编辑工具 linux下使用kscopearm处理器基础-主要内容1.1 arm概述 1.2 arm设计思想 1.3 arm内核的数据流模型 1.4 工作状态与指令集 1.5 arm的工作模式 1.6 arm寄存器组织 1.7 arm内核扩展 1.8 arm数据类型与存储格式 1.9 流水线 1.10 异常及向量表 1.11 arm体系结构的版本 1.12 arm处理器系列 1.1 arm概述1.1 arm概述 ?arm技术与模式的出现-1990年,arm(adv
13、anced risc machines)在英国成立,由苹果电脑、acorn电脑集团和vlsi technology共同组建。 - 无心插柳的arm模式出现:经营的危机、机会的出现、“被迫”采取技术授权生存之路 。 ?arm的应用- 工业控制。 - 无线通信。 - 网络应用。 - 消费电子。 - 汽车电子。 - 成像设备。 - 安全产品。 ?arm的市场地位-2001年,32位mcu市场占接近8成2008年,出货量100亿 arm芯片已经创造1美金/片的神话,未来的8051;- 低端8位机,市场份额减少;32位机取代16位机是趋势;32位机份额逐年加大;-30年职业生涯中,arm技术不落伍!ar
14、m认证考试 ? / ? nxp大学合作计划是由nxp主办,北京安逸飞(nep)科技有限公司承办(原 p&e大学合作计划)。该计划的目的是通过与国内高校合作,在计算机专业、电 子工程专业、测控仪器专业、信息工程专业、通信工程、机械电子等专业,联合 培养嵌入式应用技术人才。 ? 对参加本课程学习的学生进行认证考试,成绩合格者获得nxp(founded by philips)公司签发的arm嵌入式工程师水平证书。 ?arm嵌入式工程师水平考试的主要内容包括:了解和掌握嵌入式处理器的原理及其应用方法,掌握嵌入式系统体系架构和arm体系结构,嵌入式系统编程语言,
15、嵌入式系统软/硬件设计以及嵌入式系统的系统编程。?认证考试时间:本课程结束后元旦左右;费用380元/人。?认证自愿,报名资格:参加完本课程的学习和考试。课程成绩计算方法 ? 免修条件:参加过电工电子工程基础的学习并 获得及格以上的成绩。本课程成绩以电工电子工程 基础的课程成绩计算。 ? 免考条件:参加arm嵌入式工程师水平考试,以 认证考试成绩取代课程考试成绩。 ? 课程成绩计算方法一:平时成绩40%+考试成绩60% ? 课程成绩计算方法二:考试成绩100% ? 课程最终成绩计算:选取各方法计算结果的最大值。 1.2 arm设计思想1.2 arm设计思想 ? 作为risc结构: - 指令集ri
16、sc处理器减少了指令种类。 - 流水线指令的处理过程被拆分成几个更小的、能够被流 水线并行执行的单元。 - 寄存器risc处理器拥有更多的通用寄存器。 - load-store ? arm的改进非单纯的risc结构(改善系统性能,提高代码密度) - 一些特定指令的周期数可变。 - 内嵌桶形移位器产生更复杂的指令。- thumb16位指令集。 - 条件指令。 - 增强指令。 1.3 arm内核数据流模型1.3 arm内核数据流模型 ? arm内核抽象出的8个部件: - 算术逻辑单元 - 桶形移位器 - 乘加单元 - 寄存器组 - 指令译码器 - 地址寄存器 - 地址增量器 - 符号扩展 1.4
17、工作状态与指令集1.4 工作状态与指令集 ?arm内核一般有两种工作状态:- arm状态。- thumb状态。?arm的工作状态可以通过指令切换。?arm目前有4种指令集:- arm指令集:32位指令。 - thumb指令集:16位指令。 - jazelle指令集:8位指令,未公开,加速java的执行。 - thumb2指令集:arm and thumb code each execute in their own processor state. thumb-2 core technology adds a mixed mode capability, defining a new set
18、of 32-bit instructions that execute alongside traditional 16-bit instructions in thumb state. this reduces, or can remove, the need for balancing arm and thumb code in a system, providing arm levels of performance with thumb code density. thumb-2 technology builds on the success of thumb technology,
19、 adding to arms strengths as the leading supplier of low power, high performance processors and systems, supply cost effective and timely solutions across a wide range of market segments. ?arm不同的内核,不同的工作状态支持不同的指令集。1.5 arm的工作模式1.5 arm的工作模式? 特权模式- 除用户模式外地其他6种模式为特权模 式。- 特权模式允许对 cpsr的完全访问。 非特权模式对cpsr的控制
20、域只能读访问。? 异常模式 中止用于支持虚拟内存在arm7tdmi没有大用- 除用户模式和系统(abt)和/或存储器保护处模式外的其他5种模式为异常模式。未定义支持硬件协处理器未定义指令异常响应时(und)的软件仿真进入此模式1.6 arm的寄存器组织1.6 arm的寄存器组织arm状态各模式下可以访问的寄存器arm状态各模式下可以访问的寄存器一般的通用寄存器一般的通用寄存器一般的通用寄存器一般的通用寄存器一般的通用寄存器堆栈指针寄存器r13(sp)链接寄存器r14(lr)程序计数器r15(pc)程序状态寄存器 ?n:负标志,结果的第31位为1?z:零标志,结果为零?c:进位标志,无符号加法溢
21、出、减法借位、循环移位?v:溢出标志,有符号溢出?q:饱和标志?j:j=1说明java执行(必须t=0),使用bxj指令改变该位(armv5j及以后的体系结构)?res:保留?ge3:0:simd大于或等于标志(armv6)?e:控制数据大小端(armv6)?a:a=1禁止不明确的数据中止(armv6)?i:i=1禁止irq中断?f:f=1禁止fiq中断?t:t=1表示thumb状态;t=0表示arm状态。使用bx或者blx指令改变(armv4t及以后版本)?mode:10000(0x10)用户模式;10001(0x11)快速中断模式;10010(0x12)中断模式;10011(0x13)管理
22、模式;10111(0x17)中止模式;11011(0x1b)未定义模式;11111(0x1f)系统模式。1.7 arm内核扩展1.7 arm内核扩展 ?amba接口- 高级微控制器总线(amba)于1996年提出,广泛用于arm处理器 的片上总线。 - amba有高性能总线(ahb)、外设总线(apb)和系统总线(asb)3种方 式。 ? cache和紧耦合存储器 - 冯诺伊曼结构和哈佛结构cache,改善系统性能。 - 紧耦合存储器tcm,快速sram,位于存储器地址映射中,获得可 以预测的实时响应。 ?存储管理- 无扩展与保护;- mpu:有限保护的存储器保护单元;- mmu:应用广泛的存
23、储器管理单元。?协处理器- 附属于arm处理器。- 通过一组专门的、提供load-store类型接口的指令来访问。1.8 arm数据类型与存储格式1.8 arm数据类型与存储格式 ? arm的数据类型 - 字节(8位) - 字(32位,4字节) - 半字(16位,2字节) ? 存储格式 - 小端模式:字或半字的低字节对应存储单元的低地址 - 大端模式:字或半字的低字节对应存储单元的高地址 - 例:0x87654321的小端模式存储为0x21,0x43,0x65, 0x87;大端模式存储为0x87,0x65,0x43,0x21(从低字节 地址到高字节地址) 1.9 流水线1.9 流水线 ? 流水
24、线是risc处理器执行指令时采用的机制。使用流水线,可在取下一条指令的 同时译码和执行其它指令,从而加快执行速度。 ?arm7具有3级流水线。- 取指?译码?执行-0.9dmips/mhz?arm9具有5级流水线- 取指?译码?执行?存储?回写-1.1dmips/mhz?arm10具有6级流水线。- 取指?发射?译码?执行?存储?回写-1.3mips/mhz?流水线执行特点:- 完全通过“执行”阶段指令才被处理; - 对于3流水线的arm7处理器而言,指令“执行”阶段,pc总是指向该指令地址加8字节的 位置; - 执行一条分支指令或直接修改pc而发生跳转时,流水线清空; - arm10采用分支
25、预测技术,减少了流水线的清空; - 当中断到来时,处于“执行”阶段的指令会继续完成,流水线中的其它指令会被放弃,处 理器将从向量表的适当入口开始填充流水线。 1.10 异常及向量表1.10 异常及向量表 1.11 arm体系结构的版本1.11 arm体系结构的版本 ? 每一个arm处理器都有一个特定指令集架构(isa),而一个isa 版本又可以有多种处理器实现。 ? arm命名规则:armxyztdmiejf-s - x:系列 - y:存储管理/保护单元 - z:cache - t:thumb16位译码器 - d:jtag调试器 - m:快速乘法器 - i:嵌入式跟踪宏单元 - e:增强指令(
26、基于tdmi) - j:jazelle - f:向量浮点单元 - s:可综合版本 1.12 arm处理器系列1.12 arm处理器系列 ? arm7微处理器系列 - arm7tdmi / arm7tdmi-s / arm720t / arm7ej-s ? arm9微处理器系列 - arm920t / arm922t / arm940t ? arm9e微处理器系列 - arm926ej-s / arm946e-s / arm966e-s ? arm10e微处理器系列 - arm1020e / arm1022e / arm1026ej-s ? securcore - securcore sc100
27、 / securcore sc110 / securcore sc200 / securcore sc210 ? xscale处理器 ? cortex处理器 - cortex-a / cortex-r / cortex-m 移植嵌入式linux到arm处理器:基本概念(1)引言arm是advanced risc machines(高级精简指令系统处理器)的缩写,是arm公司提供的一种微处理器知识产权(ip)核。arm的应用已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。基于arm 技术的微处理器应用约占据了32位risc 微处理器75以上的市场份额。揭开你的手机、m
28、p3、 pda,嘿嘿,里面多半藏着一个基于arm的微处理器!arm内核的数个系列(arm7、arm9、arm9e、arm10e、securcore、xscale、strongarm),各自满足不同应用领域的需求,无孔不入的渗入嵌入式系统各个角落的应用。这是一个arm的时代!下面的图片显示了arm的随处可见:有人的地方就有江湖(武林外传),有嵌入式系统的地方就有arm。构建一个复杂的嵌入式系统,仅有硬件是不够的,我们还需要进行操作系统的移植。我们通常在arm平台上构建windows ce、linux、palm os等操作系统,其中linux具有开放源代码的优点。下图显示了基于arm嵌入式系统中软
29、件与硬件的关系:日前,笔者作为某嵌入式arm(硬件)/linux(软件)系统的项目负责人,带领项目组成员进行了下述工作:(1)基于arm920t内核s3c2410a cpu的电路板设计;(2)arm处理下底层软件平台搭建:a.bootloader的移植; b.嵌入式linux操作系统内核的移植;c.嵌入式linux操作系统根文件系统的创建;d.电路板上外设linux驱动程序的编写。 本文将真实地再现本项目开发过程中作者的心得,以便与广大读者共勉。第一章将简单地介绍本arm开发板的硬件设计,第二章分析bootloader的移 植方法,第三章叙述嵌入式mizi linux的移植及文件系统的构建方法
30、,第四章讲解外设的驱动程序设计,第五章给出一个已构建好的软硬件平台上应用开发的实例。如果您有嵌入式系统的开发基础,您将非常容易领会本文讲解地内容。即便是您从来没有嵌入式系统的开发经历,本文读起来也不会生涩。您可以通过如下email与作者联系:21cnbao。2.arm体系结构作为一种risc体系结构的微处理器,arm微处理器具有risc体系结构的典型特征。还具有如下增强特点:(l)在每条数据处理指令当中,都控制算术逻辑单元(alu)和移位器,以使alu和移位器获得最大的利用率;(2)自动递增和自动递减的寻址模式,以优化程序中的循环;(3)同时load和store多条指令,以增加数据吞吐量;(4
31、)所有指令都条件执行,以增大执行吞吐量。arm体系结构的字长为32位,它们都支持byte(8位)、halfword(16位)和word(32位)3种数据类型。arm处理器支持7种处理器模式,如下表:大部分应用程序都在user模式下运行。当处理器处于user模式下时,执行的程序无法访问一些被保护的系统资源,也不能改变模式,否则就会导致一次异常。对系统资源的使用由操作系统来控制。 user模式之外的其它几种模式也称为特权模式,它们可以完全访问系统资源,可以自由地改变模式。其中的fiq、irq、supervisor、 abort和undefined 5种模式也被称为异常模式。在处理特定的异常时,系统
32、进入这几种模式。这5种异常模式都有各自的额外的寄存器,用于避免在发生异常的时候与用户模式下的程 序发生冲突。还有一种模式是system模式,任何异常都不会导致进入这一模式,而且它使用的寄存器和user模式下基本相同。它是一种特权模式,用于有访问系统资源请求而又需要避免使用额外的寄存器的操作系统任务。程序员可见的arm寄存器共有37个:31个通用寄存器以及6个针对arm处理器的不同工作模式所设立的专用状态寄存器,如下图:arm9采用5级流水线操作:指令预取、译码、执行、数据缓冲、写回。arm9设置了16个字的数据缓冲和4个字的地址缓冲。这5级流水已被很多的risc处理器所采用,被看作risc结构
33、的经典。 移植嵌入式linux到arm处理器:基本概念(2)3.硬件设计3.1 s3c2410a微控制器电路板上的arm微控制器 s3c2410a采用了arm920t核,它由arm9tdmi、存储管理单元mmu和高速缓存三部分组成。其中,mmu可以管理虚拟内存,高速缓存由独 立的16kb地址和16kb数据高速cache组成。arm920t有两个内部协处理器:cp14和cp15。cp14用于调试控制,cp15用于存储系 统控制以及测试控制。 s3c2410a集成了大量的内部电路和外围接口:lcd控制器(支持stn和tft带有触摸屏的液晶显示屏)sdram控制器3个通道的uart4个通道的dma4
34、个具有pwm功能的计时器和一个内部时钟8通道的10位adc触摸屏接口i2c总线接口12s总线接口两个usb主机接口一个usb设备接口 两个spi接口sd接口mmc卡接口 s3c2410a集成了一个具有日历功能的rtc和具有pll(mpll和upll)的芯片时钟发生器。mpll产生主时钟,能够使处理器工作频率最高 达到203mhz。这个工作频率能够使处理器轻松运行wince、linux等操作系统以及进行较为复杂的信息处理。upll则产生实现usb模块的时 钟。下图显示了s3c2410a的集成资源和外围接口: 我们需要对上图中的ahb总线和apb总线的概念进行一番解释。arm核开发的目的,是使其作
35、为复杂片上系统的一个处理单元来应用的,所以还必须提供一 个arm与其它片上宏单元通信的接口。为了减少不必要的设计资源的浪费,arm公司定义了amba(advanced microcontroller bus architecture)总线规范,它是一组针对基于arm核的、片上系统之间通信而设计的、标准的、开放协议。在amba总线规范中,定义了3种总线:(l)ahb-advanced high performace bus,用于高性能系统模块的连接,支持突发模式数据传输和事务分割;(2)asb-advanced system bus,也用于高性能系统模块的连接,支持突发模式数据传输,这是较老的系
36、统总线格式,后来由ahb总线替代;(3)apb-advanced peripheral bus,用于较低性能外设的简单连接,一般是接在ahb或asb系统总线上的第二级总线。典型的amba总线系统如下图: s3c2410a将系统的存储空间分成8个bank,每个bank的大小是128m字节,共1g字节。bank0到bank5的开始地址是固定的,用于 rom或sram。bank6和bank7可用于rom、sram或sdram。所有内存块的访问周期都可编程,外部wait也能扩展访问周期。下图给出 了s3c2410a的内存组织:下图给出了s3c2410a的数据总线、地址总线和片选电路:sdram控制信号
37、、集成usb接口电路:内核与存储单元供电电路(s3c2410a对于片内的各个部件采用了独立的电源供给,内核采用1.8v供电,存储单元采用3.3v独立供电):jtag标准通过边界扫描技术提供了对电路板上每一元件的功能、互联及相互间影响进行测试的方法,极大地方便了系统电路的调试。测试接入端口tap的管脚定义如下:tck:专用的逻辑测试时钟,时钟上升沿按串行方式对测试指令、数据及控制信号进行移位操作,下降沿用于对输出信号移位操作;tms:测试模式选择,在tck上升沿有效的逻辑测试控制信号;tdi:测试数据输入,用于接收测试数据与测试指令;tdo:测试数据输出,用于测试数据的输出。s3c2410a调试
38、用jtag接口电路:移植嵌入式linux到arm处理器:基本概念(3)3.2 sdram存储器sdram被用来存放操作系统(从flash解压缩拷入)以及存放各类动态数据,采用samsung公司 的k4s561632,它是4mxl6bitx4bank的同步dram,容量为32mb。用2片k4s561632实现位扩展,使数据总线宽度达到 32bit,总容量达到64mb,将其地址空间映射在s3c2410a的bank6。sdram 所有的输入和输出都与系统时钟cl k上升沿同步,由输入信号ra s、ca s、we组合产生sdram 控制命令,其基本的控制命令如下: sdram 在具体操作之前首先必须通
39、过mrs命令设置模式寄存器,以便确定sdram 的列地址延迟、突发类型、突发长度等工作模式;再通过act命令激活对应地址的组,同时输入行地址;然后通过rd 或wr 命令输入列地址,将相应数据读出或写入对应的地址;操作完成后用pch 命令或bt 命令中止读或写操作。在没有操作的时候,每隔一段时间必须用arf命令刷新数据,防止数据丢失。下图给出了sdram的连接电路:3.3 flash存储器nor和nand是现在市场上两种主要的非易失闪存技术。nor的特点是芯片内执行(xip,execute in place),即应用程序可直接在flash闪存内运行,不必把代码读到系统ram中。nor的传输效率很
40、高,在14mb的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。nand结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用nand的困难在于flash的管理和需要特殊的系统接口,s3c2410a内嵌了nand flash控制器。s3c2410a支持从gcs0上的nor flash启动(16位或32位)或从nand flash启动,需要通过om0和om1上电时的上下拉来设置:在系统中分别采用了一片nor flash(28f640)和nand flash(k9s1208),电路如下图:移植嵌入式linux到arm处理器:基本概念(4)3.4串口s
41、3c2410内部集成了uart控制器,实现了并串转换。外部还需提供cmos/ttl电平与rs232之间的转换:3.5以太网 以太网控制芯片采用cirrus logic公司生产的cs8900a,其突出特点是使用灵活,其物理层接口、数据传输模式和工作模式等都能根据需要而动态调整,通过内部寄存器的设置来适 应不同的应用环境。它符合ieee803.3以太网标准,带有传送、接收低通滤波的10base-t连接端口,支持10base2,10base5和 10base-f的aui接口,并能自动生成报头,自动进行crc检验,在冲突后自动重发。cs8900a支持的传输模式有i/o和 memory模式。当cs890
42、0a有硬件复位或软件复位时,它将默认成为8位工作模式。因此,要使cs8900a工作于16位模式,系统必须在访问之前 提供给总线高位使能管脚(/sbhe)一个由高到低、再由低到高变化的电平。3.6 usb接口 usb 系统由usb 主机(usb host)、usb集线器(usb hub)和usb设备(usb device)组成。usb 和主机系统的接口称作主机控制器(host controller),它是由硬件和软件结合实现的。根集线器是综合于主机系统内部的,用以提供usb的连接点。usb的设备包括集线器(hub)和功 能器件(function)。s3c2410a集成了usb host和usb
43、device,外部连接电路如下图: 移植嵌入式linux到arm处理器:基本概念(5)3.7电源ldo(low dropout)属于dc/dc变换器中的降压变换器,它具有低成本、低噪声、低功耗等突出优点,另外它所需要的外围器件也很少,通常只有 12 个旁路电容。在电路板上我们分别用两个ldo来实现5v向3.3v(存储接口电平)和1.8v(arm内核电平)的转换。up监控电路采用max708芯片,提供上电、掉电以及降压情况下的复位输出及低电平有效的人工复位输出:3.8其它sn74lvth62245a提供总线驱动和缓冲能力:s3c2410a集成lcd液晶显示器控制电路,外部引出接口: 触摸屏有电阻
44、式、电容式等,其本质是一种将手指在屏幕上的触点位置转化为电信号的传感器。手指触到屏幕,引起触点位置电阻或电容的变化,再通过检测这一 电性变化,从而获得手指的坐标位置。通过s3c2410a集成的ad功能,完成电信号向屏幕坐标的转化,触摸屏接口如下:键盘则直接利用cpu的可编程i/o口,若连接 mxn键盘,则需要m+n个可编程i/o口,由软件实现键盘扫描,识别按键:3.9整体架构下图呈现了arm处理器及外围电路的整体设计框架:4.小结本章讲解了基于s3c2410a arm处理器电路板硬件设计的基本组成,为后续各章提供了总体性的准备工作。 移植嵌入式linux到arm处理器:bootloader(6
45、)bootloader指系统启动后,在操作系统内核运行之前运行的一段小程序。通过bootloader,我们可以初始化硬件设备、建立内存空间的映 射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,bootloader是严重地依赖于硬件而实现 的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 bootloader 几乎是不可能的。尽管如此,我们仍然可以对bootloader归纳出一些通用的概念来,以指导用户特定的bootloader设计与实现。 bootloader 的实现依赖于cpu的体系结构,因此大多数 bootloader 都分为st
46、age1 和stage2 两大部分。依赖于cpu体系结构的代码,比如设备初始化代码等,通常都放在 stage1中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而stage2 则通常用c 语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和可移植性。bootloader 的 stage1 通常包括以下步骤:硬件设备初始化;为加载boot loader的stage2准备 ram 空间;拷贝boot loader的stage2 到ram空间中;设置好堆栈;跳转到 stage2 的 c 入口点。boot loader的stage2通常包括以下步骤: 初始化本阶段要使用到的硬件设备;
47、检测系统内存映射(memory map);将kernel 映像和根文件系统映像从flash上读到 ram 空间中;为内核设置启动参数;调用内核。本系统中的bootloader参照韩国mizi公司的vivi进行修改。1.开发环境 我们购买了武汉创维特信息技术有限公司开发的具有自主知识产权的应用于嵌入式软件开发的集成软、硬件开发平台adt(arm development tools)它为基于arm 核的嵌入式应用提供了一整套完备的开发方案,包括程序编辑、工程管理和设置、程序编译、程序调试等。 adt嵌入式开发环境由adt emulator for arm 和adt ide for arm组成。ad
48、t emulator for arm 通过jtag 实现主机和目标机之间的调试支持功能。它无需目标存储器,不占用目标系统的任何端口资源。目标程序直接在目标板上运行,通过arm 芯片的jtag 边界扫描口进行调试,属于完全非插入式调试,其仿真效果接近真实系统。adt ide for arm 为用户提供高效明晰的图形化嵌入式应用软件开发环境,包括一整套完备的面向嵌入式系统的开发和调试工具:源码编辑器、工程管理器、工程编译器(编译器、汇 编器和连接器)、集成调试环境、adt emulator for arm 调试接口等。其界面同microsoft visual studio 环境相似,用户可以在ad
49、t ide for arm 集成开发环境中创建工程、打开工程,建立、打开和编辑文件,编译、连接、设置、运行、调试嵌入式应用程序。adt嵌入式软件开发环境 采用主机目标机交叉开发模型。adt ide for arm 运行于主机端,而adt emulator for arm 实现adt ide for arm 与目标机之间的连接。开发时,首先由adt ide for arm 编译连接生成目标代码,然后建立与adt emulator for arm 之间的调试通道,调试通道建立成功后,就可以在adt ide for arm 中通过adt emulator for arm 控制目标板实现目标程序的调试
50、,包括将目标代码下载到目标机中,控制程序运行,调试信息观察等等。2.arm汇编arm本身属于risc指令系统,指令条数就很少,而其编程又以c等高级语言为主,我们仅需要在bootloader的第一阶段用到少量汇编指令:(1)+-运算add r0, r1, r2 r0 := r1 + r2sub r0, r1, r2 r0 := r1 - r2其中的第二个操作数可以是一个立即数:add r3, r3, #1 r3 := r3 + 1第二个操作数还可以是位移操作后的结果:add r3, r2, r1, lsl #3 r3 := r2 + 8.r1(2)位运算and r0, r1, r2 r0 :=
51、r1 and r2orr r0, r1, r2 r0 := r1 or r2eor r0, r1, r2 r0 := r1 xor r2bic r0, r1, r2 r0 := r1 and not r2(3)寄存器搬移mov r0, r2 r0 := r2mvn r0, r2 r0 := not r2(4)比较cmp r1, r2 set cc on r1 - r2cmn r1, r2 set cc on r1 + r2tst r1, r2 set cc on r1 and r2teq r1, r2 set cc on r1 or r2这些指令影响cpsr寄存器中的 (n, z, c, v) 位(5)内存操作ldr r0, r1 r0 := mem r1str r0, r1 mem r1 := r0ldr r0, r1, #4 r0 := mem r1+4ldr r0, r1, #4 ! r0 := mem r1+4 r1 := r1 + 4ldr r0, r1, #4 r0 := mem r1 r1 := r1 +4ldrb r0 , r1 r0 := mem8 r1ldmia r1, r0, r2, r5 r0 := mem r1 r2 := mem r1+4 r5 :
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年辽宁省庄河市《行测》考试考前冲刺试卷附参考答案详解【研优卷】
- 2026年葡糖酰胺行业建设报告及市场投资分析
- 房地产包销合同
- 防溺水工作体系
- 培训学校合作协议模板
- 骨科护理诊断与多学科协作护理措施
- 药剂科质量控制标准
- CNAS-CC01-2026-管理体系认证机构要求
- 数学人教版五年级下册《最大公因数》教案
- 初三下班主任学科竞赛指导计划
- 光伏发电工程施工应急预案
- 控制工程-课件
- 主播艺人入职面试信息登记表
- 《荣枯鉴》完整原文及译文
- GB/T 1458-2023纤维缠绕增强复合材料环形试样力学性能试验方法
- 03S702钢筋混凝土化粪池图集
- 葛的栽培技术课件
- 2023学年完整公开课版Module5Unit1Don'tcrossthatrope
- 员工入职通知单
- (2.4)-手足口病概述及发病机制
- GB/T 7966-2022声学超声功率测量辐射力天平法及其要求
评论
0/150
提交评论