一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

BSP瘦身指南說明 | 技術(shù)集結(jié)

RT-Thread官方賬號(hào) ? 2025-05-07 18:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


一. 為什么要實(shí)施BSP瘦身計(jì)劃

當(dāng)前RT-Thread倉(cāng)庫(kù)中BSP和.git內(nèi)容占比約90%,而RT-Thread核心代碼及文檔僅占約100MB,約為3%。為進(jìn)一步優(yōu)化用戶體驗(yàn),我們計(jì)劃了對(duì)現(xiàn)有BSP結(jié)構(gòu)進(jìn)行改進(jìn)。過去,為了實(shí)現(xiàn)開箱即用的快速開發(fā),HAL庫(kù)被集成到BSP中,但隨著支持的芯片和BSP數(shù)量增加,包體體積顯著增長(zhǎng),且部分HAL內(nèi)容可能未被充分利用。

為此,我們提出優(yōu)化方案:將廠商SDK以軟件包形式提供,保留RT-Thread的適配接口,用戶可根據(jù)需求靈活選擇所需芯片的SDK并集成到BSP中。這樣既保持了快速開發(fā)的便利性,又顯著減小了包體體積,讓RT-Thread更輕量、高效,滿足多樣化的芯片應(yīng)用場(chǎng)景。


本指南以stm32為例。


二. 操作流程

操作流程大致可以分為三步。以 stm32f4 為例。

(一). 軟件包索引倉(cāng)庫(kù)更新

軟件包目前統(tǒng)一放到下面的目錄中,bsp中默認(rèn)選中即可。

https://github.com/RT-Thread/packages/tree/master/peripherals/hal-sdk

1.fork一份軟件包索引倉(cāng)庫(kù)

倉(cāng)庫(kù)地址:RT-Thread/packages: packages index repository for rt-thread.

b799c47a-2b2f-11f0-9434-92fbcf53809c.png

2.將fork的倉(cāng)庫(kù)克隆到本地

gitclonehttps://github.com/fengmuyou/packages.git

b7c83a58-2b2f-11f0-9434-92fbcf53809c.png

3. 打開本地倉(cāng)庫(kù)進(jìn)行修改

在本地打開克隆的索引倉(cāng)庫(kù),創(chuàng)建一個(gè)新的分支,在packages\peripherals\hal-sdk路徑下創(chuàng)建stm32文件夾

git checkout -b"f4_hal"http://創(chuàng)建一個(gè)新分支

b7da69d0-2b2f-11f0-9434-92fbcf53809c.png

4. 添加stm32f4索引文件夾

在stm32下添加stm32f4_cmsis_driver文件夾和stm32f4_hal_driver文件夾,在兩個(gè)文件夾下分別添加Kconfig、package.json這兩個(gè)文件

stm32f4_cmsis_drivers

1.Kconfig

# Kconfig file for package stm32f4_cmsis_drivermenuconfig PKG_USING_STM32F4_CMSIS_DRIVER bool"STM32 F4 CMSIS driver package" select PKG_USING_CMSIS_CORE defaultnifPKG_USING_STM32F4_CMSIS_DRIVER config PKG_STM32F4_CMSIS_DRIVER_PATH string default"/packages/peripherals/hal-sdk/stm32/stm32f4_cmsis_driver" choice prompt"Version" help Select the package version config PKG_USING_STM32F4_CMSIS_DRIVER_LATEST_VERSION bool"latest" endchoice config PKG_STM32F4_CMSIS_DRIVER_VER string default"latest" ifPKG_USING_STM32F4_CMSIS_DRIVER_LATEST_VERSIONendif

2.package.json

