文档详情

嵌入式系统实验报(华中科技大学).doc

发布:2016-09-22约2.92万字共13页下载文档
文本预览下载声明
课 程 实 验 报 告 实验名称:嵌入式系统实验 专业班级:计算机科学与技术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中,重启目标板电
显示全部
相似文档