chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

基于RT-Thread的EK-RA2E2 設(shè)備驅(qū)動(dòng)移植與應(yīng)用 | 技術(shù)集結(jié)

RT-Thread官方賬號(hào) ? 2025-10-05 10:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

目錄


前言


環(huán)境配置


Hello RT-Thread


GPIO輸入與中斷


I2C主機(jī)驅(qū)動(dòng)


SPI主機(jī)驅(qū)動(dòng)


ADC設(shè)備驅(qū)動(dòng)


PWM設(shè)備驅(qū)動(dòng)


Flash設(shè)備驅(qū)動(dòng)


WDT設(shè)備驅(qū)動(dòng)

1 前言

本文說(shuō)明如何在 RT-Thread 下配置與使用 EK-RA2E2 的板載外設(shè)的BSP驅(qū)動(dòng)

BSP已被提交PR:https://github.com/RT-Thread/rt-thread/pull/10695

2環(huán)境配置

整個(gè)移植過(guò)程會(huì)用到的幾個(gè)工具版本如下,建議使用相同版本,較低版本會(huì)出現(xiàn)兼容性問(wèn)題。

Env 工具版本 :V2.0.0

Arm GNU Toolchain: 13.2

JLink 版本 :V7.7.0

FSP 版本 :V6.0.0

Renesas 的芯片驅(qū)動(dòng)源碼是通過(guò)軟件工具配置生成的,整個(gè)板子的移植過(guò)程都會(huì)使用到RASC這個(gè)軟件工具。

下載鏈接:https://github.com/renesas/fsp/releases

dadf3d6c-a18f-11f0-8ce9-92fbcf53809c.png

注意:

如果要在 MDK 上使用FSP,請(qǐng)參照 rt-thread 的RA系列BSP制作過(guò)程.md如何在 MDK 中打開(kāi) FSP,綁定第三方工具RASC

此次移植過(guò)程,筆者主要是以 linux 下的 GNU 環(huán)境進(jìn)行移植,環(huán)境配置過(guò)程不再贅述。

3 Hello RT-Thread

EK-RA2E2 的基礎(chǔ)例程默認(rèn)支持MSH,編譯基礎(chǔ)例程并燒錄成功后,可通過(guò)串口工具進(jìn)行交互,同時(shí)能觀察到LED3紅燈以 1Hz 的頻率閃爍。

dae666aa-a18f-11f0-8ce9-92fbcf53809c.png

SCI_UART使用到的引腳分別是:

TX 為 P101

RX 為 P100

daf304a0-a18f-11f0-8ce9-92fbcf53809c.png

LED3 使用的引腳為:

P015

dafac820-a18f-11f0-8ce9-92fbcf53809c.png

本次移植也支持了一鍵nano,因?yàn)樵摪遄拥?a target="_blank">MCU內(nèi)存空間有限,如果想節(jié)省空間,可以考慮選擇nano。

nano默認(rèn)啟用了MSH,與標(biāo)準(zhǔn)版的基礎(chǔ)例程一致。

db087c2c-a18f-11f0-8ce9-92fbcf53809c.png

4 GPIO輸入與中斷

外部中斷作為一種外設(shè)資源,需要開(kāi)發(fā)者通過(guò) ICU (interrupt control unit) 進(jìn)行管理 。

下面以 EK-RA2E2 的按鍵SW2為例子,介紹如何配置一個(gè)外部中斷。

打開(kāi)RASCRASC會(huì)通過(guò)文件configuration.xml加載板子的配置。

進(jìn)入Pins頁(yè)面,找到Interrupt:IC

db11f964-a18f-11f0-8ce9-92fbcf53809c.png

使能ICU,SW2 連接的引腳為 P205,所以這里 選擇 IRQ1。

db1f2936-a18f-11f0-8ce9-92fbcf53809c.png

進(jìn)入Stacks頁(yè)面,通過(guò)New Stack中的INPUT找到External IRQ (r_icu)。筆者配置了上升沿,并開(kāi)啟了數(shù)字濾波,中斷回調(diào)函數(shù)需要寫(xiě)入irq_callback以支持drv_gpio.c的中斷回調(diào)功能。

db282b6c-a18f-11f0-8ce9-92fbcf53809c.png

開(kāi)發(fā)者通過(guò)使用rt_pin_attach_irqrt_pin_irq_enable實(shí)現(xiàn)中斷注冊(cè)和中斷使能。