{ "name":"stm32f4_cmsis_driver", "description":"STM32 F4 CMSIS driver package", "description_zh":"STM32 F4 CMSIS 驅(qū)動(dòng)包", "enable":"PKG_USING_STM32F4_CMSIS_DRIVER", "keywords": [ "stm32f4_cmsis_driver", "STM32" ], "category":"peripherals", "author": { "name":"RT-Thread-packages", "email":"package_team@rt-thread.com", "github":"RT-Thread-packages" }, "license":"Apache-2.0", "repository":"https://github.com/RT-Thread-packages/stm32f4_cmsis_driver", "icon":"unknown", "homepage":"https://github.com/RT-Thread-packages/stm32f4_cmsis_driver#readme", "doc":"unknown", "site": [ { "version":"latest", "URL":"https://github.com/RT-Thread-packages/stm32f4_cmsis_driver.git", "filename":"", "VER_SHA":"master" } ]}

stm32f4_hal_driver

1.Kconfig

# Kconfig file for package stm32f4_hal_drivermenuconfig PKG_USING_STM32F4_HAL_DRIVER bool"STM32 F4 HAL driver package" select PKG_USING_STM32F4_CMSIS_DRIVER defaultnifPKG_USING_STM32F4_HAL_DRIVER config PKG_STM32F4_HAL_DRIVER_PATH string default"/packages/peripherals/hal-sdk/stm32/stm32f4_hal_driver" choice prompt"Version" help Select the package version config PKG_USING_STM32F4_HAL_DRIVER_LATEST_VERSION bool"latest" endchoice config PKG_STM32F4_HAL_DRIVER_VER string default"latest" ifPKG_USING_STM32F4_HAL_DRIVER_LATEST_VERSIONendif

2.package.json

{ "name":"stm32f4_hal_driver", "description":"STM32 F4 HAL driver package", "description_zh":"STM32 F4 HAL 驅(qū)動(dòng)包", "enable":"PKG_USING_STM32F4_HAL_DRIVER", "keywords": [ "stm32f4_hal_driver", "STM32" ], "category":"peripherals", "author": { "name":"RT-Thread-packages", "email":"package_team@rt-thread.com", "github":"RT-Thread-packages" }, "license":"BSD-3-Clause", "repository":"https://github.com/RT-Thread-packages/stm32f4_hal_driver", "icon":"unknown", "homepage":"https://github.com/RT-Thread-packages/stm32f4_hal_driver#readme", "doc":"unknown", "site": [ { "version":"latest", "URL":"https://github.com/RT-Thread-packages/stm32f4_hal_driver.git", "filename":"", "VER_SHA":"master" } ]}

注意!?。。簜}(cāng)庫(kù)地址要保證正確,軟件包才能正確地被拉下來。

b7ebe2aa-2b2f-11f0-9434-92fbcf53809c.png

5. 修改Kconfig文件

在stm32文件夾下的 Kconfig 文件里添加配置,確保能找到對(duì)應(yīng)的Kconfig文件

b7fe05a2-2b2f-11f0-9434-92fbcf53809c.png

6. 工作流文件修改

在workflows/aciont_tool.yml 文件里添加 pkgs --update,這個(gè)修改一次即可,后續(xù)添加其他軟件包索引不用再修改。

b810383a-2b2f-11f0-9434-92fbcf53809c.png

7. 修改完之后進(jìn)行提交

gitadd.gitcommit-m "add stm32_f4 軟件包倉(cāng)庫(kù)索引"git push origin f4_hal

8. 創(chuàng)建pr,等待審核合并。

(二). 軟件包倉(cāng)庫(kù)更新

1. 軟件包分為cmsis與drivers

首先就是分別 forkcmsis與 drivers 兩個(gè)軟件包倉(cāng)庫(kù),并克隆倉(cāng)庫(kù)到本地,在本地創(chuàng)建一個(gè)新分支再進(jìn)行修改。

2. 適配stm32f4_cmsis_driver

創(chuàng)建一個(gè)新的分支

git checkout -b f4_cmsis//創(chuàng)建一個(gè)新分支

添加 SConscript 文件

添加啟動(dòng)文件選擇以及system_stm32f4xx.c文件,芯片型號(hào)宏定義在 stm32f4xx.h 文件下可以找到。

