- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统实验报告(华中科技大学).
课 程 实 验 报 告
实验名称:嵌入式系统实验
专业班级:计算机科学与技术x班
学 号: Ux
姓 名: x
合 作 者: x
实验时间: xxxx年xx月xx日
计算机科学与技术学院
试验一: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中,重启目标板电
文档评论(0)