db3386e2-a18f-11f0-8ce9-92fbcf53809c.pngdb3ee1d6-a18f-11f0-8ce9-92fbcf53809c.png

注意:

通過(guò)原理圖和板子可以得知,標(biāo)簽E32表示按鍵和 P205 是開(kāi)路狀態(tài)。開(kāi)發(fā)者使用按鍵時(shí),需要通過(guò)電阻或錫將兩個(gè)焊盤(pán)連接。

5 I2C主機(jī)驅(qū)動(dòng)

EK-RA2E2 有一個(gè) I3C 外設(shè),兼容 I2C

筆者采樣OLED模塊SSD1360作為從設(shè)備,下面介紹如何使用 I2C 驅(qū)動(dòng)。

打開(kāi)RASC,點(diǎn)擊進(jìn)入到Pins頁(yè)面,找到Conectivity:I3C

SCL : P400

SDA: P401

db50522c-a18f-11f0-8ce9-92fbcf53809c.png

進(jìn)入Stacks頁(yè)面,通過(guò)New Stack中的Conectivity找到I2C Master(r_iic_b_master)。中斷回調(diào)函數(shù)修改為i2c_master_callback以支持drv_i2c.c的異步事件功能,數(shù)據(jù)傳輸后驅(qū)動(dòng)層會(huì)通過(guò)rt_event_recv來(lái)確認(rèn)傳輸是否成功完成。

scons --menuconfig啟用Hardware Drivers Config—>On-Chip Peripheral Drivers—>Enable hardware I2C Bus—>Enable hardware I2C0 Bus

編寫(xiě)應(yīng)用程序進(jìn)行讀寫(xiě)功能驗(yàn)證

db5d7dee-a18f-11f0-8ce9-92fbcf53809c.pngdb72da4a-a18f-11f0-8ce9-92fbcf53809c.png

注意:

EK-RA2E2 的 I3C 引腳,SCL 和 SDA 沒(méi)有掛上拉電阻。如果開(kāi)發(fā)者在兩腳懸空狀態(tài)下使用 I2C,傳輸函數(shù)會(huì)返回錯(cuò)誤。所以要么和筆者一樣,選取的從設(shè)備模塊自帶上拉;要么先給板子提供上拉,再將從設(shè)備掛到總線上。

6 SPI主機(jī)驅(qū)動(dòng)

EK-RA2E2有一個(gè) SPI 外設(shè),下面介紹如何使用 SPI 驅(qū)動(dòng)。

注意:

由于SCI_UART使用了引腳 P101 和 P100 ,兩個(gè)外設(shè)引腳沖突,所以開(kāi)發(fā)者在使用 SPI 時(shí)需要將SCI_UART的引腳遷移到別的可用引腳上去。

打開(kāi)RASC,進(jìn)入Pins頁(yè)面,找到Conectivity:SPI。

db7b5d3c-a18f-11f0-8ce9-92fbcf53809c.png

進(jìn)入Stacks頁(yè)面,通過(guò)New Stack中的Conectivity找到SPI (r_spi)。中斷回調(diào)函數(shù)修改為spi0_callback以支持drv_spi.c的異步事件功能。RASC 會(huì)提示要求開(kāi)發(fā)者配置中斷優(yōu)先級(jí),配置完中斷優(yōu)先級(jí)后請(qǐng)將DTC刪掉,保持與圖中一致。

db88ad8e-a18f-11f0-8ce9-92fbcf53809c.png

scons --menuconfig啟用Hardware Drivers Config—>On-Chip Peripheral Drivers—>Enable hardware SPI Bus—>Enable hardware SPI0 Bus

編寫(xiě)應(yīng)用程序進(jìn)行讀寫(xiě)功能驗(yàn)證

db96a81c-a18f-11f0-8ce9-92fbcf53809c.pngdbaa6208-a18f-11f0-8ce9-92fbcf53809c.png

注意:

筆者這里展示的 MISO 均為 0xFF,這是因?yàn)?/span>MISO引腳處于懸空狀態(tài)。筆者已經(jīng)驗(yàn)證過(guò)引腳功能是有效的,開(kāi)發(fā)者在驗(yàn)證的時(shí)候?qū)⑵渑cMOSI短接,利用日志打印即可。

7 ADC設(shè)備驅(qū)動(dòng)

ADC 特性:

12-bit A/D Converter,至多8個(gè)模擬輸入采樣通道

