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

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

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

如何將新增的board的代碼直接納入app下

智芯原動ICETech ? 來源:HalfCoder ? 作者: lgl88911 ? 2021-08-18 09:23 ? 次閱讀

在Zephyr應(yīng)用的代碼結(jié)構(gòu)--West提貨單一文中已經(jīng)將zephyr和zephyr外部項(xiàng)目納入到應(yīng)用的管理,應(yīng)用可以基于zephyr的任意開發(fā)板進(jìn)行開發(fā)。不過實(shí)際的嵌入式應(yīng)用場景需要對硬件進(jìn)行定制,這就需要添加新的board,為了方便應(yīng)用項(xiàng)目代碼集中管理,我們希望將新增的board的代碼直接納入app下。

添加board

在app目錄下添加boards,添加的方式必須遵從boards/《arch》/《board_name》, 例如我的應(yīng)用要跑在兩種不同的硬件上,增加了使用rt1052和esp32兩個(gè)芯片的board,那么就要新建arm和xtensa兩個(gè)arch目錄,并分別在其中建立新的開發(fā)板文件夾atclock和tclock,目錄樹如下

app

├── CMakeLists.txt

├── boards

│ ├── arm

│ │ └── atclock

│ └── xtensa

│ └── tclock

添加board一般的做法是在zephyr/boards目錄下找相同soc的board然后根據(jù)硬件對dts和配置文件進(jìn)行修改,具體添加board的方法可以參考Zephyr移植新Board,例如atclock就是從mm_swiftio修改而來,文件如下

└── atclock

├── CMakeLists.txt

├── Kconfig.board

├── Kconfig.defconfig

├── atclock.dts

├── atclock.yaml

├── atclock_defconfig

├── atclock_flexspi_nor_config.c

├── atclock_flexspi_nor_config.h

├── atclock_sdram_ini_dcd.c

├── board.cmake

├── doc

└── pinmux.c

而tclock是從esp32修改而來,文件如下

。

└── tclock

├── CMakeLists.txt

├── Kconfig.board

├── Kconfig.defconfig

├── board.cmake

├── doc

├── tclock.dts

├── tclock.yaml

└── tclock_defconfig

如何使用

zephyr提供了兩種方法使用非zephyr目錄下的board

1.編譯時(shí)指定

west build -b atclock -- -DBOARD_ROOT=app/ app/

2.Cmake指定

編譯時(shí)指定需要在每次編譯時(shí)都指定BOARD_ROOT路徑,略顯累贅,可以在app/CMakeLists.txt中添加如下內(nèi)容

list(APPEND BOARD_ROOT ${CMAKE_SOURCE_DIR})

CMAKE_SOURCE_DIR表示app的source code目錄,也就是app的目錄,由于boards在該目錄下,因此在編譯時(shí)就無需再指定board_root,直接執(zhí)行下面命令即可

west build -b atclock app/

第二種方法是應(yīng)用管理自定義board這種場景下比較推薦的方法。

參考

https://docs.zephyrproject.org/latest/application/index.html#custom-board-devicetree-and-soc-definitions

https://github.com/zephyrproject-rtos/zephyr/tree/main/samples/application_development/out_of_tree_board

編輯:jq

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

    關(guān)注

    1

    文章

    50

    瀏覽量

    16404
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4891

    瀏覽量

    70311
  • Zephyr
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    6244

原文標(biāo)題:Zephyr應(yīng)用的代碼結(jié)構(gòu)--自定義開發(fā)板

