<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

解決瑞薩RA2E1開發板在RT-Thread的版本中編譯報錯 error: 'board_cfg.h' file not found

冬至子 ? 來源:recan ? 作者:recan ? 2023-09-28 14:47 ? 次閱讀

1 寫在前面
既上上周在RA2E1上把RT-Thread跑起來之后,在上周日的晚上,馬不停蹄地給《致敬未來的攻城獅計劃》的小伙伴們開了一趟在線直播課,旨在輔導小伙伴們盡快上手基于RA2E1開發板的開發,同時也把基于RT-Thread的一些開發方法和基本操作流程給大家介紹了一遍。

期間遇到了一些小插曲,說起來還是有點尷尬,都怪我這個直播沒做好充足的準備,后面需要加強一下。

2 遇到問題
在直播課程中,我主要基于KEIL、RASC、FSP這幾個軟件給大家演示,介紹如何在KEIL中打開RASC,已經從零開始配置一個新的外設(以新增UART1為例)。在RASC中完成基本的配置之后,點擊右上角的 Generate Project Content 完成代碼生成,隨后回到KEIL這邊去編譯,沒想到遇到了一個很詭異的報錯,現場直播可把我整懵了??创笠饩褪?board_cfg.h 頭文件沒找到。蒙頭一看,還不知道咋回事,整了兩下沒搞定,還是一樣的編譯報錯,那直播現場可是 大寫的尷尬 !

../libraries/HAL_Drivers/config/ra2l1/uart_config.h(15): warning: In file included from...
./ra_genhal_data.h(5): warning: In file included from...
./ra/fsp/inc/apibsp_api.h(32): warning: In file included from...
ra_cfg/fsp_cfg/bspbsp_cfg.h(6): error: 'board_cfg.h' file not found
#include "board_cfg.h"
^~~~~~~~~~~~~

1.jpg

3 分析問題
現場直播的時候,我以為是我操作有誤,導致引入了什么配置失效;當時看到頭文件找不到,我第一時間想到的是 頭文件的路徑沒有添加進去,于是我去KEIL的配置中,新增頭文件搜索路徑,結果還是失?。?/p>

1.jpg

直播現場快速驗證發現不行,我就打圓場搪塞過去了,演示其他的了。

后面直播結束后,我以為記得這事,等到我有空坐下來的時候,我再好好思考并解決這個問題。

前段時間參加瑞薩的設計大賽,我用的 RA4M2 這塊開發板,基本也是KEIL+RASC的開發環境,但是印象中是沒有出現這種更新了RASC的配置,導致KEIL編譯不過的問題。我上網一搜,結果也是有人遇到類似的

1.jpg

原來是RASC搞的鬼!這么一說,我回到我的git環境一看:git status,果然是 board_cfg.h 被刪除了。

1.jpg

有點想不明白的是為何之前 RA4M2的開發配置卻沒有這樣的問題。

突然我想到調試RA2E1要求瑞薩的FSP整個配套版本都需要使用 3.5.0 版本,而之前我用的是4.x 的版本,難道是版本不一樣導致的問題?

于是我對比了一下,兩次KEIL工程里面對RASC/FSP版本的要求,確實不一樣:

1.jpg

打開那個工程綁定的RASC,版本也確實不一樣:

1.jpg

但我嘗試過,直接把RA2E1的FAP升級到RA4M2使用的版本,是不行的;這應該就是兩個大版本沒有做好兼容吧。

4 解決問題

明白了問題的根源,解決起來了就有思路了。

要解決這個問題,不外乎兩種方法:

第一種方式:就是每次執行完RASC的配置更新之后,手動把 board_cfg.h 文件恢復一下,再執行KEIL的編譯。這種方式是比較笨重的,每次都需要人去接入,非常地 “不程序猿”!

第二種方式:采用自動化腳本的方式來完成這個復制、還原的操作,使得在編譯過程無感知。作為程序猿,自然是要選擇這個方式比較聰明。

要使用這種方式,我想到了使用BAT腳本,這個腳本也很簡單,就是預先把board_cfg.h文件備份在一個目錄,然后使用腳本檢測對應目標目錄下的board_cfg.h是否存在,如果不存在,則拷貝過去。對應的BAT腳本如下:

@echo off
SET BoardCfgFile=board_cfg.h
SET SourceFile=ra_bak%BoardCfgFile%
SET DstFile=ra_cfgfsp_cfgbsp%BoardCfgFile%
if exist %SourceFile% (
if not exist %DstFile% (
echo f | xcopy %SourceFile% %DstFile% /i /y
) else (
echo %DstFile% is exist!
)
) else (
echo %SourceFile% is not exist!
)

把上面的腳本取名為 board_cfg.bat,在每次KEIL執行編譯前調用一下就可以了。

但是,還是要手動去執行一下這個BAT腳本?

這就需要了解一下KEIL里面有個配置,編譯前、編譯后,可以自定義腳本運行的小功能;在這里使用它就可以完美地解決我們的需求。見圖:

1.jpg

