色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32 IAP 應用編程幾個要點

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-08 11:42 ? 次閱讀

我們常看到ISP、ICP、IAP等縮寫詞組,它們的主要作用就是對程序代碼進行更新(編程)。

下面將介紹關于編程的基礎知識,以及結合STM32官方提供的Demo講述一下關于編程的內容。

1關于ISP、ICP、IAP

1.ISP

ISP:In System Programing,在系統編程。

比如:使用STC-ISP對STC芯片編程,利用Flash loader對STM32編程等。

支持ISP的芯片一般在芯片內部固化了一段(用ISP升級的)boot程序。

2.ICP

In Circuit Programing,在電路編程。

ICSP:In-Circuit Serial Programming,在電路串行編程。如:對EEPROM編程等。

ICP編程方式網上各有說法,從字面含義(在電路)來說,所有處于編程的芯片都需要上電,都處于電路中。不嚴格來說利用J-Link、ST-Link、e-Link32等工具進行編程也屬于在電路編程(ICP)。

在維基百科中,在系統編程(ISP),也稱為在電路串行編程(ICSP)。

3.IAP

In applicating Programing,在應用編程。

這里是本文說的重點,可以簡單理解為:在程序運行的過程中進行編程(升級程序,更新固件)。

IAP是用戶自己的程序在運行過程中對User Flash的部分區域進行燒寫,目的是為了在產品發布后可以方便地通過預留的通信口對產品中的固件程序進行更新升級。[來自百度百科]


IAP通信口

IAP的通信口有許多種:UART串口、ETH以太網I2C、SPI......等。按理說只要能傳輸數據的通信口都能實現IAP的功能。

本文結合STM32官網提供的例程,利用UART在應用編程(IAP)。

2ST官網IAP例程

ST官網提供的IAP例程有很多很多,比如:

庫:有使用標準外設庫(SPL)的、有使用硬件抽象層庫(HAL)的;

通信口:有使用USART的,有使用I2C的,有使用ETH的等。

MCU型號:STM8S、STM32F1、F4、L1等幾乎全系列都有。

ST官網提供的各種IAP,其方法和原理其實都類似:就是將程序文件(二進制文件)寫入FLASH。

本文以最簡單的基于(STM32F10x)利用SPL庫+UART的IAP為例來給大家講述一下。(復雜都是從基礎開始,后續逐步為大家更新更高級的IAP功能)

STM32F10xxx in-application programming using the USART官方地址:

https://www.stmicroelectronics.com.cn/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-standard-peripheral-library-expansion/stsw-stm32008.html

相關參考文檔和代碼例程都在這個網址下載,下一章節針對這里該IAP講述幾點重要內容。

我下載后上傳至百度網盤地址:

https://pan.baidu.com/s/1umdwlShsJpL8rLdeb9n6Cw

密碼:2t3j

(提示:該鏈接后期可能會失效,建議到官網下載)

3IAP例程幾個要點

1.例程概要說明

該代碼工程基于STM32F1,使用UART通信口,利用超級終端(上位機)、通過YModem協議實現代碼程序的數據傳輸和寫入Flash。

2.IAP軟件工程

我們解壓(上面)下載好的軟件工程包,進入目錄,通過MDK-ARM(為例),如下圖;

本文以MDK-ARM為例,你也可以通過EWARM、TrueSTUDIO等工具打開。

因該工程代碼是之前用MDK-ARMV4版本建立的,現在用V5版本打開會提示如下信息

只需要點擊“Migrate to Device Pack”即可,V5版本使用了“設備支持包”,這里大概意思就是使用設備支持包兼容以前老版本工程。

選擇對應的目標(我們以F103ZE為例,選擇大容量、小容量在于他們的FLASH頁大小不一樣),選擇10E-EVAL,如下圖:

直接編譯,沒有錯誤警告,此時,如果有對應的板卡,可直接下載。

提示:

1.前提:MDK下載、安裝

2.什么是目標?簡述工作空間、工程、目標

3.說明

這個程序只是IAP程序,放在以0x0800 0000為起始的地址。而IAP程序的作用是將應用程序(二進制文件)下載到應用程序對應的地址。

因此,我們會將FLASH劃分我兩個區域:IAP程序區域,APP程序區域。

這里IAP程序有兩個作用:1.對APP程序編程; 2.引導程序跳轉至應用程序。所以,這段APP程序也叫BootLoader。

為防止IAP程序不被(第一部分代碼)不被意外破壞,一般建議對IAP程序進行“寫保護”。

這個APP地址0x0800 3000是怎樣來的呢?

見IAP程序代碼:

