S3C2440裸板程式之第乙個程式

2021-08-25 17:36:29 字數 999 閱讀 4132

一. 編寫

實現點亮乙個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 ...