初級教程搭建arm-linux裸機(jī)開發(fā)的環(huán)境_第1頁
初級教程搭建arm-linux裸機(jī)開發(fā)的環(huán)境_第2頁
初級教程搭建arm-linux裸機(jī)開發(fā)的環(huán)境_第3頁
初級教程搭建arm-linux裸機(jī)開發(fā)的環(huán)境_第4頁
初級教程搭建arm-linux裸機(jī)開發(fā)的環(huán)境_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第第頁[初級教程]搭建arm-linux裸機(jī)開發(fā)的環(huán)境1.前言在上一遍的文章中,我介紹了如何設(shè)置芯片的啟動模式,根據(jù)三星的官方主推的IROM模式,介紹了如何從IROM模式啟動,并從Nand中加載我們的引導(dǎo)程序,有了一些前面的知識鋪墊后,這一篇文章,我將進(jìn)一步深入,教你如何實(shí)現(xiàn)你的引導(dǎo)程序,并搭建一個(gè)調(diào)試引導(dǎo)程序的實(shí)驗(yàn)環(huán)境。這里我介紹兩種方式,這兩種方式各有前提條件,具體如下:

2.開發(fā)環(huán)境的搭建開發(fā)環(huán)境其實(shí)大同小異,總結(jié)一下用到的幾個(gè):

windows主機(jī)vmware虛擬機(jī)在vmware虛擬機(jī)中安裝ubuntu桌面操作系統(tǒng)或者redhat或者debain或者centOS均可,看你自己習(xí)慣調(diào)試工具(H-JTAG或者J-link)H-JTAG和J-link的調(diào)試搭建環(huán)境不太一樣,有區(qū)別,詳細(xì)見下面

使用H-JTAG作為開發(fā)工具的

有H-jtag調(diào)試器,USB接口的那種準(zhǔn)備H-JTAG軟件用到的配置文件,以及驅(qū)動文件,如果H-JTAG的官方已經(jīng)支持了你的nandflash或者Norflash,那么很幸運(yùn),你不需要去寫這樣的配置文件,如果你像我一樣用的是H-JTAG的官方還沒有支持的,那就得我們自己寫配置文件和初始化腳本拿我的開發(fā)板來說,我用iROM啟動,從nand中加載引導(dǎo)程序,但我的nand型號是SPANSION公司的S34ML02G100TF100這款芯片,H-JTAG的官方還不支持我的s3c2416x+S34ML02G100TF100這樣的板子,那我就得自己寫這配置文件,也就是s3c2146+S34ML02G.hfc,不用擔(dān)心,這種配置文件讀一遍H-JTAG的官方文檔就會寫的。使用H-JTAG軟件,如果能正確識別出你的芯片和nandflash,能對nand芯片進(jìn)行擦除和讀寫,那么接下來的部分,你就跳過了,不用看了。使用J-link作為開發(fā)工具的

使用J-link的前提是你的開發(fā)板中已經(jīng)有了一個(gè)引導(dǎo)程序,U-Boot或者自己寫的bootstrap,不然不好調(diào)試。假設(shè)你有U-Boot在你的開發(fā)板中,s3c2416的地址映射中有說SDRAM的地址是0x30000000,如果開啟了MMU的,那么SDRAM的起始地址是0xC0000000,如果不懂為什么是0xC0000000,你可以百度百度。假設(shè)你的U-Boot能正常引導(dǎo),那么你想調(diào)試你自己的Bootstrap.bin的時(shí)候,用下面的命令就可以調(diào)試了tftpc0008000bootstrap.bingoc0008000

或者純用J-link調(diào)試的命令

hrspeed8000loadbind:sharebootstrap.bin0x30008000setpc0x30008000g

3.如何為自己的芯片跟Nand寫一份*.hfc配置文件?就以我的主控s3c2416+nand(S34ML02G100TF100)為例,我的H-JTAG軟件裝在了C:ProgramFiles(x86)H-JTAG,我要的寫的配置文件就是放在該目錄下的HFCExamples下面的,那么我們先從HFCExamples下找一個(gè)相似的,比如說s3c2416+K9F2G08.hfc,具體修改步驟如下:

