| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #
- # Cypress Semiconductor KitProg3
- #
- # KitProg3 is CMSIS-DAP compliant adapter. However, it supports additional functionality
- # such as SPI/I2C bridging, Hardware acquire procedure for PSoC 4/5/6 devices, power control.
- # This functionality has been moved to separate driver to avoid pollution of generic CMSIS-DAP
- # with probe-specific code.
- #
- # Interface driver inherits all functionality of CMSIS-DAP including all tcl commands.
- # Additional functionality can be accessed via tcl using 'kitprog3' prefix
- #
- adapter driver kitprog3
- proc version_compare {s1 s2} {
- set l1 [split [lindex $s1 1] "."]
- set l2 [split [lindex $s2 1] "."]
- foreach v1 $l1 v2 $l2 {
- if {![string is integer $v1]} { puts stderr "Error: Malformed version: $s1"; return 0 }
- if {![string is integer $v2]} { puts stderr "Error: Malformed version: $s2"; return 0 }
- if {$v1 eq ""} {set v1 0}
- if {$v2 eq ""} {set v2 0}
- if {$v1 != $v2} {return [expr $v1 >= $v2 ? -1 : +1]}
- }
- return 0
- }
- proc find_versions {tools_dir dir_mask version_file} {
- set result [list]
- set matching_dirs [lsort -unique [glob -nocomplain -directory $tools_dir $dir_mask]]
- foreach dir ${matching_dirs} {
- set ver_file ""
- catch { set ver_file [find "${dir}/${version_file}"] }
- if { $ver_file != "" } {
- set fd [open $ver_file "r"]
- set ver [read -nonewline $fd]
- close $fd
- regsub -all {\s} $ver "" ver
- regsub -all {</?version>} $ver "" ver
- lappend result [list $dir $ver]
- }
- }
- set result [lsort -command {version_compare} $result]
- return $result
- }
- set script_dir [file dirname [file join [pwd] [info script]]]
- set script_dir_list [file split $script_dir]
- if {[llength $script_dir_list] > 5} {
- set tools_dir [file join {*}[lrange [file split $script_dir] 0 end-5]]
- set latest_fw_loader [lindex [find_versions $tools_dir "fw-loader*" "version.xml"] 0]
- set latest_kp3_fw [lindex [find_versions $tools_dir "kp-firmware*" "kitprog3.version"] 0]
- if {[llength $latest_fw_loader] != 0 && [llength $latest_kp3_fw] != 0} {
- set fw_loader_dir [lindex $latest_fw_loader 0]
- set kp3_fw [lindex $latest_kp3_fw 1]
- kitprog3 set_latest_version $fw_loader_dir $kp3_fw
- }
- }
|