文章出處:【微信號:智芯原動ICETech,微信公眾號:智芯原動ICETech】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

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

    如何將一個(gè)FA模型開發(fā)的聲明式范式應(yīng)用切換到Stage模型

    模型切換概述 本文介紹如何將一個(gè)FA模型開發(fā)的聲明式范式應(yīng)用切換到Stage模型,您需要完成如下動作: 工程切換:新建一個(gè)Stage模型的應(yīng)用工程。 配置文件切換:config.json切換
    發(fā)表于 06-04 06:22

    燧原科技正式納入飛槳例行版本發(fā)布體系

    燧原科技與飛槳經(jīng)過長時(shí)間的適配合作和持續(xù)集成(CI)建設(shè),對飛槳合?的每?行代碼都在燧原硬件上進(jìn)?了驗(yàn)證。如今,燧原正式納入飛槳例行版本發(fā)布體系。未來,燧原基于這?合作模式,共同?持飛槳重大版本發(fā)布,推動AI技術(shù)創(chuàng)新和開源?態(tài)
    的頭像 發(fā)表于 04-11 11:31 ?390次閱讀
    燧原科技正式<b class='flag-5'>納入</b>飛槳例行版本發(fā)布體系

    如何將Linux安裝包快速轉(zhuǎn)成玲瓏包

    本篇將以 motrix 為例為大家展示如何將 Linux 安裝包快速轉(zhuǎn)成玲瓏包。
    的頭像 發(fā)表于 03-12 16:01 ?428次閱讀
    <b class='flag-5'>如何將</b>Linux安裝包快速轉(zhuǎn)成玲瓏包

    如何將項(xiàng)目從IAR遷移到Embedded Studio

    本文描述如何將IAR EWARM項(xiàng)目遷移到SEGGER Embedded Studio(簡稱SES)中。
    的頭像 發(fā)表于 02-25 17:11 ?496次閱讀
    <b class='flag-5'>如何將</b>項(xiàng)目從IAR遷移到Embedded Studio

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

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

    如何將python文件導(dǎo)入到ROS系統(tǒng)中

    本文通過使用myCobot機(jī)械臂進(jìn)行QR碼視覺追蹤的實(shí)踐案例分析,介紹如何將 python 文件導(dǎo)入到 ROS 系統(tǒng)中。
    的頭像 發(fā)表于 02-11 11:08 ?700次閱讀
    <b class='flag-5'>如何將</b>python文件導(dǎo)入到ROS系統(tǒng)中

    如何快速創(chuàng)建用戶自定義BoardApp工程

    概述自HPM_SDKv1.7.0發(fā)布開始,在HPM_ENV中新增了user_template文件夾,以方便用戶快速創(chuàng)建自定義的BoardApp工程。user_template是用戶模板工程,用戶
    的頭像 發(fā)表于 02-08 13:38 ?421次閱讀
    如何快速創(chuàng)建用戶自定義<b class='flag-5'>Board</b>和<b class='flag-5'>App</b>工程

    STM32 BOOT跳轉(zhuǎn)到APP后初始化完后成死機(jī) 用了FREERTOS

    重復(fù)的 __disable_irq();//卡死后新增的,但是沒有用,跟上面應(yīng)該是功能重復(fù)的 jump2app=(iapfun)*(vu32*)(appxaddr+4);//用戶代碼區(qū)第二個(gè)字為程序開始
    發(fā)表于 11-25 21:19

    Taro鴻蒙技術(shù)內(nèi)幕系列(一):如何將React代碼跑在ArkUI上

    基于 Taro 打造的京東鴻蒙 APP 已跟隨鴻蒙 Next 系統(tǒng)公測,本系列文章深入解析 Taro 如何實(shí)現(xiàn)使用 React 開發(fā)高性能鴻蒙應(yīng)用的技術(shù)內(nèi)幕。
    的頭像 發(fā)表于 10-25 17:24 ?675次閱讀
    Taro鴻蒙技術(shù)內(nèi)幕系列(一):<b class='flag-5'>如何將</b>React<b class='flag-5'>代碼</b>跑在ArkUI上

    tas5731如何在廣告機(jī)的APP直接調(diào)整EQ的設(shè)置?

    直接調(diào)整EQ的設(shè)置(類似音樂播放器的是EQ設(shè)置方式),想咨詢下有什么公式或者轉(zhuǎn)換代碼能夠?qū)崿F(xiàn)直接得到寄存器的配置值?
    發(fā)表于 10-21 06:18

    如何將LVDS/OLDI橋接到HDMI/DVI

    電子發(fā)燒友網(wǎng)站提供《如何將LVDS/OLDI橋接到HDMI/DVI.pdf》資料免費(fèi)下載
    發(fā)表于 09-27 09:35 ?5次下載
    <b class='flag-5'>如何將</b>LVDS/OLDI橋接到HDMI/DVI

    如何將BQ35100配置為EOS模式

    電子發(fā)燒友網(wǎng)站提供《如何將BQ35100配置為EOS模式.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 10:03 ?0次下載
    <b class='flag-5'>如何將</b>BQ35100配置為EOS模式

    如何將THS4541輸出差分信號轉(zhuǎn)換為單端信號?能否直接只使用輸出的其中一端,比如OUT+?

    我使用TI官網(wǎng)啥推薦的OPA857+THS4541作為APD接收信號處理電路,后級想用比較器作為時(shí)間鑒別,如何將THS4541輸出差分信號轉(zhuǎn)換為單端信號?能否直接只使用輸出的其中一端,比如OUT+?
    發(fā)表于 08-21 06:03

    如何將GPIO修改為QSPI SLSO?

    我們使用的是 TC49x,我能否 GPIO 用作 SLSO(SLSO 不是專用的),如果可以,請告訴我們如何將 GPIO 修改為 QSPI SLSO。 我正在使用 QSPI1,需要使用 P31.6 作為 SLSO ,請?zhí)峁┲笇?dǎo)。
    發(fā)表于 07-22 06:25

    請問light demo如何添加esp_http_client例程?

    );*/ //app_wifi_initialise(); xTaskCreate(&http_test_task, \"http_test_task\", 8192, NULL, 5, NULL); } 2.官方現(xiàn)在是有有無一個(gè)demo projec
    發(fā)表于 06-28 15:46

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品