拷貝一份s3c2416+K9F2G08.hfc,重命名成s3c2416+S34ML02G100TF100.hfc打開s3c2416+S34ML02G100TF100.hfc,進(jìn)入修改其中的參數(shù),用記事本打開即可下面是未修改前的s3c2416+K9F2G08的內(nèi)容:

FLASHSECTION:NAND-FLASHS3C2416+K9F2G08MEMORYSECTION:08-BITX1-CHIP0x00x30000000XTALSECTION:NULLTCKSECTION:00SCRIPTSECTION:SoftReset+++SetMem+32-Bit+0x53000000+0x00000000SetMem+32-Bit+0x4A000008+0xFFFFFFFFSetMem+32-Bit+0x4A000048+0xFFFFFFFFSetMem+32-Bit+0x4A00001C+0x1FFFFFFFSetMem+32-Bit+0x4A000004+0x00000000SetMem+32-Bit+0x4A000044+0x00000000SetMem+32-Bit+0x4C000024+0x00000225SetMem+32-Bit+0x4C000000+0x00000E10SetMem+32-Bit+0x4C000004+0x00000800SetMem+32-Bit+0x4C000010+0x00640061SetMem+32-Bit+0x4C000018+0x00202302SetMem+32-Bit+0x4C00001C+0x00000000SetMem+32-Bit+0x4C000020+0x00000051SetMem+32-Bit+0x48000000+0x00049253SetMem+32-Bit+0x48000004+0x44000050SetMem+32-Bit+0x48000008+0x005D0035SetMem+32-Bit+0x48000004+0xC4000051SetMem+32-Bit+0x4800000C+0x80000032SetMem+32-Bit+0x48000004+0xC4000053SetMem+32-Bit+0x4800000C+0xC0000032SetMem+32-Bit+0x48000004+0xC4000053SetMem+32-Bit+0x4800000C+0x44000032SetMem+32-Bit+0x48000004+0xC4000053SetMem+32-Bit+0x4800000C+0x44000130SetMem+32-Bit+0x48000004+0xC4000052SetMem+32-Bit+0x48000004+0xC4000051SetMem+32-Bit+0x48000010+0x00000020SetMem+32-Bit+0x4800000C+0x44000030SetMem+32-Bit+0x48000004+0xC4000052Delay+++1SetMem+32-Bit+0x4800000C+0x47800032SetMem+32-Bit+0x48000004+0xC4000053SetMem+32-Bit+0x4800000C+0x44000032SetMem+32-Bit+0x48000004+0xC4000053SetMem+32-Bit+0x48000010+0x0000040DSetMem+32-Bit+0x48000004+0xC4000050PGMOPTIONSECTION:ADDONSECTION:NULL

下面說說怎么修改這文件

