日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)不再提示

基于STM32F10x處理器如何在IAP中實(shí)現(xiàn)設(shè)計(jì)和應(yīng)用方案

電子設(shè)計(jì) ? 來(lái)源:?jiǎn)纹瑱C(jī)與嵌入式系統(tǒng)應(yīng)用 ? 作者:陳峰峰 , 胡毅 , 許 ? 2020-08-12 09:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引 言

Cortex-M3是首款基于ARMv7-M體系結(jié)構(gòu)的32位標(biāo)準(zhǔn)處理器,RISC結(jié)構(gòu),包含高效靈活的Thumb-2指令集,擁有杰出的低功耗特性,為微控制器系統(tǒng)、汽車(chē)車(chē)身控制系統(tǒng)、工業(yè)控制系統(tǒng)和無(wú)線網(wǎng)絡(luò)等嵌入式應(yīng)用量身設(shè)計(jì)。ST公司推出基于Cortex-M3內(nèi)核的STM32系列處理器,憑借其出眾的性能、創(chuàng)新的外設(shè)、優(yōu)越的功耗控制,得到眾多工程師的青睞。

針對(duì)嵌入式應(yīng)用的特點(diǎn),STM32處理器提供功能強(qiáng)大的硬件調(diào)試接口——JTAG接口和串行接口,極大方便了設(shè)計(jì),縮短了產(chǎn)品的開(kāi)發(fā)周期。不僅如此,STM32處理器內(nèi)嵌的閃存存儲(chǔ)器允許在電路編程(In-Circuit Pro-gramming,ICP)和在應(yīng)用中編程(In-Application Program-ming,IAP)。利用在應(yīng)用中編程,僅需通過(guò)一根串口線,就可以完成產(chǎn)品固件的更新。本文對(duì)STM32處理器的在應(yīng)用中編程進(jìn)行了詳細(xì)的分析,結(jié)合硬件和驅(qū)動(dòng)給出了IAP的具體實(shí)現(xiàn)方法,稍加修改,便可應(yīng)用于STM32處理器的所有系列產(chǎn)品。

1 STM32F10x處理器

1.1 STM32處理器特點(diǎn)

STM32全系列處理器具有腳對(duì)腳、外設(shè)及軟件的高度兼容性。這給應(yīng)用帶來(lái)很好的靈活性,易于將應(yīng)用升級(jí)到不同存儲(chǔ)空間或不同封裝的平臺(tái)。STM32處理器的產(chǎn)品全系列兼容,使得項(xiàng)目之間的代碼重用和移植很方便。

1.2 STM32處理器內(nèi)存映射

Cortex-M3的存儲(chǔ)系統(tǒng)采用統(tǒng)一編址的方式,程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、寄存器被組織在4 GB的線性地址空間內(nèi),以小端格式(little-endian)存放。內(nèi)存映射如圖1所示。

基于STM32F10x處理器如何在IAP中實(shí)現(xiàn)設(shè)計(jì)和應(yīng)用方案

在代碼區(qū),0x00000000地址為啟動(dòng)區(qū)。上電以后,CPU從這個(gè)地址開(kāi)始執(zhí)行代碼0x08000000為用戶Flash的起始地址,0x1FFFF000為系統(tǒng)存儲(chǔ)器(system memory)的起始地址。對(duì)于STM32處理器,可以通過(guò)配置BOOT0和BOOT1兩個(gè)引腳來(lái)選擇不同的啟動(dòng)模式,如表1所列。CPU在時(shí)鐘信號(hào)的第4個(gè)上升沿鎖存BOOT引腳的值,根據(jù)兩個(gè)引腳的值將對(duì)應(yīng)的存儲(chǔ)器物理地址映射到啟動(dòng)區(qū)。

啟動(dòng)模式

系統(tǒng)存儲(chǔ)器也稱(chēng)為“大信息塊”,有2 KB的容量。所有上市的STM32處理器,在出廠前已經(jīng)燒寫(xiě)進(jìn)去自舉模式下的啟動(dòng)程序(Bootloader),并且將之鎖定防止用戶擦寫(xiě)。通過(guò)配置BOOT0和BOOT1選擇系統(tǒng)存儲(chǔ)器啟動(dòng),相應(yīng)的啟動(dòng)程序在復(fù)位后得以執(zhí)行,配合PC端的通信軟件,通過(guò)USART1口允許用戶將程序燒寫(xiě)到用戶Flash區(qū)。之后,將BOOT0和B00T1重新配置為用戶Flash存儲(chǔ)器啟動(dòng),進(jìn)入正常的應(yīng)用程序。

