mirror of
https://github.com/MikronMIK32/mik32-uploader.git
synced 2026-01-01 13:37:03 +03:00
Добавлена поддержка CH347
- Добавлена смена значения reset_config на trst_only при использовании CH347; - Добавлено переопределение функции сброса init_reset при использовании CH347. При использовании CH347 сброс ядра и периферии осуществляется с помощью встроенного блока TCB; - Добавлена возможность сброса ядра и периферии через блок TCB с помощью функции reset_with_tcb; - Удалена неиспользуемая функция my_init_proc.
This commit is contained in:
parent
0f156e9dad
commit
b927246cbb
@ -1,10 +1,56 @@
|
|||||||
|
set adapterName [adapter name]
|
||||||
|
|
||||||
proc my_init_proc { } { echo "Disabling watchdog..." }
|
proc shift_dr_tcb {value} {
|
||||||
|
set revers_instr 0
|
||||||
|
for { set i 0} {$i < 37} {incr i} {
|
||||||
|
set bit [expr "($value>>(36-$i)) & 1"]
|
||||||
|
set revers_instr [expr "$revers_instr + ($bit<<$i)"]
|
||||||
|
}
|
||||||
|
|
||||||
|
irscan riscv.sys 5
|
||||||
|
set instruction_31_0 [expr "$revers_instr & 0xFFFFFFFF"]
|
||||||
|
set instruction_36_32 [expr "($revers_instr >> 32) & 0xFFFFFFFF"]
|
||||||
|
set dr [drscan riscv.sys 32 $instruction_31_0 5 $instruction_36_32]
|
||||||
|
return $dr
|
||||||
|
}
|
||||||
|
|
||||||
|
proc reset_with_tcb { } {
|
||||||
|
puts "System reset using TCB"
|
||||||
|
# Сброс ОЗУ, контроллера EEPROM, контроллера SPIFI, сброс домена периферийных устройств,
|
||||||
|
# сброс контроллера DMA, сброс процессора cpu_rst_n, сброс процессора rst_n.
|
||||||
|
# При этом не будут сброшены блоки:
|
||||||
|
# - EPIC;
|
||||||
|
# - OTP_CONTROLLER;
|
||||||
|
# - PAD_CONTROL;
|
||||||
|
# - POWER_MANAGER;
|
||||||
|
# - PVD_CONTROL_REG;
|
||||||
|
# - TIMER32_0;
|
||||||
|
# - WDT_BUS.
|
||||||
|
set instruction [expr "(7 << 32) + (1 << 6) + (1 << 7) + (1 << 9) + (1 << 10) + (1 << 11)"]
|
||||||
|
shift_dr_tcb $instruction
|
||||||
|
shift_dr_tcb $instruction
|
||||||
|
}
|
||||||
|
|
||||||
|
if {$adapterName == "ch347"} {
|
||||||
|
proc init_reset {mode} {
|
||||||
|
global adapterName
|
||||||
|
|
||||||
|
puts "Adapter: $adapterName"
|
||||||
|
puts "Using reset without srst"
|
||||||
|
|
||||||
|
adapter assert trst
|
||||||
|
#sleep 1
|
||||||
|
adapter deassert trst
|
||||||
|
runtest 50
|
||||||
|
jtag arp_init
|
||||||
|
|
||||||
|
reset_with_tcb
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
proc init_targets {} {
|
proc init_targets {} {
|
||||||
|
global adapterName
|
||||||
reset_config trst_and_srst
|
if {$adapterName == "ch347"} {reset_config trst_only} else {reset_config trst_and_srst}
|
||||||
|
|
||||||
set _CHIPNAME riscv
|
set _CHIPNAME riscv
|
||||||
set _CPUTAPID 0xdeb11001
|
set _CPUTAPID 0xdeb11001
|
||||||
@ -16,13 +62,10 @@ proc init_targets {} {
|
|||||||
set _TARGETNAME $_CHIPNAME.cpu
|
set _TARGETNAME $_CHIPNAME.cpu
|
||||||
|
|
||||||
target create $_TARGETNAME riscv -endian little -chain-position $_TARGETNAME -coreid 0
|
target create $_TARGETNAME riscv -endian little -chain-position $_TARGETNAME -coreid 0
|
||||||
|
|
||||||
riscv.cpu configure -event reset-init my_init_proc
|
|
||||||
}
|
}
|
||||||
|
|
||||||
poll_period 200
|
poll_period 200
|
||||||
|
|
||||||
init
|
init
|
||||||
riscv.cpu arm semihosting enable
|
riscv.cpu arm semihosting enable
|
||||||
puts "init done"
|
puts "init done"
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user