新闻中心

EEPW首页 > 消费电子 > 设计应用 > SH-3系列单片机的程序设计关键技术

SH-3系列单片机的程序设计关键技术

——
作者:余晓建 沈永林 郭超时间:2007-04-23来源:电子技术应用收藏
SH一3是Renesas公司SupezH系列的高端32位RISC构架系列,具有低功耗、高性能、集成MMU、cache和电源管理模块等特点,处理速度为60~260MIPs。包括SH7705、SH7708、SH7709、SH7727、SH7729等,广泛应用于彩色打印机、扫描仪、DVD解码器等高端数码设备上。SH7709S是系列中有代表性的一款,文中介绍方法均在SH7709S的系统中得到验证。

主要介绍时三个部分:建立中断处理程序结构、初始化C程序中赋初始值的变量和上电初始化流程。

1 建立中断处理程序结构

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

SH一3把异常分为三类:复位(Reset)、普通异常事件(General excephon events)和中断请求(G

eneral intemapt requests),复位包括上电、手动和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寄存器,然后跳转到异常码判断程序,由判断程序找出中断源,并执行相应的处理程序。

程序段中内存分布示意图

GEEntry、TLBEntry与INTEntry的处理过程类似。下面以TLB异常为例来说明这一处理过程。当发生TLB异常时,程序跳转到VBR+400H地址。进入TLBEntry,首先把所有CPU寄存器保存到堆栈中(R15是堆栈指针),保存完毕后,跳转到异常码判断程序TLBHandler,由TLBHandlei判定中断源,并执行相应的处理程序。



评论


相关推荐

技术专区

关闭