香蕉99国内自产自拍视频,日韩人妻诱惑香蕉视频,37310老头玩的很兴奋,国产在线观看精品日韩

網站首頁

HOME

關于我們

ABOUT US

產品展示

PRODUCT

新聞中心

NEWS

成功案例

CASE

下載中心

DOWNLOAD

人才招聘

RECRUIT

在線留言

MESSAGE

聯系我們

CONTACT US

    技術文章
    聯系我們
    西安航普電子有限責任公司
    電話:029-81870107
    郵箱:hangpudianzi@163.com
    網址:www.cnluding.com
    公司地址:西安市電子四路西京三號2號樓17層
     
     
    技術文章
    龍芯3A平臺Vxworks移植的研究和實現
    更新時間:2017-09-07 13:16:07    點擊:1738次
    龍芯3A平臺Vxworks移植的研究和實現
    王 雷,樊曉椏,王黨輝
    (西北工業大學計算機學院,陜西西安710129)
    摘 要:龍芯3A處理器具有高性能低功耗的優點,在高性能計算、個人桌面應用、工業控制、高性能嵌入式等領域
    都有廣闊的應用前景.目前龍芯系列平臺大都是基于Linux系統,但在工業控制、高性能嵌入式等領域,高實時性
    和高可靠性的VxWorks才是比較理想的選擇.在分析了VxWorks移植的主要內容基礎上,詳細研究了龍芯3A的
    VxWorks移植方法.針對具體工業應用,設計了一種基于龍芯3A的工控平臺,并實現了對該平臺的VxWorks移
    植.經過在龍芯3A開發板上的驗證是可行的.
    關鍵詞:龍芯3A;VxWorks系統;板級支持包BSP;系統移植
    中圖分類號:TP316     文獻標識碼: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 引言
    龍芯系列處理器是中國科學院計算所自主開發
    的國產處理器系列,龍芯3A是其最新一代的64位
    多核處理器.龍芯3A 基于RISC架構,兼容MIPS
    指令,原生4核設計,采用65nm工藝,晶體管數目
    4.25億個,最高工作主頻1GHz,單顆龍芯3A的最
    大功耗為15W[1].龍芯3A 在包括服務器、高性能
    計算、個人桌面應用、工業控制、數字信號處理、高端
    嵌入式應用等產品中都具有廣闊的市場應用前景.
    現有的龍芯平臺大都基于Linux操作系統,但
    是在工業控制、高性能嵌入式等領域,對實時性、定
    制性的要求很高,因此VxWorks系統才是比較理
    想的選擇.
    本文主要分析了VxWorks移植的主要內容,
    研究了龍芯3A的VxWorks移植方法,實現了一種
    用于工業控制領域的龍芯3A 平臺的設計,并對其
    進行了VxWorks移植.
     第2期王雷,等:龍芯3A平臺Vxworks移植的研究和實現
    2 VxWorks移植分析
    2.1 VxWorks移植的主要內容
    VxWorks主要由三大部分組成:板級支持包
    BSP、微內核Wind及輸入輸出系統,如圖1所示.板
    級支持包BSP在硬件與微內核Wind之間提供了統
    一的接口,包括硬件初始化、中斷處理、時鐘管理、內
    存地址映射、實時內核載入等.將VxWorks移植到
    龍芯3A平臺上,主要就是完成龍芯3A平臺的板級
    支持包BSP的開發.
    圖1 VxWorks結構組成[2]
    開發BSP 一般有兩種方式:一是使用Wind
    River官方支持或者第三方支持的BSP;二是建立
    自己的BSP以支持特定硬件.對于龍芯3A來說,由
    于這方面的支持度較少,加上可能某些硬件設備比
    較特殊,因此通常需要自己建立龍芯3A 專用的
    BSP.
    通常情況下BSP開發的流程是,先實現一個最
    小化的Vxworks內核,向其中添加定時器、串口設
    備、中斷控制器等基本驅動程序,使得Vxworks系
    統基本可用,然后在此基礎上添加其他設備,最終滿
    足目標需求.本文進行龍芯3A 平臺的BSP開發也
    是基于該流程.
    2.2 板級支持包BSP的組成
    通常情況下,BSP的組成文件主要包含在以下
    四個目錄里面[2].
    (1)InstallDir\target\config\all
    該目錄下的文件包括bootConfig.c、bootInit.
    c、usrConfig.c、configAll.h等.這些文件主要是定
    義了所有VxWorks 的默認公共配置以及
    BootROM 的初始化代碼.這些文件作為VxWorks
    體系結構產品的一部分而給出,是所有BSP的公共
    部分,一般無需修改.
    (2)InstallDir\target\config\comps\VxWorks
    該目錄下的文件是VxWorks事實內核的基本
    組建描述文件(CDF文件).一般也無需修改.
    (3)InstallDir\target\config\comps\src
    該目錄下的文件是與內核基本組件相關的配置
    文件.
    (4)InstallDir\target\config\bspname
    該目錄下主要包括了Makefile、config.h、romInit.
    s、sysALib.s、sysLib.c、sysSerial.c、bspname.
    h等文件.這些文件是與具體系統或者硬件相
    關的BSP文件,主要是目標板上的外設的驅動文
    件、以及設備和VxWorks系統接口文件.本文移植
    工作的重點就是該目錄.
    其中,config.h文件包含了具體CPU板的所有
    包含文件和定義,主要包括BSP版本ID信息、緩存
    和MMU配置、RAM 和ROM 的地址和大小、默認
    引導行參數、網絡設備和中斷向量、外部總線地址映
    射等;romInit.s包含了用于初始化的匯編語言源代
    碼;sysALib.s 包含了VxWorks映像的入口點_
    sysInit;sysSerial.c包含了所有串口設備驅動器的
    設置和初始化.Makefile文件用于編譯創建映像文
    件.VxWorks使用GNU make工具來重新編譯和
    連接模塊,Makefile包含了整個BSP編譯、鏈接、生
    成二進制文件的過程.bspname.h主要是具體硬件
    平臺的參數配置頭文件,文件名稱可以自定義.該文
    件包括具體硬件平臺所有硬件的參數,如CPU 寄
    存器、系統中斷號、端口地址、接口配置等.
    2.3 VxWorks映像分類
    開發完成的BSP經過編譯鏈接,可以生成的
    VxWorks映像有兩類:一種是可加載的VxWorks
    映像;一種是可引導的VxWorks映像.前者需要固
    化在Flash中的BootROM 加載到RAM 中運行,一
    般在調試階段通過串口或者網絡下載到目標機中運
    行.后者是BootROM 和VxWorks融合在一起的映
    像,通常是調試開發完成后的最終產品.
    3 龍芯3A平臺的VxWorks移植
    3.1 龍芯3A平臺設計
    本文所涉及的龍芯3A 平臺用于工業控制領
    域,主要功能是分析采集到的數據,并根據分析結果
    對外發出控制命令,同時將采集到的數據和處理結
    果實時備份.該平臺主要硬件由龍芯3A 處理器、
    87
    微電子學與計算機2012年
    DDR2內存、BootROM、Flash盤、FPGA組成,如圖
    2所示.通電后,BootROM 初始化并啟動整個系統;
    龍芯3A 通過自帶的UART口接收外部傳感器采
    集的數據,對接收到的數據進行分析處理,并通過另
    外的UART發出控制命令;Flash盤通過FPGA與
    龍芯3A的PCI總線連接,保存采集到原始數據和
    處理后的數據.其中FPGA 主要完成時序轉換、讀
    寫控制等功能.
    圖2 龍芯3A平臺結構
    3.2 建立龍芯3A平臺的BSP工程
    實現龍芯3A平臺的BSP開發,首先需要新建
    一個BSP工程.首先打開Tornado,新建一個工程
    Loongson3A.由于沒有現成可用的BSP,可以根據
    用戶的硬件配置選擇一個近似的BSP 模板,如
    rbtx4938_mips64等等,然后在此基礎上添加需要
    的語句和文件,刪除無用的語句和文件,最終形成自
    己的BSP工程.
    3.3 龍芯3A平臺BootROM 設計
    在龍芯3A 平臺上電之初,由于RAM 未初始
    化處于不確定狀態,系統初始化引導程序只能存放
    在非易失性的介質,例如Flash芯片中,構成啟動
    ROM.
    對于龍芯3A 平臺來說,使用較多的初始化引
    導程序有兩種.一種是龍芯系列專用工具PMON,
    一種是VxWorks的開發工具Tornado 自帶的
    BootROM.兩者各有優缺點,PMON 設計與調試較
    為復雜,但是功能比BootROM 強大;BootROM 簡
    單易用,但功能上不如PMON.由于Tornado自帶
    的BootROM 與VxWorks聯系緊密,而且可以制作
    可加載的VxWorks映像和可引導的VxWorks映
    像,同時本文的硬件環境較簡單,因此用它作為初始
    化引導程序.
    3.3.1 BootROM 硬件連接
    龍芯3A與BootROM 之間是通過LPC總線連
    接.LPC中的LPC Boot地址空間是龍芯3A系統啟
    動時處理器最先訪問的地址空間,其物理地址范圍
    0x1fc00000-0x1fd00000.對于龍芯3A來說,如果系
    統設置成從PCI地址空間啟動,則第一條指令的
    PCI物理地址必須是0x1fc00000,否則系統將從
    LPC總線的ROM 空間0地址處開始取指[1].
    龍芯3A的LPC啟動Flash支持4Mbit和8
    Mbit兩種規格,通過LPC總線上的L_8MBits信
    號進行選擇.為了能夠存儲BootROM 及VxWorks
    映像,Flash芯片的型號選擇了SST49LF080A[3].
    SST49LF080A是專門用于存儲系統固件的LPC接
    口的閃存芯片,存儲空間大小為8Mbit(1Mbit×
    8).SST49LF080A符合1.0版LPC接口規范,支持
    兩種操作模式,一種是LPC模式(LPC),一種是并
    行編程模式(PP).LPC 模式通過LAD[3∶0]和
    LFRAME#進行系統內操作,PP模式通過A[10∶
    0]和DQ[7∶0]實現編程操作.本文中,通過將
    MODE信號設定為邏輯低,使用LPC模式實現系
    統正常啟動,如圖3所示.需要注意的是,作為啟動
    設備,ID[3∶0]必須為0000.
    圖3 龍芯3A與BootROM 連接方式
    3.3.2 加載VxWorks內核
    為了能夠在龍芯3A 平臺上啟動VxWorks,需
    要自定義一些啟動信息.在BSP開發包的config.h
    文件中包含了DEFAULT_BOOT_LINE的定義,
    包括確定啟動裝置的參數,主機和目標機IP地址,
    要裝載的VxWorks映像的路徑和名稱等.
    龍芯3A集成了2個UART,在BSP開發的調
    試階段,可以使用串口下載VxWorks映像并啟動,
    修改為如下形式:
    #define DEFAULT_BOOT_LINE\
    “tsfs(0,0)host:VxWorks h=169.254.2.67e
    =169.254.2.68 u=Loongson3A pw=Loongson3Atn=
    target”
    其中啟動設備bootDev為tsfs,表示使用目標
    機代理文件系統連接,利用Tornado的目標服務器
    88
     第2期王雷,等:龍芯3A平臺Vxworks移植的研究和實現
    指定串口下載VxWorks映像.h和e分別表示主機
    IP和目標機IP,u和pw分別表示用戶名和密碼.若
    龍芯3A 平臺上有網絡設備,還可以指定bootDev
    為網卡型號通過網絡方式下載.
    最后當調試完成,形成最終產品時,可以制作可
    引導的VxWorks映像,此時BootROM 與VxWorks
    映像融為一體,直接燒寫在Flash固件中即可啟動
    VxWorks,無需再通過串口、網絡等方式下載.
    3.4 龍芯3A平臺的BSP開發
    3.4.1 BSP開發與設置
    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,轉化為邏輯地址為0xbfc00000.ROM_
    TEXT_ADRS表示初始化啟動代碼存放在ROM
    中的起始地址,同樣為0xbfc00000.ROM_SIZE表
    示ROM 的大小,本文使用的SST49LF080A 芯片
    存儲空間大小為8Mbit,因此為0x00100000.RAM_
    HIGH_ADRS表示復制BootROM 到RAM 所使用
    的目標地址,本文設定為0xbfd00000.RAM_LOW_
    ADRS表示RAM 中的VxWorks運行的起始地址,
    可根據自己的內存大小設置.NUM_TTY表示串口
    數量,本文中龍芯3A 平臺需要兩個使用UART
    口.CONSOLE_BAUD_RATE表示波特率.
    接著需要修改龍芯3A 平臺的頭文件Loongson3A.
    h,根據設計參數,修改其中的寄存器配置定
    義、系統中斷號、端口地址、接口配置等.
    此外還要修改Makefile文件,如CPU 類型號,
    選擇編譯工具,附加編譯選項等:
    CPU=MIPS64
    TOOL=diab
    TARGET_DIR=Loongson3A
    注意要保證Makefile和config.h中ROM 和
    RAM 宏定義中地址一致,此外還要除去一些無關
    模塊的引用等.
    3.4.2 驅動程序開發與配置
    在將VxWorks移植到龍芯3A平臺的過程中,
    很重要的一步就是設備驅動程序開發和配置.對于
    普通通用設備,可以直接添加BSP提供的普通驅動
    程序,BSP工具包在target/src/drv目錄下提供了
    大量普通驅動程序的源代碼.在編譯階段,sysLib.c
    可從target/src/drv中復制這些普通程序.如果對
    于特殊非通用設備,必須創建一個BSP專用的驅動
    程序,存放在BSP專用目錄下.
    龍芯3A平臺的啟動過程中,需要對串口設備
    初始化.普通多模式串行驅動程序存放在target/
    src/drv/sio目錄下.此目錄中包括了很多常見的串
    口設備的驅動源文件,如i8250Sio.c(intel8250)和
    ns16550Sio.c(NS 16550)等等,同時還包含了templateSio.
    c模板文件.龍芯3A 中的UART串口設
    備兼容NS 16550,因此可以直接使用ns16550Sio.c
    作為串口驅動.如果需要添加特殊串口設備時,需要
    先在模版templateSio.c上創建驅動程序,然后修改
    BSP的sysLib.c或sysSerial.c文件,以使它們包括
    所需的驅動程序.由于本文龍芯3A 平臺的所用硬
    件均為普通的常用設備,可同樣按照上述方式添加
    與配置.
    3.5 Flash文件系統的建立
    由于本文的龍芯3A 平臺使用了Flash盤作為
    數據存儲設備,出于使用壽命和簡化控制操作的考
    慮,為該Flash盤建立文件系統.
    TrueFFS是M-Systems公司開發的一種Flash
    文件實現方式,它屏蔽了底層存儲介質的差異,可以
    為各種Flash存儲設備提供統一的塊設備接口[4].
    TrueFFS與VxWorsk兼容,支持x86、PowerPC、
    MIPS等CPU 架構,并且具有可重用、線程安全的
    特點,非常適合工業控制、嵌入式等領域的龍芯3A
    平臺使用.
    在硬件上,龍芯3A 平臺使用的Flash芯片是
    SST39LF160.SST39LF160是一種多功能Flash芯
    片,存儲空間大小為16Mbit(1Mbit×16).
    3.5.1 BSP相關配置
    要讓VxWorks 支持TrueFFS,必須在Vx-
    Works映像中添加相關配置和文件.
    首先要config.h中定義TrueFFS,修改config.
    h如下:
    #define INCLUDE_DOSFS
    #define INCLUDE_TFFS
    #define INCLUDE_TFFS_DOSFS
    89
    微電子學與計算機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驅動,其他不相關的MID驅
    動頭文件都可以注釋掉.
    由于龍芯3A 平臺具備虛擬內存管理功能,所
    以sysLib.c中的內存管理單元MMU 需要添加
    Flash相關定義,否則可能會導致Flash訪問失敗.
    因此對于本文的龍芯3A 平臺來說,要在sysLib.c
    中的sysPhysMemDesc[]中添加上面Flash的基地
    址和大小等信息.
    接下來修改tffsConfig.c,在該文件開頭添加聲
    明:
    #ifdef INCLUDE_MTD_SST39VF160
    FLStatus SST39VF160 _ MTD _Identify
    (FLFlash vol)
    #endif
    并在MTDidentifyRoutinemtdTable[]中添加
    以下內容:
    #ifdef INCLUDE_MTD_SST39VF160
    SST39VF160_MTD_Identify
    #endif
    最后在編譯時,將SST39LF160相關MTD驅
    動添加到Makefile中去:
    MACH_EXTRA=SST39LF160_Mtd.o
    3.5.2 驅動程序編寫
    SST39LF160驅動程序主要是完成Flash的識
    別、寫入和擦除操作,對應的函數聲明分別為:
    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);
    根據這些函數的聲明,編寫對應的函數,完成驅
    動程序并添加到工程中即可.
    3.6 開發板驗證
    龍芯3A-RS780E[5]開發板是龍芯公司為龍芯
    3A量身定制的開發板.它集成了豐富的通用接口,
    方便用戶搭建基于龍芯3A 的硬件快速演示平臺;
    同時可以滿足用戶在開發板上進行性能評估和軟件
    開發移植的需要.
    本文所研究的內容在龍芯3A-RS780E開發板
    上進行了驗證.利用該開發板搭建了本文所設計的
    龍芯3A工控平臺,經過移植VxWorks可以成功運
    行,驗證了本文移植方法的可行性.
    4 結束語
    針對不同的用途和需求,龍芯3A 的硬件平臺
    配置也各不相同,但VxWorks移植的方法是類似
    的.本文詳細研究了龍芯3A平臺下的VxWorks移
    植方法,并在龍芯3A開發板上驗證了其可行性,一
    定程度上可以拓展龍芯系列在工業控制、高性能嵌
    入式等領域的應用范圍。
    上一篇: 多屏觸控地面站
    下一篇: 基于ARM和VxWorks的CPCI工控平臺的設計
    ?
    版權所有 ? 西安航普電子有限責任公司 未經許可

    嚴禁復制 陜ICP備08100257號 建站/推廣/維護/安全:西安利友科技