在Cubieboard上經過GPIO成功點亮第一個LED【My first step on G...

若是你不知道什麼是Cubieboard,點這裏。 linux

GPIO是幹嗎的?你能看到的就是那96個pin針腳,能夠用來:外接其餘外設或傳感器,好比LED燈,步進電機,繼電器,溫度傳感器,紅外傳感器,超聲波傳感器等。 shell

理論上,51開發板上的針腳能實現的,cubieboard都能實現。 測試

我折騰了不少天、不少個內核以後,終於邁出了第一步,成功點亮了一個LED燈。 spa


正面 .net



看看引腳 code


控制輸出電平 blog

簡單的說一下步驟:
首先要編譯與你內核版本對應的sun4i-gpio.ko驅動(我同時也編譯了uImage),個人內核版本是3.0.57+
將編譯好的驅動放到SD卡上rootfs分區的/lib/modules/3.0.57+(換爲你的內核版本)/kernel/drivers/misc/sun4i-gpio.ko

而後修改script.bin,轉爲script.fex,添加gpio_para配置段,而後轉回script.bin,放到SD卡第一個分區,覆蓋script.bin(我同時也將uImage給替換了,應該不改uImage也能夠)

gpio_para配置以下(只是測試,沒把全部的針腳都加進來):
ip

[gpio_para]
gpio_used = 1
gpio_num = 4
gpio_pin_1 = port:PG00<1><default><default><default>
gpio_pin_2 = port:PB19<1><default><default><default>
gpio_pin_3 = port:PG02<1><default><default><default>
gpio_pin_4 = port:PG04<1><default><default><default>

引腳名字請參考  http://linux-sunxi.org/Cubieboard#Expansion_ports
名字後面的1表示把這個引腳以輸出模式工做,0則爲輸入

驅動和script.bin放進去後,把卡插回到cubieboard,啓動,在系統中加載你編譯好的驅動:insmod /lib/modules/3.0.57+(換爲你的內核版本)/kernel/drivers/misc/sun4i-gpio.ko

我用的PG0引腳來作測試的,根據wiki,PG0位於U15(即USB和以太網卡之間的那兩排)的5號引腳,因此我接的這裏,而後把led另外一頭接地(我用的U15的19號針腳)

而後經過 echo 1 > /sys/devices/virtual/misc/sun4i-gpio/pin/***來向對應的針腳輸出高電平(***表明對應的針腳,echo 0則爲低電平),固然也能夠用C語言來實現。 開發

相關文章
相關標籤/搜索