日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

STM32 IAP 應(yīng)用編程幾個(gè)要點(diǎn)

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 2020-03-08 11:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

下面將介紹關(guān)于編程的基礎(chǔ)知識(shí),以及結(jié)合STM32官方提供的Demo講述一下關(guān)于編程的內(nèi)容。

1關(guān)于ISP、ICP、IAP

1.ISP

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

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

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

2.ICP

In Circuit Programing,在電路編程。

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

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

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

3.IAP

In applicating Programing,在應(yīng)用編程。

這里是本文說(shuō)的重點(diǎn),可以簡(jiǎn)單理解為:在程序運(yùn)行的過(guò)程中進(jìn)行編程(升級(jí)程序,更新固件)。

IAP是用戶自己的程序在運(yùn)行過(guò)程中對(duì)User Flash的部分區(qū)域進(jìn)行燒寫(xiě),目的是為了在產(chǎn)品發(fā)布后可以方便地通過(guò)預(yù)留的通信口對(duì)產(chǎn)品中的固件程序進(jìn)行更新升級(jí)。[來(lái)自百度百科]


IAP通信口

IAP的通信口有許多種:UART串口、ETH以太網(wǎng)、I2C、SPI......等。按理說(shuō)只要能傳輸數(shù)據(jù)的通信口都能實(shí)現(xiàn)IAP的功能。

本文結(jié)合STM32官網(wǎng)提供的例程,利用UART在應(yīng)用編程(IAP)。

2ST官網(wǎng)IAP例程

ST官網(wǎng)提供的IAP例程有很多很多,比如:

庫(kù):有使用標(biāo)準(zhǔn)外設(shè)庫(kù)(SPL)的、有使用硬件抽象層庫(kù)(HAL)的;

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

MCU型號(hào):STM8S、STM32F1、F4、L1等幾乎全系列都有。

ST官網(wǎng)提供的各種IAP,其方法和原理其實(shí)都類似:就是將程序文件(二進(jìn)制文件)寫(xiě)入FLASH。

本文以最簡(jiǎn)單的基于(STM32F10x)利用SPL庫(kù)+UART的IAP為例來(lái)給大家講述一下。(復(fù)雜都是從基礎(chǔ)開(kāi)始,后續(xù)逐步為大家更新更高級(jí)的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

相關(guān)參考文檔和代碼例程都在這個(gè)網(wǎng)址下載,下一章節(jié)針對(duì)這里該IAP講述幾點(diǎn)重要內(nèi)容。

我下載后上傳至百度網(wǎng)盤(pán)地址:

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

密碼:2t3j

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

3IAP例程幾個(gè)要點(diǎn)

1.例程概要說(shuō)明

該代碼工程基于STM32F1,使用UART通信口,利用超級(jí)終端(上位機(jī))、通過(guò)YModem協(xié)議實(shí)現(xiàn)代碼程序的數(shù)據(jù)傳輸和寫(xiě)入Flash。

2.IAP軟件工程

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

本文以MDK-ARM為例,你也可以通過(guò)EWARM、TrueSTUDIO等工具打開(kāi)。

因該工程代碼是之前用MDK-ARMV4版本建立的,現(xiàn)在用V5版本打開(kāi)會(huì)提示如下信息:

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

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

直接編譯,沒(méi)有錯(cuò)誤警告,此時(shí),如果有對(duì)應(yīng)的板卡,可直接下載。

提示:

1.前提:MDK下載、安裝

2.什么是目標(biāo)?簡(jiǎn)述工作空間、工程、目標(biāo)

3.說(shuō)明

這個(gè)程序只是IAP程序,放在以0x0800 0000為起始的地址。而IAP程序的作用是將應(yīng)用程序(二進(jìn)制文件)下載到應(yīng)用程序?qū)?yīng)的地址。

因此,我們會(huì)將FLASH劃分我兩個(gè)區(qū)域:IAP程序區(qū)域,APP程序區(qū)域。

這里IAP程序有兩個(gè)作用:1.對(duì)APP程序編程; 2.引導(dǎo)程序跳轉(zhuǎn)至應(yīng)用程序。所以,這段APP程序也叫BootLoader。

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

這個(gè)APP地址0x0800 3000是怎樣來(lái)的呢?

