OpenCores
URL https://opencores.org/ocsvn/openmsp430/openmsp430/trunk

Subversion Repositories openmsp430

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openmsp430/trunk/tools/bin
    from Rev 169 to Rev 172
    Reverse comparison

Rev 169 → Rev 172

/openmsp430-gdbproxy.tcl
62,13 → 62,13
# #
###############################################################################
 
global CpuNr
 
global omsp_conf
global omsp_info
 
global omsp_nr
 
global mem_mapping
 
global gui_dbg_if
global gui_adapter
global clients
75,13 → 75,11
global server
global verbose
global shell
global breakSelect
 
# Initialize to default values
set CpuNr 0
set omsp_nr 1
set omsp_nr 1
set omsp_conf(interface) uart_generic
#set omsp_nr 4
#set omsp_conf(interface) i2c_usb-iss
set omsp_conf(device) [lindex [utils::uart_port_list] end]
set omsp_conf(baudrate) [lindex [GetAllowedSpeeds] 1]
set omsp_conf(0,cpuaddr) 50
89,11 → 87,21
set omsp_conf(2,cpuaddr) 52
set omsp_conf(3,cpuaddr) 53
 
set server(port) 2000
set server(0,port) 2000
set server(1,port) 2001
set server(2,port) 2002
set server(3,port) 2003
 
set shell 0
set verbose 0
set mem_mapping(0) 0
set mem_mapping(1) 0
set mem_mapping(2) 0
set mem_mapping(3) 0
 
set breakSelect 0
 
set shell 0
set verbose 0
 
