- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
bootloader嵌入式实验5
福州大学软件学院
实 验 报 告
学生姓名: 学 号: 课程:嵌入式系统开发 实验地点: 实验项目名称:Bootloader实验 二、实验目的:
了解BootLoader 的基本概念和框架结构
了解BootLoader 引导操作系统的过程
掌握bootloader 程序的编译方法
掌握BootLoader 程序的使用方法 实验内容:
Bootloader 程序的编译
确认已经在目标板上安装Toolchain。进入/XSBASE270/Bootloader 目录,可以查看到该目录下的所有资源文件。可以使用make 命令来创建名为boot 的Bootloader 镜像。/Boot-XSBASE270]# make
下载Bootloader 到目标板
将PC 的并口与目标板的并口相连
使用编译生成的jflashmm来将Bootloader 烧写到flash 存储器中。
为了方便起见,可以将Jflash 工具拷贝到Bootloader 所在的目录下,然后在该目录下使用jflashmm 命令烧写Bootloader 到目标板。
重启目标板,会出现Bootloader 的提示符,可以在该提示符下面使用Bootloader 的各种命令。
熟悉Bootloader的使用方法
Minicom 设置完成后,运行该工具,再将XSBase270-Module 重启。
自动启动之前,系统预留了3 秒钟的延迟时间。在这段时间之内,按下任意键将显示如下图所示的Bootloader 的提示符。如果没有检测到键盘的输入,系统将自动启动。 实验器材(设备、软件):
装有Linux操作系统的PC机一台
XSBase270或者XSBase255ARM实验开发平台一套 五、实验步骤及操作:
挂载u盘到虚拟机下, 命令截图如下:
用make 命令来创建名boot 的Bootloader 镜像
编译过程出错,修改原/root目录下.bash_profile,修改后source命令生效
将boot拷贝到/jflash/jflash_temp目录下,用命令./jflashmm boot来将Bootloader 烧写到flash 存储器中
烧写中
烧写完成
烧写完成后重启,在重启的前3秒内按任意键,会进入如下界面
六、实验数据及结果分析:
七、实验结论:
在进行bootloader相关实验的同时进一步温习了U盘挂载的相关命令操作。实验中初步了解了通过串口进行的flash烧写,目标机上bootloader从主机上下载文件等,实现过程中并不是很顺利,还有些没有完全理解,有待进一步学习了解。 八、思考题
1、阅读bootloader的源程序代码,特别是start.s和main.c两个开始函数。
main.c部分
设置内核启动参数
#define u16(x) (volatile unsigned *)(x)
#define u32(x) (volatile unsigned *)(x)
//#define GPSR0 *(volatile unsigned long *)(0x40e00018)
//#define GPCR0 *(volatile unsigned long *)(0x40e00024)
#define PWMCR0 *(volatile unsigned long *)(0x40b00000)
#define PWMDCR0 *(volatile unsigned long *)(0x40b00004)
#define PWMPCR0 *(volatile unsigned long *)(0x40b00008)
extern void delay(time);
#define LED8 (*(volatile unsigned short *)(0)
uart_init();//初始化串口
I2CWrite(0x20, 0x01);
I2CWrite(0x23, 0xf);
time_init();//初始化定时器
config_init(); //内存映射配置初始化
iflash_init();//存储器初始化
PWMPCR0 = 0xff;
PWMDCR0 = (0x4ff2);
//let eth CS is ok
(*(volatile unsigned long *)(0x4800000c))
文档评论(0)