找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC8單片機(jī)遠(yuǎn)程升級(jí)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:99580 發(fā)表于 2019-3-7 15:17 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
STC8A8K64,片內(nèi)eeprom通過官方的ISP程序設(shè)置為64k,升級(jí)包遠(yuǎn)程發(fā)送到片外flash,有40多k。升級(jí)代碼在0xE000處。原理是用升級(jí)代碼擦除0xE000以下的空間后再把升級(jí)包寫進(jìn)去,重啟完成升級(jí)。
首先擦除片內(nèi)eeprom,從0x0000開始,一直擦到0x4e00所在扇區(qū)都沒問題,下個(gè)擦除地址是0x5000,就死機(jī)了。
要是升級(jí)包小于20k就沒問題,擦除寫入重啟一切正常。只要操作0x5000就死機(jī)。問了官方技術(shù)支持,說這種升級(jí)方式?jīng)]問題。為什么0x5000死機(jī)不知道,反正這種方式?jīng)]問題,只要設(shè)置了64k的eeprom,整個(gè)代碼空間都可以擦,小心別擦到自己就行。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:99580 發(fā)表于 2019-3-7 15:18 | 只看該作者
死機(jī)跟看門狗沒關(guān)系
回復(fù)

使用道具 舉報(bào)

板凳
ID:123289 發(fā)表于 2019-3-8 08:50 | 只看該作者
要點(diǎn):
自己的程序中負(fù)責(zé)升級(jí)的部分不是很長,運(yùn)行升級(jí)程序時(shí),先將這部分程序復(fù)制到擦除不到的區(qū)域,而后跳再去運(yùn)行升級(jí),這樣就可以了。
好就是前面最后一句話:“小心別擦到自己就行!
回復(fù)

使用道具 舉報(bào)

地板
ID:99580 發(fā)表于 2019-3-8 11:33 | 只看該作者
本帖最后由 isis69 于 2019-3-8 11:55 編輯

主程序地址是從0到A370,負(fù)責(zé)升級(jí)的程序地址從E000到E16B。升級(jí)時(shí)程序在E000到E16B執(zhí)行,沒有使用函數(shù)和中斷,總中斷也關(guān)了,看門狗也關(guān)了。
現(xiàn)在小于20k的程序,遠(yuǎn)程升級(jí)是成功的。
回復(fù)

使用道具 舉報(bào)

5#
ID:99580 發(fā)表于 2019-3-8 11:37 | 只看該作者
各個(gè)程序段的地址在主程序運(yùn)行時(shí)可以通過串口命令行讀代碼區(qū)內(nèi)容來查看,驗(yàn)證過的。
回復(fù)

使用道具 舉報(bào)

6#
ID:301968 發(fā)表于 2019-4-21 14:40 | 只看該作者
樓主能詳細(xì)說說細(xì)節(jié)嗎,我也在研究這個(gè)問題 ,總不成功,是不是程序?qū)戝e(cuò)了。
回復(fù)

使用道具 舉報(bào)

7#
ID:99580 發(fā)表于 2019-4-23 11:55 | 只看該作者
鄧文雄ABC 發(fā)表于 2019-4-21 14:40
樓主能詳細(xì)說說細(xì)節(jié)嗎,我也在研究這個(gè)問題 ,總不成功,是不是程序?qū)戝e(cuò)了。

原理就是整個(gè)代碼空間都設(shè)置為flash空間,用戶程序可以在運(yùn)行時(shí)修改flash內(nèi)容。
具體辦法:收到的升級(jí)代碼放在外部flash,用戶程序擦除內(nèi)部flash(即舊代碼),將外部flash的升級(jí)代碼寫入內(nèi)部falsh,最后重啟。
用戶程序分成兩部分,正常的應(yīng)用部分和升級(jí)部分。兩部分分開存放,升級(jí)部分只擦除、寫入應(yīng)用部分的flash空間。
回復(fù)

使用道具 舉報(bào)

