《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > STM32F10x在應用中編程的實現方法
STM32F10x在應用中編程的實現方法
摘要: 本文對STM32處理器的在應用中編程進行了詳細的分析,結合硬件和驅動給出了IAP的具體實現方法,稍加修改,便可應用于STM32處理器的所有系列產品。
Abstract:
Key words :

  引 言

  Cortex-M3是首款基于ARMv7-M體系結構的32位標準處理器,RISC結構,包含高效靈活的Thumb-2指令集,擁有杰出的低功耗特性,為微控制器系統、汽車車身控制系統、工業控制系統和無線網絡等嵌入式應用量身設計。ST公司推出基于Cortex-M3內核的STM32系列處理器,憑借其出眾的性能、創新的外設、優越的功耗控制,得到眾多工程師的青睞。

  針對嵌入式應用的特點,STM32處理器提供功能強大的硬件調試接口——JTAG接口和串行接口,極大方便了設計,縮短了產品的開發周期。不僅如此,STM32處理器內嵌的閃存存儲器允許在電路編程(In-Circuit Pro-gramming,ICP)和在應用中編程(In-Application Program-ming,IAP)。利用在應用中編程,僅需通過一根串口線,就可以完成產品固件的更新。本文對STM32處理器的在應用中編程進行了詳細的分析,結合硬件和驅動給出了IAP的具體實現方法,稍加修改,便可應用于STM32處理器的所有系列產品。

  1 STM32F10x處理器

  1.1 STM32處理器特點

  STM32全系列處理器具有腳對腳、外設及軟件的高度兼容性。這給應用帶來很好的靈活性,易于將應用升級到不同存儲空間或不同封裝的平臺。STM32處理器的產品全系列兼容,使得項目之間的代碼重用和移植很方便。

  1.2 STM32處理器內存映射

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

內存映射

  在代碼區,0x00000000地址為啟動區。上電以后,CPU從這個地址開始執行代碼0x08000000為用戶Flash的起始地址,0x1FFFF000為系統存儲器(system memory)的起始地址。對于STM32處理器,可以通過配置BOOT0和BOOT1兩個引腳來選擇不同的啟動模式,如表1所列。CPU在時鐘信號的第4個上升沿鎖存BOOT引腳的值,根據兩個引腳的值將對應的存儲器物理地址映射到啟動區。

啟動模式

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

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

  2 IAP功能原理

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

  系統上電以后,IAP驅動首先運行,它主要執行如下的操作:

  ①根據硬件信號或軟件條件判斷是否需要對第2部分代碼進行更新;

 ?、谌绻恍枰拢瑒t跳轉到④;

  ③執行更新操作;

 ?、芴D到第2部分代碼執行。

  STM3210x處理器IAP驅動的流程如圖2所示。圖中顯示IAP主界面是利用超級終端實現的,傳輸協議用的是Ymodem協議。需要注意的是,由于IAP驅動占用了用戶Flash區的一段起始空間,因此Flash的可編程最大空間要把這部分除去。

STM3210x處理器IAP驅動的流程

  3 IAP功能實現

  3.1 硬件電路

  采用STM32F10x型處理器作為核心。該處理器可全速工作在72 MHz,擁有3個USART接口,內嵌128 KB Flash和20 KB SRAM。Flash是以頁的形式組織的,擦除1頁的時間約為20~40 ms;在整個工作范圍內其擦除次數可達10 000次,經10 000次擦除后,在+55℃的保存環境中數據保存期限仍可達20年。用戶完全不必擔心使用了IAP功能后對產品造成不良影響。

  IAP驅動使用USART1口作為通信管道,PB口的第9引腳作為IAP判斷是否進入IAP功能的信號線。引出一個按鍵,作為IAP功能選擇按鍵,只要在上電或復位時按住此鍵就會進入IAP功能主界面,否則直接執行正常應用程序。BOOT0和BOOT1是啟動配置跳線。相應的硬件電路分別如圖3、圖4和圖5所示。

 

IAP通信管道USART1

按鍵電路

