1 参考文章 https://blog.csdn.net/hellolru/article/details/84939856 和 Serial Bootloader for S12(X).pdf
2 修改启动程序。 Bootloader_S12X 里的汇编代码 StartS12X.s,找到对应人pin脚,如有pp0 改成 pt7
_BootStart:
; -----------------------------------------------------------------------------
;movb #$01, $025C ; enable pull up resistor on PP0 (or we can use external one)
movb #$80, $0244 ; enable pull up resistor on PT7 (or we can use external one)
nop ;wait a few cycles for stabilization of the signal
nop
nop
nop
nop
brclr $0241, $80, GoBoot ; if PT7 == 0 then start the bootloader
;brclr $0259, $01, GoBoot ; if PP0 == 0 then start the bootloader
; if PP0 == 1 then start the application
;movb #$00, $025C ; disable pull up resistor on pin PP0 - restore default state
movb #$00, $0244 ; disable pull up resistor on pin PT7 - restore default state
; -----------------------------------------------------------------------------
3 应用程序修改,修改IVBR, 注意中断向量,读S-record格式,弄懂地址和数据。
特别说明,中断一定要去掉中断号,不然中断向量的地址会出错。可通过转化过的S-Record (S2)来查看写入地址,也可读bootloader代码看写入地址的范围。
4 通过Xsheel ,传输,发送asiic 直接发送文件来更新程序。
5 工程应用中,启动条件和串口条件需要根据实际处理。
6 其他说明,原始工具里面有个SRecCvt,必须的非中文文件夹下执行。否则没有out文件生成。