1. 先檢視《tiny6410-1170 cpu
核心板原理圖》,找到
led部分:
從上圖可知,當nled_1
為低電平時,
ledx
就會亮。
2. 再在《
tiny6410-1170 cpu
核心板原理圖》中找到
nled_x
連線圖(
應該就在附近):
從上圖可知:
led1 連線
gpk4
led2 連線
gpk5
led3 連線
gpk6
led4 連線
gpk7
知識點:3. 檢視《s3c6410 user manual》,gpio:
gpio,英文全稱為
general-purpose io ports
,也就是通用
io口。嵌入式系統中常常有數量眾多,但是結構卻比較簡單的外部裝置
/電路,對這些裝置
/電路有的需要
cpu為之提供控制手段,有的則需要被
cpu用作輸入訊號。而且,許多這樣的裝置
/電路只要求一位,即只要有開
/關兩種狀態就夠了,比如燈亮與滅。對這些裝置
/電路的控制,使用傳統的序列口或並行口都不合適。所以在微控制器晶元上一般都會提供乙個
「通用可程式設計
io介面」,即
gpio
。
找到gpk
的埠資源。
從上圖我們可以知道gpk
的埠位址資源。
知識點:gpk一共有gpio介面至少有兩個暫存器,即「
通用io
控制暫存器」與
「通用io資料暫存器
」。資料暫存器的各位都直接引到晶元外部,而對這種暫存器中每一位的作用,即每一位的訊號流通方向,則可以通過控制暫存器中對應位獨立的加以設定。gpxconn 是
gpio
的控制暫存器,
gpxdat
是gpio
資料暫存器。
16個控制位,每個控制位需要
4位配置,所以共需要
16 * 4 / 32 = 2個32
位的控制暫存器,即
gpkcon0
和gpkcon1
。gpkdat
只有[0:15]
是有用的。
gpkpud
是拉電阻暫存器。
知識點:我們需要設定 gpk4~gpk7上拉電阻作用在於,當gpio
引腳處於第三種狀態時候,既不是輸出高電平,也不是輸出低電平。而是呈現高阻態,相當於沒有接晶元。它的電平狀態由上下拉電阻決定。
來操縱led
燈。先看看gpkcon0
怎麼設定:
我們已經知道,要點亮led
燈,gpio
必須輸出低電平。作為輸出,要在
gpk的相應配置位配置成
output,
即」0001」。
然後將資料位置成0
拉電阻配置:
4. 程式設計實現
led.c
#define gpkcon0 *((volatile unsigned long*)0x7f008800)#define gpkdat *((volatile unsigned long*)0x7f008808)
#define gpkpud *((volatile unsigned long*)0x7f00880c)
void
led_init()
.text//makefile.code
32.global _start
.extern led_init
_start:
bl led_init
loop:
b loop
cc=arm-linux-gccld=arm-linux-ld
objcopy=arm-linux-objcopy
cflag=-c
ldflag=-e _start -ttext 0x0c000000
led.bin: led
$(objcopy) -o binary $
led: led.o ledfun.o
$(ld) $(ldflag) $? -o $@
led.o:led.s
$(cc) $(cflag) $
< -o $@
ledfunc.o:ledfunc.c
$(cc) $(cflag) $
< -o $@
clean:
rm *.o
rmled
rm led.bin
Tiny 6410 Led 驅動模組載入(五)
為安卓驅動做準備,先熟悉linux下的驅動。1.重新編譯核心 去掉核心對led驅動的支援,make menuconfig arch arm cross compile arm linux 配置 device drivers characterdevices led support for mini6...
基於Tiny6410的LED驅動程式
從電路圖中看出,gpio低電平有效 led亮 gpk共有16個埠,每個埠由三個暫存器控制 控制暫存器 gpkcon 資料暫存器 gpkdat 和上拉暫存器 gpkpud 每個暫存器都是32位,如下圖所示。gpk的控制暫存器分為兩個,gpkcon0控制0 8好埠,gpkcon1控制9 15號埠。控制暫...
搭建Tiny6410裸機開發環境
工作目標 搭建tiny6410裸機開發環境 解決過程 1 燒錄superboot到sd卡。superboot採用的版本 superboot 20101117。燒錄軟體 sd flasher。以管理員身份執行sd flasher,先reformat檢測到的sd卡,在relayout sd卡,最後執行f...