所以,我們APP應用程序的其起始地址就必須對應為0x0800 3000才行。不然,跳轉之后沒有應用程序,則會出錯。

提示:

它這里是通過按鍵方式選擇執行IAP,還是執行APP;一般建議通過倒計時(比如5s):5s之內通過串口選擇下載,否則自動跳轉到APP程序執行。這里就需要自己根據情況修改代碼。

Demo里程可以通過選擇3跳轉到APP程序,初學者可以直接不使用按鍵判斷,進行測試,如下圖,修改一下:

4APP代碼和地址問題

上一章節是講述的IAP程序,本節講APP程序修改地址的問題。

1.添加代碼

在代碼開始設置向量表偏移:

NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x3000);

0x3000代表偏移量

2.修改配置

project -> Options

3.生成Bin

具體可以參看我另外一篇文章:

MDK-ARM如何生產Bin文件

4.APP程序代碼

為方便大家學習,我提供在按照上面修改過的APP代碼工程給大家下載,地址和上面一樣:

https://pan.baidu.com/s/1umdwlShsJpL8rLdeb9n6Cw

密碼:2t3j

5超級終端安裝,程序下載

1.超級終端下載、安裝

官方提供的文檔是HyperTerminal超級終端下載程序,這個可以百度谷歌搜索下載安裝。我這后面一直使用SecureCRT這款終端,這終端屬于商業軟件,但在網上可以找到很多po解的辦法。

為方便大家調試,我這里提供下載鏈接

https://pan.baidu.com/s/13yjA9q0Eltfer4oLPbGceQ

密碼:5r5m

(提示:該鏈接后期可能會失效,建議到官網下載)

2.程序下載

硬件連接好,將生成的程序文件(Demo.bin)指定位置(為方便測試下載,我拷貝到桌面)-> 打開終端 ->鍵盤按1 ->選擇文件 ->下載完成 ->鍵盤按3執行程序。

以上所有內容就是關于IAP的基礎知識和例程說明,更多的IAP在線升級功能講解敬請等待。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2270

    文章

    10895

    瀏覽量

    355739
  • IAP
    IAP
    +關注

    關注

    2

    文章

    163

    瀏覽量

    24279
  • ICP
    ICP
    +關注

    關注

    0

    文章

    70

    瀏覽量

    12778
