0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

標簽 > OR1200

OR1200

+關(guān)注 0人關(guān)注

or1200主要是GNU開發(fā)工具鏈的安裝,有了GNU工具鏈提供的工具,我們可以在Linux環(huán)境下將匯編、C代碼編譯成OR1200平臺的可執(zhí)行代碼,這就是交叉編譯的過程。

文章: 0
瀏覽: 182382
帖子: 0

OR1200簡介

  OR1200主要是GNU開發(fā)工具鏈的安裝,有了GNU工具鏈提供的工具,我們可以在Linux環(huán)境下將匯編、C代碼編譯成OR1200平臺的可執(zhí)行代碼,這就是交叉編譯的過程。有了OR1200的可執(zhí)行代碼,就能夠在OR1200模擬器OR1KSim中運行該可執(zhí)行代碼,觀察其是否如預期那樣執(zhí)行。

  在介紹GNU開發(fā)工具鏈之前簡單說明交叉編譯的概念,在嵌入式開發(fā)中,開發(fā)平臺與運行平臺往往是不同的,這是因為運行平臺上一般都資源有限,不能夠安裝編譯開發(fā)環(huán)境,因此需要在其他性能更好的平臺上安裝編譯環(huán)境,比如我們常在x86的平臺上開發(fā)OR1200、ARM的應用程序,但是x86與OR1200、ARM是不同的處理器體系結(jié)構(gòu),也就是處理器的指令集不同,那么就需要x86上的編譯器編譯得到能夠在OR1200、ARM架構(gòu)下執(zhí)行的目標代碼,這就是交叉編譯。圖2.1顯示x86平臺與OR1200平臺上“寄存器相與”指令對應不同的二進制編碼。

