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

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

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

記錄為BL808添加GPIO驅(qū)動(dòng)

冬至子 ? 來(lái)源:螺絲松掉的人 ? 作者:螺絲松掉的人 ? 2023-10-13 11:18 ? 次閱讀

該文主要記錄為 BL808 BSP 添加 GPIO 驅(qū)動(dòng)時(shí)踩到的一些坑及解決方案。這是我第一次對(duì)接 RT-Thread BSP 的驅(qū)動(dòng),整理出本文避免之后踩到同樣的坑,也希望能幫助到和我一樣的新手。如有描述不當(dāng)和不足的地方,還望大家指出和補(bǔ)充,一起交流學(xué)習(xí)。

構(gòu)建該項(xiàng)目最好在 Linux 環(huán)境,能夠避免大部分奇怪的問(wèn)題,這里推薦使用 WSL ,因?yàn)楣P者是 Linux 菜鳥(niǎo),而且 WSL 和 windows 之間文件傳輸比較方便。

工具鏈需要在 WSL 中解壓 tar -xvf ,不能在 windows 中解壓后傳入 WSL ,不同環(huán)境下解壓出來(lái)的文件會(huì)有問(wèn)題

可以使用如下命令指定工具鏈并進(jìn)行構(gòu)建(需要提前在 Linux 環(huán)境中配置好 scons 等,可以參考 RT-Thread BSP BL808 中的 READme )

scons --exec-path=/opt/Xuantie-900-gcc-elf-newlib-x86_64-V2.6.1/bin
export RTT_EXEC_PATH=/opt/Xuantie-900-gcc-elf-newlib-x86_64-V2.6.1/bin
scons

如果使用的是 WSL ,可以在命令行中運(yùn)行code .命令,即可通過(guò)VS code進(jìn)行開(kāi)發(fā),前提是windows中已經(jīng)安裝了VS code

gpio的驅(qū)動(dòng)我主要調(diào)用了m0librariesplatformsocbl808bl808_e907_stdbl808_bsp_driverhal_drvsrchal_gpio.c這里面的函數(shù)(后續(xù)并沒(méi)有直接使用 hal 中封裝的函數(shù),因?yàn)樘鄬拥姆庋b可能會(huì)降低效率)

需要在 board.c 文件中添加以下代碼:

/* GPIO driver initialization is open by default */

#ifdef RT_USING_PIN
rt_hw_pin_init();
#endif
//這樣才調(diào)用了drv_gpio.c中定義的rt_hw_pin_init()函數(shù)
在m0driversSConscript中添加以下代碼:
if GetDepend('RT_USING_PIN'):
src += ['drv_gpio.c']
//這樣drv_gpio.c才加入到了編譯中

在m0librariesSConscript中添加相應(yīng)路徑(如果調(diào)用的頭文件,以及需要編譯的 .c 文件不包含在 SConscript 中,需要自行添加)

808能識(shí)別到兩個(gè)usb converter設(shè)備 但是識(shí)別不到串口設(shè)備,重新燒寫(xiě)702的固件也沒(méi)用,最后的解決辦法是在設(shè)備管理器中右擊對(duì)應(yīng)的USB設(shè)備,選擇屬性,進(jìn)入高級(jí)設(shè)置,勾選vcp,刷新后出現(xiàn)串口。進(jìn)入下載模式是先上電,然后同時(shí)按住RST和BOOT按鍵,然后先松開(kāi)RST,再松開(kāi)BOOT即可。

最后提交PR的時(shí)候需要注意格式問(wèn)題:注釋使用/**/,最后用自動(dòng)化軟件刷一下格式。