frombuildingimport*importos# Import environment variablesImport('env')# Get the current working directorycwd = GetCurrentDir()# Initialize include paths and source files listpath = [os.path.join(cwd,'Include')]src = [os.path.join(cwd,'Source','Templates','system_stm32f4xx.c')]# Map microcontroller units (MCUs) to their corresponding startup filesmcu_startup_files = { 'STM32F401xC':'startup_stm32f401xc.s', 'STM32F401xE':'startup_stm32f401xe.s', 'STM32F405xx':'startup_stm32f405xx.s', 'STM32F407xx':'startup_stm32f407xx.s', 'STM32F410Cx':'startup_stm32f410cx.s', 'STM32F410Rx':'startup_stm32f410rx.s', 'STM32F410Tx':'startup_stm32f410tx.s', 'STM32F411xE':'startup_stm32f411xe.s', 'STM32F412Cx':'startup_stm32f412cx.s', 'STM32F412Rx':'startup_stm32f412rx.s', 'STM32F412Vx':'startup_stm32f412vx.s', 'STM32F412Zx':'startup_stm32f412zx.s', 'STM32F413xx':'startup_stm32f413xx.s', 'STM32F415xx':'startup_stm32f415xx.s', 'STM32F417xx':'startup_stm32f417xx.s', 'STM32F423xx':'startup_stm32f423xx.s', 'STM32F427xx':'startup_stm32f427xx.s', 'STM32F429xx':'startup_stm32f429xx.s', 'STM32F437xx':'startup_stm32f437xx.s', 'STM32F439xx':'startup_stm32f439xx.s', 'STM32F446xx':'startup_stm32f446xx.s', 'STM32F469xx':'startup_stm32f469xx.s', 'STM32F479xx':'startup_stm32f479xx.s',}# Check each defined MCU, match the platform and append the appropriate startup fileformcu, startup_fileinmcu_startup_files.items(): ifmcuinenv.get('CPPDEFINES', []): ifrtconfig.PLATFORMin['gcc','llvm-arm']: src += [os.path.join(cwd,'Source','Templates','gcc', startup_file)] elifrtconfig.PLATFORMin['armcc','armclang']: src += [os.path.join(cwd,'Source','Templates','arm', startup_file)] elifrtconfig.PLATFORMin['iccarm']: src += [os.path.join(cwd,'Source','Templates','iar', startup_file)] break# Define the build groupgroup = DefineGroup('STM32F4-CMSIS', src, depend=['PKG_USING_STM32F4_CMSIS_DRIVER'], CPPPATH=path)# Return the build groupReturn('group')

添加stm32_update.py文件,并運(yùn)行,對(duì)啟動(dòng)文件進(jìn)行修改

python stm32_update.py//運(yùn)行stm32_update.py