采樣通道并不連續(xù),支持 5、6、9、10、19、20、21、22

筆者使用了煙霧傳感器,以 Channel9 為例,下面介紹如何進(jìn)行 ADC 采樣 。

打開(kāi)RASC,進(jìn)入Pins頁(yè)面,找到Analog:ADC。啟用 Channel5 、Channel6 、Channel9。

dbb3e83c-a18f-11f0-8ce9-92fbcf53809c.png

進(jìn)入Stacks頁(yè)面,通過(guò)New Stack中的Analog找到ADC (r_adc)。配置為continuous scan模式,并勾選上需要采樣的通道。

dbc22154-a18f-11f0-8ce9-92fbcf53809c.png

scons --menuconfig啟用Hardware Drivers Config—>On-Chip Peripheral Drivers—>Enable ADC —> Enable ADC0

由于參考電壓是 3.3V,所以是乘以 3300。此外,若配置的采樣通道為21,則rt_adc_read的第二個(gè)參數(shù)應(yīng)為21。

8 PWM設(shè)備驅(qū)動(dòng)

dbc9b572-a18f-11f0-8ce9-92fbcf53809c.png

GPT (General PWM Timer)特性:

一個(gè) 16-bit 6通道 的定時(shí)器

編號(hào)從 GPT4 到 GPT9,每個(gè) GPT 可以控制兩個(gè)引腳輸出

drv_pwm.c中,GPT 的每個(gè)通道都是一個(gè)設(shè)備實(shí)例。例如,使用 GPT4 和 GPT5,就需要?jiǎng)?chuàng)建兩個(gè) PWM 設(shè)備。

以 GPT4 為例,下面介紹如何通過(guò) GPT 產(chǎn)生 PWM 。

打開(kāi)RASC,進(jìn)入Pins頁(yè)面,找到Timers:GPT。配置兩個(gè)引腳一起工作。

dbdae270-a18f-11f0-8ce9-92fbcf53809c.png

進(jìn)入Stacks頁(yè)面,通過(guò)New Stack中的Timer找到Timer, General PWM(r_gpt)。修改 timer4 和 channel4,然后啟用Pin Output Support,最后使能兩個(gè)引腳輸出。

dbe80856-a18f-11f0-8ce9-92fbcf53809c.pngdbf539fe-a18f-11f0-8ce9-92fbcf53809c.pngdbffa7b8-a18f-11f0-8ce9-92fbcf53809c.png

scons --menuconfig啟用Hardware Drivers Config—>On-Chip Peripheral Drivers—>Enable PWM—>Enable GPT4

編寫(xiě)應(yīng)用程序驗(yàn)證 PWM 功能

dc0d75f0-a18f-11f0-8ce9-92fbcf53809c.pngdc1954d8-a18f-11f0-8ce9-92fbcf53809c.png

9 Flash設(shè)備驅(qū)動(dòng)

EK-RA2E2 能提供至多 64KB 的Code Flash內(nèi)存 和 2KBData Flash內(nèi)存,但實(shí)際在使用Code Flash的時(shí)候達(dá)不到這個(gè)理論值。

從文檔《RA2E2-Group-Hardware》的Option-Setting Memory一節(jié)可知

0x00000400 到0x0000043B 被分配給了OFS1,OFS2 和 Security MPU

Code Flash從0x00000440 開(kāi)始,到 0x00010000 結(jié)束

Data Flash從0x40100000 開(kāi)始,到 0x40100800 結(jié)束

dc25c7ea-a18f-11f0-8ce9-92fbcf53809c.png

本次移植筆者支持了Code Flash的讀寫(xiě)操作,下面筆者將通過(guò) fal 抽象層演示 EK-RA2E2 的 flash 設(shè)備驅(qū)動(dòng)。

打開(kāi)RASC,進(jìn)入Stacks頁(yè)面,通過(guò)New Stack中的Storage找到flash (r_flash_lp),使能Code Flash

中斷函數(shù)名需要填寫(xiě)flash_callback,這個(gè)函數(shù)沒(méi)有實(shí)際意義。因?yàn)樵隍?qū)動(dòng)層操作 flash 的過(guò)程中,都會(huì)暫時(shí)的禁止中斷。

dc3612f8-a18f-11f0-8ce9-92fbcf53809c.png

scons --menuconfig啟用Hardware Drivers Config—>On-Chip Peripheral Drivers—>Enable Onchip FLASH

