精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

rt-smart中的imx6ull用戶態點燈

RTThread物聯網操作系統 ? 來源:RTThread物聯網操作系統 ? 作者:RTThread物聯網操作 ? 2021-01-15 13:41 ? 次閱讀

rt-thread的rt-smart已經發布有段時間了,其實我之前也寫過幾篇關于rt-smart的文章,但是都是關于CMake構建工程的文章。

而對我來說一直想在用戶態操作一下底層硬件的東西。而在前段時間,韋東山老師在他100ask_imx6ull移植了rt-smart,剛好之前拿到一塊imx6ull的板子,所以我也跟這位大佬一起學習了一下rt-smart。

移植的過程我就不再這里說了,大家可以去看一下韋老師的視頻,講的非常好。

這篇文章主要講一下我的點燈大法。

環境

100ask_imx6ull開發板。

兩條micro USB線。

電源。

windows電腦一臺。

適配底層驅動

IMX6ULL的gpio有五組,每組最多有32個,但是實際每組沒有那么多

GPIO1 有 32 個引腳:GPIO1_IO0~GPIO1_IO31;

GPIO2 有 22 個引腳:GPIO2_IO0~GPIO2_IO21;

GPIO3 有 29 個引腳:GPIO3_IO0~GPIO3_IO28;

GPIO4 有 29 個引腳:GPIO4_IO0~GPIO4_IO28;

GPIO5 有 12 個引腳:GPIO5_IO0~GPIO5_IO11;

首先需要看芯片手冊,查找寄存器,在imx6ull的寄存器是比較亂的,每一組GPIO的寄存器都是不是連續的,所以寫的時候,需要對著手冊來寫。可以參考《i.MX 6ULL Applications ProcessorReference Manual》文檔。

根據手冊,我已經把GPIO對接到rt-thread的pin驅動框架了。其實我一開始自己寫好底層寄存器部分的代碼,然后去對接到pin驅動。后面在gitee上看發現了NXP的一套庫,后面我又重新對接了一次,這樣我就不用自己造輪子了。下面自己造的輪子:

40844be2-56f1-11eb-8b86-12bb97331649.png

這里我把GPIO分為兩組,第一組:GPIO1 ~ GPIO4,第二組:GPIO5。他們的每組基地址分別為:

40b16c94-56f1-11eb-8b86-12bb97331649.png

根據每組的基地址,給每一組做了一個地址偏移的表格這樣就可以通過下面的宏定義等到對應的引腳:

#define GET_PIN(PORTx, PIN) (32 * (PORTx - 1) + (PIN & 31))

40ddd9be-56f1-11eb-8b86-12bb97331649.png

在rt-smart中,我不能直接使用物理地址,需要使用虛擬地址。rt-smart提供了相對應的API(rt_hw_kernel_phys_to_virt)供我們將物理地址轉為虛擬地址。我們以pin_write為例:

rt-thread中,imux6ull的gpio寫操作:

410e5ba2-56f1-11eb-8b86-12bb97331649.png

rt-smart中,imux6ull的gpio寫操作,需要增加phy addr 到vitr addr的轉換:

4166fe92-56f1-11eb-8b86-12bb97331649.png

對接好pin驅動的ops->rt_pin_ops:

41aed816-56f1-11eb-8b86-12bb97331649.png

注冊pin設備:

41cf8fac-56f1-11eb-8b86-12bb97331649.png

編譯燒錄:

41ec8e7c-56f1-11eb-8b86-12bb97331649.png

應用開發

在rt-thread中,我們經常使用一組API,rt_pin_mode, rt_pin_write。但是在rt-smart中這套東西是使用不了的。而需要使用設備驅動框架那一套東西,open,write,read.

imx6ull的led燈的GPIO對應第5組第3個引腳。然后定義兩個結構體:pin_mode,pin_status.

4231c42e-56f1-11eb-8b86-12bb97331649.png

寫一個流水燈的代碼。

4251a942-56f1-11eb-8b86-12bb97331649.png

原文標題:rt-smart的第一個應用程序,imx6ull用戶態點燈

文章出處:【微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 操作系統
    +關注

    關注

    37

    文章

    6747

    瀏覽量

    123204
  • RTThread
    +關注

    關注

    8

    文章

    132

    瀏覽量

    40812

