www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
摘要:分析Boot ROM中的部分源代碼,重點(diǎn)是IAP功能以及ISP和IAP的相互關(guān)系;應(yīng)用IAP功能將剩余程序空間轉(zhuǎn)化為數(shù)據(jù)空間,以及自編ISP程序來實(shí)現(xiàn)儀器的軟件升級(jí)。

    關(guān)鍵詞:P89C51RD2 Boot ROM IAP(ISP)功能 軟件升級(jí)

1 概述

P89C51RD2是Philips公司的80C51系列單片機(jī)中的佼佼者,具有1KB的片上RAM和64KB的片上內(nèi)存;具有3種編程方式,即在系統(tǒng)編程ISP(InSystem Programming)、在應(yīng)用中編程IAP(In-Application Programming)以及通過商用編程器的并行編程。ISP是指電路板上的空白器件可以編程寫入最終用戶代碼,而不需要從電路板上取下器件,已經(jīng)編程的器件也可以用ISP方式擦除或再編程;ISP是指在用戶的應(yīng)用程序中獲取新代碼對(duì)Flash塊、Flash寄存器、Boot向量等進(jìn)行擦除和重新編程,即可以用程序來改變程序。IAP對(duì)于儀器儀表的智能化意義重大。高檔的智能化儀器都具有自診斷、自修復(fù)、自組織、自適應(yīng)和自學(xué)習(xí)等功能,而這些功能實(shí)現(xiàn)的物質(zhì)基礎(chǔ),就是儀器的程序可以根據(jù)實(shí)際情況進(jìn)行改變和調(diào)整。

Philips公司在P89C51RD2中提供了Boot ROM固件,位于0FC00H~0FFFFH空間,與閃存空間重疊,如圖1所示。Philips公司提供了尋址該器件的方法,因此可以通過讀取其目標(biāo)代碼進(jìn)行分析研究。有關(guān)Boot ROM的讀出方法以及Boot ROM與ISP功能的實(shí)現(xiàn)在參考文獻(xiàn)3已有所論述。

P89C51RD2的IAP功能的實(shí)現(xiàn)了是靠Philips公司提供的Boot ROM固件來實(shí)現(xiàn)的。Boot ROM固件中已經(jīng)固化有上述擦除和編程等子程序,只要應(yīng)用程序來調(diào)用即可。通過對(duì)Boot ROM反匯編內(nèi)容進(jìn)一步的分析可以看出:ISP和IAP是一脈相承的,ISP功能的實(shí)現(xiàn)調(diào)用IAP功能的子程序。本文將分析Boot ROM中有關(guān)IAP及IAP和ISP的相互關(guān)系,以達(dá)到深入了解和利用IAP功能的目的。

2 對(duì)Boot ROM中有關(guān)IAP功能代碼的分析

3 對(duì)Boot ROM中ISP和IAP的相互關(guān)系分析

