• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      面向機(jī)器人應(yīng)用的嵌入式Linux移植與應(yīng)用

      2018-10-31 10:49:24方超
      關(guān)鍵詞:移植機(jī)器人

      方超

      摘要:本文介紹了機(jī)器人技術(shù)嵌入式系統(tǒng)中Linux操作系統(tǒng)的篩選、剪裁、移植和應(yīng)用,結(jié)合機(jī)器人技術(shù)對系統(tǒng)實時性的要求對Linux系統(tǒng)實時性優(yōu)化做了探討。

      關(guān)鍵詞:機(jī)器人;Linux內(nèi)核;移植

      中圖分類號:TP242 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2018)06-0124-01

      1 引言

      機(jī)器人技術(shù)是一種集成了力學(xué)、電子學(xué)、計算機(jī)技術(shù)、傳感技術(shù)、控制理論和人工智能等許多學(xué)科于一體的先進(jìn)技術(shù)。機(jī)器人技術(shù)的發(fā)展一直與嵌入式系統(tǒng)的發(fā)展密切相關(guān),機(jī)器人技術(shù)的研究是嵌入式技術(shù)的應(yīng)用,嵌入式技術(shù)的發(fā)展必將提升機(jī)器人的智能水平。20世紀(jì)70年代中期以后,由于智能控制理論的發(fā)展和微處理器的出現(xiàn),機(jī)器人逐漸成為研究熱點(diǎn)并取得了較大的發(fā)展。目前,嵌入式系統(tǒng)被廣泛用于機(jī)器人控制系統(tǒng)中。

      2 linux內(nèi)核的移植

      從操作系統(tǒng)的角度來看,完整的嵌入式linux系統(tǒng)一般包括Bootloader、linux內(nèi)核、根文件系統(tǒng)和用戶程序四個部分。由于硬件資源有限,無法將Bootloader和內(nèi)核文件直接存放到存儲系統(tǒng)中,需要針對具體應(yīng)用的功能需求裁剪Bootloader和linux內(nèi)核,并選擇相應(yīng)的C語言庫文件,針對嵌入式芯片的指令集重新編譯內(nèi)核文件,使其具備完整的操作系統(tǒng)功能[1]。

      2.1 交叉編譯環(huán)境的搭建

      在完備系統(tǒng)構(gòu)建之前,嵌入式linux系統(tǒng)無法正常運(yùn)行,而且裁剪過的系統(tǒng)一般不能運(yùn)行大型的調(diào)試工具。因此,需要在另外一個平臺上搭建一套linux系統(tǒng)開發(fā)環(huán)境,也叫做交叉編譯環(huán)境。linux系統(tǒng)中常用的交叉編譯工具是GNU工具鏈,包括binutils、gcc和glibc。構(gòu)建交叉編譯工具的方法主要有:(1)單獨(dú)編譯和安裝交叉編譯工具鏈所需要的源代碼和庫文件,最終生成適用于所用處理器的交叉編譯工具;(2)通過Crosstool-ng腳本工具來實現(xiàn)一次編譯,生成交叉編譯工具。第一種方法相對困難,對于不想了解其內(nèi)部機(jī)理的用戶來說可以采用第二種方法。

      2.2 Bootloader移植

      Bootloader是一段引導(dǎo)內(nèi)核和文件系統(tǒng)啟動的程序,在操作系統(tǒng)上電或者復(fù)位之后,初始化硬件設(shè)備,建立內(nèi)存空間的映射圖,為調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。具體包括配置板載時鐘系統(tǒng)、初始化內(nèi)存、裝載內(nèi)核程序、跳轉(zhuǎn)到內(nèi)核執(zhí)行,最后調(diào)用Linux操作系統(tǒng)和文件系統(tǒng)。

      Bootloader的代碼一般存放在FLASH、EEPROM等固態(tài)存儲器中,其主要的啟動模式有兩種,啟動加載模式和下載模式。其中下載模式是開發(fā)人員常用的模式,即建立宿主PC機(jī)和板載系統(tǒng)之間的連接,把linux內(nèi)核以及根文件系統(tǒng)下載到存儲器中,再對系統(tǒng)進(jìn)行測試。

      嵌入式系統(tǒng)中常用的引導(dǎo)程序有U-boot和Redboot等。U-boot代碼結(jié)構(gòu)與linux類似,因此也是最常用的嵌入式linux系統(tǒng)的引導(dǎo)程序。U-boot的運(yùn)行主要分為Stage1和Stage2兩個部分。Stage1使用匯編語言編寫,主要包含依賴于cpu體系結(jié)構(gòu)的代碼,而stage2則通常用C語言來實現(xiàn)相對復(fù)雜的功能,具有更好的可讀性和移植性。要對U-boot進(jìn)行移植,通常要在U-boot通用代碼中添加跟CPU、外設(shè)等硬件相關(guān)的配置文件,再對代碼進(jìn)行配置編譯[2]。

      2.3 Linux內(nèi)核的裁剪與移植

      內(nèi)核是Linux系統(tǒng)的核心程序,內(nèi)核的移植過程主要包括配置和編譯,主要步驟包括:(1)修改內(nèi)核源碼根目錄下的makefile文件,增加內(nèi)核對ARM系列處理器的支持,并指定交叉編譯器;(2)將與目標(biāo)板相關(guān)的_deconfig文件拷貝到根目錄下.config文件中;(3)配置內(nèi)核,常用的命令有四種,make xconfig、make oldconfig、make config和make menuconfig,一般使用make menuconfig來生成開發(fā)配置界面;(4)編譯內(nèi)核,對配置過程中選擇的功能性驅(qū)動進(jìn)行編譯,生成可執(zhí)行的zImage文件,即壓縮的內(nèi)核鏡像。

      2.4 建立根文件系統(tǒng)

      文件系統(tǒng)是存儲設(shè)備上的文件的組織和目錄,每個操作系統(tǒng)都至少有一個文件系統(tǒng)。嵌入式linux根文件系統(tǒng)可以通過busybox軟件來完成,具體的步驟包括:(1)安裝busybox軟件;(2)建立設(shè)備節(jié)點(diǎn)console和null,即/dev/console和/dev/null兩個基本的設(shè)備文件;(3)建立根文件系統(tǒng)中其他目錄,/mnt,/proc,/sys,/lib等;(4)建立配置文件/etc/inittab,/etc/init.d/rcs和/etc/fstab;(5)安裝庫函數(shù),將交叉編譯鏈接庫中的所有.so庫文件拷貝到根文件系統(tǒng)的lib目錄中。

      3 基于Linux內(nèi)核的實時性

      Linux已經(jīng)被證明是適用于多種應(yīng)用的非常穩(wěn)定和優(yōu)秀的內(nèi)核。但是,由于GNU/ Linux最初設(shè)計為類Unix操作系統(tǒng),因此其內(nèi)核不能保證實時性能。調(diào)度程序延遲問題,即中斷發(fā)生和負(fù)責(zé)服務(wù)的線程運(yùn)行之間的延遲在緊急情況下可達(dá)到幾十毫秒。這個問題主要是運(yùn)行內(nèi)核代碼時線程無法搶占,以及內(nèi)核中存在長時間不可中斷的關(guān)鍵代碼段,解決調(diào)度程序延遲問題主要有兩種不同的方法[3]。

      前一種解決方案最初由RTLinux在1996年提出并開發(fā),其中包括在硬件和Linux之間插入一個稱為微內(nèi)核的高效代碼層。微內(nèi)核負(fù)責(zé)所有的實時功能,包括中斷、調(diào)度和高分辨率定時。2002年,在ADEOS項目框架中提出了另一個稱為納米內(nèi)核的代碼層。ADEOS提供了一個硬件抽象層,允許實時內(nèi)核和通用內(nèi)核共存。該層的作用是將硬件中斷傳遞給架構(gòu)中更高層的操作系統(tǒng)內(nèi)核。ADEOS系統(tǒng)不實現(xiàn)實時操作系統(tǒng),但提供了以最高優(yōu)先級將中斷傳遞給實時操作系統(tǒng)的機(jī)制。一旦實時任務(wù)完成,相同的中斷可能會傳遞給非實時操作系統(tǒng)。解決調(diào)度器延遲問題的另一種解決方案是1997年由KURT Linux項目提出的,這種方法包括提供一組內(nèi)核補(bǔ)丁,以便在標(biāo)準(zhǔn)Linux的結(jié)構(gòu)中直接實現(xiàn)Posix 1003.1d實時擴(kuò)展(高分辨率定時器,可搶占內(nèi)核,改進(jìn)的任務(wù)調(diào)度器等)。類似的補(bǔ)丁,即所謂的搶占和低延遲補(bǔ)丁集合在一個補(bǔ)丁中,并可作為從Linux發(fā)行版2.5.4-pre6開始的標(biāo)準(zhǔn)內(nèi)核配置選項(CONFIG_PREEMPT)基于為內(nèi)核調(diào)度程序創(chuàng)建機(jī)會的想法,該調(diào)度程序更經(jīng)常地運(yùn)行,從而最小化事件發(fā)生和調(diào)度程序運(yùn)行之間的時間。特別是,搶占補(bǔ)丁修改了自旋鎖宏和中斷返回碼,如果可以搶占當(dāng)前進(jìn)程并重新調(diào)度請求未決,則系統(tǒng)調(diào)用調(diào)度器。

      4 結(jié)語

      以機(jī)器人的應(yīng)用為背景,在嵌入式系統(tǒng)中引入linux操作系統(tǒng)來完成復(fù)雜任務(wù),本文詳細(xì)介紹了嵌入式linux系統(tǒng)的裁剪和移植詳細(xì)步驟,并結(jié)合機(jī)器人應(yīng)用對實時性的要求探討了對嵌入式linux系統(tǒng)實時性的優(yōu)化方法。為機(jī)器人的嵌入式應(yīng)用提供良好的參考資料。

      參考文獻(xiàn)

      [1]王學(xué)龍.嵌入式Linux系統(tǒng)設(shè)計與應(yīng)用[M].清華大學(xué)出版,2001.

      [2]程春雷.ARM平臺下Linux移植中BootLoader的原理和技術(shù)[J].中國電力教育,2007,(s1):25-27.

      [3]李曉寧,李曉峰.基于嵌入式Linux操作系統(tǒng)的研究[J].長春師范大學(xué)學(xué)報, 2010,(2):48-49.

      Abstract:This paper introduces the selection, cutting, transplantation and application of the Linux operating system in the embedded system of robot technology, and discusses the real-time performance optimization of the Linux system based on the requirements of the robot technology to the real-time performance of the system.

      Key words:robot; Linux kernel; transplant

      猜你喜歡
      移植機(jī)器人
      機(jī)器人,讓未來走近你
      金橋(2019年10期)2019-08-13 07:15:16
      基于FreeRTOS系統(tǒng)和LwIP協(xié)議棧的網(wǎng)絡(luò)通訊
      西方音樂元素在二胡演奏中的移植
      心臟自體干細(xì)胞移植治療心肌梗死新進(jìn)展
      科技視界(2016年24期)2016-10-11 19:55:02
      “移植”瘦人糞便能減肥?
      基于Cortex—M4內(nèi)核的μCOS—Ⅱ移植
      科技視界(2016年9期)2016-04-26 10:19:53
      機(jī)器人來幫你
      認(rèn)識機(jī)器人
      機(jī)器人來啦
      為什么造機(jī)器人?
      陇南市| 布尔津县| 商城县| 吉林省| 尚志市| 商城县| 南康市| 黔西县| 秦皇岛市| 兰考县| 托里县| 清流县| 泸水县| 日照市| 通山县| 绍兴市| 崇礼县| 彝良县| 汉源县| 黄浦区| 宜良县| 双江| 留坝县| 突泉县| 徐闻县| 资中县| 贵南县| 陈巴尔虎旗| 长乐市| 铅山县| 南宫市| 津南区| 花垣县| 泰来县| 仙游县| 内丘县| 墨脱县| 海丰县| 门源| 浪卡子县| 定边县|