# Copyright (c) 2006-2022, RT-Thread Development Team## SPDX-License-Identifier: Apache-2.0## Change Logs:# Date Author Notes# 2021-10-11 Meco Man First version# This file is suggested to use under Linux environment.# > python stm32_update.py# update STM32 startup assembly language file:# 1.replace main to entry (GCC)# 2.reduce the heap size as 0x000 (Keil IAR)# 3.extend the GCC stack size as 0x400, which is the same as Keil and IAR startup files.importosimportre# replace 'bl main' to 'bl entry'defstm32update_main2entry(path): oldline ='' newline ='' forroot, dirs, filesinos.walk(path): forfileinfiles: ifos.path.splitext(file)[1] =='.s':# find .s files (Keil MDK) file_path = os.path.join(root,file) flag_need_replace =False withopen(file_path,'r+',)asf: whileTrue: line = f.readline() ifline =='': break elif('bl'inline)and('main'inline):# find 'bl main' oldline = line# bl main newline = line.replace('main','entry')# use 'entry' to replace 'main' flag_need_replace =True# mark that need to be replaced break if(flag_need_replace ==True):# use 'entry' to replace 'main' f.seek(0) content = f.read() f.seek(0) f.truncate() newcontent = content.replace(oldline, newline) f.write(newcontent)#reduce the heap size as 0x000defstm32update_heap2zero(path): oldline ='' newline ='' forroot, dirs, filesinos.walk(path): forfileinfiles: file_path = os.path.join(root,file) ifos.path.splitext(file)[1] =='.s':# find .s files (Keil MDK) withopen(file_path,'r+',)asf: flag_need_replace =False whileTrue: line = f.readline() ifline =='': break re_result = re.match('\\s*Heap_Size\\s+EQU\\s+0[xX][0-9a-fA-F]+', line) ifre_result !=None: oldline = line newline = re.sub('0[xX][0-9a-fA-F]+','0x00000000', oldline) flag_need_replace =True break ifflag_need_replace ==True: f.seek(0) content = f.read() f.seek(0) f.truncate() newcontent = content.replace(oldline, newline) f.write(newcontent) elifos.path.splitext(file)[1] =='.icf':# find .icf files (IAR) withopen(file_path,'r+',)asf: flag_need_replace =False whileTrue: line = f.readline() ifline =='': break re_result = re.match('\\s*define\\s+symbol\\s+__ICFEDIT_size_heap__\\s*=\\s*0[xX][0-9a-fA-F]+', line) ifre_result !=None: oldline = line newline = re.sub('0[xX][0-9a-fA-F]+','0x000', oldline) flag_need_replace =True break ifflag_need_replace ==True: f.seek(0) content = f.read() f.seek(0) f.truncate() newcontent = content.replace(oldline, newline) f.write(newcontent) elifos.path.splitext(file)[1] =='.lds':# find .lds files (GCC) withopen(file_path,'r+',)asf: flag_need_replace =False whileTrue: line = f.readline() ifline =='': break re_result = re.match('\\s*_system_stack_size\\s*=\\s*0[xX][0-9a-fA-F]+', line) ifre_result !=None: oldline = line newline = re.sub('0[xX][0-9a-fA-F]+','0x400', oldline) flag_need_replace =True break ifflag_need_replace ==True: f.seek(0) content = f.read() f.seek(0) f.truncate() newcontent = content.replace(oldline, newline) f.write(newcontent)defstm32_update(path): stm32update_main2entry(path) stm32update_heap2zero(path)if__name__ =="__main__": stm32_update(os.getcwd()) print("STM32 startup assembly language file update successfully!")

ps:對(duì)啟動(dòng)文件修改主要是將gcc下啟動(dòng)文件的入口函數(shù)由 main 改成 entry。

b829ab4e-2b2f-11f0-9434-92fbcf53809c.png

以及將arm下啟動(dòng)文件的堆的大小改為0。

b83be9d0-2b2f-11f0-9434-92fbcf53809c.png

修改完成后提交

gitadd.gitcommit-m "adapt stm32f4 cmsis for rtt"git push origin f4_cmsis

創(chuàng)建pr,等待審核合并。

3. 適配stm32f4_hal_driver

創(chuàng)建一個(gè)新的分支

git checkout -b f4_drivers//創(chuàng)建一個(gè)新分支

添加 SConscript 文件,可根據(jù) rt-thread\bsp\stm32\libraries\STM32F4xx_HAL 文件夾下的 SConscript 對(duì)應(yīng)著修改,改變文件引用的路徑。

