【前言】
首先感謝深圳市米爾科技有限公司舉辦的此次活動並予以本人蔘加此次活動的機會,以往接觸過嵌入式,但那都是皮毛,最多刷個系統之類的,能夠說對於嵌入式系統開發這件事情是至關很是陌生的,此次活動爲我提供了一個很是好的入門和學習嵌入式的機會,同時在社區及技術羣內也獲得了很大的幫助和鼓勵,這也是我不斷前行和進步的動力,在這裏一併致謝了。下面我附上本次學習心得及過程。
米爾MYS-6ULX單板機介紹:
MYS-6ULX是一款以NXP i.MX6UL/i.MX6ULL處理器,Cortex-A7內核爲核心的嵌入式單板機,主頻爲528MHz。配備了256MB高速DDR三、256M NAND Flash,集成了以太網、WIFI、LCD接口、USB OTG、USB Host、TF Card、用戶按鍵、用戶LED、IO擴展接口等功能。
詳細介紹:http://www.myir-tech.com/product/mys_6ulx.htm
收到米爾的板子,先上圖:app
【概述】
計劃經過本次項目實現一些家庭電器設備控制,進現實現遠程監控;
1,實現計時控制插排包括,計時,延時,定時,倒計時,週期開通和關閉功能;
2,實現PWM調控燈光或者風扇調速;
3,實現紅外遙控控制空調。
正文:【驅動GPIO點亮外接LED】
在上一篇gpio解析基礎上,我在device tree添加了本身要用到的gpio,而且簡單的驅動了外接led燈,點亮和熄滅。我暫定使用資源gpio1_io9,手冊上簡寫gpio9。今天的操做成功對於我來講是里程碑了,很是關鍵,項目裏叫milestone。個人項目是智能插排,其中一項功能就是開關控制插座,不要小瞧了開關,有N中方法能夠實現,我用繼電器。有M種控制模式,好比,計時,倒計時,延時,定時,週期工做等等,花樣繁多。下邊分享一下個人調試過程,比較艱辛。
1. 參考dts裏已經有的兩個節點gpio_leds,gpio_key,先照葫蘆畫個瓢,添加些代碼,如圖所示
說明:gpio5已經被佔用,我是在操做的時候發現的,就先忽略掉。 學習
而且在iomux裏添加以下圖代碼
2.修改完成後,單獨編譯dts文件,生成dtb,而後我就懵了,怎麼更新呢,總不至於所有更新一遍吧,羣裏求助,@軟件工程師(紅旗哥)給我一個方案是利用tftp,uboot引導經過tftp訪問server自動下載dtb文件進行更新,好像有些難度,不過方案確定是能夠的(紅旗哥對嵌入式開發仍是比較熟悉的)。因而我在網上找到另一種方法,就是說要找到開發板的dtb文件存貯的位置,而後用編譯好的dtb直接替換掉,重啓就能夠加載了,多麼簡單,因而我就開始在開發板上查找腳dtb的文件一直無果,以致於我開始懷疑本身是否是忘記find命令了。直到有一份資料說可能存貯在某個特定的分區裏,這時候才恍然大悟,fdisk -l 看到4個分區,又用cat /proc/partation查看了一下,如圖所示 3d
看到dtb了我很開心,mount上來不就能夠操做了嗎?用了幾種參數,終於蒙對了,加載上了,然而進去查找也沒有dtb文件,可是看起來目錄結構有些像dtb生成的
找到了比較熟悉的例程裏的leds,gpio_key調試
懷疑這個整個分區就是dtb了,因而決定用dd命令試探一下,先用scp把編譯好的文件傳到開發板上,使用dd命令對mtdblock2進行覆蓋
dd if= of=,其總if表示input file ,of表示out file大概這個意思。 server
從新啓動開發板系統以後,打開系統去查找我添加的power_strip,看看是否能找到,當我看到這個參數時很是高興,終於更新成功了
5.加載完成,就要驗證一下是否是這個設備是正確的,打開路徑/sys/class/gpio/gpio9,這個應該是我在設備樹裏添加的,而後在這裏生成出來的。
糾正一下錯誤,當時個人作了不少操做(是後補的帖子,就把這件事混淆了,很是抱歉),上邊gpio9不是從設備樹生成出來的,是經過下邊的命令,感謝@apple_9938下邊回帖提出的質疑,我再三檢查了一下,可是power_strip確實是從設備樹生成出來的,怎麼像leds同樣註冊在/sys/class目錄下,這一步我還不知道。
echo 9 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio9/direction
echo 1 > /sys/class/gpio/gpio9/value —> 寫高電平
echo 0 > /sys/class/gpio/gpio9/value —> 寫低電平htm
執行這個命令,控制外接的LED燈亮和熄滅了,說明設置正確,能夠用來驅動繼電器來控制插排了。
對比一下就明顯了,要否則看不出來是亮和滅的狀態blog
後續繼續更新博客,敬請關注,有同道者歡迎提出建議。
聲明:本文首發在與非網社區 NXP論壇›競技場›恩智浦/米爾i.MX6ULL競賽專區.›做者論壇ID:leo121_3006061接口