中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于32位RISC處理器之SoC平臺(tái)的Linux操作系統(tǒng)實(shí)現(xiàn)

        基于32位RISC處理器之SoC平臺(tái)的Linux操作系統(tǒng)實(shí)現(xiàn)

        ——
        作者: 時(shí)間:2006-06-18 來源:電子設(shè)計(jì)應(yīng)用 收藏

        摘要: 本文會(huì)介紹如何在兼容ARM V4指令集的32位RISC處理器(FA526)所構(gòu)建的平臺(tái)上(即FIE8100),運(yùn)用智原科技所提供的FA526-Linux開發(fā)包通過armboot裝載Linux操作系統(tǒng)。使開發(fā)人員可以在基于FIE8100 的仿真平臺(tái)-MediaCreative!上進(jìn)行二次開發(fā)和驗(yàn)證設(shè)計(jì)。

        智原科技的FIE8100 平臺(tái)是利用智原科技所開發(fā)并驗(yàn)證過的大量硅知識(shí)產(chǎn)權(quán)構(gòu)建而成的高性能用于低功耗,可攜式視頻相關(guān)應(yīng)用開發(fā)的SoC平臺(tái),它也可用于基于FA526 CPU的SoC設(shè)計(jì)的驗(yàn)證。

        基于FA526-Linux軟件開發(fā)套件,開發(fā)人員可以將Linux-2.4.19軟件環(huán)境在FIE8100平臺(tái)上安裝實(shí)現(xiàn),通過完成對平臺(tái)上所有IP的驅(qū)動(dòng)程序安裝和對FA526的內(nèi)部調(diào)試。

        FA526介紹

        FA526是一顆有著廣泛用途的32位RISC處理器。它包括一個(gè)同步CPU內(nèi)核(core),獨(dú)立的指令/數(shù)據(jù)緩存(cache),獨(dú)立的指令/數(shù)據(jù)暫存器(scratchpads),一個(gè)寫緩存(write buffer),一個(gè)內(nèi)存管理單元(memory management unit)和JTAG在線仿真(ICE)接口。CPU內(nèi)核是6級流水線(pipeline)的哈佛(Harvard)結(jié)構(gòu),包括:取指令(fetch),解碼(decode),搬移(shift),執(zhí)行(execution),數(shù)據(jù)訪存(memory),寫回(write)。為了提高整體性能,F(xiàn)A526 CPU也包含了一個(gè)分支運(yùn)算緩存(Branch Target Buffer:BTB)來減少分支運(yùn)算的開銷(penalties)。


        圖1  FA526功能模塊圖

        FA526 CPU內(nèi)核的指令是兼容ARM V4的結(jié)構(gòu),并使用AMBA AHB 接口于外部設(shè)備進(jìn)行通訊。因此,F(xiàn)A526 CPU有著廣泛的應(yīng)用領(lǐng)域,特別是針對那些需要高性能和低功耗的應(yīng)用。FA526 CPU 內(nèi)核是完全同步的,并且其基于單相時(shí)鐘(single-phase clock)的結(jié)構(gòu)可以很容易地實(shí)現(xiàn)集成開發(fā)系統(tǒng)級芯片(System on Chip: SoC)。FA526 CPU內(nèi)核的方塊圖如圖1所示。

        FA526 CPU內(nèi)每個(gè)功能模塊的說明如下:

        CPU Core
        FA526完全兼容ARM V4結(jié)構(gòu),包括V4指令集和一個(gè)寄存器指令集??偣?0個(gè)通用寄存器和6個(gè)處理器狀態(tài)寄存器。FA526提供7種處理器模式,包括:Supervisor, System, FIQ, IRQ, abort, undefined and user.

        分支運(yùn)算緩存(Branch Target Buffer:BTB)
        分支運(yùn)算緩存可通過一種分支處理預(yù)言(branch prediction)機(jī)能來提高處理器的性能。憑借此精確分支處理預(yù)言,BTB可解決控制相關(guān)(dependency)和減少分支運(yùn)算開銷(branch penalty)。FA526在分支處理預(yù)言里采用2位計(jì)數(shù)器算法,并提供一個(gè)無效的全BTB輸入的操作(Entries operation)。


        圖2  基于FA526 CPU的FIE8100系統(tǒng)架構(gòu)

        圖3  基于FIE8100 SoC的開發(fā)板:MediaCreative!

        指令緩存和數(shù)據(jù)緩存(ICache and DCache)
        指令/數(shù)據(jù)緩存運(yùn)用本地編程(program's locality)的方式來提高處理器性能。它在一個(gè)快速本地內(nèi)存里存儲(chǔ)最近期使用過的指令或數(shù)據(jù)。他們的大小通常為8K或16K

        內(nèi)存管理單元(MMU)
        FA526 MMU有一個(gè)標(biāo)準(zhǔn)的可配置的4路組關(guān)聯(lián)快表(4-way set-associative TLB)。它可在地址傳輸緩存最近期使用過的頁表(page),它也是和ARM架構(gòu)完全兼容的。

        指令/數(shù)據(jù)暫存器(IScratchpad and DScratchpad)
        暫存器是一個(gè)靠近處理器內(nèi)核的快速片上SRAM。一些要求性能高的代碼和數(shù)據(jù)可被預(yù)抓取(pre-fetched)到暫存器并全速的執(zhí)行。這主要用于嵌入式應(yīng)用。暫存器可以是1 Kbytes, 2 Kbytes或4 Kbytes。

        總線界面單元(Bus Interface Unit:BIU)
        總線界面單元可從CPU內(nèi)核里接受內(nèi)存訪問的請求并通過外部系統(tǒng)總線執(zhí)行指令和數(shù)據(jù)。FA526的總線界面單元使用AMBA 2.0(AHB)的界面協(xié)議。AHB是一種流水總線協(xié)議。它使用單相時(shí)鐘運(yùn)算方式,使得設(shè)計(jì)人員能夠在SoC集成上很容易地采用。

        寫回(Write Buffer: WB)
        寫回可以在進(jìn)入下一個(gè)內(nèi)存層時(shí)避免寫延遲和減少寫堵塞。FA526寫回緩存包括一個(gè)8個(gè)字的地址緩沖器和一個(gè)4個(gè)字的數(shù)據(jù)緩沖器。

        ASIE Interface
        ASIE可用于處理器功能的擴(kuò)展。它提供兩個(gè)擴(kuò)展功能:協(xié)助器的連接和指令擴(kuò)展(coprocessor connection and extension instruction). 

        在線仿真器(ICE)
        FA526提供兩種ICE協(xié)議:Faraday ICE 調(diào)試器和ARM ICE調(diào)試器。

        省電控制單元(Power Saving Control Unit)
        省電節(jié)省控制單元控制著整個(gè)芯片時(shí)鐘以減少操作功耗。當(dāng)軟件程序發(fā)現(xiàn)CPU已長時(shí)間的處在空閑狀態(tài),它會(huì)強(qiáng)制讓處理器進(jìn)入省電模式。處理器支持兩種省電模式:Idle and Sleep。在Idle模式下,處理器內(nèi)部電路的時(shí)鐘除了省電控制單元都停止下來。在Sleep模式下,處理器內(nèi)部電路包括PLL都停止。在省電模式下,處理器可以通過一個(gè)中斷或一個(gè)ICE驅(qū)動(dòng)來喚醒。這樣的啟動(dòng)時(shí)間需要16個(gè)時(shí)鐘周期,大約5個(gè)微秒從Sleep模式到喚醒。
          
        FIE8100 SoC 平臺(tái)介紹

        FIE8100 SoC平臺(tái)集成了眾多外設(shè),系統(tǒng)架構(gòu)如下圖2所示。一顆高性能處理器內(nèi)核和功耗管理以特別應(yīng)對MPEG-4和JPEG的市場需求。目前,智原的MPEG4/JPEG Codec所支持的格式為Simple Profile Version 3.1,其包含XviD編碼和一部分的DivX編碼。

        FIE8100 SoC平臺(tái)包含了非常豐富的功能模塊以支持多種應(yīng)用,包括:FA526(32Bit RISC CPU), MPEG-4/JPEG 編解碼引擎, USB2.0 設(shè)備控制器, USB2.0 PHY(物理層), LCD 控制器, DMA 控制器,TV Encoder(解碼器),Capture(視頻捕捉器)和AMBA總線架構(gòu)。為了讓用戶能將自己的IP或功能模塊順利的運(yùn)行在FA526上,智原將AHB總線從CPU的引線中拉出,以及搭配各類接口和片外芯片,開發(fā)制作了一個(gè)基于FIE8100 SoC的仿真平臺(tái): MediaCreative!。如圖3所示。
         
        基于FA526的Linux安裝

        開發(fā)系統(tǒng)之介紹
        所需主開發(fā)環(huán)境
        開發(fā)Linux的主系統(tǒng)開發(fā)環(huán)境需要有:
        硬件:
        * 兼容Intel x86的PC
        * 標(biāo)準(zhǔn)16550 UART接口
        軟件:
        * Linux操作系統(tǒng) (RedHat 7.3~8.0或更高版本)
        * FA526-Linux 軟件包
        通用平臺(tái)系統(tǒng)所需的器件:
        - MediaCreative! (含F(xiàn)IE8100/FWAB326AA芯片)  x 1
        - 64MB SDRAM            x 1
        - 32MB Flash                     x 1
        FA526的Linux安裝
        介紹
        本章節(jié)將介紹FA526-Linux的架構(gòu)和實(shí)現(xiàn)安裝。
        FA526-Linux可以將Linux-2.4.19軟件環(huán)境在Faraday FA526處理器和外設(shè)IP上安裝實(shí)現(xiàn)。
        FA526-Linux軟件包
        FA526-Linux軟件包以“arm-linux-20050429.tgz”打包文件遞交。(此程序發(fā)布于April 29, 2005)                      
        表1  安裝Linux所需的硬盤空間

        安裝FA526-Linux軟件包,流程如下:
        1.  拷貝文件 arm-linux-20050429.tgz 至目錄 /usr/src.
        # cp arm-linux-20050429.tgz /usr/src

        2.  解包文件"arm-linux-20050429.tgz".
        # cd /usr/src
        # tar zxvf arm-linux-20050429.tgz

        3.  安裝Toolchain (GCC-2.95.3, Binutils-2.11.2, GLIBC-2.2.3) 至目錄/usr/local.
        # cp /usr/src/arm-linux/toolchain/arm-linux-toolchain.tgz /usr/local/
        # cd /usr/local
        # tar zxvf arm-linux-toolchain.tgz
        # rm -f arm-linux-toolchain.tgz
        此步驟將在目錄 /usr/local/arm解壓GCC-2.95.3, Binutils-2.11.2 和 GLIBC-2.2.3的輸出文件.

        4.  添加 GCC 執(zhí)行路徑至shell環(huán)境。
        可執(zhí)行以下命令來添加路徑:
        # export PATH=$PATH:/usr/local/arm/2.95.3/bin
        在完成了以上四個(gè)安裝步驟后,你就可以繼續(xù)安裝FA526 Linux 內(nèi)核或做應(yīng)用了。
        FA526-Linux目錄結(jié)構(gòu)
        假設(shè)主目錄是 /usr/src/arm-linux/。當(dāng)你在/usr/src/arm-linux/下解壓打包文件,如:arm-linux20050429.tgz,系統(tǒng)會(huì)自動(dòng)生成一組目錄,如圖4。
        在表2中,列出了這些源目錄的定義。用戶的應(yīng)用程序包含在目錄/usr/src/arm-linux/user/下,而客戶定制的RAM-Disk則包含在目錄/usr/src/arm-linux/images/下。
        表2  FA526 軟件包目錄

        FA526-Linux的構(gòu)建和開發(fā)
        本節(jié)將描述在里配置和構(gòu)建FA526-Linux內(nèi)核。
        內(nèi)核目錄樹 (Kernel Tree)
        FA526的Linux內(nèi)核子目錄在以下的目錄里:
        /usr/src/arm-linux/arm-linux-2.4.19/
        FA526-Linux目錄的結(jié)構(gòu)和標(biāo)準(zhǔn)Linux內(nèi)核一樣,版本是2.4.19. 以下表格列出了Linux內(nèi)核子目錄的內(nèi)容。
        (為書寫簡略,<TOPDIR> 代表 /usr/src/arm-linux/arm-linux-2.4.19)
        表3內(nèi)核子目錄內(nèi)容。
         


        圖4  FA526 軟件包目錄樹

        圖5  FA526-Linux xconfig介面

        構(gòu)建內(nèi)核
        本節(jié)描述了如何為FA526架構(gòu)生成內(nèi)核的映像
        配置內(nèi)核
        構(gòu)建內(nèi)核的第一步是配置內(nèi)核。配置文件在目錄<TOPDIR>/.config
        通常,用戶可能為了一些如下的因素要求重新配置FA526-Linux:
        定制處理器和板子的功能:修改UART時(shí)鐘,系統(tǒng)時(shí)鐘等。
        定制硬件設(shè)備:添加或刪除某些特殊設(shè)備。
        定制內(nèi)核功能:添加或刪除一個(gè)內(nèi)核的功能,如網(wǎng)絡(luò)支持。

             
                  圖6  FA526-Linux menuconfig介面                圖7   配置RAM-Disk的大小

        Linux內(nèi)核配置為配置這些可選項(xiàng)目提供了兩種常用方式:
        轉(zhuǎn)換目錄至<TOPDIR>
        1. 使用菜單顯示來選擇項(xiàng)目:
        # make menuconfig
        2. 使用GUI顯示來選擇項(xiàng)目:
        # make xconfig
        在圖5里,顯示了針對FA526和CPE開發(fā)板的FA526-Linux的xconfig 介面。 
        在圖6里顯示了針對FA526和CPE開發(fā)板的FA526-Linux的menuconfig介面
        FA526系統(tǒng)中的主要選項(xiàng)有以下幾種:
        (CPE) ARM system type
        默認(rèn)值選中CPE開發(fā)板來支持Faraday CPE(Common Platform Environment)。
        [*] Support FA526 processor
        設(shè)置FA526系列處理器選項(xiàng)來支持FA526 CPU.
        (FIE8100) Platform environment
        選擇平臺(tái)設(shè)定:A320,F(xiàn)IE8100, FIE7000
        (44000000) System clock
        FIE8100的默認(rèn)值是44MHz。開發(fā)人員必須根據(jù)實(shí)際的電路板設(shè)定來做調(diào)整。
        (22118400) UART clock
        FIE8100的UART時(shí)鐘是22.184MHz開發(fā)人員可根據(jù)實(shí)際的電路板設(shè)定來設(shè)置UART時(shí)鐘頻率。
        Making內(nèi)核
        如果是第一次make Linux內(nèi)核,你可以清除所有目標(biāo)文件,并重新創(chuàng)建從屬文件(dependency)。如果要修改內(nèi)核的配置,則需要調(diào)用“make dep”。操作步驟如下:
        # make clean
        # make dep
        FA526-Linux 提供了內(nèi)核腳本文件(shell-script) “mkbootp.sh”, 這可以使Make內(nèi)核更容易。
        # ./mkbootp.sh
        此操作可創(chuàng)建名為bootpImage的最終內(nèi)核映像文件(kernel image)和名為vmlinux 的內(nèi)核ELF文件。以下操作是修改mkbootp.sh的一個(gè)例子:
        1 使用定制的ram-disk: 為你的特殊規(guī)格的ramdisk修改“make bootpImage INITRD=<your ramdisk>”??尚薷摹癉efault RAM disk size”來滿足ramdisk的大小(見圖7). 可在“Block devices”配置界面里通過“make xconfig”來設(shè)置。
        2 復(fù)制輸出映像到特定目錄: 在mkbootp.sh檔案上修改這一行“cp <source> <target>”以符合你的需求。
        Mkbootp.sh的內(nèi)容是:
        “make bootpimage INITRD =/usr/src/arm-linux/images/ramdisk.gz”
        “cp arch/arm/boot/bootpImage /tftpboot/mbootpImage”
        建立ARMBOOT
        FA526-Linux使用ARMBOOT來裝載操作系統(tǒng)。
        配置ARMBOOT
        FA526的ARMBOOT使用一個(gè)名為“faraday.h”配置文件來配置各種不同的硬件環(huán)境。此文件被放在 /usr/src/arm-linux/armboot-1.1.0/faraday.h。其可修改的內(nèi)容和值包括(通常不需要改動(dòng)):
        修改系統(tǒng)時(shí)鐘。對于MediaCreative!平臺(tái),它的默認(rèn)值是44MHz.
        修改UART時(shí)鐘。對于MediaCreative!平臺(tái),應(yīng)是22.1184MHz.
        修改Flash塊號(hào)。對于MediaCreative!平臺(tái),F(xiàn)lash的塊號(hào)是1。
        Marking Armboot
        一旦你已經(jīng)修改了MAC和IP,就可以通過以下的命令來建立ARMBOOT:
        # cd /usr/src/arm-linux/armboot-1.1.0
        # make
        系統(tǒng)會(huì)在目錄里自動(dòng)生成"armboot.bin"文件。你應(yīng)該根據(jù)這個(gè)指令將armboot燒入到FIE8100的Flash器件里,并且編寫特定鏡像文件armboot.bin至Flash地址: 0x80400000.

        FA526-Linux操作系統(tǒng)裝載工具(OS Loader)-ARMBOOT
        作為Linux業(yè)界里最著名的OS Loader,ARMBOOT可以從終端協(xié)議(如:Kermit)來裝載鏡像文件和啟動(dòng)Linux內(nèi)核.它也可以提供Flash的使用方法和以太網(wǎng)TFTP的傳輸功能。


        圖8  設(shè)置tftp 服務(wù)器

        運(yùn)行ARMBOOT
        FA526-Linux軟件包提供的ARMBOOT代碼可執(zhí)行以下任務(wù):
        Flash的編程
        通過UART或以太網(wǎng)傳輸數(shù)據(jù)至PC
        裝載或分配Linux內(nèi)核
        可從閃存(Flash)里或通過ICE來運(yùn)行ARMBOOT
        經(jīng)由ICE運(yùn)行ARMBOOT
        可通過以下步驟:
        1. 通過JTAG ICE連接FA526目標(biāo)器和PC.
        2. 打開AXD調(diào)試器,然后裝載armboot.bin到內(nèi)存地址為0x0.
        3. 設(shè)置指針到0x0,然后運(yùn)行。
        ARMBOOT 環(huán)境變量
        ARMBOOT維持著一批用于各種功能的環(huán)境變量??赏ㄟ^以下命令來顯示它們:
        CPE> printenv
        可通過命令“setenv name value”來設(shè)置環(huán)境變量,這里的“name”是環(huán)境變量名,“value”是你想設(shè)定的值。具體變量見表4。
        表4  環(huán)境變量的描述

        ARMBOOT命令之參考
        在表5里,是ARMBOOT里最常用的幾個(gè)命令。也可在ARMBOOT的終端下鍵入"help"來顯示這些命令。

        表5  ARMBOOT 命令集

        通過ARMBOOT啟動(dòng)FA526-Linux
        在開發(fā)階段的許多部分里,開發(fā)人員必須要做前期規(guī)劃來修改或下載代碼直到得到想要的結(jié)果。在這樣的情況下,需要armboot來下載和運(yùn)行代碼。具體步驟如下:
        1.在Linux 主機(jī)上設(shè)置tftp服務(wù)器,并設(shè)置 /etc/xinetd.d/tftp. 如圖8所示。
        2. 在此狀態(tài)下使用Linux making shell (mkbootp.sh)編譯代碼,并生成Linux代碼至目錄 /tftpboot. 要運(yùn)行Linux代碼, 需按以下步驟執(zhí)行:
        * 重啟 FIE8100 開發(fā)板(MediaCreative!).
        * 選擇 "90) GO ARMBOOT".
        * 確認(rèn)Linux-Host和FIE8100的IP地址是正確的, (printenv), 如圖9所示.
        * 輸入命令:tftp 0x2000000 mbootpImage, 以下載代碼,如圖10所示.
        * 通過命令“go 0x2000000“啟動(dòng)Linux,將出現(xiàn)Linux 啟動(dòng)的信息,如圖11所示。
        Linux的使用:
        在完成以上的操作后,armboot就燒入在MediaCreative!開發(fā)板上的Flash里了。要通過armboot來運(yùn)行Linux操作系統(tǒng)對FIE8100平臺(tái)進(jìn)行開發(fā)驗(yàn)證,可執(zhí)行以下操作:
        * 開啟MediaCreative!開發(fā)板,運(yùn)行“MPEG4 Burnin",會(huì)出現(xiàn)Linux運(yùn)行選項(xiàng),如圖12所示:
        * 鍵入“空格”鍵,進(jìn)入Linux操作系統(tǒng),如圖13所示。


        圖9 armboot的環(huán)境設(shè)置

        圖10  從armboot下載Linux代碼

        圖11 Linux 啟動(dòng)信息

        圖12 Linux 啟動(dòng)選項(xiàng)界面

        圖13 Linux 操作環(huán)境


        結(jié)語

        我們利用智原科技所提供的FIE8100的開發(fā)板上移植了Linux 2.4.19的操作系統(tǒng)。智原科技的ARM CPU在開發(fā)上與ARM的開發(fā)工具兼容,使移植的過程十分順利。FIE8100的外設(shè)又很完整,不管是UART口或是乙太網(wǎng)口都能利用。我們還會(huì)利用這個(gè)開發(fā)板實(shí)現(xiàn)MPEG4編解碼,并將編碼后的壓縮檔存在SD卡上,再將SD卡上的壓縮檔解碼播放到LCD屏?!?/P>



        評論


        相關(guān)推薦

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

        關(guān)閉