Tcl中的全局变量

时间:2016-01-29 09:50:02

标签: 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
  }

请帮忙。

3 个答案:

答案 0 :(得分:2)

我的猜测是,当你创建变量gpio_out_set_3时,你不是顶级的。你正在进行其他一些程序。所以gpio_out_set_3并不是真正的全局,而是局部地在某些过程中。

答案 1 :(得分:0)

您的全局变量名为gpio_out_set_0(与gpio_out_set_3不同)。

答案 2 :(得分:0)

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

variable gpio_out_set_3 0x03

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

proc port2phy { device } {
   erf_wr devcpu_gcb $::gpio_out_set_3 $phy_mdc_gate_en
}