標(biāo)簽:android style log com http it si 使用 la 實驗手冊上說了安裝DNW驅(qū)動,這個軟件我沒有細(xì)查,不過根據(jù)它的功能,它用的是USB上傳文件到開發(fā)板,所以比那種用串口上傳文件要方便很多。 USB轉(zhuǎn)串口支持驅(qū)動之前已經(jīng)安裝了,現(xiàn)在為了支持USB傳輸文件當(dāng)然也要安裝驅(qū)動,安裝時有些文檔里面沒有說清楚,這里說下。
? ? 還是把例程代碼寫一遍吧,led裸板實驗一共有三個文件
? ? start.S需要完成的事情有 首先關(guān)看門狗(盡管IROM已經(jīng)這樣做了?),看門狗的作用還是不太清楚? 首先在手冊中搜watchdog,找到watchdog這章,大概瀏覽下,然后找到這章
定位到26章看門狗定時器,大概瀏覽一下overview
對于硬件的操作無非是操作寄存器,寄存器就好比面向?qū)ο笾械慕涌贏PI,只不過這里封裝的是硬件而已。通常而言,寄存器無非兩大類:控制寄存器和數(shù)據(jù)寄存器,4412中的設(shè)備寄存器一般都是32位,然后具體的設(shè)備還有額外的寄存器。此處我們需要關(guān)閉看門狗,所以能夠想到應(yīng)該到控制寄存器里面找對應(yīng)的位去設(shè)置一下。
這里呢,我們把控制器寄存器全部置零,也就是關(guān)閉所以可以控制的功能,反正暫時不要用,代碼如下: 我們只要把Reset和Interrupt關(guān)閉就可以了,這樣就無法產(chǎn)生復(fù)位信號或者中斷信號,當(dāng)然這里把所有位都置零也沒問題:
關(guān)完了看門狗,接下來就是打開icache
啟動了icache,這樣取指令命令就快了,這次的裸機測試程序的電燈程序是C語言寫的,所以要設(shè)置??臻g(也就是設(shè)置棧指針)
? ? 好了,設(shè)置完了??臻g,就可以調(diào)到C程序那里去執(zhí)行了:
下面來實現(xiàn)led_blink函數(shù),可見這里不需要main函數(shù),原因是這是邏輯程序,而對mian函數(shù)的要求是C編譯器的要求。 第一步首先找到led的原理圖,因為有了原理圖,才能知道led連接到了哪個引腳上,然后才能控制這個引腳,從而控制led。 下面是led的原理圖:
從上圖可以知道連接led的引腳網(wǎng)絡(luò)標(biāo)號,然后通過網(wǎng)絡(luò)標(biāo)號找到和連接器相連的引腳:
? ?
然后再通過連接器上的網(wǎng)絡(luò)標(biāo)號到核心板原理圖pdf上去找對應(yīng)的處理器的引腳:
? ?
? ? 好了現(xiàn)在知道了處理器引腳名稱了,接著到4412手冊pdf上搜到這兩個引腳相關(guān)的寄存器,然后控制即可。 這里的話控制很簡單,只要先設(shè)置為輸出,然后輸出高電平就點亮,輸出低電平就熄滅即可:
? ?
? ?
? ?
? ?
? ?
? ?
? ?
? ?
? ? 下面寫流水燈的C程序:
接下來是Makefile的編寫:
接下來就是執(zhí)行了,但是出現(xiàn)了如下錯誤:
不知道怎么回事,上次還有用的。不管了,既然沒檢測到,肯定是路徑?jīng)]添加,所以添加下:
添加:
使 .bashrc生效
再次運行make,OK! 執(zhí)行成功:
? ? 接下來就是把led.bin下載到開發(fā)板上:
? ? 說明: 得到了led.bin,根據(jù) 裸機教程.pdf ,通過現(xiàn)成的uboot功能,把led.bin下載到了0x40008000這個地址,不是太清楚這個地址是干嘛用的。原以為程序當(dāng)然是加載到內(nèi)存中運行的,但是我不知道這里的意思是什么?是不是把程序搬到了這個地址0x40008000,然后還要搬到再搬到內(nèi)存里面去執(zhí)行?還是說0x4000800本來就是內(nèi)存地址也就是下載到了DRAM上?不過按道理說,應(yīng)該不是直接下載到內(nèi)存上吧,應(yīng)該是先下載到eMMC上吧。 ? ? 我看了4412手冊描述存儲映射的那章:
但是不太清楚這個DMC到底是個什么地址,而且也沒有找到DDR的映射區(qū)域,不知道怎么回事??? 用折半法試了下,只有0x40000000到0x5FFFFF0A這段地址段可以通過dnw.exe把led.bin下載過去,led.bin占232字節(jié)(指的是教程提供的led.bin,自己的led.bin大小不是這個)。也就是大概511M的空間,我奇怪的是為什么其他區(qū)域不可以呢,畢竟這塊板子的eMMC有4G的空間???不明所以。 ? ?
0x5ffffe22+0xe8=0x5FFFFF0A 0x5FFFFF0A-0x4000000=0x1FFFFF0A=536870666(10) 536870666B/1024/1024=511.9998 512MB=536870912B ? ? 先把當(dāng)下的事情干好,想一下是不是。 ? ? lmosem-exynos4412:iTOP-4412裸機開發(fā)環(huán)境 標(biāo)簽:android style log com http it si 使用 la 原文:http://www.cnblogs.com/dcscodelife/p/5790977.html |
|