日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stm32数据手册boot_STM32的ISP下载的原理是什么呢?

發(fā)布時(shí)間:2024/4/14 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stm32数据手册boot_STM32的ISP下载的原理是什么呢? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

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

ISP方式下載程序原理

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

在STM32F10xxx里有三種啟動(dòng)方式:

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

為什么設(shè)置從System Memory啟動(dòng)就可以使用串口來下載我們的程序呢?那是因?yàn)樵谛酒鰪S前ST官方已經(jīng)把一段自舉程序(BootLoader程序)固化到這一塊存儲(chǔ)區(qū)。

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

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

用戶閃存,即User Flash,同時(shí)也稱為Main Flash。

這一段BootLoader程序源碼是沒有開源出來的,用戶是不可修改的。我們?cè)谏弦黄P記的IAP實(shí)驗(yàn)中,IAP程序通過FlyMCU軟件進(jìn)行燒錄,燒錄的地址就是0x08000000。

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

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

其他型號(hào)的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 Flash和User Flash。上電之后執(zhí)行哪個(gè)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)用程序,則此時(shí)0x08000000地址存放的程序就是IAP程序。ISP程序、IAP程序、應(yīng)用程序的關(guān)系示意圖如下:

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

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

猜你喜歡:

《STM32串口IAP分享

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

【RT-Thread】線程的基本知識(shí)

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

我的個(gè)人博客:

https://zhengnianli.github.io

總結(jié)

以上是生活随笔為你收集整理的stm32数据手册boot_STM32的ISP下载的原理是什么呢?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。