OR1200百科

  or1200開發(fā)環(huán)境的安裝

  主要是GNU開發(fā)工具鏈的安裝,有了GNU工具鏈提供的工具,我們可以在Linux環(huán)境下將匯編、C代碼編譯成OR1200平臺的可執(zhí)行代碼,這就是交叉編譯的過程。有了OR1200的可執(zhí)行代碼,就能夠在OR1200模擬器OR1KSim中運行該可執(zhí)行代碼,觀察其是否如預期那樣執(zhí)行。

  在介紹GNU開發(fā)工具鏈之前簡單說明交叉編譯的概念,在嵌入式開發(fā)中,開發(fā)平臺與運行平臺往往是不同的,這是因為運行平臺上一般都資源有限,不能夠安裝編譯開發(fā)環(huán)境,因此需要在其他性能更好的平臺上安裝編譯環(huán)境,比如我們常在x86的平臺上開發(fā)OR1200、ARM的應用程序,但是x86與OR1200、ARM是不同的處理器體系結(jié)構(gòu),也就是處理器的指令集不同,那么就需要x86上的編譯器編譯得到能夠在OR1200、ARM架構(gòu)下執(zhí)行的目標代碼,這就是交叉編譯。圖2.1顯示x86平臺與OR1200平臺上“寄存器相與”指令對應不同的二進制編碼。

  

  圖2.1 x86平臺與OR1200處理器“寄存器相與”指令的二進制編碼是不一樣的

  因此我們在x86上開發(fā)程序的時候就需要針對不同的目標平臺使用不同的編譯工具,從而得到可以在目標平臺上執(zhí)行的二進制代碼。在這方面GNU工具鏈是一個很好的選擇。GNU工具鏈 (GNU Toolchain) 是一組用于開發(fā)應用程序和操作系統(tǒng)的編程工具的集合,這些工具構(gòu)成了一個完整的系統(tǒng),最重要的是其支持多種目標平臺,其中就包括本書要介紹的OR1200。

  GNU工具鏈包括GCC、Glibc、GDB、GNU Binutils。

  1、GCC

  GCC(GNU Compiler Collection)主要的工具包括cpp、g++、gcc、gcov、gprof等。其中cpp是C預處理器,主要用于在編譯C、C++或Objective-C源代碼之前對它們進行預處理,由編譯器自動調(diào)用。g++和gcc可以認為分別是C++和C編譯器。

  2、Glibc

  Glibc(GNU libc)是GNU的C標準庫,Glibc是移植GNU工具鏈時一個不可或缺的部分。Glibc主要由兩部分組成,一部分是頭文件,另一部分是庫的二進制文件,包括動態(tài)和靜態(tài)兩個版本。有了Glibc就可以使用C語言開發(fā)程序。

  3、GDB

  GDB(GNU symbolic debugger)是一個功能很強大的調(diào)試工具,可以讓用戶調(diào)試一個程序,包括讓程序在希望的地方停下,此時,用戶可以查看變量,寄存器,內(nèi)存及堆棧,而且可以修改變量及內(nèi)存值。

  4、GNU Binutils

  GNU Binutils(Binary Utilities) 是一組二進制工具集,用來編譯、測試和分析軟件。其中主要的兩個工具是as和ld。as是GNU匯編器,通常也稱為GAS(GNU Assembler),ld是GNU鏈接器,as對GCC的輸出文件進行匯編產(chǎn)生目標文件,然后由ld鏈接目標文件、重定位數(shù)據(jù),從而產(chǎn)生可執(zhí)行文件。此外,GNUBinutils還包括其它一些工具,如下:

 ?。?)addr2line:用于將程序中的地址對應到文件名和相應的行號。給定一個地址和一個可執(zhí)行文件,addr2line使用可執(zhí)行文件中的調(diào)試信息來確定該地址所對應的文件和行號。

 ?。?)ar:用于建立、修改和提取檔案文件 (archives)。檔案文件經(jīng)常被用作庫文件,保存程序常用的函數(shù)過程。

 ?。?)c++filt:C++和Java中都有重載函數(shù)的特性,編譯器要區(qū)分重載函數(shù),就需要對函數(shù)標識符進行編碼轉(zhuǎn)換成一個匯編級別的標簽 (label),這個過程稱為名字改編 (name mangling) 或名字修飾 (name decoration)。而c++filt所執(zhí)行的就是這個過程的逆過程。

 ?。?)dlltool:用于創(chuàng)建Windows動態(tài)鏈接庫。

  (5)ld:是鏈接器,編譯程序最后是調(diào)用ld,把目標文件和歸檔文件鏈接在一起,重定位數(shù)據(jù)并鏈接符號引用。

 ?。?)gold:是一種比ld更快,但只針對ELF文件格式的鏈接器。

 ?。?)nm:用于列出二進制文件 (包括庫文件和可執(zhí)行文件) 中的符號,這些符號可以是函數(shù)、全局變量、靜態(tài)變量等等。

 ?。?)objcopy:用于將一種格式的目標文件復制成另外一種格式。

  (9)objdump:用于列出關(guān)于二進制文件的各種信息。

 ?。?0)ranlib:用于為檔案文件生成索引信息,這樣可以提高檔案文件的訪問速度。

  (11)readelf:類似于objdump,但是它只能處理ELF格式的文件,并且沒有使用GNU BFD庫。

 ?。?2)size:用于列出目標文件或者檔案文件各段的大小。

 ?。?3)strings:用于列出目標文件中的可打印字符串。

 ?。?4)strip:用于移除目標文件中的符號,以減少程序文件的大小,這對于嵌入式系統(tǒng)比較有用。

  GNU工具鏈可謂博大精深,功能全面,諸位讀者不要驚慌,本書不是一本介紹GNU工具鏈的書,只是使用到了其中一點工具(實際只有as、ld,因為測試代碼都是用匯編寫的),所以不懂GNU工具鏈沒有關(guān)系,筆者會在使用到其中工具的時候做一個簡單介紹,這就足夠了。

  針對目標平臺OR1200的GNU工具鏈,有三種安裝方法:

  方法一:下載源文件,在Linux環(huán)境下自行編譯

  方法二:下載編譯好的針對OR1200處理器的GNU工具鏈,可在Linux環(huán)境下安裝使用

  方法三:下載一個Ubuntu的虛擬機文件,里面安裝好了針對OR1200處理器的GNU工具鏈

  方法一筆者試過,容易出問題,而且比較耗時,當然對GNU工具鏈有著強烈興趣的朋友可以嘗試。方法二筆者沒用過。方法三簡單直接,速度快,不易出錯,而且基本都是Windows下的操作,適合新手,所以建議使用方法三,本書也只介紹方法三。

  在瀏覽器中輸入地址:ftp://openrisc.opencores.org/virtualbox-image/,F(xiàn)TP的用戶名和密碼都是openrisc,登錄后會出現(xiàn)如圖2.2所示界面。

  

  圖2.2 Ubuntu虛擬機鏡像下載

  下載最新的那個文件就可以了,筆者使用的是2011-12-15版。下載完成后解壓該文件,大約4GB左右。此時還需要下載VisualBox以打開該文件。VisualBox是一款開源的虛擬機軟件,本書使用的是4.1.22版。下載完成后安裝VisualBox,安裝完成后打開VisualBox,界面如圖2.3所示。

  

  圖2.3 VisualBox主界面

  點擊“新建”出現(xiàn)“新建虛擬機”向?qū)?,點擊“下一步”,出現(xiàn)如下界面:

  

  圖2.4 新建虛擬機設(shè)置一

  此處操作系統(tǒng)選擇Linux,版本選擇Ubuntu,點擊下一步,設(shè)置內(nèi)存大小,如圖2.5所示。

  

  圖2.5 新建虛擬機設(shè)置二

  內(nèi)存大小依據(jù)個人情況設(shè)置,本人設(shè)置的是512M,已經(jīng)夠用了,畢竟我們需要編譯的程序都是十分簡單的,點擊下一步,選擇“使用現(xiàn)有的虛擬硬盤”,然后選擇解壓后的虛擬機文件。

  

  圖2.6 新建虛擬機設(shè)置三

  點擊“下一步”,VisualBox會將用戶剛才的設(shè)置都列出來,確認無誤后,點擊“創(chuàng)建”,這樣虛擬機就創(chuàng)建好了。啟動虛擬機,顯示如圖2.7所示。

  

  圖2.7 Ubuntu虛擬機桌面

  雙擊左邊的“終端”圖標,就可以打開終端,在終端中輸入or32-elf-,然后按兩次Tab鍵,會列出虛擬機中已安裝的針對OR1200平臺的所有編譯工具,如圖2.8所示。

  

  圖2.8 Ubuntu中已安裝的編譯工具

  可見之前介紹過的GNU工具鏈中的GCC、as、ld、gdb等都包括在內(nèi)。這樣GNU工具鏈就安裝完成了。Ubuntu虛擬機提供的功能遠不止GNU工具鏈,還包括OR1K模擬器、用于硬件調(diào)試的OR_DEBUG_PROXY、OpenRISC平臺參考SoC設(shè)計ORPSoCv2,其中在本書的研究過程中需要使用到OR1K模擬器——OR1KSim,2.2.5節(jié)會介紹其使用方法。

  最后,因為宿主機是Windows平臺,而且在后面仿真時使用的ModelSim也是Windows平臺的,為了方便文件的傳遞,這里需要設(shè)置虛擬機與宿主機的文件共享。打開VisualBox中虛擬機的設(shè)置界面,選擇“共享文件夾”,如圖2.9所示。

  

  圖2.9 虛擬機與宿主機共享文件夾設(shè)置步驟一

  點擊界面右邊的添加文件夾按鈕,出現(xiàn)如圖2.10所示界面:

  

  圖2.10 虛擬機與宿主機共享文件夾設(shè)置步驟二

  在其中選擇共享文件夾的路徑,設(shè)置名稱,參考如上設(shè)置,然后啟動虛擬機,打開終端,輸入命令:

 ?。踦lain] view plain copysudo mount –t vboxsf UbuntuShareFolder /mnt/sharefolder

  該命令的作用是將共享文件夾掛載在/mnt/sharefolder目錄下,sudo表示以Root用戶身份執(zhí)行該命令,終端會提示輸入密碼,Ubuntu虛擬機默認Root用戶的密碼是openrisc。這樣就實現(xiàn)了虛擬機與宿主機的文件共享,對虛擬機而言共享文件放在/mnt/sharefolder路徑下,對宿主機而言共享文件放在圖2.10所示的E盤UbuntuShareFolder文件夾下。