8#
ID:400402 發(fā)表于 2019-10-15 11:07 | 只看該作者
我也用的是這個(gè)芯片;研究了兩天兩夜不合眼;終于搞定;有成就感 ;程序有33K;先把HEX文件轉(zhuǎn)成BIN文件;經(jīng)測試;BIN文件傳輸容易亂碼;于是轉(zhuǎn)成了TXT文件;但是轉(zhuǎn)成TXT后;文件大了一倍;放到FTP服務(wù)器上;監(jiān)控程序從TFP服務(wù)器上下載;保存到片外FLASH;用的是W25Q32;下載完成后;再升級(jí);完全沒問題;升級(jí)監(jiān)控程序也可以用中斷;但是不能和主程序重疊(如用戶程序用了定時(shí)0;監(jiān)控程序就不能用定時(shí)0;不然跳轉(zhuǎn)會(huì)出問題);升級(jí)監(jiān)控程序我只用了定時(shí)0;主要是因?yàn)槎〞r(shí)0的跳轉(zhuǎn)地址離開頭最近;空間利用率最高;用定時(shí)器0模擬了串口1和串口2;串口1連接電腦方便調(diào)試;串口2連接接GSM模塊;用于下載升級(jí)包;在擦除和寫入第一他扇區(qū)時(shí)要關(guān)中斷;把升級(jí)監(jiān)控程序的主跳轉(zhuǎn)地址和定時(shí)器0的跳轉(zhuǎn)地址重新寫入數(shù)組;寫完第一個(gè)扇區(qū)就可以開中斷了;中斷的跳轉(zhuǎn)地址都放在第一扇區(qū)的前面幾行;
回復(fù)

使用道具 舉報(bào)

9#
ID:400402 發(fā)表于 2019-10-15 11:18 | 只看該作者
我也是用的這個(gè)芯片;研究了兩天兩夜沒合眼;終于成功了;
用戶程序有33K;把HEX文件轉(zhuǎn)成BIN;經(jīng)測試發(fā)現(xiàn)BIN文件傳輸容易出現(xiàn)亂碼;后轉(zhuǎn)成TXT文件;但轉(zhuǎn)換后文件大了一倍;但是傳輸穩(wěn)定;把升級(jí)文件放到FTP服務(wù)器上;升級(jí)監(jiān)控程序通過GSM連接FTP服務(wù)器;下載升級(jí)文件后;存儲(chǔ)在片外FLASH;我用的是W25Q32;全部下載完成后;需要將數(shù)據(jù)轉(zhuǎn)成16進(jìn)制;然后才能寫入;升級(jí)監(jiān)控程序也可以使用中斷;只要不和用戶程序重疊就可以;監(jiān)控升級(jí)程序我用了定時(shí)器0;使用定時(shí)器0模塊了串口1和串口2;串口1連接電腦方便調(diào)試;串口2連接GSM模塊下載升級(jí)文件;在擦除第一扇區(qū)前一定要關(guān)中斷;寫入第一扇區(qū)數(shù)據(jù)后;就可以開中斷了;因?yàn)橹袛嗵D(zhuǎn)地址都放在第一扇區(qū)的前面幾行;寫入第一扇區(qū)時(shí);一定要將升級(jí)監(jiān)控程序的主跳轉(zhuǎn)地址和定時(shí)器0的跳轉(zhuǎn)地址重寫進(jìn)去;不然升級(jí)控制程序?qū)⒈黄茐模?/td>
回復(fù)

使用道具 舉報(bào)

10#
ID:144776 發(fā)表于 2019-10-17 21:54 | 只看該作者
moneylhc 發(fā)表于 2019-10-15 11:18
我也是用的這個(gè)芯片;研究了兩天兩夜沒合眼;終于成功了;
用戶程序有33K;把HEX文件轉(zhuǎn)成BIN;經(jīng)測試發(fā)現(xiàn)B ...

佩服!佩服!
回復(fù)

使用道具 舉報(bào)

11#
ID:154265 發(fā)表于 2021-1-5 14:48 | 只看該作者
你好!能否分享一下老大你這個(gè)成功的硬件和軟件,兄弟也想學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

12#
ID:154265 發(fā)表于 2021-1-5 14:52 | 只看該作者
程序遠(yuǎn)程升級(jí),兄弟也想學(xué)一下,能否賞賜兄弟一下成功的硬件和軟件資料,叩謝!
回復(fù)

使用道具 舉報(bào)

13#
ID:154265 發(fā)表于 2021-1-5 14:52 | 只看該作者
最好把資料發(fā)帖里,共同分享一下!
回復(fù)

使用道具 舉報(bào)

14#
ID:414556 發(fā)表于 2021-1-5 22:53 | 只看該作者
設(shè)置接收校驗(yàn),如果錯(cuò)了重傳
回復(fù)

使用道具 舉報(bào)

15#
ID:866290 發(fā)表于 2022-7-21 21:42 | 只看該作者
moneylhc 發(fā)表于 2019-10-15 11:07
我也用的是這個(gè)芯片;研究了兩天兩夜不合眼;終于搞定;有成就感 ;程序有33K;先把HEX文件轉(zhuǎn)成BIN文件;經(jīng) ...

分析下軟件吧,我們學(xué)習(xí)下。
回復(fù)

使用道具 舉報(bào)

16#
ID:879348 發(fā)表于 2022-7-22 08:24 | 只看該作者
沒什么問題的,認(rèn)真檢查寫地址
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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