|
樓主 |
發表於 2014-4-15 12:51:38
|
顯示全部樓層
本帖最後由 ysc 於 2014-4-15 01:15 PM 編輯
可以自己寫程式來控制boot loader是否啟動,
呼叫 EN_BOOT即可將Boot loader功能打開,
呼叫DIS_BOOT則是關閉。
EN_BOOT:
CALLR EN_OPT
MOV OPTBL,#$55
CALLR WW_EOP
MOV NOPTBL,#$AA
CALLR WW_EOP
JRA DIS_OPT
;
DIS_BOOT:
CALLR EN_OPT
CLR OPTBL
CALLR WW_EOP
CLR NOPTBL
CALLR WW_EOP
JRA DIS_OPT
;
;-----------------------------------------------------------
EN_OPT:
BSET FLASH_CR2,#7 ;SET OPT BIT
BRES FLASH_NCR2,#7
EN_EEPROM:
MOV FLASH_DUKR,#$AE
MOV FLASH_DUKR,#$56
RET
;
DIS_OPT:
BRES FLASH_CR2,#7 ;CLEAR OPT BIT
BSET FLASH_NCR2,#7
DIS_EEPROM:
BRES FLASH_IAPSR,#3 ;CLEAR DUL
JRA DIS_F1
;-----------------------------------------------------------
WW_EOP:
BTJF FLASH_IAPSR,#2,WW_EOP ;CHK EOP
RET
;------------------------------------------------------------
STM8將option byte視同eeprom,這樣的寫入方式夠簡單吧?
Flash rom的寫入也差不多是這樣。
|
|