Tiny6410 LED 裸機驅動筆記

2022-08-22 02:54:10 字數 3124 閱讀 7336

1. 先檢視《tiny6410-1170 cpu

核心板原理圖》,找到

led部分:

從上圖可知,當nled_1

為低電平時,

ledx

就會亮。

2. 再在《

tiny6410-1170 cpu

核心板原理圖》中找到

nled_x

連線圖(

應該就在附近):

從上圖可知:

led1 連線 

gpk4

led2 連線 

gpk5

led3 連線 

gpk6

led4 連線 

gpk7

知識點:

gpio:

gpio,英文全稱為

general-purpose io ports

,也就是通用

io口。嵌入式系統中常常有數量眾多,但是結構卻比較簡單的外部裝置

/電路,對這些裝置

/電路有的需要

cpu為之提供控制手段,有的則需要被

cpu用作輸入訊號。而且,許多這樣的裝置

/電路只要求一位,即只要有開

/關兩種狀態就夠了,比如燈亮與滅。對這些裝置

/電路的控制,使用傳統的序列口或並行口都不合適。所以在微控制器晶元上一般都會提供乙個

「通用可程式設計

io介面」,即

gpio

3. 檢視《s3c6410 user manual》, 

找到gpk

的埠資源。

從上圖我們可以知道gpk

的埠位址資源。

知識點:

gpio介面至少有兩個暫存器,即「

通用io

控制暫存器」與

「通用io資料暫存器

」。資料暫存器的各位都直接引到晶元外部,而對這種暫存器中每一位的作用,即每一位的訊號流通方向,則可以通過控制暫存器中對應位獨立的加以設定。gpxconn 是 

gpio

的控制暫存器,

gpxdat

是gpio

資料暫存器。

gpk一共有

16個控制位,每個控制位需要

4位配置,所以共需要 

16 * 4 / 32 = 2個32

位的控制暫存器,即

gpkcon0

和gpkcon1

。gpkdat

只有[0:15]

是有用的。

gpkpud

是拉電阻暫存器。

知識點:

上拉電阻作用在於,當gpio 

引腳處於第三種狀態時候,既不是輸出高電平,也不是輸出低電平。而是呈現高阻態,相當於沒有接晶元。它的電平狀態由上下拉電阻決定。

我們需要設定 gpk4~gpk7

來操縱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

.code

32.global _start

.extern led_init

_start:

bl led_init

loop:

b loop

//makefile

cc=arm-linux-gcc

ld=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...