在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

【試用報告】STM32與RT-Thread的完美結合:SD卡操作的順暢體驗!

電子發燒友論壇 ? 來源:未知 ? 2023-07-11 09:20 ? 次閱讀

本篇將介紹——如何在正點原子STM32探索者V3開發板上使用RT-ThreadSDIO驅動和FATFS文件系統組件實現SD卡上的文件讀寫。


開始本篇實驗前,需要搭建RT-Thread開發環境,可以參考我之前的帖子:【正點原子STM32探索者V3開發板體驗】體驗RT-Thread 5.0.0版本


在正點原子STM32探索者V3開發板上使用RT-Thread驅動SD卡實現文件讀寫只需要三步:


  • 配置FATFS和SDIO功能

  • 編譯項目代碼

  • 燒錄程序到開發板


對,你沒看錯,不用寫代碼,只需要改改配置,編譯、燒錄、運行就可以了!


一、準備工作


1.1 準備好開發板和SD卡

開始本篇實驗之前,需要準備一個MicroSD卡,我這里準備的是一個32G的閃迪卡:



1.2 創建RT-Thread項目

和上一篇文章類似,首先打開RT-Thread Env工具, 并跳轉到rt-thread源碼的bsp/stm32/stm32f407-atk-explorer子目錄。


然后,使用如下scons命令,創建RT-Thtread項目:

scons --dist --target=mdk --project-name=rtt_sdio --project-path=D:\Hardware\ST\ExplorerV3_STM32F407\Elecfans_03\rtt_sdio

(左右移動查看全部內容)


如下圖所示:



注:如果已有RT-Thread項目,則可以跳過此步驟。


該命令執行完成后,就可以看到創建的目錄和文件了:



其中,rtt_sdio.uvprojx即為剛剛scons命令生成的Keil項目文件。


二、配置RT-Thread


PS:這個以RT-Thread Env工具為例,對RT-Thread進行配置,如果是使用RT-Thread Studio創建項目,進行配置也是類似的。


2.1 打開文件系統相關配置

RT-Thread Env命令行窗口跳轉到項目所在目錄后,執行meuconfig命令并回車,打開配置界面:



常用操作說明:

  • 上下鍵,移動光標

  • 回車鍵,進入配置項

  • ESC鍵,退出當前配置,返回上一級配置

  • 空格鍵,選中或取消光標所在配置項

  • “/”鍵,搜索界面


在 Hardware Drivers Config -> Onboard Periopheral Drivers 配置中,選中 Enable File System:



PS:該配置項選(BSP_USING_FS)中后,會自動選中RT_USING_DFS和RT_USING_DFS_ROMFS配置項。


2.2 打開SD卡相關配置

選中 Hardware Drivers Config -> Onboard Periopheral Drivers -> Enable File System (BSP_USING_FS)配置項后,繼續回車:



選中Enable SDCARD配置項目,如上圖所示。


然后左右移動底部光標到Save菜單上,回車保存,提示保存為.config:



回車后,彈出提示說配置已寫入到.config了:



敲回車,界面將會返回配置界面。


此時,我們的對項目配置的修改已經保存到.config文件了,我們只需要連續按ESC鍵即可退出配置界面。


2.3 打開RTC配置

類似的,找到并打開如下配置項:



該配置項用于打開RTC功能,以實現計時功能(PS:文件系統需要計時功能)。


2.4 重新生成Keil項目文件

由于剛剛我們修改了配置項,開啟了文件系統和SD卡相關的配置項目,需要重新生成Keil項目文件,才能正常編譯成功。


在當前項目目錄中,使用如下命令,重新生成Keil項目文件:

scons --target=mdk --project-name=rtt_sdio

(左右移動查看全部內容)


如下圖所示:




三、編譯、燒錄、運行


3.1 編譯項目

由于我安裝的是Keil 5.37,需要先切換默認便器才可以正常編譯通過。


切換默認編譯器,具體操作為:



在彈出的Options for Target - rt-thread界面中,下拉ARM Compiler,選擇Use default compiler version 6,即使用默認的版本6編譯器;


點擊底部的OK,確認。


修改完默認編譯器后,點擊編譯圖標(或者按快捷鍵F7進行編譯),將會開始編譯:



編譯完成后,Build Output將會看到:



有一個Error,重新編譯一下,可以直接看得清楚,不用往回找是哪個文件編譯報錯:



報錯信息說:

  • board/ports/drv_filesystem.c文件中,聲明變量romfs_root為static,

  • rt-thread/components/dfs/filesystems/romfs\dfs_romfs.h文件中,聲明變量romfs_root為非static,


