99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

rt-smart中的imx6ull用戶態(tài)點(diǎn)燈

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 作者:RTThread物聯(lián)網(wǎng)操作 ? 2021-01-15 13:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

rt-thread的rt-smart已經(jīng)發(fā)布有段時(shí)間了,其實(shí)我之前也寫過幾篇關(guān)于rt-smart的文章,但是都是關(guān)于CMake構(gòu)建工程的文章。

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

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

這篇文章主要講一下我的點(diǎn)燈大法。

環(huán)境

100ask_imx6ull開發(fā)板。

兩條micro USB線。

電源。

windows電腦一臺(tái)。

適配底層驅(qū)動(dòng)

IMX6ULL的gpio有五組,每組最多有32個(gè),但是實(shí)際每組沒有那么多

GPIO1 有 32 個(gè)引腳:GPIO1_IO0~GPIO1_IO31;

GPIO2 有 22 個(gè)引腳:GPIO2_IO0~GPIO2_IO21;

GPIO3 有 29 個(gè)引腳:GPIO3_IO0~GPIO3_IO28;

GPIO4 有 29 個(gè)引腳:GPIO4_IO0~GPIO4_IO28;

GPIO5 有 12 個(gè)引腳:GPIO5_IO0~GPIO5_IO11;

首先需要看芯片手冊(cè),查找寄存器,在imx6ull的寄存器是比較亂的,每一組GPIO的寄存器都是不是連續(xù)的,所以寫的時(shí)候,需要對(duì)著手冊(cè)來寫??梢詤⒖肌秈.MX 6ULL Applications ProcessorReference Manual》文檔。

根據(jù)手冊(cè),我已經(jīng)把GPIO對(duì)接到rt-thread的pin驅(qū)動(dòng)框架了。其實(shí)我一開始自己寫好底層寄存器部分的代碼,然后去對(duì)接到pin驅(qū)動(dòng)。后面在gitee上看發(fā)現(xiàn)了NXP的一套庫(kù),后面我又重新對(duì)接了一次,這樣我就不用自己造輪子了。下面自己造的輪子:

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

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

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

根據(jù)每組的基地址,給每一組做了一個(gè)地址偏移的表格這樣就可以通過下面的宏定義等到對(duì)應(yīng)的引腳:

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

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

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

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

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

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

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

對(duì)接好pin驅(qū)動(dòng)的ops->rt_pin_ops:

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

注冊(cè)pin設(shè)備:

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

編譯燒錄:

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

應(yīng)用開發(fā)

在rt-thread中,我們經(jīng)常使用一組API,rt_pin_mode, rt_pin_write。但是在rt-smart中這套東西是使用不了的。而需要使用設(shè)備驅(qū)動(dòng)框架那一套東西,open,write,read.

imx6ull的led燈的GPIO對(duì)應(yīng)第5組第3個(gè)引腳。然后定義兩個(gè)結(jié)構(gòu)體:pin_mode,pin_status.

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

寫一個(gè)流水燈的代碼。

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

原文標(biāo)題:rt-smart的第一個(gè)應(yīng)用程序,imx6ull用戶態(tài)點(diǎn)燈

文章出處:【微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7142

    瀏覽量

    125543
  • RTThread
    +關(guān)注

    關(guān)注

    8

    文章

    132

    瀏覽量

    41746

原文標(biāo)題:rt-smart的第一個(gè)應(yīng)用程序,imx6ull用戶態(tài)點(diǎn)燈