上述的自舉模式類(lèi)似于ISP編程,相比其他燒寫(xiě)方式方便許多,但真正方便靈活的是在應(yīng)用中編程(IAP),只需一根串口線就可以載入程序,復(fù)位后立即執(zhí)行新的應(yīng)用程序。

2 IAP功能原理

在應(yīng)用中編程(IAP)使得用戶可以在程序運(yùn)行時(shí)重新對(duì)Flash進(jìn)行編程。簡(jiǎn)單地說(shuō),IAP的編程工作是:下載編譯好的二進(jìn)制文件數(shù)據(jù)到RAM;將數(shù)據(jù)重新編程到特定的Flash區(qū)。這兩個(gè)工作是由IAP驅(qū)動(dòng)程序完成的。使用IAP功能后,系統(tǒng)的固件由2部分組成:第1部分是IAP驅(qū)動(dòng),不執(zhí)行通常的功能,而是通過(guò)微控制器支持的任一種通信管道(如USB、USART、SPI等,本文使用USART)接收數(shù)據(jù),并執(zhí)行對(duì)第2部分代碼的更新;第2部分是真正的應(yīng)用程序代碼,實(shí)現(xiàn)具體的功能。這兩部分代碼共同燒寫(xiě)在Flash中。要注意的是,這兩部分代碼不能重疊,否則無(wú)法實(shí)現(xiàn)IAP功能。

系統(tǒng)上電以后,IAP驅(qū)動(dòng)首先運(yùn)行,它主要執(zhí)行如下的操作:

①根據(jù)硬件信號(hào)或軟件條件判斷是否需要對(duì)第2部分代碼進(jìn)行更新;

②如果不需要更新,則跳轉(zhuǎn)到④;

③執(zhí)行更新操作;

④跳轉(zhuǎn)到第2部分代碼執(zhí)行。

STM3210x處理器IAP驅(qū)動(dòng)的流程如圖2所示。圖中顯示IAP主界面是利用超級(jí)終端實(shí)現(xiàn)的,傳輸協(xié)議用的是Ymodem協(xié)議。需要注意的是,由于IAP驅(qū)動(dòng)占用了用戶Flash區(qū)的一段起始空間,因此Flash的可編程最大空間要把這部分除去。[page]

STM3210x處理器IAP驅(qū)動(dòng)的流程

3 IAP功能實(shí)現(xiàn)

3.1 硬件電路

采用STM32F10x型處理器作為核心。該處理器可全速工作在72 MHz,擁有3個(gè)USART接口,內(nèi)嵌128 KB Flash和20 KB SRAM。Flash是以頁(yè)的形式組織的,擦除1頁(yè)的時(shí)間約為20~40 ms;在整個(gè)工作范圍內(nèi)其擦除次數(shù)可達(dá)10 000次,經(jīng)10 000次擦除后,在+55℃的保存環(huán)境中數(shù)據(jù)保存期限仍可達(dá)20年。用戶完全不必?fù)?dān)心使用了IAP功能后對(duì)產(chǎn)品造成不良影響。

IAP驅(qū)動(dòng)使用USART1口作為通信管道,PB口的第9引腳作為IAP判斷是否進(jìn)入IAP功能的信號(hào)線。引出一個(gè)按鍵,作為IAP功能選擇按鍵,只要在上電或復(fù)位時(shí)按住此鍵就會(huì)進(jìn)入IAP功能主界面,否則直接執(zhí)行正常應(yīng)用程序。BOOT0和BOOT1是啟動(dòng)配置跳線。相應(yīng)的硬件電路分別如圖3、圖4和圖5所示。

IAP通信管道USART1

按鍵電路

啟動(dòng)配置電路

3.2 IAP驅(qū)動(dòng)

IAP驅(qū)動(dòng)主要包含如下源文件。

main.c:完成Flash解鎖、按鍵端口初始化、按鍵判斷、USART1的初始化以及處理器的始終初始化,另外還初始化指針和跳轉(zhuǎn)到應(yīng)用程序處語(yǔ)句。然后從common.c執(zhí)行主菜單。

