《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > P89C51RD2隱藏功能分析
P89C51RD2隱藏功能分析
摘要: 提出了一種讀取P89C51RD2隱藏分區的方法, 并給出了1K Boot ROM 區以外分區的部分程序。通過分析這些程序, 找到了P89C51RD2隱藏的特殊功能寄存器, 并基于這些程序分析了其flash的底層操作。
Abstract:
Key words :

  1  引  言

  P89C51RD2是PH ILIPS 公司的8位單片機產品。在保證80C51指令系統和硬件結構的大體框架的同時, 擴充了許多功能, 包括看門狗、ISP功能和F lash操作。值得一提的是, PH ILIPS的技術并非完全公開, 這就給單片機的使用帶來了一定的困難。

  比如說, 它的Boot ROM 區本來是4K 字節, 但在手冊中只提及了1K 字節, 其他部分程序隱藏調用, 這就給程序設計帶來了很大的麻煩。同時, 除了手冊中提及的高位地址特殊寄存器區, P89C51RD2 還設計了一些特殊功能寄存器, 對這些寄存器的意外訪問也有可能造成芯片的異常。因此, 有必要對這些功能區進行分析, 以找出其所有單片機資源。

  2  Boo tROM 固件代碼的讀出

  對于1K ( 地址FC00H ~ FFFFH ) Boot ROM 的flash代碼讀取方法, 參考文獻已經有提及, 這里只是在此基礎上進行進一步分析。下面來看PGM _MTP入口地址的部分代碼。

  PUSH 0E4H ; 保存E4H值

  ORL 0E 4H, # 80H ; 置位E4H 最高位

  PUSH PSW

  ACALL 0F9ADH ; 調用看門狗服務程序

  C JNE R1, # 00H, 0FF4FH

  ACALL 0F9D9H ; 讀生產批號子程序

  通過這部分程序可以看出, Boo tROM 區調用了0F9ADH 地址中的子程序, 而從手冊上, 只寫出有FC00H ~ FFFFH 地址。所以, 這是一個需要特殊訪問的flash區。同時, 程序還控制了E4H, 這個特殊功能寄存器也是手冊里面沒有提及的。鑒于P89C51RD2有專門的控制位來控制1K flash, 假設還有一個控制位, 位于E4H 的最高位, 也是通過置位方式, 能夠得到flash切換的效果, 只要程序中首先置位了E 4H, 就可以通過movc 指令得到隱藏區的程序。實踐證明這個假設是對的, 從F000H ~FFFFH 都讀出了數據, 其中F000H ~ F7FFH 地址中全為0。而F800H ~ FBFFH中存在1K 可執行程序,并且這些程序就是PGM _MTP調用的隱藏子程序。

  通過反匯編這一區間程序, 可以找到全部flash底層操作的程序。所以實際的P89C51RD2的f lash 空間分布應該如圖1所示。

  手冊里面1K 字節的Boo t ROM 區, 實際上是由一個4K 的flash塊構成的, 其中2K 字節的flash最終被填寫進00H, 另外2K 用于實現Boot ROM 的實際操作。所以, 用戶也可以將這2K 的地址空間, 作為用戶的使用空間, 存放一些需要保留的重要數據。

  3  部分子程序分析

  P89C51RD2多余的1K 程序空間寫滿了程序。

  這些程序都是由FFF0的子程序調用的。通過反匯編這一段子程序, 能夠知道單片機的底層操作細節。

  由于篇幅所限, 這里面僅列出flash寫操作的部分程序, 有興趣的讀者可以依照上面的方法反匯編所有程序進行分析。以下是編程數據字節子程序的反匯編結果。

  ; 編程數據字節一級子程序

  F9C9: 75 E4 91MOV 0E4H, # 91H ; E4H 未公開

  F9CC: 31 D1 ACALL 0F9D1H ;

  F9CE: 65 E5 XRL A, 0E5H ; 返回E5H 參數

  F9D0: 22 RET

  ; 編程數據字節二級子程序

  F9D1: F5 E5MOV 0E5H, A

  F9D3: 31 25 ACALL 0F925H ; 多入口子程序,連續寫和讀E6H, flash操作

  F9D5: 75 E4 80MOV 0E4H, # 80H

  F9D8: 22 RET

  ; 編程數據字節三級子程序

  F925: C0 F0 PUSH B

  F927: C0 E0 PUSH ACC

  F929: 31 83 ACALL 0F983H ; flash1

  F92B: 75 F0 05MOV B, # 05H

  F92E: 31 A3 ACALL 0F9A3H ; 看門狗子程序

  F930: E5 E6MOV A, 0E6H

  F932: 54 08 ANL A, # 08H

  F934: 60 03 JZ 0F939H

  F936: D5 F0 F5 DJNZ B, 0F92EH

  F939: 31 93 ACALL 0F993H ; flash2

  F93B: 31 9B ACALL 0F99BH ; flash3

  F93D: D0 E0 POP ACC

  F93F: D0 F0 POP B

  F941: 22 RET

  ; flash底層操作1

  F983: 75 E6 C0MOV 0E6H, # 0C0H

  F986: 00 NOP

  F987: 75 E6 D0MOV 0E6H, # 0D0H

  F98A: 00 NOP

  F98B: 00 NOP; 這里面較多的NOP 起延遲作用

  F992: 22 RET

  ; flash底層操作2

  F993: 75 E6 C0MOV 0E6H, # 0C0H

  F996: 00 NOP

  F997: 75 E6 E 0MOV 0E6H, # 0E0H

  F99A: 22 RET

  ; flash底層操作3

  F99B: 75 E6 C0MOV 0E6H, # 0C0H

  F99E: 00 NOP

  F99F: 75 E6 00MOV 0E 6H, # 00H

  F9A2: 22 RET

  上面的flash 區寫字節子程序, 動用了E4H、E5H 和E6H 三個隱藏的特殊功能寄存器, 其中E4寄存器帶入狀態, E5寄存器返回結果, E 6寄存器用于發布實際的寫操作命令。這就要求在程序設計中, 一定注意不能隨便對上述地址做操作, 否則可能會意外改寫程序區。同時, 從程序中也可以看到, 每一個具體的子程序操作, 到底使用了多大的堆棧空間。在程序設計中, 遇到調用寫f lash 子程序時, 有了對堆棧使用情況的了解, 可以防止堆棧的溢出, 對堆棧的設計考慮起輔助作用。

  4  結論與展望

  通過對P89C51RD2的分析可以看出, 在單片機功能增加方面, 采用的設計方法就是擴展高位地址特殊功能寄存器, 而這種方法幾乎應用在所有80C51架構和指令集的擴展型單片機中。由于能夠讀出P89C51RD2的所有程序, 實際應用中可以將Boot ROM 區轉移到其他地址, 或者為用戶擴展2K的隱藏空間。從分析中還可以發現, flash 區的隱藏, 是通過特殊寄存器的控制位切換來實現的。因此, 這一讀出Boot ROM 區的方法, 也可以應用于分析其他型號單片機的flash區。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲一区www| 久久精品夜色噜噜亚洲a∨ | 99精品热视频| 亚洲激情国产| 亚洲国产精品ⅴa在线观看| 黄色亚洲在线| 激情国产一区二区| 国产一区二区三区网站| 国产一区导航| 国产一区二区在线观看免费播放| 国产日产高清欧美一区二区三区| 国产精品综合视频| 国产精品一区二区在线| 国产乱子伦一区二区三区国色天香| 国产精品久久一区二区三区| 国产嫩草影院久久久久| 国产欧美日韩在线| 国产亚洲一区二区精品| 国产亚洲一区二区三区在线观看| 国产午夜精品一区二区三区视频| 国产日韩欧美制服另类| 国产一区二区三区在线观看精品| 国产一区二区三区四区老人| 国产一区二区三区四区老人| 一区在线电影| 亚洲精品一二区| 亚洲色在线视频| 欧美一级久久| 亚洲高清影视| 亚洲美女在线看| 亚洲香蕉成视频在线观看| 午夜精品在线| 久久亚洲国产精品一区二区| 欧美丰满高潮xxxx喷水动漫| 欧美日韩在线综合| 国产日韩视频| 在线国产精品一区| 日韩午夜av在线| 亚洲欧美日韩国产综合精品二区| 久久国产精品一区二区| 亚洲免费精品| 欧美一区二区三区视频在线| 久久日韩粉嫩一区二区三区| 欧美h视频在线| 国产精品国产三级国产普通话99| 国产区在线观看成人精品| 激情五月综合色婷婷一区二区| 亚洲破处大片| 午夜久久资源| 99国产精品视频免费观看| 欧美一区二区三区精品电影| 久久综合电影| 欧美午夜精品久久久久久超碰| 国产视频欧美视频| 亚洲人被黑人高潮完整版| 亚洲免费一区二区| 亚洲品质自拍| 午夜在线不卡| 欧美成人精品高清在线播放| 国产精品色一区二区三区| 亚洲国产精品一区二区三区| 亚洲综合色激情五月| 亚洲裸体俱乐部裸体舞表演av| 午夜欧美精品| 欧美日韩成人激情| 好吊视频一区二区三区四区| 亚洲视频视频在线| 亚洲日本成人| 久久成人免费日本黄色| 欧美精品久久久久久| 国产亚洲福利| 一区二区三区三区在线| 91久久精品国产91久久性色tv| 亚洲你懂的在线视频| 欧美 日韩 国产精品免费观看| 国产乱子伦一区二区三区国色天香| 亚洲精品一区二区三区在线观看 | 香蕉久久夜色精品国产| 欧美精品网站| 精品电影一区| 欧美一区二区成人| 亚洲综合第一| 欧美日韩精品免费在线观看视频| 在线观看不卡| 欧美一区二区大片| 亚洲字幕一区二区| 欧美日本亚洲| 亚洲国产另类久久精品| 欧美专区在线| 欧美一区二区视频观看视频| 国产精品mv在线观看| 亚洲另类在线视频| 亚洲精品久久久久久下一站| 久久久亚洲欧洲日产国码αv| 国产精品实拍| 亚洲丝袜av一区| 中国av一区| 欧美日韩国产区一| 亚洲国产精品久久久久秋霞影院 | 国产精品成人免费| 亚洲精品欧美日韩| 亚洲精品视频免费| 牛牛精品成人免费视频| 激情综合色丁香一区二区| 欧美一级在线播放| 香蕉久久国产| 国产精品视频久久| 亚洲视频在线看| 亚洲午夜激情| 欧美日韩综合一区| 日韩亚洲综合在线| 亚洲婷婷在线| 国产精品sss| 亚洲性视频网站| 午夜国产精品影院在线观看| 国产精品久久网站| 亚洲在线1234| 欧美一区二区三区啪啪| 国产美女精品一区二区三区| 亚洲欧美在线一区二区| 欧美专区在线观看| 国产一区在线播放| 亚洲电影第1页| 久久中文欧美| 亚洲福利视频一区二区| 亚洲看片网站| 欧美日韩午夜剧场| 亚洲深夜福利| 欧美一区二区观看视频| 国产精品日韩一区二区| 午夜精品久久久久久久男人的天堂| 欧美在线精品一区| 国产一区二区三区四区五区美女| 久久精品国产亚洲精品| 蜜桃av一区二区在线观看| 亚洲缚视频在线观看| 日韩西西人体444www| 欧美日韩精品久久| 亚洲视频在线免费观看| 欧美诱惑福利视频| 影音先锋久久精品| 一本到高清视频免费精品| 国产精品第一区| 欧美一区二区精品久久911| 六十路精品视频| 亚洲精品中文字幕有码专区| 亚洲欧美日韩国产中文| 国产揄拍国内精品对白| 亚洲精品欧美专区| 欧美视频不卡中文| 午夜天堂精品久久久久| 免费观看日韩av| 亚洲深夜av| 蜜桃精品一区二区三区| 99成人在线| 久久精品夜色噜噜亚洲a∨| 亚洲福利视频三区| 亚洲一区二区三区中文字幕在线| 国产日韩欧美一区在线| 日韩视频免费观看高清在线视频 | 欧美在线综合视频| 欧美va亚洲va国产综合| 99精品99久久久久久宅男| 欧美一区二区视频在线观看| 伊人狠狠色丁香综合尤物| 一本久久a久久免费精品不卡| 国产精品一二一区| 亚洲黑丝一区二区| 国产精品久久久久久超碰 | 日韩午夜一区| 国产日韩欧美精品综合| 亚洲精品美女免费| 国产精品网站在线播放| 亚洲人成人99网站| 国产精品综合不卡av| 亚洲精品美女在线观看播放| 国产欧美日韩视频一区二区| 亚洲精品国产系列| 国产欧美日韩一级| 99精品视频免费观看| 国产综合视频| 亚洲无线视频| 亚洲国产精品一区在线观看不卡| 香蕉av福利精品导航| 亚洲精品久久久久久久久久久| 久久国产主播精品| 国产亚洲免费的视频看| 亚洲看片一区| 国产精品亚洲美女av网站| 亚洲欧洲精品一区二区精品久久久| 国产精品国产三级国产专播品爱网 | 欧美日本高清| 欧美一区二区三区视频免费播放| 欧美日韩精品一区二区在线播放| 久久av在线| 国产精品人成在线观看免费| 日韩视频在线观看免费| 国自产拍偷拍福利精品免费一| 亚洲一区二区三区高清| 亚洲国产婷婷香蕉久久久久久99 |