原文標題:rt-smart的第一個應用程序,imx6ull用戶態點燈

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【迅為電子】i.MX6UL和i.MX6ULL芯片區別與開發板對比

    【迅為電子】i.MX6UL和i.MX6ULL芯片區別與開發板對比
    的頭像 發表于 11-28 14:31 ?142次閱讀
    【迅為電子】i.MX<b class='flag-5'>6</b>UL和i.MX<b class='flag-5'>6ULL</b>芯片區別與開發板對比

    國產實時操作系統:和RT-Linux,Zephyr的實時性對比

    基于RT-Thread內核,并具備POSIX用戶運行環境的高性能實時操作系統。它類似Linux、Windows的架構,具備用戶和內核
    的頭像 發表于 11-12 01:07 ?369次閱讀
    國產實時操作系統:和<b class='flag-5'>RT</b>-Linux,Zephyr的實時性對比

    imx6ull裸機編程,使用宏定義無法驅動,使用指針就可以驅動

    當我使用宏定義來訪問imx6ull的寄存器,控制GPIO5_IO3輸出高低電平控制LED時,程序燒錄進去后沒有反應。但是當我使用指針來訪問寄存器,LED可以正常驅動,請問這是什么原因?除了寄存器訪問
    發表于 11-04 17:59

    使用TPS6521815 PMIC為NXP i.MX 6ULL、6UltraLite供電

    電子發燒友網站提供《使用TPS6521815 PMIC為NXP i.MX 6ULL6UltraLite供電.pdf》資料免費下載
    發表于 09-13 09:44 ?1次下載
    使用TPS6521815 PMIC為NXP i.MX <b class='flag-5'>6ULL</b>、<b class='flag-5'>6</b>UltraLite供電

    RK3568平臺RT-smart系統跑不起來,為什么?

    RK3568平臺RT-smart系統跑不起來
    發表于 09-13 07:28

    ART-PI Smart User運行LED程序崩潰的原因?怎么處理?

    使用的master分支下的代碼,通過 6ull bootloader 的tftp獲取kernel后能正常運行,并掛載emmc,和sd卡。 \\ | / - RT -Thread Sma
    發表于 07-05 08:21

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-在NXP源碼基礎上適配ELF 1開發板的按鍵功能

    CONFIG_SOC_IMX6ULL,將imx6ull-elf1-emmc.dts添加到Makefile:elf@ubuntu:~/work/linux-imx-imx_4.1.15
    發表于 07-04 09:11

    飛凌嵌入式ElfBoard ELF 1板卡-在NXP源碼基礎上適配ELF 1開發板的按鍵功能

    CONFIG_SOC_IMX6ULL,將imx6ull-elf1-emmc.dts添加到Makefile:elf@ubuntu:~/work/linux-imx-imx_4.1.15
    發表于 07-03 09:07

    在 ART-Pi Smart 體驗 RT-Thread Smart v5.1.0

    大的RT-ThreadSmart操作系統。ART-PiSmart開發板搭載了米爾科技的i.MX6ULL核心板,硬件設計和制作由韋東山團隊完成,整體的BSP板級支持包由社區完成。這是首個運行R
    的頭像 發表于 06-14 08:35 ?523次閱讀
    在 ART-Pi <b class='flag-5'>Smart</b> 體驗 <b class='flag-5'>RT</b>-Thread <b class='flag-5'>Smart</b> v5.1.0

    66日杭州站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    66日下午我們將在杭州舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現同時運行RT-Thread和linux,本次workshop邀請到
    的頭像 發表于 05-28 08:35 ?414次閱讀
    <b class='flag-5'>6</b>月<b class='flag-5'>6</b>日杭州站<b class='flag-5'>RT</b>-Thread線下workshop,探索<b class='flag-5'>RT</b>-Thread混合部署新模式!

    淺析在NXP I.MX6ULL+Linux平臺下進行WM8960音頻芯片移植的過程

    本文詳細記錄在NXP I.MX6ULL+Linux平臺下進行WM8960音頻芯片移植的過程,其他平臺操作方法類似,希望為大家提供幫助。
    的頭像 發表于 05-17 11:33 ?1201次閱讀
    淺析在NXP I.MX<b class='flag-5'>6ULL</b>+Linux平臺下進行WM8960音頻芯片移植的過程

    適用于 NXP i.MX 6ULL6ULZ 和 6UltraLite的TPS6521835電源管理IC數據表

    電子發燒友網站提供《適用于 NXP i.MX 6ULL、6ULZ 和 6UltraLite的TPS6521835電源管理IC數據表.pdf》資料免費下載
    發表于 03-01 09:10 ?0次下載
    適用于 NXP i.MX <b class='flag-5'>6ULL</b>、<b class='flag-5'>6</b>ULZ 和 <b class='flag-5'>6</b>UltraLite的TPS6521835電源管理IC數據表

    嵌入式學習-ElfBoard ELF 1-gpio模擬i2c的方法

    /i2c/busses/Makefile(2)修改arch/arm/configs/imx6ull_elf1_defconfig,配置為y編譯進內核(3)編譯內核elf@ubuntu:~/work
    發表于 02-22 15:17

    嵌入式學習-ElfBoard ELF 1板卡-在nxp源碼基礎上適配ELF 1開發板的LED功能

    源碼適配即在NXP i.MX6ULL EVK評估板對應的Linux內核源碼(linux-imx_4.1.15 版本)基礎上進行功能接口引腳適配,以適應ELF1開發平臺。本篇文章以適配LED為例給各位
    發表于 01-05 14:35

    迅為IMX6UL核心板在便攜式醫療設備的應用方案

    迅為IMX6UL核心板在便攜式醫療設備的應用方案
    的頭像 發表于 12-11 14:59 ?574次閱讀
    迅為<b class='flag-5'>IMX6</b>UL核心板在便攜式醫療設備<b class='flag-5'>中</b>的應用方案