日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式云IOT技術(shù)圈
[導(dǎo)讀]點(diǎn)擊上方「嵌入式大雜燴」,選擇「置頂公眾號」第一時間查看編程筆記! 上一篇筆記分享了:STM32串口IAP分享。其中,下載IAP程序是用ISP的方式進(jìn)行下載。這里的ISP又是什么呢? ISP方式下載程序原理 ISP:In System Programing,在系統(tǒng)中編程 在STM32F10xxx里

點(diǎn)擊上方「嵌入式大雜燴」,選擇「置頂公眾號」第一時間查看編程筆記!


上一篇筆記分享了:STM32串口IAP分享。其中,下載IAP程序是用ISP的方式進(jìn)行下載。這里的ISP又是什么呢?

ISP方式下載程序原理

ISP:In System Programing,在系統(tǒng)中編程

在STM32F10xxx里有三種啟動方式:

以ISP方式下載程序時需要把STM32的BOOT0引腳置1、BOOT1引腳置0,即從系統(tǒng)存儲區(qū)(System Memory)啟動。

為什么設(shè)置從System Memory啟動就可以使用串口來下載我們的程序呢?那是因為在芯片出廠前ST官方已經(jīng)把一段自舉程序(BootLoader程序)固化到這一塊存儲區(qū)。

對于STM32F103ZET6來說,System Memory的起始地址為0x1FFFF000,可在芯片手冊的內(nèi)存映射圖里找到:


其通過串口來接收數(shù)據(jù)并燒寫到用戶閃存存儲器的起始地址(0x08000000)。只能燒寫到這個地址,若keil里設(shè)置的地址不是這個地址,則編譯出來的文件將燒錄不成功。

用戶閃存,即User Flash,同時也稱為Main Flash。

這一段BootLoader程序源碼是沒有開源出來的,用戶是不可修改的。我們在上一篇筆記的IAP實驗中,IAP程序通過FlyMCU軟件進(jìn)行燒錄,燒錄的地址就是0x08000000。

注意:不同系列不同型號的STM32固化的BootLoader是不同的,即使用的通訊接口是不同的。如STM32F1xxx系列只支持USART1:


STM32F4xxx系列只支持USART1、USART3、CAN2等接口:


其他型號的BootLoader支持的接口可查看AN2606文檔,鏈接:

https://www.st.com/content/ccc/resource/technical/document/application_note/b9/9b/16/3a/12/1e/40/0c/CD00167594.pdf/files/CD00167594.pdf/jcr:content/translations/en.CD00167594.pdf

這里,關(guān)于數(shù)據(jù)協(xié)議的內(nèi)容不展開討論,有興趣的朋友可自行研究。

IAP與ISP有什么不同?

從基本功能來看,IAP程序與ISP程序所做的事情好像是一樣的,都是引導(dǎo)加載程序,所以網(wǎng)上有很多文章把IAP程序與ISP程序都稱為BootLoader程序,要注意區(qū)分。

但是,ISP與IAP還是有點(diǎn)區(qū)別的。

STM32內(nèi)部Flash分為兩部分,System FlashUser Flash。上電之后執(zhí)行哪個Flash里的程序有boot腳來控制。

System Flash內(nèi)存放的是ST官方編寫的自舉程序(ISP程序),我們是沒有辦法改變的。

User Flash是我們可以使用的Flash空間,我們編寫的代碼就是要燒錄到User Flash中。

我們可以把User Flash分為兩部分,前面一部分空間用于燒寫我們編寫的IAP程序,后面一部分用于燒寫我們編寫的應(yīng)用程序。其中,IAP程序用于更新我們的應(yīng)用程序。

ISP程序用于把我們編寫的程序更新到0x08000000地址上,如果我們的產(chǎn)品中的程序有IAP程序+應(yīng)用程序,則此時0x08000000地址存放的程序就是IAP程序。ISP程序、IAP程序、應(yīng)用程序的關(guān)系示意圖如下:


如果我們的產(chǎn)品中的程序只有應(yīng)用程序,則此時0x08000000地址存放的程序就是應(yīng)用程序。ISP程序、應(yīng)用程序的關(guān)系示意圖如下:


End:以上就是本次的筆記分享,如有錯誤,歡迎之處!如果這篇筆記對你有幫助的話,歡迎收藏、轉(zhuǎn)發(fā)、在看~

猜你喜歡:

STM32串口IAP分享

C語言代碼優(yōu)化的一些技巧(四)

【RT-Thread】線程的基本知識

替代串口打印,嵌入式中另一種打印調(diào)試的方法


我的個人博客:

https://zhengnianli.github.io

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

