Tcl 中的全局变量

use*_*150 3 tcl

我试图通过在函数外部声明全局变量(gpio_out_set_3)来使用它(因为该变量将来也可能在其他函数中使用)。在函数内部,我声明了与“global”相同的变量,并尝试通过“$gpio_out_set_3”访问它。

我收到错误“无法读取“gpio_out_set_3”:没有这样的变量”

set gpio_out_set_3 0x03
proc port2phy { device } {
   global gpio_out_set_3 
   erf_wr devcpu_gcb $gpio_out_set_3 $phy_mdc_gate_en
  }
Run Code Online (Sandbox Code Playgroud)

请帮忙。

bet*_*pfa 5

使用变量命令在文件的开头声明所有全局变量。

variable gpio_out_set_3 0x03

提示:我不喜欢全局命令。我总是忘记使用,并且很难看出哪个变量是全局变量,哪个变量是局部变量。我更喜欢$::<varname>,它指向全局命名空间

proc port2phy { device } {
   erf_wr devcpu_gcb $::gpio_out_set_3 $phy_mdc_gate_en
}
Run Code Online (Sandbox Code Playgroud)