聲明:本文內(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)投訴
  • 驅(qū)動(dòng)器
    +關(guān)注

    關(guān)注

    52

    文章

    8065

    瀏覽量

    145646
  • USB設(shè)備
    +關(guān)注

    關(guān)注

    0

    文章

    56

    瀏覽量

    16311
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1184

    瀏覽量

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

    關(guān)注

    31

    文章

    1251

    瀏覽量

    39739
  • HAL庫(kù)
    +關(guān)注

    關(guān)注

    1

    文章

    114

    瀏覽量

    6118
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    BL808 RT-Thread Wi-Fi 驅(qū)動(dòng)適配

    BL808 WiFi 屬于 SOC 單芯片型無(wú)線 MCU,片上集成 WiFi 功能,移植 RT-Thread 過(guò)程中,需要使用 RT-Thread wlan 框架。 RT-Thread wlan
    的頭像 發(fā)表于 12-02 11:06 ?1294次閱讀
    <b class='flag-5'>BL808</b> RT-Thread Wi-Fi <b class='flag-5'>驅(qū)動(dòng)</b>適配

    BL808 RT-Thread Wi-Fi驅(qū)動(dòng)適配

    BL808 WiFi 屬于 SOC 單芯片型無(wú)線 MCU,片上集成 WiFi 功能,移植 RT-Thread 過(guò)程中,需要使用 RT-Thread wlan 框架。
    的頭像 發(fā)表于 12-04 11:38 ?781次閱讀

    嵌入式linux驅(qū)動(dòng)對(duì)gpio的基本操作

    文章目錄代碼驅(qū)動(dòng)層代碼應(yīng)用層代碼 測(cè)試驅(qū)動(dòng)Makefile這里記錄的是嵌入式linux驅(qū)動(dòng)對(duì)gpio的基本操作。實(shí)現(xiàn)的內(nèi)容是:
    發(fā)表于 11-05 07:59

    ZKBU808的相關(guān)資料推薦

    編輯-ZKBU808在KBU-4/DIP-4封裝里采用的4個(gè)芯片,其尺寸都是95MIL,是一款整流扁橋。KBU808的浪涌電流Ifsm300A,漏電流(Ir)10uA,其工作時(shí)耐溫
    發(fā)表于 12-30 08:21

    以rk808驅(qū)動(dòng)例子講解i2c regmap方式讀寫(xiě)

    和硬件IC之間做一層緩存,從而能減少底層I/O的操作次數(shù)Regmap拓?fù)浣Y(jié)構(gòu)應(yīng)用實(shí)例以rk808驅(qū)動(dòng)例子講解i2c regmap方式讀寫(xiě)使用配置文件初始化i2c
    發(fā)表于 08-11 16:43

    記錄BL808 BSP添加GPIO驅(qū)動(dòng)時(shí)踩到的一些坑及解決方案

    該文主要記錄 BL808 BSP 添加 GPIO 驅(qū)動(dòng)時(shí)踩到的一些坑及解決方案。這是我第一次對(duì)
    發(fā)表于 02-03 14:36

    NUC972如何添加LED驅(qū)動(dòng)leds_gpio?

    。內(nèi)核還提供了一個(gè)非常方便的方法,就是用過(guò)leds_gpio驅(qū)動(dòng)來(lái)控制LED. 我們只需要配置相關(guān)引腳就新了。 步驟如下: 1.添加配置引腳 修改 dev.c 文件在內(nèi)核目錄/arch/arm
    發(fā)表于 06-28 06:09

    簡(jiǎn)要分析Thread的通用GPIO設(shè)備驅(qū)動(dòng)

    為了給用戶提供操作GPIO的通用API,方便應(yīng)用程序開(kāi)發(fā),RT-Thread中引入了通用GPIO設(shè)備驅(qū)動(dòng)。并提供類似Arduino風(fēng)格的API用于操作GPIO,如設(shè)置
    發(fā)表于 11-13 14:57 ?1453次閱讀

    LINUX GPIO如何驅(qū)動(dòng)源碼移植

    的寄存器驅(qū)動(dòng),是在linux-2.6.18_pro500\arch\arm\mach-davinci 目錄下的gpio.c,這個(gè)是寄存器級(jí)的驅(qū)動(dòng),搞過(guò)單片機(jī)MCU的朋友應(yīng)該比較熟悉寄存器級(jí)的驅(qū)
    發(fā)表于 06-26 17:43 ?4次下載
    LINUX <b class='flag-5'>GPIO</b>如何<b class='flag-5'>驅(qū)動(dòng)</b>源碼移植

    808D設(shè)定值電纜信號(hào)與V60驅(qū)動(dòng)接線說(shuō)明

    808D設(shè)定值電纜信號(hào)與V60驅(qū)動(dòng)接線說(shuō)明。
    發(fā)表于 05-09 11:20 ?11次下載

    嵌入式Linux驅(qū)動(dòng) GPIO操作 包括驅(qū)動(dòng)和應(yīng)用層程序?qū)?b class='flag-5'>驅(qū)動(dòng)進(jìn)行測(cè)試

    文章目錄代碼驅(qū)動(dòng)層代碼應(yīng)用層代碼 測(cè)試驅(qū)動(dòng)Makefile這里記錄的是嵌入式linux驅(qū)動(dòng)對(duì)gpio的基本操作。實(shí)現(xiàn)的內(nèi)容是:
    發(fā)表于 11-02 14:36 ?10次下載
    嵌入式Linux<b class='flag-5'>驅(qū)動(dòng)</b> <b class='flag-5'>GPIO</b>操作 包括<b class='flag-5'>驅(qū)動(dòng)</b>和應(yīng)用層程序?qū)?b class='flag-5'>驅(qū)動(dòng)</b>進(jìn)行測(cè)試

    Peripheral Drivers of DA1458x Software Platform----GPIO

    GPIO_reservations():要使用的每個(gè)GPIO引腳添加帶有適當(dāng)參數(shù)的RESERVE_GPIO()宏指令。●在periph_s
    發(fā)表于 11-26 19:51 ?18次下載
    Peripheral Drivers of DA1458x Software Platform----<b class='flag-5'>GPIO</b>

    AMetal開(kāi)發(fā):通用外設(shè)GPIO驅(qū)動(dòng)的開(kāi)發(fā)

    : 了解通用外設(shè)標(biāo)準(zhǔn)接口層、外設(shè)硬件層開(kāi)發(fā)、外設(shè)驅(qū)動(dòng)層開(kāi)發(fā)、外設(shè)用戶配置文件開(kāi)發(fā)。 ? ? ? ? ? 圖1 通用外設(shè)文件結(jié)構(gòu) 標(biāo)準(zhǔn)層了解 1、標(biāo)準(zhǔn)接口相關(guān)類型定義 如下所示GPIO的標(biāo)準(zhǔn)接口文件中對(duì)
    的頭像 發(fā)表于 05-31 17:28 ?2019次閱讀

    只需5步,教你添加GPIO按鍵——飛凌教程

    本文將為大家介紹如何在飛凌OKT507-C開(kāi)發(fā)板上添加兩個(gè)GPIO按鍵,希望能夠?qū)Ω魑还こ處熡兴鶐椭疚恼乱訮E5、PE6兩個(gè)引腳例。
    的頭像 發(fā)表于 10-17 14:43 ?820次閱讀
    只需5步,教你<b class='flag-5'>添加</b><b class='flag-5'>GPIO</b>按鍵——飛凌教程

    博流BL808三核編譯運(yùn)行上手指南

    bl808是三核異構(gòu)架構(gòu),分為m0、lp、d0,使用的都是平臺(tái)哥的RISC-V核,分別為E907/E902/C906,每個(gè)核需要單獨(dú)編譯并燒錄到對(duì)應(yīng)的位置,通過(guò)本文可以了解三核編譯、燒錄、運(yùn)行。
    的頭像 發(fā)表于 08-07 17:14 ?3059次閱讀
    博流<b class='flag-5'>BL808</b>三核編譯運(yùn)行上手指南