打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
uboot移植记录

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中,性能略有下降,但是应该是可以接受的。
 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
DECLARE_GLOBAL_DATA_PTR 作用
专一的王子,C语言volatile关键字解析
volatile与const学习笔记
嵌入式程序员应知道的基本问题
C and C++ Common Knowledge
C语言中关键字volatile追根问底
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服