平台:itop4412 scp 2g
開發板有兩個可控制的led燈:分別接到引腳:kp_col0和vdd50_en
kp_col0就是gpl2_0
vdd50_en就是gpk1_1
配置gpx_con對應位為輸出功能,設定gpx_dat相應管腳輸出為1,就可以點亮led燈了。
實現**如下:
原始碼1:start.s
.global _start原始碼2: s3c4412_gpio.h#include
"s3c4412_gpio.h
".word 0x2000
.word 0x0
.word 0x0
.word 0x0
_start:
ldr r0, =0x1002330c
ldr r1, [r0]
orr r1, r1, #0x300
strr1, [r0]
ldr r0, =0x11000c08
ldr r1, =0x0
strr1, [r0]
ldr r0, =gpl2con
mov r1, #(0x01 << 0
)
strr1, [r0]
ldr r0, =gpk1con
mov r1, #(0x01 << 4
)
strr1, [r0]1:
ldr r0, =gpk1dat
movr1, #0x2
strr1, [r0]
ldr r0, =gpl2dat
movr1, #0x0
strr1, [r0]
b 1b
halt:
b halt
#ifndef s3c4412_gpio_h原始碼3: link.lds#define s3c4412_gpio_h
#define gpx1con (0x11000000 + 0x0c20)
#define gpx1dat (0x11000000 + 0x0c24)
#define gpx1pud (0x11000000 + 0x0c28)
#define gpx1drv (0x11000000 + 0x0c2c)
#define gpk1con (0x11000000 + 0x0060)
#define gpk1dat (0x11000000 + 0x0064)
#define gpk1pud (0x11000000 + 0x0068)
#define gpk1drv (0x11000000 + 0x006c)
#define gpl2con (0x11000000 + 0x0100)
#define gpl2dat (0x11000000 + 0x0104)
#define gpl2pud (0x11000000 + 0x0108)
#define gpl2drv (0x11000000 + 0x010c)
#endif
sections原始碼4:.rodata align(
4) :
.data align(
4) :
.bss align(
4) :
}
cross_compile = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-完成或修改了源**需每次重複操作以下三個步驟:%.o : %.s
$(cross_compile)gcc -o $@ $< -c
%.o : %.c
$(cross_compile)gcc -o $@ $< -c
led.bin : start.o
$(cross_compile)ld -t link.
lds-o led.elf $^
$(cross_compile)objcopy -o binary led.elf led.bin
$(cross_compile)objdump -d led.elf > led.dis
.phony : clean
clean :
rm -rf *.o *.elf *.bin *.dis
步驟1: 編譯生成目標檔案,執行 make led.bin
步驟2:因為這個裸機是s3c4412 datasheet 中所描述的 bl1, 所以編譯出的led.bin頭16個位元組需要處理下,才能正常執行。 執行./mk4412 led.bin
步驟3:燒寫處理好的led.bin到sd卡裡頭,執行
sudo mkfs.vfat -f 32 -i /dev/sdb
sudo dd if=/dev/zero of=/dev/sdbbs=512 seek=1 iflag=dsync oflag=dsync count=2048
sudo dd if=./led.bin of=/dev/sdbbs=512 seek=1 iflag=dsync oflag=dsync
請注意加粗標紅得"sdb", 也可能是sdc,沒插u盤執行df -l,再插入u盤執行df -l,觀察多出來得就是sdx就是你的u盤。
最後就能看到開發板上led2滅,led3被點亮了。
如果需要led2也點亮,則start.s中修改:
ldr r0, =gpl2dat
movr1, #0x1
strr1, [r0]
iTOP 4412開發板刷ubuntu
此文章講解了itop 4412開發板上刷寫ubuntu的流程。android qt 最小linux系統的刷寫也可以此為參考,但這三個系統更建議使用fastboot刷寫方式,速度更快,更簡單。準備工具 2g以上大小tf卡乙個 ubuntu虛擬機器 其他linux虛擬機器也可 乙個 超級終端 secur...
itop4412學習記錄
01 核心開發基礎 02 drivermodule 03 menuconfig kconfig 04 makefile編譯 05 匯流排 裝置 驅動註冊流程 06 裝置註冊 07 驅動註冊 08 生成裝置節點 09 編寫簡單的應用程式呼叫驅動 13 gpio初始化 14 led驅動 gpio 15 ...
itop 4412之裝置註冊
1.裝置註冊需要用到結構體 2.裝置註冊流程 ifdef config led ctl struct platform device s3c device led ctl endif config led ctl bool enable led config default y help enabl...