版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
拔插 第一章快速上手指 第二章產(chǎn)品簡 第三章軟件系 使用說 結(jié) 在RAM中運行內(nèi) 啟動燒制的嵌入式的LINUX系 利用U-Boot更新U-Boot自 Qt的移 第四章接口使用介 USB USB 100M以太 輸入(可選ov9650或 串口通信和GPRS撥號(可選 8x2鍵 SD 第五章硬件系 片 中 總 第六章機械特 第七章底板的硬件設(shè) PCB設(shè)計和排版時的注意事 附錄ALINUX常見術(shù) 附錄 常用LINUX命 附錄 gcc與 附錄 附錄 Qtopia移 附錄 附錄 ubuntu8.04中若干服務(wù)的配置與安 附錄 Redhat NFS和TFTP服務(wù)器的配 附錄I參考資 1.開發(fā)板的簡單測試(1HHARM6410開發(fā)板實物圖發(fā)環(huán)境。Windows98、2000、XP安裝盤中都附有超級終端應(yīng)用程序。如果您的系統(tǒng)沒有安裝超級請輸入連接名稱,這個名稱可以為任意字符,比如輸入“HEH”然后點擊“確定”按鈕設(shè)置連接使用COM1(1)點擊“確定”按鈕COM1的屬性設(shè)置窗口,如下圖。請按照上圖正確設(shè)置串口(每秒位數(shù)為115200數(shù)據(jù)位8奇偶校驗無,停止位1數(shù)據(jù)流控“無),需要按一下Enter(回車鍵),s提示符“#?,F(xiàn)在就可以鍵入Linux令操作開發(fā)板了,例如可以鍵入ls命令列出開發(fā)板已經(jīng)存在哪些 看FAQ(常見問題解答)。HHARM系列嵌入式LINUX開發(fā)套件常見問題解答版本請見 在Linux操作系統(tǒng)下,用戶可以使用 第二章產(chǎn)品簡HHARM6410是科技推出的用于高端手持設(shè)備、微型智能控制設(shè)備的開發(fā)套件。采用韓國三星公司的ARM11內(nèi)核的處理器S3C6410/S3C6410。該款套件板的尺寸僅相當于一個48mm*67mm的方塊的大小。HHARM6410套件由板和底板(外設(shè)板或稱基本板組成,板上集成三星S3C6410處理器,128MBDDR1GBNANDFLASH256KNORFLASH。為您的應(yīng)RS-232串口一個USBHOST接口(USBdevice接口在板上SDIO接口WIFI板和底板配合即構(gòu)成一個最小的完整inx發(fā)。同時科技提供完備的嵌入式Linux開發(fā)環(huán)境及豐富的開發(fā)調(diào)試工具軟件。S3C6410微處理器的特性:ARM11嵌入式處理器內(nèi)核,主頻可達3232位外部地址總線;完全靜態(tài)設(shè)計(0-667M);控制器(八個體)SROM、SRAM控制器,NAND復(fù)位時引導(dǎo)選擇(8比特、16比特或NAND可供選擇);個三十二位定時器(time0,time1帶有);UART,SupportsIrDA 支持STN與TFTIIS音頻接USBhost口,USBdeviceIIC-Bus接口(6410僅一個,6410支持兩個;8x8自定義按鍵camera_ifTV_outMFC(多格式編)接口,支持H263、H264、MPEG4和VC-1硬件編HHARM6410開發(fā)套件硬件主要結(jié)構(gòu):SumsungS3C6410處理器1Gbytes8位NANDFLASH2X64Mbytes16RS-232USBhost,一個device)接口一個SD卡接口MFCH/WHHARM6410為一臺采用S3C6410處理器、提供RS232接口,安裝有嵌入式Linux操作系統(tǒng)的軟硬件開發(fā)平臺,其功用相當于一臺裝有Linux,裝有串口的PCHHARM6410,它提供的所有軟件(操作系統(tǒng)和應(yīng)用軟件)都在板上FLASH里面,就相當于PC機的硬盤。FLASHBootloaderHHARM6410平臺上開發(fā)應(yīng)用程序或更改其上的操作系統(tǒng)的工作方式(因為操作系統(tǒng)是開放源代碼的,和在PC上開HHARM6410開發(fā)驅(qū)動及應(yīng)用時,把相關(guān)代碼的編輯、編譯等工作寄宿到一臺PC機上去完成,PC機上編譯后的二進制代碼想隨著微處理器的產(chǎn)生,價格低廉、結(jié)構(gòu)小巧的CPU和外設(shè)連接提供了穩(wěn)定可靠的硬件架構(gòu),嵌入式操作系統(tǒng),比較著名的有Vxwork、pSOS、Neculeus和WindowsCE。但這些操作系統(tǒng)Linux的推廣提供了廣闊的發(fā)展前景。還有,對上層應(yīng)用開發(fā)因為Linux的開放性,Linux非常適合多數(shù)Internet設(shè)備。Linux可以支持不同的設(shè)備,支持Linux是大勢所趨,其巨大的市場潛力與無限商機必然會進一步吸引嵌入式操作系統(tǒng)主要有PalmOS,WindowsCE,EPOC,LinuxCE,QNX,ECOS,高端嵌入式能,但其價格也很高,一般人難以接受。微軟的WindowsCE也有此類功能,卻不具備大多數(shù)嵌入Linux操作系統(tǒng)以價格低廉、功能強大又易于移植而正在被廣泛采用,成為新興的力量,所以,眾多商家紛紛轉(zhuǎn)向了嵌入式Linux。Linux為嵌入操作系統(tǒng)提供了一個極有的選擇,它是個和Unix相似、以為基礎(chǔ)的、PPCARM,作系統(tǒng)中“后門”的。同時由于有GPL的控制,大家開發(fā)的東西又大都相互兼容,不會分裂。Linux用戶遇到問題時可以通過Internet向網(wǎng)上成千上萬的Linux開發(fā)者請教,這使最的問題也有辦法解決。Linux帶有Unix用戶熟悉的完善的開發(fā)工具,幾乎所有的Unix系統(tǒng)的應(yīng)Linux上。Linux還提供了強大的網(wǎng)絡(luò)功能,有多種基于XWindow的窗口管理器可供選擇,其強大的GNU工具鏈可以很容易得到,不但成熟完善、而且使用方便。可應(yīng)用于多種硬件平臺。Linux Linuxnative方式進行的,即本機(HOST)開發(fā)、調(diào)試,本機運種叫做交叉編譯調(diào)試的方式。交叉編譯調(diào)試環(huán)境建立在宿主機(PC機)上,對應(yīng)的開發(fā)板并不能在宿主機上執(zhí)行,而只能在目標板上執(zhí)行),然后把可執(zhí)行文件到目標機上運行。調(diào)試的支持作出選擇。宿主機和目標板的處理器一般都不相同,宿主機為In或AMD處理器,而目HHARM6410SAMSUNGS3C6410處理器,GNU編譯器提供這樣的功能,在編譯編譯器就是要安裝一臺裝有指定操作系統(tǒng)的PC機作宿主開發(fā)機,宿主機上的操作系統(tǒng)一般要求安裝Linux,但Linux有多個版本,在此,科技推薦用戶使用Ubuntu作為本套開發(fā)系統(tǒng)的宿主PC操作系統(tǒng)。然后在宿主機上要建立交叉編譯調(diào)試的開發(fā)環(huán)境。環(huán)境的建立需要許多的軟件模NFS(mount所用 結(jié)光 arminst.sh:安裝文件,可以在s提示符下使用vim進行編輯,進入光盤 鍵入./arminst.sh,就會提示您安裝上面提到的tgz擴展名的文件,并且安裝相應(yīng)的編譯器和拷 Doc:HHARM6410techmanual-vXX開發(fā)套件的操作及說明手冊及手冊 請您啟動PC上的Linux操作系統(tǒng),進入安裝光盤,用root用戶權(quán)限運行arminst.這個s腳在根下面建立/HHARM6410在/usr/local/arm在 安裝提供的光盤以后,會在您的PC的根下生成“HHARM6410”等字樣的, /HHARM6410/s3c-u-boot-1.1.6/:U-Boot源代 ,版本是1.1.6,在 下執(zhí)HHTECH.mk.ubootHHARM6410的bootloader——u-boot.bin :應(yīng)用程 :中是編譯好的映像文件或者可執(zhí)行文件,其中:zImage是編譯好的Linux內(nèi)核映像文件(和文件系統(tǒng)壓縮在一起)u-boot.bin是編譯好的引導(dǎo)程序二進制代碼,qtopia-2.2.0是編譯好的qt程序. :開發(fā)板啟動時默認的串口終端配置,使用第一個串口(ttyS0)。如果您的串口設(shè)置出了問題,可以把此文件拷貝到PC機的/etc,然后退出,再重新進入即可。 中是編和TVOUT相關(guān)的驅(qū)動和應(yīng)用程序 /HHARM640/multimedia/post_processor/:包括圖像顏色空間轉(zhuǎn)換和縮放的預(yù)處理驅(qū)動及應(yīng)用 Linux/HHARM6410/s3c-linux-2.6.21下,交叉編譯的工具被放置到/opt/crosstool/gcc-4.0.1-glibc-2.3.5/和/usr/local/arm(下表是HHS3C6410-R12.6.21版本,對HHS3C6410-R2其編譯器在/opt/arm-2008q3/bin/2.6.24)GNU 即可編譯內(nèi)核,編譯完內(nèi)核以后,會自動把新生成的zImage到 的tftp命令) (可見內(nèi)核版本為:LinuxKernelv):make即可編譯生成自己定制的內(nèi)核映像文件zImage??萍继峁┡渲脙?nèi)核的默認配置文件hharm6410.config。如果把內(nèi)核配置亂了,可以在 文件.config。cphharm6410.config vim要對內(nèi)核和文件系統(tǒng)做出修改,則需要重新燒寫Linux內(nèi)核與文件系統(tǒng)映像文件zImage(注意,HHARM6410平臺,我們把內(nèi)核和文件系統(tǒng)壓縮成一個文件了)。:linux下的一個終端程序,就像windows中的超級終端一樣,只需要在S提示”#”下鍵入就可以進入Ctrl+a,o進入配置,退出請按Ctrl+a,q,詳細說明,參考的幫助文件和手冊。setenvserverip nanderase40000 ashnand 40000 按一下復(fù)位鍵,在 中按一下空格鍵讓開發(fā)板停留在“SMDK6410#”提示符下U-Boot1.1.6(Jul 72008-10:52:29)forSMDK6410 Fclk=533MHz,Hclk=133MHz,Pclk=66MHz(ASYNCMode) 128 0 64 Hitanykeytostop SMDK6410# SMDK6410#setenvserverip//設(shè)置TFTPU-BootTFTPIPPCIPU-BootSMDK6410#setenvipaddr
SMDK6410#setenvgatewayip//設(shè)置網(wǎng)關(guān)ipSMDK6410#//PCIPU-setenvIP通過TFTP SMDK6410# dm9000i/o:0x ,id:0x90000a46MAC:00:22:12:34:56:90operatingat100MfullduplexTFTPfromserver11;ourIPaddressis22Filename'zImage'.Loadaddress:0xBytestransferred (68d7c8擦除flash、燒寫 的內(nèi)核映像文SMDK6410#nanderase40000NANDerase:device0offset0x40000,size0xb00000Erasingat0x73c000--100%complete.SMDK6410#nand 40000NANDwrite:device0offset0x40000,sizebyteswritten:值b00000比剛才使用tftp時最后一行提示信息的括號中的zImage文件大小68d7c8hex要大命令默認從TFTP服務(wù)器的/tftpboot文件到開發(fā)板的RAM中的,要保證所指定的TFTP服務(wù)器的/tftpboot下存在要的文件,否則時會出現(xiàn)“FilenotFound”這樣的提示,可以把HHARM6410/images下科技出廠時可以使用的文件拷貝到TFTP服務(wù)器的/tftpboot下以供tftp。nanderase命令后的兩個參數(shù)的意義為:第一個參數(shù)是要檫除的nandflash的起始地址;第nandwrite命令后的三個參數(shù)的意義為:第一個參數(shù)是剛才通過tftp把文件到開發(fā)板中給這個文件的空間大小,此參數(shù)的值一定要比剛才通過tftp命令的文件的大小要大,否則,剛才的文件只燒錄了一部分,沒有全部燒錄進去,就會造成問題。此值是根據(jù)tftp命令時提示的4個數(shù)字為“0U-Boot提示符(SMDK6410help查看nandwrite命令的幫助。首先通過以太網(wǎng)從指定的TFTP服務(wù)器上指定的文件到內(nèi)存中,然后把內(nèi)存中的內(nèi)容燒寫到flash。PC機的以太網(wǎng)口直接相連,要有交叉對接網(wǎng)線(1,3;2,6交換),如果要用G.U-Boot的提示符(SMDK6410#)下,若已經(jīng)鍵入過命令,按回車表示確認鍵入令,若再U-Boot提示符(SMDK6410helpsetenvbootcmd“setenvserverip87;tftp 后從87的宿主機處zImage并啟動。u-boot.bin,在“SMDK6410#”提示符下,鍵入以下命令,即可把您剛設(shè)置的IP保存在flash中。SMDK6410# setenvserverip //設(shè)置TFTP服務(wù)器的IPSMDK6410# setenvipaddr //設(shè)置開發(fā)板網(wǎng)口的IPSMDK6410# 重新啟動開發(fā)板,以后文件時,指定的TFTP服務(wù)器的IP就改成您剛設(shè)置的IP了,這樣并沒有重新燒寫u-boot.bin文件。重新啟動開發(fā)板,則下次通過tftp文件時,所要求的tftp服務(wù)器的IP就為22SMDK6410#bootcmd=nandread 4000000000;bootmEnvironmentsize:238/16380修改設(shè)置TFTP服務(wù)器的IP源文件,重新燒寫u-boot.bin文件。 然后運行s3c-u-boot-1.1.6 下的HHTECH.mk.uboot,重新編譯U-Boot,重新燒寫新的u-boot.bin即可。RAM中運行內(nèi)flashRAM中運行,測試一下新的內(nèi)核和文件系統(tǒng)是否可以正常使用,如果確定最終的提示符”SMDK6410運行內(nèi)核SDMK6410# zImage這樣做的好處是不用頻繁的燒寫flash,可以延長flash的使用,推薦用戶在調(diào)試自己編譯flash中去。啟動燒制的嵌入式的LINUX LinuxU-BootU-Boot引導(dǎo)代碼無法啟動,、燒寫內(nèi)核及文件系統(tǒng)等工作都無法進行?!赫f明』bootloaderPCRedbootflashu-boot.bin、ppcboot.binRedboot.bin等當需要對U-Boot本身進行修改的時候,式是通過仿真器進行燒寫,另式是在U-Boot引導(dǎo)以后,通過tftp的u-boot.bin后,使用U-Boot提供令進行燒寫,像燒寫內(nèi)核SMDK6410# u-dm9000i/o:0x ,id:0x90000a46MAC:00:22:12:34:56:90operatingat100MfullduplexTFTPfromserver11;ourIPaddressis22Filename'u-boot.bin'.Loadaddress:Loading:Bytestransferred=196608(30000SMDK6410#nanderase0SMDK6410#nand 0宿主機是一臺運行LINUX的PC機,目標板即HHARM6410開發(fā)板。應(yīng)用程序的開發(fā)有先在宿主機(InCPU)上調(diào)試通過后,再移植到目標板(HHARM6410)上。PC機上運行作為目標板的顯示終端,在目標板上通過NFS(網(wǎng)絡(luò)文件系統(tǒng))把宿主機共享出來的mount上以后,此共享也成了開發(fā)板的了,直接在開發(fā)板上運行共享下的程序,如果出錯,再到PC機終端下去修改,再編譯、調(diào)試。下面給出這種直接TARGET模式下的開發(fā)流程: (/),通過NFS共享出去了,但您的機器在配置NFS時,不 mount–onolock11:/Share/tmp (把宿主機上NFS共享出來的/Share 到開發(fā)板的/tmpNFSNFS共享出來的,一旦通過mount掛載到開發(fā)板上,則開發(fā)板上就多了這樣一個資源(本及其子下的所有文件),所以,在PC機上所修改的、甚PC機把某個資源共享出去了,只要宿主機給您什么權(quán)限(,刪除,執(zhí)行),開發(fā)板的終端下就有操作某共享資源的權(quán)限。當然,以上是PC機把資源共享出去,而不是開發(fā)板把某個資源共享出去。LinuxLinux軟件開發(fā)過程類似,需要注意的是交叉編譯,主要是選Linux下的應(yīng)用程序大多數(shù)都是用C語言開發(fā)的。用C語言開發(fā)應(yīng)用程序,首先遇到的問題就CHHARM6410MMULinuxPC機上使用的Linux一樣,用的都是glibc,只不過是使用不同的編譯器編譯程序而已。裝在/opt/crosstool/gcc-4.0.1-glibc-2.3.5/arm-unknown-linux-gnu/arm-unknown-linux-gnu/lib/下,在應(yīng)用程序的Makefile文件中指定了編譯器的路徑后,就會自動這些庫文件。Makefile文件的格式和內(nèi)容可以參考/HHARM6410-R1/applications/下某個中的Makefile。創(chuàng)建o.c:#cd #includeint{printf("oWorld!\n");return0;}該程序只是向串口打印oworld!字符串。編寫Makefile文件要用arm-none-linux-gnueabi-gcc這個交叉編譯器,用此編譯器編譯出來的文件,才能在HHARM6410CFLAGS=-DDEBUG- -$(CC)$(CFLAGS)-o$@rm-rf*.o o 下運行所謂的文件系統(tǒng)就是用戶程序和文件的集合。制作文件系統(tǒng)一般是在LinuxPC機上把用戶程序和文件放到一個統(tǒng)一的下,然后通過一個工具把此打包成一個二進制映象(image)文件,Linux內(nèi)核啟動完成后,會掛接文件系統(tǒng)映象文件并做解包的工作,當然第一個掛接的就是根文件系統(tǒng)(rootfs)了,有了rootfs并提供了S 之后,就可以通過S 其它文件系統(tǒng)(FS)了。所以,若用戶要添加自己的程序到文件系統(tǒng)的image里面去,就是把自己的程序或文件到這個文件系統(tǒng)在PC機上的相應(yīng)里面,然后重新打包生成image,這樣你的那么具體在做“把自己的程序或文件到這個FS在PCLinux上的相應(yīng)里面去”這個步/HHARM6410/romfsLinux的文件系統(tǒng)映像文件 下 General cd/HHARM6410/romfs ohhtech/app然后就是使用如下命令,生成新的內(nèi)核文件zImagecd/HHARM6410/s3c-linux-2.6.21#lsasp_testcam2fbkey mp3ynetperfossrec recordttytestusbcamerer_testbonnie++omfc-disymyerossypost_testrunqpetv_test o 也許您想讓o文件在開發(fā)板啟動以后自動執(zhí)行,不需要每次手動鍵入命令運行,像科技提供的開發(fā)板的IP設(shè)置、LCD上顯示的QT以及一些自動加載驅(qū)動一樣,那就把/hhtech/app/o這一行命令添加到開發(fā)板根文件系統(tǒng)的啟動/etc/init.d/rcS里BusyBox最初是由BrucePerens在1996年為DebianGNU/Linux安裝盤編寫的。其目標是GNU/Linux系統(tǒng),這可以用作安裝盤和急救盤。一張軟盤可以保存大約1.4-1.7MBLinux內(nèi)核以及相關(guān)的用戶應(yīng)用程序使用。BusyBoxLinux?工具的一個單個可執(zhí)行實現(xiàn)。BusyBox包含了一些簡單的工具,它的選項比傳統(tǒng)的版本要少有些人將BusyBox稱為Linux工具里的“。BusyBox了這樣一個事實:很多標準Linux工具都可以共享很多共同的元素。例如,很多基于文件的工具(比如grep和find)都需要在中搜索文件的代碼。當這些工具被合并到一個BusyBox3.5MB200KB在實際使用中,通常把busybox放在根文件系統(tǒng)的bin下,bin和sbin下的很多可執(zhí)行文件其實都是到busybox,busybox到底支持哪些命令,可以在busybox的源代碼下進行配置,新的busybox支持make config進行配置,配置完以后,把新生成的busybox替換掉根文件系統(tǒng)中原來的busybox,相對于PC機上的相關(guān)命令,busybox上支持的同樣令一般情況下Busybox源代碼科技一般放在/HHARM6410/applications/busybox #cd/HHARM6410/applications/busybox ---Installation ---所以執(zhí)行make;makeinstall后會自動更新文件系統(tǒng)中的busybox,然后再按照前面的方法更新QtQt移植參見附錄E第四章接口使用介為了測試方便,科技在文件系統(tǒng)的根下建立了hhtech這樣的,并在其下建立相關(guān)子,執(zhí)行/hhtech/app下的相關(guān)程序,就可以對接口進試。USBHHARM6410底板提供了一個USBHost接口,可支持U盤,USB頭,USB無線網(wǎng)卡,籃牙適配器等多種USB設(shè)備,但使用不同的設(shè)備需要開發(fā)相應(yīng)的設(shè)備驅(qū)動。標準套件提供了U盤的驅(qū)動程序,用戶可直接使用U盤。~#usb1-1:newfullspeedUSBdeviceusings3c2410-ohciandaddress2usb1-1:configuration#1chosenfrom1choicescsi0:SCSIemulationforUSBMassStoragescsi0:0:0:0:Direct-USB SD/MMCPQ:0ANSI:0SCSIdevice-bytehdwrsectors(8196sda:WriteProtectissda:assumingdrivecache:writeSCSIdevicesda: -bytehdwrsectors(8196MB)sda:WriteProtectisoffsda:assumingdrivecache:writethroughsda:sda1sd0:0:0:0:Attachedscsiremovabledisksdasd0:0:0:0:Attachedscsigenericsg0type0#catmajor 8081~#mount-tvfat/dev/sda1~#/tmp#rc- rc-支持多種文件系統(tǒng),如:EXT2,VFAT等。 /HHARM6410/s3c-linux- 進入Device ---SCSIdevice ---進入Device ---USB ---USBUSBDevice驅(qū)動位于/HHARM6410/s3c-linux- 下,主文件HHARM6410的板有一個usbdevice接口,并提供usbdevice的設(shè)備功能。#cd/HHARM6410/s3c-linux-#make進入Device ---USB ---USBGadget ---makemakemodulesinstall燒寫新的zImage#ls/lib/modules/-cfs- #ddif=/dev/zeroof=10mbs=1M#modprobegfilestoragefile=10mstall=1#mount-oloop10m#lsfilesd卡并找到后會創(chuàng)建/dev/mmcblk0p1節(jié)點,這時可以加載g_file_storage驅(qū)動:#modprobegfilestoragefile=/dev/mmcblk0p1stall=1LCD/HHARM6410240×320TFTLCD(帶觸摸屏framebuffer10.4640×480的大屏,3.5320x240套件還提供了一寫測試例程,如:ts_test, 例程源代碼 進入Device ---Graphics ---/hhtech/app/tsQt100M驅(qū)動程序主文件:/HHARM6410/s3c-linux-HHARM6410通過外接一片DM9000以太網(wǎng)MAC擴展了一個10/100M自適應(yīng)的以太網(wǎng)接 進入Device ---Networkdevice ---Ethernet(10or ---PC /hhtech/app/netperf- 11PCIPTCPSTREAMTESTfrom()port0AF_INETto11(11)0 Socket Size 16384 輸入(可選ov9650或 進入Device Multimedia 進入Capture ---SelectCISmodule#/hhtech/app/cam2fb #/hhtech/app/cam2fb 需要在SAA7113旁邊J20跳線帽插上(使用OV9650請移除然后在make 獲得更好的圖像質(zhì)量建議將跳線J20換成在其背后焊接33歐姆電阻。cam2fbcam2fb需要兩個參數(shù),第一個參數(shù)指定頭設(shè)備節(jié)點,S3C6410的頭接口支持preview輸出和codec輸出,/dev/12對應(yīng)codec輸出,/dev/13對應(yīng)preview輸出;第二個參數(shù)指定lcd屏的顏色深度,對應(yīng)240x320的16位屏第二個參數(shù)就為16.新版的程序不需要這個參數(shù)cam2fbcapt并按回車就會截圖并保存為/tmp/xx.bmpxxquit并GPRS撥號(可選 進入Device Characterdevices Serial (ttytest;在默認的輸入輸出串口1所接的 #/hhtech/app/ttytest在串口2所接 窗口下可看到收到ttytest程序發(fā)過來的字符。在第二個串口接的中鍵入字符,在默認的輸入輸出串口1的 1、首先是根據(jù)開發(fā)板的串口2的信號定義制作接MODEM的串口線,科技提供的開發(fā)板MODEM串口,所以,需要將開發(fā)板的“收”MODEMMODEM的“收”信號相連,主要用到的就是四個信號(RX,TX,RTS,CTS),另外還有地(DB95DB9接口的外殼相連即可)DB9MODEM2、3交換,7、8交換。做好線之后tip軟件進行與MODEM通信的測試:tip-l/dev/ttyS1-s2、配置內(nèi)核支持PPP,并編譯撥號用相關(guān)應(yīng)用程序:pppd/chat。關(guān)于內(nèi)核支持,就是makeconfig在內(nèi)核配置的Networkdevicesupport--->中選擇PPP/SLIP/CSLIP等,具體細節(jié)<*>PPP(point-to-pointprotocol) PPPmultilinksupport(EXPERIMENTAL) PPPsupportforasyncserialports PPPsupportforsyncttyports< PPPDeflatecompression< presscompression< PPPoverEthernet(EXPERIMENTAL)<*>SLIP(serialline) CSLIPcompressedheaders3、編寫撥號和相關(guān)配置文件。做撥號可以先在安裝Linux的PC上手工撥號成功(建議不 系市場部PPP(Modem/GPRS/CDMA拔號,通過串口)撥號軟件包和PPPoe(ADSL拔號,通過以太網(wǎng)口)拔號軟件包,軟件包中提供了PPP和PPPoe拔號的源代碼和說明文檔。8x2鍵測試應(yīng)用程序源代碼:/HHARM6410/applications/keypad/key1Pressedkey1key2key2 支持ADPCM/PCM和WAV文件 進入Device --- ---進入AdvancedLinuxSound ---進入SystemonChipaudio ---進入SoCAudiofortheSamsung ---。/hhtech/app/record-o/hhtech/app/myer/hhtech/app/mp3yerSD 進入Device ---MMC/SDCard ---開發(fā)板啟動后插上sd卡后終端顯示:#s3c-hsmmc:cards3c-hsmmc:cardinserted.s3c-hsmmc:cardremoved.mmc0:hostdoesnotsupportreadingread-onlyswitch.assumingwrite-enable.mmc0:newhighspeedSDcardataddressb368mmcblk0:mmc0:b368 mmcblk0:p1yaffs:devis nameis"mmcblk0"yaffs:passedflags"flush,utf8"yaffs:Badmountoptionyaffs:devis nameis"mmcblk0"yaffs:passedflags"flush,utf8"yaffs:Badmountoption現(xiàn)掛載sd#mount/dev/mmcblk0p1#cd/mnt#lsHHARM6410-Integration-R1RTC,利用備用電池供電。A.讀寫Linux系統(tǒng)時鐘 //linux系統(tǒng)時date //Linux2008822日,1626BRTC //RTC硬件時- - TV-#insmod/hhtech/modules/s3c#insmod/hhtech/modules/s3c-tvscaler.ko#insmod/hhech/modules/sc-tvenc.o運試:#/hhtech/app/tvtest1測試程序tv_test是把硬件的h264數(shù)據(jù)通過TV縮放和TV編碼輸出到電視上,所以需 驅(qū)動s3c_mfc.ko,針對一般硬件編 的驅(qū)動模塊也是s3c_mfc.ko。如果是顯示或把myer軟件的數(shù)據(jù)在TV上輸出就不需要加載這個驅(qū)動模塊了harryp_320x240.264是提供的h264編碼的流;所有測試(包括h263,h264,vc1 其中s3c_mfc.ko是TV輸出的硬件編模塊mfc_for_tvout.ko與針對一般硬件編的驅(qū)動insmod/hhtech/modules/s3cmfc.ko#insmod/hhtech/modules/s3cpp.ko#/hhtech/app/mfc-disy/mnt/veggie.264MFC模塊把文件為YUV420格式,再通過POSTProcessor進行顏色空間轉(zhuǎn)和縮放成為RGB16240x320的數(shù)據(jù)并在LCD上顯示。s3c_pp.ko就是postprocessor的驅(qū)動模塊, mfc-disy后的兩個參數(shù),第一個參數(shù)表示需要的文件,第二個是文件格式,可以為h264,mpeg4,h263或vc1。/HHARM6410/multimedia/MFC/mfc_app/File_Operation/下的應(yīng)用程序包括mpeg4/h264/h263編碼測試和mpeg4/h264/h263/vc1測試以及在lcd上顯示??梢孕薷膖est.c來編#include"line_buf_test.h"#include"encoder_test.h"#include"disy_test.h"#include"demo.h"intmain(intargc,char{Test_Disy(argc,argv);return0;}riseessis/Networking---> Device ---[*]Networkdevicesupport--->WirelessLAN--->#modprobe irailibertas_sdio:LibertasSDIOlibertas_sdio:CopyrightPierreOssmansd8686_helper.binlibertas:eth1:MarvellWLAN802.11# nowireless nowireless IEEE802.11b/gEMode:ManagedFrequency:2.437GHzAccessPoint:Not-BitRate:0 Tx-Power=15Retrylimit:8 RTSthr=2347B Fragmentthr=2346BEncryptionkey:offPowerLinkQuality:0Signallevel:0NoiseRxinvalidnwid:0Rxinvalidcrypt:0Rxinvalidfrag:0Txexcessiveretries:0Invalid Missed#iwlist Interfacedoesn'tsupportscanning.Interfacedoesn'tsupportscanning.eth1Scancompleted:Cell01-Address:00:22:93:06:FC:E4Frequency:2.412GHz(ChannelQuality=41/100Signallevel=-89dBmNoiselevel=-96dBmEncryptionkey:onBitRates:1Mb/s;2Mb/s;5.5Mb/s;11Mb/s;69Mb/s;12Mb/s;18Mb/s;24Mb/s;3648Mb/s;54IE:VersionGroupCipher:TKIPPairwiseCiphers(1):TKIPAuthenticationSuites(1):iwconfig,iwlist在/hhtech/app/下libertas、libertas_sdio在li/modles/kernel/rivers/et/wirelesslibers/下,需要的話要斷電重啟,ifi模塊的reset引腳在軟件中沒有控制,所以直接reset板子會導(dǎo)致wii沒有工作。
(圖S3C6410功能模塊11G×8nandFLASH1GNAND,速150ns;兩片32M×16位數(shù)據(jù)寬度的DDRRAM構(gòu)成共128MDDRRAM。底板提供一(或兩)RS232接口(COM1;USB口(hose,LCD和觸摸屏接,apho一路輸入(saa7113,ov9650二選一一路輸出(TV-out),一個4X4的鍵盤,一個SDIO接口WIFI模塊。其它接口請見底板的PCB圖。128MCPUP5-2HHARM6410開發(fā)板內(nèi)存由兩片32M×16位數(shù)據(jù)寬度的DDR-RAM構(gòu)成,兩片拼成32位模式,公用MemoryPort2,共128MRAM。起始地址:0x NGCS164M×8位數(shù)據(jù)寬度的nandFLASHSMCBANK2,起始地址為0x0。其中內(nèi)核zImage0x40000開始處。u-bootDDR0xc7e00000地址運行。下面給出板上的地址空間分布:MEMORYMAP#cat1 0 0 0/*EINT0~27#define #define —PortA 8—PortB —PortC —PortD( —PortE( —PortF( 16路輸入/—PortG( —PortH( 10路輸入/—PortI 16路輸入/—PortJ( 12路輸入/— 16路輸入/— 15路輸入/— — 16路輸入/— 16路輸入/— 15路輸入/— S3C64103232位。533M的主頻,133MSROMController)BWSCONdatawidth位,在161688在CPU剛加電時,這時的數(shù)據(jù)寬度就無法用BWSCON來設(shè)置了,就只有硬件實現(xiàn)了:由復(fù)位后硬件配置決定數(shù)據(jù)的寬度,復(fù)位默認為0x SDRAM32HHARM64101616位數(shù)據(jù)總線,這樣拼成32位SDRAM使用,所以兩片SDRAM共個CS。而一片F(xiàn)LASH則固定為16位數(shù)據(jù)讀寫模式,它就只接HHARM6410的低16位數(shù)據(jù)總線。LED指示燈JTAGRS232COM LCD+9V(0~ C~ C~ C~ 底板跳線 接上跳線帽選擇從TV-IN接口輸入數(shù)據(jù),去掉選擇從OV9650輸入底板跳線J3,J4,J5配合板J1選擇啟動模式,為了盡量確保固件不被誤操作刪掉同時使用一Nand1OFF;2XXXNand1OFF;2XXXNor1ON;2XXXMMC01ON;2第六章機械特板10M/100M網(wǎng)口;IIS對于串行口1因為在不同的應(yīng)用中可能會被作為RS232、RS485/422、紅外接口使用,因此對該口必須使用相應(yīng)的電平轉(zhuǎn)換。在基本板的設(shè)計中科技給出的是作為RS232端口的方案。PCB。另外必須注意的是,在串行口電平轉(zhuǎn)換的選擇和使用中必須注意電平兼容問題,在基本板中科技使用的是3.3V工作電壓的RS232電平轉(zhuǎn)換,2.5V工作電壓的Lanswitch。3.3V,1.0-1.2V,1.8V,2.5V直流,在基本板中,為了得到更高的電源使用效率科技都采用DC/DC提供電源電壓。2.5V穩(wěn)壓輸出的例子,輸出電壓的計算可以使用以下的:Vo=1.25V*(R69+R70)/R70;上的耗散功率可以使用以下計算:Pc=(Vi-Vo)*Io,由表面工作溫度必須小于80攝氏度,設(shè)其金屬背板到散熱器的熱阻為Rt1,散熱器到空氣的熱阻為Rt1(使用導(dǎo)熱硅脂于散熱器于管殼之間Rt2(增大散熱器面;3.3V穩(wěn)壓輸出的例子,輸出電壓的計算可以使用以下的:Vo=1.25V*(RB8+RB7)/RB8;其他同上,但要注意的是LM317必須有大于2.5V的要注意的是電感LC4的選擇,其最小平均直流工作電流必須大于輸出電流(既在規(guī)定的輸出電流下其不能出現(xiàn)磁芯飽和現(xiàn)象。另外必須注意PCB的排版,這將決定電源的噪聲幅度,在以上PCBPCB首先由于100PIN雙列腳比較密,無法在焊盤間穿線,在板設(shè)計中將上述插座的引腳大部分作為電源或地線。其次由于板的讀寫速率較高,因此必須考慮到布線傳輸延遲對電路的影響。在底板PCB走線設(shè)計中時應(yīng)當將涉及到數(shù)據(jù)總線、地址總線、內(nèi)存控制信號和中斷信號等的電路部分排布在27.2.5PCB在電路穩(wěn)定性和方面的考慮建議使用較為完整的一個NE作為地層,如果存在多個“地”(例如:數(shù)字地,模擬地,容。對板的,以及在各個端口使用適當?shù)妮斎胼敵鼍彌_; 附錄 LINUX常見術(shù)“LinuxUNIX操作系統(tǒng)的克隆,它(的內(nèi)核)LinusTorvalds以及網(wǎng)絡(luò)上組織松散的隊伍一起從零開始編寫而成。Linux的目標是保持和POSIX的兼容。“Linux具備現(xiàn)代一切功能完整的UNIX系統(tǒng)所具備的全部特征,其中包括真正的多任務(wù)、虛擬內(nèi)存、共享庫、需求裝載、共享的寫時程序執(zhí)行、優(yōu)秀的內(nèi)存管理以及TCP/IP網(wǎng)絡(luò)支持“Linux的遵守GNU的通用公共證Sparc、M68000MIPS和PowerPC等計算機上?!盤OSIX表示可移植操作系統(tǒng)接口(PortableOperatingSystemInterfacePOSIX是為了讀音更像UNIX。電氣和電子工程師(InstituteofElectricalandElectronicsEngineers,IEEE)于UNIX。許多其它的操作系統(tǒng),例如DECOpenVMS和WindowsNT,都支持POSIX語言應(yīng)用編程接口(API)給操作系統(tǒng)的服務(wù)程序,例如讀寫文件。POSIX.1已經(jīng)被國際標準化組織(InternationalStandardsOrganization,ISO)所接受,被命名為ISO/IEC9945-1:1990標準。POSIX現(xiàn)在已經(jīng)發(fā)展成為一個非常龐大的標準族,某些部分正處在開發(fā)過程中。POSIXIEEE1003和2003的標準是可互換的GNU是GNUIsNotUNIX的遞歸縮寫,是自由軟件的一個項目,該項目的目標是開發(fā)一個自由的UNIX版本,這一UNIX版本稱為HURD。盡管HURD尚未完成,但GNU項目已經(jīng)開發(fā)了許多高質(zhì)量的編程工具,包括emacs編輯器、著名的GNUC和C++編譯器(gcc和g++,GNU軟件和派生工作均適用GNU通用公共證,即GPL。GPL允許軟件作者擁有軟件,但授予其他任何人以合法、LinuxGNU工具。LinuxPOSIX.2GNU項目開發(fā)的,Linux內(nèi)核、GNU工具以及其他一些自由軟件組成了人們常說的Linux:符合POSIX標準的操作系統(tǒng)S和工具。XWindowInternetFTP服務(wù)器、WWW服務(wù)器等。GPL(GeneralPublicLicense)文本保存在Linux系統(tǒng)的不同下名為COPYING的文件里。例如,鍵入cd/usr/doc/ghostscript*然后再鍵入moreCOPYING可查看GPL的內(nèi)容。GPL和軟件是否免費無關(guān),它主要目標是保證軟件對所有的用戶來說是自由的。GPL通過如它提醒每個用戶,對于該軟件不提供的擔保。如果用戶的軟件使用了受GPL保護的任何軟件的一部分,那么該軟件就繼承了GPL軟件,并因此而成為GPL軟件,也就是說必須隨他非自由軟件。遵照GPL的軟件并不是可以任意的,這些軟件通常都有正式的 LinuxGPLGPL并不適用于通過系統(tǒng)調(diào)用而使用內(nèi)核服務(wù)的應(yīng)用Linux的主要UbuntuLinuxdeb的軟件保管理方式,軟件的安裝、卸載和升級非常方便,并提供了Debian是由GNU的Linux版本,最符合GNU精神。提供了最大的靈活性,適合Linux的附錄 常用LINUX命UbuntuLinux為例說明。 ls–a:可以看到隱藏的文件,如以. ps–A:列舉所有 rm–rf 內(nèi)容(無法恢復(fù)其中f表示強制不進行提示,r表示目Linux下的文件 TAB文 例如軟件安裝的 下沒有其它以HHA字符開頭的其它目 cd然后按下TAB鍵,則S會自動匹配找到/HHARM6410,這樣就不必完全鍵入剩余的RM6410字符,這個功能在名字很長的文件和時非常有效,可以大大提供鍵盤輸入的速度,ncftpncftpLinuxFTPFTPLinuxS下令用法,例如,它也支持TAB鍵補全,支持上傳和(用-r或-R參數(shù)。ncftp的用法,例如要FTPIP11LinuxPCA,命令如下:ncftp–u man,即manunal,是UNIX系統(tǒng)手冊的本。根據(jù)習慣,UNIXsection,特殊文件 文件格式和約定:/etc/passwd等文件的格式手冊頁一般保存在/usr/man (如man1,man2,...,manl,mann)包含不同的手冊小節(jié)。使用man命令查看手冊頁。manvim修改PC機IP地址:ifconfigeth0Linux的壓縮文件一般是以.gz或.tar或者.tar.gzgzip1、以.gz結(jié)尾的為壓縮文件,用命令:gzip-dfilename來解壓,得到的文件在當前 2、以.tar結(jié)尾的為歸檔文件,用命令:tarxvffilename來展開,生成的文件與源文件在同一目3、以.tar.gz結(jié)尾的文件最常見,可直接用命令:gzipcdfilename|tarxfvtartarxzf HHARM6410壓縮成一個文件tarczfhharm6410.tgzc參數(shù)表示壓縮。find–namemain.clocate【注意】!locate為模糊匹配,它會遞歸的在當前 包含shadow字串的文件。 )的所有文件中查找含有某個字符串(如“Modifiedby grepdie ’*-ctags使用“ctags–R命令先在當前下建立一個tagsvim去開啟文件的話,會自動加載tags,這個文件,無需另行加載,否則要由:settags=your.tags來指定tags文件。然后就是照一般使用Vim,光標移到標識符或函數(shù)名上,按Ctrl+],要回到原處就按請注意,Vim激活時,工作(vim激活時的所在)名為tags$VIMRUNTIME/doctagstags文件里頭所有標志文字都可以使用viLinux/Unix世界里極為普遍的全屏幕文本編輯器,幾乎可以說任何一臺Linux/Unix機器都會提供這個軟件。來處理,如:q代表退出,:w表示存盤。的修改,相當于WINDOWS下的Undo操作。編譯方式下有一些命令是要以/開始的,例如查找字符串就是:/string則在文件中匹配查找string字符串。在編輯模式下按下:就進入命令方式。k、j、h、lLinux4個光標鍵,但是記住這4個命令還是非常有用的。這4個鍵正是右手在鍵盤上放置的基本位置。cw、dw——改變(置換)/刪除光標所在處的單詞令(c=change、d=delete)。----/string、?string——從光標所在處向后或向前查找相應(yīng)的字符串令 ~~時,要先按冒號()改變?yōu)槊罘绞?,用戶就可以看見在熒幕左下方,出現(xiàn)冒號()vi已經(jīng)改為指令態(tài),可以進行存檔或退出等工作。:w:w!:xwq:zzwq—rcharchar“strig2使用命令“:%s#/usr/bin#/bin#g”可以把文件中所有路徑/usr/bin換成/bin。也可以使用命令----vifile1yy1n2(n=next)ctrl+wwp2n將文件中的某一部分修改保存到臨時文件,例如僅僅把第20~59----vi----:20,59w如果要在vi執(zhí)行期間,轉(zhuǎn)到s執(zhí)行,使用驚嘆號(!)執(zhí)行系統(tǒng)指令,例如在vi期間,列 內(nèi)容,可以鍵入: 就會讀入.exrc中的指令與設(shè)置。下面是.exrc環(huán)境文件的實例: ,啟動第二個時就會報錯:Device/dev/modemlocked。其中/dev/modem就是/dev/ttyS0PC1,它是在光盤安裝時執(zhí)行./arminst時創(chuàng)建的。查看arminst文件,可以看到如下一行:ln-sf/dev/ttyS0個小框:選Yes即可退出 ctrl+AO,則彈出選擇第三項“Serialporttu,則彈出下“i則原來的配置框第一行進入編輯模式,將原來的/dev/modem改為如下的:/dev/ttyS1,即串口2。ESC鍵即可返回。LinuxDOSWindows中的使用方法是不一樣的,不能直接,因為在Linux中它們都被視為文件,因此在使用前必須使用裝載命令mount將它們裝載到系統(tǒng)的/mnt中來,使用結(jié)束,必須進行卸載。命令格式如下:mount–t dos Linux 安裝CD-ROM的文件系統(tǒng) 支持長文件名的dos分區(qū) OS/2分區(qū)文件系統(tǒng)一般為/dev/fd0fd1,硬盤一般為/dev/hdahdb,硬盤邏輯分區(qū)一般為期hda1hda2…等等,光盤一般為/dev/hdc。在裝載前一般要在/dev/mnt下建立一個空的,如軟盤為floppy,硬盤分區(qū)為其盤符如c、d等等,光盤為cd-rom,使用命令:mount–tmsdos/dev/fd0裝載一個mddos格式的軟盤mount–text2dev/fd0mnt/floppy裝載一個Linux格式的軟盤mount–tvfat/dev/hda1/mnt/c裝載Windows98格式的硬盤分區(qū)mount–tiso9660dev/hdcmnt/cd-romUbuntu對于可移動設(shè)備能夠?qū)崿F(xiàn)automount,mount的地址在/media下的一個子,具體地址可以輸入mount命令查看。裝載完成之后便可對該進行操作,在使用新的軟盤及光盤前必須退出該,使用卸載命LinuxbootloaderbootloaderLILOGRUB,UbuntuGRUBdiff命令行選項]-r遞歸處 -u輸出統(tǒng)一格式(unified-Npatch里包含新文件-apatch里可以包含二進制文件stdout上,所以你可能需要把它重定向到一個文件。輸出格式保存了上下文(缺省是上下各三行,最少需要兩行,這樣,patch的時候可以允許行tarxzvfsoftware.tar.gz#展開原始軟件包, 為cpasoftwaresoftware-orig#做個修改前的cdcddiff-ruNasoftware-origsoftware>software-patch命令把這個補丁打進原始包,再繼續(xù)工作。比如是在Linuxkernel上做的工作,就不必每次保存幾十兆修改后的源碼了。這是好處之一,好處之二是方便,由于unifiedpatch格式有一定的模糊匹配能力,能減diff程序建立的一個列表,這個列表包含如何修改原始文件的一些指令。由于節(jié)省時間和空間,Patch1MB的程序包,這個程序包的下一個版本1MB的新版本進行發(fā)布或者以一個僅僅有1KB的補丁文件進行發(fā)布。這個補丁文件可以對第一個版本的進行更新,更新后的版本就和第二個版本完全一致了。因此,如果已經(jīng)了第一個版本,那么為了下一個版本而patch命令行選項][patch的文件-pnpatchlevel(n是數(shù)字b[后綴]生成備份,缺省是.origdiff-ruNaxc.orig/config/cf/Imake.cf---xc.orig/config/cf/Imake.cfFriJul3012:45:47+++xc.new/config/cf/Imake.cfFriJan2113:48:44patchxc.orig/config/cfImake.cf文件,假如你的源碼樹的根是缺省的xc而不是xc.origmvxcxc.origpatch呢?patchlevel就是為此而設(shè):patch會把目標路徑名砍去開頭patchlevel個節(jié)(由/分開的部分)。在本例中,cdxc;patch-p1<patch文件,patchstdindiff-rdir1dir2 dir1與dir2 .patchpatch-p1<-p1選項代表patchfile中文件名左邊的層數(shù),頂層在不同的機器上有所不同。要使用 中運行path-p1<[patchfile]LinuxDosWindows的用戶來說,有幾個分區(qū)就有幾個驅(qū)動器,并且每個分區(qū)都會獲得一個字母標識符,然后就可以選用這個字母來指定在這個分區(qū)上的文件和,它們的文件結(jié)構(gòu)都是獨立的,非常好理解。但對Linux用戶來說無論有幾個分區(qū),分給哪一使用,它歸根結(jié)底就只有一個根,一個獨立且唯一的文件結(jié)構(gòu)。Linux中每個分區(qū)都是用來組成整個文件系統(tǒng),且將一個分區(qū)和一個聯(lián)系起來。這時要載入的一個分區(qū)將使它的空間在一個下硬盤了?!皒”為盤號(a為基本盤,b為基本從屬盤,c為輔助主盤,d為輔助從屬盤),“~”代表IDE硬盤上的第三個主分區(qū)或擴展分區(qū),hdb2IDE硬盤上的第二個主分的,其余則和IDE硬盤的表示方法一樣。從上面可以看到,LinuxExt2(3)和Swap兩種,Ext2(3)用于存放系統(tǒng)文件,Swap則作為Linux的交換分區(qū)。Linux至少需要兩個專門的分區(qū)(LinuxNativeLinuxSwap)Linux安裝在Dos/Windows分區(qū)。一般來說將Linux安裝一個或多個類型為“LinuxNative”的硬盤分區(qū),但是在Linux的每一個分區(qū)都必須要指定一個“MountPoint(載入點Linux在啟動時,這個要給哪個使用。對“Swap”SWAP分區(qū)是Linux暫時數(shù)據(jù)的交換分區(qū),它主要是把主內(nèi)存上暫時不用的數(shù)據(jù)存起來,(必須還要注意一點,SWAP128MB64MBSWAP分區(qū)最大128MB或更大的內(nèi)存,SWAP127MB??梢詣?chuàng)建和使用一個以上的交換分區(qū),最多16個。xNve3ws!nx來說,你有了較大的選擇余地,你可以把系統(tǒng)文件分幾個區(qū)來裝(必須要說明載入點,也可以就裝在同一個分“/。主要的根分區(qū)出現(xiàn)了問題,計算機依然能夠啟動。這個分區(qū)的大小50MB―100MB之間。但是LILOLinux系統(tǒng)的話,含有/boot10238GB后的數(shù)據(jù)LILO不能,所以Linux要安裝在8GB的區(qū)域以內(nèi)。/home分區(qū),是用戶的home所在地,這個分區(qū)的大小取決于有多少用戶。如果是多用戶的,因為root用戶對系統(tǒng)有使用權(quán),一旦對系統(tǒng)進行了誤操作,就會導(dǎo)致系統(tǒng)。/var/log分區(qū),是系統(tǒng)日志記錄分區(qū),如果設(shè)立了這一單獨的分區(qū),這樣即使系統(tǒng)的日志文件/devSWAP分區(qū),一個/boot分區(qū),一個/usr分區(qū),一個/home分區(qū),一個/var/log分區(qū)。當然這沒有什么規(guī)定,完全是依照個人來定的。但記住至少要有兩個分區(qū)SWAP分區(qū),一個/分區(qū)。FdiskLinuxDiskDruidFdisk要附錄 gcc與gccGNUCC++Linux中最重要的軟件開發(fā)工具。實際上,gcc能夠編譯三種語言:C、C++和ObjectC(C語言的一種面向?qū)ο髷U展。利用gcc命令可同時編譯并連接C和C++as。編譯器被成功的移植到不同的處理器平臺上。標準PCLinux上的gcc是FORINCPU的,而HHPC852系列開發(fā)套件使用的是FORpowerpc系列處理器的gcc編譯器powerpc-Linux-gcc和powerpc-Linux-as及其相應(yīng)的GNUBinutils工具集(如ld工具,objcopy、objdump等工具。gcc 只支持ANSI標準的C語法。這一選項將GNUC的某些特色,例如asm或typeof。- - 以字符串“1MACRO- 以字符串“DEFN”定義MACRO- C- 生成調(diào)試信息。GNU- - - - 486-o - -O或- - - -O2inline- - - MACRO- - ldld文件采用AT&T命令語言寫成,用于過程Linux包含了一個叫g(shù)db的GNU調(diào)試程序.gdb是一個用來調(diào)試CC++程序的強力調(diào)試器.它使你能在程序運行時觀察程序的內(nèi)部結(jié)構(gòu)和內(nèi)存的使用情況.Gdb功能非常強大:gdbgdb了,如果一切正常的話,gdb將被啟動并且GNUgdb6.8-Copyright(C)2008SoftwareFoundation,LicenseGPLv3+:GNUGPLversion3orlater<>Thisissoftware:youaretochangeandredistributeit.ThereisNOWARRANTY,totheextentpermittedbylaw.Type"showcopying"and"showwarranty"fordetails.ThisGDBwasconfiguredas"i486-linux-.當你啟動gdb后,你能在命令行上指定很多的選項.你也可以以下面的方式來運行g(shù)db:gdb<fname>當你用這種方式運行g(shù)db,你能直接指定想要調(diào)試的程序.這將告訴gdb裝入名為fname的可執(zhí)行文件gdbcore文件,或者與一個正在運行的程序相連.你可以參考gdb指南頁或在命令行上鍵入gdb-h得到一個有關(guān)這些選項為了使gdb正常工作,你必須使你的程序在編譯時包含調(diào)試信息.調(diào)試信息包含你程序里的每個變量的類型和在可執(zhí)行文件里的地址映射以及源代碼的行號.gdb利用這些信息使源代碼-g選項打開調(diào)試選項gdb支持很多令使你能實現(xiàn)不同的功能.這些命令從簡單的文件裝入到允許你檢查所調(diào)用的堆棧內(nèi)容的復(fù)雜命令,下面列出了你在用gdb調(diào)試時會用到的一些命令.想了解gdb的詳細使用請參考gdb的指南頁.gdbbreak 刪除設(shè)置在特定源文件、特定行上的斷點。其用法為:clear disy file help info info info info info info gdbmake print EXPRgdb支持很多與UNIXs程序一樣令編輯特征.你能象在bash或tcsh里那樣按Tab鍵讓gdb幫你補齊一個唯一令,如果不唯一的話gdb會列出所有匹配令.你也gdb下面用一個實例教你一步步的用gdb調(diào)試程序.被調(diào)試的程序相當?shù)暮唵?gdb的典型應(yīng)用下面列出了將被調(diào)試的程序greeting它顯示一個簡單的問候再用 main(){charmy_string[]="othere";my_print(my_string);my_print2(my_string);}voidmy_print(charprintf("Thestringis%s\n",}voidmy_print2*string){char*string2;intsize,i;size=strlenstring2=(char*)malloc(size+1);for(i=0;i<size;i++)string2[size-i]=string[i];string2[size+1]=`\0';printf("Thestringprintedbackwardis%s\n",}gcc-otestThestringisothereThestringprintedbackward輸出的第一行是正確的,但第二行打印出的東西并不是我們所期望的.應(yīng)該是Thestringprintedbackwardisereht由于某些原因my_print2函數(shù)沒有正常工作gdb看看問題究竟出在哪兒先gdbgreeting程序時把調(diào)試選項打開gdb,gdbfile命令來載入它:(gdb)filegreeting這個命令將載入greeting可執(zhí)行文件就像你在gdb命令行里裝入它一樣.gdb的run命令來運行g(shù)reeting了.當它在gdb里被運行后結(jié)果大象這樣:(gdb)runStartingprogram:/root/greetingThestringisothereThestringprintedbackwardisProgramexitedwithcodegdb外面運行的結(jié)果一樣.問題是,為什么反序打印沒有工作?為了找出癥結(jié)所在my_print2for語句后設(shè)一個斷點gdb提示符下鍵入list命令三次,列出源代碼:(gdb)list(gdb)回車(gdb)根據(jù)列出的源程序,24行,gdb命令行提示符下鍵入如下命令設(shè)置(gdb)breakgdb將作出如下的響應(yīng)Breakpoint1at0x139:filegreeting.c,line24run命令,將產(chǎn)生如下的輸出:Startingprogram:/root/greetingThestringisoBreakpoint1,my_print2(s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025充電停車位租賃合同(范本)
- 2025合同模板承攬合同(條款)范本
- 2025加盟代理合同樣書
- 2025年上海市互聯(lián)網(wǎng)收費電子郵箱服務(wù)合同(三篇)
- 2025農(nóng)作物種子買賣合同范本
- 2025簽訂購房合同注意事項簡析
- 2025年一次性購銷合同經(jīng)典版(2篇)
- 汽車銷售委托居間合同
- 飲用水工程監(jiān)理居間合同
- 2025年度豬場環(huán)境監(jiān)測與治理合同4篇
- 河南省濮陽市2024-2025學(xué)年高一上學(xué)期1月期末考試語文試題(含答案)
- 割接方案的要點、難點及采取的相應(yīng)措施
- 2025年副護士長競聘演講稿(3篇)
- 2024年08月北京中信銀行北京分行社會招考(826)筆試歷年參考題庫附帶答案詳解
- 原發(fā)性腎病綜合征護理
- (一模)株洲市2025屆高三教學(xué)質(zhì)量統(tǒng)一檢測 英語試卷
- 基礎(chǔ)護理學(xué)導(dǎo)尿操作
- DB11∕T 1028-2021 民用建筑節(jié)能門窗工程技術(shù)標準
- (初級)航空油料計量統(tǒng)計員技能鑒定理論考試題庫(含答案)
- 中國古代文學(xué)史 馬工程課件(中)24第六編 遼西夏金元文學(xué) 緒論
- 最新交管12123學(xué)法減分題庫含答案(通用版)
評論
0/150
提交評論