一起學(xué)mini2440裸機(jī)開(kāi)發(fā)(一)--第一個(gè)led燈點(diǎn)亮(共22頁(yè))_第1頁(yè)
一起學(xué)mini2440裸機(jī)開(kāi)發(fā)(一)--第一個(gè)led燈點(diǎn)亮(共22頁(yè))_第2頁(yè)
一起學(xué)mini2440裸機(jī)開(kāi)發(fā)(一)--第一個(gè)led燈點(diǎn)亮(共22頁(yè))_第3頁(yè)
一起學(xué)mini2440裸機(jī)開(kāi)發(fā)(一)--第一個(gè)led燈點(diǎn)亮(共22頁(yè))_第4頁(yè)
一起學(xué)mini2440裸機(jī)開(kāi)發(fā)(一)--第一個(gè)led燈點(diǎn)亮(共22頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 HYPERLINK /mybelief321/article/details/8910528 一起(yq)學(xué)mini2440裸機(jī)開(kāi)發(fā)(一)-第一個(gè)led燈點(diǎn)亮開(kāi)發(fā)板:mini2440, NandFlash:K9F2G08U0B 256M大小(dxio),CPU:S3C2440A 。 開(kāi)發(fā)(kif)環(huán)境:MDK4.11 仿真器:Jlink v8 這是我用csdn發(fā)表的第一個(gè)文章,之前使用過(guò)arm-linux-gcc裸機(jī)開(kāi)發(fā)mini2440,但是很多函數(shù)什么的不能直接調(diào)用(我的技術(shù)問(wèn)題),準(zhǔn)備重新整理一下ARM裸機(jī),整理好之后準(zhǔn)備下一階段學(xué)習(xí)。關(guān)于軟件MDK4.11和它的注冊(cè)機(jī),我傳不上去,說(shuō)是

2、由于文件太大,又想要的直接加Q470868560要就行了。 下面開(kāi)始我們的第一個(gè)LED燈的點(diǎn)亮程序吧! 1、新建一個(gè)項(xiàng)目工程 雙擊MDK圖標(biāo)進(jìn)入開(kāi)發(fā)環(huán)境,如下圖, 單擊Project/New uVision Project,選擇(xunz)你要?jiǎng)?chuàng)建文檔的位置,文檔名為test,單擊保存 選擇(xunz)CPU為Samsung/S3C2440A,單擊OK 單擊完OK按鈕后,咱們先看一下原來(lái)的空test文件夾里多了什么(shn me)文件,當(dāng)然你也可以不用看,我是看看MDK到底是默認(rèn)給咱們提供了什么方便,下圖為單擊OK后多出的文檔 很容易看出多出來(lái)一個(gè)test工程文檔。在上一步單擊完OK后,會(huì)彈出

3、下圖,該圖是為了(wi le)讓你選擇是不是將Samsung S3C2440的啟動(dòng)代碼復(fù)制添加的你的工程文檔。這段啟動(dòng)代碼咱們以后分析,在這里先選擇“是” 選擇“是”后,一個(gè)(y )工程文檔建好了,如下圖所示。 你看上圖,可以看到工程文檔自動(dòng)添加了S3C2440.s,這就是上一步選擇“是”后自動(dòng)添加的啟動(dòng)代碼,咱們?cè)倏纯?kn kn)test文件夾里多了什么文件。很容易可以看出多了三個(gè)文件,其中一個(gè)就是S3C2440.s,這個(gè)代碼很重要啊。咱們現(xiàn)在先不管他,接著下一步。2、新建一個(gè)(y )文件。選擇File/New,新建一個(gè)文件。 將該文件保存并命名為test1,注意(zh y)后面要加后綴.

4、c,單擊保存 將test1.c文件添加到你的工程(gngchng),對(duì)著Source Group1右擊,選擇“Add Files to Group Source Group 1.” 選擇剛才建立的test1.c,單擊Add,該文件(wnjin)就被加到了工程中。 這里(zhl)不需要添加別的文件了,直接點(diǎn)擊Close就可以了。下圖可以看到test1.c已經(jīng)被加到工程中了。3、編輯test1.c文件(wnjin)。這里我們?cè)偬砑觿e的文件,也不再使用include包含什么東西。 test1.c的代碼如下,可以直接復(fù)制粘貼。/* */里邊的內(nèi)容(nirng)應(yīng)該可以顯示,這也是我從新浪搬家到這里的原

5、因了,發(fā)現(xiàn)新浪的注釋代碼有時(shí)候不能顯示。/* 功能:實(shí)現(xiàn)LED1燈循環(huán)亮滅* LED1-GPB5* LED2-GPB6* LED3-GPB7* LED4-GPB8*/#define rGPBCON(*(volatile unsigned long*)0 x56000010)#define rGPBDAT(*(volatile unsigned long*)0 x56000014)#define Led1_On (15)#define Led1_Off (15)void Led_Port_Init(void);void delay(int i);int main(void)Led_Port_In

