在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > PowerPC簡介及編程

            PowerPC簡介及編程

            作者: 時間:2017-06-04 來源:網(wǎng)絡 收藏

            PowerPC簡介及編程

            本文引用地址:http://www.biyoush.com/article/201706/348588.htm



            一.PowerPC芯片

            PowerPC是早期Motorola和IBM聯(lián)合為Apple的MAC機開發(fā)的CPU芯片,商標權同時屬于IBM和Motorola,并成為他們的主導成品.IBM主要的PowerPC產品有PowerPC604s(深藍內部的CPU), PowerPC750,PowerPCG3(1.1GHz).Motorola主要有MC和MPC系列.盡管他們產品不一樣,但都采用PowerPC的內核.這些產品大都用在嵌入式系統(tǒng)中.



            二. Motorola的MPC860簡介(摘錄)

            MPC860 PowerQUICC (Quad Integrated Communications Controller) 內部集成了微處理器和一些控制領域的常用外圍組件, 特別適用于通信產品. 包括器件的適應性, 擴展能力和集成度等. MPC860 PowerQUICC集成了兩個處理塊. 一個處理塊是嵌入的PowerPC核, 另一個是通信處理模塊( CPM, Communications Processor Module), 通信處理模塊支持四個串行通信控制器(SCC, Serial Communication Controller), 實際上它有八個串行通道: 四個SCC,兩個串行管理控制器 (SMC, Serial Management Channels), 一個串行外圍接口電路 ( SPI, Serial Peripheral Interface ) 和一個I2C( Inter-Integrated Circuit ) 接口. 由于CPM分擔了嵌入式PowerPC核的外圍工作任務, 這種雙處理器體系結構功耗要低于傳統(tǒng)的體系結構的處理器.

            1.單出口, 嵌入式PowerPC核32比特版本(與PowerPC結構定義完全兼容)32x32位通用寄存器(GPRs, General Purpose Registers)

            4K數(shù)據(jù)Cache和4K指令Cache, 分別帶有一個MMU.

            存儲管理單元(MMU)32-輸入翻譯后備緩沖器 ( TLBs )

            32位數(shù)據(jù),地址線

            2.存儲控制器(八個存儲體)

            單線存儲模塊無逢接口,靜態(tài)隨即存取存儲器(RAM), EPROM, FLASH MEMORY或DRAM等。

            DRAM 控制器可編程支持絕大多數(shù)不同大小和速度的存儲器

            不同碼組長度32K至256M

            3.四個16位定時器或兩個32位定時器.

            4.系統(tǒng)集成單元 ( SIU, Sytstem Intergration Unit ) 主要包括:

            軟件看門狗

            中斷定時器

            PowerPC 時基和實時時鐘 (RTC, Real Time Clock )

            復位控制器

            JTAG 1149.1 測試口

            5.中斷系統(tǒng)包括7根外部中斷請求線, 12個具有中斷能力的管腳, 16個內部中斷源. 中斷優(yōu)先級可編程

            6.通信處理器模塊(CPM)主要包括:

            RISC 控制器

            5 K字節(jié)雙口RAM

            16個串行DMA (SDMA) 通道

            三個平行 I/O 寄存器

            7.四個波特率獨立的發(fā)生器, 可以連接到任意一個SCC和SMC, 并允許運行中改變. 支持自動波特率

            8.四個串行通信控制器 (SCC) ,支持以太網(wǎng), HDLC/SDLC, HDLC 總線(用以實現(xiàn)基于HDLC的局域網(wǎng))、AppleTalk, 7號信令系統(tǒng), UART、BISYNC, 比特流透明傳輸, 基于幀的透明傳輸 (CRC可選), 支持PPP (Point to Point Protocol)的異步HDLC等標準協(xié)議

            9.兩個串行管理控制器 (SMC), UART方式或透明傳輸, 含GCI(General Circuit Interface)控制器, 可以連到時分復用通道

            10.一個串行外圍接口電路( SPI ), 是MC68302 SCP的擴展, 支持主從模式, 支持同一總線上多主操作

            11.一個I2C ( Inter-Integrated Circuit ) 接口,支持主從模式, 支持多主環(huán)境

            12.單插座PCMCIA-異步終端適陪器(ATA)接口

            單PCMCIA插座

            八儲存或有效輸入/輸出(I/O)窗口


             
            三內存映射

            MPC860的內存資源(如寄存器等)映射在一個連續(xù)的16K Block存儲區(qū)內,可通過SPR中的Internal Map Memory Register(IMMR)進行解析

            對 Memory Registers 操作的幾種方式

            Indirectly Access Registers Via Memory-----------------------通過指定的I/O寄存器(I/O port)對一個寄存器操作,

            如PCI部分I/O操作示例如下:

            PCI地址I/O寄存器: PCICFGADR 0xEEC00000
            PCI數(shù)據(jù)I/O寄存器: PCICFGDATA 0xEEC00004

            具體操作方法:將所要讀寫的寄存器地址寫入PCI地址I/O寄存器PCICFGADR,從PCI數(shù)據(jù)I/O寄存器PCICFGDATA讀出數(shù)據(jù),這個數(shù)據(jù)就是寫入地址的寄存器的數(shù)據(jù).

            RegAddr = 0x80000000 | ((offset|BusDevFunc) 0xFFFFFFFC);

            RegAddr寄存器地址, 0x80000000 PCI core Address, offset寄存器偏移量

            /*
            * 寫RegAddr到PCI I/O地址寄存器PCICFGADR
            */
            sysPciOutLong(PCICFGADR, RegAddr);

            /*
            * 從PCI I/O數(shù)據(jù)寄存器讀RegAddr數(shù)據(jù)data
            */
            data = (unsigned int)sysPciInByte(PCICFGDATA | (offset 0x3));

            Directly Access Registers Via Memory-------------------------直接對寄存器操作

            Indirectly Access Registers Via DCR-----------------------------同上,

            Directly Access Regesters Via DCR-------------------------------同上,

             

            四,PowerPC內核定義

            雙處理器結構既提供了程序運行的通用處理器,又提供了用于通信用處的特殊通信處理器(CPM).

            1.32位PowerPC結構特點

            32個32位通用寄存器 ( GPRs )

            寄存器支持用戶級指令集 (不包括浮點指令),包括integer exception register (XER ),condition register(CR),link register(LR),counter register ( CTR )

            時間加減及寄存器

            管理級寄存器,與PowerPC定義兼容

            Configuration-----Machine Status Register ( MSR )

            Exception model-----Save/restore registers 0 and 1 (SRR0 and SRR1), DSI status register ( DSISR ), data address register ( DAR )

            PowerPC 減量器

            PowerPC 時基和 實時時鐘(RTC)

             

            2.地址映射
             

            名稱

            內存物理地址

            備注

            SDRAM0x00000000~0x7FFFFFFF
            PCI0x80000000~0xEF5FFFFF

            Internal Peripherals

            0xEF600000~0xEFFFFFFF
            UART.....
            ..........

            External Peripherals

            0xF0000000~0xFF7FFFFF
            NVRAM/RTC

            0xF0000000~0xF0001FFF

            (8K)下畫線為片選
            Keybord/Mouse0xF0100000~0xF0100001下畫線為片選
            FPGA_INT_ST..0xF0300000~0xF0300000下畫線為片選
            FPGA_INT_EN..0xF0300001~0xF0300001下畫線為片選

            Socket Flash

            0xFFF80000~0xFFFFFFFF512K

            SRAM

            0xFFF00000~0xFFF7FFFF512K(可通過Swich與Socket Flash 切換)


             

            3.中斷優(yōu)先級(Exception Priority)
             

            PriorityException TypeCause
            1Development portnonmaskable interrupt Signal from the development port
            2System resetinterrupt IRQ0 assertion
            3Instruction-related exceptionsInstruction processing
            4Peripheral breakpoint request or development port maskable interruptBreakpoint signal from any peripheral
            5External interrupt (masked if MSR[EE] = 0) Signal from the interrupt controller
            6Decrementer interrupt(masked if MSR[EE] = 0)Decrementer request



             

             

            4.中斷向量表
             

            中斷向量表的起始地址取決于MSR[IP]的設置

            MSR[IP]=0 Exceptions are vectored to the physical address 0x000n_nnnn

            MSR[IP]=1 Exceptions are vectored to the physical address 0xFFFn_nnnn

            OffsetExceptionDescription
            0x00000Reserved 
            0x00100System reset interrupt 
            0x00200Machine check interrupt 
            0x00300DSIA DSI exception is never generated by hardware, but software may branch to this location because of an data TLB error or miss exception.
            0x00400ISIAn ISI exception is never generated by the hardware, but software may branch to this location because of an implementation-speciTc instruction TLB error exception.
            0x00500External Interrupt 




            這個表結合地址映射表可知系統(tǒng)復位的地址是 Socket Flash地址+系統(tǒng)復位偏移地址 = 0xFFF80000 + 0x0100 = 0xFFF80100,即系統(tǒng)通電后,跳到0xFFF80100的位置開始執(zhí)行程序.

            5.MPC860串口中斷過程

            MPC860集成了兩個處理塊,一個處理塊是嵌入的PowerPC核,另一個是通信處理模塊(CPM).通信處理模塊有4個SCC和2個SMC,這六個通信口可以通過設置來支持多種協(xié)議和通信方式,也可設置為串口UART模式(是通過寄存器GSMR或SMCMR),功能和中斷的定義和通常的串口定義基本是一致的在寄存器SCCM/SCCE的位14和位15定義了在何種情況下產生硬件中斷.

            根據(jù)MPC860中SCC UART Event Register(SCCE)的位14和位15定義,位14是數(shù)據(jù)發(fā)送中斷標志位,位15是數(shù)據(jù)接收中斷標志位,首先設置SCC UART Mask Register(SCCM)的位14和位15為1,使能接受和發(fā)送中斷.

            如果串口收到數(shù)據(jù),則產生硬件RX中斷,SCCE為15置1,通知系統(tǒng)有數(shù)據(jù)到達,有相應的中斷例程ISR來取數(shù)據(jù).

            發(fā)送的情況下,數(shù)據(jù)FIFO為空,產生TX中斷,告訴系統(tǒng)發(fā)送準備就緒,可以發(fā)送,ISR把數(shù)據(jù)放入FIFO中,發(fā)送中斷位清零.當發(fā)送完畢后,FIFO再為空,再次產生中斷,告訴系統(tǒng)發(fā)送準備就緒,繼續(xù)發(fā)送.


            6.MPC860片選信號的編程方法

            在MPC860中,有片選信號CS0,CS1,...,CS7對他們的操作主要是要改變片選信號的電平.

            一般來說片選信號的發(fā)生是對和這一片選線相關聯(lián)的地址進行操作(讀寫)時片選信號改變。片選信號通常為低電平有效。比如MPC860的CS0是boot rom,硬件reset后,CPU會從boot rom的起始地址開始執(zhí)行,CS0變?yōu)榈碗娖健?
            所以只要對一個相應的地址操作,和這個地址芯片(bank)相連的CSx就會改變。
            MPC860對CSx分配地址空間的在BRx中定義,BR0,BR1...BR7分別對應8個片選線CS0--CS7。


             

            7.System Reset Interrupt (0x00100)

            A system reset interrupt occurs when IRQ0 is asserted. When the exception is taken, processing begins at offset 0x00100. A hard or soft reset also causes program execution to begin fetching at 0x00100 after the associated reset actions.

            Register Setting

            SRR0: Set to the (Effective Address) EA of the next instruction of the interrupted process.

            SRR1: Saves the machine status prior to exceptions and to restore status when an r f i instruction is executed.

            1-4 ,-------0

            10-15,--- 0

            Others Loaded from MSR[16-31]. SRR1[30] is cleared only by loading a zero from MSR[RI].

            MSR : IP No change ME No change LE Value of MSR[ILE] of the interrupted process. Others -----0

             

            8.External Interrupt Exception (0x00500)

            In the MPC860 the external interrupt is generated by the on-chip interrupt controller. It is software acknowledged and maskable by MSR[EE], which hardware clears automatically to disable external interrupts when any exception is taken.

            Register Settings after an External Interrupt

            Register Setting Description

            SRR0 Set to the effective address of the instruction that the processor would have attempted to execute next if no interrupt conditions were present.

            SRR1: 0, Loaded with equivalent bits from the MSR

            1-4, Cleared; 5-9, Loaded with equivalent bits from the MSR; 10-15, Cleared; 16-31, Loaded with equivalent bits from the MSR

            Note that depending on the implementation, reserved bits in the MSR may not be copied to SRR1.

            MSR POW 0; ILE --; EE 0; PR 0; FP 0; ME --; SE 0; BE 0; IP --; IR 0; DR 0; RI 0; LE Set to value of ILE

             

            9.Hard Reset ConTguration Word

            The hard reset configuration word is sampled from the data bus. These bits determine the default values of the corresponding bits in the SIUMCR, IMMR, and MSR.

            IIP:bit1: Initial interrupt prefix. Defines the initial value of the MSR[IP] which defines the interrupt table location. If

            IIP is cleared (default), the MSR[IP] initial value is one; if it is set to one, the MSR[IP] initial value is zero.

            ISB:bit 7-8, Initial internal space base select. Defines the initial value of the IMMR bits 0-15 and determines the

            base address of the internal memory space.

            00 0x00000000.

            01 0x00F00000.

            10 0xFF000000.

            11 0xFFF00000.

             

             

             



            評論


            相關推薦

            技術專區(qū)

            關閉