收藏 人收藏

    評論

    相關推薦

    stm32單片機用什么軟件編程

    STM32單片機是一種廣泛應用于嵌入式系統領域的微控制器,具有高性能、低功耗、豐富的外設接口等特點。要對STM32單片機進行編程,需要選擇合適的軟件工具。 概述 STM32單片機
    的頭像 發表于 09-02 10:16 ?1252次閱讀

    請問怎么基于stm32實現IAP功能?

    以下boot leader 是設想最簡單的功能,就是跳轉到下一塊程序地址為0x08008000,截圖: 然后APP是從0x0800 8000 開始的,也在網絡上的教程更改了偏移,但是boot一跳轉就卡死,不知道怎么實現IAP最基礎的功能(即boot和APP合并跳轉),請懂的大佬教教。截圖如下:
    發表于 05-20 06:59

    51、STM32單片機的編程方式一樣嗎?

    STM32和51單片機是兩種常見的單片機系列,它們在硬件架構、性能特點和編程方式等方面有所不同。但是從c語言編程的角度來說,我認為是大同小異的。我們來對比一下它們的編程特點:51&am
    的頭像 發表于 05-18 08:04 ?2178次閱讀
    51、<b class='flag-5'>STM32</b>單片機的<b class='flag-5'>編程</b>方式一樣嗎?

    STM32F1 IAP操作讀保護選項字節設置,APP使用系統復位跳轉后無法運行IAP的原因?

    最近調試一個程序,是基于STM32F1做的IAP,升級前后需要修改選項字節,FLASH_EraseOptionBytes函數內OB->RDP=RDP_Key語句實現讀保護的解除,如果我
    發表于 05-13 08:09

    STM32F767 USB是否能用IAP功能?

    如題,網上的帖子都是針對F1,F4的USB,IAP功能。 F767的IAP功能沒有被提到過。 確認一下概念,我指的IAP功能是首先下載引導程序,然后通過USB可以隨時更改程序的這種應用,不需要BOOT配合,不知各位前輩是否有過相
    發表于 04-29 07:08

    通過iap的方式對stm32f405進行升級,usb dfu數據傳輸出錯的原因?

    想通過iap的方式對stm32f405進行升級,用usb傳輸 dfu格式; 在數據傳輸過程中,發現源文件和傳到設備上的數據匹配不起來,有人遇到過嗎??求助!!!! 是usb dfu傳輸協議的問題嗎?誰有usb dfu格式iap
    發表于 04-28 08:56

    STM32F103RE只有掛調試器IAP程序才能正常跳轉嗎?

    最近在開發一款基于STM32F103RET6的產品,要求支持固件升級,目前是基于USART1的IAP,Toolchain是IAR。 IAP的程序是參考官方的例程做的,大體沒變,只是BSP方面改了一下
    發表于 04-25 07:03

    IAP跳轉APP開始可以,如果從APP跳回IAP后再跳到APP失敗的原因?

    IAP 跳轉APP 開始可以,但如果從APP跳回IAP后,再跳到APP失敗。 我是按照 下面ST官方文檔來的: AN4657 Application note STM32
    發表于 04-23 07:24

    STM32F0 IAP進入APP后 __disable_irq() 失效了的原因?

    如題,STM32F030C8T6 做 IAP 現能正確的從 bootloader 中跳轉到 APP,在APP中也能正常的進入中斷,為什么在APP中使用 __disable_irq();無法關閉 所有中斷。 經測試 在bootloader中__disable_irq();是
    發表于 04-22 08:21

    CKS32F4xx系列產品的串口IAP功能詳解

    IAP(In Application Programming)即在應用編程IAP是用戶自己的程序在運行過程中對User Flash的部分區域進行燒寫,目的是為了在產品發布后可以方便地通過預留的通信口對產品中的固件程序進行更新升
    發表于 04-05 15:11 ?553次閱讀
    CKS32F4xx系列產品的串口<b class='flag-5'>IAP</b>功能詳解

    使用STM32CubeIDE無法通過IAP跳轉APP進行軟件升級的原因?

    使用CUBE IDE無法通過IAP跳轉APP進行軟件升級 本人使用的是cubeide 1.7.0版本,單片機是STM32F407VET6.在這個IDE工具下,成功實現STM32
    發表于 03-28 06:47

    SiC驅動電源設計要點(變壓器部分)

    在設計SiC(碳化硅)驅動電源時,需要考慮以下幾個關鍵要點
    的頭像 發表于 03-18 18:02 ?1724次閱讀
    SiC驅動電源設計<b class='flag-5'>要點</b>(變壓器部分)

    fpga編程與單片機編程的區別

    FPGA編程與單片機編程的主要區別體現在以下幾個方面。
    的頭像 發表于 03-14 17:16 ?977次閱讀

    自舉電路設計要點有哪些

    自舉電路作為一種常見的電子電路,主要用于提升電壓,以便為高側開關提供足夠的驅動能力。在設計自舉電路時,有幾個關鍵要點需要注意。下面我們將逐一探討這些要點。 為了確保自舉電路的正常工作,需要特別注意
    的頭像 發表于 02-16 11:43 ?934次閱讀

    什么ISP?什么是IAP

    做單片機開發的工程師經常會聽到兩個詞:ISP和IAP,但新手往往對這兩個概念不是很清楚,今天就來和大家聊聊什么是ISP,什么是IAP
    的頭像 發表于 01-28 09:26 ?4449次閱讀
    什么ISP?什么是<b class='flag-5'>IAP</b>?
    主站蜘蛛池模板: 蜜桃99影院| 国产欧美另类久久久精品免费| china野外18:19| 波多久久亚洲精品AV无码| 草草久久久无码国产专区全集观看| 俄罗斯女人Z0Z0极品| 国产精品美女久久久网站动漫| 国产一区内射最近更新| 精品香蕉99久久久久网站| 久艾草在线精品视频在线观看| 乐乐亚洲精品综合影院| 全文都是肉高h文| 息与子在线交尾中文字幕| 一久久| 99在线视频免费观看视频| 国产成人无码精品久久久按摩| 国产欧美第一页| 久久中文骚妇内射| 日日操夜夜摸| 一个人色导航| 成年人视频免费在线播放| 海角国精产品一区一区三区糖心| 伦理片在线线249| 少妇精油按摩| 真实国产熟睡乱子伦对白无套 | 亚洲精品电影天堂网| 97久久久久| 国产欧美日韩亚洲第一页| 刘梓晨啪啪啪| 无码丰满人妻熟妇区| 最新色导航| 国产精品亚洲二线在线播放| 久久这里只有精品国产精品99| 色多多污污在线播放免费| 艳鉧动漫1~6全集观看在线 | 99E久热只有精品8在线直播| 粗壮挺进邻居人妻无码| 久久www免费人成高清| 日韩欧美一区二区三区免费观看| 一区二区视频在线观看高清视频在线| 草莓AV福利网站导航|