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

    瀏覽量

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

    關(guān)注

    30

    文章

    4671

    瀏覽量

    67770
  • Zephyr
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    5940

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    請問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

    請問STM8S如何將中斷代碼拷貝到RAM中運(yùn)行?

    STM8S在寫EEPROM時(shí),中斷停掉,如何將中斷代碼拷貝到RAM中運(yùn)行??? 求助各位大神?。。?/div>
    發(fā)表于 05-17 07:37

    PADS2.7,如何將3D封裝與PCB封裝綁定,然后再PCB設(shè)計(jì)時(shí)可直接調(diào)用?

    PADS2.7,如何將3D封裝與PCB封裝綁定,然后再PCB設(shè)計(jì)時(shí)可直接調(diào)用?
    發(fā)表于 05-06 17:07

    STM32的App應(yīng)用程序用MDK直接仿真,MDK下載后無法正常仿真的原因?

    如題,嘗試了STM32的App應(yīng)用程序用MDK直接仿真,發(fā)現(xiàn)MDK下載后無法正常仿真,程序起始地址和中斷偏移都設(shè)置了。以前用IAR是可以仿真Ap
    發(fā)表于 04-12 08:00

    如何將bootloader代碼從flash搬到RAM運(yùn)行?

    如何將bootloader 代碼從flash 搬到RAM 運(yùn)行
    發(fā)表于 04-03 07:14

    如何將bootloader代碼從flash搬到RAM運(yùn)行?

    如何將bootloader 代碼從flash 搬到RAM 運(yùn)行
    發(fā)表于 04-01 07:10

    STM32 IAP升級,KEIL如何一份代碼運(yùn)行于兩個(gè)APP區(qū)?

    我的想法是一個(gè)IAP+APP1+APP2。上電運(yùn)行IAP。會檢測當(dāng)前有效APP,跳轉(zhuǎn)有效APP運(yùn)行。在APP運(yùn)行期間,收到升級指令,直接do
    發(fā)表于 03-26 07:20

    如何將F-RAM?添加到現(xiàn)有的PSoC? Creator項(xiàng)目?

    我們在PSoC? Creator 中有一個(gè) PSoC6 項(xiàng)目,并希望 QSPI F-RAM?存儲器添加到TDA5235_868_5_BOARD中。我很難找到如何在F-RAM? PSoC
    發(fā)表于 03-01 12:14

    如何將按鈕連接到Arduino板

    在本快速入門指南中,您將學(xué)習(xí)如何將按鈕連接到Arduino板,并根據(jù)按鈕是否被按下來讀取HIGH或LOW。您將使用電路板上隨附的發(fā)光二極管 (LED)通過按鈕打開和關(guān)閉,以便驗(yàn)證按鈕按下代碼是否正常工作。
    的頭像 發(fā)表于 02-11 10:52 ?2578次閱讀
    <b class='flag-5'>如何將</b>按鈕連接到Arduino板

    HighTec的TC212開發(fā),如何將VADC設(shè)置為TOM輸出的PWM觸發(fā)呢?

    HighTec的TC212開發(fā),如何將VADC設(shè)置為TOM輸出的PWM觸發(fā)?
    發(fā)表于 02-04 09:22

    如何將共享代碼映射到DSPR5以及將其映射到其他RAM區(qū)域?

    Scratch-Pad Sram(CPU5 DSPR)相關(guān)聯(lián)。 在鏈接器腳本中,我已經(jīng)映射了每個(gè).text 部分移至其各自的 PSPR 內(nèi)核。 我想知道如何將共享代碼映射到 DSPR5 以及如何將其映射到其他 RAM 區(qū)域。
    發(fā)表于 01-24 07:26

    CPU是如何將數(shù)據(jù)傳到GTM模塊的?

    ATOM不通過ARU也可以直接寫寄存器,從而配置占空比和周期。我的問題是中間發(fā)生了什么,CPU是如何將數(shù)據(jù)傳到GTM模塊的?
    發(fā)表于 01-22 08:09

    如何將傳感器輸出端與 SAR ADC 輸入端直接連接?

    此設(shè)計(jì)說明如何將傳感器輸出端與 SAR ADC 輸入端直接連接。在 諸如 環(huán)境傳感器、氣體檢測器 和煙霧或火災(zāi)探測器 等應(yīng)用中,輸入速度非常慢,而且傳感器輸出電壓采樣速度相當(dāng)慢(10ksps 左右
    的頭像 發(fā)表于 11-01 16:41 ?8569次閱讀
    <b class='flag-5'>如何將</b>傳感器輸出端與 SAR ADC 輸入端<b class='flag-5'>直接</b>連接?

    PCB中如何將元器件擺放為環(huán)形

    電子發(fā)燒友網(wǎng)站提供《PCB中如何將元器件擺放為環(huán)形.pdf》資料免費(fèi)下載
    發(fā)表于 10-20 15:10 ?3次下載
    PCB中<b class='flag-5'>如何將</b>元器件擺放為環(huán)形

    什么是ICM 如何將ICM用于加密

    電子發(fā)燒友網(wǎng)站提供《什么是ICM 如何將ICM用于加密.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 11:03 ?0次下載
    什么是ICM <b class='flag-5'>如何將</b>ICM用于加密