2、3內(nèi)容請(qǐng)見本刊網(wǎng)絡(luò)補(bǔ)充版(http://www.dpj.com.cn)。

4 IAP功能的使用

4.1 程序空間用作數(shù)據(jù)空間

在一個(gè)實(shí)際的應(yīng)用系統(tǒng)中,往往有一些關(guān)鍵性的數(shù)據(jù)需要保存,例如用戶設(shè)置數(shù)據(jù)或重要的過程數(shù)據(jù)。目前的通過做法有兩種:一種是在電路中擴(kuò)展非易失性SRAM,多用在對(duì)時(shí)間要求比較苛刻的場(chǎng)合;另一種做法是擴(kuò)展EEPROM(并行或串行)或類似存儲(chǔ)器,多用在對(duì)時(shí)間要求不太荷刻的場(chǎng)合。這兩種方法可達(dá)到掉電后數(shù)據(jù)不丟失的目的。

P89C51RD2具有64KB的片上閃存,這對(duì)于一般的應(yīng)用來說足夠大,往往會(huì)有剩余的閃存空間。在通常狀況下,MCU的編程只能通過商用編程器來進(jìn)行,那么剩余的閃存空間只能作為程序升級(jí)的備用空間,而不能作為數(shù)據(jù)空間;另一方面,如果需要保存數(shù)據(jù),還要另外擴(kuò)展存儲(chǔ)器,這樣不但增加了電路板的面積,而且增加了調(diào)試難度。

而P89C51RD2是一種具有IAP功能的單片機(jī),其內(nèi)存結(jié)構(gòu)具有如下特點(diǎn)(見圖1):

①閃存空間是分塊的。64KB的內(nèi)存空間共分5塊,由低到高分別為8KB(BLOCK0)、8KB(BLOCK1)、16KB(BLOCK2)、16KB(BLOCK3)、16KB(BLOCK4);

②每一塊都可以單獨(dú)擦除;

③在程序中可以調(diào)用IAP功能,對(duì)閃存中的每一字節(jié)進(jìn)行單獨(dú)編程。

正是由于上述3個(gè)特點(diǎn),在一些對(duì)時(shí)間要求不是很荷刻的場(chǎng)合,都可以將剩余的閃存空間作為數(shù)據(jù)空間來使用。例如,作者在海洋氣象監(jiān)測(cè)儀器的研制中,有些關(guān)鍵數(shù)據(jù)需要存儲(chǔ),如整點(diǎn)的風(fēng)速、風(fēng)向、溫度、濕度、氣壓和降水量的瞬時(shí)值和十分鐘平均值,以及最值、極值、大風(fēng)段等。而數(shù)據(jù)的采集要求3s采集1次,采集處理時(shí)間大約需要0.5s,則剩余的時(shí)間內(nèi)就可以利用IAP功能來存儲(chǔ)數(shù)據(jù)。這些存儲(chǔ)的數(shù)據(jù)可以通過串口被上位機(jī)調(diào)用。

    由于整個(gè)軟件經(jīng)匯編后大約20KB,因此,將地址為0000H~7FFFH的32KB內(nèi)存空間作為程序空間,則可以儀器的升級(jí)預(yù)留足夠的空間;而將8000H~0FFFFH的32KB閃存空間留作數(shù)據(jù)存儲(chǔ)空間。由圖1可以看出,從8000H~0FFFFH的32KB閃存空間由BLOCK3和BLOCK4兩塊組成,每一塊為16KB,足可以存儲(chǔ)10天的數(shù)據(jù)量。在實(shí)際操作中,將BLOCK3和BLOCK4輪流使用,當(dāng)10天的數(shù)據(jù)量存滿其中一塊時(shí),通過程序跳轉(zhuǎn)到另一塊中,在使用前先將該塊擦除。這樣BLOCK3和BLOCK4每過20天便分別被擦除和重寫1次。對(duì)有關(guān)地址定義如下:

ADDR_L EQU 30H ;被編程數(shù)據(jù)的低8位地址

ADDR_L EQU 31H ;被編程數(shù)據(jù)的高8位地址

DATA_TEMP EQU 32H ;被編程數(shù)據(jù)

ADDR_L,ADDR_H和DATA_TEMP的具體地址可以根據(jù)用戶程序的實(shí)際情況進(jìn)行定義;AUXR1,PGM_MTP的定義同前。有關(guān)子程序?yàn)椋?/P>

擦除BL0CK3

ERSBLOCK3: ;BLOCK3擦除

MOV AUXR1,#20H ;AUXR1的位ENBOOT=1,尋址到固件

MOV R0,#11 ;晶振為11.0592MHz,取11

MOV R1,#01H ;R1=01H,塊擦除

MOV DPTR,#8000H ;擦除BLOCK3

LCALL PGM_MTP ;調(diào)用,無返回參數(shù)

RET

擦除BL0CK4

EPSBLOCK4: ;BLOCK4擦除

MOV AUXR1,#20 ;AUXR1的位ENBOOT=1,尋址到固件

MOV R0,#11 ;晶振為11.0592MHz,取11

MOV R1,#01H ;RI=01H,塊擦除

MOV DPTR,#0C000H ;擦除BLOCK4

LCALL PGM_MTP ;調(diào)用,無返回參數(shù)

RET

字節(jié)編程

WRDATA:

MOV AUXR1,#20H ;AUXR1的位ENBOOT=1,尋址到固件

MOV R0,#11 ;晶振為11.0592MHz,取11

MOV R1,#02H ;R1=02H,字節(jié)編程功能

MOV DPH,ADDR_H ;高8位地址

MOV DPL,ADDR_L ;低8位地址

MOV A,DATA_TEMP ;被編程數(shù)據(jù)

LCALL PGM_MTP ;調(diào)用,返回參數(shù)ACC=0,調(diào)用成功,非0調(diào)用失敗

RET

讀閃存字節(jié)內(nèi)容

RDDATA:

MOV AUXR1,#20H ;AUXR1的位ENBOOT=1,尋址到固件

MOV R0,#11 ;晶振為11.0592MHz,取11

MOV R1,#03H ;R1=03H,讀閃存字節(jié)內(nèi)容

MOV DPL,ADDR_L ;低8位地址

MOV DPH,ADDR_H ;高8位地址

LCALL PGM_TEMP ;調(diào)用,返回參數(shù)ACC中為讀出字節(jié)內(nèi)容

RET

