欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

u-boot-1.1.6链接脚本的变量取址是什么含意

更新时间: 2014-01-05 03:19:13 责任编辑: Author_N1

 

u-boot-1.1.6链接脚本的变量取址是什么含义?
uboot.lds中有一段脚本: 
  
  ... 
  
  .u_boot_cmd : { 
  
     __u_boot_cmd_start = .; 
  
            
  
     *(.u_boot_cmd) 
  
            
  
     __u_boot_cmd_end = .; 
  
  } 
  
.... 
  
该段的作用是将uboot的所有与命令相关的struct都放在一起? 
  
.h中定义: 
struct cmd_tbl_s {.... 
}; 
  
typedef struct cmd_tbl_s cmd_tbl_t;      
  
extern cmd_tbl_t  __u_boot_cmd_start;    
extern cmd_tbl_t  __u_boot_cmd_end;      
  
  
  
然后在board.c中有代码: 
  
for (cmdtp = &__u_boot_cmd_start; cmdtp !=  &__u_boot_cmd_end; cmdtp++) { 
  
... 
  

  
  
cmdtp即为结构体指针,为什么是 &__u_boot_cmd_start 而不是  __u_boot_cmd_start 
?  
望大神们指教,感激不尽!!!
--参考方法--
这个加不加&号是给c编译器使用的,没有这个&不能表示地址。你前面提到的你的培训班中的小技巧,我估计是使用的那个cmd_tbl_t的定义有差别,会不会是 typedef xxx *cmd_tbl_t的形式,这样一来你定义一个新的变量那么就是指针了。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:19:13
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20710/
本文WWW.DOC100.NET DOC100.NET版权所有。