6、it();while(1)/Led1亮rGPBDAT&=Led1_On;delay(10000);/Led1滅rGPBDAT|=Led1_Off;delay(10000);/* 函數(shù)(hnsh)名稱:Led_Port_Init()* 全局變量:無(wú)* 參 數(shù):無(wú)* 返 回 值:無(wú)* 說(shuō) 明:實(shí)現(xiàn)(shxin)Led1燈的寄存器初始化*/void Led_Port_Init(void) /設(shè)置(shzh)GPB5為輸出端口 rGPBCON &= (310); rGPBCON |= (110);/* 函數(shù)名稱:delay(int t)* 全局變量:無(wú)* 參 數(shù):t* 返 回 值:無(wú)* 說(shuō) 明:延時(shí)函

7、數(shù)*/void delay(int t) int a,b; for(a=0;a=i;a+)for(b=0;b=100;b+); 將上面的代碼復(fù)制粘貼完之后(zhhu),注意保存。這時(shí)候還不能編譯,如果編譯,會(huì)出現(xiàn)如下圖的錯(cuò)誤。 意思是說(shuō)ROM1沒(méi)有定義什么的,下面在用之前(zhqin)需要配置4、配置(pizh)之前的準(zhǔn)備工作 首先,在你MDK安裝目錄下,找到文件(wnjin)Ext_RAM的配置文件,如下圖是我的Ext_RAM的路徑 將這個(gè)Ext_RAM文件復(fù)制到咱們(zn men)創(chuàng)建的test工程存放的文件夾中,我的是下圖 修改(xigi)該文件的一處內(nèi)容,只修改一處哈,如下圖, 將LO

8、AD ObjBlinky.axf INCREMENTAL / Download program 修改(xigi)為L(zhǎng)OAD.test.axfINCREMENTAL / Download program 這里的.表示當(dāng)前文件夾,test是你的工程文件名,比如說(shuō)你新建的工程為wangwensong,那么這里就要(ji yo)改為.wangwensong.axf了。 做完準(zhǔn)備工作,下面開(kāi)始(kish)進(jìn)行配置。在Target 1處鼠標(biāo)右擊,選擇(xunz)Options for Target Target 1. 彈出下圖,配置(pizh)Target,如下圖 配置(pizh)Debug,如下圖。因?yàn)?/p>

9、我使用的是Jlink仿真,所以選擇J-LINK/J-TRACE,那個(gè).Ext_RAM.ini文件就是剛才我們復(fù)制修改后的文件,添加進(jìn)來(lái)就行了 配置(pizh)Utilities,如下圖 至此配置完成(wn chng),點(diǎn)擊OK,就行了。5、編譯(biny) 點(diǎn)擊保存(bocn)按鈕,先保存一下,再點(diǎn)擊,編譯文件。 這樣咱們就可以仿真了。6、仿真 我使用的是Jlink仿真,這里你首先要安裝好Jlink的驅(qū)動(dòng),要不然不能用。我感覺(jué)MDK的Jlink仿真就是比ADS的仿真好,用起來(lái)方便。 首先(shuxin),將Jlink與你的電腦、mini2440開(kāi)發(fā)板連接好,將mini2440的開(kāi)關(guān)注意撥到no

10、r flash啟動(dòng),要不然你的jlink不工作的,打開(kāi)開(kāi)發(fā)板電源。 點(diǎn)擊(din j)仿真按鈕,然后(rnhu)MDK會(huì)進(jìn)入仿真環(huán)境?,不好意思,出現(xiàn)了錯(cuò)誤error,Error:Flash Download failed -ARM920T 如下圖。對(duì)于這個(gè)錯(cuò)誤,我表示很高興??!在解決它的時(shí)候我又明白了一個(gè)很重要的知識(shí)點(diǎn)! 咱們先把他解決了吧,只需要修改一項(xiàng),那就是咱們?cè)谂渲肬tilities的時(shí)候?qū)⒛莻€(gè)Update Target before Debugging前面的勾去掉,如下圖 修改完這一項(xiàng)后,你就可以再點(diǎn)擊仿真按鈕,一會(huì)兒你的板子上的燈就會(huì)一亮一滅了。7、總結(jié) 到第六步,這篇文章的目的

11、就達(dá)到了,這一步還是針對(duì)上一步中出現(xiàn)的錯(cuò)誤進(jìn)一步分析。 看一下出現(xiàn)錯(cuò)誤的時(shí)候,Build Output輸出的信息,如下圖輸出(shch)的信息是: No Algorithm found for:30000000H - 30000357H Erase skipped! 那么這是什么意思呢?聯(lián)系出錯(cuò)提示框中的錯(cuò)誤信息“Flash Downloaded flashed”,可以看出這里是MDK要找以0 x30000000開(kāi)頭的地址空間的Flash下載算法(algorithm),但是0 x30000000開(kāi)頭的空間不是Flash地址空間,而是內(nèi)存空間(SDRAM的起始地址是0 x30000000),記得

12、咱們?cè)谂渲肨arget時(shí),設(shè)置的地址其實(shí)就是基于內(nèi)存加載的。這樣解決方法就有了。既然咱們選擇的是基于內(nèi)存的加載方式,就應(yīng)該(ynggi)在配置Ultilities時(shí),取消“Update Target before Debugging”,這個(gè)選項(xiàng)只能在Flash加載方式中使用。 在這里說(shuō)明一下,RAM(SDRAM也是其中一種)表示的是讀寫(xiě)存儲(chǔ)器,可其中的任一存儲(chǔ)單元進(jìn)行讀或?qū)懖僮鳎?jì)算機(jī)關(guān)閉電源后其內(nèi)的信息將不在保存,再次開(kāi)機(jī)需要重新裝入,通常用來(lái)存放操作系統(tǒng),各種正在運(yùn)行的軟件、輸入和輸出數(shù)據(jù)、中間結(jié)果及與外存交換信息等,我們(w men)常說(shuō)的內(nèi)存主要是指RAM。所以咱們的開(kāi)發(fā)板如果斷電再重啟,程序就沒(méi)有了,解決這個(gè)的辦法是將程序從sdram中復(fù)制到nand fl

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論