啟動配置電路

  3.2 IAP驅動

  IAP驅動主要包含如下源文件。

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

  common.c:顯示主菜單。主菜單上顯示一系列操作,如加載二進制文件、執行應用程序以及禁止寫保護(如果事先Flash被寫保護)。

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

  ymodem.c:負責從超級終端接收數據(使用Ymodem協議),并將數據加載到內部RAM中。如果接收數據正常,則將數據編程到Flash中;如果發生錯誤,則提示出錯。

  3.3 軟件實現

  要實現IAP功能,還需做一些準備工作:

 ?、僖獪蕚銪IN類型的代碼文件。開發環境使用的是Keil,默認情況下Keil生成HEX類型的編譯文件。利用Keil自帶的fromelf.exe工具,就可以生成二進制文件。

 ?、趯Τ壗K端進行設置。IAP驅動中對USART1的設置為:波特率為115 200 kb/s,8位數據位,1位停止位,無校驗位和硬件控制。超級終端也必須保持相同設置。

  IAP驅動和應用程序代碼需要分配在Flash的合適位置。圖6是2部分代碼在Flash中的存儲情況。由于IAP驅動代碼占用8 KB的空間,故而將Flash最初的8 KB劃出來,應用程序是從0x08020000地址處開始存放的。這是通過在common.h頭文件中語句定義的:

  #define ApplicationAddress 0x08020000

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

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

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

  STM32F10x處理器有2種Flash頁的大?。? KB和2 KB。通過以上語句即可定義頁大小。

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

程序

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

Flash存儲分配

IAP功能主界面

  在鍵盤上按1選擇待載入二進制文件,界面上會出現提示語。在“傳送”菜單中選擇傳送文件后,只需幾秒鐘可以將6 KB左右的文件燒寫到Flash。下載完后,在鍵盤上按2或復位就可以直接執行應用程序了,如圖8所示。雖然IAP功能使用的是USART1口,但進入應用程序后就可以正常使用USART1口。隨時可以通過復位后按住IAP功能選擇鍵來進行IAP方式燒寫應用程序。