common.c:顯示主菜單。主菜單上顯示一系列操作,如加載二進(jìn)制文件、執(zhí)行應(yīng)用程序以及禁止寫(xiě)保護(hù)(如果事先Flash被寫(xiě)保護(hù))。

download.c:等待用戶選擇傳送文件操作,或者放棄操作以及一些提示信息,但真正實(shí)現(xiàn)傳送的是ymodem.c源文件。

ymodem.c:負(fù)責(zé)從超級(jí)終端接收數(shù)據(jù)(使用Ymodem協(xié)議),并將數(shù)據(jù)加載到內(nèi)部RAM中。如果接收數(shù)據(jù)正常,則將數(shù)據(jù)編程到Flash中;如果發(fā)生錯(cuò)誤,則提示出錯(cuò)。

3.3 軟件實(shí)現(xiàn)

要實(shí)現(xiàn)IAP功能,還需做一些準(zhǔn)備工作:

①要準(zhǔn)備BIN類(lèi)型的代碼文件。開(kāi)發(fā)環(huán)境使用的是Keil,默認(rèn)情況下Keil生成HEX類(lèi)型的編譯文件。利用Keil自帶的fromelf.exe工具,就可以生成二進(jìn)制文件。

②對(duì)超級(jí)終端進(jìn)行設(shè)置。IAP驅(qū)動(dòng)中對(duì)USART1的設(shè)置為:波特率為115 200 kb/s,8位數(shù)據(jù)位,1位停止位,無(wú)校驗(yàn)位和硬件控制。超級(jí)終端也必須保持相同設(shè)置。

IAP驅(qū)動(dòng)和應(yīng)用程序代碼需要分配在Flash的合適位置。圖6是2部分代碼在Flash中的存儲(chǔ)情況。由于IAP驅(qū)動(dòng)代碼占用8 KB的空間,故而將Flash最初的8 KB劃出來(lái),應(yīng)用程序是從0x08020000地址處開(kāi)始存放的。這是通過(guò)在common.h頭文件中語(yǔ)句定義的:[page]

#define ApplicationAddress 0x08020000

也可以定義在其他0x08020000地址后的任何位置,只要保證應(yīng)用程序大小不超過(guò)所用處理器Flash的容量。在platform_config.h頭文件中有定義Flash的語(yǔ)句:

#define PAGE_SIZE(0x400) //Flash頁(yè)大小為1 KB

#define FLASH_SIZE(0x20000)//Flash容量為128 KB

STM32F10x處理器有2種Flash頁(yè)的大?。? KB和2 KB。通過(guò)以上語(yǔ)句即可定義頁(yè)大小。

在platform_config.h頭文件中還定義了進(jìn)入IAP功能選擇按鍵映射引腳:

程序

IAP驅(qū)動(dòng)在Keil中編譯、鏈接后,利用ARM公司的RealView ULINK2仿真器將生成的HEX文件燒寫(xiě)到Flash中。此時(shí)Keil自帶的Flash燒寫(xiě)工具要設(shè)置Flash的起始地址為0x08000000。在應(yīng)用程序中,定義向量表的函數(shù)NVIC_SetVectorTabl(NVIC_VectTab_FLASH,0x2000)中的第2個(gè)參數(shù),即Flash的偏移量一定要設(shè)置成0x2000或更大的數(shù)值。同時(shí),F(xiàn)lash燒寫(xiě)工具也要做相對(duì)應(yīng)的設(shè)置。將系統(tǒng)的串口與PC機(jī)串口相連,打開(kāi)已經(jīng)設(shè)置好參數(shù)的超級(jí)終端。將BOOT0跳線為0,BOOT1為0或1都可以。按住IAP功能選擇按鍵,給系統(tǒng)上電。此時(shí),在超級(jí)終端就會(huì)顯示IAP功能主界面,如圖7所示。

Flash存儲(chǔ)分配

IAP功能主界面

在鍵盤(pán)上按1選擇待載入二進(jìn)制文件,界面上會(huì)出現(xiàn)提示語(yǔ)。在“傳送”菜單中選擇傳送文件后,只需幾秒鐘可以將6 KB左右的文件燒寫(xiě)到Flash。下載完后,在鍵盤(pán)上按2或復(fù)位就可以直接執(zhí)行應(yīng)用程序了,如圖8所示。雖然IAP功能使用的是USART1口,但進(jìn)入應(yīng)用程序后就可以正常使用USART1口。隨時(shí)可以通過(guò)復(fù)位后按住IAP功能選擇鍵來(lái)進(jìn)行IAP方式燒寫(xiě)應(yīng)用程序。