###############################################################################
# #
# PARAMETER CHECK #
123,7 → 131,7
-adaptor {set omsp_conf(interface) [lindex $argv [expr $i+1]]; incr i}
-speed {set omsp_conf(baudrate) [lindex $argv [expr $i+1]]; incr i}
-i2c_addr {set omsp_conf(0,cpuaddr) [lindex $argv [expr $i+1]]; incr i}
-port {set server(port) [lindex $argv [expr $i+1]]; incr i}
-port {set server(0,port) [lindex $argv [expr $i+1]]; incr i}
-shell {set shell 1}
-verbose {set verbose 1}
-h {help; exit 0}
212,7 → 220,7
if {$shell} {
 
# Connect to device
if {![GetDevice $CpuNr]} {
if {![GetDevice 0]} {
puts "ERROR: Could not open $omsp_conf(device)
puts "INFO: Available serial ports are:"
foreach port [utils::uart_port_list] {
225,36 → 233,36
}
 
# Display info
if {$omsp_info($CpuNr,alias)==""} {
if {$omsp_info(0,alias)==""} {
puts "INFO: Sucessfully connected with the openMSP430 target."
} else {
puts "INFO: Sucessfully connected with the openMSP430 target ($omsp_info($CpuNr,alias))."
puts "INFO: Sucessfully connected with the openMSP430 target ($omsp_info(0,alias))."
}
set sizes [GetCPU_ID_SIZE $CpuNr]
if {$omsp_info($CpuNr,asic)} {
puts "INFO: CPU Version - $omsp_info($CpuNr,cpu_ver) / ASIC"
set sizes [GetCPU_ID_SIZE 0]
if {$omsp_info(0,asic)} {
puts "INFO: CPU Version - $omsp_info(0,cpu_ver) / ASIC"
} else {
puts "INFO: CPU Version - $omsp_info($CpuNr,cpu_ver) / FPGA"
puts "INFO: CPU Version - $omsp_info(0,cpu_ver) / FPGA"
}
puts "INFO: User Version - $omsp_info($CpuNr,user_ver)"
if {$omsp_info($CpuNr,cpu_ver)==1} {
puts "INFO: User Version - $omsp_info(0,user_ver)"
if {$omsp_info(0,cpu_ver)==1} {
puts "INFO: Hardware Multiplier - --"
} elseif {$omsp_info($CpuNr,mpy)} {
} elseif {$omsp_info(0,mpy)} {
puts "INFO: Hardware Multiplier - Yes"
} else {
puts "INFO: Hardware Multiplier - No"
}
puts "INFO: Program Memory Size - $omsp_info($CpuNr,pmem_size) B"
puts "INFO: Data Memory Size - $omsp_info($CpuNr,dmem_size) B"
puts "INFO: Peripheral Address Space - $omsp_info($CpuNr,per_size) B"
puts "INFO: $omsp_info($CpuNr,hw_break) Hardware Brea/Watch-point unit(s) detected"
puts "INFO: Program Memory Size - $omsp_info(0,pmem_size) B"
puts "INFO: Data Memory Size - $omsp_info(0,dmem_size) B"
puts "INFO: Peripheral Address Space - $omsp_info(0,per_size) B"
puts "INFO: $omsp_info(0,hw_break) Hardware Brea/Watch-point unit(s) detected"
puts ""
 
# Reset & Stop CPU
ExecutePOR_Halt $CpuNr
ExecutePOR_Halt 0
 
# Start server for GDB
if {![startServer]} {
if {![startServer 0]} {
exit 1
}
 
283,86 → 291,92
global omsp_nr
 
if {$sel=="UART"} {
eval .connect.cfg.if.config2.adapter.p2 list delete 0 end
eval .connect.cfg.if.config2.adapter.p2 list insert end [list "GENERIC"]
set gui_adapter "GENERIC"
set omsp_conf(interface) uart_generic
eval .connect.cfg.if.config2.adapter.p2 list delete 0 end
eval .connect.cfg.if.config2.adapter.p2 list insert end [list "GENERIC"]
set gui_adapter "GENERIC"
set omsp_conf(interface) uart_generic
 
} elseif {$sel=="I2C"} {
 
eval .connect.cfg.if.config2.adapter.p2 list delete 0 end
eval .connect.cfg.if.config2.adapter.p2 list insert end [list "USB-ISS"]
set gui_adapter "USB-ISS"
set omsp_conf(interface) i2c_usb-iss
eval .connect.cfg.if.config2.adapter.p2 list delete 0 end
eval .connect.cfg.if.config2.adapter.p2 list insert end [list "USB-ISS"]
set gui_adapter "USB-ISS"
set omsp_conf(interface) i2c_usb-iss
}
 
if {$gui_dbg_if=="UART"} {
set omsp_nr 1
.connect.cfg.ad.i2c_nr.l configure -state disabled
.connect.cfg.ad.i2c_nr.s configure -state disabled
.connect.cfg.ad.i2c_addr.l configure -state disabled
.connect.cfg.ad.i2c_addr.s0 configure -state disabled
.connect.cfg.ad.i2c_addr.s1 configure -state disabled
.connect.cfg.ad.i2c_addr.s2 configure -state disabled
.connect.cfg.ad.i2c_addr.s3 configure -state disabled
.connect.cfg.ad.arrow.l0 configure -state disabled
.connect.cfg.ad.arrow.l1 configure -state disabled
.connect.cfg.ad.arrow.l2 configure -state disabled
.connect.cfg.ad.arrow.l3 configure -state disabled
.connect.cfg.ad.server_port.p0 configure -state normal
.connect.cfg.ad.server_port.p1 configure -state disabled
.connect.cfg.ad.server_port.p2 configure -state disabled
.connect.cfg.ad.server_port.p3 configure -state disabled
.connect.cfg.ad.core_nr.l0 configure -state disabled
.connect.cfg.ad.core_nr.l1 configure -state disabled
.connect.cfg.ad.core_nr.l2 configure -state disabled
.connect.cfg.ad.core_nr.l3 configure -state disabled
set omsp_nr 1
.connect.cfg.ad.i2c_nr.l configure -state disabled
.connect.cfg.ad.i2c_nr.s configure -state disabled
.connect.cfg.ad.i2c_addr.l configure -state disabled
.connect.cfg.ad.i2c_addr.s0 configure -state disabled
.connect.cfg.ad.i2c_addr.s1 configure -state disabled
.connect.cfg.ad.i2c_addr.s2 configure -state disabled
.connect.cfg.ad.i2c_addr.s3 configure -state disabled
.connect.cfg.ad.arrow.l0 configure -state disabled
.connect.cfg.ad.arrow.l1 configure -state disabled
.connect.cfg.ad.arrow.l2 configure -state disabled
.connect.cfg.ad.arrow.l3 configure -state disabled
.connect.cfg.ad.server_port.p0 configure -state normal
.connect.cfg.ad.server_port.p1 configure -state disabled
.connect.cfg.ad.server_port.p2 configure -state disabled
.connect.cfg.ad.server_port.p3 configure -state disabled
.connect.cfg.ad.core_nr.l0 configure -state disabled
.connect.cfg.ad.core_nr.l1 configure -state disabled
.connect.cfg.ad.core_nr.l2 configure -state disabled
.connect.cfg.ad.core_nr.l3 configure -state disabled
.connect.cfg.ad.i2c_nr.f.soft.b configure -state disabled
if {[winfo exists .omsp_sft_brk]} {
updateSoftBreakpoints
}
 
} elseif {$gui_dbg_if=="I2C"} {
# .connect.cfg.ad.core_nr.l0 configure -state normal
# .connect.cfg.ad.i2c_nr.l configure -state normal
# .connect.cfg.ad.i2c_nr.s configure -state normal
.connect.cfg.ad.i2c_addr.l configure -state normal
.connect.cfg.ad.i2c_addr.s0 configure -state normal
.connect.cfg.ad.arrow.l0 configure -state normal
.connect.cfg.ad.server_port.p0 configure -state normal
# .connect.cfg.ad.core_nr.l0 configure -state normal
.connect.cfg.ad.core_nr.l0 configure -state normal
.connect.cfg.ad.i2c_nr.l configure -state normal
.connect.cfg.ad.i2c_nr.s configure -state normal
.connect.cfg.ad.i2c_addr.l configure -state normal
.connect.cfg.ad.i2c_addr.s0 configure -state normal
.connect.cfg.ad.arrow.l0 configure -state normal
.connect.cfg.ad.server_port.p0 configure -state normal
 
 
if {$omsp_nr < 2} {
.connect.cfg.ad.core_nr.l1 configure -state disabled
.connect.cfg.ad.server_port.p1 configure -state disabled
.connect.cfg.ad.arrow.l1 configure -state disabled
.connect.cfg.ad.i2c_addr.s1 configure -state disabled
} else {
.connect.cfg.ad.core_nr.l1 configure -state normal
.connect.cfg.ad.server_port.p1 configure -state normal
.connect.cfg.ad.arrow.l1 configure -state normal
.connect.cfg.ad.i2c_addr.s1 configure -state normal
}
if {$omsp_nr < 2} {
.connect.cfg.ad.core_nr.l1 configure -state disabled
.connect.cfg.ad.server_port.p1 configure -state disabled
.connect.cfg.ad.arrow.l1 configure -state disabled
.connect.cfg.ad.i2c_addr.s1 configure -state disabled
.connect.cfg.ad.i2c_nr.f.soft.b configure -state disabled
} else {
.connect.cfg.ad.core_nr.l1 configure -state normal
.connect.cfg.ad.server_port.p1 configure -state normal
.connect.cfg.ad.arrow.l1 configure -state normal
.connect.cfg.ad.i2c_addr.s1 configure -state normal
.connect.cfg.ad.i2c_nr.f.soft.b configure -state normal
}
if {$omsp_nr < 3} {
.connect.cfg.ad.core_nr.l2 configure -state disabled
.connect.cfg.ad.server_port.p2 configure -state disabled
.connect.cfg.ad.arrow.l2 configure -state disabled
.connect.cfg.ad.i2c_addr.s2 configure -state disabled
} else {
.connect.cfg.ad.core_nr.l2 configure -state normal
.connect.cfg.ad.server_port.p2 configure -state normal
.connect.cfg.ad.arrow.l2 configure -state normal
.connect.cfg.ad.i2c_addr.s2 configure -state normal
}
if {$omsp_nr < 3} {
.connect.cfg.ad.core_nr.l2 configure -state disabled
.connect.cfg.ad.server_port.p2 configure -state disabled
.connect.cfg.ad.arrow.l2 configure -state disabled
.connect.cfg.ad.i2c_addr.s2 configure -state disabled
} else {
.connect.cfg.ad.core_nr.l2 configure -state normal
.connect.cfg.ad.server_port.p2 configure -state normal
.connect.cfg.ad.arrow.l2 configure -state normal
.connect.cfg.ad.i2c_addr.s2 configure -state normal
}
if {$omsp_nr < 4} {
.connect.cfg.ad.core_nr.l3 configure -state disabled
.connect.cfg.ad.server_port.p3 configure -state disabled
.connect.cfg.ad.arrow.l3 configure -state disabled
.connect.cfg.ad.i2c_addr.s3 configure -state disabled
} else {
.connect.cfg.ad.core_nr.l3 configure -state normal
.connect.cfg.ad.server_port.p3 configure -state normal
.connect.cfg.ad.arrow.l3 configure -state normal
.connect.cfg.ad.i2c_addr.s3 configure -state normal
}
if {$omsp_nr < 4} {
.connect.cfg.ad.core_nr.l3 configure -state disabled
.connect.cfg.ad.server_port.p3 configure -state disabled
.connect.cfg.ad.arrow.l3 configure -state disabled
.connect.cfg.ad.i2c_addr.s3 configure -state disabled
} else {
.connect.cfg.ad.core_nr.l3 configure -state normal
.connect.cfg.ad.server_port.p3 configure -state normal
.connect.cfg.ad.arrow.l3 configure -state normal
.connect.cfg.ad.i2c_addr.s3 configure -state normal
}
updateSoftBreakpoints
}
 
.connect.cfg.if.config2.serial_port.p2 configure -editable 1
410,7 → 424,7
####################################
 
# Exit button
button .menu.exit -text "Exit" -command {stopServer; exit 0}
button .menu.exit -text "Exit" -command {stopAllServers; exit 0}
pack .menu.exit -side left
 
# openMSP430 label
469,7 → 483,7
 
# Server Port field & I2C address selection
frame .connect.cfg.ad.core_nr
pack .connect.cfg.ad.core_nr -side left -padx 5 -fill y
pack .connect.cfg.ad.core_nr -side left -padx 5 -pady {0 20} -fill y
label .connect.cfg.ad.core_nr.l3 -text "Core 3:" -anchor w
pack .connect.cfg.ad.core_nr.l3 -side bottom -padx {25 0} -pady {10 10}
label .connect.cfg.ad.core_nr.l2 -text "Core 2:" -anchor w
480,20 → 494,20
pack .connect.cfg.ad.core_nr.l0 -side bottom -padx {25 0} -pady {10 2}
 
frame .connect.cfg.ad.server_port
pack .connect.cfg.ad.server_port -side left -padx 5 -fill y
entry .connect.cfg.ad.server_port.p3 -textvariable server(port) -relief sunken -width 10
pack .connect.cfg.ad.server_port -side left -padx 5 -pady {0 20} -fill y
entry .connect.cfg.ad.server_port.p3 -textvariable server(3,port) -relief sunken -width 10
pack .connect.cfg.ad.server_port.p3 -side bottom -padx 5 -pady {10 10}
entry .connect.cfg.ad.server_port.p2 -textvariable server(port) -relief sunken -width 10
entry .connect.cfg.ad.server_port.p2 -textvariable server(2,port) -relief sunken -width 10
pack .connect.cfg.ad.server_port.p2 -side bottom -padx 5 -pady {10 0}
entry .connect.cfg.ad.server_port.p1 -textvariable server(port) -relief sunken -width 10
entry .connect.cfg.ad.server_port.p1 -textvariable server(1,port) -relief sunken -width 10
pack .connect.cfg.ad.server_port.p1 -side bottom -padx 5 -pady {10 0}
entry .connect.cfg.ad.server_port.p0 -textvariable server(port) -relief sunken -width 10
entry .connect.cfg.ad.server_port.p0 -textvariable server(0,port) -relief sunken -width 10
pack .connect.cfg.ad.server_port.p0 -side bottom -padx 5 -pady {10 0}
label .connect.cfg.ad.server_port.l -text "Proxy Server Port" -anchor w
pack .connect.cfg.ad.server_port.l -side bottom -padx 5 -pady {10 0}
 
frame .connect.cfg.ad.arrow
pack .connect.cfg.ad.arrow -side left -padx 5 -fill y
pack .connect.cfg.ad.arrow -side left -padx 5 -pady {0 20} -fill y
label .connect.cfg.ad.arrow.l3 -text "==>" -anchor w
pack .connect.cfg.ad.arrow.l3 -side bottom -padx 5 -pady {10 10}
label .connect.cfg.ad.arrow.l2 -text "==>" -anchor w
504,7 → 518,7
pack .connect.cfg.ad.arrow.l0 -side bottom -padx 5 -pady {10 2}
 
frame .connect.cfg.ad.i2c_addr
pack .connect.cfg.ad.i2c_addr -side left -padx 5 -fill y
pack .connect.cfg.ad.i2c_addr -side left -padx 5 -pady {0 20} -fill y
spinbox .connect.cfg.ad.i2c_addr.s3 -from 8 -to 119 -textvariable omsp_conf(3,cpuaddr) -width 4
pack .connect.cfg.ad.i2c_addr.s3 -side bottom -padx 5 -pady {10 10}
spinbox .connect.cfg.ad.i2c_addr.s2 -from 8 -to 119 -textvariable omsp_conf(2,cpuaddr) -width 4
523,6 → 537,27
spinbox .connect.cfg.ad.i2c_nr.s -from 1 -to 4 -textvariable omsp_nr -state readonly -width 4 -command {updateConfiguration}
pack .connect.cfg.ad.i2c_nr.s -side top -padx 50 -pady {10 10}
 
frame .connect.cfg.ad.i2c_nr.f -bd 2 -relief ridge
pack .connect.cfg.ad.i2c_nr.f -side top -padx 10 -pady {5 5} -fill x
label .connect.cfg.ad.i2c_nr.f.l2 -text "Breakpoint configuration" -anchor w
pack .connect.cfg.ad.i2c_nr.f.l2 -side top -padx 0 -pady {5 10}
 
frame .connect.cfg.ad.i2c_nr.f.soft
pack .connect.cfg.ad.i2c_nr.f.soft -side top -padx 0 -fill x
radiobutton .connect.cfg.ad.i2c_nr.f.soft.r -value "0" -text "" -state normal -variable breakSelect -command {updateSoftBreakpoints}
pack .connect.cfg.ad.i2c_nr.f.soft.r -side left -padx {10 0} -pady {0 0}
label .connect.cfg.ad.i2c_nr.f.soft.l -text "Soft" -anchor w
pack .connect.cfg.ad.i2c_nr.f.soft.l -side left -padx {5 10} -pady {3 0}
button .connect.cfg.ad.i2c_nr.f.soft.b -text "Config." -state disabled -command {configSoftBreakpoints}
pack .connect.cfg.ad.i2c_nr.f.soft.b -side right -padx {0 20}
 
frame .connect.cfg.ad.i2c_nr.f.hard
pack .connect.cfg.ad.i2c_nr.f.hard -side top -padx 0 -pady {0 10} -fill x
radiobutton .connect.cfg.ad.i2c_nr.f.hard.r -value "1" -text "" -state normal -variable breakSelect -command {updateSoftBreakpoints}
pack .connect.cfg.ad.i2c_nr.f.hard.r -side left -padx {10 0} -pady {0 0}
label .connect.cfg.ad.i2c_nr.f.hard.l -text "Hard" -anchor w
pack .connect.cfg.ad.i2c_nr.f.hard.l -side left -padx {5 10} -pady {3 0}
 
# Update according to default values
updateConfiguration
 
585,3 → 620,199
pack .tclscript.fb.read -side left -padx 20 -pady {0 10} -fill x
 
wm resizable . 0 0
 
 
 
#####################################
# Breakpoint configuration window #
#####################################
 
proc configSoftBreakpoints { } {
 
global omsp_nr
 
# Destroy windows if already existing
if {[lsearch -exact [winfo children .] .omsp_sft_brk]!=-1} {
destroy .omsp_sft_brk
}
 
# Create master window
set title "Software Breakpoint Configuration"
toplevel .omsp_sft_brk
wm title .omsp_sft_brk $title
wm geometry .omsp_sft_brk +380+200
wm resizable .omsp_sft_brk 0 0
 
# Title
label .omsp_sft_brk.title -text "$title" -anchor center -fg "\#6a5acd" -font {-weight bold -size 16}
pack .omsp_sft_brk.title -side top -padx {20 20} -pady {20 10}
 
# Create global frame
frame .omsp_sft_brk.map
pack .omsp_sft_brk.map -side top -padx {10 10} -pady {0 0}
 
# Create frame for buttons
frame .omsp_sft_brk.map.b -bd 2 -relief ridge
pack .omsp_sft_brk.map.b -side top -padx 10 -pady {10 0} -fill x -expand true
 
button .omsp_sft_brk.map.b.share -text "Shared Program Memory" -command {setMemMapping 0 0 0 0}
pack .omsp_sft_brk.map.b.share -side left -padx {20 15} -pady {10 10}
 
button .omsp_sft_brk.map.b.dedic -text "Dedicated Program Memory" -command {setMemMapping 0 1 2 3}
pack .omsp_sft_brk.map.b.dedic -side right -padx {15 20} -pady {10 10}
 
 
# Create fram for radio-buttons
frame .omsp_sft_brk.map.r -bd 2 -relief ridge
pack .omsp_sft_brk.map.r -side top -padx 10 -pady {10 20} -fill x -expand true
 
frame .omsp_sft_brk.map.r.core_nr
pack .omsp_sft_brk.map.r.core_nr -side left -padx 5 -pady {0 20} -fill y
label .omsp_sft_brk.map.r.core_nr.l3 -text "Core 3:" -anchor w
pack .omsp_sft_brk.map.r.core_nr.l3 -side bottom -padx {25 0} -pady {10 10}
label .omsp_sft_brk.map.r.core_nr.l2 -text "Core 2:" -anchor w
pack .omsp_sft_brk.map.r.core_nr.l2 -side bottom -padx {25 0} -pady {10 2}
label .omsp_sft_brk.map.r.core_nr.l1 -text "Core 1:" -anchor w
pack .omsp_sft_brk.map.r.core_nr.l1 -side bottom -padx {25 0} -pady {10 2}
label .omsp_sft_brk.map.r.core_nr.l0 -text "Core 0:" -anchor w
pack .omsp_sft_brk.map.r.core_nr.l0 -side bottom -padx {25 0} -pady {10 2}
frame .omsp_sft_brk.map.r.pmem0
pack .omsp_sft_brk.map.r.pmem0 -side left -padx 5 -pady {0 20} -fill y
radiobutton .omsp_sft_brk.map.r.pmem0.p3 -value "0" -text "" -state normal -variable mem_mapping(3)
pack .omsp_sft_brk.map.r.pmem0.p3 -side bottom -padx 5 -pady {10 10}
radiobutton .omsp_sft_brk.map.r.pmem0.p2 -value "0" -text "" -state normal -variable mem_mapping(2)
pack .omsp_sft_brk.map.r.pmem0.p2 -side bottom -padx 5 -pady {10 0}
radiobutton .omsp_sft_brk.map.r.pmem0.p1 -value "0" -text "" -state normal -variable mem_mapping(1)
pack .omsp_sft_brk.map.r.pmem0.p1 -side bottom -padx 5 -pady {10 0}
radiobutton .omsp_sft_brk.map.r.pmem0.p0 -value "0" -text "" -state normal -variable mem_mapping(0)
pack .omsp_sft_brk.map.r.pmem0.p0 -side bottom -padx 5 -pady {10 0}
label .omsp_sft_brk.map.r.pmem0.l -text "Program\nMemory 0" -anchor w
pack .omsp_sft_brk.map.r.pmem0.l -side bottom -padx 5 -pady {10 0}
 
frame .omsp_sft_brk.map.r.pmem1
pack .omsp_sft_brk.map.r.pmem1 -side left -padx 5 -pady {0 20} -fill y
radiobutton .omsp_sft_brk.map.r.pmem1.p3 -value "1" -text "" -state normal -variable mem_mapping(3)
pack .omsp_sft_brk.map.r.pmem1.p3 -side bottom -padx 5 -pady {10 10}
radiobutton .omsp_sft_brk.map.r.pmem1.p2 -value "1" -text "" -state normal -variable mem_mapping(2)
pack .omsp_sft_brk.map.r.pmem1.p2 -side bottom -padx 5 -pady {10 0}
radiobutton .omsp_sft_brk.map.r.pmem1.p1 -value "1" -text "" -state normal -variable mem_mapping(1)
pack .omsp_sft_brk.map.r.pmem1.p1 -side bottom -padx 5 -pady {10 0}
radiobutton .omsp_sft_brk.map.r.pmem1.p0 -value "1" -text "" -state disable -variable mem_mapping(0)
pack .omsp_sft_brk.map.r.pmem1.p0 -side bottom -padx 5 -pady {10 0}
label .omsp_sft_brk.map.r.pmem1.l -text "Program\nMemory 1" -anchor w
pack .omsp_sft_brk.map.r.pmem1.l -side bottom -padx 5 -pady {10 0}
frame .omsp_sft_brk.map.r.pmem2
pack .omsp_sft_brk.map.r.pmem2 -side left -padx 5 -pady {0 20} -fill y
radiobutton .omsp_sft_brk.map.r.pmem2.p3 -value "2" -text "" -state normal -variable mem_mapping(3)
pack .omsp_sft_brk.map.r.pmem2.p3 -side bottom -padx 5 -pady {10 10}
radiobutton .omsp_sft_brk.map.r.pmem2.p2 -value "2" -text "" -state normal -variable mem_mapping(2)
pack .omsp_sft_brk.map.r.pmem2.p2 -side bottom -padx 5 -pady {10 0}
radiobutton .omsp_sft_brk.map.r.pmem2.p1 -value "2" -text "" -state disable -variable mem_mapping(1)
pack .omsp_sft_brk.map.r.pmem2.p1 -side bottom -padx 5 -pady {10 0}
radiobutton .omsp_sft_brk.map.r.pmem2.p0 -value "2" -text "" -state disable -variable mem_mapping(0)
pack .omsp_sft_brk.map.r.pmem2.p0 -side bottom -padx 5 -pady {10 0}
label .omsp_sft_brk.map.r.pmem2.l -text "Program\nMemory 2" -anchor w
pack .omsp_sft_brk.map.r.pmem2.l -side bottom -padx 5 -pady {10 0}
frame .omsp_sft_brk.map.r.pmem3
pack .omsp_sft_brk.map.r.pmem3 -side left -padx 5 -pady {0 20} -fill y
radiobutton .omsp_sft_brk.map.r.pmem3.p3 -value "3" -text "" -state normal -variable mem_mapping(3)
pack .omsp_sft_brk.map.r.pmem3.p3 -side bottom -padx 5 -pady {10 10}
radiobutton .omsp_sft_brk.map.r.pmem3.p2 -value "3" -text "" -state disable -variable mem_mapping(2)
pack .omsp_sft_brk.map.r.pmem3.p2 -side bottom -padx 5 -pady {10 0}
radiobutton .omsp_sft_brk.map.r.pmem3.p1 -value "3" -text "" -state disable -variable mem_mapping(1)
pack .omsp_sft_brk.map.r.pmem3.p1 -side bottom -padx 5 -pady {10 0}
radiobutton .omsp_sft_brk.map.r.pmem3.p0 -value "3" -text "" -state disable -variable mem_mapping(0)
pack .omsp_sft_brk.map.r.pmem3.p0 -side bottom -padx 5 -pady {10 0}
label .omsp_sft_brk.map.r.pmem3.l -text "Program\nMemory 3" -anchor w
pack .omsp_sft_brk.map.r.pmem3.l -side bottom -padx 5 -pady {10 0}
 
# Create OK button
button .omsp_sft_brk.okay -text "OK" -font {-weight bold} -command {destroy .omsp_sft_brk}
pack .omsp_sft_brk.okay -side bottom -expand true -fill x -padx 5 -pady {0 10}
 
# Update according to number of cores
updateSoftBreakpoints
}
 
proc updateSoftBreakpoints { } {
 
global omsp_nr
global breakSelect
 
if {[winfo exists .omsp_sft_brk]} {
if {$breakSelect==0} {
.omsp_sft_brk.map.r.core_nr.l0 configure -state normal
.omsp_sft_brk.map.r.pmem0.p0 configure -state normal
if {$omsp_nr < 2} {
.omsp_sft_brk.map.r.core_nr.l1 configure -state disabled
.omsp_sft_brk.map.r.pmem0.p1 configure -state disabled
.omsp_sft_brk.map.r.pmem1.p1 configure -state disabled
} else {
.omsp_sft_brk.map.r.core_nr.l1 configure -state normal
.omsp_sft_brk.map.r.pmem0.p1 configure -state normal
.omsp_sft_brk.map.r.pmem1.p1 configure -state normal
}
 
if {$omsp_nr < 3} {
.omsp_sft_brk.map.r.core_nr.l2 configure -state disabled
.omsp_sft_brk.map.r.pmem0.p2 configure -state disabled
.omsp_sft_brk.map.r.pmem1.p2 configure -state disabled
.omsp_sft_brk.map.r.pmem2.p2 configure -state disabled
} else {
.omsp_sft_brk.map.r.core_nr.l2 configure -state normal
.omsp_sft_brk.map.r.pmem0.p2 configure -state normal
.omsp_sft_brk.map.r.pmem1.p2 configure -state normal
.omsp_sft_brk.map.r.pmem2.p2 configure -state normal
}
if {$omsp_nr < 4} {
.omsp_sft_brk.map.r.core_nr.l3 configure -state disabled
.omsp_sft_brk.map.r.pmem0.p3 configure -state disabled
.omsp_sft_brk.map.r.pmem1.p3 configure -state disabled
.omsp_sft_brk.map.r.pmem2.p3 configure -state disabled
.omsp_sft_brk.map.r.pmem3.p3 configure -state disabled
} else {
.omsp_sft_brk.map.r.core_nr.l3 configure -state normal
.omsp_sft_brk.map.r.pmem0.p3 configure -state normal
.omsp_sft_brk.map.r.pmem1.p3 configure -state normal
.omsp_sft_brk.map.r.pmem2.p3 configure -state normal
.omsp_sft_brk.map.r.pmem3.p3 configure -state normal
}
} else {
.omsp_sft_brk.map.r.core_nr.l0 configure -state disabled
.omsp_sft_brk.map.r.pmem0.p0 configure -state disabled
.omsp_sft_brk.map.r.core_nr.l1 configure -state disabled
.omsp_sft_brk.map.r.pmem0.p1 configure -state disabled
.omsp_sft_brk.map.r.pmem1.p1 configure -state disabled
.omsp_sft_brk.map.r.core_nr.l2 configure -state disabled
.omsp_sft_brk.map.r.pmem0.p2 configure -state disabled
.omsp_sft_brk.map.r.pmem1.p2 configure -state disabled
.omsp_sft_brk.map.r.pmem2.p2 configure -state disabled
.omsp_sft_brk.map.r.core_nr.l3 configure -state disabled
.omsp_sft_brk.map.r.pmem0.p3 configure -state disabled
.omsp_sft_brk.map.r.pmem1.p3 configure -state disabled
.omsp_sft_brk.map.r.pmem2.p3 configure -state disabled
.omsp_sft_brk.map.r.pmem3.p3 configure -state disabled
}
}
}
 
proc setMemMapping {core0 core1 core2 core3} {
 
global mem_mapping
global omsp_nr
 
set mem_mapping(0) $core0
if {$omsp_nr > 1} {
set mem_mapping(1) $core1
}
if {$omsp_nr > 2} {
set mem_mapping(2) $core2
}
if {$omsp_nr > 3} {
set mem_mapping(3) $core3
}
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.