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

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

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

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

RT-Thread在線軟件包改為本地軟件包的方法

冬至子 ? 來源:張世爭(zhēng) ? 作者:張世爭(zhēng) ? 2023-08-11 15:02 ? 次閱讀

問題描述

RT-Thread 的軟件包,使用時(shí)需要手動(dòng)通過 ENV 工具 更新到 本地的 packages 目錄,并且 packages 目錄默認(rèn)不參與 Git 工程管理,軟件包多了,偶爾需要更改軟件包本身的一些代碼,這就造成了軟件項(xiàng)目管理復(fù)雜的問題,比如 軟件包的更改,無法與工程同步。

RT-Thread 在線軟件包的管理,通過維護(hù)一個(gè)軟件包的【索引】倉庫,這個(gè)【索引】倉庫并不包含各個(gè)軟件包本身的代碼,只是包含軟件包的Kconfig 配置信息與 軟件包的地址,可以通過ENV 工具在線拉取

RT-Thread 在線軟件包 一般都是一個(gè)個(gè)獨(dú)立的 Git 倉庫,如果需要加人本地工程,可以通過 Git submodule 子倉庫的方式加人倉庫,當(dāng)然如果修改 軟件包,依舊帶來管理的問題,比如 Git submodule 需要更新完成后,這樣工程才能使用更新后的軟件包代碼。

問題:如何離線管理 軟件包?如何改為 【RT-Thread offline packages —->】?也就是使用本地軟件包

1.jpg

為何使用軟件包

一些功能模塊,如 Modbus 組件,通過軟件包的方式,可以直接拉取軟件包實(shí)現(xiàn)自己想要的功能,這就不需要自己手動(dòng)編寫相應(yīng)的組件代碼,降低了開發(fā)的難度的同時(shí),也提高開發(fā)的效率。

軟件組件、模塊的復(fù)用、重用的優(yōu)勢(shì),快速開發(fā)。

改為離線軟件包
離線軟件包,其實(shí)就是工程本地的軟件包。

其實(shí)就是創(chuàng)建一個(gè) 本地的目錄,把軟件包放進(jìn)去,然后配置功能的構(gòu)建腳本,讓軟件包可以參與工程的構(gòu)建管理。

使用離線軟件包的優(yōu)勢(shì):離線功能拉取后,不需要 Git submodule 子倉庫的拉取,不用擔(dān)心 pkgs --update 會(huì)覆蓋軟件包的代碼修改,有些 軟件包地址是 github的,大部分情況下,無法正常拉取。

有時(shí)候需要按需更改軟件包的代碼,使用離線的軟件包,直接與工程關(guān)聯(lián),就像本地工程代碼一樣管理。

本地的軟件包,可以多個(gè) bsp 與 board 共用,利于維護(hù)使用。

使用離線軟件包的不足:因?yàn)殡x線軟件包代碼與工程在一起,所以工程代碼占用的體積會(huì)增大,并且有些軟件包可能默認(rèn)不配置使用,依舊放在工程里面,占用額外的空間。

改為離線軟件包的方法
如果是新增的私有軟件包,可以直接放在 工程指定的目錄即可,這樣配置好軟件包的構(gòu)建路徑,讓軟件包配置使能后可以參與工程的構(gòu)建即可。

如果是RT-Thread 已經(jīng)存在的在線公共軟件包,可以通過 RT-Thread ENV 工具或者直接找到軟件包的 倉庫地址,下載下來,放在工程的指定目錄下。注意RT-Thread 在線的軟件包,需要把 軟件包的 Kconfig 也獲取到,一起并放入離線軟件包目錄下。

步驟一:創(chuàng)建RT-Thread 工程

這部分注意是拉取 RT-Thread 源碼倉庫,整理目錄,只保留自己需要的BSP。代碼目錄如下

1.jpg

2.jpg

3.jpg

1.jpg

離線軟件包:offline-packages
這里拿 RT-Thread libmodbus 在線軟件包 轉(zhuǎn) 離線(本地)軟件包 作為示例

