mik32-uploader/openocd-scripts/target/mik32.cfg
niffin-lv b927246cbb Добавлена поддержка CH347
- Добавлена смена значения reset_config на trst_only при использовании CH347;
- Добавлено переопределение функции сброса init_reset при использовании CH347. При использовании CH347 сброс ядра и периферии осуществляется с помощью встроенного блока TCB;
- Добавлена возможность сброса ядра и периферии через блок TCB с помощью функции reset_with_tcb;
- Удалена неиспользуемая функция my_init_proc.
2025-03-05 17:16:51 +03:00

71 lines
1.9 KiB
INI
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

set adapterName [adapter name]
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 {} {
global adapterName
if {$adapterName == "ch347"} {reset_config trst_only} else {reset_config trst_and_srst}
set _CHIPNAME riscv
set _CPUTAPID 0xdeb11001
jtag newtap $_CHIPNAME cpu -irlen 5 -ircapture 0x1 -irmask 0x1f -expected-id $_CPUTAPID
jtag newtap $_CHIPNAME sys -irlen 4 -ircapture 0x05 -irmask 0x0F -enable
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME riscv -endian little -chain-position $_TARGETNAME -coreid 0
}
poll_period 200
init
riscv.cpu arm semihosting enable
puts "init done"