FLASHSECTION:NAND-FLASHS3C2416+K9F2G08//這里是名稱,改成S3C2416+S34ML02G100TF100MEMORYSECTION:08-BITX1-CHIP//我的開發(fā)板的硬件接線(指Nand)8bit,數(shù)量就一個(gè)0x0//這里填的地址是H-JTAG將把擦寫或者編程N(yùn)and的驅(qū)動加載到哪里0x30000000//內(nèi)存的地址,s3c2416的內(nèi)存放在BANK6起始,物理地址是0x30000000XTALSECTION:NULL//可以不填,有些nand芯片驅(qū)動需要知道外接晶振的大小,但我們2416不需要TCKSECTION:00//接下來這個(gè)區(qū)域可以要,可以不要,這里主要是初始化ARM的內(nèi)存或者寄存器,這是一段腳本//命令格式:SetMem+地址位寬+寄存器或者內(nèi)存地址+要設(shè)置的值//比如說,第二行的SetMem+32-Bit+0x53000000+0x00000000意思是將0x53000000處設(shè)置成0x00000000SCRIPTSECTION:SoftReset+++SetMem+32-Bit+0x53000000+0x00000000SetMem+32-Bit+0x4A000008+0xFFFFFFFFSetMem+32-Bit+0x4A000048+0xFFFFFFFFSetMem+32-Bit+0x4A00001C+0x1FFFFFFFSetMem+32-Bit+0x4A000004+0x00000000SetMem+32-Bit+0x4A000044+0x00000000SetMem+32-Bit+0x4C000024+0x00000225SetMem+32-Bit+0x4C000000+0x00000E10SetMem+32-Bit+0x4C000004+0x00000800SetMem+32-Bit+0x4C000010+0x00640061SetMem+32-Bit+0x4C000018+0x00202302SetMem+32-Bit+0x4C00001C+0x00000000SetMem+32-Bit+0x4C000020+0x00000051SetMem+32-Bit+0x48000000+0x00049253SetMem+32-Bit+0x48000004+0x44000050SetMem+32-Bit+0x48000008+0x005D0035SetMem+32-Bit+0x48000004+0xC4000051SetMem+32-Bit+0x4800000C+0x80000032SetMem+32-Bit+0x48000004+0xC4000053SetMem+32-Bit+0x4800000C+0xC0000032SetMem+32-Bit+0x48000004+0xC4000053SetMem+32-Bit+0x4800000C+0x44000032SetMem+32-Bit+0x48000004+0xC4000053SetMem+32-Bit+0x4800000C+0x44000130SetMem+32-Bit+0x48000004+0xC4000052SetMem+32-Bit+0x48000004+0xC4000051SetMem+32-Bit+0x48000010+0x00000020SetMem+32-Bit+0x4800000C+0x44000030SetMem+32-Bit+0x48000004+0xC4000052Delay+++1SetMem+32-Bit+0x4800000C+0x47800032SetMem+32-Bit+0x48000004+0xC4000053SetMem+32-Bit+0x4800000C+0x44000032SetMem+32-Bit+0x48000004+0xC4000053SetMem+32-Bit+0x48000010+0x0000040DSetMem+32-Bit+0x48000004+0xC4000050PGMOPTIONSECTION:ADDONSECTION:NULL

上面簡單的介紹了一下如何去自己編寫一個(gè)正確的.hfc文件,那么光有這個(gè)配置文件還是不夠的,你還得有個(gè)相應(yīng)驅(qū)動文件,這個(gè)文件應(yīng)該放置在C:ProgramFiles(x86)H-JTAGFDeviceNAND-FLASH下,是與你的.hfc文件相匹配的。

4.如何在~/…/H-JTAG/FDevice/NAND-FLASH下實(shí)現(xiàn)一個(gè)匹配的驅(qū)動?在上一個(gè)小段中我們在C:ProgramFiles(x86)HFCExamples下實(shí)現(xiàn)了一個(gè)s3c2416+S34ML02G100TF100.hfc文件,只有這個(gè)文件還無法讓H-JTAG正確的識別我們的nandflash,我們還需要增加個(gè)描述性的文件,這個(gè)文件該放在C:ProgramFiles(x86)H-JTAGFDeviceNAND-FLASH,同樣的,在C:ProgramFiles(x86)H-JTAGFDeviceNAND-FLASH下復(fù)制一份s3c2416+K9f2G08的描述文件,未修改的文件如下:

FLASH_TYPE=3FLASH_SIZE=256MFLASH_ID=0x00AA00ECFLASH_ID2=0x00DA00ECFLASH_ADDRESS=0x0FLASH_NAND_DEVICE=(2048+64)x64PAGESx2048BLOCKSFLASH_WIDTH=8/0/0FLASH_DRIVER=1204/0/0

具體修改步驟如下:

將C:ProgramFiles(x86)H-JTAGFDeviceNAND-FLASHs3c2416+K9f2G08的描述文件復(fù)制一份重命名成C:ProgramFiles(x86)H-JTAGFDeviceNAND-FLASHs3c2416+S34ML02G100TF100文件名與我們之前的s3c2416+S34ML02G100TF100.hfc文件一致

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論