您的位置 首页 厂商

SH-3异常中断处理方式 SH7709S的使用

SH-3异常中断处理方式 SH7709S的应用-SH-3的中断处理方式与一般处理器不同,没有固定的中断向量表,比较灵括,用户可以在存储器中建立上述仅是对P09702的基本应用。通过该文介绍的方法,并结合SSDl303的指令集,读者将能够对P09702应用自如。一个处理异常事件(Exeeplaonevents)的程序结构,作为中断向量表。

SH一3是Renesas公司SupezH系列的高端32位RISC构架单片机系列,具有低功耗、高性能、集成MMU、cache和电源办理模块等特色,处理速度为60~260MIPs。SH-3包括SH7705、SH7708、SH7709、SH7727、SH7729等单片机,广泛运用于彩色打印机、扫描仪、DVD解码器等高端数码设备上。SH7709S是SH-3系列中有代表性的一款单片机,文中介绍办法均在SH7709S的体系中得到验证。

首要介绍程序设计时三个要害部分:树立中止处理程序结构、初始化C程序中赋初始值的变量和上电初始化流程。

1树立中止处理程序结构

SH-3的中止处理方式与一般处理器不同,没有固定的中止向量表,比较灵括,用户能够在存储器中树立上述仅是对P09702的根本运用。经过该文介绍的办法,并结合SSDl303的指令集,读者将能够对P09702运用自若。一个处理反常事情(Exeeplaonevents)的程序结构,作为中止向量表。

SH一3把反常分为三类:复位(Reset)、一般反常事情(Generalexcephonevents)和中止请求(Generalintemaptrequests),复位包括上电、手动和H—UDI复位,反常事情首要包括不合法指令、地址过错等,中止请求首要包括模块中止、外部中止等。每种中止都包括若干中止源,每种中止源对应INTEVT和IMEVT2寄存器中不同的反常码。产生复位时,程序会跳到地址AO000000H履行,产生反常事情和中止请求时,程序会跳转到由向量基址寄存器VBR加不同偏移量决议的地址。不同的反常事情和中止请求对应不同的偏移量。反常事情对应的偏移量是100H,其间因TLB寄存器产生的两种反常对应的偏移量是400H,一切中止请求对应的偏移量都是600H。初始化时,要把对应的中止处理程序放到相应的地址.如图l所示。重置引导程序段(Starl段)应放在地址A00000000H的内存,当VBR=A0000000H时,反常事情处理程序段(GEEntry段)放在VBR+100H=A0000100H处,TLB反常处理程序段(TLBEntry段)放在VBR+400H=A0000400H处,中止请求处理程序段(INTEntry)放在VBR+600H=A0000600H处。体系给这几个程序段散布的空间比较小,最大不超越1KB,其首要功用是保存CPU寄存器,然后跳转到反常码判别程序,由判别程序找出中止源,并履行相应的处理程序。

SH-3反常中止处理方式 SH7709S的运用

GEEntry、TLBEntry与INTEntry的处理进程相似。下面以TLB反常为例来阐明这一处理进程。当产生TLB反常时,程序跳转到VBR+400H地址。进入TLBEntry,首先把一切CPU寄存器保存到仓库中(R15是仓库指针),保存完毕后,跳转到反常码判别程序TLBHandler,由TLBHandlei断定中止源,并履行相应的处理程序。

·SECTIONTLBEntry,CODE,ALIGN=4

·EXPORT_TLBEntry

SH-3反常中止处理方式 SH7709S的运用

下面是用C编写的TLBHandler程序,该程序坐落P段,与TLBEntry段地点的数据段不同(图1)。TLBHandler依据INTC.EXPEVT(界说在7709s.h)的值判别是哪种_TLB反常,并跳转到相应的处理程序中履行。

SH-3反常中止处理方式 SH7709S的运用

2初始化C程序中赋有初始值的变量

编译器把编译后的C程序首要分为(见图1):代码段(P)、常量段(C)、初始化数据段(D)、末初始化变量段(B)、D段对应在RAM中的数据段(R)和仓库段(S)。其间P、C和D段在ROM中,B、R和S段在RAM中。D段中保存的是在界说时现已初始化变量的初值,例如按如下界说的变量a。

inTI=l:

编译器实际上为初始化的变量分配了两块空间,在ROM中的D段和在RAM中的R段,D段保存的是变量的初始值,而变量对应的地址在R段。上电后,需要把D段中的数据搬到R段中,这是嵌入式体系初始化进程中非常重要的一部分。B段中保存的是未赋初值的变量,例如按如下界说的变量b。

intb:

能够在开端时把B段中变量悉数初始化为0。首先要给出D、R和B段的开端和完毕地址,如下:

SH-3反常中止处理方式 SH7709S的运用

然后在初始化进程中把D段中的初始值转移到R段,并给B段中变量赋一个初始值。下面是用C编写的程序。

SH-3反常中止处理方式 SH7709S的运用

3上电初始化进程

SH-3上电初始化进程如图2中所示,按箭头指向的次序进行,同一级中各个部分初始化时无先后次序。

上电后,先使状况寄存器SR中堵塞位BL=1,禁示承受反常和中止,再开端初始化进程。体系时钟由上电时。MD0、MDl、MD2的电平缓FRQCR寄存器的设置来决议,跳线挑选时钟源和总线时钟倍频,FRQCR设置内核和外设时钟倍频。

SH-3反常中止处理方式 SH7709S的运用

SH-3的地址空间一般分为7个区,Area0-Area6,每区占64MB的地址,Areal由体系运用,其他6个区由用户运用。Area0-Area6(除ATeal)都能接一般的ROM和RAM,每区能够别离设置从8~32bit的总线位宽和读写等候周期数,此外Area2和Area3有SDRAM接口,Aera5和Area6有PCMCIA和burstROM接口。Aera0的总线位宽由上电时管脚MD3、MD4电平决议,其他几个区中总线宽度由总线状况控制器BSC(BusStateController)中寄存器设定。初始化BSC要设定每个区接入的存储器类型、总线位宽和读写等候周期,如果在Area2或Area3接有SDRAM,还要初始化BSC中的SDRAM控制器。

SH-3内置有缓存,能够经过CCR寄存器设置成Write-through(直接写到内存中)和Write-back(先写到Cache中)两种运用摸式。设置成Write-back形式会明显提高体系的速度。没有专用的仓库指针SP,用R15替代。初始化R15后,一般不要在程序中改动R15的值。

D段到R段的数据转移和初始化VBR在1、2部分中已具体介绍。SH-3的可屏蔽中止分为O~15个优先级,只要优先级高于SR中止屏蔽位IO~13的中止才干被呼应。在初始化时,要给运用到的中止设定优先级。之后是用户初始化运用到功用模块。

完结初始化后,免除中止屏蔽,把SR中BL位设为0,跳转到用户程序(一般是C语言中的main()函数),初始化进程完结。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/348293.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部