曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

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

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

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

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

RT-Thread官方賬號 ? 2025-05-07 18:40 ? 次閱讀


一. 為什么要實施BSP瘦身計劃

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

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


本指南以stm32為例。


二. 操作流程

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

(一). 軟件包索引倉庫更新

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

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

1.fork一份軟件包索引倉庫

倉庫地址:RT-Thread/packages: packages index repository for rt-thread.

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

2.將fork的倉庫克隆到本地

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

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

3. 打開本地倉庫進行修改

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

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

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

4. 添加stm32f4索引文件夾

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

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ū)動包", "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ū)動包", "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" } ]}

注意!?。。簜}庫地址要保證正確,軟件包才能正確地被拉下來。

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

5. 修改Kconfig文件

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

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

6. 工作流文件修改

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

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

7. 修改完之后進行提交

gitadd.gitcommit-m "add stm32_f4 軟件包倉庫索引"git push origin f4_hal

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

(二). 軟件包倉庫更新

1. 軟件包分為cmsis與drivers

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

2. 適配stm32f4_cmsis_driver

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

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

添加 SConscript 文件

添加啟動文件選擇以及system_stm32f4xx.c文件,芯片型號宏定義在 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文件,并運行,對啟動文件進行修改

python stm32_update.py//運行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:對啟動文件修改主要是將gcc下啟動文件的入口函數(shù)由 main 改成 entry。

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

以及將arm下啟動文件的堆的大小改為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)建一個新的分支

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

添加 SConscript 文件,可根據(jù) rt-thread\bsp\stm32\libraries\STM32F4xx_HAL 文件夾下的 SConscript 對應(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,等待審核合并。

(三). 主線倉庫更新

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

1. 準(zhǔn)備工作

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

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

git checkout -bf4_sdk

2. 在主線倉庫目錄(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文件,我們只需簡單的修改即可。有些bsp的port文件下沒有SConscript文件,需要我們自己添加,可以參考這里進行修。

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

在快速上手下添加說明

中文版本

**請注意?。?!**在執(zhí)行編譯工作前請先打開ENV執(zhí)行以下指令(該指令用于拉取必要的HAL庫及CMSIS庫,否則無法通過編譯):```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. 燒錄測試

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

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

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

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

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

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

10.修改工作流文件

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

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

11.提交到遠(yuǎn)程倉庫

全部測試沒問題后,提交的遠(yuǎn)程倉庫。

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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • STM32
    +關(guān)注

    關(guān)注

    2287

    文章

    10988

    瀏覽量

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

    關(guān)注

    1

    文章

    91

    瀏覽量

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

    關(guān)注

    31

    文章

    1357

    瀏覽量

    41415
收藏 人收藏

    評論

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

    大模型的“成本瘦身”運動

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

    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)載請保留署名Vivado的工程文件包含了源碼、IP、設(shè)置和各種編譯的中間文件,動輒上百MB甚至上GB,非常占硬盤。可以通過以下步驟對編譯過的工程進行瘦身,只預(yù)留必要的設(shè)置、IP
    發(fā)表于 08-17 08:41

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

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

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

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

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

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

    MQX BSP移植指南

    MQX BSP 即板級支持包,是指針對某一特定的板子的系統(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是什么 板級支持包(BSP)是介于主板硬件和操作系統(tǒng)中驅(qū)動層程序之間的一層,一般認(rèn)為它屬于操作系統(tǒng)一部分,主要是實現(xiàn)對操作系統(tǒng)的支持,為上層的驅(qū)動程序提供訪問硬件設(shè)備寄存器的函數(shù)包,使之能
    發(fā)表于 10-16 15:59 ?13.5w次閱讀

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

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

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

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

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

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

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

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

    MCU軟件開發(fā)——如何設(shè)計bsp

    如何設(shè)計bsp
    發(fā)表于 11-05 16:35 ?8次下載
    MCU軟件開發(fā)——如何設(shè)計<b class='flag-5'>bsp</b>

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

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