frombuilding import *import oscwd = GetCurrentDir()path = [os.path.join(cwd,'Inc')]src_path = os.path.join(cwd,'Src')path += [os.path.join(cwd,'Inc/Legacy')]CPPDEFINES = ['USE_HAL_DRIVER']src = [os.path.join(src_path,'stm32f4xx_hal.c'),os.path.join(src_path,'stm32f4xx_hal_cec.c'),os.path.join(src_path,'stm32f4xx_hal_cortex.c'),os.path.join(src_path,'stm32f4xx_hal_crc.c'),os.path.join(src_path,'stm32f4xx_hal_cryp.c'),os.path.join(src_path,'stm32f4xx_hal_cryp_ex.c'),os.path.join(src_path,'stm32f4xx_hal_dma.c'),os.path.join(src_path,'stm32f4xx_hal_dma_ex.c'),os.path.join(src_path,'stm32f4xx_hal_pwr.c'),os.path.join(src_path,'stm32f4xx_hal_pwr_ex.c'),os.path.join(src_path,'stm32f4xx_hal_rcc.c'),os.path.join(src_path,'stm32f4xx_hal_rcc_ex.c'),os.path.join(src_path,'stm32f4xx_hal_rng.c'),os.path.join(src_path,'stm32f4xx_hal_gpio.c'),]ifGetDepend(['RT_USING_SERIAL'])orGetDepend(['RT_USING_NANO','RT_USING_CONSOLE']): src += [os.path.join(src_path,'stm32f4xx_hal_uart.c')] src += [os.path.join(src_path,'stm32f4xx_hal_usart.c')]ifGetDepend(['RT_USING_I2C']): src += [os.path.join(src_path,'stm32f4xx_hal_i2c.c')] src += [os.path.join(src_path,'stm32f4xx_hal_i2c_ex.c')]ifGetDepend(['RT_USING_SPI']): src += [os.path.join(src_path,'stm32f4xx_hal_spi.c')] src += [os.path.join(src_path,'stm32f4xx_hal_qspi.c')]ifGetDepend(['RT_USING_USB']): src += [os.path.join(src_path,'stm32f4xx_hal_pccard.c')] src += [os.path.join(src_path,'stm32f4xx_hal_pcd.c')] src += [os.path.join(src_path,'stm32f4xx_hal_pcd_ex.c')] src += [os.path.join(src_path,'stm32f4xx_hal_hcd.c')] src += [os.path.join(src_path,'stm32f4xx_ll_usb.c')]ifGetDepend(['RT_USING_CAN']): src += [os.path.join(src_path,'stm32f4xx_hal_can.c')]ifGetDepend(['RT_USING_HWTIMER'])orGetDepend(['RT_USING_PWM'])orGetDepend(['RT_USING_PULSE_ENCODER']): src += [os.path.join(src_path,'stm32f4xx_hal_tim.c')] src += [os.path.join(src_path,'stm32f4xx_hal_tim_ex.c')] src += [os.path.join(src_path,'stm32f4xx_hal_lptim.c')]ifGetDepend(['BSP_USING_ETH']): ifGetDepend(['BSP_ETH_LEGACY_MODULE_ENABLED']): src += [os.path.join(src_path,'Legacy/stm32f4xx_hal_eth.c')] else: src += [os.path.join(src_path,'stm32f4xx_hal_eth.c')]ifGetDepend(['RT_USING_ADC']): src += [os.path.join(src_path,'stm32f4xx_hal_adc.c')] src += [os.path.join(src_path,'stm32f4xx_hal_adc_ex.c')]ifGetDepend(['RT_USING_DAC']): src += [os.path.join(src_path,'stm32f4xx_hal_dac.c')] src += [os.path.join(src_path,'stm32f4xx_hal_dac_ex.c')]ifGetDepend(['RT_USING_RTC']): src += [os.path.join(src_path,'stm32f4xx_hal_rtc.c')] src += [os.path.join(src_path,'stm32f4xx_hal_rtc_ex.c')]ifGetDepend(['RT_USING_WDT']): src += [os.path.join(src_path,'stm32f4xx_hal_iwdg.c')] src += [os.path.join(src_path,'stm32f4xx_hal_wwdg.c')]ifGetDepend(['RT_USING_SDIO']): src += [os.path.join(src_path,'stm32f4xx_ll_sdmmc.c')] src += [os.path.join(src_path,'stm32f4xx_hal_sd.c')]ifGetDepend(['RT_USING_AUDIO']): src += [os.path.join(src_path,'stm32f4xx_hal_i2s.c')] src += [os.path.join(src_path,'stm32f4xx_hal_i2s_ex.c')] src += [os.path.join(src_path,'stm32f4xx_hal_sai.c')] src += [os.path.join(src_path,'stm32f4xx_hal_sai_ex.c')]ifGetDepend(['RT_USING_MTD_NOR']): src += [os.path.join(src_path,'stm32f4xx_hal_nor.c')]ifGetDepend(['RT_USING_MTD_NAND']): src += [os.path.join(src_path,'stm32f4xx_hal_nand.c')]ifGetDepend(['BSP_USING_FMC']): src += [os.path.join(src_path,'stm32f4xx_ll_fmc.c')] src += [os.path.join(src_path,'stm32f4xx_ll_fsmc.c')]ifGetDepend(['BSP_USING_SDRAM']): src += [os.path.join(src_path,'stm32f4xx_hal_sdram.c')]ifGetDepend(['BSP_USING_EXT_FMC_IO']): src += [os.path.join(src_path,'stm32f4xx_hal_sram.c')]ifGetDepend(['BSP_USING_ON_CHIP_FLASH']): src += [os.path.join(src_path,'stm32f4xx_hal_flash.c')] src += [os.path.join(src_path,'stm32f4xx_hal_flash_ex.c')] src += [os.path.join(src_path,'stm32f4xx_hal_flash_ramfunc.c')]ifGetDepend(['BSP_USING_LTDC']): src += [os.path.join(src_path,'stm32f4xx_hal_ltdc.c')] src += [os.path.join(src_path,'stm32f4xx_hal_ltdc_ex.c')] src += [os.path.join(src_path,'stm32f4xx_hal_dma2d.c')] src += [os.path.join(src_path,'stm32f4xx_ll_dma2d.c')] src += [os.path.join(src_path,'stm32f4xx_hal_dsi.c')]group= DefineGroup('STM32F4-HAL', src, depend = ['PKG_USING_STM32F4_HAL_DRIVER'], CPPPATH = path, CPPDEFINES = CPPDEFINES)Return('group')

