




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科学生毕业论文(设计)题目(中 文): 基于S3C2440开发板BootLoader的设计(英 文):The Design Of BootLoaderBased On S3C2440姓 名 学 号 院 (系)电子工程系专业、年级电子信息工程 级指导教师 湖南科技学院本科毕业论文(设计)诚信声明本人郑重声明:所呈交的本科毕业论文(设计),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本
2、人承担。 本科毕业论文(设计)作者签名:二 年 月 日 毕业论文(设计)任务书课题名称:基于S3C2440开发板BootLoader的设计学生姓名: 系 别:电子工程系专 业:电子信息工程指导教师: 1、主题词、关键词: S3C2440,开发板,BootLoader,U-BOOT2、毕业论文(设计)内容要求:(1)总体论述基于S3C2440开发板的BootLoader的研究意义。(2)提出BootLoader设计任务,设计BootLoader框架。(3)设计人机交互界面,能够成功加载内核在开发板上运行。(4)对基于S3C2440开发板的BootLoader进行整机调试。(5)设计效果及结论。3
3、、文献查阅指引:1 潘孝帮,刘连浩. 基于ARM的嵌入式系统Bootloader的设计与实现J. 计算机系统应用. 2009(04) 2 袁磊,朱怡安,兰婧. 嵌入式系统BootLoader设计与实现J. 计算机测量与控制. 2009(02) 3 高伟,张洪波. 基于嵌入式系统的Bootloader分析与设计J. 唐山师范学院学报. 2009(05) 4 王景存,高峰. 基于ARM9的Bootloader的分析及设计J. 现代电子技术. 2010(02) 5 任斌,赖树明,陈卫,吴忠良. 基于ARM9的嵌入式系统Bootloader设计与实现J. 东莞理工学院学报. 2007(01) 6 常赟
4、杰,罗丹霞. 基于ARM9的Bootloader启动流程分析J. 科技信息(学术研究). 2008(36) 7 罗磊,戴学丰,刘树东. 基于ARM9&linux系统的bootloader设计J. 微计算机信息. 2008(14) 8 杨洁,赵刚. 嵌入式系统中Bootloader的编译与移植J. 四川大学学报(自然科学版). 2007(04)9SAMSUNG公司. Samsung s3c2440 User Manual v1.0.pdf. 10SAMSUNG公司. K9F1208U0M-YCB0.pdf.4、毕业论文(设计)进度安排:(1)2012.10-2012.11 市场需求分析;(2)2
5、012.12 收集、整理资料、书籍、文献;(3)2013.1 整理资料,撰写论文,定好初稿;(4)2013.2 BootLoader的初步设计与评价;(5)2013.3 BootLoader整个程序的设计;(6)2013.5 修改,测试,定稿,装订,答辩。教研室意见: 负责人签名: 注:本任务书一式三份,由指导教师填写,经教研室审批后一份下达给学生,一份交指导教师,一份留系里存档。湖南科技学院本科毕业论文(设计)开题报告书论文(设计)题目基于S3C2440 开发板BootLoader的设计作 者 姓 名颜祖光所属系、专业、年级 电子工程系 电子信息工程 专业 2009 年级指导教师姓名、职称谭
6、永宏 副教授预计字数12000开题日期2012-12-25选题的根据:1)说明本选题的理论、实际意义 2)综述国内外有关本选题的研究动态和自己的见解Linux内核的启动必须具备一定的条件,如CPU寄存器的设置要正确,CPU模式要设置成SVC模式,Cache和MMU的设置也必须正确等等。但是在开发板刚上电启动CPU的时候,一般连内存控制器都没有初始化过,根本无法在主存中运行程序,更不可能处在Linux 内核启动环境中,为了初始化CPU及其他外设,使得Linux内核可以在系统主存中运行,并让系统符合Linux 内核启动的必备条件,必须要有一个先于内核运行的程序,它就是所谓的引导加载程序BootLo
7、ader。所以设计并制作一个具有良好性能的BootLoader用来初始化开发板的设备以使系统能在开发板上正常的运行起来是非常有必要的。主要优势体现在: (1)程序具有很好的架构和可移植性。(2)程序实现了人机界面上用tftp命令从网口下载内核到内存的功能。(3)程序实现了人机界面上NandFlash的擦除与写入以及读取功能。(4)程序实现了人机界面上命令的帮助功能。(5)程序实现了人机界面上环境的设置及保存功能。(6)程序实现了人机界面上Ping功能。(7)程序实现了人机界面上help功能。(8)程序实现了人机界面上环境设置与保存功能。正因为BootLoader是使S3C2440开发板能够正常
8、的运行内核的必要的初期的引导程序,所以它正成为在S3C2440开发板上进行软件移植的研究的热点,也是我要研究它的目的所在。国内外发展现状和前景:目前,国外在研究基于S3C2440的BootLoader上已经有非常成熟的理论与技术,无论是在整个BootLoader程序的架构还是在设计方面都已经趋近于完美。但国内在整个BootLoader程序的研究上都是借鉴国外软件工程师已经研究完成的产品,在这些已有的程序的基础上进行一些修改,然后移植到我们所使用的嵌入式产品上,因而在这方面国内并没有什么改革性的突破,但是近来随着三星S3C2440的推出,嵌入式产品又将进入新一轮的更新换代,BootLoader也
9、将朝着引导更快,更加稳定,人机界面更人性化的方向发展,开发出一款符合上述要求让大众满意的BootLoader将会带来巨大的经济效益,所以研究基于S3C2440的BootLoader是非常有前景和必要的。主要内容:本设计是一个较完善的基于S3C2440的BootLoader,具有良好的架构,而且整个程序的文件布局也非常规范。其具体设计可分为两个大的阶段,第一阶段为硬件设备初始化,这一阶段主要包括设置CPU为SVC模式,关看门狗,设置时钟,nand flash初始化,DDR初始化,然后加载U-BOOT后面的剩余代码到RAM空间,设置好栈空间,跳转到第二阶段代码入口。第二阶段各个步骤依次为初始化本阶
10、段使用的硬件设备,这一阶段硬件初始化包括DM9000的初始化,串口的初始化,然后进入死循环等待命令,执行命令,当执行bootm命令时,为内核设置启动参数,调用内核,到此BootLoader执行完毕。为了能更好的人机交互,实现了tftp, nand write, nand erase, nand write, setenv, saveenv, help, bootm ping等命令,操作者可以通过这些命令更好的控制整个BootLoader对开发板的引导。1.主要实现功能:a. 实现了人机界面上用tftp命令从网口下载内核到内存的功能。b. 实现了人机界面上NandFlash的擦除与写入功能。 c
11、. 实现了引导内核的bootm命令。d. 实现了人机界面上命令的帮助功能。e. 实现了人机界面上环境的设置及保存功能。f. 实现了人机界面上Ping功能。g. 实现了人机界面上help功能。h. 实现了人机界面上环境的设置与保存功能。2.重点解决的问题:a. 在Start.S汇编文件中进行开发板各种硬件的初期配置一定要配置正确;b. 在tftp命令实现发送数据域接受数据的解决。c. 在链接脚本中规划好各个段的地址空间。d. Makefile的编写。e. 链接脚本对各个段的规划。3.预期的研究成果:a. 在S3C2440开发板上能通过人机交互的一系列命令实现最终成功把内核加载并引导成功。b. 在
12、学术刊物上发表学术论文1篇以上。研究方法:1.理论推导法:利用所学的理论知识对本系统进行各种硬件配置的分析以及设计方案的选择。2.实验法:应用S3C2440开发板进行各种功能的测试,并进行试验分析,根据试验结果进行改进,直到达预期目标。完成期限和采取的主要措施:1、完成期限:(1)2012.10-2011.11 市场需求分析;(2)2012.12 收集、整理资料、书籍、文献;(3)2013.1 整理资料,撰写论文,定好初稿;(4)2013.2 BootLoader的初步设计与评价;(5)2013.3 BootLoader整个程序的设计;(6)2013.5 修改,测试,定稿,装订,答辩。2、主要
13、措施:(1)通过有效途径查阅相关文献资料,引证参考已有的研究成果,确定论文研究主题。(2)与指导老师和同学进行多层次多方面的交流探讨,提炼观点,吸收建议。主要参考资料:1 潘孝帮,刘连浩. 基于ARM的嵌入式系统Bootloader的设计与实现J. 计算机系统应用. 2009(04) 2 袁磊,朱怡安,兰婧. 嵌入式系统BootLoader设计与实现J. 计算机测量与控制. 2009(02) 3 高伟,张洪波. 基于嵌入式系统的Bootloader分析与设计J. 唐山师范学院学报. 2009(05) 4 王景存,高峰. 基于ARM9的Bootloader的分析及设计J. 现代电子技术. 201
14、0(02) 5 任斌,赖树明,陈卫,吴忠良. 基于ARM9的嵌入式系统Bootloader设计与实现J. 东莞理工学院学报. 2007(01) 6 常赟杰,罗丹霞. 基于ARM9的Bootloader启动流程分析J. 科技信息(学术研究). 2008(36) 7 罗磊,戴学丰,刘树东. 基于ARM9&linux系统的bootloader设计J. 微计算机信息. 2008(14) 8 杨洁,赵刚. 嵌入式系统中Bootloader的编译与移植J. 四川大学学报(自然科学版). 2007(04) 9SAMSUNG公司. Samsung s3c2440 User Manual v1.0.pdf. 1
15、0SAMSUNG公司. K9F1208U0M-YCB0.pdf.指导教师意见:指导教师签名: 教研室意见:签 名: 年 月 日开 题 报 告 会 纪 要时间 2012年12月25日地点三教608与会人员姓 名职务(职称)姓 名职务(职称)姓 名职务(职称)李春树教授谭永宏副教授廖朝阳讲师杨熙讲师李小武副教授李艳芳副教授会议记录摘要:问题一、选题意义?答:随着三星公司S3C2440开发板的推出,在嵌入式系统产品的发展上又将迎来新一轮的变革,而要使S3C2440开发板能够正常运行起来,首先就必须要开发出一个与之硬件配套的具有良好性能的Bootloader,所以无论是从现在还是从长远来看,开发出一款
16、具有良好性能的Bootloader是具有重大意义的。问题二、前期做了哪些工作?答:查阅关于S3C2440开发板和BootLoader的相关资料,从理论上论证开发出的该款基于S3C2440开发板的BootLoader的优越性,比较分析确定系统的总体设计方案,设法将该款BootLoader更好地应用于S3C2440开发板中,并通过在S3C2440开发板上进行测试进一步论证该款S3C2440开发板的BootLoader的优越性。问题三、研究计划?答:首先收集相关资料、查阅相关资料确定设计方案,并完成开题报告,然后进行整体方案的设计、软件编写,在S3C2440开发板上进行软件的调试。最后根据查询所得的
17、资料及所编写的程序撰写论文,并在导师的指导下修改论文。会议主持人:记 录 人:年 月 日指导小组意见负责人签名: 年 月 日系部 意 见负责人签名:年月日注:此表由学生本人填写,一式三份,一份留系里存档,指导老师和本人各保存一份湖南科技学院毕业论文(设计)中期检查表毕业论文(设计)题 目基于S3C2440开发板BootLoader的设计学生姓名颜祖光学 号2系 别电子工程系专 业电子信息工程指导教师谭永宏检查日期2013.3.3指导教师检查情况记载及修改意见:修改意见:1. 论文的基本思路比较清晰,但调理还还不够清楚。2. 全文的行距不符合要求,请认真阅读新的撰写规范。3. 论文中的流程图注释
18、要按照规范来注释。4. BootLoader测试环节应该写详细。5. 参考文献按照学校的毕业论文撰写规范写,同时在正文中引用的位置上做好标记。6.摘要中要写明调试效果如何。签名: 注:此表用于指导教师在学生毕业论文(设计)初稿完成后对学生执行任务书情况进行中期检查时用,由指导教师填写。湖南科技学院毕业设计(论文)指导过程记录表毕业论文(设计)题目基于S3C2440开发板BootLoader的设计学生姓名颜祖光学号2专业班级电信0901指导教师谭永宏职称副教授系(教研室)电子工程系(电子科学与技术教研室)指导过程记录指导内容记录(一)选题、查阅资料指导:根据自己所学专业和特长,选一实用性强,能做
19、简易模型且有一定深度,能学以致用的题目。1、到图书馆查找和借阅与选题有关的文献和资料;2、从网上检索和下载与选题有关的文献和资料。学 生 签 名: 20 年 月 日 指导教师签名: 20 年 月 日指导内容记录(二)论文开题指导:1、题目应该简短、明确、有概括性;2、摘要是各个章节内容的浓缩,应做到简练、准确;3、关键词应采用能覆盖论文主要内容的通用词条;4、正文一般应包括绪论、论文主体及结论等部分;5、结论是毕业论文的总结,要求精炼、准确地概述全文的主要观点。学 生 签 名: 20 年 月 日 指导教师签名: 20 年 月 日指导内容记录(三)软件设计指导:明确系统实现功能,设计总体框图,根
20、据流程图编写软件代码学 生 签 名: 20 年 月 日 指导教师签名: 20 年 月 日指导内容记录(四)论文写作指导:主体的内容应包括以下几个方面:1、毕业论文总体方案设计与选择的论证;2、对本研究内容进行较全面、客观的理论阐述,应着重指出本研究内容中的创新、改进与实际应用之处; 学 生 签 名: 20 年 月 日 指导教师签名: 20 年 月 日指导过程记录指导内容记录(五)论文中期检查指导:1、加强对选题核心思想的理解;2、规范论文文句,减少主观语句的使用;学 生 签 名: 20 年 月 日 指导教师签名: 20 年 月 日指导内容记录(六)论文修改指导:1、按照毕业论文的标准格式排版。
21、2、参考文献按照学校的毕业论文撰写规范写,同时在正文中出现的位置以上标的形式标出,要有1篇以上外文参考文献。3、结论部分要精简,减少主观语句。学 生 签 名: 20 年 月 日 指导教师签名: 20 年 月 日指导内容记录(七)论文答辩指导:1、制作一个能反映论文主要内容,可放映510分钟的ppt演示文稿,作答辩陈述用;2、掌握研究内容的实际意义、创新、改进和特色之处,设计原理、工作过程等主要内容。3、演示实物突出自己的设计创新点。学 生 签 名: 20 年 月 日 指导教师签名: 20 年 月 日指导内容记录(八)论文初步定稿。学 生 签 名: 20 年 月 日 指导教师签名: 20 年 月
22、 日答辩小组组长意见(对情况是否属实做出意见)组长(签名): 年 月 日注:本表与毕业论文一起装订存档。湖南科技学院本科毕业论文(设计)评审表论文题目基于S3C2440开发板BootLoader的设计作者姓名颜祖光所属系、专业、年级电子工程系 电子信息工程 专业 2009年级指导教师姓名、职称谭永宏 副教授字 数12000定稿日期2013.5.8中 文 摘 要 随着S3C2440开发板的推出,嵌入式系统产品的发展上迎来新一轮的变革,因而开发出一个与之硬件配套的具有良好性能的Bootloader,具有重大意义。Bootloader是操作系统和硬件的枢纽,负责初始化硬件和引导嵌入式操作系统的内核。
23、本设计通过设置CPU为SVC模式,关看门狗,设置时钟,NANDFLASH初始化,DDR初始化,加载U-BOOT后面的剩余代码到RAM空间,设置好栈空间,然后跳转到主函数,在主函数中实现DM9000的初始化,串口的初始化,然后进入死循环等待命令,获取命令,执行命令,当执行bootm命令时,为内核设置启动参数,调用内核,使内核被成功引导,成功的完成了BootLoader的功能。关键词S3C2440, 开发板, BootLoader,U-BOOT英文摘要 With the development of S3C2440 board, products of embedded system are ma
24、king great progress. So we should develop bootloader with a complete set of hardware, which has great significance. Bootloader, a hub of operating systems and hardware, is responsible for the initialization of the hardware and boot embedded operating system kernel. This design sets the CPU as SVC mo
25、de. closing watchdog, setting the clock, NANDFLASH initialization, DDR initialization, loading U-BOOT remaining code into the RAM space, setting up the stack space, then jumping into the main function, which will work out the DM9000 initialization, serial port initialization, and then into the infin
26、ite loop waiting for commands, access to commands, executing the command, when performing the bootm command, setting boot parameters for kernel, which makes kernel successful completion of the BootLoader function.关键词 S3C2440,Development board,BootLoader,U-BOOT指导教师评定成绩评审基元评审要素评审内涵满分指导教师实评分选题质量25%目的明确
27、符合要求选题符合专业培养目标,体现学科、专业特点和教学计划的基本要求,达到毕业论文(设计)综合训练的目的。10理论意义或实际价值符合本学科的理论发展,有一定的学术意义;对经济建设和社会发展的应用性研究中的某个理论或方法问题进行研究,具有一定的实际价值。10选题恰当题目规模适当,难易度适中;有一定的科学性。5能力水平40%查阅文献资料能力能独立查阅相关文献资料,归纳总结本论文所涉及的有关研究状况及成果。10综合运用知识能力能运用所学专业知识阐述问题;能对查阅的资料进行整理和运用;能对其科学论点进行论证。10研究方案的设计能力整体思路清晰;研究方案合理可行。5研究方法和手段的运用能力能运用本学科常
28、规研究方法及相关研究手段(如计算机、实验仪器设备等)进行实验、实践并加工处理、总结信息。10外文应用能力能阅读、翻译一定量的本专业外文资料、外文摘要和外文参考书目(特殊专业除外)体现一定的外语水平。5论文质量35%文题相符较好地完成论文选题的目的要求。5写作水平论点鲜明;论据充分;条理清晰;语言流畅。15写作规范符合学术论文的基本要求。用语、格式、图表、数据、量和单位、各种资料引用规范化、符合标准。10论文篇幅10000字左右。5实评总分 成绩等级 指导教师评审意见:指导教师签名: 说明:评定成绩分为优秀、良好、中等、及格、不及格五个等级,实评总分90100分记为优秀,8089分记为良好,70
29、79分记为中等,6069分记为及格,60分以下记为不及格评阅教师评定成绩评审基元评审要素评审内涵满分评阅教师实评分选题质量25%目的明确符合要求选题符合专业培养目标,体现学科、专业特点和教学计划的基本要求,达到毕业论文(设计)综合训练的目的。10理论意义或实际价值符合本学科的理论发展,有一定的学术意义;对经济建设和社会发展的应用性研究中的某个理论或方法问题进行研究,具有一定的实际价值。10选题恰当题目规模适当,难易度适中;有一定的科学性。5能力水平40%查阅文献资料能力能独立查阅相关文献资料,归纳总结本论文所涉及的有关研究状况及成果。10综合运用知识能力能运用所学专业知识阐述问题;能对查阅的资
30、料进行整理和运用;能对其科学论点进行论证。10研究方案的设计能力整体思路清晰;研究方案合理可行。5研究方法和手段的运用能力能运用本学科常规研究方法及相关研究手段(如计算机、实验仪器设备等)进行实验、实践并加工处理、总结信息。10外文应用能力能阅读、翻译一定量的本专业外文资料、外文摘要和外文参考书目(特殊专业除外)体现一定的外语水平。5论文质量35%文题相符较好地完成论文选题的目的要求。5写作水平论点鲜明;论据充分;条理清晰;语言流畅。15写作规范符合学术论文的基本要求。用语、格式、图表、数据、量和单位、各种资料引用规范化、符合标准。10论文篇幅10000字左右。5实评总分 成绩等级 评阅教师评
31、审意见: 评阅教师签名: 说明:评定成绩分为优秀、良好、中等、及格、不及格五个等级,实评总分90100分记为优秀,8089分记为良好,7079分记为中等,6069分记为及格,60分以下记为不及格。湖南科技学院本科毕业论文(设计)答辩记录表论文题目基于S3C2440 开发板BootLoader的设计作者姓名颜祖光所属系、专业、年级电子工程系 电子信息工程专业 2009年级指导教师姓名、职称 谭永宏 副教授答 辩 会 纪 要时间2013年5月18日地点三教608答辩小组成员姓 名职务(职称)姓 名职务(职称)姓 名职务(职称)李春树教授谭永宏副教授廖朝阳讲师杨熙讲师 李小武副教授李艳芳副教授答辩中
32、提出的主要问题及回答的简要情况记录:问题一:基于S3C2440开发板BootLoader的设计的关键技术?答:NANDFLASH的读取、写入、擦除,这部分需要根据S3C2440手册提供的流程图逐步实现,tftp命令的实现 也是BootLoader的设计的关键技术,这部分涉及到TCP/IP协议栈,需要理解通信协议以及协 议中涉及的注意事项。问题二:系统实现了哪些功能?答:该设计中实现了NANDFLASH的读取、写入、擦除功能,ping功能,tftp功能,help功能,环境设置、保存功能,bootm功能。问题三:内存如何分配?答:从合适的内存地址开始,一般是选择内存的最后2M内存,从低地址开始依次
33、分为代码段,数据段,只读数据段,命令段,BSS段。会议主持人:记 录 人:年 月 日答辩小组意见评语:评定等级: 负责人(签名): 年 月 日系学位委员会意见评语:论文(设计)最终评定等级:负责人(签名): 系部(公章) 年月 日校学位委员会意见评语:评定等级: 负责人(签名): 年月 日目 录 1 绪论错误!未定义书签。1.1 BootLoader的目的及其意义11.2 BootLoader的国内外发展现状和前景12 BootLoader的概述22.1 BootLoader介绍22.2 BootLoader组成22.3 BootLoader的功能及特色23 BootLoader的设计43.1
34、 BootLoader中内存的规划43.2 BootLoader启动流程代码的设计53.3 BootLoader命令代码的设计113.3.1 NANDFLASH读取,写入,擦除代码设计123.3.2 从网口下载数据的TFTP命令代码设计163.3.3 其它命令代码设计193.4 Makefile的设计214 BootLoader的调试与整机性能测试224.1 BootLoader的常规调试224.2 BootLoader的性能测试235 结论23致 谢24参考文献25附 录126基于S3C2440开发板的BootLoader设计摘 要随着S3C2440开发板的推出,嵌入式系统产品的发展上迎来新
35、一轮的变革,因而开发出一个与之硬件配套的具有良好性能的Bootloader,具有重大意义。Bootloader是操作系统和硬件的枢纽,负责初始化硬件和引导嵌入式操作系统的内核。本设计通过设置CPU为SVC模式,关看门狗,设置时钟,NANDFLASH初始化,DDR初始化,加载U-BOOT后面的剩余代码到RAM空间,设置好栈空间,然后跳转到主函数,在主函数中实现DM9000的初始化,串口的初始化,然后进入死循环等待命令,获取命令,执行命令,当执行bootm命令时,为内核设置启动参数,调用内核,使内核被成功引导,成功的完成了BootLoader的功能。【关键词】:S3C2440,开发板,BootLo
36、ader,U-BOOT The Design Of BootLoader Based On S3C2440 Abstract With the development of S3C2440 board, products of embedded system are making great progress. So we should develop bootloader with a complete set of hardware, which has great significance. Bootloader, a hub of operating systems and hardw
37、are, is responsible for the initialization of the hardware and boot embedded operating system kernel. This design sets the CPU as SVC mode. closing watchdog, setting the clock, NANDFLASH initialization, DDR initialization, loading U-BOOT remaining code into the RAM space, setting up the stack space,
38、 then jumping into the main function, which will work out the DM9000 initialization, serial port initialization, and then into the infinite loop waiting for commands, access to commands, executing the command, when performing the bootm command, setting boot parameters for kernel, which makes kernel
39、successful completion of the BootLoader function. 【Key words】:S3C2440,Development board,BootLoader,U-Boot1 绪论1.1 BootLoader的目的及其意义Linux内核的启动必须具备一定的条件,如CPU寄存器的设置要正确,CPU模式要设置成SVC模式,Cache和MMU的设置也必须正确等等1。开发板上电启动CPU的时候,一般连内存控制器都没有初始化过,根本无法在主存中运行程序,更不可能处在Linux 内核启动环境中,为了初始化CPU及其他外设,使得Linux内核可以在系统主存中运行,并让系
40、统符合Linux 内核启动的必备条件,必须要有一个先于内核运行的程序,他就是所谓的引导加载程序BootLoader2,开发出一个具有良好性能的BootLoader用来初始化开发板的设备以使内核能在开发板上正常的运行起来是非常有必要的,随着三星公司S3C2440开发板的推出,在嵌入式系统产品的发展上迎来了新一轮的变革3,所以开发出一个与S3C2440开发板硬件配套的具有良好性能的Bootloader,具有重大意义。主要优势体现在:(1)程序具有很好的架构。(2)程序实现了人机界面上用tftp命令从网口下载内核到内存的功能。(3)程序实现了人机界面上NandFlash的擦除与写入功能。(4)程序实
41、现了人机界面上命令的帮助功能。(5)程序实现了人机界面上环境的设置及保存功能。(6)程序实现了人机界面上Ping功能。(7)程序实现了人机界面上help功能。(8)程序实现了人机界面上环境设置与保存功能。BootLoader是使S3C2440开发板能够正常的运行内核的必要的初期的引导程序,所以它正成为在S3C2440开发板上进行软件移植研究的热点,也是我要研究它的目的所在。1.2 BootLoader的国内外发展现状和前景目前,国外在研究基于S3C2440的BootLoader上已经有非常成熟的理论与技术,无论是在整个BootLoader程序的架构还是在设计方面都已经趋近于完美4,但国内在整个
42、BootLoader程序的研究上都是借鉴国外软件工程师已经研究完成的产品。在这些已有的程序的基础上进行一些修改,然后移植到我们所使用的嵌入式产品上,因而在这方面国内并没有什么改革性的突破5,但是近来随着三星S3C2440的推出,嵌入式产品又将进入新一轮的更新换代,BootLoader也将朝着引导更快,更加稳定,人机界面更人性化的方向发展,开发出一款符合上述要求让大众满意的BootLoader将会带来巨大的经济效益,所以研究基于S3C2440的BootLoader是非常有前景和必要的。2 BootLoader概述 2.1 BootLoader介绍 本设计是一个较完善的基于S3C2440的Boot
43、Loader,具有良好的架构,而且整个程序的文件布局也非常规范,其具体设计可分为两个大的阶段6,第一阶段为硬件设备初始化,这一阶段主要包括设置CPU为SVC模式,关看门狗,设置时钟,nand flash初始化,DDR初始化,然后加载U-BOOT后面的剩余代码到RAM空间,设置好栈空间,跳转到第二阶段代码入口,第二阶段步骤为初始化本阶段使用的硬件设备,这一阶段硬件初始化包括DM9000的初始化,串口的初始化,然后进入死循环等待命令,执行命令,当执行bootm命令时,为内核设置启动参数,调用内核,到此BootLoader执行完毕,为了能更好的人机交互,实现了tftp, nand write, na
44、nd erase, nand write, setenv, saveenv, help, bootm ping等命令,操作者可以通过这些命令更好的控制整个BootLoader对开发板的引导。 2.2 BootLoader组成 BootLoader组成框图如图2-1所示。 在board文件夹中存放了与特定开发板相关的代码,在common文件夹中存放的是一些公用的代码,如关于命令的,环境设置的,硬件初始化等C文件,在net文件夹中存放的是与网络通信相关的C文件,在cpu文件夹中存放的是中断的处理函数文件以及整个BootLoader程序的起始代码文件satrt.S文件以及整个程序的编译,在inclu
45、de文件件中存放的是一些关于声明的文件,在libc文件中存放的是一些静态库函数文件,在lib_arm文件中存放的是关于开发板的引导加载内核的文件,在lib_generic文件夹中存放的是一些通用的打印函数,输入输出函数,至此BootLoader中所有函数的规划与分布已大致说明。2.3 BootLoader实现的功能及特色 在BootLoader中,实现tftp, nand write, nand erase, nand read, setenv, saveenv, help, bootm ping等命令。通过这些命令操作者可以非常方便的实现对开发板的引导,操作者可以通过nand erase命令
46、擦除NandFlash中的已存在的数据,从而可以用nand write命令再把需要存储的数据写入NandFlash中,当需要读取数据时又可以通过nand read命令从NandFlash中读取出数据到内存中,从而实现了擦除,保存,读取功能,同时当操作者需要测试开发板是否与主机连接正常时,操作者可以使用ping命令的功能来进行测试,如果能够与主机正常连接,则会显示主机可达,同时在本设计中实现网络下载功能,通过tftp命令,开发板可以通过网卡从主机上下载数据到内存,然后可以写入到NandFlash中,这样就实现了从网口下载内核到内存,然后实现引导内核的功能,在本设计中还实现了一个非常重要的功能是h
47、elp功能,当操作者忘记了如何使用这些命令时,操作者可以使用该功能,则会显示所有命令的正确用法,这为初次使用的操作者带来了极大的方便,很快就能学会如何去正确的使用各种命令。程序在编译方面也做了很大的努力,使用了Makefile,在Makefile中实现了只要在可编译环境下使用make命令就可以实现对整个BootLoader源代码的编译,同时删除因编译产生的文件时也只要使用make clear命令即可,这样增加了程序的操作的方便性,这些就是程序实现的一些功能及特色,但程序还有许多方面尤其是可移植性方面需要改进,这只能期待后期的进一步努力。 特定开发板相关的代码 board文件夹 命令,设置,硬件
48、初始化代码 common文件夹 总文件夹 中断与起始代码 cpu文件夹 网络通信相关的代码 net文件夹 声明的代码 include文件夹 库函数及通用打印输出函数代码 lib库文件夹 编译文件 其它文件 图2-1 BootLoader组成框图3 BootLoader的设计 3.1 BootLoader中内存的规划其内存布局如图3-1所示。要实现BootLoader首先要做的就是规划好代码以及各种变量在内存中的存储,怎么样存储,在链接脚本中进行指定。在链接脚本中指定输出文件平台为ARM,指定可执行文件的起始代码为_start,从0x地址开始,.text指定代码段的位置,ALIGN(4)指定以4字节对齐,.rodata指定只读段的位置,_u_boot_cmd_start指定命令代码存放的开始位置,_u_boot_cmd_end指定命令代码存放的结束位置,_bss_start指定bss段的开始位置,_bss_end指定bss段的结束位置,其设计如下。VECTOR TEXT RODATA DATA U-BOOTCMD BSS 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目管理情况
- 2015年辽宁省朝阳市中考历史试卷(空白卷)
- 苏教版七年级上册生物知识点总结
- 环保行业废物处理与循环经济方案
- 企业信息化系统规划与实施作业指导书
- 2025船舶货物运输合同标准范本
- 上海中考语文知识点 中考落实的知识点
- 2025年杭州酒店管理合同范本
- 2025的学校网络设备采购合同书范本
- 音乐游戏培训内容
- 九月抽考电务作业指导书
- 儿童节约用水你我同行3月22日世界水日主题班会PPT
- YC/T 478-2013烟草商业企业卷烟物流配送中心安全管理规范
- GB/T 24456-2009高密度聚乙烯硅芯管
- 幼儿园惊蛰来了课件
- 转包违法分包等违法行为认定查处管理办法讲座课件
- PLM解决方案与NX培训教材课件
- 部编版六年级下册道德与法治全册优秀课件
- 【精选】方剂学解表剂练习题
- 法制宣传教育小报
- 上海西郊国际农产品展示直销中心贵州馆入驻方案
评论
0/150
提交评论