一. 編寫
實現點亮乙個led
1. 匯程式設計序** led_on.s:
@目標: 點亮乙個led
@功能: gpf4 輸出低電平
.text
.global _start
_start:
ldr r0, =0x56000050 @gpfcon 暫存器
mov r1, #0x00000100 @[9:8] = 01 ,設定gpf4為輸出功能
str r1, [r0] @設定gpfcon
ldr r0, =0x56000054 @gpfdat 暫存器
mov r1, #0x00000000 @gpf4 輸出0
str r1, [r0] @設定gpfdat
main_loop:
b main_loop @迴圈
2. makefile
led_on.bin:led_on.s
arm-linux-gcc -g -c -o led_on.o led_on.s #編譯 :
arm-linux-ld -ttext 0x00000000 -g led_on.o -o led_on_elf #鏈結
arm-linux-objcopy -o binary -s led_on_elf led_on.bin #copy elf to bin
clean:
rm -f led_on.bin led_on_elf *.o
二.編譯
進入虛擬機器,生成led_on.bin
三. 燒寫
1.板子開關選擇nor flash
2.按下電源鍵crt介面按空格鍵3秒, 進入uboot介面
3.輸入n,進入燒寫狀態
4. 在dnw軟體usb port --> transimit下選擇led_on.bin
5. 關電源鍵,板子開關選擇nand flash ,開電源
S3C2440裸板程式之MMU
本例項將開啟mmu,將虛擬位址0xa0000000 0xa00010000對映到 實體地址 0x56000000 0x56100000,這樣就可以通過操作位址0xa0000050,0xa0000054來控制3個led的亮滅。head.s text global start start ldr sp,...
OpenJTAG除錯S3C2440裸板程式
0x00 懵逼 當你寫好的初始化 head.s和鏈結指令碼uart.lds共同編譯出來的 bin,燒錄到nandflash中的時候,發現串列埠輸出一片空白,這時你的想法是什麼,砸電腦還是幹點其他有用的事?還是老實的搭建除錯環境吧,上篇講過如何除錯原始碼級的 但若是初始化 有問題,譬如sdram拷貝出...
S3C2440開發板裸機程式系列05 定時器PWM
1.pwm概述 定時器0 1 2和3具有pwm功能。tcntbn是計數初值,定時器開啟後,減1計數。tcmpbn的值是用於比較的,初始值是0,所以tcntbn減1計數到0時,就等於tcmpbn,此時toutn就會翻轉。所以,tcmpbn的值是用於脈寬調變pwm的,即當遞減計數器 確切說是tcntn ...