📄 bdm.mas
字号:
;----------------------------------------------------------------------------;
; BDM.MAS Comandos BDM 68HC9S08 ;
; ======= ;
;----------------------------------------------------------------------------;
; Programado por Ing.Gabriel Dubatti (c)2005-2006 ;
; info@ingdubatti.com.ar ;
; www.ingdubatti.com.ar ;
;----------------------------------------------------------------------------;
;===========================================================
; DoCmdVersion:
; Retorna la version del soft del POD
; Actual: 02
;===========================================================
DoCmdVersion:
lda #$02 ;
bra TXHexByte ;envia la version y sale
;===========================================================
; DoCmdReset:
; Comando RESET MICRO: baja el reset durante 10 mseg
;===========================================================
DoCmdReset:
bset PA_B_RESET,PORTA ;RESET ON
ldx #!23 ;pausa total= 23*1795= 41205 = 10.3mseg
clra ;
do{ ;
do{ ;
sta COPCTL ;reset COP
}while( --a != 0 ) ;
}while( --x != 0 ) ;
bclr PA_B_RESET,PORTA ;RESET OFF
; |
; |
; \|/
;===========================================================
; DoCmdOK:
; NO HACE NADA, solo recorna el eco
;===========================================================
DoCmdOK:
rts ;
;===========================================================
; DoCmdQuickSYNC:
; Resincroniza la conexion BDM
; (env韆 pulso de SYNC y determina el clock del BDM)
; Metodo SOFT => NO resetea al procesador, delay MINIMO
; UTILIZA velocidad medida con DoCmdHardSYNC o DoCmdSoftSYNC
;===========================================================
DoCmdQuickSYNC:
bclr PA_B_BKD,PORTA ;fuerza BKGD pin = 1
clra ;verifica que realmente este en "1"
do{ ;
if( --a == 0 ){ ;
bra errdbglow ;envia ERROR BKGD LOW: "_" y sale
} ;
}while( IRQPIN == 0 ) ;BKGD esta en 0?
;Genera pulso de 128 ciclos BDM segun "syncwidth"
bset PA_B_BKD,PORTA ;BAJA BKGD pin
nsa ;
nsa ;
nsa ;
nsa ;
nsa ;
nsa ;
if( IRQPIN == 1 ){ ;verifica que baje el pin
bra errdbghigh ;no bajo => "e" (pin trabado a "1")
} ;
ldx syncwidth ;delay del SYNC en unidades de 4 ciclos
incx ;compenza restar antes de contar
lda {syncwidth+1} ;
inca ;compenza restar antes de contar
do{ ;
do{ ;
nop ;
}while( --a != 0 ) ;
deca ;compensa demora de 4 ciclos del loop
}while( --x != 0 ) ;
bra contSYNC ;continua con el SYNC
;===========================================================
; DoCmdHardSYNC:
; Resincroniza la conexion BDM
; (env韆 pulso de SYNC y determina el clock del BDM)
; Metodo HARD => RESETEA el procesador y lo arranca en modo
; DEBUG
;
; En la version "02C" se agreg
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -