分享

uboot移植记录

 guitarhua 2012-10-18

U-boot-1.1.6-2008R1到vdsp5(bf561)的移植记录(15):DECLARE_GLOBAL_DATA_PTR

分类: bf561-uclinux 465人阅读 评论(0) 收藏 举报
 
  
在u-boot中使用了一个宏:
#define DECLARE_GLOBAL_DATA_PTR     register gd_t * volatile gd asm ("P5")
使用这个宏可以声明一个叫gd的局部指针变量,而这个指针的值是存放在P5这个寄存器中的。U-boot使用这种方式来进行程序的优化。
而在u-boot初始化的时候,它对gd这个指针进行了赋值:
void board_init_f(ulong bootflag)
{
     DECLARE_GLOBAL_DATA_PTR;
     ulong addr;
     bd_t *bd;
 
    .
     serial_early_puts("Init global data/n");
     gd = (gd_t *) (CFG_GBL_DATA_ADDR);
     memset((void *)gd, 0, sizeof(gd_t));
….
}
在VDSP中,不支持DECLARE_GLOBAL_DATA_PTR这样的定义,因此可以这样修改:
#define DECLARE_GLOBAL_DATA_PTR     extern gd_t * volatile gd
然后在board.c中添加一个定义:
gd_t * volatile gd;
这样修改的结果是将gd这个指针放在了SDRAM中,性能略有下降,但是应该是可以接受的。
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多