91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

如何通過SD卡和ymodem串口升級(jí)固件

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 2020-09-04 14:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.文件系統(tǒng)簡(jiǎn)介

1.1 DFS 簡(jiǎn)介

DFS( Device File System)是一種抽象的文件機(jī)制,RT-Thread中對(duì)文件系統(tǒng)的相關(guān)操作實(shí)際上都是通過操作DFS實(shí)現(xiàn),也就是說DFS是對(duì)各種文件系統(tǒng)的抽象。DFS使的其他部分無須關(guān)心不同文件系統(tǒng)之間的差異,使得RT-Thread可以支持多種類型的文件系統(tǒng)。

1.2 DFS 框架

RT-Thread DFS 組件的主要功能特點(diǎn)有:

為應(yīng)用程序提供統(tǒng)一的 POSIX 文件和目錄操作接口:read、write、poll/select 等。

支持多種類型的文件系統(tǒng),如 FatFS、RomFS、DevFS 等,并提供普通文件、設(shè)備文件、網(wǎng)絡(luò)文件描述符的管理。

支持多種類型的存儲(chǔ)設(shè)備,如 SD Card、SPI Flash、Nand Flash 等。

DFS 的層次架構(gòu)如下圖所示,主要分為 POSIX 接口層、虛擬文件系統(tǒng)層和設(shè)備抽象層。

1.3 elm-FAT文件系統(tǒng)簡(jiǎn)介

FatFs 是一個(gè)通用的文件系統(tǒng)(FAT/exFAT)模塊,用于在小型嵌入式系統(tǒng)中實(shí)現(xiàn)FAT文件系統(tǒng)。

1.4 使用流程

初始化 DFS 組件。

初始化具體類型的文件系統(tǒng)。

在存儲(chǔ)器上創(chuàng)建塊設(shè)備。

格式化塊設(shè)備。

掛載塊設(shè)備到 DFS 目錄中。

當(dāng)文件系統(tǒng)不再使用,可以將它卸載

1.5 注冊(cè)elm-FAT文件系統(tǒng)

elm-FAT文件系統(tǒng)注冊(cè)過程如下圖所示:

1.6 掛載elm-FAT文件系統(tǒng)

1voidsd_mount(void*parameter) 2{ 3while(1) 4{ 5rt_thread_mdelay(500); 6if(rt_device_find("sd0")!=RT_NULL) 7{ 8if(dfs_mount("sd0","/fatfs","elm",0,0)==RT_EOK) 9{ 10LOG_I("sdcardmountto'/fatfs'"); 11break; 12} 13else 14{ 15LOG_W("sdcardmountto'/fatfs'failed!"); 16} 17} 18} 19} 20 21intstm32_sdcard_mount(void) 22{ 23rt_thread_ttid; 24 25tid=rt_thread_create("sd_mount",sd_mount,RT_NULL, 261024,RT_THREAD_PRIORITY_MAX-2,20); 27if(tid!=RT_NULL) 28{ 29rt_thread_startup(tid); 30} 31else 32{ 33LOG_E("createsd_mountthreaderr!"); 34} 35returnRT_EOK; 36} 37INIT_APP_EXPORT(stm32_sdcard_mount);

在文件系統(tǒng)操作表中找出elm文件系統(tǒng)

檢查"/fatfs"路徑是否存在

檢查elm文件系統(tǒng)是否已經(jīng)掛載在文件系統(tǒng)表中

檢查文件系統(tǒng)表是否有空余,如果有,把空余地址指向elm文件系統(tǒng)

注冊(cè)文件系統(tǒng)

調(diào)用elm文件系統(tǒng)的掛載接口

1.7 測(cè)試elm-FAT文件系統(tǒng)

在根目錄下使用ls命令,可以查看目錄:

2.設(shè)計(jì)界面