drv_flash.c中實(shí)現(xiàn)的函數(shù)允許開(kāi)發(fā)者直接調(diào)用,也可以通過(guò) fal 抽象層進(jìn)行分區(qū)管理。

dc419c22-a18f-11f0-8ce9-92fbcf53809c.png

從 app 起始地址讀取 16 字節(jié),并與編譯出的hex文件進(jìn)行比較

dc505f3c-a18f-11f0-8ce9-92fbcf53809c.png

從 app 起始地址偏移 0xF000 字節(jié),進(jìn)行 16 字節(jié)讀寫(xiě)驗(yàn)證

dc64571c-a18f-11f0-8ce9-92fbcf53809c.png

10 WDT設(shè)備驅(qū)動(dòng)

啟用驅(qū)動(dòng)的步驟與前面如出一轍,不再贅述。

因?yàn)轵?qū)動(dòng)的配置都是圍繞著時(shí)鐘頻率和計(jì)數(shù)次數(shù),而不能直觀知道多久不喂狗會(huì)造成復(fù)位,所以這里筆者重點(diǎn)解釋如何計(jì)算 WDT 的超時(shí)時(shí)間。

WDT特性:

14-bit 的向下計(jì)數(shù)計(jì)時(shí)器

由 PCLKB 提供時(shí)鐘

計(jì)數(shù)溢出時(shí)會(huì)產(chǎn)生 NMI (不可屏蔽中斷),并造成系統(tǒng)復(fù)位

計(jì)算 WDT 超時(shí)時(shí)間:

PCLKB 可以在RASCclock頁(yè)面查到,默認(rèn)為 24 MHz

時(shí)鐘分頻默認(rèn) 8192,即工作頻率為 PCLKB/8192

timeout 為 16384 cycles,即計(jì)數(shù) 16384 次后會(huì)造成復(fù)位

WDT 的工作頻率為f=24 MHz/8192 ≈ 2929.6875 KHz

計(jì)數(shù)一次要花的時(shí)間為t= 1 /f= 1 / 2929.6875 ≈ 341.333 us

