• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > SH-3系列單片機(jī)的程序設(shè)計(jì)關(guān)鍵技術(shù)

    SH-3系列單片機(jī)的程序設(shè)計(jì)關(guān)鍵技術(shù)

    ——
    作者:余曉建 沈永林 郭超 時(shí)間:2007-04-23 來源:電子技術(shù)應(yīng)用 收藏
    SH一3是Renesas公司SupezH系列的高端32位RISC構(gòu)架系列,具有低功耗、高性能、集成MMU、cache和電源管理模塊等特點(diǎn),處理速度為60~260MIPs。包括SH7705、SH7708、SH7709、SH7727、SH7729等,廣泛應(yīng)用于彩色打印機(jī)、掃描儀、DVD解碼器等高端數(shù)碼設(shè)備上。SH7709S是系列中有代表性的一款,文中介紹方法均在SH7709S的系統(tǒng)中得到驗(yàn)證。

    主要介紹時(shí)三個(gè)部分:建立中斷處理程序結(jié)構(gòu)、初始化C程序中賦初始值的變量和上電初始化流程。

    1 建立中斷處理程序結(jié)構(gòu)

    的中斷處理方式與一般處理器不同,沒有固定的中斷向量表,比較靈括,用戶可以在存儲(chǔ)器中建立上述僅是對(duì)P09702的基本應(yīng)用。通過該文介紹的方法,并結(jié)合SSDl303的指令集,讀者將能夠?qū)09702應(yīng)用自如。一個(gè)處理異常事件(Exeeplaon events)的程序結(jié)構(gòu),作為中斷向量表。

    SH一3把異常分為三類:復(fù)位(Reset)、普通異常事件(General excephon events)和中斷請(qǐng)求(G

    eneral intemapt requests),復(fù)位包括上電、手動(dòng)和H—UDI復(fù)位,異常事件主要包括非法指令、地址錯(cuò)誤等,中斷請(qǐng)求主要包括模塊中斷、外部中斷等。每種中斷都包含若干中斷源,每種中斷源對(duì)應(yīng)INTEVT和IMEVT2寄存器中不同的異常碼。發(fā)生復(fù)位時(shí),程序會(huì)跳到地址AO000000H執(zhí)行,發(fā)生異常事件和中斷請(qǐng)求時(shí),程序會(huì)跳轉(zhuǎn)到由向量基址寄存器VBR加不同偏移量決定的地址。不同的異常事件和中斷請(qǐng)求對(duì)應(yīng)不同的偏移量。異常事件對(duì)應(yīng)的偏移量是100H,其中因TLB寄存器產(chǎn)生的兩種異常對(duì)應(yīng)的偏移量是400H,所有中斷請(qǐng)求對(duì)應(yīng)的偏移量都是600H。初始化時(shí),要把對(duì)應(yīng)的中斷處理程序放到相應(yīng)的地址.如圖l所示。重置引導(dǎo)程序段(Starl段)應(yīng)放在地址A00000000H的內(nèi)存,當(dāng)VBR=A0000000H時(shí),異常事件處理程序段(GEEntry段)放在VBR+100H=A0000100H處,TLB異常處理程序段(TLBEntry段)放在VBR+400H=A0000400H處,中斷請(qǐng)求處理程序段(INTEntry)放在VBR+600H=A0000600H處。系統(tǒng)給這幾個(gè)程序段分布的空間比較小,最大不超過1KB,其主要功能是保存CPU寄存器,然后跳轉(zhuǎn)到異常碼判斷程序,由判斷程序找出中斷源,并執(zhí)行相應(yīng)的處理程序。

    程序段中內(nèi)存分布示意圖

    GEEntry、TLBEntry與INTEntry的處理過程類似。下面以TLB異常為例來說明這一處理過程。當(dāng)發(fā)生TLB異常時(shí),程序跳轉(zhuǎn)到VBR+400H地址。進(jìn)入TLBEntry,首先把所有CPU寄存器保存到堆棧中(R15是堆棧指針),保存完畢后,跳轉(zhuǎn)到異常碼判斷程序TLBHandler,由TLBHandlei判定中斷源,并執(zhí)行相應(yīng)的處理程序。



    評(píng)論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 精河县| 麻江县| 万安县| 北海市| 广宁县| 舒城县| 阳江市| 襄汾县| 乳山市| 昌黎县| 通州区| 甘德县| 乌拉特后旗| 莒南县| 凤城市| 青神县| 广南县| 高密市| 富民县| 崇左市| 勃利县| 聂拉木县| 进贤县| 佛冈县| 大邑县| 怀宁县| 喜德县| 丰顺县| 大足县| 墨江| 报价| 大渡口区| 绵竹市| 满城县| 上林县| 武定县| 和硕县| 临西县| 来安县| 奎屯市| 和田县|