獲取 RT-Thread libmodbus 軟件包,并放在工程的 offline-packages 目錄下 offline-packageslibmodbus

可以在 ENV 工具下,如 env-windows-v1.3.5packagespackagesiotlibmodbus,找到 RT-Thread 軟件包索引,然后找到 libmodbus 軟件包的 Kconfig 配置文件,把這個(gè)文件 放在 offline-packageslibmodbus 目錄下

1.jpg

工程構(gòu)建修改
offline-packagesKconfig 文件,離線軟件包配置的入口文件,如果有更改的軟件包,需要在此文件中添加軟件包的 Kconfig 文件路徑,包含軟件包的Kconfig 文件
menu "RT-Thread offline packages"
source "$OFFLINE_PKGS_DIR/libmodbus/Kconfig"
endmenu
offline-packagesSConscript 文件,離線軟件包 入口構(gòu)建文件,offline-packages 目錄下的各個(gè)軟件包,根據(jù)配置使能,依次參與工程的構(gòu)建
import os
from building import *
objs = []
cwd = GetCurrentDir()
list = os.listdir(cwd)
for item in list:
if os.path.isfile(os.path.join(cwd, item, 'SConscript')):
objs = objs + SConscript(os.path.join(item, 'SConscript'))
Return('objs')
offline-packageslibmodbus,這里把 RT-Thread 在線軟件包 libmodbus 下載到本地,移除 git 目錄,并且把 libmodbus 的 Kconfig 文件 從 RT-Thread 在線的軟件包索引 中找到,復(fù)制到 libmodbus 軟件包目錄下,也就是不依賴 RT-Thread online packages --->,不依賴 RT-Thread 在線的軟件包索引。

工程配置,需要引用離線軟件包的工程,需要修改 工程下的 Kconfig 文件

添加如下的內(nèi)容,示例工程 stm32l476-st-nucleoKconfig

1.jpg

config OFFLINE_PKGS_DIR
string
default "../offline-packages"
source "$OFFLINE_PKGS_DIR/Kconfig"
修改工程下的 SConstruct 構(gòu)建文件,示例工程 stm32l476-st-nucleoSConstruct

1.jpg

if os.path.exists(SDK_ROOT + '/offline-packages'):
offline_pkgs_path_prefix = SDK_ROOT + '/offline-packages'
else:
offline_pkgs_path_prefix = os.path.dirname(SDK_ROOT) + '/offline-packages'

include offline packages

objs.extend(SConscript(os.path.join(offline_pkgs_path_prefix, 'SConscript')))
示例工程的構(gòu)建路徑修改
由于當(dāng)前的示例功能,與 RT-Thread BSP 工程的目錄不一樣,需要修改構(gòu)建路徑,才能正常的構(gòu)建與編譯。

默認(rèn)只需要修改 stm32l476-st-nucleoKconfig 與 stm32l476-st-nucleoSConstruct 下的 RTT_ROOT 即可,也就是 RT-Thread 內(nèi)核的目錄

menuconfig
開啟離線軟件包的 libmodbus,不需要開啟 在線軟件包的 libmodbus,工程目錄下 的 packages 目錄,不再需要 libmodbus。

可以通過 menuconfig 進(jìn)行配置

1.jpg

2.jpg

RT-Thread ENV 下,通過 scons --target=mdk5 生成 Keil MDK5 的工程

1.jpg

2.jpg

3.jpg

以上,RT-Thread 內(nèi)部離線軟件包(本地軟件包)成功的參與了工程的構(gòu)建

如果有多個(gè) RT-Thread BSP(工程),可以共享本地的軟件包,不需要每個(gè)工程下,都包含一份 軟件包。

小結(jié)
使用本地離線軟件包,可以讓工程管理起來更簡(jiǎn)單方便

可以開發(fā)一些公共的組件、軟件,通過本地離線的軟件包的管理,實(shí)現(xiàn)多個(gè)工程的軟件包共享,提高軟件開發(fā)的效率。

