- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统实验报告(华中科技大学).doc
嵌入式系统
xxxxx
指导老师: 张杰
2012/6/25
试验一:bootloader (ads、引导)
一、实验任务
1、熟悉ADS 1.2开发工具
创建、编译、下载、调试工程
2、串口通讯
串口控制器初始化、收/发数据
3、配置主机端的nfs服务器
配置主机端的nfs服务器,以连接linux核心
4、下载并运行linux核心
使用自己的串口程序下载并运行linux核心
二、实验内容
编写串口接收数据函数
编写串口发送数据函数
学习ads、jtag调试、flash烧写
打印菜单,等待用户输入
下载并运行linux核心
配置主机的nfs服务器,与linux核心连接
三、实验步骤
1.编写串口接收数据函数
编写串口发送数据函数
修改bootloader:菜单、串口收发、命令行;
接收串口数据并做相应处理:
while(1)
{
打印菜单并等待用户输入;
switch(ch) //根据用户输入做相应处理
{
case 1:
imgsize=xmodem_receive((char *)KERNEL_BASE, MAX_KERNEL_SIZE);
if(imgsize==0) //下载出错;
else //下载成功;
break;
case 3:
nand_read((unsigned char *)KERNEL_BASE, 0 4*1024*1024);
case 2:
BootKernel(); //这里是不会返回的,否则出错;
break;
default:
break;
}
}
Bootloader的main()函数打印菜单:
int main(void)
{
ARMTargetInit(); //目标板初始化;
//接收用户命令,传递linux核心;
Uart_puts(Menu:\n\r);
Uart_puts(1.Load kernel via Xmodem;\n\r);
Uart_puts(2.Boot linux; \n\r);
Uart_puts(3.Load kernel from flash and boot; \n\r);
Uart_puts(Make your choice.\n\r);
do{
ch=Uart_getc();
}while(ch!=1 ch!=2 ch!=3);
return 0;
}
串口读写:
void Uart_putc(char c)
{
while(!SERIAL_WRITE_READY());
((UTXH0) = (c));
}
unsigned char Uart_getc( )
{
while(!SERIAL_CHAR_READY());
return URXH0;
}
2.使用ads1.2编译bootloader;
3.使用uarmjtag下载、调试bootloader;
4.使用axd查看变量、内存,单步跟踪;
5.配置超级终端,与bootloader通讯;
6.配置nfs;
编辑/etc/export文件:
/home/arm_os/filesystem/rootfs 目标板ip(rw,sync)
/home/arm_os/filesystem/rootfs 主机ip(rw,sync)
启动nfs服务器:
/etc/init.d/nfs restart
测试nfs服务器是否正常运行:
mount 主机ip:/home/arm_os/filesystem/rootfs /mnt
7.以root用户启动cutecom,将cutecom配置改为115200 bps,8位,1位停止位,无校验,xmodem,no line end;
8.使用bootloader重新下载Linux核心映像,启动核心运行后,察看是否成功加载nfs上的root文件系统;
9.启动Linux核心运行,察看结果;
10.linux核心能够运行到加载root步骤,说明bootloader正常运行;
11.将bootloader烧写到flash中,重启目标板电源,察看bootloader是否烧写正常,下载核心测试;
目标板linux系统正常运行到命令行模式下,能够正常输入linux命令,说明实验成功。
四、实验过程中遇到的问题及解决方案
问题一 :打开dubug,下载zImage失败,调试时发现下载失败原因是发生错误程序写为无限循环。
解决
文档评论(0)