tcl: [1/3] prepare for jimtcl 0.81 'expr' syntax change
Jimtcl commit 1843b79a03dd ("expr: TIP 526, only support a single
arg") drops the support for multi-argument syntax for the TCL
command 'expr'.
In the TCL scripts distributed with OpenOCD there are 1700+ lines
that should be modified before switching to jimtcl 0.81.
Apply the script below on every script in tcl folder. It fixes
more than 92% of the lines
%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---
#!/usr/bin/perl -Wpi
my $re_sym = qr{[a-z_][a-z0-9_]*}i;
my $re_var = qr{(?:\$|\$::)$re_sym};
my $re_const = qr{0x[0-9a-f]+|[0-9]+|[0-9]*\.[0-9]*}i;
my $re_item = qr{(?:~\s*)?(?:$re_var|$re_const)};
my $re_op = qr{<<|>>|[+\-*/&|]};
my $re_expr = qr{(
(?:\(\s*(?:$re_item|(?-1))\s*\)|$re_item)
\s*$re_op\s*
(?:$re_item|(?-1)|\(\s*(?:$re_item|(?-1))\s*\))
)}x;
# [expr [dict get $regsC100 SYM] + HEXNUM]
s/\[expr (\[dict get $re_var $re_sym\s*\] \+ *$re_const)\]/\[expr \{$1\}\]/;
# [ expr (EXPR) ]
# [ expr EXPR ]
# note: $re_expr captures '$3'
s/\[(\s*expr\s*)\((\s*$re_expr\s*)\)(\s*)\]/\[$1\{$2\}$4\]/;
s/\[(\s*expr\s*)($re_expr)(\s*)\]/\[$1\{$2\}$4\]/;
%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---%<---
Change-Id: I0d6bddc6abf6dd29062f2b4e72b5a2b5080293b9
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/6159
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
This commit is contained in:
@@ -80,7 +80,7 @@ proc dm355evm_init {} {
|
||||
|
||||
# VTPIOCR impedance calibration
|
||||
set addr [dict get $dm355 sysbase]
|
||||
set addr [expr $addr + 0x70]
|
||||
set addr [expr {$addr + 0x70}]
|
||||
|
||||
# clear CLR, LOCK, PWRDN; wait a clock; set CLR
|
||||
mmw $addr 0 0x20c0
|
||||
@@ -108,24 +108,24 @@ proc dm355evm_init {} {
|
||||
set addr [dict get $dm355 ddr_emif]
|
||||
|
||||
# DDRPHYCR1
|
||||
mww [expr $addr + 0xe4] 0x50006404
|
||||
mww [expr {$addr + 0xe4}] 0x50006404
|
||||
|
||||
# PBBPR -- burst priority
|
||||
mww [expr $addr + 0x20] 0xfe
|
||||
mww [expr {$addr + 0x20}] 0xfe
|
||||
|
||||
# SDCR -- unlock boot config; init for DDR2, relock, unlock SDTIM*
|
||||
mmw [expr $addr + 0x08] 0x00800000 0
|
||||
mmw [expr $addr + 0x08] 0x0013c632 0x03870fff
|
||||
mmw [expr {$addr + 0x08}] 0x00800000 0
|
||||
mmw [expr {$addr + 0x08}] 0x0013c632 0x03870fff
|
||||
|
||||
# SDTIMR0, SDTIMR1
|
||||
mww [expr $addr + 0x10] 0x2a923249
|
||||
mww [expr $addr + 0x14] 0x4c17c763
|
||||
mww [expr {$addr + 0x10}] 0x2a923249
|
||||
mww [expr {$addr + 0x14}] 0x4c17c763
|
||||
|
||||
# SDCR -- relock SDTIM*
|
||||
mmw [expr $addr + 0x08] 0 0x00008000
|
||||
mmw [expr {$addr + 0x08}] 0 0x00008000
|
||||
|
||||
# SDRCR -- refresh rate (171 MHz * 7.8usec)
|
||||
mww [expr $addr + 0x0c] 1336
|
||||
mww [expr {$addr + 0x0c}] 1336
|
||||
|
||||
########################
|
||||
# ASYNC EMIF
|
||||
@@ -138,13 +138,13 @@ proc dm355evm_init {} {
|
||||
#set nand_timings 0x0400008c
|
||||
|
||||
# AWCCR
|
||||
mww [expr $addr + 0x04] 0xff
|
||||
mww [expr {$addr + 0x04}] 0xff
|
||||
# CS0 == socketed NAND (default MT29F16G08FAA, 2GByte)
|
||||
mww [expr $addr + 0x10] $nand_timings
|
||||
mww [expr {$addr + 0x10}] $nand_timings
|
||||
# CS1 == dm9000 Ethernet
|
||||
mww [expr $addr + 0x14] 0x00a00505
|
||||
mww [expr {$addr + 0x14}] 0x00a00505
|
||||
# NANDFCR -- only CS0 has NAND
|
||||
mww [expr $addr + 0x60] 0x01
|
||||
mww [expr {$addr + 0x60}] 0x01
|
||||
|
||||
# default: both chipselects to the NAND socket are used
|
||||
nand probe 0
|
||||
@@ -156,27 +156,27 @@ proc dm355evm_init {} {
|
||||
set addr [dict get $dm355 uart0]
|
||||
|
||||
# PWREMU_MGNT -- rx + tx in reset
|
||||
mww [expr $addr + 0x30] 0
|
||||
mww [expr {$addr + 0x30}] 0
|
||||
|
||||
# DLL, DLH -- 115200 baud
|
||||
mwb [expr $addr + 0x20] 0x0d
|
||||
mwb [expr $addr + 0x24] 0x00
|
||||
mwb [expr {$addr + 0x20}] 0x0d
|
||||
mwb [expr {$addr + 0x24}] 0x00
|
||||
|
||||
# FCR - clear and disable FIFOs
|
||||
mwb [expr $addr + 0x08] 0x07
|
||||
mwb [expr $addr + 0x08] 0x00
|
||||
mwb [expr {$addr + 0x08}] 0x07
|
||||
mwb [expr {$addr + 0x08}] 0x00
|
||||
|
||||
# IER - disable IRQs
|
||||
mwb [expr $addr + 0x04] 0x00
|
||||
mwb [expr {$addr + 0x04}] 0x00
|
||||
|
||||
# LCR - 8-N-1
|
||||
mwb [expr $addr + 0x0c] 0x03
|
||||
mwb [expr {$addr + 0x0c}] 0x03
|
||||
|
||||
# MCR - no flow control or loopback
|
||||
mwb [expr $addr + 0x10] 0x00
|
||||
mwb [expr {$addr + 0x10}] 0x00
|
||||
|
||||
# PWREMU_MGNT -- rx + tx normal, free running during JTAG halt
|
||||
mww [expr $addr + 0x30] 0xe001
|
||||
mww [expr {$addr + 0x30}] 0xe001
|
||||
|
||||
|
||||
########################
|
||||
|
||||
Reference in New Issue
Block a user