新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 44b0從裸片到電路板調(diào)試制作三步走

44b0從裸片到電路板調(diào)試制作三步走

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò) 收藏
首先,我想說(shuō)的是,我一直都是在玩兒LPC系列的ARM,近期由于項(xiàng)目需要用了一塊S3C44B0,用的我那個(gè)憋屈??!也許是習(xí)慣了ZLG系列操作的傻瓜性所以剛接觸44B0的確是懵了(怎么這么麻煩),bootloader(俗稱BIOS),和引導(dǎo)程序、應(yīng)用程序要分開(kāi)下載,這些在ZLG里面全部一步到位(打開(kāi)JTAG,直接Debugger就Ok了),而網(wǎng)上的資料寫(xiě)的雖然停詳細(xì)可是太不簡(jiǎn)潔了,看了半天也不明所以,所以前前后后花了我將近一個(gè)月的時(shí)間才吧44b0的板子調(diào)通。這里我想把我從買到44B0芯片到焊接調(diào)試成功的整個(gè)過(guò)程寫(xiě)下來(lái)希望能幫助一些朋友,共分三步:
1、芯片焊接及初始化
2、程序仿真調(diào)試
3、程序下載
一、芯片焊接及初始化:
焊接我就不羅嗦了,初始化這步至關(guān)重要。剛焊接好后,上電如果能檢測(cè)到ARM7內(nèi)核,說(shuō)明電源正常。但此時(shí)你如果檢測(cè)Flash的話你是檢測(cè)不到的,當(dāng)初我自己就是納悶,怎么檢測(cè)不到flash呢?因?yàn)樵谟肔PC的時(shí)候應(yīng)該是都檢測(cè)正常的。奇怪了吧!
于是,我就懷疑是我Flash的焊接出問(wèn)題了,我又重新焊接一次flash以及44B0,然后仔細(xì)的一個(gè)一個(gè)腳的測(cè)發(fā)現(xiàn)沒(méi)什么問(wèn)題,于是,我再次上電,可還是檢測(cè)不到Flash。這我就懵了,搞了1天多還是沒(méi)有效果。這時(shí),我也只好告訴自己一定要靜下心來(lái),不要急躁,好好的研究一下44B0的數(shù)據(jù)手冊(cè)和Bootloader。
再經(jīng)過(guò)幾番的仔細(xì)研究后我才知道,44B0裸片焊接好后要進(jìn)行初始化,亦即燒寫(xiě)bootloader,通俗點(diǎn)講就是相當(dāng)于裝驅(qū)動(dòng)包括flash、網(wǎng)卡等。初始化,很多都是采用FLUTED軟件進(jìn)行的,我也是用的這個(gè)軟件,可是就這個(gè)軟件用的也是一波三折,本來(lái)按照軟件說(shuō)明書(shū)里那樣進(jìn)行操作,可是一運(yùn)行老是錯(cuò)誤:get ID regester ...id code error ( 0x00000000)should be 0x1f0f0f0f。我在網(wǎng)上搜了一下,發(fā)現(xiàn)很多人都遇到過(guò)類似的錯(cuò)誤,找來(lái)找去也沒(méi)有人給個(gè)解決的法子,我也就只能自己摸索了,好在老天不負(fù)我,原來(lái)用這套軟件首先要去掉軟件的只讀屬性,然后打開(kāi)它之前首先要打開(kāi)H-JTAG連接好內(nèi)核,這樣bootloader才能順利下載進(jìn)去??傊闫紫纫跏蓟?,步驟:
Ø FLUTED軟件拷貝到相應(yīng)目錄下面,確認(rèn)批處理文件的路徑是否正確;
Ø 開(kāi)H-JTAG連接內(nèi)核,開(kāi)FLUTED的批處理文件待下載bootloader下載完畢。
二、仿真調(diào)試:
不論是SDT還是ADS網(wǎng)上說(shuō)明也很多了我就不羅嗦了。
三、程序下載:
程序下載方式有網(wǎng)口、串口、USB、并口等,其中我介紹一種串口下載,因?yàn)槌瞬⒖谙螺d其他的在設(shè)計(jì)板子的時(shí)候都太占地方了。
串口下載步驟:
1、 啟動(dòng)超級(jí)終端;
2、 打開(kāi)板子電源,這時(shí)超級(jí)終端會(huì)有如下圖顯示:


3、在倒計(jì)時(shí)到0之前按任意鍵,進(jìn)入編輯狀態(tài),輸入:
loadb 0x0C008000 (不是這個(gè)地址也無(wú)所謂,只要RAM最高塊不用就可以)。
點(diǎn)發(fā)送文件,選擇 kermit 方式發(fā)送要調(diào)試的BIN文件,界面如下:


發(fā)送完后會(huì)顯示起始地址, 再運(yùn)行 go 0x0c008000 (起始地址)就可以了。
4、上面程序只是在SDRAM中運(yùn)行,所以需要把它拷貝到FLASH中,在第2步操作完成后,依次輸入一下命令:
S3C44B0 #protect off 0x0050000 0x1fffff -關(guān)FLASH寫(xiě)保護(hù)
S3C44B0 #erase 0x0050000 0x007ffff -擦除FLASH
S3C44B0 #cp 0x0c008000 0x0050000 $(文件長(zhǎng)度)
S3C44B0 #setenv bootcmd cp 0x50000 0x 0c008000;go 0x0c008000(設(shè)置啟動(dòng)順訊)
這指出cp命令中第一個(gè)是RAM起始地址(0x0c008000)也是用戶程序下載的地址,第二個(gè)是FLASH燒寫(xiě)的起始地址(0x0050000),最后是程序的長(zhǎng)度。(長(zhǎng)度單位是16進(jìn)制的32位字,乘以 4 就可以得到16進(jìn)制的字節(jié)數(shù))。
5、完成第4步后,緊接著保存以上操作:
saveenv
6、關(guān)掉電源,再次重啟,就可以看到自己的程序了正常運(yùn)行了。


評(píng)論


技術(shù)專區(qū)

關(guān)閉