版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第一章開發(fā)板的介 開發(fā)板簡 硬件資源特 用戶光盤資源說 Linux特 開發(fā)套件配件第二章開發(fā)板使用說 開發(fā)板設(shè)置及連 開發(fā)板外部接口連 設(shè)置超級(jí)終端(主機(jī) 開發(fā)板BIOS功能及使用說 開機(jī)進(jìn)入BIOS模 安裝USB驅(qū) vivi子菜單功能說 預(yù)裝linux系統(tǒng)的功能簡 設(shè)置開發(fā)板網(wǎng) 如何中止程序的運(yùn) 掛載USB閃存盤(U盤 使用SD 如何通過串口與PC互相傳送文 串口2的測 使用ftp傳遞文 設(shè)置并保存系統(tǒng)實(shí)時(shí)時(shí) 如何掉電保存數(shù)據(jù)到 使 net登陸開發(fā) 如何設(shè)置開機(jī)自動(dòng)運(yùn)行程 第三章安裝嵌入式系 安裝啟動(dòng)程 在PC上安裝JTAG線的驅(qū)動(dòng)程 燒寫 串口安裝 分區(qū)并格式化閃 Bootloader Linux的內(nèi)核映象 文件系統(tǒng)映 啟動(dòng)Linux系 tftp安裝 啟動(dòng)TFTP服務(wù) 網(wǎng)絡(luò)設(shè) 內(nèi)核映象以及文件系 安裝WinCE系 3.4.1WindowsCE啟動(dòng)程 3.4.2WindowsCE映 啟動(dòng) 第四章ADS1.2集成開發(fā)環(huán)境的使 使用ADS創(chuàng)建LED工 建立一個(gè)工 編譯和工 和運(yùn) 第五章建立linux開發(fā)環(huán) linux版本介 完全圖解安裝 用grub引導(dǎo)雙操作系 使用vmware虛擬 配 終端通訊工 配置網(wǎng)絡(luò)文件系統(tǒng)NFS服 通過NFS啟動(dòng)系 配置PC機(jī)Linux的ftp服 配置PC機(jī) net服 第六章嵌入式linux系統(tǒng)架構(gòu)介 Bootloader介 內(nèi) 文件系 嵌入式系統(tǒng)設(shè)備及其管理機(jī)制分 基于Flash的文件系 第七章配置和編譯 交叉編譯環(huán) 交叉編譯環(huán)境介 建立交叉編譯環(huán) 編譯 使用VIVI命 使用缺省配置文件編譯內(nèi) 解壓內(nèi)核源代 裝載缺省配置文 編譯內(nèi) 定制linux內(nèi) 如何配置CPU選 如何配置USB鼠標(biāo)和鍵 如何配置優(yōu)盤的支 如何配置CS8900網(wǎng)卡驅(qū) 如何配置聲卡驅(qū) 如何配置串口驅(qū) 如何配置RTC實(shí)時(shí)時(shí)鐘驅(qū) 如何配置yaffs文件系統(tǒng)的支 根文件系統(tǒng)的制 根文件系統(tǒng)的構(gòu) 構(gòu)建根文件系 Yaffs根文件系統(tǒng)映像的制 Qtopia文件系統(tǒng)映 第八章為目標(biāo)板編寫linux應(yīng)用程 編輯編譯示例程 如何把編譯好的程序到開發(fā)板運(yùn) 使用優(yōu) 通過串口傳送文件到開發(fā) 通過網(wǎng)絡(luò)文件系統(tǒng)NFS執(zhí) 通過ftp文件執(zhí) 程序驅(qū)動(dòng)開發(fā)實(shí) 編輯編譯LED燈驅(qū)動(dòng)程 用ftpLED燈驅(qū)動(dòng)程 運(yùn)行LED燈驅(qū)動(dòng)程 第九章配置和編譯 安裝開發(fā)環(huán) tformBuilder WinceImage生成簡要說 解壓縮文 導(dǎo)入CEC文 Image編譯過 燒寫Wince系 附錄1linux命令初 文件列 切 147刪 移 比 回 容量查 文件內(nèi)容查 分頁查 時(shí)間日 查 搜 設(shè)置環(huán)境變 編 壓縮與解 掛 啟動(dòng)信息顯 改變文件權(quán) 創(chuàng)建節(jié) 進(jìn)程查 殺死進(jìn) 設(shè)置環(huán)境變 啟動(dòng)信息顯 網(wǎng)絡(luò)設(shè)置命 設(shè)置網(wǎng) 測試網(wǎng)絡(luò)路由檢 附錄2硬件地址空間分 地址空間分配和片選信號(hào)定 跳線說 附錄3推薦和資 3.13.2大陸資 3.2.2資 硬件資源特中提供有底板的PCB圖,更利于客戶出板。2440板規(guī)格:MCU(MicroControlSamsung0.135400MHz(400MHz,533MHz)64MBytePC13332bitBus前端總線頻率100MHz(如果不使用網(wǎng)絡(luò),可正常工作在135MHz)NandSmallPage64MByte(LCDTV顯示輸出GPIO-23LCD擴(kuò)展接口,24bitSD10/100M自動(dòng)翻轉(zhuǎn)(AUTOMDIX)2RS2322USBHOSTUSBDEVICE接口150xLinuxWinCE用戶光盤資源說ADS1.2WindowsFlashUSB驅(qū)動(dòng)(WindowXP/2000vivilinuxlinuxyaffslinux-2.6.13for2440內(nèi)核源代Wince5.0(8)開發(fā)板原理圖(PDF格式)(9)用戶手冊(pdf格式)(10)Linux—cramfs(壓縮的只讀文件系統(tǒng),速度較快yaffs2(可讀寫的文件系統(tǒng) UDA1341USBHost640x480Linux1條公母頭串口線(直連11USBHosttoDevice1條兼容SJF程序的JTAG板(僅支持?jǐn)?shù)據(jù)功能,不支持H-JTAG1LCD模塊(選配)有以下的規(guī)格(均為舊屏幕S3C2440Linux需要對開發(fā)板進(jìn)行物理操作時(shí),請關(guān)閉電源,除USB以及網(wǎng)絡(luò)接口外,其它接口均不支持熱插拔,開發(fā)板工作時(shí),請不要帶電插拔(VGA接口務(wù)必不能進(jìn)行熱插開發(fā)板外部接口連請使用我們提供的直連串口線連接2440的串口0和PC機(jī)的串用我們提供的交叉網(wǎng)線將2440的網(wǎng)絡(luò)接口與PC相5V5V如果您有液晶屏,請按照數(shù)據(jù)線頭的方向與2440的LCD接口相用USB電纜連接2440和PCVGA顯示輸出最大刷新率80Hz最大分辨設(shè)置超級(jí)終端(主機(jī)為默認(rèn) net程序,此時(shí)你不需要,因此點(diǎn)“否”按鈕為了方便通過串口調(diào)試2440,必須使用一個(gè)模擬終端程序,幾乎所有的類MS‐Windows自帶的超級(jí)終端是最常用的選擇,當(dāng)你安裝Windows9x時(shí)需要自定義選擇安裝該項(xiàng),Windows2000及更高版本則已經(jīng)缺省安WindowsWindowsXP為例,或許Windows版本的程序界面有所不同。超級(jí)終端程序通常位于"開始->程序->附為默認(rèn) net程序,此時(shí)你不需要,因此點(diǎn)“否”按鈕2-2-2-2-Windows,系統(tǒng) 2-當(dāng)你命名完以后,又會(huì)跳出一個(gè)框,你需要選擇連接2440的串口,我1,如圖所示:2-2-LinuxLinux的時(shí)候,會(huì)出現(xiàn)“PleasepressEntertoactivatethisconsole.”的信息,這可進(jìn)入Linux令行(S)--有可能需要按ctrl+c,之后才能按下回車鍵進(jìn)入s。如果按下回車鍵時(shí),串口顯示特殊信息,如“^@^@^@^@”,請重新啟動(dòng)Linux的操作,如果您想進(jìn)入系統(tǒng)的引導(dǎo)程序BIOS,并對系統(tǒng)的一些啟動(dòng)狀態(tài)進(jìn)行設(shè)置,可以按照下面的步驟操作。出現(xiàn)啟動(dòng)程序vivi的信息。2-在S3C2440開發(fā)板上,我們使用了mizi公司開發(fā)的開放源代碼啟動(dòng)程序vivi來作為bootloader,在原有vivi的基礎(chǔ)上,我們增加了VGA/TV初始化vivi我們使用來Linux的映象,將來會(huì)擴(kuò)展到支持WindowsCE的映經(jīng)改進(jìn)后,vivi的基本功通過USBDEVICE接口映象文件(開發(fā)中,暫不提供通過網(wǎng)絡(luò)接口映象文viviUSBPCUSB從設(shè)備從PC文件,在將開發(fā)板當(dāng)作USB從設(shè)備連接到PC之前,需要在PC端安裝支持開發(fā)板USB連接的驅(qū)動(dòng)程序。vivi子菜單功能說7.2.2
2-出廠之前,如果沒有客戶的特別說明,2440一般預(yù)裝一個(gè)linux系統(tǒng)(對root_default.img)文件,通過它可以來檢測板子上的大部分資源功能,linuxLinux2.1節(jié)所述的,下面的操作都是在通過串口終端操作板子上的Linux。2-設(shè)置開發(fā)板網(wǎng)#ifconfigeth0IP#如何中止程序的運(yùn)
2-要中止程序的運(yùn)行,可以在終端控制臺(tái)下同時(shí)按Ctrl+cCtrl,不要放開,再按下c鍵即可。另外,如果程序是在運(yùn)行,可以使用kill命令殺掉該進(jìn)USB閃存盤(U盤UUSB(如UUSB1接口JP1JP2跳線是否跳到靠近板的一邊,如果不是,請把它們跳過去),這時(shí)候板子上面出現(xiàn)發(fā)現(xiàn)優(yōu)盤的信息,在開發(fā)板Linux系統(tǒng)中,移動(dòng)設(shè)備對應(yīng)的設(shè)備文件是運(yùn)行#mount/dev/scsi/host1/bus0/target0/lun0/part1U2-
2-SD或者M(jìn)MC卡底使用方法和優(yōu)盤十分類似,插入卡之后,一般會(huì)跳出如圖 下出現(xiàn)對應(yīng)的設(shè)備,使用mount命令掛接SD/MMC卡設(shè)備到/mnt #mount/dev/mmc/disc0/part1linuxrzszszPC 2-然后在終端令行輸入“sz/xx”命令開向PC傳送位于“/”的x文件(或者其他文件,改一下路徑和文件名就可以了),因?yàn)樵撐募容^大,所以需要使用rz命令文件到開發(fā)在串口終端輸入“rz”PC2-2的測
2-購配件)COM2PCPC的超級(jí)終端為115200,無流控制,其他默認(rèn)。test–d/dev/tts/1-PCtest–d/dev/tts/2-2-
2-linuxwindowsftp命令程序,使用ftp可以登錄的主機(jī),并傳遞文件,這需要主機(jī)提供ftp服務(wù)serv-uPCftp2-為了方便測試,我們可以從PC機(jī)令行窗口登錄開發(fā)板,并向開發(fā)板傳遞文件。這是PC機(jī)上的ftp 2-#ifconfigeth02-#ftp
2-o2- 2-ftp所在的有需要上傳的文件,傳送完畢,您可以在串口終端看到目標(biāo)板的/home/plg下多了一個(gè)文件。設(shè)置并保存系統(tǒng)實(shí)時(shí)時(shí)Linuxdate#date-s042916352007#2007‐04‐29yaffs(Flash#cp/etc/resolv.conf此時(shí)將在/usr下一個(gè)同樣的文件,然后關(guān)機(jī),重新開啟系統(tǒng),可以查看到/usr下的文件依然存在。 net登陸開發(fā)Linux系統(tǒng)啟動(dòng)之后,如果配置了正確的ip地址,就可以通過net開發(fā)板。本開發(fā)板的ip地址是0.2-如何設(shè)置開機(jī)自動(dòng)運(yùn)行程(新手在熟悉操作之前不要改動(dòng)借助啟動(dòng)可以設(shè)置各種程序開機(jī)后自動(dòng)運(yùn)行,也可以設(shè)置其他系統(tǒng)設(shè)置,#!/bin/shrunlevel=SumaskexportPATHrunlevelprevlevel#TrapCTRL-C&conlyinthisssowecaninterruptsubprocesses.trap":"INTQUIT#SCSImodules#Input#/sbin/insmod/lib/input.o#/sbin/insmod/lib/keybdev.o#/sbin/insmod#/sbin/insmod/lib/evdev.o#Charactormodules/bin/ln-s/dev/fb/0/dev/fb0##FrameBuffer/bin/ln-s/dev/vc/0/bin/ln-s/dev/sound/dsp/dev/dsp/bin/ln-s/dev/sound/mixer/dev/mixer/bin/lns/dev/scsi/host1/bus0/target0/lun0/part1/dev/sda1/bin/mount-tprocnone/bin/mount-ttmpfsnone/bin/mount-ttmpfsnone/bin/mkdir-p/bin/mkdir-p/bin/mkdir-p/var/log#Usbdevices#/sbin/insmod/lib/hid-core.o#/sbin/insmod/lib/usbmouse.o#/sbin/insmod/lib/usbkbd.o#/sbin/insmod/lib/cs8900a.o/etc/rc.d/init.d/netdstart#net/ftp服/etc/rc.d/init.d/httpdstart#webserver/etc/rc.d/init.d/ledsstart#led/sbin/ifconfigloip/sbin/ifconfigeth030upip/bin/hostname-F果要開發(fā)應(yīng)用程序的話,可以直接把應(yīng)用程序到開發(fā)板中運(yùn)行,或者采用掛接的方式(NFS)。如果您是嵌入式開發(fā)的新手,建議您在沒有熟悉開發(fā)板的應(yīng)用和軟件環(huán)境之前,盡量熟悉和閱讀相關(guān)的資料,再動(dòng)手來燒(本章內(nèi)容,試驗(yàn)時(shí)要慎PCBIOS到開發(fā)板中,您需要先燒寫一個(gè)啟動(dòng)程序到板上的(一般指Flash器件)在光盤的\三星SMDK2440\中,解壓sjf2440_Rev01(SECJTAGFlash(SJF)Program).zipSJFGIVEIOWin9x/Me,PCNT的Windows2000/XP,請按照說明安裝GIVEIO虛擬端口驅(qū)動(dòng)程序。SJF2440是由三星提供的用來燒寫開發(fā)板Flash的工具程序,它可以通過并口JtagK9F1208NandFlash,AMD29LV800BBNorFlash號(hào)的Flash.。下面介紹如何在WindowsXP上安裝使用它。GIVEIO請以系統(tǒng)管理員的登錄WindowsXP,光盤中的giveio.sys3-Step1:3-Step3:選擇“添加新的硬件設(shè)
3-3-Step4:選擇“安裝我手動(dòng)從列表選擇的硬件”,如圖3-Step5:不選任何選項(xiàng),直接點(diǎn)“下一步”,如3-Step6:不選左右兩側(cè)列表中的任何選項(xiàng),直接點(diǎn)“從磁3-Step7:選擇要安裝的驅(qū)動(dòng)文件Step8:點(diǎn)“下一步
3-Step9:點(diǎn)“下一步
3-Step10:安裝成
3-3-(注意:進(jìn)行操作前請確定giveio安裝成功,否則燒寫過程會(huì)出現(xiàn)異常,燒寫啟動(dòng)代碼時(shí),您除了使用我們送給您的JTAG板,還必須使用一根標(biāo)準(zhǔn)25pin打機(jī)并口線連接。注意:這根并口線我們不提供,請自行。另外,USB轉(zhuǎn)并口的方式一般不可能用于JTAG寫。)打開開發(fā)光盤的\2440image\,里面有我們燒寫Linux用的映象,在Windows中,雙擊DownloadVivi2440_Vga.bat批處理文件,即可VIVI映象,3-3-SJFFLASH的連接以及操作的步驟是否正確,如果沒有發(fā)現(xiàn)問題的話,請您和聯(lián)系。Nand重新分區(qū)并格式化閃提示:分區(qū)將會(huì)擦除NandFlash面的所有數(shù)據(jù),您完全可以不重新flashPC鍵盤的空格鍵在超級(jí)終端中,可以看到進(jìn)入了vivi>令行。bonpart0192kbon是分區(qū)命令,上面這行命令的意思是把NandFlash0
3-有的閃存出廠的時(shí)候就有壞塊(對于norflash,這是不正常的,但是對于nandflash,廠家只保證flash的第一個(gè)塊絕對是好的,所以發(fā)現(xiàn)壞塊的話,不用驚慌,這完全是正?,F(xiàn)象,nandflash的容量雖然很大,但是可靠性并不是十分高。分區(qū)和格式化以后,請不要關(guān)掉開發(fā)板的電源,JTAG線來VIVI,這是因?yàn)槲覀兊拈_發(fā)板上現(xiàn)在閃存被清空了,但是開發(fā)板的RAM中還vivi,所以我們可以繼續(xù)操作。Bootloader我們現(xiàn)在通過串口來vivi,輸入命loadflashvivi意思是使用xmodem協(xié)議來程序到flash里面的vivi分區(qū)中(分區(qū)表可以輸入partshowpart命令進(jìn)行修改。命令行里面,flash代表目標(biāo)為閃存,vivi是分區(qū)的名稱,x代表使用xmodem協(xié)議。vivi時(shí)的操作,選擇vivi時(shí)的操作,選擇vivi2440_vga3-viviLinux的內(nèi)核映 vivi的過程,內(nèi)核映象的時(shí)候,我們輸loadflashkernel將內(nèi)核映象文件到開發(fā)板的閃存中。內(nèi)核映象文件所在的 文件名稱是zImage。
3-3-0(在VIA組主板上遇到過文件系統(tǒng)映在vivi令行中,繼續(xù)輸入命loadflashroot 下的root_.cramfs文件進(jìn)行,這個(gè)文件比較大,用串
3-上一節(jié)我們介紹的是通過串口Linux內(nèi)核以及文件系統(tǒng)的方式,這種方式比較方便,但速度較慢,在vivi中也提供了通過網(wǎng)絡(luò)連接的方式,下面進(jìn)行介紹,您只需要選擇串口或網(wǎng)絡(luò)這兩種方式中的一種。如果需要用網(wǎng)絡(luò),需要在PC上安裝TFTPPC和開發(fā)板通過TFTP協(xié)議傳遞文件。請您注意,目前V1.1版本的S3C2440開發(fā)板上使用的vivi才支持網(wǎng)絡(luò)下載方式。使用網(wǎng)絡(luò)方式前,請您確保網(wǎng)線和計(jì)算機(jī)的連接已經(jīng)連接好。以下的光盤/Tools/TFTPSRV.EXE到C:盤根,再光盤/2440image下的zImage文件和root_.yaffs文件到C:盤根。點(diǎn)擊pc機(jī)Windows操作
3-3-輸入“cmd”命令,然后回車,會(huì)出現(xiàn)如下的窗口,窗口中顯示了Windows令 設(shè)置為C:盤的根 。運(yùn)行“tftpsrvdc:”命令,3-TFTPTFTP不要關(guān)閉這個(gè)窗口。另外,如果TFTP服務(wù)器失敗,有可能是由于您的網(wǎng)絡(luò)設(shè)置,或者造成的,使用期間最好關(guān)閉。網(wǎng)絡(luò)設(shè)打開開發(fā)板,按空格鍵進(jìn)入vivi令行。這時(shí)候鍵入net命令,可以看到目前vivi中有關(guān)網(wǎng)絡(luò)的設(shè)定,以及net命令的用法。3-開發(fā)板的IP一定要設(shè)置得和TFTP務(wù)器使用的計(jì)算機(jī)在同一個(gè)網(wǎng)段內(nèi)(前提是在局域網(wǎng)中),比如說,現(xiàn)在計(jì)算機(jī)和開發(fā)板的IP地址分別是a.b.c.d和發(fā)板vivi的IP地址。在vivi令行中,運(yùn)行netsetipaddr2netIP3-netsaveIP保存。如果不確定網(wǎng)絡(luò)連接是否正常,我們可以運(yùn)行一下net命令,來查看3-3.3.3內(nèi)核映象以及文件系改好IP地址以后,我們下一步要做的就是內(nèi)核映象了。執(zhí)行nettftp70xzImage命令,從主機(jī)(IP為7)zImage3-kernelzImageFlashFlashnetkernelzImageFlash3-文件系統(tǒng)的也和內(nèi)核映象一樣。先后運(yùn)行命令nettftp56 .yaffs和netflashroot即可文件系統(tǒng)的映象到中。重新啟動(dòng)開發(fā)板,linux準(zhǔn)備工作:連接好開發(fā)板的JTAG線,以及串口線,將USBDEVICE接口后面的USBDEVICE(USBDEVICE接口USB線的方口(另WindowsCE啟動(dòng)程序打開WindowsCE5.0 請您注意,我們同時(shí)提供WindowsCE4.2和WindowsCE5.0的bsp,但只有WindowsCE5.0的bsp經(jīng)過我們在開發(fā)板上的移植和調(diào)整,WindowsCE4.2bsp參考雙擊DownloadWinceBootloader.bat批處理文件,這3-(注意:若開發(fā)板連接正確在上圖中會(huì)出現(xiàn)S3C2440X<ID=0x d>isdetected,ID可能回不一樣,若沒有檢測到,請檢查開發(fā)板連線是否正確,電源是否打開,另外如果DownloadWinceBootloader.bat批處理文件不能正常使用,請確定是否正確安裝GIVEIO驅(qū)動(dòng))WindowsCE在光盤 中,雙擊DNW.exe,打開DNW窗口,點(diǎn)擊下拉菜3-打開開發(fā)板電源,或者按下開發(fā)板的復(fù)位鍵,這時(shí)候應(yīng)該在DNW窗口上出現(xiàn)串3-這說明啟動(dòng)程序應(yīng)該成功了(有時(shí)候需要重新一次才行)3.4.2WindowsCE映下一步我們開始WindowsCE的映象選擇1(按下“1”鍵即可,不需要回車),出現(xiàn)下一個(gè)選擇,選擇3-3-3- 下WindowsCE5.0->USBDriver 步”。選擇secbulk.inf文件,完成驅(qū)動(dòng)程序的安裝。3-DNW[USB:OK]字樣。切換到DNW窗口,選擇0,出現(xiàn)如下的畫面:3-USBCableconnectedDNWUSBPort->Transmit-3-選擇xip_k9f1208.nb0文件進(jìn)行3-WindowsCE的映象完畢
3-DNW窗口選擇“03-LCDVGAWindowsCEWindowsCEADS1.2ARMADSARMDeveloperSuiteARMARM集ADS1.2ADS1.1ADS1.0,它可以安裝在WindowsNT/2000/98/95/XP上面使用。本節(jié)通過一個(gè)簡單的具體實(shí)例,介紹如何使用ADS集成開發(fā)環(huán)境。包括如何創(chuàng)Flash中的binbinARM建立一個(gè)工ADSFile->New,4-ARMExcuteableImage:ARMELF格式的可以執(zhí)行映ARMObjectLibrary:ARMarmarEmptyProject:MakefileImporterWizard:VisualCnmakeGNUmake文件轉(zhuǎn)入到CodeWarriorIDE工程文件。ThumbARMExcutableImage:ARMThumb指令的混和代碼生成一個(gè)可執(zhí)行的ELF格式的映象文件。ThumbExcutableimage:ThumbELF格式的映象文ThumbObjectLibrary:用于由barar格式的目標(biāo)文MeaetnamemyledLocation該工程的路徑(本例為“E:\yagch\ld)yled的工程。這個(gè)時(shí)候會(huì)出現(xiàn)myled.mcp窗口,如圖所示,同時(shí)會(huì)在E:\yangchu\led下創(chuàng)建一個(gè)工程myledmyled.mcp會(huì)出現(xiàn)在“E:\yangchu\led\myled”中。4-4-對于本例,將寫好的的源文件及其一起到myled工程,然后在myled.mcp項(xiàng)目窗口中,點(diǎn)鼠標(biāo)右鍵或者ADS菜單Project->AddFiles…,如圖4-這里請注意,我們在新建一個(gè)工程時(shí),ADStargetDebugRel,targetRealseDebug,它們的含義分別為:DebugRel:該目標(biāo)選項(xiàng),在生成目標(biāo)的時(shí)候,會(huì)為每一個(gè)源代碼生成最完整的調(diào)試信息。在本例中,我們使用默認(rèn)的DebugRel選項(xiàng)。main.cmyled.mcp4-和的配置。編譯和工
4-在進(jìn)行編譯和之前,首先需要對生成的目標(biāo)進(jìn)行配置,點(diǎn)Edit菜單,選擇“DebugRlSettng…(4-TargetNameLinker選項(xiàng)為用戶提供了要使用的連器,在這里選擇默認(rèn)的ARMLinker,使用該器,將使用armlink編譯器和匯編器生成相應(yīng)的工程目標(biāo)文件。在Linker設(shè)置中,還有兩個(gè)可選項(xiàng),None代表不對生成的各個(gè)源代碼目標(biāo)文件進(jìn)行,ARMLibrarian表示將編譯或者匯編得到的目標(biāo)文件轉(zhuǎn)換為ARM件,對于本例,使用默認(rèn)的器ARMLinker。FlashARMfromELF,表示在生成映象文件后,再調(diào)用fromELF命令將含有調(diào)試信息的ELF格式的映象文件轉(zhuǎn)換為其他格式的文件。TargetSetting選擇最后設(shè)置如圖所示:Language
4-因?yàn)樵诒纠邪瑓R編代碼,所有要用到匯編器,點(diǎn)接選擇ARMAssembler,在右ARM7TDMIARM920T,字節(jié)順序默認(rèn)是小端模式,其他設(shè)4-CARMCCompilerARMCCompiler,在右側(cè)出現(xiàn)相應(yīng)的設(shè)置選項(xiàng),在ADS集成開發(fā)環(huán)境中用的匯編器是armccARMARM7TDMIARM920T,字節(jié)順序默認(rèn)4-接選項(xiàng),由于有了CodeWarrior,開發(fā)人員可以不用再去產(chǎn)科繁多令行選項(xiàng),只慣在DOS下鍵入命令行的用戶提供了極大的方便。LinkerARMLinker,在右側(cè)出現(xiàn)相應(yīng)的設(shè)置選項(xiàng),我們在此詳細(xì)介紹這些設(shè)置框,在Output中,Linktype中提供了三種方式。Partial方式表示器只進(jìn)行部分,經(jīng)過部分生成的目標(biāo)文件,可以作為以后進(jìn)一步時(shí)的輸入文件。Simple方式是默認(rèn)的方式,也是最為頻繁使用的方式,它生式使得器要根據(jù)scatter格式文件指定的地址映象,生成復(fù)雜的ELF格式的映4-SimpleROBase:這個(gè)文本框設(shè)置包含RO段的加載域和運(yùn)行域?yàn)橥粋€(gè)地址,默認(rèn)是0x8000。這里用戶要根據(jù)自己的硬件實(shí)際SDRAM地址空間來修改這個(gè)地址,保證這里填寫的地址,是程序運(yùn)行時(shí),SDRAM地址空間所能到達(dá)的范圍,針對本目標(biāo)板,SDRAM的空間范圍是0x ,因此這里設(shè)置為0x RWBase:這個(gè)文本框設(shè)置了包含RW和ZI輸出段的運(yùn)行域地址。如果選中split選項(xiàng),器生成的映象文件將包含兩個(gè)加載域和兩個(gè)運(yùn)行域,此時(shí)在RWBase中所輸入的地址為包含RW和ZI輸出段的域設(shè)置了加載域和運(yùn)行域地址。Ropi:選中這個(gè)設(shè)置將告訴器使包含有RO輸出段的運(yùn)行域位置無關(guān)。使用這個(gè)選項(xiàng),器將保證下面的操作:檢查各段時(shí)間的重尋址是否有效;確保任何由armlink自身生成的代碼是只讀位置無關(guān)的。Rwpi:選中該選項(xiàng)將會(huì)告訴器使包含RW和ZI輸出段的運(yùn)行域無關(guān)。如果這在Region$$Table和ZISection$$Table中添加基于靜態(tài)器sb的選項(xiàng)。該選項(xiàng)要求RWBase有值,如果沒有給他指定數(shù)值的話,默認(rèn)為0。SplitImage:RORW2各加載域,一個(gè)是包含RO輸出段的域,一個(gè)是包含RW輸出段的域。RWBaseRWBase0Relocatable:選擇這個(gè)選項(xiàng)保留了映像文件的重尋址偏移量。這些偏移量為程序加載器提供了有用信息。在Otis選項(xiàng)中,需要讀者引起主義的是Iaeeryit文本框。它指定映像文件的初始點(diǎn)地址值,當(dāng)映像文件被加載程序加載時(shí),加載程口點(diǎn):點(diǎn)地址:這是一個(gè)數(shù)值,例如-entry0x0符號(hào):該選項(xiàng)指定映像文件的點(diǎn)為該符號(hào)所代表的地址處,比如:-entryint_handler,如果該符號(hào)有多處定義存在,armlink將產(chǎn)生出錯(cuò)信息。為映像文件的地址,例如:‐entry8+startup(startuoseg)在此處指定的點(diǎn)用于設(shè)置ELF映像文件的地址。需要引起注意的是,這里不可以用符號(hào)main作為點(diǎn)地址符號(hào),否則將會(huì)出現(xiàn)類似“Imagedosenothaveanentrypoint(Notspecifiedornotsetduetomultiplechoice)Layout選項(xiàng)中,需要設(shè)置asm.o目標(biāo)文件中的Init為整個(gè)文件的點(diǎn)。關(guān)于ARMLinker的設(shè)置還很多,LinkerARMfromELF是一個(gè)實(shí)用工具,它實(shí)現(xiàn)將器,編譯器和匯編器的輸出代碼進(jìn)行ELFROMOutputformat下拉框中,為用戶提供了多種可以轉(zhuǎn)換的目標(biāo)格式,本例選Outputfilename成的二進(jìn)制文件存放在工程所在的下。進(jìn)行好這些相關(guān)的設(shè)置后,以后在對工程進(jìn)行make的時(shí)候,CodeWarriorIDE就會(huì)在完成后調(diào)用fromELF來處理生make4-點(diǎn)擊CodeWarriorIDE的菜單Project下的make菜單,就可以對工程進(jìn)行編譯和鏈 4- 同時(shí)還有myled.axf文件,它是用于調(diào)試的。4.2和運(yùn)ADS編譯出來的bin文件用8.2中的方法是不行的,建議利用vivi的串口或網(wǎng)口到內(nèi)存的一個(gè)地址,例如0x,然后用vivi的go0x運(yùn)行這個(gè)bin文件。按照3.3.1中的步驟運(yùn)行tftp服務(wù)器后,連接好開發(fā)板,進(jìn)入BIOS界面,先設(shè)置好ip地址,然后,如圖,ADS編譯成的可執(zhí)行程序:#nettftp70xgo
4-4-linux版本介創(chuàng)建了SoftwareFoundation(FSF)組織以及GNU項(xiàng)目,并不斷的編寫創(chuàng)建GNU程序(程序的方式均為GPL:GeneralPublicLicense)。在不斷的有程序員和開發(fā)者加入到GNU組織中后,變造就了今天我們所看到的Linux,或稱組織和企業(yè),開發(fā)了基于GNU/Linux的Linux版這其中最著名的便是RedHat公司的RedHat系列以及社區(qū)(community)組織的Debian系列。下面我就簡單得介紹一下目前比較著名、流行的Linux版本。部分資料來Mandriva原名MandrakeGa?lDuval19987發(fā)布。記得LinuxMandrakeMandrakeMandrake發(fā)者是基Redhat行開發(fā)的。Redhat默認(rèn)采GNOME桌面一次接觸Linux的新手,所以Mandrake還簡化了安裝系統(tǒng)。這也是當(dāng)時(shí)Mandrake在國內(nèi)如此紅火的原因之一。Mandrake在易用性方面的確是下了不少功Mandrake的開發(fā)完全透明化,包括“cooker”。當(dāng)系統(tǒng)有了新的測試版本后,缺點(diǎn):部分版本bug較多,版本只先發(fā)布給Mandrake的成員軟件包管理系統(tǒng):urpmi(RPM)免費(fèi):FTP即時(shí)發(fā)布,ISO在版本發(fā)布后數(shù)星期內(nèi)提供主頁:/Red國內(nèi),乃至是全世界的Linux用戶所最熟悉、最耳聞能詳?shù)陌嫦氡鼐褪荝edHatRedHatBobYoungMarcEwing1995近才開始真正步入時(shí)代,歸功于的RedHatEnterpriseLinux(RHEL,RedHat的企業(yè)版)。而正統(tǒng)的RedHat版本早已停止技術(shù)支持,最后一版是RedHat9.0。于是,目前RedHat分為兩個(gè)系列:由RedHat公司提供技術(shù)支持和更新的RedHatEnterpriseLinux,以及由社區(qū)開發(fā)的免費(fèi)的FedoraCore。FedoraCore1發(fā)布于2003年年末,而FC的定位便是桌面用戶。FC提供了的軟件包,同時(shí),它的版本更新周期也非常短,僅六個(gè)月。目前版本為FC3,而適用于服務(wù)器的版本是RedHatEnterpriseLinux,而由于這是個(gè)的操作系缺點(diǎn):免費(fèi)版(FedoraCore)版本生命周期太短,多支持不佳軟件包管理系統(tǒng):up2date(RPM),YUM(RPM)免費(fèi):主頁 SUSE是德國最著名的Linux版,在全世界范圍中也享有較高的聲譽(yù)。SUSEYaST也大受好評。SUSE2003Novell收購。SUSE之后的發(fā)布顯得比較,比如9.0版本是的,而10.0版本(也許由但是,瑕不掩瑜,SUSE仍然是一個(gè)非常專業(yè)、優(yōu)秀的版。YaST軟件包管理系統(tǒng)軟件包管理系統(tǒng):YaST(RPM),第APT(RPM)軟件庫(repository)免費(fèi):取決于版本主頁 DebianDebianIanMurdock1993GNULinuxDebian(branch)stable,testingunstable20055體版本為:Woody,Sarge和Sid。其中,unstable為的測試版本,其中包括的軟件包,但是也有相對較多的bug,適合桌面用戶。testing的版本都經(jīng)過具(RPM)apt-getDebianDebianDebian只要簡單得敲一下”apt-getupgrade&&apt-getupdate”,機(jī)器上所有的軟件就缺點(diǎn):安裝相對不易,stable分支的軟件極度過時(shí)軟件包管理系統(tǒng):APT(DEB)免費(fèi):主頁:Ubuntu。依照筆者的理解,簡單而言,Ubuntu就是一個(gè)擁有Debian所有的優(yōu)點(diǎn),以及自己所加強(qiáng)的優(yōu)點(diǎn)的近乎完美的Linux操作系統(tǒng)。:)Ubuntu是一個(gè)相對較新的版,但是,它的出現(xiàn)可能改變了許多潛在用出現(xiàn)后,這些都成為了歷史。UbuntuDebianSid,所以這也就是筆者所說的,UbuntuDebianapt-get。然而,不僅如此而已,Ubuntu是一個(gè)KDE的擁護(hù)者的話,Kubuntu同樣適合你!Ubuntu的安裝非常的人性化,只要按照提示一步一步進(jìn)行,安裝和Windows同樣簡便!并且,Ubuntu被譽(yù)為對硬件支持最好最全面的Linux版之一,許多在其他版上無法使用,或者默認(rèn)配置時(shí)無法使用的硬件,在Ubuntu上輕松搞定。并且,Ubuntu采用自行加強(qiáng)的內(nèi)核(kernel,安全性方面更上一層樓。并且,Ubunturootsusudo來獲取Ubuntu的版本周期為六個(gè)月,彌補(bǔ)了Debian更新緩慢的不足。術(shù)支持,可從DebianWoody直接升級(jí)軟件包管理系統(tǒng):APT(DEB)免費(fèi):是GentooDanielRobbins(StampedeLinux和BSD的開發(fā)者之一創(chuàng)建。由于開發(fā)者對BSDGentoo擁有媲美BSD的廣受美譽(yù)的但還是有很大不同)Gentoo的首個(gè)穩(wěn)定版本發(fā)布于2002年。Gentoo的出名是因?yàn)槠涓叨鹊淖远ㄖ菩裕阂驗(yàn)樗且粋€(gè)基于源代碼的GentooGentooLinux使KDE桌面系統(tǒng)等比較大的軟件包,可能軟件包管理系統(tǒng):PortageSRC)免費(fèi):是主頁:Slackware由PatrickVolkerding創(chuàng)建于1992年。算起來應(yīng)當(dāng)是歷史最悠久的LinuxSlackwareLinux越來越普及,用戶的技術(shù)層面越來越廣(的新手)后,Slackware漸漸的被新來的人們所遺忘。在其他主流版強(qiáng)調(diào)易用性的時(shí)候,Slackware依然固執(zhí)的追求最原始的效率——所有的配置均還盡管如此,Slackware仍然深入人心(Linux老手。SlackwareSlackware盡量采用原版bug的幾率便低了很多。Slackware的版本更新周期較長(大約1年,但是新版本的軟件仍然不間斷的提供給用戶。UNIX軟件包管理系統(tǒng):SlackwarePackageManagement(TGZ)免費(fèi):主頁 由德國的KlausKnopper開發(fā)的Knoppix,是一個(gè)基于Debian的版。KnoppixLiveCDLinuxLiveCD就是整個(gè)操作系統(tǒng)都在一張光盤上,只要開機(jī)從光盤啟動(dòng),就能擁有一個(gè)完整的Linux系統(tǒng)!無需安裝!當(dāng)然,Knoppix縮傳輸技術(shù),都令加稱贊。可以說,在LiveCD界,Knoppix是無人能及的!CD上,優(yōu)秀的硬件檢測能力,可作為系統(tǒng)急救缺點(diǎn):LiveCD由于光盤的數(shù)據(jù)速度限制導(dǎo)致性能大幅下降軟件包管理系統(tǒng):APT(DEB)免費(fèi):主頁 國內(nèi),乃至是全世界的Linux用戶所最熟悉、最耳聞能詳?shù)陌嫦氡鼐褪菗?,所以,這一小節(jié)將講解Redhat9.0的安裝。95%的使用者所習(xí)慣使用的操作系統(tǒng)是windowsXP,一般開,發(fā)者如果不能提供兩臺(tái)或的電腦那么只有在同一臺(tái)電腦上同時(shí)使用windowsXP和linux操作1:用grub或dos工具箱引導(dǎo)雙操作系統(tǒng)。grub引導(dǎo)雙操作系Linux劃分領(lǐng)LinuxWindows專供Linux使用,這里推薦用分區(qū)魔術(shù)師進(jìn)行無損分區(qū)。為了方便講述,這里先舉的可用空間剝離出來專供RedHat使用。息。單擊右側(cè)詳細(xì)窗格里的分區(qū)E以選中它。容量/移動(dòng)分區(qū)”框。在該框的頂部有一個(gè)條狀圖表示分區(qū)E的使用情況,其中左側(cè)的黑色條EE(在小就單擊“確定”按鈕,回到主界面,此時(shí)我們可以看到新劃分出的7GB自由空7GB是屬于Windows的擴(kuò)展分區(qū),所以要將這7GB的自由空間從Windows擴(kuò)展分區(qū)里劃分5-17GBWindows擴(kuò)展DOS分區(qū)里劃分出去。現(xiàn)在我們已經(jīng)從WindowsXP的領(lǐng)地里割出一塊7GB的自由空間供Linux。圖注意WindowsLinuxWindowsRedHatWindows速度變得奇慢,就會(huì)歸咎于RedHat,其實(shí)根本原因在于分區(qū)的時(shí)候沒有將自由空WindowsLinuxLinux安裝在第二個(gè)硬盤上(Windows自然是安裝在第一個(gè)硬盤上,并且確保將GRUB(LILO)安裝在第二個(gè)硬盤的主引導(dǎo)扇區(qū),然后每次開機(jī)時(shí)在BIOS里指定從哪個(gè)硬盤引導(dǎo)即可。GRUB(LILOWindowsXPNTntldr、boot.ini來實(shí)現(xiàn)雙重啟動(dòng)。這種方法的優(yōu)點(diǎn)是今后刪除Linux比較方便,而且符合我們的使用習(xí)慣;缺點(diǎn)是實(shí)現(xiàn)起來相對比較復(fù)雜,需要獲取Linux系統(tǒng)的引導(dǎo)映像文件??梢赃x擇不安裝Linux的引導(dǎo)裝載管理器(或者不要安裝在主引導(dǎo)扇區(qū),但是要記住在安裝過程中一定要?jiǎng)?chuàng)建Linux啟動(dòng)盤。今后需要時(shí),用這張啟動(dòng)盤引導(dǎo)系Linux。這里介紹了四種雙重系統(tǒng)的實(shí)現(xiàn)方案,本文將分別介紹比較常見的第使用Linux引導(dǎo)管理LinuxGRUBLILORedHat7.2GRUBLILOGRUBGRUB引導(dǎo)系統(tǒng),等出現(xiàn)歡迎屏幕時(shí)按回車,圖形化安裝界面。選擇定制安(自然要選擇熟悉的簡體中文ix‐所示。Linux
5-2:LinuxDiskDruid手工分區(qū)”,在接下來的頁面上選7GBLinux分區(qū)。(1)引導(dǎo)分區(qū)在彈出的“添加分區(qū)”框上,在剩余空間創(chuàng)建引導(dǎo)分區(qū),掛載點(diǎn)為/boot,容量可以是100MB,文件系統(tǒng)是ext3,如圖5-3所示。
5-3:WindowsXP里的頁面文則交換分區(qū)容量可以設(shè)為256MB。小不低于1.5GB。Linux環(huán)境下沒有Windows的C、D盤符概念,每一個(gè)Linux分區(qū)必須掛載到Linux 是必須的,它是 樹的根Linux引導(dǎo)管理器的配創(chuàng)建好Linux分區(qū),接下來就是重頭戲──Linux引導(dǎo)管理器的配置。圖5-44WindowsXP(DOS)RedHat
5-4:XP(此處是DOS)前面的“默認(rèn)”復(fù)選框,也可以在安裝完成后,修改/boot/grub/.ist添加別的操作系統(tǒng)有時(shí)候,GRUB不一定能夠檢測出系統(tǒng)里的所有操作系統(tǒng),4所示頁面上的“添加”按鈕,即可打開一編輯默認(rèn)項(xiàng)目可能大家早就看不慣RedHat居然還把WindowsXP看成DOS。不過單擊圖4頁面上的“編輯”按鈕可以指定其,如圖5‐4所示vmware虛擬VMWare是一個(gè)“虛擬PC”軟件.它使你可以在一臺(tái)機(jī)器上同時(shí)運(yùn)行二個(gè)或Windows、DOS、LINUX,VMWareVMWareWindows 串口輸入信息是我們重要的調(diào)試,所以串口通信特別重要,在RedHat下使 與2440進(jìn)行通信 與Windows下的超級(jí)終端相1:打開終端–s,
5-5-4:按下”A”鍵設(shè)置”SerialDevice”,然后在PC上輸入串行端(若使用COM1,剛寫入/dev/ttyS0,如果使用COM2,剛寫入/dev/ttyS1)5E鍵,設(shè)置波特率/奇偶位/1152008N1。6F鍵,將”HardWareFlowControl”設(shè)置為NO,5‐77ENTER
5-8Savesetupasdf1Redhat9.0NFS件都已經(jīng)缺省安裝好了,請按照以下步驟建立和配置NFS服務(wù)。#geditnfs服務(wù)的配置文件(注意:第一次打開時(shí)該文件是空的)/home/chuchu/opt//root_nfs表示nfs共 *rw表示掛接 no_root_squash表示允許掛接 拷貝光盤中的root_nfs.tgz文件到某一 ,進(jìn)入 ,執(zhí)行以下命令#tarxvzfroot_nfs.tgz–C該命令將把root_nfs的內(nèi)容解壓安裝到 nfs服務(wù)#/etc/init.d/nfsstartnfsnfs#mount-tnfslocalhost:/opt/ /root_nfs如果沒有出現(xiàn)錯(cuò)誤信息,您將可以瀏覽到 中的內(nèi)容/opt/yangchu /root_nfs是一致的。使用這個(gè)命令可以停止nfs服務(wù):#/etc/init.d/nfsstop#redhat-config-打開系統(tǒng)服務(wù)配置窗口,在左側(cè)一欄找到nfs服務(wù)選項(xiàng)框,并選中它,然后點(diǎn)File‐>SaveChanges5‐8NFSNFSNFS作為根文件系統(tǒng),開發(fā)板的“硬盤”就可以變得很大,因?yàn)槟筶inuxJ1NandFlashPCvivivivi>paramsetlinux_cmd_line"console=ttySAC0root=/dev/nfsnfsroot=11:/opt/yangchu2440/root_nfsnfs.txt文件中,這樣您直接過來就可以了。nfs#redhat-config-vsftpdFile‐>SaveChanges5‐9 net服nfs#redhat-config-打開系統(tǒng)服務(wù)配置窗口,在左側(cè)一欄找到nfs服務(wù)選項(xiàng)框,并選中它,然后點(diǎn)File->SaveChanges保存設(shè)置,下次開機(jī)的時(shí)候該系統(tǒng)就啟動(dòng)了net服務(wù),如圖這里需要注意的是,net是明文傳輸模式,并不安全,所以一般被禁linuxlinuxbootloader,img文件和文件系統(tǒng)三個(gè)部分。BootLoader的主要運(yùn)行任務(wù)就是將內(nèi)核映象從硬盤上讀到RAM中,然后跳轉(zhuǎn)到內(nèi)核的點(diǎn)去運(yùn)行,也即開始啟動(dòng)操作系統(tǒng),文件系統(tǒng)則用來管理系統(tǒng)所有存在非易失性器上的信息。嵌入式LINUX4個(gè)層次:引導(dǎo)加載程序。包括在固件中(firmware)中的啟動(dòng)代碼(可選)BOOTLOADER內(nèi)核。特定于板子的定制內(nèi)核以及控制內(nèi)核引導(dǎo)系統(tǒng)的參用戶應(yīng)用程序。GUI| |參 文件系 Boot引導(dǎo)程序是嵌入式開發(fā)很重要的組成部分。它是CPU加電后第一個(gè)開始運(yùn)行的確的環(huán)境。BootLoaderCPU頻、SDRAMBootLoaderUSB口或者網(wǎng)絡(luò)口映像文件,并可以對 pressed/head.S文件,程序然后開始進(jìn)行自己解壓縮,各個(gè)段分別寫入指定的地址,稍作處理后系統(tǒng)控制權(quán)交給了uClinux內(nèi)核點(diǎn)start_kernel(),它初始化內(nèi)核的其他部分,包括捕獲,IRQ通道,調(diào)度,設(shè)備驅(qū)動(dòng),fork“init”進(jìn)程,以啟動(dòng)整個(gè)多任務(wù)環(huán)境。文件徑而無須考慮實(shí)際物理設(shè)備的文件系統(tǒng)類型。Linux設(shè)備驅(qū)linux簡單地說,BootLoader就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。通BootLoader世界里建立一個(gè)通用的BootLoader幾乎是不可能的。盡管如此,我們?nèi)匀豢梢詫ootLoader歸納出一些通用的概念來,以指導(dǎo)用戶特定的BootLoader設(shè)計(jì)與實(shí)基于ARM920Tcore的CPU在復(fù)位時(shí)通常都從地址0x取它的第一條指令。在系統(tǒng)加電后,CPUBootLoaderBootLoader包含兩種不同的操作模式:“啟動(dòng)加載”模式和“”模式:啟動(dòng)加載(Bootloading)模式:BootLoader從目標(biāo)機(jī)上的某個(gè)固態(tài)設(shè)備上將操作系統(tǒng)加載到RAM中運(yùn)行,整個(gè)過程并沒有用戶的介入。(Downloading)模式:BootLoader將通過串口連接或網(wǎng)絡(luò)連接等通信手可更改)自行啟動(dòng)linux內(nèi)核,這時(shí)vivi的默認(rèn)模式。在模式下,vivi為用戶提供一個(gè)命令行接口,通過接口可以使用vivi提供的一些命令,見下表:命 功 Flash MTD
行過程中的仲裁者:它要管理所有進(jìn)程的內(nèi)存,保證它們都能得到處理器的時(shí)通常,更新的內(nèi)核會(huì)支持的硬件,具備更好的進(jìn)程管理能力,運(yùn)行速度更快、更穩(wěn)定,并且一般會(huì)修復(fù)老版本中發(fā)現(xiàn)的許多等,經(jīng)常性地選擇升級(jí)更新Linux一般,內(nèi)核的版本序列號(hào)使用三個(gè)數(shù)字表示,如2.2.14,版本號(hào)越高表示功能2.2.x等,運(yùn)行穩(wěn)定,已經(jīng)經(jīng)過較為周密的測試;另外一種是開發(fā)測試系列,以奇數(shù)命名,用以進(jìn)行功能的測試,不建議初學(xué)者和生產(chǎn)過程中使用。嵌入式系統(tǒng)與通用PC機(jī)不同一般沒有硬盤這樣的設(shè)備而是使用Flash閃存、小型閃存卡等專為嵌入式系統(tǒng)設(shè)計(jì)的裝置,所以嵌入式文件系統(tǒng)與傳統(tǒng)PC文件系統(tǒng)還是不盡相同的。嵌入式系統(tǒng)設(shè)備及其管理機(jī)制分Linux嵌入式設(shè)備中使用的器是像Flash閃存、小型閃存卡等專為嵌入式系統(tǒng)設(shè)計(jì)的裝置。Flash是目前嵌入式系統(tǒng)中廣泛采用的主流器,它的主要特Flash分為NOR,NAND兩種類型。NOR型閃存可以直接內(nèi)的數(shù)據(jù),因而速度比較快,但是價(jià)格較高。對NOR可以“字”為基本單位操作,因此傳輸效率很高,應(yīng)用程序可以直接在FlashRAMSRAMNAND型閃存共用地址線與數(shù)據(jù)線,內(nèi)部數(shù)據(jù)以塊為單位進(jìn)行,直接將NAND做啟動(dòng)比較難。NAND閃存是連續(xù)介質(zhì),適合放大文件。擦除NOR64-128KB5s;擦除NORNAND模具尺寸內(nèi)提供更高的容量,也就相應(yīng)地降低了價(jià)格。NORflash占據(jù)了容量為1―16MBNANDflash8―128MBNORNAND器除了具有101塊擦除周期優(yōu)勢,典型的NAND尺寸要比NOR8倍,每個(gè)NAND器塊在給定的時(shí)間內(nèi)的刪除次數(shù)要少一些。所有嵌入式系統(tǒng)的啟動(dòng)都至少需要使用某種形式的永久性設(shè)備,它們需要LinuxBlkmem驅(qū)動(dòng)BlkmemuclinuxLinuxuClinux相對來說是最簡單的,而且只支持建立在NOR型Flash和RAM中的根文件系統(tǒng)。使用Blkmem驅(qū)動(dòng),建立Flash分區(qū)配置比較,這種驅(qū)動(dòng)程序?yàn)镕lash提供了一些基本RAMdisk驅(qū)動(dòng)RAMdisk驅(qū)動(dòng)層通常應(yīng)用在標(biāo)準(zhǔn)Linux中無盤工作站的啟動(dòng),對Flash器并不提供任何的直接支持,RAMdisk就是在開機(jī)時(shí),把一部分的內(nèi)存虛擬成塊設(shè)備,并且把之前所準(zhǔn)備好的系統(tǒng)映像解壓縮到該RAMdisk環(huán)境中。當(dāng)在FlashRAMRAMdisk持一個(gè)保持在RAM中的文件系統(tǒng)。MTD動(dòng)的能力,LinuxMTD(memoryTechnologyDevice)。它提供了一致且統(tǒng)一的接口,讓底層的MTD驅(qū)動(dòng)程序無縫地與較接口組合在一起。JFFS2,Cramfs,YAFFSMTDMTDCFINORFlashMTDRAM專為基于Flash的設(shè)備而設(shè)計(jì)的。MTD包含特定Flash的驅(qū)動(dòng)程序,開發(fā)者要選擇適合自己系統(tǒng)的Flash驅(qū)動(dòng)。Flash驅(qū)上層提供讀、寫、擦除等基本的操作,MTDMTDcharMTDblock的設(shè)備。MTDchar類型的設(shè)備包括/dev/mtd0,/dev/mtdl等,它們提供對Flash原始字符的。MTDblock類型的設(shè)備包括/dev/mtdblock0,/dev/mtdblock1等,MTDblock設(shè)備是將Flash模擬成塊設(shè)備,這樣可以在這些模擬的塊設(shè)備上創(chuàng)建像Cramfs,JFFS2MTD驅(qū)動(dòng)層也支持在一塊Flash上建立多個(gè)Flash分區(qū),每一個(gè)分區(qū)作為了一個(gè)MTDblock設(shè)備,可以把系統(tǒng)軟件和數(shù)據(jù)等分配到不同的分區(qū)上,同時(shí)可以在不同基于Flash的文件系鑒于lsh的特傳的inx文件系統(tǒng)己經(jīng)不適合應(yīng)用在嵌入式系統(tǒng)中,像xtfs文件系統(tǒng)是為像DE那樣的塊設(shè)備設(shè)計(jì)的,這些設(shè)備的邏輯塊是12字節(jié)、4沒有掉電保護(hù),也沒有特別完美的扇區(qū)管理,這不太適合于扇區(qū)大小因設(shè)備類型而sh常見的于閃存設(shè)備的文件系統(tǒng)如下:Romfs文件系統(tǒng)是最常使用的一種文件系統(tǒng),它是一種簡單的、緊湊節(jié)省空間。uClinux系統(tǒng)通常采用Romfs文件系統(tǒng)。Cramfs是Linux的創(chuàng)始人LinusTorvalds開發(fā)的一種可壓縮只讀文件系統(tǒng)在Cramfs文件系統(tǒng)中,每一頁被單獨(dú)壓縮,可以隨機(jī)頁,其壓縮比高達(dá)2:1,為嵌入式系統(tǒng)節(jié)省大量的Flash空間。Cramfs文件系統(tǒng)以壓縮方式,在運(yùn)行時(shí)XIPRAM里RamfsRAMCramfs是采用分頁壓縮的方式存放,在時(shí),不會(huì)一下子就耗用過多的內(nèi)存空間,只針對目前實(shí)際的部分分配內(nèi)存,尚沒有的部分不分配內(nèi)存空間,當(dāng)我們的不在內(nèi)存時(shí),Cramfs文件系統(tǒng)自動(dòng)計(jì)算壓縮后的資料所存的位置,再即時(shí)解RAM中。另外,它的速度快,效率高,其只讀的特點(diǎn)有利于保護(hù)文件系統(tǒng)免無法對其內(nèi)容對進(jìn)擴(kuò)充。CramfsFlash中,但是也能放在別的文件loopbackmkcramfs工具可以創(chuàng)建Cramfs映像。RamfsLinusTorvalds開發(fā)的,RamfsRAM里運(yùn)行,通常是Flash系統(tǒng)用來一些臨時(shí)性或經(jīng)常要修改的數(shù)據(jù),相對于ramdiskTmpfs是基于內(nèi)存的文件系統(tǒng),因?yàn)閠mpfs駐留在RAM中,所以寫/讀操作發(fā)生在RAM中。tmpfs文件系統(tǒng)大小可隨所含文件內(nèi)容大小變化,使得能夠最理想地使用內(nèi)存;tmpfs駐留在RAM,所以讀和寫幾乎都是瞬時(shí)的。tmpfs的一個(gè)缺點(diǎn)是當(dāng)系統(tǒng)JFFS2RedHatJFFSRedHat公司eCos開發(fā)的嵌入式文件系統(tǒng),所以JFFS2也可以用在Linux,uCLinux中。JFFSAxisCommunicationsLinux2.0的內(nèi)核為嵌入式潰/掉電安全保護(hù),克服了JFFS的一些缺點(diǎn):使用了基于哈希表的日志節(jié)點(diǎn)結(jié)構(gòu),大提高了對閃存的利用率,降低了內(nèi)存的消耗。這些特點(diǎn)使JFFS2文件系統(tǒng)成為目前Flash設(shè)備上最流行的文件系統(tǒng)格式,它的缺點(diǎn)就是當(dāng)文件系統(tǒng)已滿或接近滿時(shí),JFFS2運(yùn)行會(huì)變慢,這主要是因?yàn)樗槠占膯栴}。YAFFS/YAFFS2JFFSx類似的閃存文件系統(tǒng),它是專為嵌入式系統(tǒng)使用NANDJFFS2相比它減少了一些功能,所以速度更快,而且對內(nèi)存的占用比較小。此外,YAFFS自帶NAND的驅(qū)動(dòng),并且為嵌入式系統(tǒng)提供了直接文件系統(tǒng)的API,用戶可以不使用Linux中的MTD與設(shè)備做了優(yōu)化。JFFS2NANDNOR閃存,所以相對大容量的NAND閃存,YAFFS是更好的選擇。 交叉編譯環(huán)境介系統(tǒng)(OperatingSystem)。同一系結(jié)構(gòu)可以運(yùn)行不同的操作系統(tǒng)。同樣,同一個(gè)操作系統(tǒng)也可以在不同的體系結(jié)構(gòu)上運(yùn)行。舉例來說,我們常說的x86Linux平臺(tái)實(shí)際上是Inx86體系結(jié)構(gòu)和Linuxforx86操作系統(tǒng)的統(tǒng)稱;而x86WinNT平臺(tái)實(shí)際上是Inx86體系結(jié)構(gòu)和WindowsNTforx86操作系統(tǒng)的簡稱。有時(shí)是因?yàn)槟康钠脚_(tái)上不允許或不能夠安裝我們所需要的編譯器,而我們又需要這個(gè)編譯器的某些特征;有時(shí)是因?yàn)槟康钠脚_(tái)上的資源貧乏,無法運(yùn)行我們所需要編譯器;有時(shí)又是因?yàn)槟康臎]有建立,連操作系統(tǒng)都沒有,根本談不上運(yùn)什么編譯器,為了能夠進(jìn)行目標(biāo)機(jī)上的開發(fā),交叉編譯是唯一出路。在我們的嵌入式系統(tǒng)中,由于速度和容量等要求,都不可能滿足在嵌入式系統(tǒng)上編譯程序,故我們需要專門建立為某個(gè)平臺(tái)而建的交叉編譯環(huán)境。如前文所述,uClinux的開發(fā)環(huán)境全面的采用了GNU開發(fā)套件的解決方案。針對開發(fā)板實(shí)際上需要做的工作是在宿主機(jī)上建立交叉編譯工具。使用這些工具可以形成可運(yùn)行于嵌入式系統(tǒng)的二進(jìn)制文件。而在宿主機(jī)上最好安裝的是Linux設(shè)置交叉編譯器工具鏈?zhǔn)且豁?xiàng)簡單的任務(wù):它包括源代碼、修補(bǔ)補(bǔ)丁、配置、編譯、設(shè)置頭文件、安裝以及很多很多的操作。另外,這樣一個(gè)徹底的構(gòu)建過內(nèi)存和硬盤的需求很大。如果沒有足夠的內(nèi)存和硬盤空間,那么在構(gòu)建階段由于相關(guān)性、配置或頭文件設(shè)置等問題會(huì)突然冒出許多問題。因此能夠從因特網(wǎng)上獲得已預(yù)編譯的二進(jìn)制文件是一件好事。GNUARM平臺(tái)的工具集,可C,Carm-linux-gcc或arm-linux-g++生成目標(biāo)文件,編寫連接文件,用連接器生成最終目標(biāo)文件(elf格式),用二進(jìn)制轉(zhuǎn)換工具(elf2flt)生成可至開發(fā)板的二進(jìn)制代碼。建立交叉編譯環(huán)LinuxRedhat9.0一個(gè)能編譯arm‐linux內(nèi)核及驅(qū)動(dòng)、應(yīng)用程序等開發(fā)環(huán)境的步驟如下。 linux\中的arm‐linux‐gcc‐3.3.2.tgz、arm‐linux‐gcc‐2.95.3.tgz和arm‐linux‐gcc‐3.4.1.tgz拷貝到某個(gè) 下如tmp\,然后進(jìn)入到該 #cd\tmp#tarxvzfarm-linux-gcc-3.3.2.tgz–C/#tarxvzfarm-linux-gcc-2.95.3.tgz–C/#tarxvzfarm-linux-gcc-3.4.1.tgz–C/#mkdirpopt/yangchu2440建立工作目錄,備用執(zhí)行該命令,將把a(bǔ)rm‐linux‐gcc(版本3.3.2,2.95.3和3.4.1)分別安裝到/usr/loca/arm/2.95.3 的,2.95.3VIVI的,3.4.1版本是用來編譯內(nèi)核的,兩個(gè)版本均可#gedit編輯/root/.bashrc文件,在最后一行export7-1:在命令行輸入arm-linux-gcc–v,會(huì)出現(xiàn)如下信息,這說明交叉編譯環(huán)境已經(jīng)成7-2:如果設(shè)置2.95.3版本的編譯器,只需更改exportPATH=$PATH:/usr/loca/arm/2.95.3/bin即可。注意,不能同時(shí)使用兩個(gè)編譯器。vivi2.95.3立linux開發(fā)環(huán)境”一節(jié)。vivi的源代碼包vivi2440_src.tar.gz位于光盤的bootloader,把vivi2440_src.tar.gz到某一個(gè),進(jìn)入該,運(yùn)行#mkdir#tarxvzfvivi.tgz–C執(zhí)行該命令將把vivi源代碼解壓到/opt/vivi ,進(jìn)入vivi源代碼目 #cd/opt/vivi 一般不需要更改任何配置,按左右方向鍵,選擇<Exit>7-一般不需要更改任何配置,按左右方向鍵,選擇<Exit>7-7- 下生成了vivi.nand,您可以參考上面的章節(jié)把vivi.nand燒寫到part·partshow·partaddpartnamepart_start_addrpart_leng0·partdelpartname·partsavepartnet·netsetipaddrxx.xx.xx.xx·netsetserveripxx.xx.xx.xxtftpserver·netsetgatewayxx.xx.xxxx·netsaveip(暫不提供nettftpserverip本地ram地址文件名將tftserver上的文件到板的sdram·netflashpartname將的文件燒寫到flash上名為partname的t分區(qū)·netipaddr不用說了吧看網(wǎng)絡(luò)通load·loadflashpartnamex使用xmodom協(xié)議通過串口文件并燒寫到partname分·loadrampartnameoraddrx使用xmodom協(xié)議通過串口文件到內(nèi)存param·paramshow·paramsetparamnamevalue·paramsetlinux_cmd_line“l(fā)inuxbootparam”linux·paramsaveboot·bootbootlinux·bootramramaddrlenth啟動(dòng)以及到sdram中的linux內(nèi)核。和nettftp命令結(jié)合調(diào)試linux內(nèi)核bootce·bootcebootwincevga/tv·vgaVGA·tv640400TVgo·goaddrnettftp相結(jié)合調(diào)試其他操作bon·bonbonpart1192k2M該命令把NANDFlashbon命令會(huì)清除0地址的bootloader,所以一般不使用。使用實(shí)ip1tftpserverip0.vivi分區(qū)為:vivi>partmtdpartinfo.(5partitions)nameoffsetsizeflagvivi:0x 0128kparam:0x 064kkernel: 0x001c00000root: 0usr: 0x03cf80000怎樣升級(jí)vivi>nettftp vivi>netflash怎樣設(shè)置默認(rèn)顯示輸vivi>paramsetdistypevivi>param0:lcd:vga:tv640x400怎樣設(shè)置啟動(dòng)時(shí)等待輸入vivi>paramsetbootdelay0x11111(隨便輸入)vivi>paramsavevivi>paramsetostype1/2vivi>paramsave其中:2:windowsce解壓內(nèi)核源代Linux內(nèi)核的源代碼包s3c2440_kernel2.4.18_rel.tar.gz位于光盤的 #tarxvzfs3c2440_kernel2.4.18_rel.tar.gz–C#rarx
7-7-裝載缺省配置文進(jìn)入內(nèi)核源代 #ls7-.config.old可能還有其他配置文件,請選擇適合自己需要的即可。然后執(zhí)行“makeconfig”,出現(xiàn)配置內(nèi)核界面,選擇進(jìn)入“LoadanAlternate7-.config,也可以輸入自己需要的配置文件,并回車,在主編譯內(nèi)
7-arm-linux-gcc-3.4.1的編譯器,請務(wù)必檢查安#make7-#make7- 下生成linux內(nèi)核映象文件7-您可以使用以上章節(jié)介紹的方法把zImage到開發(fā)板測試進(jìn)入 config,選擇system
7-進(jìn)入 中輸入 config,選擇usb7-USBhumaninterfacedeviceforfullHID如何配置優(yōu)盤的支
7-進(jìn)入 中輸入 config,選擇usb
7-進(jìn)入 中輸入 config,選擇networkdeviceEthene
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大數(shù)據(jù)與云計(jì)算技術(shù)應(yīng)用開發(fā)合同
- LED亮化安裝及施工安全協(xié)議書范本
- 戶外廣告宣傳牌制作安裝工程合同
- 成都政府采購協(xié)議書范本
- 電氣設(shè)備購銷合同范本
- 太陽能光伏發(fā)電項(xiàng)目合作框架協(xié)議書范本
- 貨物購銷合同書
- 中介合同使用指南
- 項(xiàng)目進(jìn)展情況及存在問題反饋會(huì)議紀(jì)要
- 防火卷簾門采購合同格式
- 建筑工地工人職業(yè)健康體檢計(jì)劃
- 河南省鄭州市十校聯(lián)考2024-2025學(xué)年高二上學(xué)期11月期中考試語文試題
- 妊娠期肝內(nèi)膽汁淤積癥臨床診治和管理指南(2024版)解讀課件
- 山東省濰坊市2024-2025學(xué)年高三上學(xué)期期末 地理試題(含答案)
- 招聘專職人員報(bào)名表
- 牛津上海版小學(xué)英語四年級(jí)下冊(英語單詞表)
- 2024年體育賽事運(yùn)動(dòng)員贊助合同3篇
- 2023年機(jī)動(dòng)車檢測站質(zhì)量手冊和程序文件(根據(jù)補(bǔ)充要求編制)
- 路遙介紹課件
- 腸道健康管理
- 2024年高考語文復(fù)習(xí):古詩文閱讀強(qiáng)化練習(xí)題匯編(含答案解析)
評論
0/150
提交評論