前后聲明不一致,導致報錯,解決方法很簡單, 將drv_filesystem.c中的static去掉即可 。


修改后,再次重新編譯,就可以編譯通過了:



3.2 下載程序

編譯成功后,我們需要將生成的二進制程序代碼文件燒錄到開發板上。


開始測試之前,我們需要先將MicroSD卡插入開發板(建議斷電操作,PC端先斷開):



插入SD卡后,檢查開發板和PC之間的USB線和JTAG調試器連接。


由于我使用的是JLink調試器,因此還需要修改項目的調試器設置(Keil項目默認的調試器設置是ULINK)。


修改Keil項目的調試設置,具體操作如下(這里以JLink為例):





這里,我修改了Port為SW,代表使用SWD接口(JTAG也可以),Max表示最大時鐘信號頻率,修改為50M下載速度更快。


看到成功識別了 ARM CoreSight JTAG-DP,說明JLINK調試器已經成功識別到主控芯片了。



最后點擊確定,回到Options for Target - Blinky界面,點擊OK,保存設置;


以上準備就緒后,在Keil中,點擊Download按鈕(或者F8快捷鍵),開始下載程序到開發板:



3.3 運行程序

燒錄完成后,連接串口,輸入help命令回車可以看到:



可以看到文件系統相關的操作命令:

  • mkfs,可以用于創建文件系統

  • mount,可以用于掛載文件系統

  • umount,可以用于卸載文件系統


還有文件相關的操作命令:

  • cp,拷貝文件

  • mv,移動或重命名文件

  • cat,顯示文件內容

  • echo,可用于創建或寫入文件


四、在msh中操作SD卡


燒錄完成后,我們就可以在RT-Thread的msh環境中愉快地操作SD卡了。


4.1 查看設備

輸入list device命令并回車,可以查看設備:



這里sd0為分區,后續會對他進行操作。


4.2 格式化SD卡

初次使用的SD卡,可能沒有文件系統,或者文件系統不是FAT格式的,需要將SD卡格式化為FAT文件系統,后續才能掛載成功。


注意:格式化操作會導致SD卡上已有數據全部丟失;因此,在執行格式化操作前,請確認SD卡上沒有重要數據,或者你已對SD卡上的重要數據進行了備份。


mkfs命令用法:



接下來,我們可以通過mkfs命令對SD卡進行格式化:



mkfs執行會持續一段時間,請耐心等待(具體因不同SD卡容量和速度等級而異,我的32GB卡消耗了幾秒鐘)。


4.3 掛載文件系統

接下來,我們可以在串口終端內使用mount命令將SD卡掛載到根目錄:



mount -h可以查看mount命令的用法:



另外需要注意的是,fstype參數使用的是elm(這里的elm實際就是FATFS)。


4.4 簡單的文件讀寫測試

前面提到echo命令比較特殊,可以寫文件,接下來使用echo寫文件,cat讀文件,ls查看文件:



這里使用了ls、echo、cat命令,進行了文件讀寫操作。


4.5 簡單的目錄操作測試

接下來,進行簡單的目錄操作演示。



這里首先使用了pwd查看當前工作目錄,然后演示了ls、mkdir、cd命令;


如果你是對RT-Thread了解不多的朋友,看到這里可能會非常驚奇——在一個可以運行在單片機RTOS上,居然可以這么方便的進行文件系統、目錄、文件操作。


五、本篇小結


可以看到,在基于RT-Thread系統的項目中,我們沒有添加任何代碼,就可以實現SD卡進行文件系統和件相關操作。這是因為RT-Thread系統正點原子STM32探索者V3開發板的BSP中已經支持了SDIO功能,另外RT-Thread系統本身包含了SDIO驅動框架、FATFS支持,以及相關的命令。因此,我們可以在shell中非常方便的進行文件系統相關操作,以及文件相關操作。


參考鏈接

  • RT-Thread Env工具下載:https://www.rt-thread.org/download.html#download-rt-thread-studio

  • RT-Thread Env 用戶手冊:https://www.rt-thread.org/document/site/#/development-tools/env/env

  • RT-Thread 5.0.0 發布聲明:https://mp.weixin.qq.com/s/x9Sb3hc_GxV5VYfagGKhcA

  • RT-Thread RTC設備文檔:https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/rtc/rtc

  • RT-Thread 虛擬文件系統:https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/filesystem/filesystem





聲明本文由電子發燒友社區發布,轉載請注明以上來源。如需社區合作及入群交流,請添加微信EEFans0806,或者發郵箱[email protected]


