4297|4

61

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

uboot中环境变量的问题 [复制链接]

我现在进行系统移植的开发板是根据MPC8260ADS做的,用的是uboot1.1.4的引导程序,MPC8260ADS.h中关于环境变量的定义我有点不理解,
#ifndef CFG_RAMBOOT
#  define CFG_ENV_IS_IN_FLASH        1
#  define CFG_ENV_SECT_SIZE        0x40000      
#  define CFG_ENV_ADDR                (CFG_MONITOR_BASE + CFG_ENV_SECT_SIZE)
#else
#  define CFG_ENV_IS_IN_NVRAM        1
#  define CFG_ENV_ADDR                (CFG_MONITOR_BASE - 0x1000)
#  define CFG_ENV_SIZE                0x200
#endif /* CFG_RAMBOOT */
其中
#define CFG_MONITOR_BASE    TEXT_BASE
#define CFG_MONITOR_LEN                (256 << 10)        /* Reserve 256 kB for Monitor        */
那么我想问各位一下,TEXT_BASE是什么?它应该和存放uboot的flash的起始地址相同吗?
本系统当然是not define CFG_RAMBOOT了,我感觉系统的定义是把flash的前256kB留给了uboot,似乎这个空间之后就定义用来存放环境变量了。那可 CFG_ENV_SECT_SIZE是什么意思呢?
当定义CFG_ENV_IS_IN_NVRAM时,定义了环境变量的大小CFG_ENV_SIZE,那么当CFG_ENV_IS_IN_FLASH时,环境变量的大小是多少呢?在哪定义呢?

麻烦明白的人给我指点一下吧,不胜感激呢!

最新回复

没有看懂啊~~~~~  详情 回复 发表于 2009-8-25 15:43
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
TEXT_BASE就是链接程序的起始地址,就是uboot代码烧写在Flash中的首地址
对于PPC8260系列来说,高端启动地址一般都是0Xfff0 0000

CFG_ENV_SECT_SIZE 通常是用来定义环境变量所占据的flash空间的大小的,但此处好像不是此意
系统只需要知道CFG_ENV_ADDR 就可以了,至于是多少,怎么算的,完全取决于你自己将环境变量保存在flash中的什么位置
 
 

回复

79

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
谢谢楼上的回答!
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

4
 
t听说回帖是种没得,我试试!
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

5
 
没有看懂啊~~~~~
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表