查看詳情

相關(guān)標簽

相關(guān)話題

換一批
  • IOT
    IOT
    +關(guān)注
    IoT是Internet of Things的縮寫,字面翻譯是“物體組成的因特網(wǎng)”,準確的翻譯應該為“物聯(lián)網(wǎng)”。物聯(lián)網(wǎng)(Internet of Things)又稱傳感網(wǎng),簡要講就是互聯(lián)網(wǎng)從人向物的延伸。
  • 海思
    海思
    +關(guān)注
  • STM32F103C8T6
    STM32F103C8T6
    +關(guān)注
    STM32F103C8T6是一款集成電路,芯體尺寸為32位,程序存儲器容量是64KB,需要電壓2V~3.6V,工作溫度為-40°C ~ 85°C。
  • 數(shù)字隔離
    數(shù)字隔離
    +關(guān)注
    數(shù)字隔離技術(shù)常用于工業(yè)網(wǎng)絡(luò)環(huán)境的現(xiàn)場總線、軍用電子系統(tǒng)和航空航天電子設(shè)備中,尤其是一些應用環(huán)境比較惡劣的場合。數(shù)字隔離電路主要用于數(shù)字信號和開關(guān)量信號的傳輸。另一個重要原因是保護器件(或人)免受高電壓的危害。本文詳細介紹了數(shù)字隔離器工作原理及特點,選型及應用,各類數(shù)字隔離器件性能比較等內(nèi)容。
  • 硬件工程師
    硬件工程師
    +關(guān)注
    硬件工程師Hardware Engineer職位 要求熟悉計算機市場行情;制定計算機組裝計劃;能夠選購組裝需要的硬件設(shè)備,并能合理配置、安裝計算機和外圍設(shè)備;安裝和配置計算機軟件系統(tǒng);保養(yǎng)硬件和外圍設(shè)備;清晰描述出現(xiàn)的計算機軟硬件故障。
  • wifi模塊
    wifi模塊
    +關(guān)注
    Wi-Fi模塊又名串口Wi-Fi模塊,屬于物聯(lián)網(wǎng)傳輸層,功能是將串口或TTL電平轉(zhuǎn)為符合Wi-Fi無線網(wǎng)絡(luò)通信標準的嵌入式模塊,內(nèi)置無線網(wǎng)絡(luò)協(xié)議IEEE802.11b.g.n協(xié)議棧以及TCP/IP協(xié)議棧。傳統(tǒng)的硬件設(shè)備嵌入Wi-Fi模塊可以直接利用Wi-Fi聯(lián)入互聯(lián)網(wǎng),是實現(xiàn)無線智能家居、M2M等物聯(lián)網(wǎng)應用的重要組成部分。
  • 74ls74
    74ls74
    +關(guān)注
    74LS74是雙D觸發(fā)器。功能多,可作雙穩(wěn)態(tài)、寄存器、移位寄存器、振蕩器、單穩(wěn)態(tài)、分頻計數(shù)器等功能。本章詳細介紹了74ls112的功能及原理,74ls74引腳圖及功能表,74ls112的應用等內(nèi)容。
  • MPU6050
    MPU6050
    +關(guān)注
    MPU-6000(6050)為全球首例整合性6軸運動處理組件,相較于多組件方案,免除了組合陀螺儀與加速器時間軸之差的問題,減少了大量的封裝空間。
  • UHD
    UHD
    +關(guān)注
    UHD是”超高清“的意思UHD的應用在電視機技術(shù)上最為普遍,目前已有不少廠商推出了UHD超高清電視。
  • Protues
    Protues
    +關(guān)注
    Proteus軟件是英國Lab Center Electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風標電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。
  • STC12C5A60S2
    STC12C5A60S2
    +關(guān)注
    在眾多的51系列單片機中,要算國內(nèi)STC 公司的1T增強系列更具有競爭力,因他不但和8051指令、管腳完全兼容,而且其片內(nèi)的具有大容量程序存儲器且是FLASH工藝的,如STC12C5A60S2單片機內(nèi)部就自帶高達60K FLASHROM,這種工藝的存儲器用戶可以用電的方式瞬間擦除、改寫。
  • 循跡小車
    循跡小車
    +關(guān)注
    做單片機的工程師相比都堆循跡小車有所認識,它是自動引導機器人系統(tǒng)的基本應用,那么今天小編就給大家介紹下自動自動循跡小車的原理,智能循跡小車的應用,智能循跡小車程序,循跡小車用途等知識吧!
  • K60
    K60
    +關(guān)注
  • 光立方
    光立方
    +關(guān)注
    光立方是由四千多棵光藝高科技“發(fā)光樹”組成的,在2009年10月1日天安門廣場舉行的國慶聯(lián)歡晚會上面世。這是新中國成立六十周年國慶晚會最具創(chuàng)意的三大法寶之首。
  • LM2596
    LM2596
    +關(guān)注
    LM2596是降壓型電源管理單片集成電路的開關(guān)電壓調(diào)節(jié)器,能夠輸出3A的驅(qū)動電流,同時具有很好的線性和負載調(diào)節(jié)特性。固定輸出版本有3.3V、5V、12V,可調(diào)版本可以輸出小于37V的各種電壓。
  • 光模塊
    光模塊
    +關(guān)注
    光模塊(optical module)由光電子器件、功能電路和光接口等組成,光電子器件包括發(fā)射和接收兩部分。簡單的說,光模塊的作用就是光電轉(zhuǎn)換,發(fā)送端把電信號轉(zhuǎn)換成光信號,通過光纖傳送后,接收端再把光信號轉(zhuǎn)換成電信號。
  • STM32單片機
    STM32單片機
    +關(guān)注
    STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應用專門設(shè)計的ARM Cortex-M3內(nèi)核
  • 步進驅(qū)動器
    步進驅(qū)動器
    +關(guān)注
    步進驅(qū)動器是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機構(gòu)。當步進驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進電機按設(shè)定的方向轉(zhuǎn)動一個固定的角度(稱為“步距角”),它的旋轉(zhuǎn)是以固定的角度一步一步運行的??梢酝ㄟ^控制脈沖個數(shù)來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速度,從而達到調(diào)速和定位的目的。
  • Nexperia
    Nexperia
    +關(guān)注
    Nexperia是大批量生產(chǎn)基本半導體的領(lǐng)先專家,這些半導體是世界上每個電子設(shè)計都需要的組件。該公司廣泛的產(chǎn)品組合包括二極管、雙極晶體管、ESD 保護器件、MOSFET、GaN FET 以及模擬和邏輯IC。
  • CD4046
    CD4046
    +關(guān)注
    cD4046是通用的CMOS鎖相環(huán)集成電路,其特點是電源電壓范圍寬(為3V-18V),輸入阻抗高(約100MΩ),動態(tài)功耗小,在中心頻率f0為10kHz下功耗僅為600μW,屬微功耗器件。本章主要介紹內(nèi)容有,CD4046的功能 cd4046鎖相環(huán)電路,CD4046無線發(fā)射,cd4046運用,cd4046鎖相環(huán)電路圖。
  • COMSOL
    COMSOL
    +關(guān)注
    COMSOL集團是全球多物理場建模解決方案的提倡者與領(lǐng)導者。憑借創(chuàng)新的團隊、協(xié)作的文化、前沿的技術(shù)、出色的產(chǎn)品,這家高科技工程軟件公司正飛速發(fā)展,并有望成為行業(yè)領(lǐng)袖。其旗艦產(chǎn)品COMSOL Multiphysics 使工程師和科學家們可以通過模擬,賦予設(shè)計理念以生命。
  • 加速度傳感器
    加速度傳感器
    +關(guān)注
    加速度傳感器是一種能夠測量加速度的傳感器。通常由質(zhì)量塊、阻尼器、彈性元件、敏感元件和適調(diào)電路等部分組成。
  • 聯(lián)網(wǎng)技術(shù)
    聯(lián)網(wǎng)技術(shù)
    +關(guān)注
  • 服務機器人
    服務機器人
    +關(guān)注
    服務機器人是機器人家族中的一個年輕成員,到目前為止尚沒有一個嚴格的定義。不同國家對服務機器人的認識不同。
  • 四軸飛行器
    四軸飛行器
    +關(guān)注
    四軸飛行器,又稱四旋翼飛行器、四旋翼直升機,簡稱四軸、四旋翼。這四軸飛行器(Quadrotor)是一種多旋翼飛行器。四軸飛行器的四個螺旋槳都是電機直連的簡單機構(gòu),十字形的布局允許飛行器通過改變電機轉(zhuǎn)速獲得旋轉(zhuǎn)機身的力,從而調(diào)整自身姿態(tài)。具體的技術(shù)細節(jié)在“基本運動原理”中講述。
  • 基站測試
    基站測試
    +關(guān)注
    802.11ac與11基站測試(base station tests) 在基站設(shè)備安裝完畢后,對基站設(shè)備電氣性能所進行的測量。n的區(qū)別,802.11n無線網(wǎng)卡驅(qū)動,802.11n怎么安裝。
  • TMS320F28335
    TMS320F28335
    +關(guān)注
    TMS320F28335是一款TI高性能TMS320C28x系列32位浮點DSP處理器
  • 靜電防護
    靜電防護
    +關(guān)注
    為防止靜電積累所引起的人身電擊、火災和爆炸、電子器件失效和損壞,以及對生產(chǎn)的不良影響而采取的防范措施。其防范原則主要是抑制靜電的產(chǎn)生,加速靜電泄漏,進行靜電中和等。
  • OBD
    OBD
    +關(guān)注
    OBD是英文On-Board Diagnostic的縮寫,中文翻譯為“車載診斷系統(tǒng)”。這個系統(tǒng)隨時監(jiān)控發(fā)動機的運行狀況和尾氣后處理系統(tǒng)的工作狀態(tài),一旦發(fā)現(xiàn)有可能引起排放超標的情況,會馬上發(fā)出警示。
  • SDK
    SDK
    +關(guān)注
      SDK一般指軟件開發(fā)工具包,軟件開發(fā)工具包一般都是一些軟件工程師為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應用軟件時的開發(fā)工具的集合。軟件開發(fā)工具廣義上指輔助開發(fā)某一類軟件的相關(guān)文檔、范例和工具的集合。

關(guān)注此標簽的用戶(0人)

編輯推薦廠商產(chǎn)品技術(shù)軟件/工具OS/語言教程專題