見(jiàn)IAP程序代碼:

所以,我們APP應(yīng)用程序的其起始地址就必須對(duì)應(yīng)為0x0800 3000才行。不然,跳轉(zhuǎn)之后沒(méi)有應(yīng)用程序,則會(huì)出錯(cuò)。

提示:

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

Demo里程可以通過(guò)選擇3跳轉(zhuǎn)到APP程序,初學(xué)者可以直接不使用按鍵判斷,進(jìn)行測(cè)試,如下圖,修改一下:

4APP代碼和地址問(wèn)題

上一章節(jié)是講述的IAP程序,本節(jié)講APP程序修改地址的問(wèn)題。

1.添加代碼

在代碼開(kāi)始設(shè)置向量表偏移:

NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x3000);

0x3000代表偏移量

2.修改配置

project -> Options

3.生成Bin

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

MDK-ARM如何生產(chǎn)Bin文件

4.APP程序代碼

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

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

密碼:2t3j

5超級(jí)終端安裝,程序下載

1.超級(jí)終端下載、安裝

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

為方便大家調(diào)試,我這里提供下載鏈接

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

密碼:5r5m

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

2.程序下載

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

以上所有內(nèi)容就是關(guān)于IAP的基礎(chǔ)知識(shí)和例程說(shuō)明,更多的IAP在線升級(jí)功能講解敬請(qǐng)等待。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2313

    文章

    11195

    瀏覽量

    374755
  • IAP
    IAP
    +關(guān)注

    關(guān)注

    2

    文章

    169

    瀏覽量

    26191
  • ICP
    ICP
    +關(guān)注

    關(guān)注

    0

    文章

    79

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    STM32F401xD/xE微控制器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    STM32F401xD/xE微控制器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn) 在當(dāng)今的電子設(shè)計(jì)領(lǐng)域,微控制器是眾多應(yīng)用的核心組件。STMicroelectronics推出的STM32F401xD/xE系列微控制器憑借
    的頭像 發(fā)表于 04-26 16:10 ?351次閱讀

    STM32L151/152系列超低功耗MCU:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    STM32L151/152系列超低功耗MCU:特性、應(yīng)用與設(shè)計(jì)要點(diǎn) 在電子設(shè)備不斷追求低功耗、高性能的今天,STM32L151x6/8/B和STM32L152x6/8/B系列超低功耗3
    的頭像 發(fā)表于 04-17 14:45 ?169次閱讀

    編程振蕩器AD2S99:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    編程振蕩器AD2S99:特性、應(yīng)用與設(shè)計(jì)要點(diǎn) 在電子工程領(lǐng)域,振蕩器是許多系統(tǒng)中不可或缺的核心組件,為各種設(shè)備提供穩(wěn)定的時(shí)鐘信號(hào)或激勵(lì)源。今天,我們將深入探討一款功能強(qiáng)大的可編程振蕩器
    的頭像 發(fā)表于 03-23 11:05 ?197次閱讀

    STM32F042x4/STM32F042x6微控制器深度解析:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    STM32F042x4/STM32F042x6微控制器深度解析:特性、應(yīng)用與設(shè)計(jì)要點(diǎn) 在嵌入式系統(tǒng)開(kāi)發(fā)領(lǐng)域,微控制器的選擇至關(guān)重要,它直接影響著產(chǎn)品的性能、功能和成本。今天,我們就來(lái)深入探討一下意法
    的頭像 發(fā)表于 03-19 17:15 ?673次閱讀

    電子工程師設(shè)計(jì)相關(guān)要點(diǎn)與案例分析

    電子工程師設(shè)計(jì)相關(guān)要點(diǎn)與案例分析 在電子工程師的設(shè)計(jì)工作中,涉及到眾多不同類型的設(shè)計(jì),下面將結(jié)合幾個(gè)典型案例來(lái)探討電子設(shè)計(jì)的要點(diǎn)。 文件下載: ADM8710.pdf 基于FPGA的電子秤
    的頭像 發(fā)表于 02-27 09:30 ?251次閱讀

    基于納芯微實(shí)時(shí)控制MCU NS800RT5039的IAP固件升級(jí)指南(2)

    在上期《無(wú)需返廠!基于實(shí)時(shí)控制MCU NS800RT5039 的 IAP 固件升級(jí)指南(理論篇)》中,我們已經(jīng)詳細(xì)拆解了 IAP 技術(shù)的核心原理、關(guān)鍵概念、方案設(shè)計(jì)邏輯以及實(shí)戰(zhàn)中常見(jiàn)問(wèn)題的避坑要點(diǎn)
    的頭像 發(fā)表于 02-06 09:18 ?1w次閱讀
    基于納芯微實(shí)時(shí)控制MCU NS800RT5039的<b class='flag-5'>IAP</b>固件升級(jí)指南(2)

    AS32A601型MCU芯片如何進(jìn)行IAP升級(jí)?

    一、什么是IAP? IAP(In Application Programming,在應(yīng)用編程)是一種技術(shù),旨在實(shí)現(xiàn)用戶應(yīng)用程序的動(dòng)態(tài)更新,而無(wú)需使用專門(mén)的編程工具或硬件。
    的頭像 發(fā)表于 12-19 11:39 ?2202次閱讀
    AS32A601型MCU芯片如何進(jìn)行<b class='flag-5'>IAP</b>升級(jí)?

    使用TFTP實(shí)現(xiàn)IAP的方法

    使用 TFTP 實(shí)現(xiàn) IAP 的方法廣泛應(yīng)用于需要具有固件升級(jí)功能的嵌入式應(yīng)用中(例如,嵌入式 Linux bootloader 中)。TFTP 是一種在 UDP 傳輸層上執(zhí)行的簡(jiǎn)單文件傳輸協(xié)議。此
    發(fā)表于 12-10 07:21

    請(qǐng)問(wèn)什么是ISP、ICP 和 IAP?

    什么是 ISP、ICP 和 IAP?
    發(fā)表于 08-19 06:52

    AT32 MCU如何使用IAP

    AT32 MCU使用IAP的方法涉及在微控制器上創(chuàng)建特定固件,以實(shí)現(xiàn)在應(yīng)用編程(In-Application Programming,簡(jiǎn)稱IAP)功能,主要通過(guò)USART通信接口進(jìn)行固件更新操作
    發(fā)表于 08-08 17:13

    STM32F103c8上做DLQR最優(yōu)控制算法的C編程資料

    這是我近期做的一個(gè)項(xiàng)目--基于STM32F103c8的DLQR控制算法的C編程,涉及DLQR最優(yōu)控制算法、嵌入式STM32F103編程、CMSIS-DSP庫(kù)使用。? ??附有完整的程序
    發(fā)表于 07-23 15:30 ?0次下載

    AT32 IAP using the USART

    對(duì)于AT32 MCU,除了出廠固化的bootloader,用戶也可以在應(yīng)用程序中編寫(xiě)自己的bootloader程序,用于最終產(chǎn)品的固件更新。此功能稱為應(yīng)用程序內(nèi)編程IAP)。 本應(yīng)用筆記的目的
    發(fā)表于 07-11 10:51

    有沒(méi)有哪位大神提供一個(gè)STM32H523或者STM32H563的串口升級(jí)的IAP程序?

    有沒(méi)有哪位大神提供一個(gè)STM32H523或者STM32H563的串口升級(jí)的IAP程序
    發(fā)表于 06-12 06:56

    STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊(cè).pdf》資料
    發(fā)表于 06-06 17:06 ?17次下載

    STM32F40xxx和STM32f41xx flash編程手冊(cè)

    PM0081_STM32F40xxx and STM32F41xxx單片機(jī)編程手冊(cè)
    發(fā)表于 06-06 17:02 ?8次下載
    托克逊县| 临洮县| 巴楚县| 中牟县| 玉溪市| 海丰县| 广元市| 凌源市| 东城区| 岳普湖县| 黎平县| 盐源县| 平阴县| 鄂尔多斯市| 梁平县| 扎囊县| 淅川县| 平果县| 民乐县| 洪雅县| 台东市| 东海县| 微山县| 葫芦岛市| 容城县| 衡水市| 抚松县| 阳春市| 探索| 读书| 崇阳县| 宜兴市| 雷山县| 延吉市| 会泽县| 锦屏县| 兰坪| 称多县| 曲阳县| 青海省| 葵青区|