使用TouchGFX 4.14.0 Designer添加設(shè)置界面。增加進(jìn)度條,和兩個(gè)按鈕,以及固件版本和更新時(shí)間的記錄(記錄環(huán)境變量使用的是easyflash軟件包)。我這個(gè)界面設(shè)計(jì)的比較簡(jiǎn)陋,重在實(shí)現(xiàn)功能,審美好的人,歡迎重新設(shè)計(jì)這個(gè)界面。


依然利用TouchGFX的MVP架構(gòu),將UI命令傳遞到后臺(tái)。
參考前邊的文章:【DIY數(shù)字儀表】使用TouchGFX的MVP架構(gòu)來實(shí)現(xiàn)GUI和硬件的雙向交互(2)

3.添加sd卡或者spi flash拷貝到SDRAM的代碼

1boolTouchGFXHAL::blockCopy(void*RESTRICTdest,constvoid*RESTRICTsrc,uint32_tnumBytes) 2{ 3uint32_tdataOffset=(uint32_t)src; 4if(dataOffset>=0x90000000&&dataOffset

此代碼用來根據(jù)設(shè)置的環(huán)境變量選擇從sd卡還是spi flash拷貝圖片。

4.添加msh命令

1#ifdefRT_USING_FINSH 2#include 3/*exporttofinsh*/ 4FINSH_FUNCTION_EXPORT(ReadUpdataToSpiflash,ReaddataToSpiflashtest); 5 6#ifdefFINSH_USING_MSH 7staticvoidcmd_updata(intargc,char*argv[]) 8{ 9char*filename; 10 11if(argc==2) 12{ 13filename=argv[1]; 14} 15else 16{ 17filename=DEFAULT_FILENAME; 18recv_partition=DEFAULT_DOWNLOAD_PART; 19LOG_I("Defaultsavefirmwareondownloadpartition. "); 20} 21ReadUpdataToSpiflash(filename); 22} 23FINSH_FUNCTION_EXPORT_ALIAS(cmd_updata,__cmd_updata,ReaddataToSpiflashtest); 24#endif/*FINSH_USING_MSH*/ 25#endif/*RT_USING_FINSH*/

添加msh命令,使通過msh命令也能升級(jí)固件,將SD的圖片資源拷貝到spi flash的功能


updata命令默認(rèn)將從sd卡中讀取ER_IROM1.rbl固件,將固件下載到download分區(qū)。


通過updata /ER_EROM1命令,可以將sd中的圖片資源拷貝到tgfx分區(qū)(spi flash中圖片所在的位置)中

5.生成bin文件

keil中添加以下命令,然后便會(huì)在binary目錄下,生成外部flash和內(nèi)部flash的bin文件:


利用rt_ota_packaging_tool工具,對(duì)內(nèi)部flash燒錄bin文件進(jìn)行加密和壓縮,然后將生成的ER_IROM1.rbl文件和ER_EROM1文件拷貝到SD卡中:

6.制作BootLoader

參考以下文章:STM32通用Bootloader——FOTA
rt_fota集成了ymodem的協(xié)議,在沒有app的情況下,也可以通過rt_fota的ymodem命令給固件和圖片資源升級(jí)。
ymodem_ota命令,默認(rèn)將固件下載到download分區(qū):


ymodem_ota -p tgfx命令,可以將sd中的圖片資源拷貝到tgfx分區(qū)中:

聲明:本文內(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)投訴
  • SD卡
    +關(guān)注

    關(guān)注

    2

    文章

    589

    瀏覽量

    68877
  • 串口
    +關(guān)注

    關(guān)注

    15

    文章

    1620

    瀏覽量

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

    關(guān)注

    32

    文章

    1618

    瀏覽量

    44930

原文標(biāo)題:【DIY數(shù)字儀表】RT-Thread移植Touchgfx使用sd卡升級(jí)固件和圖片資源(4)

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    SD讀寫均衡失效問題分析

    一、讀寫均衡失效引發(fā)的核心問題 讀寫均衡(磨損均衡,Wear Leveling)是SD固件通過算法將數(shù)據(jù)均勻分配到閃存芯片各單元,避免局部單元過度擦寫的關(guān)鍵機(jī)制。瀚海微
    的頭像 發(fā)表于 12-29 15:08 ?416次閱讀
    <b class='flag-5'>SD</b><b class='flag-5'>卡</b>讀寫均衡失效問題分析

    SD NAND、TF、SD的應(yīng)用領(lǐng)域大揭秘

    在如今這個(gè)數(shù)據(jù)爆炸的時(shí)代,各類存儲(chǔ)設(shè)備猶如繁星般閃耀,而SD NAND、TFSD更是其中的佼佼者。它們看似相似,實(shí)則各有千秋,在不同的領(lǐng)域和場(chǎng)景中發(fā)揮著獨(dú)特的作用。今天,就讓我們
    的頭像 發(fā)表于 11-30 15:16 ?1010次閱讀
    <b class='flag-5'>SD</b> NAND、TF<b class='flag-5'>卡</b>、<b class='flag-5'>SD</b><b class='flag-5'>卡</b>的應(yīng)用領(lǐng)域大揭秘

    解鎖SD NAND、TF、SD的應(yīng)用密碼

    在科技飛速發(fā)展的今天,數(shù)據(jù)存儲(chǔ)的需求滲透到生活與工作的每一個(gè)角落——從手腕上的智能手表,到專業(yè)攝影師的相機(jī),再到工廠里的工業(yè)路由器,都離不開高效可靠的存儲(chǔ)介質(zhì)。SD NAND、TFSD
    的頭像 發(fā)表于 11-24 11:04 ?557次閱讀
    解鎖<b class='flag-5'>SD</b> NAND、TF<b class='flag-5'>卡</b>、<b class='flag-5'>SD</b><b class='flag-5'>卡</b>的應(yīng)用密碼

    Bootloader固件升級(jí)的步驟

    ,也可以不更新,在項(xiàng)目中,我們通常會(huì)對(duì) FW 版本號(hào)進(jìn)行對(duì)比,會(huì)將 MCU 中的 App 程序更新最新的版本,起到固件升級(jí)的效果。更新的話,BootLoader 更新完程序后,跳轉(zhuǎn)到新程序運(yùn)行;不更新
    發(fā)表于 11-19 07:41

    解鎖存儲(chǔ)密碼:SD NAND、TFSD的應(yīng)用全景

    在數(shù)據(jù)洪流的時(shí)代,存儲(chǔ)介質(zhì)就如同數(shù)字世界的基石,支撐著各類設(shè)備的正常運(yùn)轉(zhuǎn)。SD NAND、TFSD,雖同屬NAND Flash存儲(chǔ)介質(zhì)家族,卻因各自獨(dú)特的“個(gè)性”,在不同領(lǐng)域綻放
    的頭像 發(fā)表于 10-29 14:24 ?707次閱讀

    使用RTT的維護(hù)云進(jìn)行遠(yuǎn)程固件升級(jí)(OTA),怎么沒有網(wǎng)絡(luò)升級(jí)的方式?

    使用RTT的維護(hù)云進(jìn)行遠(yuǎn)程固件升級(jí)(OTA),怎么沒有網(wǎng)絡(luò)升級(jí)的方式的?只有藍(lán)牙,近距離的固件升級(jí)。詳細(xì)如圖所示,只有藍(lán)牙,沒有連接互聯(lián)網(wǎng),
    發(fā)表于 10-13 06:36

    使用ymodem_ota時(shí)如何更換串口?

    現(xiàn)在使用串口1可以正常使用ymodem_ota進(jìn)行固件升級(jí),但是現(xiàn)在項(xiàng)目需要使用串口1來進(jìn)行其他作用,求怎么把
    發(fā)表于 09-25 06:17

    請(qǐng)問OTA是否一定依賴于ymodem協(xié)議?

    缺少什么步驟,通過對(duì)比發(fā)送的固件內(nèi)容(日志打?。┡c“downloader”內(nèi)容一致。 3,現(xiàn)在的需求是通過串口2,接收上位機(jī)發(fā)送過來的固件
    發(fā)表于 09-17 08:25

    大文件高效傳輸不求人!Ymodem協(xié)議實(shí)戰(zhàn)示例與核心技巧揭秘

    分享優(yōu)化傳輸效率的核心技巧! Ymodem—— 是一種基于串行通信的文件傳輸協(xié)議,由Chuck Forsberg于1980年代初期在Xmodem協(xié)議基礎(chǔ)上改進(jìn)而來。通過引入1024字節(jié)數(shù)據(jù)塊和批量文件傳輸機(jī)制,顯著提升傳輸效率與可靠性。 ? 主要應(yīng)用于嵌入式系統(tǒng)
    的頭像 發(fā)表于 07-28 17:38 ?1165次閱讀
    大文件高效傳輸不求人!<b class='flag-5'>Ymodem</b>協(xié)議實(shí)戰(zhàn)示例與核心技巧揭秘

    SD—雷龍 SD NAND

    一、SD介紹 1.基本介紹 本質(zhì):nand flash + 控制芯片 1.SD ,Secure Digital Card,稱為安全數(shù)字
    的頭像 發(fā)表于 07-21 17:59 ?3814次閱讀
    <b class='flag-5'>SD</b><b class='flag-5'>卡</b>—雷龍 <b class='flag-5'>SD</b> NAND

    【嵌入式開發(fā)】SD—雷龍 SD NAND

    ,固件可定制,LGA-8封裝,標(biāo)準(zhǔn)SDIO接口,兼容SPI,兼容拔插式TF/SD,可替代普通TF/
    發(fā)表于 07-21 17:56

    創(chuàng)龍 瑞芯微 RK3562 國(guó)產(chǎn) 2GHz 四核A53 工業(yè)開發(fā)板—Linux系統(tǒng)啟動(dòng)制作及系統(tǒng)固化

    本文主要演示SD啟動(dòng)制作,以及將Linux系統(tǒng)鏡像固化至eMMC的方法。使用瑞芯微創(chuàng)建升級(jí)磁盤工具SDDiskTool_v1.78可將Linux系統(tǒng)鏡像通過讀卡器固化至Micro
    的頭像 發(fā)表于 07-04 10:15 ?1513次閱讀
    創(chuàng)龍 瑞芯微 RK3562 國(guó)產(chǎn) 2GHz 四核A53 工業(yè)開發(fā)板—Linux系統(tǒng)啟動(dòng)<b class='flag-5'>卡</b>制作及系統(tǒng)固化

    什么是SD、TF寫保護(hù)?寫保護(hù)的常見原因

    部分SD、TF適配器或套上設(shè)有物理寫保護(hù)開關(guān),當(dāng)開關(guān)滑動(dòng)到"鎖定"位置時(shí),卡片會(huì)自動(dòng)進(jìn)入寫保護(hù)狀態(tài)。這是最常見也是最容易解決的寫保護(hù)原因。
    的頭像 發(fā)表于 06-10 00:00 ?5962次閱讀
    什么是<b class='flag-5'>SD</b><b class='flag-5'>卡</b>、TF<b class='flag-5'>卡</b>寫保護(hù)?寫保護(hù)的常見原因

    【STM32系統(tǒng)】基于STM32設(shè)計(jì)的SD數(shù)據(jù)讀取與上位機(jī)顯示系統(tǒng)(SDIO接口驅(qū)動(dòng)、雷龍貼片SD

    為了驗(yàn)證存儲(chǔ)設(shè)備的性能,還為了提高嵌入式系統(tǒng)的數(shù)據(jù)處理與存儲(chǔ)能力。通過SDIO接口實(shí)現(xiàn)與SD的高速通信,并將存儲(chǔ)在SD上的數(shù)據(jù)
    發(fā)表于 05-09 16:11

    如何使用IFX ePower BootStrapLoader工具通過lin通信升級(jí)固件?

    如何使用 IFX ePower BootStrapLoader 工具通過 lin 通信升級(jí)我的固件
    發(fā)表于 04-18 06:56