修改完成后提交

gitadd.gitcommit-m "adapt stm32f4 drivers for rtt"git push origin f4_drivers

創(chuàng)建pr,等待審核合并。

(三). 主線倉(cāng)庫(kù)更新

這里bsp的修改以stm32f407-rt-spark為例,具體的需要把f4系列所有的bsp都進(jìn)行修改,編譯測(cè)試通過后再提交。

1. 準(zhǔn)備工作

fork 一份最新的主線倉(cāng)庫(kù),克隆到本地,基于master分支創(chuàng)建一個(gè)新的分支。

創(chuàng)建一個(gè)新的分支

git checkout -bf4_sdk

2. 在主線倉(cāng)庫(kù)目錄(bsp\stm32\libraries\Kconfig)中 select PKG_USING_STM32xx_HAL_DRIVER

b8521b7e-2b2f-11f0-9434-92fbcf53809c.png

3. 修改SConstruct文件

b8f08dea-2b2f-11f0-9434-92fbcf53809c.png

4. board文件夾下的SConscript

b904cbd4-2b2f-11f0-9434-92fbcf53809c.png

5. 在port文件夾下添加SConscript文件

b92066d2-2b2f-11f0-9434-92fbcf53809c.png

ps: stm32f407-rt-spark 的 port 文件夾下有SConscript文件,我們只需簡(jiǎn)單的修改即可。有些bsp的port文件下沒有SConscript文件,需要我們自己添加,可以參考這里進(jìn)行修。

6. 在 README.md 文件添加說明

在快速上手下添加說明

中文版本

**請(qǐng)注意!!!**在執(zhí)行編譯工作前請(qǐng)先打開ENV執(zhí)行以下指令(該指令用于拉取必要的HAL庫(kù)及CMSIS庫(kù),否則無法通過編譯):```bashpkgs --update```

英文版本

**Attentionplease!??!**Beforethe compilation work, please openENVand execute the following command (thiscommand is used to pull the necessaryHALlibrary andCMSISlibrary, otherwise it cannot be compiled):```bashpkgs --update```

7.編譯結(jié)果

確保能編譯 packages 下的 f4_hal 文件

b938c4f2-2b2f-11f0-9434-92fbcf53809c.png

8. 燒錄測(cè)試

將rt-thread.elf文件燒錄到板子上,觀察是否能夠正常運(yùn)行。

