ARM調(diào)試筆記BIOS

ARM調(diào)試筆記BIOS

ID:37453444

大小:302.50 KB

頁數(shù):11頁

時(shí)間:2019-05-24

ARM調(diào)試筆記BIOS_第1頁
ARM調(diào)試筆記BIOS_第2頁
ARM調(diào)試筆記BIOS_第3頁
ARM調(diào)試筆記BIOS_第4頁
ARM調(diào)試筆記BIOS_第5頁
資源描述:

《ARM調(diào)試筆記BIOS》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、ARM調(diào)試筆記BIOS??????由于調(diào)試耗費(fèi)了我太多時(shí)間,所以記錄下來,方便以后復(fù)習(xí),同時(shí)也希望能給初學(xué)者一點(diǎn)兒啟示,大家少走彎路。???????我是去年開始聽說ARM的,可能是本人太閉塞了吧??吹胶缶陀幸环N想玩的沖動,想從51升級ARM。網(wǎng)上都說44B0比較適合初學(xué)者。機(jī)緣巧合,21ic上看到有人叫賣44B0空板,很便宜100RMB,主板加簡易JTAG小板。做研發(fā)的都窮啊。還不錯(cuò),錢匯過去,板子第3天就回來了,就是網(wǎng)上流行的那個(gè)44B0PCB。貼個(gè)圖吧,隨便找了塊和我那塊板子一模一樣的:????????拿到板子挺高興的,檢查了一下線路沒問題。就按對方提供的BOM單采購元器件。先把電

2、源部分焊上,測量沒問題,再把必要的元器件焊上(CPU、SDRAM、FLASH、UART),同時(shí)還有JTAG小板。量電源和地沒有短路,上電!電源燈亮了,沒冒煙。???????下面一步就是把BIOS程序燒寫到FLASH上了,對方提供的是FLUTED,按照說明操作,燒錄失敗!這下傻了,最怕的就是這個(gè),對于一個(gè)初學(xué)者來說,簡直是滅頂之災(zāi)啊。首先懷疑CPU或FLSH是否虛焊,我的焊接水平一般,所以很值得懷疑,只好又搪了一遍。但問題依舊。又懷疑JTAG小板,仔細(xì)檢查了一下沒問題啊,跳線插插拔拔的也沒無濟(jì)于事。懷疑并口,重啟進(jìn)BIOS,并口設(shè)置也沒問題。當(dāng)天是沒辦法了,睡覺吧。???????第二天就

3、開始聯(lián)系供應(yīng)商,尋求幫助,但沒什么結(jié)果。也是,就100塊錢,還要什么服務(wù)啊。只好自己找問題,看到原理圖上FLASH用的是SST39VF160,我記得我的不一樣?。课业腂OM上寫的是AM29LV160,我又詢問了供應(yīng)商,他確認(rèn)了一下說他的BOM寫錯(cuò)了??駮灠?。不過還好,終于找到問題了,但換FLASH還得周末去買啊,等不及了,看看這個(gè)能不能湊合用吧,改FLUTED的FCD文件,就是根目錄那個(gè)DEFAULT.FCD。找到2塊FLASH的Datasheet對比著改,連改帶調(diào),2個(gè)晚上,終于燒錄成功了。拔下JTAG,接上串口,打開超級終端。復(fù)位,一堆亂碼,我想應(yīng)該差不多了,試著更改超級終端的設(shè)置

4、。終于成功了,我看到BIOS的提示信息了,敲個(gè)help進(jìn)去,出來一堆,當(dāng)時(shí)感覺好爽,這個(gè)程序做的不錯(cuò),和DOS一個(gè)感覺了,哈哈。???????然后焊上網(wǎng)絡(luò)部分,輸入ap,可以ping通,網(wǎng)絡(luò)基本正常。隨后就是下載uClinux了,按照供應(yīng)商的說明文檔,先把程序從0地址拷貝到0x1f0000,我運(yùn)行copy命令,程序復(fù)位。重試,依舊。第一個(gè)想法就是,BIOS內(nèi)部程序擦寫FLASH的函數(shù)和我的芯片不兼容,無奈,只好對比著兩塊FLASH的Datasheet修改BIOS程序。調(diào)試了一個(gè)多禮拜,依舊。這下徹底崩潰了,感覺程序應(yīng)該沒有問題了。最終不得不放棄,只好換芯片,把AM29LV160換成了S

5、ST39VF160。用最初的BIOS,但現(xiàn)象還是依舊,這可是怎么回是???仔細(xì)想了一下,會不會因?yàn)槌绦虼a在FLASH里,而我又去擦除和寫FLASH導(dǎo)致的系統(tǒng)崩潰?擦寫FLASH的底層源碼都有End-Detection,例如擦Sector的BIOS源碼,在發(fā)送完命令字后,有如下一段代碼進(jìn)行判斷:?while(1)?{??U16i;??i=*((volatileU16*)sector)&0x40;??if(i!=*((volatileU16*)sector)&0x40)?//D6==D6???continue;??if(*((volatileU16*)sector)&0x80)????br

6、eak;????????//D7==1?}??????(CODE-1)???????用了2種方法判斷擦除操作是否成功,看芯片資料,在這個(gè)時(shí)候,你去讀FLASH那個(gè)扇區(qū)地址的話,會得到擦除是否成功的信息,而不是得到那個(gè)扇區(qū)號所對應(yīng)絕對地址的數(shù)據(jù)!也就是說在這個(gè)時(shí)候去讀特定地址sector會出錯(cuò),那么是不是必須在擦寫操作完成后,CPU才能取指,運(yùn)行程序代碼?對于我的這塊板子,我感覺是這樣的。因?yàn)樗偸菚﨑OWN在這里。但以前碰到過其他CPU,可以在同一塊FLASH存儲程序,同時(shí)程序又可以擦寫這塊FLASH的情況。這種區(qū)別會不會是不同F(xiàn)LASH型號造成的?期待指點(diǎn)。結(jié)論:S3C44B0的FL

7、ASH(39VF160)不能在自身運(yùn)行程序的同時(shí),對自己進(jìn)行擦寫操作。??????那BIOS的源碼有問題了,我該怎么做?看來現(xiàn)在只能把BIOS從Flash里copy到SDRAM中才行。用move命令實(shí)現(xiàn)copy:move00xc00000010000。但當(dāng)我run0xc000000時(shí),程序重啟,為了確認(rèn)程序是從哪里執(zhí)行的,我寫了一個(gè)讀pc命令rdpc(見CODE-2)。讀出的pc值是0x41c4,顯然,程序是從0地址重啟了。這里又讓人糊涂了,怎

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。