1. 開發板採用韋山東的開發板
2. 晶元cpu三星s3c2440a
3. 控制引腳:gpf4
4. linux作業系統
看晶元手冊三星s3c2440a中gpf4的功能:(280/p)
由下面的晶元手冊可以看出gpf4的功能可以用作普通io的輸入輸出,和外部中斷。(下圖)
5. io口控制:(282/p)
由晶元手冊中282頁中的描述,控制io口輸出只需控制埠控制暫存器(gpxcon)和埠資料暫存器(gpxdat)即可,當然還有其他的沒有截圖出來,控制io口沒用到。(下圖)
由第四點中資料手冊知道,只需控制gpfcon和gpfdat中位址資料即可完成對io的控制。(下圖)
7. gpfcon的控制:
由下圖中gpfcon可看出控制gpf4是控制bit[9:8]位,控制led選用01 = output
8. gpfdat控制:
由下圖可知控制gpf4高低電平只需:
gpfdta[4] = 0; //低電平
gpfdta[4] = 1; //高電平
9.由晶元在手冊中所描述並進行分析,控制io口電平只要控制gpfcon和gpfdat的暫存器就可以了。不用那麼麻煩。。。。。。。。。上面只是手冊中所提取的。。。。。。。。。。。原理。。。。。。。。。。。。。。。
重點來了:
10.首先往gpfcon的bit[9:8]中送入01就可以控制gpf4為輸出模式了,第7點中;然後由
《暫存器位檢視小工具.exe》程式中將0x00000100送入0x56000050(第6點gpfcon位址)就行了,這裡就是gpfcon的控制了。
11.然後到控制gpfdata了,原理和上面的差不多,前面第8點說:
gpfdta[4] = 1; //高電平
將0x00000010送入0x56000054就可以實現控制高電平了。
gpfdta[4] = 0; //低電平
將0x00000000送入0x56000054就全部都是低電平了,送全0會影響其他位,這裡只控制一盞燈,所以其他的多少都無所謂,簡單粗暴的方法。
然後上面的原理說完了,再下來該是程式了,使用的程式是彙編的。使用到的幾個彙編指令:
程式:.text
.global _start
_start:
ldr r1, = 0x56000050
ldr r0, = 0x100
str r0, [r1]
ldr r1, = 0x56000054
ldr r0, = 0
str r0, [r1]
halt:
b halt
上面的**是.s檔案的,下面再新建乙個沒有字尾的makefile檔案寫下面的東西.
makefile這個主要是編譯執行的命令,整合到乙個檔案裡面能夠快速編譯,這個後面再講。
led_on.bin : led_on.s
arm-linux-gcc-g -c -o led_on.o led_on.s
arm-linux-ld-ttext 0x0000000 -g led_on.o -o led_on_elf
arm-linux-objcopy-o binary -s led_on_elf led_on.bin
clean:
rm-f led_on.bin led_on_elf *.o
然後得到兩個檔案了
嗯,寫完程式後通過windows和linux聯通經過半個多小時操作後編譯成功bin檔案。
然後燒寫到開發板就能點亮燈了,mmp。
1. 使用source insight 將上述程式寫成.s檔案
2. 使用filezilla 連線到linux系統
3. 將1中的檔案通過filezilla上傳到linux的/work中去,最好是資料夾
4. 使用mobaxterm_personal_10.4連線到linux系統中
5. 在用mobaxterm_personal_10.4 使用linux命令編譯成bin檔案
6. 在filezilla將bin 檔案從linux中拖回windows中
8. 重新上電就能點燈了
9. mmp……..
10. 如何將linux,windows,開發板三個連線起來涉及ping的問題。
(002)linux開發經驗
1 三種模式 2 命令模式下 3 末行模式下 4 配置檔案 1 gcc編譯的4個階段 2 gcc的一些其他引數 優化程式 o0不優化,o1,o2,o3最高優化 編譯時輸出警告資訊 wall 新增除錯資訊 g 可執行程式會變得稍大一些,便於gdb除錯 1 靜態庫 命名規則 製作靜態庫 發布靜態庫 特點...
002 linux 控制台的使用
1.桌面控制台 2.字元控制台 預設6個字元控制台。獨立執行 互不影響 多使用者 多工 tty 控制台的使用 開始進入的是圖形圖面 tty1 就是圖形介面。圖形介面切換到字元介面終端 ctrl alt f2 6 字元終端切換到影象介面 ctrl alt f1 pty 控制台的使用 虛擬終端pty,我...
Linux裸機開發 彙編點燈
彙編目前應用開發已經很少用到了,但是作為嵌入式開發人員還是需要有一定彙編基礎 需要用彙編初始化一些soc外設。使用彙編初始化ddr,i.mx6u i.mx內部的rom,nxp在內部96kb的rom中存放了自己編寫的啟動 這些啟動 可以讀取ddr配置資訊,並且完成ddr的初始化 設定sp指標,一般指向...