成功下載應用程序

  結 語

  STM32F10x處理器性能出眾,已被廣泛應用于各種場合。其IAP功能給用戶帶來了極大方便,使得產品的固件更新快捷、簡單。本文闡述了IAP的基本原理,并詳細描述了如何在STM32F10x處理器平臺中實現IAP功能,并在所設計的系統中進行了IAP實驗。實驗證明,該款處理器的IAP功能可靠、快捷。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          在线欧美亚洲| 欧美日韩午夜在线视频| 欧美69视频| 亚洲欧美精品| 欧美日韩国产成人在线| 午夜精品久久久久99热蜜桃导演| 国产欧美一二三区| 一个色综合导航| 亚洲欧洲一区二区三区在线观看| 久久精品男女| 国产三级欧美三级日产三级99| 国产美女精品一区二区三区| 久久综合九九| 国产在线精品自拍| 亚洲黄色一区| 亚洲激情六月丁香| 亚洲国产精品999| 亚洲欧美综合国产精品一区| 国产午夜一区二区三区| 99re热这里只有精品视频| 国产精品激情电影| 亚洲无线观看| 一本久久a久久精品亚洲| 欧美日韩视频一区二区三区| 久久亚洲综合网| 精品不卡一区| 亚洲经典视频在线观看| 欧美黄色成人网| 国产精品家教| 精品盗摄一区二区三区| 欧美日韩精选| 亚洲黄色有码视频| 久久综合给合久久狠狠色| 欧美日韩综合视频| 亚洲欧洲av一区二区三区久久| 亚洲精品四区| 国产午夜精品久久久久久免费视| 亚洲国产精品激情在线观看| 久久大香伊蕉在人线观看热2| 亚洲精品中文字| 国内精品写真在线观看| 国产欧美一区二区三区久久人妖| 亚洲欧洲日产国产综合网| 亚洲伦理网站| 亚洲一区二区三区在线看| 欧美国产视频一区二区| 欧美在线视频日韩| 1024日韩| 在线看无码的免费网站| 欧美电影在线观看| 国产精品久久久久久久久久久久久久| 久久精品视频免费| 久久国产精品一区二区| 亚洲毛片在线| 亚洲欧美日韩综合国产aⅴ| 欧美日韩美女在线| 国产精品亚洲第一区在线暖暖韩国| 午夜在线一区二区| 中文国产一区| 久久午夜视频| 亚洲精品免费一二三区| 久久国产66| 亚洲国产成人在线播放| 老司机免费视频一区二区三区| 国产一区二区福利| 美日韩精品免费观看视频| 亚洲经典在线| 亚洲激情专区| 久久午夜羞羞影院免费观看| 国产一区二区| 伊人久久亚洲影院| 国产精品一区免费观看| 亚洲人妖在线| 国产精品午夜av在线| 可以看av的网站久久看| 91久久嫩草影院一区二区| 欧美激情一区二区三区| 欧美国产免费| 国产亚洲第一区| 久久久久久有精品国产| 亚洲第一精品影视| 激情六月婷婷久久| 亚洲欧美网站| 亚洲激情av| 免费影视亚洲| 亚洲精华国产欧美| 老鸭窝毛片一区二区三区| 亚洲影视在线| 永久免费精品影视网站| 欧美日韩在线一二三| 在线精品一区| 国产精品一区二区久久国产| 国语自产精品视频在线看8查询8| 欧美日韩在线另类| 99精品久久| 久久亚洲国产精品日日av夜夜| 一区二区三区在线视频观看| 欧美成人高清视频| 亚洲日韩欧美视频一区| 亚洲欧美日韩系列| 久久国产精品一区二区三区四区| 久久aⅴ国产欧美74aaa| 欧美成人精品高清在线播放| 一色屋精品视频免费看| 久久精品人人做人人爽电影蜜月| 欧美色欧美亚洲另类七区| 亚洲一区三区在线观看| 久久成人久久爱| 国产精品成人免费精品自在线观看| 亚洲一区二区在线播放| 依依成人综合视频| 国产日韩高清一区二区三区在线| 在线观看91精品国产麻豆| 欧美一区二区三区免费在线看| 免费看的黄色欧美网站| 亚洲人成在线播放| 亚洲激情影视| 久久五月婷婷丁香社区| 欧美激情精品| 欧美日韩美女一区二区| 国产精品丝袜91| 在线观看亚洲专区| 国内精品写真在线观看| 久久久夜色精品亚洲| 欧美精品大片| 欧美精品一区二区高清在线观看| 欧美午夜精品理论片a级按摩| 免费永久网站黄欧美| 国产精品午夜在线| 红桃av永久久久| 欧美日韩dvd在线观看| 99精品国产在热久久婷婷| 欧美日韩1234| 制服丝袜亚洲播放| 久久xxxx| 欧美亚洲一区二区在线观看| 免费观看成人www动漫视频| 国产亚洲欧美日韩日本| 国产综合香蕉五月婷在线| 欧美成人自拍| 国产专区精品视频| 亚洲第一页自拍| 韩日精品中文字幕| 欧美日韩在线视频一区| 欧美日韩在线第一页| 在线观看欧美激情| 国产精品日韩一区二区三区| 99国产精品99久久久久久粉嫩| 欧美视频观看一区| 欧美韩日一区二区三区| 亚洲精品一二三| 欧美日韩国产色综合一二三四| 樱桃国产成人精品视频| 国产欧美日韩综合一区在线观看| 亚洲一级在线| 午夜国产精品视频| 欧美一区二区在线免费观看| 亚洲神马久久| 欧美69视频| 国产一区二区三区免费不卡| 欧美在线欧美在线| 亚洲国产黄色| 久久综合狠狠综合久久综青草| 黄色成人免费网站| 国产在线精品一区二区夜色| 欧美激情视频一区二区三区不卡| 亚洲午夜成aⅴ人片| 欧美中文在线观看国产| 国产精品一区三区| 中日韩视频在线观看| 欧美高清视频一区二区三区在线观看| 久久综合色天天久久综合图片| 国产精品一区二区三区成人| 欧美日韩爆操| 黑丝一区二区三区| 国产精品久久中文| 欧美精品久久久久久久久老牛影院| 亚洲第一在线| 欧美视频中文字幕在线| 久久gogo国模裸体人体| 国产精品男人爽免费视频1| 在线视频你懂得一区| 国产偷自视频区视频一区二区| 欧美日韩国产在线观看| 欧美精品日韩一本| 国产精品国产三级国产普通话三级| 黄色成人在线网站| 午夜精品国产更新| 亚洲一区二区在线看| 亚洲另类视频| 9l国产精品久久久久麻豆| 一区二区三区国产盗摄| 亚洲免费一级电影| 国产精品大全| 亚洲黄色片网站| 久久久欧美精品| 久久精品一区蜜桃臀影院| 国产日韩精品视频一区二区三区| 中国av一区| 亚洲一区在线免费| 久久精品日产第一区二区三区| 欧美不卡视频一区| 国产精品精品视频| 免费日韩av片| 亚洲影视在线| 久久久久国产精品人| 欧美伦理在线观看| 久久免费黄色| 亚洲欧美日本在线| 久久精品99国产精品酒店日本| 国产精品资源| 久久亚洲电影| 香蕉乱码成人久久天堂爱免费| 亚洲欧美福利一区二区| 亚洲欧美一区二区三区久久| 欧美成在线观看| 欧美日韩日日夜夜| 性欧美大战久久久久久久久| 久久午夜电影| 国产字幕视频一区二区| 国产一区在线播放| 中文无字幕一区二区三区| 欧美一级二级三级蜜桃| 亚洲一区二区三区精品在线| 国产一区二区三区精品久久久| 狠狠干狠狠久久| 亚洲网站视频| 精品动漫3d一区二区三区免费版| 久久影院午夜片一区| 美日韩精品视频免费看| 欧美黄色影院| 香蕉久久夜色精品国产使用方法| 亚洲精品一区二区三区福利| 国产精品入口福利| 欧美日韩精品一区二区天天拍小说| 一区二区三区视频免费在线观看| 国产精品久久777777毛茸茸| 狠狠爱www人成狠狠爱综合网| 久久久久久久久久久成人| 乱码第一页成人| 在线观看精品一区| 欧美日韩一区三区四区| 欧美亚洲免费| 99re6热在线精品视频播放速度| 久久激情视频| 亚洲欧洲精品成人久久奇米网| 99国产精品久久久久久久成人热| 亚洲高清电影| 国产精品盗摄久久久| 国产精品v欧美精品v日韩精品| 狠狠色噜噜狠狠色综合久| 黄色国产精品| 亚洲免费观看| 久久精品国语| 免费看亚洲片| 亚洲欧美日韩国产综合在线| 欧美视频成人| 亚洲国内高清视频| 国内外成人免费视频| 欧美中文字幕在线| 在线看视频不卡| 久久亚洲春色中文字幕久久久| 午夜国产不卡在线观看视频| 欧美在线视频日韩| 国产毛片精品视频| 国产精品白丝黑袜喷水久久久| 香蕉久久久久久久av网站| 欧美区一区二| 亚洲视频每日更新| 中文亚洲视频在线| 免费一级欧美片在线观看| 蘑菇福利视频一区播放| 欧美精品在线观看| 欧美日韩中文字幕精品| 韩国亚洲精品| 欧美一区二区精品久久911| 亚洲免费观看| 国产日韩欧美高清| 久色成人在线| 亚洲精选在线| 久久综合色8888| 久久人人爽爽爽人久久久| 国产亚洲福利| 在线看片日韩| 欧美精品一区二区三区蜜桃| 午夜久久一区| 亚洲电影免费观看高清完整版在线| 欧美精品一线| 亚洲高清色综合| 久久全球大尺度高清视频| 亚洲国产一区视频| 欧美日韩综合在线| 欧美精品国产一区二区| 久久精彩免费视频| 99re热这里只有精品免费视频| 欧美在线日韩精品| 欧美日韩一区二区三区高清| 欧美成人国产va精品日本一级| 国产午夜精品视频| 欧美手机在线| 欧美国产亚洲另类动漫| 亚洲狼人精品一区二区三区| 亚洲国产另类 国产精品国产免费| 在线观看久久av| 欧美xart系列在线观看| 亚洲一区图片| 亚洲国产精品一区二区www| 亚洲免费视频一区二区| 欧美一级视频精品观看| 欧美成人免费在线观看| 在线亚洲欧美专区二区| 亚洲福利视频免费观看| 久久亚洲精品中文字幕冲田杏梨| 欧美久久精品午夜青青大伊人| 亚洲人成毛片在线播放| 久久精品最新地址| 国产精品家庭影院| 国际精品欧美精品| 国产久一道中文一区| 国产日韩在线亚洲字幕中文| 亚洲免费视频网站| 欧美午夜大胆人体| 国产精品午夜在线观看| 精品不卡一区二区三区| 亚洲一区二区三区中文字幕| 国产伦一区二区三区色一情| 狠狠操狠狠色综合网| 亚洲人成小说网站色在线|