成功下載應(yīng)用程序

結(jié) 語(yǔ)

STM32F10x處理器性能出眾,已被廣泛應(yīng)用于各種場(chǎng)合。其IAP功能給用戶帶來(lái)了極大方便,使得產(chǎn)品的固件更新快捷、簡(jiǎn)單。本文闡述了IAP的基本原理,并詳細(xì)描述了如何在STM32F10x處理器平臺(tái)中實(shí)現(xiàn)IAP功能,并在所設(shè)計(jì)的系統(tǒng)中進(jìn)行了IAP實(shí)驗(yàn)。實(shí)驗(yàn)證明,該款處理器的IAP功能可靠、快捷。

責(zé)任編輯:gt

聲明:本文內(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)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    20344

    瀏覽量

    255362
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1761

    瀏覽量

    155975
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    39

    文章

    7759

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    TMS320F280x/C280x系列數(shù)字信號(hào)處理器:功能特性與應(yīng)用指南

    TMS320F280x/C280x系列數(shù)字信號(hào)處理器:功能特性與應(yīng)用指南 在電子設(shè)計(jì)領(lǐng)域,數(shù)字信號(hào)處理器(DSP)扮演著至關(guān)重要的角色,能夠高效處理
    的頭像 發(fā)表于 04-23 16:05 ?168次閱讀

    TMS320F281x/C281x DSPs:高性能數(shù)字信號(hào)處理器的全面解析

    TMS320F281x/C281x DSPs:高性能數(shù)字信號(hào)處理器的全面解析 在當(dāng)今的電子設(shè)計(jì)領(lǐng)域,數(shù)字信號(hào)處理器(DSP)扮演著至關(guān)重要的角色。TI的TMS320
    的頭像 發(fā)表于 04-23 14:15 ?139次閱讀

    TMS320F280x/C280x系列數(shù)字信號(hào)處理器深度解析

    TMS320F280x/C280x系列數(shù)字信號(hào)處理器深度解析 在電子工程領(lǐng)域,數(shù)字信號(hào)處理器(DSP)是實(shí)現(xiàn)高效信號(hào)
    的頭像 發(fā)表于 04-23 13:55 ?206次閱讀

    深入解析TMS320F280x與TMS320C280x系列數(shù)字信號(hào)處理器

    深入解析TMS320F280x與TMS320C280x系列數(shù)字信號(hào)處理器 前言 在電子工程師的設(shè)計(jì)工作,選擇合適的數(shù)字信號(hào)處理器(DSP)
    的頭像 發(fā)表于 04-19 09:40 ?171次閱讀

    ADSP-BF538/ADSP-BF538F處理器:性能卓越的嵌入式解決方案

    ADSP-BF538/ADSP-BF538F處理器:性能卓越的嵌入式解決方案 在嵌入式系統(tǒng)設(shè)計(jì)領(lǐng)域,一款優(yōu)秀的處理器往往能為產(chǎn)品帶來(lái)質(zhì)的飛躍。今天,我們就來(lái)深入了解一下Analog D
    的頭像 發(fā)表于 03-23 17:15 ?933次閱讀

    過(guò)時(shí)的 Blackfin 嵌入式處理器:ADSP - BF51x 系列

    的 Blackfin 嵌入式處理器的 ADSP - BF512F、ADSP - BF514F、ADSP - BF516F 和 ADSP -
    的頭像 發(fā)表于 03-23 17:10 ?1258次閱讀

    ADSP-2148x SHARC處理器:音頻處理領(lǐng)域的強(qiáng)大之選

    ADSP-2148x SHARC處理器:音頻處理領(lǐng)域的強(qiáng)大之選 在電子工程領(lǐng)域,高性能的處理器對(duì)于實(shí)現(xiàn)復(fù)雜的音頻
    的頭像 發(fā)表于 03-23 16:40 ?489次閱讀

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

    半導(dǎo)體(ST)推出的STM32F042x4/STM32F042x6微控制,看看它有哪些獨(dú)特之處,以及在實(shí)際設(shè)計(jì)需要注意的要點(diǎn)。 文件下載: ST
    的頭像 發(fā)表于 03-19 17:15 ?686次閱讀

    何在CW32F030上實(shí)現(xiàn)IAP功能實(shí)現(xiàn)遠(yuǎn)程升級(jí)?

    區(qū)域進(jìn)行燒寫(xiě),目的是為了在產(chǎn)品發(fā)布后可以方便地通過(guò)預(yù)留的通信口對(duì)產(chǎn)品的固件程序進(jìn)行更新升級(jí)。 IAP 功能的實(shí)現(xiàn),一般將程序分為兩個(gè)部分,即:Bootloader 和 APP。Bootloader
    發(fā)表于 12-11 06:15

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

    協(xié)議非常適合在局域網(wǎng)環(huán)境中使用。它基于客戶端/服務(wù)架構(gòu),在這種架構(gòu),客戶端會(huì)向服務(wù)發(fā)出文件傳輸請(qǐng)求(讀取或?qū)懭氩僮鳎?為實(shí)現(xiàn) IAP
    發(fā)表于 12-10 07:21

    HXS320F280025C數(shù)字信號(hào)處理器(DSP)芯片

    HXS320F28025C是中科昊芯自主研發(fā)的一款基于 RISC-V 架構(gòu)的 32 位浮點(diǎn)數(shù)字信號(hào)處理器(DSP)芯片,基于 H28x 內(nèi)核,具三角函數(shù)單元與 CRC 指令集,增可配置邏輯模塊,支持
    發(fā)表于 12-03 09:02

    MD5信息摘要算法實(shí)現(xiàn)二(基于蜂鳥(niǎo)E203協(xié)處理器

    處理器與E203內(nèi)核連接,其中狀態(tài)跳轉(zhuǎn)使用卡洛圖進(jìn)行化簡(jiǎn),assign語(yǔ)句實(shí)現(xiàn)。使用一個(gè)32x6的寄存堆向MD5協(xié)處理器傳輸數(shù)據(jù),控制信號(hào)
    發(fā)表于 10-30 07:54

    AM67x處理器技術(shù)文檔總結(jié)

    AM67x 可擴(kuò)展處理器系列基于進(jìn)化的 Jacinto? 7 架構(gòu),面向智能視覺(jué)相機(jī)和通用計(jì)算應(yīng)用,并建立在 TI 十多年來(lái)在視覺(jué)處理器市場(chǎng)領(lǐng)導(dǎo)地位積累的廣泛市場(chǎng)知識(shí)之上。AM67x
    的頭像 發(fā)表于 09-29 10:48 ?2395次閱讀
    AM67<b class='flag-5'>x</b><b class='flag-5'>處理器</b>技術(shù)文檔總結(jié)

    AT32 IAP using the USART

    的中斷向量表相應(yīng)的移動(dòng),移動(dòng)的偏移量為x AT32 USART IAP 快速使用方法 硬件資源 文檔是用 AT-START-AT32F403A 實(shí)驗(yàn)板的硬件條件為例,
    發(fā)表于 07-11 10:51

    技術(shù)分享 | 如何在2k0300(LoongArch架構(gòu))處理器上跑通qt開(kāi)發(fā)流程

    技術(shù)分享 | 如何在2k0300開(kāi)發(fā)板(LoongArch架構(gòu))處理器上跑通qt開(kāi)發(fā)流程
    的頭像 發(fā)表于 05-20 11:05 ?1043次閱讀
    技術(shù)分享 | 如<b class='flag-5'>何在</b>2k0300(LoongArch架構(gòu))<b class='flag-5'>處理器</b>上跑通qt開(kāi)發(fā)流程
    监利县| 紫云| 涞源县| 东港市| 大厂| 临沭县| 平武县| 平陆县| 新宾| 宜章县| 哈巴河县| 龙里县| 商都县| 栾城县| 林周县| 宁德市| 葵青区| 东宁县| 长岭县| 琼中| 柯坪县| 涞水县| 贵港市| 上饶县| 昌都县| 德庆县| 乐安县| 稷山县| 榆林市| 凤台县| 襄垣县| 海安县| 南木林县| 山西省| 长白| 巴东县| 鲁甸县| 英山县| 长白| 潮州市| 雅安市|