超時(shí)時(shí)間為T= 341.333 us * 16384 cycles ≈ 5.5 s

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

    關(guān)注

    1

    文章

    408

    瀏覽量

    29239
  • 設(shè)備驅(qū)動(dòng)

    關(guān)注

    0

    文章

    70

    瀏覽量

    11309
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1548

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    【靈動(dòng)微】FTHR-G0140開(kāi)發(fā)板移植RT-Thread驅(qū)動(dòng)

    靈動(dòng)微G0140移植RT-Thread驅(qū)動(dòng)。
    的頭像 發(fā)表于 06-05 13:45 ?21.8w次閱讀
    【靈動(dòng)微】FTHR-G0140開(kāi)發(fā)板<b class='flag-5'>移植</b><b class='flag-5'>RT-Thread</b><b class='flag-5'>驅(qū)動(dòng)</b>

    使用RT-Thread和CPK-RA2L1采集DHT11溫濕度

    本篇文章主要介紹使用RT-Thread Studio 和瑞薩 CPK-RA2L1評(píng)估板,使用大佬的輪子采集溫濕度
    的頭像 發(fā)表于 10-11 11:34 ?2371次閱讀
    使用<b class='flag-5'>RT-Thread</b>和CPK-<b class='flag-5'>RA2</b>L1采集DHT11溫濕度

    RT-Thread Nano硬核移植指南:手把手實(shí)現(xiàn)VGLite圖形驅(qū)動(dòng)適配 | 技術(shù)集結(jié)

    VGLite是NXP提供的輕量級(jí)2D圖形API,本文將手把手帶你實(shí)現(xiàn)VGLite圖形驅(qū)動(dòng)適配RT-Thread。文章分為上、下兩篇,將手把手教您移植。上篇對(duì)
    的頭像 發(fā)表于 07-17 14:40 ?3072次閱讀
    <b class='flag-5'>RT-Thread</b> Nano硬核<b class='flag-5'>移植</b>指南:手把手實(shí)現(xiàn)VGLite圖形<b class='flag-5'>驅(qū)動(dòng)</b>適配 | <b class='flag-5'>技術(shù)</b><b class='flag-5'>集結(jié)</b>

    移植RT-Thread的原理與方法

    大家好我是驚覺(jué)。是的,失蹤人口回來(lái)了。最近參加了rt-thread的國(guó)產(chǎn)MCU移植活動(dòng),移植rt-thread到華大的HC32L196。rtt論壇中已有許多介紹
    的頭像 發(fā)表于 09-17 09:41 ?9360次閱讀

    基于 Keil MDK 移植 RT-Thread Nano

    本文介紹如何基于 Keil MDK 移植 RT-Thread Nano ,并以一個(gè) stm32f103 的基礎(chǔ)工程作為示例進(jìn)行講解。 RT-Thread Nano 已集成在 Keil MD...
    發(fā)表于 01-26 17:04 ?17次下載
    基于 Keil MDK <b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> Nano

    RT-Thread全球技術(shù)大會(huì):關(guān)于瑞薩RA2L1-CPK低功耗CPU演示

    RT-Thread全球技術(shù)大會(huì):關(guān)于瑞薩RA2L1-CPK低功耗CPU演示 ? ? ? ? ? 審核編輯:彭靜 ?
    的頭像 發(fā)表于 05-27 15:23 ?1901次閱讀
    <b class='flag-5'>RT-Thread</b>全球<b class='flag-5'>技術(shù)</b>大會(huì):關(guān)于瑞薩<b class='flag-5'>RA2</b>L1-CPK低功耗CPU演示

    EK-RA2E2評(píng)估板

    EK-RA2E2評(píng)估板
    發(fā)表于 11-07 19:50 ?0次下載
    <b class='flag-5'>EK-RA2E2</b>評(píng)估板

    EK-RA2E2 v1-用戶手冊(cè)

    EK-RA2E2 v1-用戶手冊(cè)
    發(fā)表于 01-13 19:13 ?0次下載
    <b class='flag-5'>EK-RA2E2</b> v1-用戶手冊(cè)

    RT-Thread文檔_內(nèi)核移植

    RT-Thread文檔_內(nèi)核移植
    發(fā)表于 02-22 18:31 ?4次下載
    <b class='flag-5'>RT-Thread</b>文檔_內(nèi)核<b class='flag-5'>移植</b>

    RT-Thread文檔_RT-Thread SMP 介紹與移植

    RT-Thread文檔_RT-Thread SMP 介紹與移植
    發(fā)表于 02-22 18:31 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> SMP 介紹與<b class='flag-5'>移植</b>

    RT-Thread文檔_I2C 總線設(shè)備

    RT-Thread文檔_I2C 總線設(shè)備
    發(fā)表于 02-22 18:35 ?0次下載
    <b class='flag-5'>RT-Thread</b>文檔_I<b class='flag-5'>2</b>C 總線<b class='flag-5'>設(shè)備</b>

    工程師自述:如何將RA2E1并入到RT-Thread的主線倉(cāng)庫(kù)

    支持RT-Thread最新版本的瑞薩RA2E1開(kāi)發(fā)板終于要大展身手了 “ 熟悉RT-Thread和瑞薩MCU的朋友都知道,當(dāng)前RT-Thread倉(cāng)庫(kù)的主線代碼是不支持
    的頭像 發(fā)表于 03-25 20:50 ?1499次閱讀

    支持RT-Thread最新版本的瑞薩RA2E1開(kāi)發(fā)板終于要大展身手了

    支持RT-Thread最新版本的瑞薩RA2E1開(kāi)發(fā)板終于要大展身手了
    的頭像 發(fā)表于 05-16 15:30 ?1839次閱讀
    支持<b class='flag-5'>RT-Thread</b>最新版本的瑞薩<b class='flag-5'>RA2E</b>1開(kāi)發(fā)板終于要大展身手了

    EK-RA2E2v1-用戶手冊(cè)

    EK-RA2E2 v1-用戶手冊(cè)
    發(fā)表于 07-03 20:02 ?0次下載
    <b class='flag-5'>EK-RA2E2</b>v1-用戶手冊(cè)

    RT-Thread qemu mps2-an385 bsp移植制作 :環(huán)境搭建篇

    最近打算系統(tǒng)地研究一下 RT-Thread,包括 RT-Thread BSP 的移植,由于一直在使用 QEMU 進(jìn)行一些軟件功能的驗(yàn)證,qemu 支持很多的CPU 與 開(kāi)發(fā)板,所以想移植
    的頭像 發(fā)表于 08-02 14:45 ?1356次閱讀
    <b class='flag-5'>RT-Thread</b> qemu mps<b class='flag-5'>2</b>-an385 bsp<b class='flag-5'>移植</b>制作 :環(huán)境搭建篇