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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2475|回復: 0
收起左側

STM32 Bootloader設計(YModem)

[復制鏈接]
ID:492462 發表于 2020-5-22 15:13 | 顯示全部樓層 |閱讀模式

SENDER:發送方。
RECEIVER:接收方。
第一步先由接收方,發送一個字符'C'
發送方收到'C'后,發送第一幀數據包,內容如下:
SOH 00 FF Foo.c NUL[123] CRC CRC
第1字節SOH:表示本包數據區大小有128字節。如果頭為STX表示本包數據區大小為1024
第2字節00: 編號,第一包為00,第二包為01,第三包為02依次累加。到FF后繼續從0循環遞增。
第3字節FF: 編號的反碼。 編號為00 對應FF,為01對應FE,以此類推。
第4字節到最后兩字節:若第1字節為SOH時有128字節,為STX時有1024字節,這部分為數據區。“Foo.c” 文件名, 超級終端下,在文件名后還有文件大小。官方dome也是因為使用了這個文件大小進行比對。這就是為什么用SecureCRT中的YMODEM協議而無法正確傳輸的原因。
         在文件名和文件大小之后,如果不滿128字節,以0補滿。
最后兩字節:這里需要注意,只有數據部分參與了效CRC驗,不包括頭和編碼部分。
16位CRC效驗,高字節在前,低字節在后。
接收方收到第一幀數據包后,發送ACK正確應答。
然后再發送一個字符'C'。
發送方收到'C'后,開始發送第二幀,第二幀中的數據存放的是第一包數據。
接收方收到數據后,發送一個ACK然后等待下一包數據傳送完畢,繼續ACK應答。直到所有數據傳輸完畢。
數據傳輸完畢后,發送方發EOT,第一次接收方以NAK應答,進行二次確認。
發送方收到NAK后,重發EOT,接收方第二次收到結束符,就以ACK應答。
最后接收方再發送一個'C',發送方在沒有第二個文件要傳輸的情況下,
發送如下數據
SOH 00 FF 00~00(共128個) CRCH CRCL
接收方應答ACK后,正式結束數據傳輸。
STM32 Bootloader軟件設計
         筆者一開始軟件的基本思想,串口接收數據,和寫數據到ROM中,兩者可以同步進行。這樣可以讓cpu得到最大程度的有效利用。
         比如說接收一幀1024的數據,所用的時間= 當前波特率單字符所用時間 * (1024 + 1頭 + 2編碼 + 2CRC)= (1/115200 * 10) * (1024 + 1 + 2 + 2) = 89.323ms
也是就是,在接收的這90ms左右的時間里,在接收下一幀結束這一期間內,可以把上一幀的數據寫入到ROM中。 串口接收數據是中斷的方式,所以收寫操作基本上算同步運行。程序流程如下
STM32 Bootloader使用方法:
         這個STM32 Bootloader程序使用起來很簡單,如果你以前沒有用過IAP升級方式,也沒關系下面會詳細說明。
準備工作:
         硬件:有串口目標板1,串口連接線。
         軟件:PC工具:超級終端 或SecureCRT,stm32目標板程序.bin,stm32 Bootloader。
1)         先把上面的工程stm32 Bootloader下載到目標板中;
2)         打開超級終端 或SecureCRT,設置波特特115200,停止位1,數據位8,效驗無。
3)         先按下‘C’再給目標板上電;(注意先后順序)
4)         選擇1,然后使用YModem, YModem-G協議發送"stm32目標板程序.bin"文件。
5)         傳輸完畢后,會自動運行。
注意:以下兩處根據自己的需求調整
stm32 Bootloader修改:
找到工程下的common.h文件:
以下三個宏定義根據自己目標板的需求來定:
#define ApplicationAddress      0x8002000        //程序首地址
#define ApplicationSize         120000           //目標程序預留空間
#define STM32F10X_HD                         //目標板芯片類型
stm32目標板程序.bin偏移地址修改:
有兩個地方:
1找到system_stm32f10x.c
#define VECT_TAB_OFFSET  0x2000 /*!< Vector Table base offset field.

以上的Word格式文檔51黑下載地址:
Yodem協議.doc (145.5 KB, 下載次數: 34)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩国产一区二区三区不卡 | 永久网站 | 欧美自拍一区 | 国产精品一区久久久 | 国产精品成人一区二区 | 好姑娘影视在线观看高清 | 少妇一区二区三区 | 午夜在线精品偷拍 | 中文字幕在线观看日韩 | 欧美一级黄色片免费观看 | 久久久免费精品 | 污视频免费在线观看 | 久久亚洲一区 | 欧美成人精品二区三区99精品 | 亚洲综合色丁香婷婷六月图片 | 国产精品久久一区二区三区 | 国产精品成人一区二区三区夜夜夜 | 久久精品16| 夜夜干夜夜操 | 欧美性高潮 | 欧美一二三 | 亚洲三级在线 | 网站一区二区三区 | 亚洲美女网站 | 成人在线免费观看 | 91在线成人 | 中文字幕福利视频 | 伊人青青久久 | 久久新| 91精品国产自产精品男人的天堂 | 五月天婷婷激情 | 国产精品九九九 | 亚洲成网站 | 久草久草久草 | 欧美久久久 | 欧美一级免费 | 中文字幕在线网 | 国产一区 | 国产成人精品999在线观看 | 日韩免费中文字幕 | 国产一区二区三区 |