嵌入式系統(tǒng)的算法效率與硬件資源的平衡是核心挑戰(zhàn)。STM32微控制器通過零開銷循環(huán)機(jī)制與DWT計數(shù)器的結(jié)合,為算法優(yōu)化提供了硬件級支持。本文以插入排序算法為例,探討如何利用STM32的硬件特性驗證排序閾值,實現(xiàn)性能與代碼復(fù)...

關(guān)鍵字: STM32 DWT

智能家居與工業(yè)控制場景,手勢識別作為非接觸式交互的核心技術(shù),正從實驗室走向消費(fèi)級應(yīng)用。以STM32F407VET6微控制器與TensorFlow Lite Micro框架的組合為例,通過模型量化、硬件加速與低功耗設(shè)計,可...

關(guān)鍵字: STM32 TensorFlow

在高性能電機(jī)驅(qū)動的“納秒級戰(zhàn)爭”中,浮點(diǎn)運(yùn)算單元(FPU)往往成為制約控制環(huán)帶寬的阿喀琉斯之踵。當(dāng)PWM載波頻率攀升至100kHz,留給電流環(huán)PID、Clarke/Park變換及SVPWM計算的時間窗口僅剩寥寥數(shù)微秒。此...

關(guān)鍵字: 電機(jī)控制算法 FOC磁場 STM32

在工業(yè)控制、電機(jī)驅(qū)動等實時性要求嚴(yán)苛的場景中,中斷響應(yīng)延遲直接影響系統(tǒng)精度與穩(wěn)定性。STM32系列微控制器憑借Cortex-M內(nèi)核的硬件特性,通過合理的系統(tǒng)架構(gòu)設(shè)計可實現(xiàn)微秒級中斷響應(yīng)。本文從硬件配置、中斷處理、代碼優(yōu)化...

關(guān)鍵字: 裸機(jī)開發(fā) STM32

在工業(yè)控制、音頻處理等高性能嵌入式場景中,某電機(jī)驅(qū)動項目通過混合使用寄存器操作與CMSIS-DSP庫,將PID控制周期從120μs縮短至38μs,系統(tǒng)響應(yīng)速度提升3倍。本文將揭秘這種"底層+高層"混合編程模式的核心技巧。

關(guān)鍵字: HAL STM32 寄存器

嵌入式系統(tǒng)開發(fā)手勢識別作為非接觸式人機(jī)交互的核心技術(shù),正從實驗室走向消費(fèi)級應(yīng)用。然而,傳感器采集的原始信號常因電磁干擾、電源噪聲或機(jī)械抖動產(chǎn)生失真,導(dǎo)致識別準(zhǔn)確率下降。本文以STM32微控制器與PAJ7620手勢識別傳感...

關(guān)鍵字: STM32 手勢識別 噪聲

在物聯(lián)網(wǎng)設(shè)備開發(fā)中,快速實現(xiàn)穩(wěn)定可靠的網(wǎng)絡(luò)通信是項目成功的關(guān)鍵。W5500作為一款集成硬件TCP/IP協(xié)議棧的以太網(wǎng)控制器,憑借其"開箱即用"的特性,可大幅縮短STM32平臺的網(wǎng)絡(luò)功能開發(fā)周期。本文通...

關(guān)鍵字: STM32 W5500

工業(yè)物聯(lián)網(wǎng)設(shè)備開發(fā)中,某智能電表項目曾因ADC采樣中斷響應(yīng)延遲導(dǎo)致數(shù)據(jù)丟失率高達(dá)15%。技術(shù)人員通過重構(gòu)DMA驅(qū)動架構(gòu),將數(shù)據(jù)搬運(yùn)效率提升12倍,CPU占用率從38%降至3%,成功解決高速采樣場景下的實時性難題。這一案例...

關(guān)鍵字: STM32 DMA

工業(yè)機(jī)器人關(guān)節(jié)控制系統(tǒng)中,一個典型的伺服驅(qū)動器需要在100μs周期內(nèi)完成電流采樣、位置反饋、PID計算和PWM輸出等12項關(guān)鍵任務(wù)。當(dāng)傳統(tǒng)固定優(yōu)先級調(diào)度導(dǎo)致機(jī)械臂出現(xiàn)0.3°的位置抖動時,某運(yùn)動控制廠商通過引入混合排序算...

關(guān)鍵字: 電機(jī)控制 STM32

在STM32嵌入式系統(tǒng)開發(fā)中,排序算法的效率直接影響傳感器數(shù)據(jù)處理、通信協(xié)議解析等核心任務(wù)的實時性。傳統(tǒng)快速排序在部分有序數(shù)據(jù)場景下易退化為O(n2)時間復(fù)雜度,而單純依賴三數(shù)取中法優(yōu)化基準(zhǔn)值選擇仍存在小規(guī)模數(shù)據(jù)效率不足...

關(guān)鍵字: STM32 傳感器
關(guān)閉