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

當前位置:首頁 > > strongerHuang
[導讀]關(guān)注、星標公眾號,不錯過精彩內(nèi)容 作者:strongerHuang 對于軟件工程師來說,代碼升級(或程序更新)算是必備基礎知識。 下面將介紹關(guān)于編程的基礎知識,以及結(jié)合STM32官方提供的Demo講述一下關(guān)于編程的內(nèi)容。 一、關(guān)于ISP、ICP、IAP 1.ISP ISP:In System P


關(guān)注、星標公眾,不錯過精彩內(nèi)容

作者:strongerHuang


對于軟件工程師來說,代碼升級(或程序更新)算是必備基礎知識。


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


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

1.ISP

ISP:In System Programing,在系統(tǒng)編程。
比如:使用STC-ISP對STC芯片編程,利用Flash loader對STM32編程等。
支持ISP的芯片一般在芯片內(nèi)部固化了一段(用ISP升級的boot程序。

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

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

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

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

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

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

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

二、關(guān)于Ymodem協(xié)議
YModem是一種文件傳輸?shù)膮f(xié)議,由XModem協(xié)議演變而來的,每包數(shù)據(jù)可以達到1024字節(jié),是一個非常高效的文件傳輸協(xié)議。

更多介紹可參考百度百科:

https://baike.baidu.com/item/Ymodem


協(xié)議傳輸流程:


其中幾個字符的ASCII碼

字符 ASCII碼16進制
SOH 0x01
STX 0x02
ACK 0x06
NAK 0x15
EOT 0x04
C 0x43

1.起始幀
SOH + 00 + FF + filename + filesize + NULL + CRCH + CRCL

起始幀是文件傳輸發(fā)送端發(fā)的第一條重要消息.
filename表示傳輸文件的文件名.
filesize表示需要傳輸文件的大小.
CRCH + CRCL 表示整條幀(去掉前三個字節(jié))的CRC16校驗.

2.數(shù)據(jù)幀格式
STX/SOH + [編號] + 編號的反碼 + data[0] + data[1] + data[2] + … + CRCH + CRCL

SOH 表示有128個字節(jié), 有的也只用SOH傳輸數(shù)據(jù).
STX 表示有1024個字節(jié).

CRCH + CRCL 表示整條幀(去掉前三個字節(jié))的CRC16校驗.
如果傳輸最后一條字節(jié)不足128個字節(jié), 則用1A填充

3.結(jié)束幀的數(shù)據(jù)格式
SOH + 00 + FF + NULL + NULL + … + NULL + CRCH + CRCL

以上部分內(nèi)容授權(quán)轉(zhuǎn)自:

https://blog.csdn.net/weixin_41294615/article/details/104652105


三、ST官網(wǎng)IAP例程
ST官網(wǎng)提供的IAP例程有很多很多,比如:
庫:有使用標準外設庫(SPL)的、有使用硬件抽象層庫(HAL)的;
通信口:有使用USART的,有使用I2C的,有使用ETH的等。
MCU型號 :STM8S、STM32F1、F4、L1等幾乎全系列都有。

ST官網(wǎng)提供的各種IAP,其方法和原理其實都類似:就是將程序文件(二進制文件)寫入FLASH。
本文以最簡單的基于(STM32F10x)利用SPL庫+UART的IAP為例來給大家講述一下。(復雜都是從基礎開始,后續(xù)逐步為大家更新更高級的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)參考文檔和代碼例程都在這個網(wǎng)址下載,下一章節(jié)針對這里該IAP講述幾點重要內(nèi)容。


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

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

密碼:2t3j

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


四、IAP例程幾個要點

1.例程概要說明

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


2.IAP軟件工程

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

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

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


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


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


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


提示

1.前提:MDK下載、安裝

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


3.說明

這個程序只是IAP程序,放在以0x0800 0000為起始的地址。而IAP程序的作用是將應用程序(二進制文件)下載到應用程序?qū)牡刂贰?/span>


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


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


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


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

見IAP程序代碼:


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


提示:

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


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


五、APP代碼和地址問題

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

1.添加代碼

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

NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x3000);


0x3000代表偏移量


2.修改配置

project -> Options 


3.生成Bin

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

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


4.APP程序代碼

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

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

密碼:2t3j


六、超級終端安裝,程序下載

1.超級終端下載、安裝

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


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

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

密碼:5r5m

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


2.程序下載

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



以上內(nèi)容就是關(guān)于STM32 + IAP + Ymodem的基礎知識和例程說明,希望對你有幫助。


推薦閱讀:
為什么我國電網(wǎng)交流電是50Hz?
電子設備"嘰"的噪音是什么引起的?
STM32CubeMonitor如何監(jiān)測程序中的變量

關(guān)注 微信公眾號『strongerHuang』,后臺回復“1024”查看更多內(nèi)容,回復“加群”按規(guī)則加入技術(shù)交流群。


長按前往圖中包含的公眾號關(guān)注

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

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

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