摘要: 一、疑问 环境变量也是全局变量,为何不能像其他的全局变量放在data段呢?为什么要放在堆中或者使用ENV_IS_EMBEDDED定义的CFG_ENV_SIZE的空间大小,又为什么需要这么大的空间呢?二、认识1、尝试放在data段 由于环境变量区不像其他的全局变量,环境变量可以被删除,可以被更改,可以添加,这就要求存储环境变量的空间是足够大的。 也许可以用结构体数组来实现,分别存放环境变量的名字,及相应的值。这样就可以将环境变量放在data段,我们希望在经过start.s重定位后,环境变量已经处于指定的位置了。struct environment{ struct environment *... 阅读全文
posted @ 2013-11-30 21:30 amanlikethis 阅读(544) 评论(0) 推荐(0) 编辑
摘要: 一、如果用CFG_ENV_IS_NOWHERE这种策略(只有一个源) 环境变量不存于非易失存储器上,那么使用default_environment(位于数据段.data)。二、倘若使用了非易失存储器上的环境变量(两个源)1、存储器 倘若能通过校验,就使用这个源,以ENV_IS_EMBEDDED为例。2、数据段.data(default_environment) 倘若不能通过校验,就使用这个源。 阅读全文
posted @ 2013-11-30 17:11 amanlikethis 阅读(320) 评论(0) 推荐(0) 编辑