將上述4個(gè)子程序結(jié)合實(shí)際情況靈活運(yùn)用,便可以實(shí)現(xiàn)數(shù)據(jù)的有效存儲(chǔ),而且這些數(shù)據(jù)在掉電后是不丟失的,完全達(dá)到系統(tǒng)要求。

4.2 IAP功能應(yīng)用于儀器升級(jí)

利用P89C51RD2固有的ISP功能,在所設(shè)計(jì)的儀器中增加1個(gè)撥碼開關(guān),便可以實(shí)現(xiàn)智能儀器的軟件升級(jí)。對(duì)操作人員的要不高,原理簡(jiǎn)單易行。具體方法請(qǐng)見參考文獻(xiàn)4。

文獻(xiàn)4所討論的ISP功能與遠(yuǎn)程升級(jí),實(shí)質(zhì)上是在復(fù)位過程中,用相應(yīng)的硬件控制使程序指針跳轉(zhuǎn)到Boot ROM空間的0FC00H處。整個(gè)過程由ISP程序模塊來控制,而用戶程序由于是被升級(jí)程序,故完全失去了控制權(quán),編程完畢,需要人工復(fù)位并使指針切換到用戶程序空間中方可使新程序起作用。這給智能儀器升級(jí)帶來了麻煩,如果巧妙地利用P89C51RD2的IAP功能,則可以使儀器升級(jí)變得更加簡(jiǎn)單。

前面已經(jīng)指出,ISP和IAP是一脈相承的,ISP功能的實(shí)現(xiàn)調(diào)用了IAP功能的子程序。所以完全可以利用IAP功能來設(shè)計(jì)自己的ISP程序,這樣,就可以不必在閃存空間和Boot ROM空間之間跳來跳去。

由于用戶程序一般不會(huì)超過48KB,故可將BLOCK4留出,作為用戶自編ISP功能區(qū)空間。在下面的自編ISP程序中,如果上位機(jī)誤傳來擦除BLOCK4的指令,將被認(rèn)為是錯(cuò)誤指令而不予執(zhí)行,這樣就可以保證該部分程序不會(huì)被擦除。

整個(gè)ISP功能程序的編制可以參照參考文獻(xiàn)3分析的Boot ROM中ISP功能的有關(guān)程序。不過,可以將波特率自動(dòng)跟蹤去掉,使用固定波特率,并且將整個(gè)協(xié)議進(jìn)行簡(jiǎn)化,將所有功能規(guī)劃為擦除、編程、讀出、校驗(yàn)4大模塊,而且這些模塊的執(zhí)行直接使用Philips公司的有關(guān)協(xié)議,這樣Boot ROM中的有關(guān)程序就可以作為用戶編程的參考。

規(guī)定ISP功能的啟動(dòng)命令為“[ISP START]”。當(dāng)下位機(jī)收到上位機(jī)傳輸?shù)脑摋l指令時(shí),便跳轉(zhuǎn)到用戶自編的ISP程序中,此時(shí)上下位機(jī)通過用戶的協(xié)議就可完成用戶空間程序的擦除、查空、編程、校驗(yàn)等功能,直到上位機(jī)傳來“[ISP END]”指令為止。這就表示所有的程序已經(jīng)傳輸完畢并校驗(yàn)成功。此時(shí)跳出ISP,使指針指向0000H單元,則系統(tǒng)根據(jù)升級(jí)正常運(yùn)行。有關(guān)流程如圖2所示。

自編ISP程序具有以下特點(diǎn):

*自編ISP程序與上位機(jī)的協(xié)議參考Philips公司的有關(guān)協(xié)議并予以簡(jiǎn)化,啟動(dòng)和結(jié)合命令由自己定義,開發(fā)比較容易;

*自編ISP程序不必在復(fù)位時(shí)開始執(zhí)行,升級(jí)完成后,可以將程序指針轉(zhuǎn)向新程序,不必重新啟動(dòng)系統(tǒng);

*可以使用固定的波特率,并且T1和T2都可以作為波特率發(fā)生器;

*觸發(fā)條件規(guī)定為一條普通的串口指令,當(dāng)下位機(jī)接收到該條指令后,即跳轉(zhuǎn)到自編的ISP程序空間中。

使用這種方法也存在一定的缺點(diǎn),由于自編ISP程序相當(dāng)于一塊固化程序,不能輕易擦除,因此,這種方法一般不能對(duì)整片進(jìn)行升級(jí)。但考慮到P89C51RD2具有64KB的Flash ROM,用戶程序空間很少能使用到BLOCK4,所以該方案在一般情況下是切實(shí)可行的。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

