欢迎来到天天文库
浏览记录
ID:58962429
大小:1.20 MB
页数:16页
时间:2020-01-31
《Bootloader下实现Flash的读写.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.word可编辑.目录课题要求21.本课题的目的22.运行环境2正文2一.课题分析2二.系统设计3三.技术实现问题5四.编译及调试13五.总结与体会16设计性实验报告成绩:指导教师签名:16.专业.专注..word可编辑.课题要求1.本课题的目的在bootloader启动后,提供一个可以读写Flash的程序,可以提供用户保存一些数据,如系统的IP地址。2.运行环境硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上。软件:PC机操作系统win98、Win2000或WinXP、ARMSDT2.51或ADS1.2集成开发环
2、境、仿真器驱动程序、超级终端通讯程序。正文一.课题分析本次课题是基于嵌入式系统BootLoader的Flash的读写,因此必须首先了解嵌入式系统BootLoader的框架和编写过程。BootLoader和BIOS在功能上是没有差别的。其功能包括上电后对系统进行自检,主要包括SDRAM,CACHE,FLASH等硬件;提供ShellMenu检测设置菜单和相应的检测程序;引导操作系统及应用程序。BootLoader所谓的引导功能指的是:BootLoader程序首先获得系统的控制权之后,对关键硬件自检,在没有发现故障并且控制台没有发出启用ShellMenu检测菜单的情况
3、下,依据文件系统的管理和支持,从电子硬盘即16MNANDFLASH中读取操作系统或应用程序的代码到SDRAM的指定位置,然后把程序指针转移到该位置,从而使操作系统获得控制权,完成引导过程。在ShellMenu检测菜单中也可以设置实现引导功能的命令。.专业.专注..word可编辑.执行BootLoader时,首先作了必要的硬件初始化,仅给出了NANDFLASH自检例程(没有给出芯片操作细节),然后输出提示信息。接下来会等待查询是否有键按下,如果没有则直接引导系统;否则显示ShellMenu。综上,要实现嵌入式系统BootLoader下Flash的读写,需要在基本B
4、ootLoader程序的基础上,在ShellMenu上添加擦除扇区、把数据写入Flash、从Flash中读取数据三个菜单,并编写相关功能菜单的代码。二.系统设计本次设计性试验的在基本的bootloader的基础上添加了三个模块:扇区擦除模块、把数据写入Flash模块、从Flash中读取数据模块。整个实验的的主体部分包含bootloader引导过程流程图、进入ShellMenu后的流程图以及新添加的三个模块的流程图。.专业.专注..word可编辑.图1图2图3图4.专业.专注..word可编辑.图5二.技术实现问题1、在ShellMenu上添加菜单首先在Shell
5、Menu上添加擦除扇区、把数据写入Flash、从Flash中读取数据三个菜单。每个菜单项都对应一个类型为Bios_function的结构体变量,其中包括该菜单项的功能函数指针,快捷键,菜单中的提示信息等内容。所有这些结构体变量都在一个数组中,以方便检索。在显示菜单后程序等待按键并根据键值查找对应的功能函数。ios_function的结构体变量的定义如下:typedefstruct{Bios_func_tfunc;char*pShellMenu;//shell模式下显示的菜单字符串charMenuAcc;//shell模式下菜单快捷键char*pCommand;/
6、/命令行模式下的命令char*pHelp;//命令行模式下的帮助}Bios_function;(1)在ShellMenu上添加擦除扇区菜单:Bios_functionSectorErase_func={SectorErase,"erasetheflash",//shell模式下显示的菜单字符串's',//shell模式下菜单快捷键.专业.专注..word可编辑."eraseflsh",//命令行模式下的命令NULL//命令行模式下的帮助};(2)在ShellMenu上添加把数据写入Flash菜单Bios_functionFlashwrite_func={Flas
7、hwrite,"writetheflash",//shell模式下显示的菜单字符串'w',//shell模式下菜单快捷键"writeflash",//命令行模式下的命令NULL//命令行模式下的帮助};(3)在ShellMenu上添加从Flash中读取数据菜单Bios_functionFlashread_func={Flashread,"readtheflash",//shell模式下显示的菜单字符串'r',//shell模式下菜单快捷键"readflsh",//命令行模式下的命令NULL//命令行模式下的帮助};2、编写SectorErase_func函数.专
8、业.专注..word可编
此文档下载收益归作者所有