文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RT-Thread BSP全面支持玄鐵全系列RISC-V 處理器 | 技術(shù)集結(jié)

    ,RT-Thread標(biāo)準(zhǔn)版已全面適配玄鐵E、R、C系列內(nèi)核,并在C906內(nèi)核上支持RT-Smart微內(nèi)核操作系統(tǒng)。本文將以E906運(yùn)行RT-Thread和C906運(yùn)行
    的頭像 發(fā)表于 07-03 18:03 ?1514次閱讀
    <b class='flag-5'>RT</b>-Thread BSP全面支持玄鐵全系列RISC-V 處理器 | 技術(shù)集結(jié)

    如何在K230上移植mipi sensor,然后讀取mipi接口的raw數(shù)據(jù)?

    知道嗎? 期待結(jié)果 給出移植的教程,CanMV、linux平臺(tái)、RT-Smart或者Linux+RT-Smart的都可以 軟硬件版本信息 CanMV-K230-LP4-V3.0
    發(fā)表于 06-17 06:22

    K230使用RT-Smart SDK開發(fā)怎么連接Wifi?

    RT-Smart SDK開發(fā)K230怎么去連接無線網(wǎng),板子上面有網(wǎng)絡(luò)模塊和天線,01Studio的K230,找不到相關(guān)資料,求助大佬,感謝感謝
    發(fā)表于 06-10 08:23

    iMX6ULL上設(shè)置MAC地址,啟動(dòng)后無法獲得相同的mac id?

    我正在開發(fā)基于 imx6ull 的定制板。在 U Boot with Fuse Prog Command ,我編寫了 mac id,但是在啟動(dòng)后我無法獲得相同的 mac id。還需要任何其他程序
    發(fā)表于 04-10 06:02

    如何在i.MX6ULL睡眠時(shí)停止刷新LCD?

    為了更好的 EMC,我們需要在 i.MX6ULL 進(jìn)入睡眠狀態(tài)時(shí)停止 LCD 刷新。 能否實(shí)現(xiàn) ? 平臺(tái): i.MX6ULL 系統(tǒng): Linux
    發(fā)表于 04-03 07:14

    如何維護(hù)i.MX6ULL的安全內(nèi)核?

    隨著即將出臺(tái)的 EU RED 3(3)def 和 EN 18031 法規(guī),修復(fù)已知的漏洞至關(guān)重要。對(duì)于基于 i.MX 6ULL 的系統(tǒng),在實(shí)踐如何做到這一點(diǎn)? 我們目前
    發(fā)表于 04-01 08:28

    RT-Thread Smart攜手K230/K230D打造多核RISC-V高性能嵌入式操作系統(tǒng)

    在萬物互聯(lián)的智能時(shí)代,國(guó)產(chǎn)軟硬件技術(shù)的突破正成為推動(dòng)產(chǎn)業(yè)升級(jí)的核心動(dòng)力。RT-ThreadSmart(簡(jiǎn)稱:RT-Smart)操作系統(tǒng)與嘉楠科技K230芯片的深度融合,為AI邊緣計(jì)算領(lǐng)域帶來了一站式
    的頭像 發(fā)表于 03-17 16:35 ?1295次閱讀
    <b class='flag-5'>RT</b>-Thread <b class='flag-5'>Smart</b>攜手K230/K230D打造多核RISC-V高性能嵌入式操作系統(tǒng)

    為什么RT_Thread Studio點(diǎn)燈都無法實(shí)現(xiàn)?

    本人是剛?cè)胧?b class='flag-5'>RT_thread Studio這款軟件不久,我看網(wǎng)上教程都是新建工程,選擇好對(duì)應(yīng)的開發(fā)板型號(hào)就可以正常使用,而我在進(jìn)行hc32f460這款MCU進(jìn)行開發(fā)時(shí),選擇好開發(fā)板,系統(tǒng)默認(rèn)在
    發(fā)表于 03-10 07:29

    imx6ull 和 lan8742 工作起來不正常, ping 老是丟包

    采用 imx6ull 默認(rèn)的設(shè)備樹, 和 lan8742通信, MAC的配置如下: pinctrl_enet2: enet2grp { fsl,pins = <
    發(fā)表于 01-09 14:51

    RT-Smart首次線下培訓(xùn),鎖定2024 RT-Thread開發(fā)者大會(huì)!

    2024年RT-Thread開發(fā)者大會(huì)將于12月21日正式拉開帷幕!本次大會(huì)以“開源共生商業(yè)共贏”為主題,RT-Thread將攜手合作伙伴、客戶伙伴、行業(yè)專家,以及全球開發(fā)者,共同探索如何在開源
    的頭像 發(fā)表于 12-11 18:41 ?2013次閱讀
    <b class='flag-5'>RT-Smart</b>首次線下培訓(xùn),鎖定2024 <b class='flag-5'>RT</b>-Thread開發(fā)者大會(huì)!

    【迅為電子】i.MX6UL和i.MX6ULL芯片區(qū)別與開發(fā)板對(duì)比

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

    國(guó)產(chǎn)實(shí)時(shí)操作系統(tǒng):和RT-Linux,Zephyr的實(shí)時(shí)性對(duì)比

    基于RT-Thread內(nèi)核,并具備POSIX用戶態(tài)運(yùn)行環(huán)境的高性能實(shí)時(shí)操作系統(tǒng)。它類似Linux、Windows的架構(gòu),具備用戶態(tài)和內(nèi)核
    的頭像 發(fā)表于 11-12 01:07 ?2547次閱讀
    國(guó)產(chǎn)實(shí)時(shí)操作系統(tǒng):和<b class='flag-5'>RT</b>-Linux,Zephyr的實(shí)時(shí)性對(duì)比

    imx6ull裸機(jī)編程,使用宏定義無法驅(qū)動(dòng),使用指針就可以驅(qū)動(dòng)

    當(dāng)我使用宏定義來訪問imx6ull的寄存器,控制GPIO5_IO3輸出高低電平控制LED時(shí),程序燒錄進(jìn)去后沒有反應(yīng)。但是當(dāng)我使用指針來訪問寄存器,LED可以正常驅(qū)動(dòng),請(qǐng)問這是什么原因?除了寄存器訪問
    發(fā)表于 11-04 17:59

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

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

    RK3568平臺(tái)RT-smart系統(tǒng)跑不起來,為什么?

    RK3568平臺(tái)RT-smart系統(tǒng)跑不起來
    發(fā)表于 09-13 07:28