kitprog3.cfg 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #
  2. # Cypress Semiconductor KitProg3
  3. #
  4. # KitProg3 is CMSIS-DAP compliant adapter. However, it supports additional functionality
  5. # such as SPI/I2C bridging, Hardware acquire procedure for PSoC 4/5/6 devices, power control.
  6. # This functionality has been moved to separate driver to avoid pollution of generic CMSIS-DAP
  7. # with probe-specific code.
  8. #
  9. # Interface driver inherits all functionality of CMSIS-DAP including all tcl commands.
  10. # Additional functionality can be accessed via tcl using 'kitprog3' prefix
  11. #
  12. adapter driver kitprog3
  13. proc version_compare {s1 s2} {
  14. set l1 [split [lindex $s1 1] "."]
  15. set l2 [split [lindex $s2 1] "."]
  16. foreach v1 $l1 v2 $l2 {
  17. if {![string is integer $v1]} { puts stderr "Error: Malformed version: $s1"; return 0 }
  18. if {![string is integer $v2]} { puts stderr "Error: Malformed version: $s2"; return 0 }
  19. if {$v1 eq ""} {set v1 0}
  20. if {$v2 eq ""} {set v2 0}
  21. if {$v1 != $v2} {return [expr $v1 >= $v2 ? -1 : +1]}
  22. }
  23. return 0
  24. }
  25. proc find_versions {tools_dir dir_mask version_file} {
  26. set result [list]
  27. set matching_dirs [lsort -unique [glob -nocomplain -directory $tools_dir $dir_mask]]
  28. foreach dir ${matching_dirs} {
  29. set ver_file ""
  30. catch { set ver_file [find "${dir}/${version_file}"] }
  31. if { $ver_file != "" } {
  32. set fd [open $ver_file "r"]
  33. set ver [read -nonewline $fd]
  34. close $fd
  35. regsub -all {\s} $ver "" ver
  36. regsub -all {</?version>} $ver "" ver
  37. lappend result [list $dir $ver]
  38. }
  39. }
  40. set result [lsort -command {version_compare} $result]
  41. return $result
  42. }
  43. set script_dir [file dirname [file join [pwd] [info script]]]
  44. set script_dir_list [file split $script_dir]
  45. if {[llength $script_dir_list] > 5} {
  46. set tools_dir [file join {*}[lrange [file split $script_dir] 0 end-5]]
  47. set latest_fw_loader [lindex [find_versions $tools_dir "fw-loader*" "version.xml"] 0]
  48. set latest_kp3_fw [lindex [find_versions $tools_dir "kp-firmware*" "kitprog3.version"] 0]
  49. if {[llength $latest_fw_loader] != 0 && [llength $latest_kp3_fw] != 0} {
  50. set fw_loader_dir [lindex $latest_fw_loader 0]
  51. set kp3_fw [lindex $latest_kp3_fw 1]
  52. kitprog3 set_latest_version $fw_loader_dir $kp3_fw
  53. }
  54. }