上海2025年8月26日 /美通社/ -- 在全球數(shù)字經(jīng)濟(jì)加速演進(jìn)的時(shí)代浪潮中,海量數(shù)據(jù)資源正成為企業(yè)發(fā)展的雙刃劍。超66%的企業(yè)面臨"數(shù)據(jù)沉睡"危機(jī)——分散于供應(yīng)鏈、財(cái)務(wù)、客戶運(yùn)營等數(shù)十個(gè)系統(tǒng)的業(yè)務(wù)...

關(guān)鍵字: AI 模型 軟件 數(shù)據(jù)分析

在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設(shè)計(jì)與硬件實(shí)現(xiàn)的關(guān)鍵環(huán)節(jié)。當(dāng)前主流的單片機(jī)燒錄技術(shù)已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應(yīng)用編程)三大技術(shù)體系,分別對(duì)應(yīng)開發(fā)調(diào)試、量產(chǎn)燒錄、遠(yuǎn)程升級(jí)等不同場(chǎng)景。...

關(guān)鍵字: 單片機(jī) ISP ICP IAP 嵌入式系統(tǒng)開發(fā)

加快開發(fā)進(jìn)程;提升質(zhì)量、安全性、性能與成本效益 利用耐世特在底盤領(lǐng)域的專業(yè)知識(shí)和線控技術(shù)產(chǎn)品組合 美國密西根州奧本山2025年8月11日 /美通社/ --?耐...

關(guān)鍵字: MOTION 軟件 運(yùn)動(dòng)控制 NI

從自然汲取,向未來創(chuàng)造 上海2025年8月8日 /美通社/ -- 2025 世界機(jī)器人大會(huì)將于8月8-12日在北京亦創(chuàng)國際會(huì)展中心拉開帷幕,F(xiàn)esto(A112展位­)將以"從自然汲取,向未來創(chuàng)造&q...

關(guān)鍵字: FESTO 機(jī)器人 BSP 軟件

引言:穿越變革浪潮,迎接智能金融時(shí)代 上海2025年7月28日 /美通社/ -- 在全球科技變革的浪潮中,生成式AI正加速驅(qū)動(dòng)各行業(yè)變革,金融行業(yè)尤為顯著。在強(qiáng)監(jiān)管與用戶需求升級(jí)的雙重壓力,行業(yè)亟需重構(gòu)服務(wù)模...

關(guān)鍵字: 軟件 生成式AI 模型 數(shù)字化

寧波2025年7月28日 /美通社/ -- 日前,在第四屆寧波市專利創(chuàng)新大賽的聚光燈下,中之杰智能的創(chuàng)新技術(shù)"一種基于電子周轉(zhuǎn)箱的生產(chǎn)管理方法及系統(tǒng)"強(qiáng)勢(shì)斬獲專利優(yōu)秀獎(jiǎng)。這枚沉甸甸的獎(jiǎng)?wù)卤澈?..

關(guān)鍵字: 軟件 電子 智能工廠 BSP

杭州2025年7月28日 /美通社/ -- 近日,大華股份與北京北大軟件工程股份有限公司(以下簡(jiǎn)稱"北大軟件")簽署戰(zhàn)略合作協(xié)議。雙方將重點(diǎn)圍繞長江禁漁等領(lǐng)域,發(fā)揮各自在產(chǎn)品、技術(shù)、平臺(tái)等方面的經(jīng)驗(yàn)和...

關(guān)鍵字: 軟件 數(shù)字化

成都 2025年7月16日 /美通社/ -- 由立嘉會(huì)議展覽有限公司主辦的"2025第四屆成渝地區(qū)裝備制造業(yè)博覽會(huì)"將于9月11日至13日在成都世紀(jì)城新國際會(huì)展中心盛大舉辦。本屆博覽會(huì)以&...

關(guān)鍵字: BSP 軟件 供應(yīng)鏈 智能制造

上海 2025年7月14日 /美通社/ -- 近日,微創(chuàng)軟件與全球領(lǐng)先的工業(yè)級(jí)綠色智能系統(tǒng)解決方案提供商——上海電氣集團(tuán)股份有限公司旗下直屬子公司上海電氣數(shù)字科技有限公司,以下簡(jiǎn)稱"電氣數(shù)科"宣布深...

關(guān)鍵字: 電氣 軟件 數(shù)字化 BSP

全新的集成解決方案確保企業(yè)以安全、負(fù)責(zé)任的方式應(yīng)用 AI智能體及其他生成式AI技術(shù)。 借助以上工具,企業(yè)可以對(duì)智能體執(zhí)行"紅隊(duì)測(cè)試"和審計(jì),并檢測(cè)"影子智能體"...

關(guān)鍵字: IBM 軟件 智能體 AI
關(guān)閉
關(guān)閉