超级碰在线视频免费,日韩一本草久,影音先锋成人AV女优资源网,男人扒开女人下面狂躁动态图片

網(wǎng)站首頁

HOME

關(guān)于我們

ABOUT US

產(chǎn)品展示

PRODUCT

新聞中心

NEWS

成功案例

CASE

下載中心

DOWNLOAD

人才招聘

RECRUIT

在線留言

MESSAGE

聯(lián)系我們

CONTACT US

    技術(shù)文章
    聯(lián)系我們
    西安航普電子有限責(zé)任公司
    電話:029-81870107
    郵箱:hangpudianzi@163.com
    網(wǎng)址:www.1858123.com
    公司地址:西安市電子四路西京三號2號樓17層
     
     
    技術(shù)文章
    龍芯3A平臺Vxworks移植的研究和實(shí)現(xiàn)
    更新時(shí)間:2017-09-07 13:16:07    點(diǎn)擊:1647次
    龍芯3A平臺Vxworks移植的研究和實(shí)現(xiàn)
    王 雷,樊曉椏,王黨輝
    (西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,陜西西安710129)
    摘 要:龍芯3A處理器具有高性能低功耗的優(yōu)點(diǎn),在高性能計(jì)算、個(gè)人桌面應(yīng)用、工業(yè)控制、高性能嵌入式等領(lǐng)域
    都有廣闊的應(yīng)用前景.目前龍芯系列平臺大都是基于Linux系統(tǒng),但在工業(yè)控制、高性能嵌入式等領(lǐng)域,高實(shí)時(shí)性
    和高可靠性的VxWorks才是比較理想的選擇.在分析了VxWorks移植的主要內(nèi)容基礎(chǔ)上,詳細(xì)研究了龍芯3A的
    VxWorks移植方法.針對具體工業(yè)應(yīng)用,設(shè)計(jì)了一種基于龍芯3A的工控平臺,并實(shí)現(xiàn)了對該平臺的VxWorks移
    植.經(jīng)過在龍芯3A開發(fā)板上的驗(yàn)證是可行的.
    關(guān)鍵詞:龍芯3A;VxWorks系統(tǒng);板級支持包BSP;系統(tǒng)移植
    中圖分類號:TP316     文獻(xiàn)標(biāo)識碼:A     文章編號:1000-7180(2012)02-0086-05
    Research and Implement of VxWorks Porting Based on
    Loongson3A Hardware Platform
    WANG Lei,FAN Xiao-ya,WANG Dang-hui
    (School of Computer Science,Northwestern Polytechnical University,Xi′an 710129,China)
    Abstract:Loongson3Aprocessor has the advantages of high performance and low power consumption,which has
    broad prospects in high performance computing,personal desktop applications,industrial control,and high
    performance embedded fields.At present,Loongson series platform is mostly based on Linux.But in industrial
    control and high performance embedded fields,VxWorks is the ideal choice,which is high real time and high
    reliability.Based on the analysis of the key contents of VxWorks porting,this paper researched the VxWorks
    porting approach of Loongson3A.According to the specific industrial application,designed a kind of Loongson3A
    industrial control hardware platform,and implemented VxWorks porting on this platform.It is feasible by verified
    on Loongson3Adevelopment board.
    Key words:Loongson3A;VxWorks;board support packet BSP;system porting
    1 引言
    龍芯系列處理器是中國科學(xué)院計(jì)算所自主開發(fā)
    的國產(chǎn)處理器系列,龍芯3A是其最新一代的64位
    多核處理器.龍芯3A 基于RISC架構(gòu),兼容MIPS
    指令,原生4核設(shè)計(jì),采用65nm工藝,晶體管數(shù)目
    4.25億個(gè),最高工作主頻1GHz,單顆龍芯3A的最
    大功耗為15W[1].龍芯3A 在包括服務(wù)器、高性能
    計(jì)算、個(gè)人桌面應(yīng)用、工業(yè)控制、數(shù)字信號處理、高端
    嵌入式應(yīng)用等產(chǎn)品中都具有廣闊的市場應(yīng)用前景.
    現(xiàn)有的龍芯平臺大都基于Linux操作系統(tǒng),但
    是在工業(yè)控制、高性能嵌入式等領(lǐng)域,對實(shí)時(shí)性、定
    制性的要求很高,因此VxWorks系統(tǒng)才是比較理
    想的選擇.
    本文主要分析了VxWorks移植的主要內(nèi)容,
    研究了龍芯3A的VxWorks移植方法,實(shí)現(xiàn)了一種
    用于工業(yè)控制領(lǐng)域的龍芯3A 平臺的設(shè)計(jì),并對其
    進(jìn)行了VxWorks移植.
     第2期王雷,等:龍芯3A平臺Vxworks移植的研究和實(shí)現(xiàn)
    2 VxWorks移植分析
    2.1 VxWorks移植的主要內(nèi)容
    VxWorks主要由三大部分組成:板級支持包
    BSP、微內(nèi)核Wind及輸入輸出系統(tǒng),如圖1所示.板
    級支持包BSP在硬件與微內(nèi)核Wind之間提供了統(tǒng)
    一的接口,包括硬件初始化、中斷處理、時(shí)鐘管理、內(nèi)
    存地址映射、實(shí)時(shí)內(nèi)核載入等.將VxWorks移植到
    龍芯3A平臺上,主要就是完成龍芯3A平臺的板級
    支持包BSP的開發(fā).
    圖1 VxWorks結(jié)構(gòu)組成[2]
    開發(fā)BSP 一般有兩種方式:一是使用Wind
    River官方支持或者第三方支持的BSP;二是建立
    自己的BSP以支持特定硬件.對于龍芯3A來說,由
    于這方面的支持度較少,加上可能某些硬件設(shè)備比
    較特殊,因此通常需要自己建立龍芯3A 專用的
    BSP.
    通常情況下BSP開發(fā)的流程是,先實(shí)現(xiàn)一個(gè)最
    小化的Vxworks內(nèi)核,向其中添加定時(shí)器、串口設(shè)
    備、中斷控制器等基本驅(qū)動程序,使得Vxworks系
    統(tǒng)基本可用,然后在此基礎(chǔ)上添加其他設(shè)備,最終滿
    足目標(biāo)需求.本文進(jìn)行龍芯3A 平臺的BSP開發(fā)也
    是基于該流程.
    2.2 板級支持包BSP的組成
    通常情況下,BSP的組成文件主要包含在以下
    四個(gè)目錄里面[2].
    (1)InstallDir\target\config\all
    該目錄下的文件包括bootConfig.c、bootInit.
    c、usrConfig.c、configAll.h等.這些文件主要是定
    義了所有VxWorks 的默認(rèn)公共配置以及
    BootROM 的初始化代碼.這些文件作為VxWorks
    體系結(jié)構(gòu)產(chǎn)品的一部分而給出,是所有BSP的公共
    部分,一般無需修改.
    (2)InstallDir\target\config\comps\VxWorks
    該目錄下的文件是VxWorks事實(shí)內(nèi)核的基本
    組建描述文件(CDF文件).一般也無需修改.
    (3)InstallDir\target\config\comps\src
    該目錄下的文件是與內(nèi)核基本組件相關(guān)的配置
    文件.
    (4)InstallDir\target\config\bspname
    該目錄下主要包括了Makefile、config.h、romInit.
    s、sysALib.s、sysLib.c、sysSerial.c、bspname.
    h等文件.這些文件是與具體系統(tǒng)或者硬件相
    關(guān)的BSP文件,主要是目標(biāo)板上的外設(shè)的驅(qū)動文
    件、以及設(shè)備和VxWorks系統(tǒng)接口文件.本文移植
    工作的重點(diǎn)就是該目錄.
    其中,config.h文件包含了具體CPU板的所有
    包含文件和定義,主要包括BSP版本ID信息、緩存
    和MMU配置、RAM 和ROM 的地址和大小、默認(rèn)
    引導(dǎo)行參數(shù)、網(wǎng)絡(luò)設(shè)備和中斷向量、外部總線地址映
    射等;romInit.s包含了用于初始化的匯編語言源代
    碼;sysALib.s 包含了VxWorks映像的入口點(diǎn)_
    sysInit;sysSerial.c包含了所有串口設(shè)備驅(qū)動器的
    設(shè)置和初始化.Makefile文件用于編譯創(chuàng)建映像文
    件.VxWorks使用GNU make工具來重新編譯和
    連接模塊,Makefile包含了整個(gè)BSP編譯、鏈接、生
    成二進(jìn)制文件的過程.bspname.h主要是具體硬件
    平臺的參數(shù)配置頭文件,文件名稱可以自定義.該文
    件包括具體硬件平臺所有硬件的參數(shù),如CPU 寄
    存器、系統(tǒng)中斷號、端口地址、接口配置等.
    2.3 VxWorks映像分類
    開發(fā)完成的BSP經(jīng)過編譯鏈接,可以生成的
    VxWorks映像有兩類:一種是可加載的VxWorks
    映像;一種是可引導(dǎo)的VxWorks映像.前者需要固
    化在Flash中的BootROM 加載到RAM 中運(yùn)行,一
    般在調(diào)試階段通過串口或者網(wǎng)絡(luò)下載到目標(biāo)機(jī)中運(yùn)
    行.后者是BootROM 和VxWorks融合在一起的映
    像,通常是調(diào)試開發(fā)完成后的最終產(chǎn)品.
    3 龍芯3A平臺的VxWorks移植
    3.1 龍芯3A平臺設(shè)計(jì)
    本文所涉及的龍芯3A 平臺用于工業(yè)控制領(lǐng)
    域,主要功能是分析采集到的數(shù)據(jù),并根據(jù)分析結(jié)果
    對外發(fā)出控制命令,同時(shí)將采集到的數(shù)據(jù)和處理結(jié)
    果實(shí)時(shí)備份.該平臺主要硬件由龍芯3A 處理器、
    87
    微電子學(xué)與計(jì)算機(jī)2012年
    DDR2內(nèi)存、BootROM、Flash盤、FPGA組成,如圖
    2所示.通電后,BootROM 初始化并啟動整個(gè)系統(tǒng);
    龍芯3A 通過自帶的UART口接收外部傳感器采
    集的數(shù)據(jù),對接收到的數(shù)據(jù)進(jìn)行分析處理,并通過另
    外的UART發(fā)出控制命令;Flash盤通過FPGA與
    龍芯3A的PCI總線連接,保存采集到原始數(shù)據(jù)和
    處理后的數(shù)據(jù).其中FPGA 主要完成時(shí)序轉(zhuǎn)換、讀
    寫控制等功能.
    圖2 龍芯3A平臺結(jié)構(gòu)
    3.2 建立龍芯3A平臺的BSP工程
    實(shí)現(xiàn)龍芯3A平臺的BSP開發(fā),首先需要新建
    一個(gè)BSP工程.首先打開Tornado,新建一個(gè)工程
    Loongson3A.由于沒有現(xiàn)成可用的BSP,可以根據(jù)
    用戶的硬件配置選擇一個(gè)近似的BSP 模板,如
    rbtx4938_mips64等等,然后在此基礎(chǔ)上添加需要
    的語句和文件,刪除無用的語句和文件,最終形成自
    己的BSP工程.
    3.3 龍芯3A平臺BootROM 設(shè)計(jì)
    在龍芯3A 平臺上電之初,由于RAM 未初始
    化處于不確定狀態(tài),系統(tǒng)初始化引導(dǎo)程序只能存放
    在非易失性的介質(zhì),例如Flash芯片中,構(gòu)成啟動
    ROM.
    對于龍芯3A 平臺來說,使用較多的初始化引
    導(dǎo)程序有兩種.一種是龍芯系列專用工具PMON,
    一種是VxWorks的開發(fā)工具Tornado 自帶的
    BootROM.兩者各有優(yōu)缺點(diǎn),PMON 設(shè)計(jì)與調(diào)試較
    為復(fù)雜,但是功能比BootROM 強(qiáng)大;BootROM 簡
    單易用,但功能上不如PMON.由于Tornado自帶
    的BootROM 與VxWorks聯(lián)系緊密,而且可以制作
    可加載的VxWorks映像和可引導(dǎo)的VxWorks映
    像,同時(shí)本文的硬件環(huán)境較簡單,因此用它作為初始
    化引導(dǎo)程序.
    3.3.1 BootROM 硬件連接
    龍芯3A與BootROM 之間是通過LPC總線連
    接.LPC中的LPC Boot地址空間是龍芯3A系統(tǒng)啟
    動時(shí)處理器最先訪問的地址空間,其物理地址范圍
    0x1fc00000-0x1fd00000.對于龍芯3A來說,如果系
    統(tǒng)設(shè)置成從PCI地址空間啟動,則第一條指令的
    PCI物理地址必須是0x1fc00000,否則系統(tǒng)將從
    LPC總線的ROM 空間0地址處開始取指[1].
    龍芯3A的LPC啟動Flash支持4Mbit和8
    Mbit兩種規(guī)格,通過LPC總線上的L_8MBits信
    號進(jìn)行選擇.為了能夠存儲BootROM 及VxWorks
    映像,Flash芯片的型號選擇了SST49LF080A[3].
    SST49LF080A是專門用于存儲系統(tǒng)固件的LPC接
    口的閃存芯片,存儲空間大小為8Mbit(1Mbit×
    8).SST49LF080A符合1.0版LPC接口規(guī)范,支持
    兩種操作模式,一種是LPC模式(LPC),一種是并
    行編程模式(PP).LPC 模式通過LAD[3∶0]和
    LFRAME#進(jìn)行系統(tǒng)內(nèi)操作,PP模式通過A[10∶
    0]和DQ[7∶0]實(shí)現(xiàn)編程操作.本文中,通過將
    MODE信號設(shè)定為邏輯低,使用LPC模式實(shí)現(xiàn)系
    統(tǒng)正常啟動,如圖3所示.需要注意的是,作為啟動
    設(shè)備,ID[3∶0]必須為0000.
    圖3 龍芯3A與BootROM 連接方式
    3.3.2 加載VxWorks內(nèi)核
    為了能夠在龍芯3A 平臺上啟動VxWorks,需
    要自定義一些啟動信息.在BSP開發(fā)包的config.h
    文件中包含了DEFAULT_BOOT_LINE的定義,
    包括確定啟動裝置的參數(shù),主機(jī)和目標(biāo)機(jī)IP地址,
    要裝載的VxWorks映像的路徑和名稱等.
    龍芯3A集成了2個(gè)UART,在BSP開發(fā)的調(diào)
    試階段,可以使用串口下載VxWorks映像并啟動,
    修改為如下形式:
    #define DEFAULT_BOOT_LINE\
    “tsfs(0,0)host:VxWorks h=169.254.2.67e
    =169.254.2.68 u=Loongson3A pw=Loongson3Atn=
    target”
    其中啟動設(shè)備bootDev為tsfs,表示使用目標(biāo)
    機(jī)代理文件系統(tǒng)連接,利用Tornado的目標(biāo)服務(wù)器
    88
     第2期王雷,等:龍芯3A平臺Vxworks移植的研究和實(shí)現(xiàn)
    指定串口下載VxWorks映像.h和e分別表示主機(jī)
    IP和目標(biāo)機(jī)IP,u和pw分別表示用戶名和密碼.若
    龍芯3A 平臺上有網(wǎng)絡(luò)設(shè)備,還可以指定bootDev
    為網(wǎng)卡型號通過網(wǎng)絡(luò)方式下載.
    最后當(dāng)調(diào)試完成,形成最終產(chǎn)品時(shí),可以制作可
    引導(dǎo)的VxWorks映像,此時(shí)BootROM 與VxWorks
    映像融為一體,直接燒寫在Flash固件中即可啟動
    VxWorks,無需再通過串口、網(wǎng)絡(luò)等方式下載.
    3.4 龍芯3A平臺的BSP開發(fā)
    3.4.1 BSP開發(fā)與設(shè)置
    BSP中的config.h文件涵蓋了龍芯3A的所有
    包含文件和定義,需要首先對其修改.修改config.h
    文件如下:
    #define ROM_BASE_ADRS 0xbfc00000
    #define ROM_TEXT_ADRS 0xbfc00000
    #define ROM_SIZE 0x00100000
    #define RAM_HIGH_ADRS 0xbfd00000
    #define INCLUDE_SERIAL
    #define NUM_TTY 2
    #define CONSOLE_BAUD_RATE 115200
    其中,ROM_BASE _ADRS表示ROM 的基地
    址,龍芯3A 平臺BootROM 的起始物理地址是
    0x1fc00000,轉(zhuǎn)化為邏輯地址為0xbfc00000.ROM_
    TEXT_ADRS表示初始化啟動代碼存放在ROM
    中的起始地址,同樣為0xbfc00000.ROM_SIZE表
    示ROM 的大小,本文使用的SST49LF080A 芯片
    存儲空間大小為8Mbit,因此為0x00100000.RAM_
    HIGH_ADRS表示復(fù)制BootROM 到RAM 所使用
    的目標(biāo)地址,本文設(shè)定為0xbfd00000.RAM_LOW_
    ADRS表示RAM 中的VxWorks運(yùn)行的起始地址,
    可根據(jù)自己的內(nèi)存大小設(shè)置.NUM_TTY表示串口
    數(shù)量,本文中龍芯3A 平臺需要兩個(gè)使用UART
    口.CONSOLE_BAUD_RATE表示波特率.
    接著需要修改龍芯3A 平臺的頭文件Loongson3A.
    h,根據(jù)設(shè)計(jì)參數(shù),修改其中的寄存器配置定
    義、系統(tǒng)中斷號、端口地址、接口配置等.
    此外還要修改Makefile文件,如CPU 類型號,
    選擇編譯工具,附加編譯選項(xiàng)等:
    CPU=MIPS64
    TOOL=diab
    TARGET_DIR=Loongson3A
    注意要保證Makefile和config.h中ROM 和
    RAM 宏定義中地址一致,此外還要除去一些無關(guān)
    模塊的引用等.
    3.4.2 驅(qū)動程序開發(fā)與配置
    在將VxWorks移植到龍芯3A平臺的過程中,
    很重要的一步就是設(shè)備驅(qū)動程序開發(fā)和配置.對于
    普通通用設(shè)備,可以直接添加BSP提供的普通驅(qū)動
    程序,BSP工具包在target/src/drv目錄下提供了
    大量普通驅(qū)動程序的源代碼.在編譯階段,sysLib.c
    可從target/src/drv中復(fù)制這些普通程序.如果對
    于特殊非通用設(shè)備,必須創(chuàng)建一個(gè)BSP專用的驅(qū)動
    程序,存放在BSP專用目錄下.
    龍芯3A平臺的啟動過程中,需要對串口設(shè)備
    初始化.普通多模式串行驅(qū)動程序存放在target/
    src/drv/sio目錄下.此目錄中包括了很多常見的串
    口設(shè)備的驅(qū)動源文件,如i8250Sio.c(intel8250)和
    ns16550Sio.c(NS 16550)等等,同時(shí)還包含了templateSio.
    c模板文件.龍芯3A 中的UART串口設(shè)
    備兼容NS 16550,因此可以直接使用ns16550Sio.c
    作為串口驅(qū)動.如果需要添加特殊串口設(shè)備時(shí),需要
    先在模版templateSio.c上創(chuàng)建驅(qū)動程序,然后修改
    BSP的sysLib.c或sysSerial.c文件,以使它們包括
    所需的驅(qū)動程序.由于本文龍芯3A 平臺的所用硬
    件均為普通的常用設(shè)備,可同樣按照上述方式添加
    與配置.
    3.5 Flash文件系統(tǒng)的建立
    由于本文的龍芯3A 平臺使用了Flash盤作為
    數(shù)據(jù)存儲設(shè)備,出于使用壽命和簡化控制操作的考
    慮,為該Flash盤建立文件系統(tǒng).
    TrueFFS是M-Systems公司開發(fā)的一種Flash
    文件實(shí)現(xiàn)方式,它屏蔽了底層存儲介質(zhì)的差異,可以
    為各種Flash存儲設(shè)備提供統(tǒng)一的塊設(shè)備接口[4].
    TrueFFS與VxWorsk兼容,支持x86、PowerPC、
    MIPS等CPU 架構(gòu),并且具有可重用、線程安全的
    特點(diǎn),非常適合工業(yè)控制、嵌入式等領(lǐng)域的龍芯3A
    平臺使用.
    在硬件上,龍芯3A 平臺使用的Flash芯片是
    SST39LF160.SST39LF160是一種多功能Flash芯
    片,存儲空間大小為16Mbit(1Mbit×16).
    3.5.1 BSP相關(guān)配置
    要讓VxWorks 支持TrueFFS,必須在Vx-
    Works映像中添加相關(guān)配置和文件.
    首先要config.h中定義TrueFFS,修改config.
    h如下:
    #define INCLUDE_DOSFS
    #define INCLUDE_TFFS
    #define INCLUDE_TFFS_DOSFS
    89
    微電子學(xué)與計(jì)算機(jī)2012年
    #define INCLUDE_TFFS_SHOW
    龍芯3A 硬件平臺的BSP目錄下還需要包含
    sysTffs.c文件,將TrueFFS所有層連接在一起與
    VxcWorks綁定.修改sysTffs.c文件如下:
    #define INCLUDE_MTD_SST39VF160
    #define INCLUDE_TL_FTL
    #define FLASH_BASE_ADRS 0x0fd00000
    #define FLASH_SIZE 0x00200000
    其中,INCLUDE_MTD_SST39VF160代表了
    SST39VF160的MTD驅(qū)動,其他不相關(guān)的MID驅(qū)
    動頭文件都可以注釋掉.
    由于龍芯3A 平臺具備虛擬內(nèi)存管理功能,所
    以sysLib.c中的內(nèi)存管理單元MMU 需要添加
    Flash相關(guān)定義,否則可能會導(dǎo)致Flash訪問失敗.
    因此對于本文的龍芯3A 平臺來說,要在sysLib.c
    中的sysPhysMemDesc[]中添加上面Flash的基地
    址和大小等信息.
    接下來修改tffsConfig.c,在該文件開頭添加聲
    明:
    #ifdef INCLUDE_MTD_SST39VF160
    FLStatus SST39VF160 _ MTD _Identify
    (FLFlash vol)
    #endif
    并在MTDidentifyRoutinemtdTable[]中添加
    以下內(nèi)容:
    #ifdef INCLUDE_MTD_SST39VF160
    SST39VF160_MTD_Identify
    #endif
    最后在編譯時(shí),將SST39LF160相關(guān)MTD驅(qū)
    動添加到Makefile中去:
    MACH_EXTRA=SST39LF160_Mtd.o
    3.5.2 驅(qū)動程序編寫
    SST39LF160驅(qū)動程序主要是完成Flash的識
    別、寫入和擦除操作,對應(yīng)的函數(shù)聲明分別為:
    FlStatus SST39VF160 _ MTD _Identify
    (FLFlash vol);
    static FlStatus SST39VF160MTDErase
    (FLFlash vol,int blockNo,int blockToErase);
    static FlStatus SST39VF160MTDWrite
    (FLFlash vol,CardAddress address,const void
    FAR1buffer,int length,int modes);
    根據(jù)這些函數(shù)的聲明,編寫對應(yīng)的函數(shù),完成驅(qū)
    動程序并添加到工程中即可.
    3.6 開發(fā)板驗(yàn)證
    龍芯3A-RS780E[5]開發(fā)板是龍芯公司為龍芯
    3A量身定制的開發(fā)板.它集成了豐富的通用接口,
    方便用戶搭建基于龍芯3A 的硬件快速演示平臺;
    同時(shí)可以滿足用戶在開發(fā)板上進(jìn)行性能評估和軟件
    開發(fā)移植的需要.
    本文所研究的內(nèi)容在龍芯3A-RS780E開發(fā)板
    上進(jìn)行了驗(yàn)證.利用該開發(fā)板搭建了本文所設(shè)計(jì)的
    龍芯3A工控平臺,經(jīng)過移植VxWorks可以成功運(yùn)
    行,驗(yàn)證了本文移植方法的可行性.
    4 結(jié)束語
    針對不同的用途和需求,龍芯3A 的硬件平臺
    配置也各不相同,但VxWorks移植的方法是類似
    的.本文詳細(xì)研究了龍芯3A平臺下的VxWorks移
    植方法,并在龍芯3A開發(fā)板上驗(yàn)證了其可行性,一
    定程度上可以拓展龍芯系列在工業(yè)控制、高性能嵌
    入式等領(lǐng)域的應(yīng)用范圍。
    上一篇: 多屏觸控地面站
    下一篇: 基于ARM和VxWorks的CPCI工控平臺的設(shè)計(jì)
    ?
    版權(quán)所有 ? 西安航普電子有限責(zé)任公司 未經(jīng)許可

    嚴(yán)禁復(fù)制 陜ICP備08100257號 建站/推廣/維護(hù)/安全:西安利友科技