可以把一些 RT-Thread 在線的軟件包,轉(zhuǎn)為 本地離線軟件包,這樣管理起來方便,不再因?yàn)楦略诰€軟件包,造成一些對(duì)軟件包特殊更改的代碼丟失。

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

    關(guān)注

    31

    文章

    1305

    瀏覽量

    40386
  • STM32L476
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    3811
  • ModBus通信
    +關(guān)注

    關(guān)注

    0

    文章

    32

    瀏覽量

    2624
  • Nucleo
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    17490
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RT-Thread記錄(十八、SHT21與24C02軟件包

    本文學(xué)習(xí)測(cè)試一下幾款典型設(shè)備的 RT-Thread I2C軟件包
    的頭像 發(fā)表于 07-08 11:07 ?3555次閱讀
    <b class='flag-5'>RT-Thread</b>記錄(十八、SHT21與24C02<b class='flag-5'>軟件包</b>)

    RT-Thread Studio添加軟件包報(bào)錯(cuò)怎么解決?

    RT-Thread Studio添加軟件包報(bào)錯(cuò)ImportError: No module named psutil
    發(fā)表于 03-01 08:41

    送給工程師路上正迷茫的你:RT-Thread 軟件包構(gòu)建指南

    對(duì)應(yīng)的軟件包平臺(tái),軟件包生態(tài)對(duì)于一門語言的選擇至關(guān)重要,本次講座將會(huì)講述如何快速構(gòu)建一個(gè)可通用的軟件包,介紹RT-Thread可兼容的標(biāo)準(zhǔn), 如posix標(biāo)準(zhǔn);重點(diǎn)講解如何移植開源倉庫
    發(fā)表于 09-27 15:53

    RT-Thread OneNET軟件包的功能特點(diǎn)是什么?

    有哪位大神能否介紹一下OneNET 平臺(tái) 。 RT-Thread OneNET 軟件包功能特點(diǎn)是什么?
    發(fā)表于 04-02 06:39

    介紹RT-Thread軟件包

    學(xué)習(xí)要點(diǎn)介紹 RT-Thread軟件包;簡(jiǎn)介 nRF24L01 軟件包的使用,講解如何使用此軟件包將數(shù)據(jù)正確發(fā)送和接收;學(xué)習(xí)線程間的通信,IPC 的使用,即獲取溫度的線程 A 與無
    發(fā)表于 07-27 06:07

    使用menuconfig配置基于RT-Thread的NimBLE軟件包

    本地。這也就涉及到 RT-Thread 提供的軟件包管理功能,搭配 menuconfig 配置功能,軟件包代碼的下載、更新和刪除 都可以使用 pkgs --update 命令。有時(shí)還
    發(fā)表于 06-27 11:18

    使用RT-Thread Studio開發(fā)CH32V307實(shí)現(xiàn)按鍵軟件包使用

    使用上篇帖子創(chuàng)建的工程,使用RT-Thread Studio軟件包添加工具,快速實(shí)現(xiàn)MultiButton的使用在RT-Thread Studio工程內(nèi)打開RT-Thread Sett
    發(fā)表于 04-15 21:16

    RT-Thread 軟件包介紹

    RT-Thread 軟件包介紹軟件包的目的軟件包在高級(jí)語言中非常常見,很多高級(jí)語言都有對(duì)應(yīng)的軟件包平臺(tái),比如 Python 的 PyPi,R
    發(fā)表于 05-21 19:38 ?5573次閱讀

    RT-Thread軟件包定義和使用

    RT-Thread軟件包是運(yùn)行于RT-Thread物聯(lián)網(wǎng)操作系統(tǒng)平臺(tái)上,面向不同應(yīng)用領(lǐng)域的通用軟件組件 。RT-Thread 同時(shí)提供了開放
    的頭像 發(fā)表于 05-21 11:29 ?1.1w次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>軟件包</b>定義和使用

    RT-Thread社區(qū)上有哪些優(yōu)秀的軟件包

    SX12XX 軟件包是基于 semtech 官網(wǎng) Firmware Drivers V2.1.0代碼庫的移植實(shí)現(xiàn),目前只支持 SX1278 LoRa設(shè)備。該軟件包在原代碼庫功能的基礎(chǔ)上,對(duì)接 RT-Thread SPI 設(shè)備驅(qū)動(dòng)
    的頭像 發(fā)表于 04-03 15:35 ?7721次閱讀

    2022 RT-Thread全球技術(shù)大會(huì):RT-Thread軟件包

    RT-Thread在2022年上半年新增幾十個(gè)軟件包:rtt-rust、LuatOS、gui-guider-demo。
    的頭像 發(fā)表于 05-27 14:12 ?1096次閱讀
    2022 <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):<b class='flag-5'>RT-Thread</b><b class='flag-5'>軟件包</b>

    RT-Thread全球技術(shù)大會(huì):恩智浦新增100+軟件包

    RT-Thread全球技術(shù)大會(huì):恩智浦新增100+軟件包,支持了很多有用的功能。 ? ? ? ? ? ? 審核編輯:彭靜
    的頭像 發(fā)表于 05-27 14:26 ?1000次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):恩智浦新增100+<b class='flag-5'>軟件包</b>

    RT-Thread使用cjson軟件包發(fā)送64位長整型數(shù)據(jù)

    開發(fā)環(huán)境:野火的stm32f407,rt-thread studio版本是版本: 2.2.6,stm32f4的資源為0.2.2,rt-thread版本為4.1.1,cjson軟件包使
    的頭像 發(fā)表于 10-11 15:09 ?1018次閱讀
    <b class='flag-5'>RT-Thread</b>使用cjson<b class='flag-5'>軟件包</b>發(fā)送64位長整型數(shù)據(jù)

    RT-Thread中Agile Modbus軟件包的使用方法

    開發(fā)環(huán)境:野火的stm32f407,rt-thread studio版本是版本: 2.2.6,stm32f4的資源為0.2.2,Agile Modbus軟件包版本為v1.1.2。工程使用上一篇
    的頭像 發(fā)表于 10-11 15:37 ?2960次閱讀
    <b class='flag-5'>RT-Thread</b>中Agile Modbus<b class='flag-5'>軟件包</b>的使用<b class='flag-5'>方法</b>

    RT-Thread中mymqtt軟件包的使用方法

    在上一篇文章 RT-Thread中Lan8720和lwip協(xié)議棧的使用的工程基礎(chǔ)上添加mymqtt軟件包。 使能mqtt example和mqtt test,保存,等待下載更新軟件包
    的頭像 發(fā)表于 10-13 10:44 ?1073次閱讀
    <b class='flag-5'>RT-Thread</b>中mymqtt<b class='flag-5'>軟件包</b>的使用<b class='flag-5'>方法</b>
    主站蜘蛛池模板: 天天摸夜夜添夜夜添国产 | 在线看片国产 | 丁香久久婷婷 | 天天摸夜夜摸爽爽狠狠婷婷97 | 成人免费观看一区二区 | 天天摸日日添狠狠添婷婷 | 国产精品免费拍拍拍 | 欧美一级艳片视频免费观看 | 久久免费公开视频 | 免费无毒片在线观看 | 最黄毛片| 国产小视频你懂的 | 天天操天天射天天爽 | videosgratis欧美另类老太 | 久久免费精品高清麻豆 | 国产免费好大好硬视频 | 手机看片福利盒子久久 | 你懂的在线免费 | 欧美综合一区二区三区 | 乱小说录目伦800 | 四月婷婷七月婷婷综合 | 国产中文字幕一区 | 看大片全色黄大色黄 | 国产在线99 | 人人人人干 | 一区二区三区网站在线免费线观看 | 国产亚洲一区二区三区在线 | 免费福利片2022潦草影视午夜 | 天天爽夜夜爽8888视频精品 | 久青草国产手机视频免费观看 | 亚洲性色成人 | 国产一级大片免费看 | 夜间免费视频 | 日韩三级免费 | 欧美a色爱欧美综合v | 精品亚洲大全 | 欧美黄色片免费 | 黄色网址你懂的 | 夜夜操com| 久久久久国产精品免费网站 | 亚洲成人网页 |