亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ICE仿真器和OpenOCD平臺(tái)的UBoot加載實(shí)現(xiàn)

        2016-12-19 11:41:30魏方正
        電子科技 2016年11期
        關(guān)鍵詞:仿真器開發(fā)板嵌入式

        魏方正,施 展

        (上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)

        ?

        基于ICE仿真器和OpenOCD平臺(tái)的UBoot加載實(shí)現(xiàn)

        魏方正,施 展

        (上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)

        嵌入式開發(fā)在各個(gè)階段對系統(tǒng)開發(fā)環(huán)境均有較高的要求,目前在嵌入式開發(fā)過程中趨向于開發(fā)周期短,開發(fā)效率高的模式。針對開發(fā)環(huán)境軟硬件搭建問題,文中在基于Linux操作系統(tǒng)的開發(fā)環(huán)境下,給出了一種加載UBoot的平臺(tái)構(gòu)建方案,并對方案中關(guān)鍵部分做了詳細(xì)介紹。通過此平臺(tái)實(shí)現(xiàn)了對UBoot進(jìn)行快速高效的加載。

        嵌入式開發(fā)平臺(tái);UBoot;加載

        目前嵌入式系統(tǒng)技術(shù)主要應(yīng)用在包括電子產(chǎn)品、交通管理、工業(yè)控制、機(jī)器人等多個(gè)領(lǐng)域。具有多功能、靈活性、安全性、低開發(fā)成本等優(yōu)點(diǎn)。

        本文基于Linux操作系統(tǒng)的開發(fā)環(huán)境下進(jìn)行的,全部操作均是在命令行下進(jìn)行,因此需要開發(fā)者對Linux系統(tǒng)的基本操作和工作原理有一定的了解。通過對UBoot的燒錄來了解嵌入式開發(fā)環(huán)境的建立和開發(fā)的過程,從而給出一個(gè)高效快速簡單的UBoot的燒錄模式。

        UBoot(Universal Bootloade,通用引導(dǎo)加載程序)是遵循GPL條款的開源軟件項(xiàng)目[1]。UBoot源碼基本均是Linux內(nèi)核源程序的簡化,其目錄框架、編譯形式都是從Linux演化而來的,支持NFS掛載,同時(shí)支持多種版本的Linux操作系統(tǒng)。UBoot本身就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段程序,其是開發(fā)板上電后運(yùn)行的第一段代碼,功能和PC機(jī)中的BIOS程序類似。通過這段程序可完成硬件設(shè)備的初始化,并建立內(nèi)存空間的映射關(guān)系,從而將系統(tǒng)的軟硬件環(huán)境設(shè)置成一個(gè)合適的工作狀態(tài),為加載操作系統(tǒng)內(nèi)核做好準(zhǔn)備[2]。嵌入式系統(tǒng)中UBoot所有的運(yùn)行方式主要有兩種:分別對應(yīng)于嵌入式系統(tǒng)產(chǎn)品階段和開發(fā)階段的運(yùn)行,也是嵌入式系統(tǒng)開發(fā)階段必要的輔助手段[1]。UBoot經(jīng)過編譯后會(huì)生成u-boot.bin、u-boot.ldr、u-boot.srec等格式的文件。在此要用到的是u-boot.ldr格式文件以及編譯產(chǎn)生的UBoot可執(zhí)行代碼。

        1 開發(fā)系統(tǒng)環(huán)境構(gòu)成概要

        由于目標(biāo)板的內(nèi)存資源有限,通常在開發(fā)過程中,首先在一臺(tái)計(jì)算機(jī)上進(jìn)行開發(fā)環(huán)境的搭建包括建立交叉編譯工具鏈,編譯和調(diào)試程序[3]。在主機(jī)上編譯生成所要求的可執(zhí)行程序和其他所需文件。調(diào)試時(shí)將主機(jī)通過并串口和網(wǎng)絡(luò)連接,借助通信協(xié)議將可執(zhí)行代碼下載到目標(biāo)板Flash的指定地址處。

        開發(fā)板是硬件環(huán)境中最主要的設(shè)備,這里采用SC58X系列開發(fā)板,其是一款基于ARM cortex處理器的開發(fā)板,具有超高集成度、低功耗的特點(diǎn),接口包括常用的以太網(wǎng)接口、高速USB接口包括USB OTG, USB HS, UART,此外還有移動(dòng)存儲(chǔ)SD卡槽、CAN和音頻選項(xiàng)接口。此開發(fā)板支持高速JTAG仿真器(ICE-1000/2000),便于開發(fā)、測試和調(diào)試高級應(yīng)用程序,這些硬件配置可幫助打造出靈活而精簡的系統(tǒng)設(shè)計(jì)。

        圖1 開發(fā)系統(tǒng)框圖

        2 OpenOCD功能解析與安裝配置

        OpenOCD是一種開源的調(diào)試源碼,支持當(dāng)前主流的處理器,尤其是對ARM的支持較多。OpenOCD能支持各種商用的JTAG硬件接口,支持并口JTAG調(diào)試和USB高速JTAG調(diào)試,其與GDB一起對源碼級遠(yuǎn)程調(diào)試,支持Telent命令行界面調(diào)試[4]。在調(diào)試過程中OpenOCD充當(dāng)調(diào)試的守護(hù)進(jìn)程始終保持運(yùn)行,起到監(jiān)測的作用。

        軟硬件結(jié)合的實(shí)現(xiàn)方式雖一定程度上增加硬件復(fù)雜度,但其功能強(qiáng)大分析結(jié)果也更為精確[5]。OpenOCD與ICE硬件調(diào)試器二者結(jié)合使用即能遠(yuǎn)程調(diào)試又能實(shí)現(xiàn)對處理器的仿真調(diào)試。將仿真器功能作用范圍擴(kuò)大。由此在保證實(shí)現(xiàn)調(diào)試功能正常的同時(shí)還最大程度地保護(hù)了處理器數(shù)據(jù)通路的獨(dú)立性,將對目標(biāo)板處理器芯片的損害幾率降到最低水平[6]。主機(jī)OpenOCD的安裝配置流程:

        (1)運(yùn)行源碼目錄下的bootstrap,命令如下:

        $ cd openocd ,$ ./bootstrap

        此目錄下將生成一些autotool文件和配置文件,以及jimtcl模塊;

        (2)配置并指定安裝路徑 :

        $./configure-prefix=/install/path-enable-ft2232_libftdi-enable-ice-1000-enable-maintainer-mode;

        (3)編譯安裝:$ make,$ make install;

        (4)啟動(dòng) OpenOCD。

        OpenOCD 需要針對不同的JTAG 工具和不同的目標(biāo)芯片配置一個(gè)配置文檔,在運(yùn)行 OpenOCD 時(shí)可用-參數(shù)來指定一個(gè)或多個(gè)配置文檔[7]。確保執(zhí)行路徑的準(zhǔn)確性。其啟動(dòng)操作命令如下:

        $sudo ./openocd -f ../tcl/interface

        -f ../tcl/target/adspsc58x.cfg

        此時(shí)終端命令行將打印出如下信息:

        Open On-Chip Debugger

        0.7.0-dev-00202-ge3fefb0-dirty(2013-02-27-14:33)

        ............

        Info:griffin.cpu:hardware has 3 breakpoints, 2 watchpoints

        OpenOCD作為守護(hù)進(jìn)程不斷接收來自調(diào)試器的實(shí)時(shí)狀態(tài)信息,并利用自身的錯(cuò)誤反饋機(jī)制,給出調(diào)試故障信息,方便快速定位錯(cuò)誤及時(shí)修改。

        3 ICE調(diào)試器的功能解析

        系統(tǒng)調(diào)試方法有很多種大致分為兩類:硬件調(diào)試和軟件調(diào)試[8]。例如:基于主機(jī)調(diào)試、代理調(diào)試、在線仿真器調(diào)試(ICE)等。本文采用最直接的硬件在線調(diào)試方式,其具有實(shí)時(shí)監(jiān)控能力,在應(yīng)用程序中加載、運(yùn)行、步進(jìn)、停止和設(shè)置斷點(diǎn),讀寫數(shù)據(jù)和程序內(nèi)存,讀寫內(nèi)核和外設(shè)寄存器。所有的調(diào)試方法本質(zhì)上均是利用主機(jī)來控制目標(biāo)板的芯片,在調(diào)試時(shí)主機(jī)和目標(biāo)板經(jīng)過特定的接口進(jìn)行通信,JTAG是最常使用的調(diào)試接口,通過JTAG接口可直接訪問處理器內(nèi)部結(jié)構(gòu)以及執(zhí)行相應(yīng)命令操作。

        通過ICE仿真器進(jìn)行在線實(shí)時(shí)仿真,不占用系統(tǒng)資源和CPU時(shí)間,仿真和實(shí)際運(yùn)行同步進(jìn)行。用戶可輕松修改寄存器、存儲(chǔ)器、設(shè)置觀察窗口、程序下載及實(shí)時(shí)調(diào)試。是進(jìn)行硬件開發(fā)、驅(qū)動(dòng)程序調(diào)試、應(yīng)用軟件開發(fā)的必備工具[9]。

        仿真器實(shí)際上起到了協(xié)議轉(zhuǎn)換的作用:調(diào)試器發(fā)出的調(diào)試命令和數(shù)據(jù)經(jīng)仿真器轉(zhuǎn)換為JTAG協(xié)議規(guī)定的格式后發(fā)送到目標(biāo)機(jī)上,以監(jiān)控目標(biāo)機(jī)的工作狀態(tài),并控制其運(yùn)行,而后從目標(biāo)機(jī)讀出的數(shù)據(jù)和狀態(tài)信息經(jīng)過仿真器轉(zhuǎn)換為調(diào)試器可識(shí)別的格式。仿真器上級通過串口或USB接口與開發(fā)主機(jī)連接,仿真器下級通過專用連接線與目標(biāo)板的JTAG口相接。

        4 平臺(tái)環(huán)境下UBoot的加載過程實(shí)現(xiàn)

        通過對UBoot的加載實(shí)現(xiàn)再次證明了此平臺(tái)的穩(wěn)定性和可行性。圖2為平臺(tái)環(huán)境下的實(shí)物連接圖。在保證OpenOCD正常工作的環(huán)境下,以下為具體的UBoot加載過程:

        (1)啟動(dòng)gdb

        $arm-none-eabi-gdb u-boot(確保路徑準(zhǔn)確性)

        (gdb) target remote :3333

        Remote debugging using :3333 0x200bfff0 in ?? ()

        (2)下載初始文件

        (gdb)load

        arch/arm/cpu/armv7/sc58x/init.elf

        (gdb) c

        Ctrl + C (這句命令的含義是暫停,中止)

        (gdb) load u-boot

        Loading section .text, size 0x2e59c lma 0x89200000

        ......

        (gdb) c

        以上操作成功后可打開串口終端minicom或者kermit來查看,此時(shí)看到minicom中出現(xiàn)打印信息。這些信息主要包括處理器,串并聯(lián)端口和網(wǎng)絡(luò)端口的狀態(tài)信息。此時(shí)UBoot并未加載到指定的Flash地址內(nèi),而是借助守護(hù)進(jìn)程和仿真器在開發(fā)板的內(nèi)存中成功啟動(dòng)了UBoot。

        在此使用網(wǎng)絡(luò)加載模式需將UBoot.ldr文件復(fù)制到/tftpboot/目錄中備用,以方便下載到目標(biāo)板上[10]。/tftpboot充當(dāng)服務(wù)器,在加載時(shí)通信協(xié)議向/tftpboot索要加載文件。

        在已啟動(dòng)的UBoot下使用UBoot命令設(shè)置文件下載地址,同時(shí)也可設(shè)置開發(fā)板IP地址和主機(jī)網(wǎng)卡IP地址,如下:

        #dhcp(動(dòng)態(tài)分配IP地址)

        #run update(此處將UBoot文件更新到Flash內(nèi))

        圖2 平臺(tái)實(shí)物圖

        圖3 UBoot加載成功信息圖

        此時(shí)UBoot的文件被成功加載到指定的Flash地址處如圖3所示。加載成功后能通過UBoot下的命令來設(shè)置開發(fā)板,并做一些物理資源分配。為后續(xù)系統(tǒng)的進(jìn)一步開發(fā)提供軟件環(huán)境。

        5 結(jié)束語

        通過對UBoot的加載實(shí)現(xiàn),給出了一種嵌入式平臺(tái)開發(fā)環(huán)境的整體框架。從嵌入式開發(fā)硬件和軟件兩個(gè)方面進(jìn)行了詳細(xì)介紹,為后續(xù)系統(tǒng)內(nèi)核級別開發(fā),包括網(wǎng)絡(luò)開發(fā)、驅(qū)動(dòng)開發(fā)以及上層應(yīng)用程序的開發(fā)提供了平臺(tái)。此開發(fā)環(huán)境穩(wěn)定可靠且周期短,適合企業(yè)級應(yīng)用。

        [1] 張晨曦,韓超,沈立,等.嵌入式系統(tǒng)教程[M].北京:清華大學(xué)出版社,2013.

        [2] 司浩樂.基于Windows CE的顯示控制手柄設(shè)計(jì)[D].西安:西安電子科技大學(xué),2008.

        [3] 張磊,溫陽東.基于ARM和Linux交叉開發(fā)環(huán)境的搭建[J].儀器儀表用戶,2009,16(3):65-67.

        [4] 段富剛,施展.基于Openocd的嵌入式軟件開發(fā)平臺(tái)的研究和設(shè)計(jì)[J].計(jì)算機(jī)測量與控制,2010,18(2):470-472,478.

        [5] 高瑛珂,王琪,李泉泉,等.一種基于JTAG接口的片上調(diào)試與性能分析方法[J].微電子學(xué)與計(jì)算機(jī),2012,29(7):68-71.

        [6] 肖鐵軍,史順波,沈建.基于JTAG的計(jì)算機(jī)硬件實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].數(shù)據(jù)通信,2013(2):24-28.

        [7] 黃子晨,李德華.基于Openocd和JTAG的嵌入式交叉開發(fā)環(huán)境[J].儀器儀表用戶,2012,19(1):73-75.

        [8] 李善平,劉文峰,王煥龍.Linux與嵌入式系統(tǒng)[M].2版.北京:清華大學(xué)出版社,2006.

        [9] 雷旭.嵌入式Linux操作系統(tǒng)的研究與開發(fā)[D].西安:長安大學(xué),2005.

        [10] 蘇艷蘋,姜凌.基于ARM9_2410EP的嵌入式Linux的研究和移植[J].數(shù)字技術(shù)與應(yīng)用,2010(2):24-25.

        Implementation of UBoot Loading Based on ICE Debugger and Openocd Platform

        WEI Fangzheng,SHI Zhan

        (School of Optical-Electrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai 200093, China)

        Embedded development has very high requirements at each stage of the system development environment. At present ,embedded development process tends to the mode of the short cycle and high efficiency. For the question of software and hardware building , this paper presents a platform construction scheme of loading UBoot,which is based on the development environment of Linux operating system.It gives a detailed introduction to the key part of the program .And it realizes the UBoot loading with a fast way and high efficiency under the platform.

        embedded development platform; UBoot; loading

        2016- 01- 16

        魏方正(1993-),男,研究研究生。研究方向:傳感器和精密測試技術(shù)。施展(1963-) ,女,博士,副教授。研究方向:傳感器和精密測試技術(shù)。

        10.16180/j.cnki.issn1007-7820.2016.11.027

        TP

        A

        猜你喜歡
        仿真器開發(fā)板嵌入式
        搭建基于Qt的嵌入式開發(fā)平臺(tái)
        Microchip最新推出兩款PIC32 Curiosity開發(fā)板
        淺析單片機(jī)開發(fā)板的設(shè)計(jì)與制作
        電子制作(2017年22期)2017-02-02 07:10:14
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        基于多線程的慣導(dǎo)邏輯仿真器設(shè)計(jì)
        Mouser為您呈上開發(fā)關(guān)鍵之STMicroelectronics Nucleo開發(fā)板
        Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
        Altera加入嵌入式視覺聯(lián)盟
        倍福 CX8091嵌入式控制器
        天文測量仿真器模擬星圖精度分析
        亚洲av资源网站手机在线| 96精品免费视频大全| 日韩精品成人无码AV片| 波多野结衣一区二区三区免费视频| 人妻露脸国语对白字幕| 蜜臀av一区二区三区| 99RE6在线观看国产精品| 久久午夜伦鲁鲁片免费| 日本岛国视频在线观看一区二区 | 性色av免费网站| 免费观看又色又爽又湿的视频| 日日噜噜噜夜夜爽爽狠狠视频| 熟女俱乐部五十路二区av| 亚洲AV无码资源在线观看 | 森中文字幕一区二区三区免费| 亚洲精品一区久久久久一品av | 少妇人妻综合久久中文字幕| 国产av无码专区亚洲av极速版| 香蕉人妻av久久久久天天| 亚洲一区sm无码| 一本色道久久综合中文字幕| 日韩激情av不卡在线| 成人性生交大全免费看| 免费毛儿一区二区十八岁| 熟女少妇精品一区二区| 欧洲熟妇乱xxxxx大屁股7| 亚洲综合久久一本久道| 伊人婷婷综合缴情亚洲五月| 国产主播一区二区三区蜜桃| 日本亚洲精品一区二区三| 国产成人无码精品久久久露脸| 手机看片福利一区二区三区| 亚洲精品无码高潮喷水在线 | 人人妻人人澡人人爽精品欧美| av天堂精品久久久久| 中文字幕一区二区三区在线视频 | 中文字幕亚洲人妻系列| 中文字幕乱码亚洲美女精品一区| 最新天堂一区二区三区| 国产一区二区三区精品免费av| 亚洲av无码一区二区三区乱子伦|