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 {} {
|
||||
|
||||
reset_config trst_and_srst
|
||||
global adapterName
|
||||
if {$adapterName == "ch347"} {reset_config trst_only} else {reset_config trst_and_srst}
|
||||
|
||||
set _CHIPNAME riscv
|
||||
set _CPUTAPID 0xdeb11001
|
||||
@ -16,13 +62,10 @@ proc init_targets {} {
|
||||
set _TARGETNAME $_CHIPNAME.cpu
|
||||
|
||||
target create $_TARGETNAME riscv -endian little -chain-position $_TARGETNAME -coreid 0
|
||||
|
||||
riscv.cpu configure -event reset-init my_init_proc
|
||||
}
|
||||
|
||||
poll_period 200
|
||||
|
||||
init
|
||||
riscv.cpu arm semihosting enable
|
||||
puts "init done"
|
||||
|
||||
puts "init done"
|
||||
Loading…
Reference in New Issue
Block a user