




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、存储器及外围电路嵌入式处理器嵌入式操作系统应用软件narm ads (arm developer suits)它是arm公司的集成开发环境,包括命令行开发工具、图形开发工具、实用工具和支持软件4部分,可以进行编辑、编译及调试c、c+及汇编程序。nmetrowerks codewarrior for arm ads v1.2arm汇编及c程序的编辑、编译axd调试由于嵌入式系统的可用资源有限,嵌入式开发和调试工作通常要通过高性能的宿主机完成。嵌入式应用软件通过宿主机上的交叉编译器,完成交叉编译和连接后下载到目标机。 宿主机:进行嵌入式软件开发的主机目标机:将要开发的目标板rom monitor方
2、式(或方式(或angel方式)方式)ice仿真仿真jtag调试与仿真调试与仿真模拟开发调试方式模拟开发调试不需开发板硬件,一台pc即可纯软件模拟嵌入式处理器的功能和指令。如arm公司的armulator模拟器。它虽然简单可行,但是缺乏在线调试和实时仿真功能。rom monitor调试方式(一)调试方式(一)rom monitor方式(或方式(或angel方式)方式)rom monitor(或angel)是运行在目标机的flash或rom的一段程序,它主要负责监控目标机上被调试程序的运行情况。通过和宿主机的配合,完成嵌入式系统的调试。它是目前低廉有效的一种调试方式。之前课程使用metrowerk
3、s公司的codewarrior进行开发调试时要用到的metro-trk就属于这类软件。rom monitor调试方式(二)调试方式(二)逻辑连接应用软件angel硬件硬件操作系统调试器物理连接宿主机目标机n在线仿真在线仿真(in circuit emulator)传统硬件级仿真调试模式取下目标板mpu;在线仿真器可以完全仿真mpu的行为;通过卡座等连接到目标板。它支持单步执行、断点、反汇编、源程序级调试。优点:功能非常强大,软硬件均可做到完全实时在线调试缺点:适合于简单的mpu一般滞后mpu几个月价格昂贵宿主机目标板仿真器硬件连接示意图njtag初始主要用于芯片内部测试,可对初始主要用于芯片内
4、部测试,可对具有具有jtag接口的芯片的硬件电路进行边接口的芯片的硬件电路进行边界扫描和故障检测界扫描和故障检测n后用于调试:在芯片内部定义后用于调试:在芯片内部定义tap(test access port),可以访问寄存器和挂在总线,可以访问寄存器和挂在总线上的设备上的设备njtag仿真器仿真器 arm处理器为了方便调试,内含embeded ice 宏单元,并留有jtag调试接口,支持在线仿真。它无需目标存储器,不占用目标系统的端口。 使用集成开发环境配合jtag仿真器是目前最常用的一种调试方式。宿主机目标板仿真器硬件连接示意图嵌入式linux工具链 交叉编译器gccarm-linux-gc
5、c项目管理工具make调试工具gdbbreak设置断点run执行程序step单步跟踪进入next单步不进入函数print, display 显示变量值quiteeliod270开发系统介绍开发系统介绍xscale架构架构pxa270 416mhz、 520mhz 及及624mhz四种四种n内部集成内部集成intel wireless mmx技术,该技技术,该技术可提供额外的性能以支持术可提供额外的性能以支持3d游戏和高级游戏和高级视频视频n采用了采用了speedstep低功耗技术,通过智能低功耗技术,通过智能管理电压和频率变化实现节省高达管理电压和频率变化实现节省高达55%的的功耗功耗n集成了
6、快速捕捉(集成了快速捕捉(intel quick capture)技术,使镜头支持技术,使镜头支持400万以上像素万以上像素xscale特点特点n采用采用armv5te指令集指令集n无线无线mmx指令单元指令单元nimmu和和dmmuni-cache和和d-cachen写缓冲器(写缓冲器(8入口的高速入口的高速fifo)n协处理器协处理器n电源管理与性能监控电源管理与性能监控n调试单元调试单元xscale协处理器协处理器ncp0:用于用于dsp处理,更好的处理多媒体处理,更好的处理多媒体信息,包含一个信息,包含一个40位累加器,并增加了位累加器,并增加了8条新的指令。条新的指令。ncp1:用于
7、无线用于无线mmx指令数据传输和状态指令数据传输和状态控制等控制等ncp6:为为pxa27x新增的协处理器,主要新增的协处理器,主要用于减少访问中断控制寄存器的时间。用于减少访问中断控制寄存器的时间。ncp14:用于系统的性能监视、时钟管理用于系统的性能监视、时钟管理、电源管理和软件调试、电源管理和软件调试ncp15:用于用于mmu控制控制pxa270xsbase270开发平台开发平台触摸屏8” tft lcd 640*480jtag接口120pin 扩展接口p x a 2 7 0 520mhz32pin lcd接口数码管*4cf 卡喇叭sd/mmc卡sim cardcamera全功能串口rt
8、c battery红外收发器rs485 红外串口can bus以太网口usb host音频输入输出usb slave4*4矩阵键盘高亮度led*8gps模块接口步进电机bt串口功能转换开关直流电机flash*32msdram*64m平台配套手册和软件平台配套手册和软件n实验平台实验平台使用手册使用手册(windows ce和和linux)上机指导书上机指导书基础实验上机指导书基础实验上机指导书windows ce上机指导书上机指导书linux上机指导书上机指导书bsp光盘光盘(windows ce和和linux)eeliod wince软件软件eeliod linux bsp软件软件windo
9、ws ce实验代码实验代码nwindows ce 平台搭建平台搭建n线程同步调试线程同步调试n驱动程序结构驱动程序结构n进程通信进程通信n数据库数据库nio接口接口-lednio接口接口-电机电机n动态链接库动态链接库windows ce实验代码实验代码arm处理器共支持7种运行模式,分别为:用户(usr):arm处理器正常的程序执行状态;系统模式(sys):运行具有特权的操作系统任务; 快速中断(fiq):用于高速数据传输或通道处理;外部中断(irq):用于通用的中断处理;管理模式(svc):操作系统使用的保护模式;中止(abt):当数据或指令访问中止时进入该模式,可用于虚拟存储及存储保护;
10、未定义(und):当未定义指令执行时进入该模式,可用于硬件协处理器的软件仿真。arm处理器共有37个32位寄存器,其中31个为通用寄存器,6个状态寄存器。arm状态下的寄存器组织未分组寄存器r0r7分组寄存器r8r14程序计数器r15(pc)当前程序状态寄存器 (cpsr)备份的程序状态寄存器(spsr)thumb状态下的寄存器组织通用寄存器r0r7程序计数器pc堆栈指针sp(r13)连接寄存器lrcpsr和spsrspsr_undr0cpsrpclrspr7r6r5r4r3r2r1r0cpsrpclr_fiqsp_fiqr7r6r5r4r3r2r1r0cpsrpclr_svcsp_svcr7
11、r6r5r4r3r2r1r0cpsrpclr_abtsp_abtr7r6r5r4r3r2r1r0cpsrpclr_irqsp_irqr7r6r5r4r3r2r1r0cpsrpclr_undsp_undr7r6r5r4r3r2r1spsr_abtspsr_svcspsr_fiqspsr_irq用户&系统 快中断管理中止中断未定义v 当前程序状态寄存器cpsr n:补码形式的有符号数运算时,1为负,0为正;z:1表示结果为零;c:加减法的进位或借位,以及非加减法的最后移位;v:1表示补码形式的有符号数加减运算时符号位溢出;q:v5以上版本才有,描述增强dsp运算指令是否发生溢出;i、f:中
12、断禁止位,1表示中断禁止;t:指示处理器处于arm或thumb工作状态;m4:0:表示处理器的运行模式 0b10000user 0b10001fiq 0b10010irq 0b10011supervisor 0b10111abort 0b11011undefined 0b11111system异常是指正常的程序执行流程发生暂时的停止或改变,例如在复位、有中断请求及指令预取中止时; arm处理器支持7种类型的异常。 复位(复位(reset)reset):当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行。 未定义指令未定义指令( (udef)udef):当arm处理器或协处
13、理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真。 软件中断软件中断( (swi)swi):该异常由执行swi指令产生,可用于用户模式下的程序调用特权操作指令。使用该异常机制可以实现系统功能调用。指令预取中止指令预取中止( (pabt)pabt):若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常。数据中止数据中止( (dabt)dabt):若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。irqirq(外部中断请求):外部中断请求):当处理器的外部中
14、断请求引脚有效,且cpsr中的i位为0时,产生irq异常。系统的外设可通过该异常请求中断服务。fiqfiq(快速中断请求):快速中断请求):当处理器的快速中断请求引脚有效,且cpsr中的f位为0时,产生fiq异常。异常类型模式正常向量地址高向量地址复位管理0 x000000000 xffff0000未定义指令未定义0 x000000040 xffff0004软件中断管理0 x000000080 xffff0008指令预取中止中止0 x0000000c0 xffff000c数据中止中止0 x000000100 xffff0010irqirq0 x000000180 xffff0018fiqfiq
15、0 x0000001c0 xffff001c异常优先级异常类型1(最高)复位2数据中止3fiq4irq5预取中止6未定义指令,swiv 对异常的响应:将下一条指令的地址存入相应异常类型的连接寄存器lr_mode;保存用户寄存器值到堆栈中将cpsr复制到相应异常类型的spsr_mode中;设置cpsr的m4:0,强制改变到相应的运行模式;禁止正常中断,如果异常类型为快速中断或复位,同时禁止快中断;强制pc从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。v 异常返回 从堆栈中恢复用户寄存器 将spsr_mode复制回cpsr中 复制lr_modepc进入异常进入异常:r14_
16、und=产生异常的下一条指令地址spsr_und=cpsrcpsr4:0=0b11011/*进入未定义运行模式*/cpsr5=0/*进入arm工作状态*/cpsr7=1/*禁止正常中断*/如果设置了高向量模式,则pc=0 xffff0004 否则pc=0 x00000004退出异常退出异常:movs pc r14 恢复pc(从r14_und)和cpsr(从spsr_und),并返回到该未定义指令的下一条指令处异常类型r14(arm)r14(thumb)返回指令blpc+4pc+2mov pc, r14swipc+4pc+2movs pc, r14udefpc+4pc+2movs pc, r14
17、fiqpc+4pc+4subs pc,r14,#4irqpc+4pc+4subs pc,r14,#4pabtpc+4pc+4subs pc,r14,#4dabtpc+8pc+8subs pc,r14,#8reset-v 例如:0 x8000 mov .0 x8004 add .0 x8008 swi .0 x800c mov .0 x8010 add .当程序执行swi异常时,pc指向0 x8010,在跳转到异常向量的之前,arm会把r14调整到0 x800c 字(字(wordword):):在arm体系结构中,字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位,请注意区
18、分。 半字(半字(half-wordhalf-word):在arm体系结构中,半字的长度为16位,与8位/16位处理器体系结构中字的长度一致。 字节(字节(bytebyte):):在arm体系结构和8位/16位处理器体系结构中,字节的长度均为8位。bytea+3bytea+2bytea+1byteabit31 bit0从编程的角度看,arm处理器有2种工作状态并可自由切换:arm状态:处理器执行32位的、字对准arm指令;thumb状态:处理器执行16位、半字对准的thumb指令。narm指令集包括:1) 跳转指令2) 数据处理指令3) 程序状态寄存器处理指令4) 加载/存储指令5) 协处理器
19、指令6) 异常产生指令 指令名指令含义操作add相加rd=rn+op2sub相减rd=rn-op2rsb反向相减rd=op2-rnadc带进位加rd=rn+op2+csbc带借位减rd=rn-op2+c-1rsc反向带借位减rd=op2-rn+c-1and位与rd=rn and op2orr位或rd=rn or op2eor位异或rd=rn eor op2bic位清零rd=rn and not op2mov传送rd=op2mvn传送非rd=not op2cmp比较rn-op2cmn负向比较rd=op2-rntst测试rn and op2teq测试相等rn eor op2指令名指令含义操作mul
20、乘法rd=rm*rsmla乘加rd=rm*rs+rnumull无符号数乘法rdh: rdl = rm*rsumlal无符号数乘加rdh: rdl += rm*rssmull有符号数乘rdh: rdl = rm*rssmlal有符号数乘加rdh: rdl += rm*rs多寄存器加载/存储指令(一)该指令完成多个通用寄存器与存储单元之间的数据传送。 ldm|stm cond 寻址方式 rn !,通用寄存器组 符号的含义:寻址方式为:ia、ib、da、db、fd、ed、fa、ea;rn: 基址寄存器,不允许为r15 (pc);!:指令执行后,刷新基址寄存器rn“ ”:当寄存器列表包含pc且为ldm
21、指令时,同时将spsr拷贝到cpsr,用于异常返回;当寄存器列表不包含pc,指示指令中所有的寄存器为用户模式下的寄存器iar1地址地址增加增加r4r0r1r4r0r1r4r0r1r4r0r10ibdadbldmxx r10, r0,r1,r4stmxx r10, r0,r1,r4基址寄存器基址寄存器 (rb)存储器增加存储器增加r13r14r12多寄存器加载/存储指令(二)例如:stmfd r13!, r0, r4-r7, lr ;寄存器进栈ldmfd r13!, r0, r4-r7, pc ;寄存器返回注:基址寄存器可以出现在寄存器列表中,但要避免和写回操作“!”同时使用。r15可以出现在ldm指令的寄存器列表中;但要避免出现在stm指令的寄存器列表中,此时,可以使用r14(用以保存返回地址)。 ldmfd sp!,r4-r7,pc100ff1234aobe80341010123484209753r41r5 14544r60r712pc9020r4100100ffr5ff1234r61234a0ber7a0be8034pc8034r4100r5ffr61234r7a0belr8034abcd8765102e16ffff1010123484209753存储器顶存储器顶spsp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑抗震装修租赁协议3篇
- 家具销售发票3篇
- 劳务分包合同解除协议3篇
- 四方抵账协议模板3篇
- 悔过自新之家暴者3篇
- 合同起诉状模板范文3篇
- 划款授权委托书示例样本格式3篇
- 二手房屋买卖合同纠纷的处理流程3篇
- 小程序技术开发服务合同模板3篇
- 糖果与巧克力市场动态监控考核试卷
- 成人高尿酸血症与痛风食养指南(2024年版)
- 2024年首都机场集团招聘笔试参考题库附带答案详解
- 2023年山东省专升本考试高等数学Ⅲ试题和答案
- 抗血栓药物临床应用与案例分析课件
- 吉林省地方教材家乡小学二年级下册家乡教案
- 决策树在饲料技术推广中的应用研究
- 儿童长期卧床的护理
- 投标书细节美化教程
- 《小儿支气管肺炎》课件
- 对辊式破碎机设计
- 财产险水灾现场勘查及理赔定损标准
评论
0/150
提交评论