5 更多思考
其實,這個問題的引入本質還是一個 版本兼容的問題,由此我想到了幾點:

版本兼容始終是個大難題,無論是小廟還是大廠,都或多或少遇到這樣的困擾,如果大家有什么好的思路,可以在評論席一起交流交流。
學會精準地尋找問題的答案,你遇到的問題,保不準別人早已經遇到過;善于發現它們,并整理成文,方便更多的用它解決問題;
善于用腳本去解決一些機械操作的問題;靈活解放自己的雙手這很重要;如果是windows下開發,自然少不了BAT腳本;如果是linux下開發,少不了SHELL腳本;當然,如果你能掌握Python腳本開發,那就再好不過了;
涉及到編譯過程中,找不到頭文件的問題,需要多思考一步。

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

    關注

    51

    文章

    4678

    瀏覽量

    83476
  • UART接口
    +關注

    關注

    0

    文章

    123

    瀏覽量

    15068
  • RT-Thread
    +關注

    關注

    31

    文章

    1150

    瀏覽量

    38909
  • FSP
    FSP
    +關注

    關注

    0

    文章

    23

    瀏覽量

    7023
收藏 人收藏

    評論

    相關推薦

    【Vision Board創客營連載體驗】RA8D1 Vision Board上的SPI實踐

    Vision-Board 開發板RT-Thread 推出基于 Cortex-M85 架構 RA
    發表于 04-22 23:56

    【Vision Board創客營連載體驗】RA8D1 Vision Board初體驗

    1 RA8D1 Vision Board簡介 Vision-Board 開發板RT-Thread
    發表于 04-23 21:53

    【Vision Board創客營連載體驗】RA8D1 Vision Board 實現 FAL 同時調用片上以及外掛 Flash

    ?即如何區別 QSPI 與 SPI? 為何 SFUD 最后會報錯提示 [E/SFUD] ERROR: Flash device W25Q64 not found! ? 使用軟件:
    發表于 04-24 17:31

    RA2開發板,免費!

    開發板免費試用活動開始啦!開發板免費試用活動開始啦!開發板免費試用活動開始啦!本次活動可免費申請試用RA2E1、RA2L1
    發表于 03-08 22:52

    如何在CPK-RA6M4 MCU評估上讓RT-Thread運行起來

    1、打開 RT-Thread studio,新建 RT-Thread 項目 —&amp;gt; 基于開發板,創建CPK-
    發表于 07-13 11:28

    RT-Thread studio如何完成一個簡單的DEMO

    1 RA 開發環境搭建可以參考:【基于 RT-Thread Studio的CPK-RA6M4 開發板
    發表于 08-19 14:23

    RA4系列開發板體驗】+rt-thread移植

    hal_entry(void)&amp;#123; rt_kprintf("\\nHello RT-Thread!\\n"); while (1) &
    發表于 11-24 21:28

    RA4系列開發板體驗】+RT-thread5.0.0

    1.插上電源和自制的ST-Link。2.下載RT-Thread5.0.0 https://github.com/RT-Thread/rt-threa
    發表于 12-28 00:35

    基于 RT-Thread Studio的CPK-RA6M4 開發板環境搭建

    RT-Thread 項目 —&amp;gt; 基于開發板,創建CPK-RA6M4的工程2、打開創建的工程,雙擊
    發表于 01-10 14:41

    RT-Thread移植使用webserver的流程

    參考正點原子的 網絡實驗10 NETCONN_WEBserver實驗和《lwIP開發指南》。開發環境:野火的stm32f407,rt-thread studio版本
    發表于 02-22 15:10

    RT-Thread聯合即將發布高性價比HMI Board

    、靈活性較差。為此,RT-Thread 聯合 推出了全新的 HMI Board 開發模式,取代傳統的 HMI + 主控
    發表于 05-08 08:22

    FPB-RA6E1快速原型板】RT-Thread移植

    本篇主要在fpb-ra6e1上移植RT-Thread 5.0。 一、思路 通過RASC工具生成關于RA系列MCU的HAL驅動程序,通過scons配置RT-Thread 相關參數。
    發表于 05-24 23:52

    工程師自述:如何將RA2E1并入到RT-Thread的主線倉庫

    支持RT-Thread最新版本的瑞薩RA2E1開發板終于要大展身手了 “ 熟悉RT-Thread和瑞薩MCU的朋友都知道,當前
    的頭像 發表于 03-25 20:50 ?476次閱讀

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

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

    瑞薩與RT-Thread推出基于RT-Thread&;amp;OpenMV的RA8人機交互方案

    瑞薩與戰略合作伙伴RT-Thread攜手于2024年2月底正式發布了全新的硬件產品——基于RT-Thread&;OpenMV的RA8人機交互解決方案Vision Board。
    的頭像 發表于 04-01 14:10 ?236次閱讀
    瑞薩與<b class='flag-5'>RT-Thread</b>推出基于<b class='flag-5'>RT-Thread&</b>;<b class='flag-5'>amp</b>;OpenMV的<b class='flag-5'>RA</b>8人機交互方案
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>