亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3003|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32 Bootloader設(shè)計(jì)(YModem)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:492462 發(fā)表于 2020-5-22 15:13 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

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

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

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

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表