TQ2440裸機實驗(鍵盤和LED結合)

2021-07-09 11:05:05 字數 982 閱讀 3933

import main 

area 

init,code,readonly 

;程式入口的地方

entry 

start

ldr 

r0, =0x56000010 

; @ watchdog暫存器位址

mov 

r1, #0x0 

str 

r1, [r0] 

; @ 寫入0,禁止watchdog,否則cpu會不斷重啟

ldr 

sp, =1024*4 

; @ 設定堆疊,注意:不能大於4k, 因為現在可用的記憶體只有4k

; @ nand flash中的**在復位後會移到內部ram中,此ram只有4k

bl main 

; @ 呼叫c程式中的main函式

halt_loop

b  halt_loop

這是開始一點初始化使用彙編寫的,下面是功能函式:

#define gpb5_out 

(1<<(5*2)) 

//gpb5位[11:10]=01就可以把對應埠設為輸出

#define gpb6_out 

(1<<(6*2))

#define gpb7_out 

(1<<(7*2))

#define gpb8_out 

(1<<(8*2))

#define gpf4_in 

~(3<<(4*2)) 

//把gpf4位[9:8]設為0:0就可以把按鍵設為輸入,具體對應關可以看晶元手冊

#define gpf1_in 

~(3<<(1*2))

#define gpf2_in 

~(3<<(2*2))

#define gpf0_in 

~(3<<(0*2))

int  main()

return 0;

}

tq2440 的dma裸機驅動

dma是一種提高cpu效率的工具。如果讓cpu去負責搬運資料,效率是十分低下的,因為在這個過程中,cpu就只能做這麼一件事。因此dma就應運而生。只要告訴dma,要搬運的資料源位址,以及要搬運到 去的位址,何種方式,使能它,dma就會獲取匯流排控制權,自動地搬運資料,從而解放cpu,提高效率。tq2...

TQ2440背光控制

控制lcd背光就是控制s3c2440的lcd控制的lcd pwren腳lcdcon5暫存器pwren位控制lcd是否輸出。對linux 2.6.30.4核心進行移植。新建乙個backlight.c檔案放到 drivers video 目錄下。內容如下 include include include ...

《TQ2440載入Hello world驅動模組》

經過將近乙個月都時間終於按照手冊把linux核心移植完了,接下來要開始驅動模組的移植了,在網上查了一些資料,總結如下 目標平台 tq2440 arm9 核心版本 linux 2.6.25 前提 宿主機上已安裝交叉編譯工具,因為這個在linux核心移植的時候就使用過了,這裡就不說了。進入正題 1 首先...