![[GMAT]选择从nand或者nor启动的环境参数的设置.doc_第1页](http://file.renrendoc.com/FileRoot1/2019-1/5/f4ea81c0-a098-4165-9a6d-7172402aa9f0/f4ea81c0-a098-4165-9a6d-7172402aa9f01.gif)
![[GMAT]选择从nand或者nor启动的环境参数的设置.doc_第2页](http://file.renrendoc.com/FileRoot1/2019-1/5/f4ea81c0-a098-4165-9a6d-7172402aa9f0/f4ea81c0-a098-4165-9a6d-7172402aa9f02.gif)
![[GMAT]选择从nand或者nor启动的环境参数的设置.doc_第3页](http://file.renrendoc.com/FileRoot1/2019-1/5/f4ea81c0-a098-4165-9a6d-7172402aa9f0/f4ea81c0-a098-4165-9a6d-7172402aa9f03.gif)
全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关于u-boot同时支持nand启动和Nor启动环境变量的保存位置 收藏 -华清远见 曹忠明 前面我们说过是u-boot同时支持nand flash启动和nor flash启动,可是这个时候就有个环境变量的保存位置的问题了。假如我们设置为环境变量保存在nand上,nor启动时虽然保存环境变量的空间之前有一段空间浪费了,但不会有什么问题,但是假如我们设置为环境变量保存在nor上,nand启动就根本不能访问这段空间更谈何保存环境变量了,理想的情况是更加不同的flash启动把环境变量保存在相应的flash上。那么这是如何实现的呢? 在说如何实现之前我们先把相关的文件列出来(以S3C2410为例): cpu/arm920t/start.S /*用来判断是那种方式启动并实现自搬移*/ include/configs/smdk2410.h /*smdk2410配置文件*/ common/env_flash.c/*nor flash环境变量相关文件*/ common/env_nand.c/*nand flash 环境变量相关文件*/ 1. 首先我们在include/configs/smdk2410.h中添加如下代码 #define CONFIG_ENV_IS_IN_NAND 1#define CONFIG_ENV_IS_IN_FLASH 1添加上面两句话是为了确保common/env_flash.c和common/env_nand.c中的内容被编译进uboot,并且添加这两种情况环境变量保存位置信息:#ifdef CONFIG_ENV_IS_IN_FLASH 1 #define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + 0x30000)#endif#ifdef CONFIG_ENV_IS_IN_NAND 1#define CONFIG_ENV_SIZE 0x10000#define CONFIG_ENV_OFFSET 0x30000#endif 2. 标志位的设定在这里我们我们要设置一个标志位用来标识是nor启动还是nand启动。我们在common/nand.c中添加这个标志位的定义volatile int pbootflag=1; /add by lht 1-nor 0-nand然后我们在cpu/arm920t/start.S导入这个变量并判断是nor启动还是nand启动设置这个标志位的值# define BWSCON 0x48000000 dr r0,=BWSCONldr r0,r0ands r0,r0,#6beq nand_boot/*/Nor 自搬移代码/*/nand_boot: ldr r0, =pbootflag mov r1, #0x0 str r1, r0 /*设置pbootflag的值为0表示为nand启动*/*/Nand 自搬移代码/*/3. 环境变量的保存通过第一步的操作后,我们的系统中就会有两个env_init函数、saveenv函数和env_relocate_spec函数在common/env_flash.c和common/env_nand.c中,在我们执行saveenv或者在uboot启动是环境变量重定位的时候就有问题了,为了解决这个问题我们做如下操作。首先我们把common/env_flash.c中的env_init函数、saveenv函数和env_relocate_spec函数分别改名为nor_env_init函数、nor_saveenv函数和nor_env_relocate_spec函数。然后我们需要修改common/env_nand.c中的saveenv函数和env_relocate_spec函数为:修改int env_init(void)函数在函数开始添加如下内容: if(pbootflag=1) env_name_spec = NOR;env_ptr=(env_t *)CONFIG_ENV_ADDR; return nor_env_init(); 修改int saveenv(void)函数,在函数开始添加如下内容 if(pbootflag=1) env_name_spec = NOR; return nor_saveenv(); 修改void env_relocate_spec (void)函数,在函数开始添加如下内容 if(pbootflag=1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年教师招聘之《幼儿教师招聘》押题练习试卷附参考答案详解【研优卷】
- 2025广东共青团江门市委员会选调参照管理单位工作人员1人考试模拟试题及答案解析
- 2025年网络安全在云计算平台中的安全架构与防护策略报告
- 2025年教育产业投资并购动态:整合策略研究报告全景解读
- 合并前列腺炎的前列腺增生组织中IL-17、IL-8表达的深度解析与临床意义探究
- 民营经济面试题库及答案
- 煤厂会计面试题及答案
- 律协考核面试题库及答案
- 2025年教师招聘之《小学教师招聘》考试题库附答案详解(预热题)
- 教师招聘之《小学教师招聘》过关检测及完整答案详解【易错题】
- 部编版语文二年级上册8古诗二首 登鹳雀楼 公开课一等奖创新教学设计
- SH3503石油化工工序资料表格
- 人居环境科学讲义
- 电梯维保服务投标方案
- 瓷砖干挂专项施工方案
- 药剂学第八版-第一章-绪论课件
- 国外建筑防水技术发展研究报告
- 初中化学物质的分类
- 合同起草审查指南:三观四步法
- 蒙山旅游景区基础设施建设项目可行性研究报告
- 档案制作合同模版
评论
0/150
提交评论