更多熱點文章閱讀

  • 基于Cortex-M3內核的32位微控制器,STM32項目實戰分享!

  • 基于32位RISC-V設計的互聯型微控制器,沁恒微CH32V307開發樣例

  • RK3568!四核64位ARMv8.2A架構,匯聚編譯源碼及實戰樣例

  • 尺寸僅有21mm*51mm,板邊采用郵票孔設計,合宙 Air105 核心板開發總結

  • 嵌入式Linux開發秘籍!工程師大佬親歷分享項目樣例


原文標題:【試用報告】STM32與RT-Thread的完美結合:SD卡操作的順暢體驗!

文章出處:【微信公眾號:電子發燒友論壇】歡迎添加關注!文章轉載請注明出處。

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

原文標題:【試用報告】STM32與RT-Thread的完美結合:SD卡操作的順暢體驗!

文章出處:【微信號:gh_9b9470648b3c,微信公眾號:電子發燒友論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何將RT-Thread移植到NXP MCUXPressoIDE上

    RT-Thread默認支持的IDE只有IAR 和 Keil, 那如何將RT-Thread移植到NXP MCUXPressoIDE上呢?本文內容比較簡單但稍有瑣碎,希望對有需要的小伙伴有所幫助。
    的頭像 發表于 02-13 10:37 ?1625次閱讀
    如何將<b class='flag-5'>RT-Thread</b>移植到NXP MCUXPressoIDE上

    RT-Thread操作系統應用開發寒假師資培訓

    隨著物聯網和智能系統的快速發展,嵌入式成為當前最熱門最有發展前途的IT應用領域之一。為進一步提升全國大學生在嵌入式芯片及系統設計領域的創新能力,特別是針對物聯網應用開發中RT-Thread操作
    的頭像 發表于 12-06 01:06 ?338次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>操作</b>系統應用開發寒假師資培訓

    RT-Thread上CAN實踐

    開箱測試RT-Thread官方已完成了對英飛凌XMC7200EVK的移植,通過shell可以看到做好了uart3的console。本文將介紹如何進行RT-ThreadCan移植。接下來我們要完成CAN_FD的驅動移植,并正常啟動RT-T
    的頭像 發表于 11-13 01:03 ?1804次閱讀
    <b class='flag-5'>RT-Thread</b>上CAN實踐

    開源共生 商業共贏 | RT-Thread 2024開發者大會報名啟動!

    親愛的RT-Thread開發者我們很高興地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread開發者大會)正式啟動報名!2024RT-Threa
    的頭像 發表于 10-29 08:06 ?809次閱讀
    開源共生 商業共贏 | <b class='flag-5'>RT-Thread</b> 2024開發者大會報名啟動!

    課程上線 - RT-Thread應用開發實踐課程上線慕課平臺啦!

    我們非常高興地告訴大家,由廣東機電職業技術學院的老師們制作的,使用《RT-Thread應用開發實踐》作為教材的課程——嵌入式操作系統應用,正式上線慕課平臺啦!歡迎各位想要系統學習RT-Thread
    的頭像 發表于 09-14 08:07 ?538次閱讀
    課程上線 - <b class='flag-5'>RT-Thread</b>應用開發實踐課程上線慕課平臺啦!

    新書發布——《RT-Thread嵌入式實時操作系統內核、驅動和應用開發技術》

    我們非常高興地宣布,由鄭苗秀、沈鴻飛和廖建尚編著的《RT-Thread嵌入式實時操作系統內核、驅動和應用開發技術》一書正式發布。本書的編寫團隊由多位在嵌入式和實時操作系統領域有著豐富經驗的專家組
    的頭像 發表于 09-03 08:06 ?1080次閱讀
    新書發布——《<b class='flag-5'>RT-Thread</b>嵌入式實時<b class='flag-5'>操作</b>系統內核、驅動和應用開發技術》

    2024 RT-Thread全球巡回 線下培訓火熱來襲!

    親愛的RT-Thread社區成員們:我們非常高興地宣布,2024年RT-Thread全球開發者線下培訓即將拉開帷幕!24年全球巡回培訓將覆蓋超10座城市及國家,為開發者提供一個深入學習RT-Thread嵌入式開發的絕佳機會。
    的頭像 發表于 08-07 08:35 ?2169次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓火熱來襲!

    【好書推薦】RT-Thread設備驅動開發指南

    近年來國內芯片產業和物聯網產業的快速崛起,行業發展迫切需要更多人才,尤其需要掌握嵌入式操作系統等底層技術的人才。隨著RT-Thread被更廣泛地應用于行業中,開發者對嵌入式驅動開發的需求越來越
    的頭像 發表于 08-01 08:35 ?1072次閱讀
    【好書推薦】<b class='flag-5'>RT-Thread</b>設備驅動開發指南

    RT-Thread內部機制大揭秘,帶你深入操作系統內核

    一、RT-Thread概述RT-Thread是一款具有顯著優勢的開源嵌入式實時操作系統。它不僅具備輕量級、實時性強的特點,還擁有廣泛的開源社區支持和豐富的應用場景。在輕量級方面,RT-Thre
    的頭像 發表于 08-01 08:11 ?4716次閱讀
    <b class='flag-5'>RT-Thread</b>內部機制大揭秘,帶你深入<b class='flag-5'>操作</b>系統內核

    怎樣修改LVGL的lv_port_fs文件,讓它使用rt-thread的DFS文件系統中的API函數讀取SD中的圖片?

    我想問一下,怎樣修改LVGL的lv_port_fs文件,可以讓它使用rt-thread的DFS文件系統中的API函數(這些API函數在rt-thread的dfs_posix.c中)讀取SD
    發表于 07-11 06:53

    RT-Thread 新里程碑達成——GitHub Star 破萬!

    RT-Thread實時操作系統開源項目在GitHub上的star數量突破一萬!截止發文,RT-Thread作為實時操作系統在業界Star數量排名第一!倉庫地址:https://gith
    的頭像 發表于 07-04 08:35 ?658次閱讀
    <b class='flag-5'>RT-Thread</b> 新里程碑達成——GitHub Star 破萬!

    基于 RT-Thread專業版的EtherCAT主站方案

    特點。在RT-Thread實時操作系統上運行EtherCAT主站協議,大大提高了實時性,極大降低了循環同步抖動時間,可滿足各種對實時性要求苛刻的應用場景。以下是在瑞
    的頭像 發表于 06-19 08:35 ?1574次閱讀
    基于 <b class='flag-5'>RT-Thread</b>專業版的EtherCAT主站方案

    實時操作系統之RT-Thread及FreeRTOS

    RT-Thread與其他很多RTOS如FreeRTOS的主要區別之一是,它不僅僅是一個實時內核,還具備豐富的中間層組件,如下圖所示。FreeRTOS和RT-Thread是兩種常見的嵌入式實時操作
    的頭像 發表于 05-29 08:10 ?4856次閱讀
    實時<b class='flag-5'>操作</b>系統之<b class='flag-5'>RT-Thread</b>及FreeRTOS

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

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

    【上?!?月25日-基于恩智浦MCX N系列MCU結合RT-Thread的應用與實踐 線下培訓

    5月25號,RT-Thread將攜手恩智浦共同舉辦基于恩智浦MCXN系列MCU結合RT-Thread的應用與實踐線下培訓。我們將為大家帶來恩智浦MCXN系列MCU的詳細介紹、精彩Demo展示、以及
    的頭像 發表于 05-13 18:19 ?1620次閱讀
    【上海】5月25日-基于恩智浦MCX N系列MCU<b class='flag-5'>結合</b><b class='flag-5'>RT-Thread</b>的應用與實踐 線下培訓
    主站蜘蛛池模板: 波多野结衣50连精喷在线 | 干一干操一操 | 色之综合网 | 新版天堂中文资源官网 | 欧美日韩国产成人高清视频 | 2021国产精品自在拍在线播放 | 97伊人| 网站在线播放 | 曰本在线网 | 午夜国产在线 | 欧美系列在线观看 | 久久久鲁 | 亚洲人成电影在线播放 | 美女久久久 | 国产精品久久久亚洲第一牛牛 | 国产视频国产 | 国内一区二区三区精品视频 | 久久久噜噜噜久久中文字幕色伊伊 | 亚洲va久久久噜噜噜久久狠狠 | 伊人色婷婷综在合线亚洲 | 激情综合在线观看 | 午夜剧场毛片 | 国产色片 | 激情综合五月亚洲婷婷 | 日本加勒比官网 | 亚洲午夜日韩高清一区 | 天堂资源最新版在线www | 日韩精品视频免费观看 | 最新地址四虎www4hutv | 国产一区中文字幕 | 婷婷丁香亚洲 | 国产黄色大全 | 欧美性另类 | www.毛片在线观看 | 亚洲精品久久婷婷爱久久婷婷 | 红怡院欧洲 | 99热最新在线观看 | 奇米影视亚洲四色8888 | 免费福利片2022潦草影视午夜 | www你懂的| 欧美高清a |