久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3076|回復: 0
打印 上一主題 下一主題
收起左側

Stm32 IAP程序編寫及用戶程序編寫

[復制鏈接]
跳轉到指定樓層
樓主
ID:105323 發表于 2016-3-4 01:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Stm32f10x系列MCUBootloader 流程
芯片:stm32f103ze
所需軟件:SecureCRT (用于使用Ymode協議發送Application文件),其實應該我們自己寫個上位機,這里借助SecureCRT來充當我們自己寫的應用程序(用于驗證Bootloader是否成功)。
keil版本:μVisionV5.11.0.0
用途:使用通信接口用于軟件的更新(免去拆機繁瑣的流程)。
BootLoader其實看上去挺復雜的樣子,但也還好~仔細查找網上的資料都
有很多介紹,以下為自己做bootloader的過程以及應注意的事項,幫助
大家少走彎路~
請先下載我上傳的資源:

首先確定自己要做個串口能更新固件的程序出來~,聽說名字叫Bootloader,網上也是挺多資料,網上資料找了找,看了看基本了解其流程:
在程序起始位置(0x0800 0000)寫Bootloader程序,在另一個偏移位置寫應用程序(比如0x0800 3000,那么bootloader 的程序空間就只能被限定為0x3000大小,超出了就不行咯)。在Bootloader程序中通過檢測標志位(按鍵按下,或是Flash中的數據等等)來判斷是否進行更新。(此處的更新指的是更新用戶應用程序區域,即0x0800 3000 之后的flash 數據)通過串口,使用Ymodem協議將要更新的鏡像--xxx.bin 燒寫入Flash,燒寫完成后程序跳轉到應用程序(0x0800 3000 ),固件更新完成。
BootLoader工程Stm32官網上有,當然也可以使用我的(有簡單修改過):
在這個工程中需要注意的地方:
1.用戶程序起始地址:#defineApplicationAddress   0x8003000 。(該地址需要與另一個工程-用戶應用程序的起始地址一樣,具體看后面)。
2.需要配置燒寫時擦除的位置,如圖:


3.默認程序地址就是0x80000000 ,大小需要修改為0x3000,如下圖:


4.注意串口是否可用,該工程串口引腳PA9,PA10,特別注意時鐘是否配置正確(主頻72M)否則會出現亂碼~~~。
5.附帶我修改過的程序流程圖,按鍵就是PA0,


//----------------------------------- 以上 BootLoader 做好了-----------------------------------
下面就需要寫個應用程序來驗證該BootLoader~~
如下是我的工程需要注意的地方:
1.修改keil配置,將起始地址修改為 0x0800 3000,大小根據自己的flash大小來設定,如圖:


2.同樣要擦除的Flash區域也要勾選下(不然debug時會把本來寫進去的Bootloader擦掉了~)如圖:


3.由于我們將程序起始地址改成了0x0800 3000,復位時其實仍然是從0x08000000開始跑的~所以要在main函數最前面加:NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x3000);同時,還需要修改如下定義的值:
#define VECT_TAB_OFFSET                 0x3000
改值原本為0,修改為偏移量。
4.使用keil自帶的fromelf 來輸出***.bin文件~,這部分網上找的挺多都不能用的,可能跟keil軟件版本有關吧,詳細問題還是查看keil幫助文檔會比較清楚,以下貼上我的設置:


fromelf --bin --output=1s.bin..\OutPut\Stm32f103Templete.axf
,這樣編譯完成就會出現一個1s.bin的文件咯~
簡單看下我的main函數~實際就是個閃燈的程序~(可以把時間修改為500ms,再生成一個500ms.bin文件來驗證我們的Bootloader)
//--------------------------------以上為用戶應用程序部分------------------------------
以上步驟結束后我們會有:
1.Stm3210xIAP   (Bootloader)
2.Stm3210xIapApplication (userapplication)
3.1s.bin   500ms.bin
4.SecureCRT軟件
首先先把1的工程編譯,燒到芯片中~,接下來把2的工程編譯燒到芯片中~此時如果PA2接個LED燈會看到燈交替閃爍。
接著打開SecureCRT軟件,設置好相應波特率,打開串口~,
接著PA0接到地(模擬一個按鍵按下)再將開發板上電,此時就會進入固件升級,打印相關信息~此時芯片等待Ymodem協議發送文件過來,使用secureCRT軟件,sendYmodem,選中我們所需要更新的文件如:1s.bin,燒寫完成后會發現LED燈變成每1s交替閃爍了。
可以重復以上過程燒寫500ms.bin文件試試~。
以上整個過程結束。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 婷婷中文字幕 | av手机天堂 | 国产欧美日韩在线视频 | 成人在线黄色 | 中文字幕一区二区三区乱码 | 精品视频免费在线观看 | 色婷婷综合在线 | 九色91popny蝌蚪新疆 | 日韩综合在线观看 | 欧美精产国品一二三区 | 国产精品99久久久久久久久 | 久久久www成人免费精品 | 91av免费在线观看 | 亚洲三区在线 | 中文日韩在线 | 人人爽人人爽人人片av | 亚洲精品一区二三区 | 日韩免费大片 | 怡红院久久 | 国产精品一区一区三区 | 一级毛片在线播放 | 国产aⅴ爽av久久久久成人 | 国产区在线观看 | 一区二区高清视频 | 精品在线免费视频 | 中文字幕在线网站 | 欧美色综合天天久久综合精品 | 亚洲天堂男人天堂 | 成人精品一区二区三区 | 日日夜夜综合网 | 中文字幕av久久爽av | 日韩欧美黄色 | 亚洲综合激情网 | 国产美女免费 | 看片地址| 波多野结衣之双调教hd | 毛片网站在线播放 | www午夜 | 伊人精品| av三级在线观看 | 国产精品二区一区二区aⅴ污介绍 |