b9453d04-2b2f-11f0-9434-92fbcf53809c.png

ps:板子支持的一些外設(shè)也需要在env中開啟,進(jìn)行編譯測(cè)試。

9. 刪除主線上的STM32F4_HAL驅(qū)動(dòng)

ps: 請(qǐng)把f4系列所有的bsp都進(jìn)行修改,測(cè)試通過后在刪除主線上的 STM32F4_HAL 驅(qū)動(dòng)。

b954a302-2b2f-11f0-9434-92fbcf53809c.png

10.修改工作流文件

在workflows/aciont_tool.yml 文件里添加 pkgs --update,這個(gè)修改一次即可,后續(xù)添加其他修改其他bsp不用再修改。

b974d44c-2b2f-11f0-9434-92fbcf53809c.png

11.提交到遠(yuǎn)程倉(cāng)庫(kù)

全部測(cè)試沒問題后,提交的遠(yuǎn)程倉(cāng)庫(kù)。

gitadd.gitcommit-m "bsp:Separate STM32F4 HAL drivers"git push origin f4_sdk

12. 創(chuàng)建pr,等待審核合并。

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

    關(guān)注

    2291

    文章

    11022

    瀏覽量

    363411
  • BSP
    BSP
    +關(guān)注

    關(guān)注

    1

    文章

    92

    瀏覽量

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

    關(guān)注

    32

    文章

    1385

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    大模型的“成本瘦身”運(yùn)動(dòng)

    管住嘴、邁開腿,大模型的“成本瘦身”是必經(jīng)之路
    的頭像 發(fā)表于 11-03 08:44 ?689次閱讀

    BSP是如何構(gòu)造的?

    (v2_04)VOL III:MPLAB和諧配置(MHC)/VOL III:MPLAB和諧配置(MHC)/MPLAB和諧配置器開發(fā)人員指南/BSP XML規(guī)范中,文檔說:“本主題描述MHC板支持包(BSP
    發(fā)表于 03-16 09:27

    Vivado工程源碼大瘦身

    `特權(quán)同學(xué)原創(chuàng),轉(zhuǎn)載請(qǐng)保留署名Vivado的工程文件包含了源碼、IP、設(shè)置和各種編譯的中間文件,動(dòng)輒上百M(fèi)B甚至上GB,非常占硬盤。可以通過以下步驟對(duì)編譯過的工程進(jìn)行瘦身,只預(yù)留必要的設(shè)置、IP
    發(fā)表于 08-17 08:41

    AXU4EV-E開發(fā)板提供的BSP(板級(jí)支持包)說明

    簡(jiǎn)介本文檔是為AXU4EV-E開發(fā)板提供的BSP(板級(jí)支持包)說明。主要內(nèi)容如下:開發(fā)板資源介紹BSP 快速上手進(jìn)階使用方法通過閱讀快速上手章節(jié),開發(fā)者可以快速地上手BSP,將RT-T
    發(fā)表于 08-08 11:13

    NUCLEO-WL55JC2開發(fā)板的BSP(板級(jí)支持包)說明

    簡(jiǎn)介本文檔為ST官方NUCLEO-WL55JC2開發(fā)板的BSP(板級(jí)支持包)說明。主要內(nèi)容如下:開發(fā)板資源介紹BSP 快速上手進(jìn)階使用方法通過閱讀快速上手章節(jié),開發(fā)者可以快速地上手BSP
    發(fā)表于 10-28 18:10

    基于VxWorks的BSP技術(shù)分析

    結(jié)合嵌入式操作系統(tǒng)設(shè)計(jì)的主要特點(diǎn),針對(duì)486 目標(biāo)機(jī)上VxWorks 的定制,運(yùn)用其BSP 技術(shù)解決了移植過程中底層硬件與上層軟件無關(guān)性的問題。描述了BSP 的概念和啟動(dòng)流程,介紹了BSP
    發(fā)表于 08-15 10:45 ?17次下載

    MQX BSP移植指南

    MQX BSP 即板級(jí)支持包,是指針對(duì)某一特定的板子的系統(tǒng)軟件包,包括MQX 操作系統(tǒng)內(nèi)核,MFS 文件系統(tǒng)(如果需要支持文件系統(tǒng)功能的話),RTCS 協(xié)議棧(如果需要)、USB 協(xié)議棧(如果需要
    發(fā)表于 10-19 15:54 ?0次下載
    MQX <b class='flag-5'>BSP</b>移植<b class='flag-5'>指南</b>

    bsp是什么

    一、BSP是什么 板級(jí)支持包(BSP)是介于主板硬件和操作系統(tǒng)中驅(qū)動(dòng)層程序之間的一層,一般認(rèn)為它屬于操作系統(tǒng)一部分,主要是實(shí)現(xiàn)對(duì)操作系統(tǒng)的支持,為上層的驅(qū)動(dòng)程序提供訪問硬件設(shè)備寄存器的函數(shù)包,使之能
    發(fā)表于 10-16 15:59 ?13.6w次閱讀

    如何開發(fā)BSP中的BootLoader

    介紹WinCE.NET系統(tǒng)的舊方法;說明板級(jí)支持包(BSP)的基本構(gòu)成;從開發(fā)實(shí)際出發(fā),詳細(xì)闡述如何開發(fā)BSP中的重要部件--BootLoader。 關(guān)鍵詞:WinCE.NET BSP
    發(fā)表于 11-06 14:22 ?0次下載
    如何開發(fā)<b class='flag-5'>BSP</b>中的BootLoader

    Petalinux BSP安裝與構(gòu)建過程

    Petalinux參考bsp可以讓用戶迅速啟動(dòng)。并且,這些設(shè)計(jì)可以作為用戶設(shè)計(jì)的基。Petalinux BSP是標(biāo)準(zhǔn)可安裝格式,包含啟動(dòng)所需的設(shè)計(jì)和配置文件。BSP包中設(shè)計(jì)好的軟硬件可以下載到板子上
    發(fā)表于 11-15 11:50 ?8284次閱讀

    真空技術(shù)實(shí)用指南

    真空技術(shù)實(shí)用指南說明。
    發(fā)表于 03-19 14:36 ?13次下載

    ARM開發(fā)教程之ARM體系的嵌入式系統(tǒng)BSP的程序的設(shè)計(jì)說明

    ARM開發(fā)教程之ARM體系的嵌入式系統(tǒng)BSP的程序的設(shè)計(jì)說明(android板嵌入式開發(fā))-該文檔為ARM開發(fā)教程之ARM體系的嵌入式系統(tǒng)BSP的程序的設(shè)計(jì)說明總結(jié)文檔,是一份很不錯(cuò)的
    發(fā)表于 08-04 11:36 ?10次下載
    ARM開發(fā)教程之ARM體系的嵌入式系統(tǒng)<b class='flag-5'>BSP</b>的程序的設(shè)計(jì)<b class='flag-5'>說明</b>

    嵌入式中的BSP---BSP到底是什么

    轉(zhuǎn)自: http://blog.chinaunix.net/uid-20788636-id-1841270.html(1)什么是BSP?BSP是板級(jí)支持包,(board support
    發(fā)表于 10-21 13:36 ?5次下載
    嵌入式中的<b class='flag-5'>BSP---BSP</b>到底是什么

    UM2298_STM32Cube BSP驅(qū)動(dòng)程序開發(fā)指南

    UM2298_STM32Cube BSP驅(qū)動(dòng)程序開發(fā)指南
    發(fā)表于 11-22 19:19 ?1次下載
    UM2298_STM32Cube <b class='flag-5'>BSP</b>驅(qū)動(dòng)程序開發(fā)<b class='flag-5'>指南</b>

    RT-Thread文檔_Nordic BSP 上手指南

    RT-Thread文檔_Nordic BSP 上手指南
    發(fā)表于 02-22 18:26 ?7次下載
    RT-Thread文檔_Nordic <b class='flag-5'>BSP</b> 上手<b class='flag-5'>指南</b>