
嵌入式a8 s5pv210)实验指导.docx
52页嵌入式 A8(S5PV210)实验指导本实验采用华清远见 A8 实验箱--FS210,搭载三星生产的 ARM-A8 内核的单 核处理器 S5PV210这款处理器曾用于制造三星 TAB 平板,性能比较强大本 课程实验旨在通过对实验箱的使用掌握基本的 ARM-A 系列芯片系统的嵌入式开 发流程包括四个实验: 1、裸机开发环境及 linux 操作系统下开发环境搭建 2、应用程序如何烧写到开发板中以及如何调试 3、裸机下实现开发板与 PC 机的串口通信 4、带操作系统下的嵌入式开发原理初识通过四次试验,使同学们掌握嵌入式开发流程,理解有无操作系统在开发嵌入 式系统过程中的区别,为以后深入学习嵌入式打下入门基础最后附有实验报告要求实验实验 1 1:裸机开发环境及:裸机开发环境及 linuxlinux 操作系统下开发环境搭建及操作系统下开发环境搭建及 LinuxLinux常用命令及常用命令及 vi,vi, gdbgdb 的使用的使用实验目的:实验目的: (1)掌握嵌入式开发环境搭建的基本流程 (2)掌握 linux 系统安装过程,熟悉基本的 Linux 指令操作 (3)理解交叉编译的意义 实验原理:实验原理: 嵌入式软件开发不同于 PC 机的软件开发,由于不同硬件平台的指令系统不 同,要想在个人计算机上编写嵌入式软件和程序就需要使用对应的嵌入式平台 的开发环境,比如大家学过的 51 单片机,用的 KEIL(keil-C51)软件就是针 对 51 内核平台下的集成开发环境,keil-C51 软件中集成了代码编写、交叉编 译、链接、程序烧写、仿真等最主要功能,从而使 51 单片机软件开发者在一个 软件中实现了整个的程序开发流程,方便快捷。
同理,ARM 内核平台也有其相应的开发平台,包括 IAR,KEIL FOR ARM 这两 个著名软件,这两个软件在开发不带操作系统以及带有小型嵌入式操作系统 (如 u\Cos,RT-thread,Vx-works 等)的产品时非常方便,但在开发如 linux、安卓系统的产品时力不能及因此需要用到更通用些的开发环境,如 eclipse、PC-linux 系统 Eclipse 是一个开源的软件工程文件管理界面,当它的底层安装了不同的 编译、仿真等工具后,就可以用来开发不同平台的软件,如安卓 APP,FPGA 软 核代码,当然也包括 ARM 软件 当需要开发带有 linux 内核的大型嵌入式系统时,通常要在 linux 操作系 统下进行,因此安装 linux 操作系统是开发嵌入式高端产品的必由之路,linux 的使用流程能够帮助你更好理解嵌入式开发的每个环节 实验仪器及资料:实验仪器及资料: 1 个人电脑(建议安装 winXP 或 win7-32b,更高版本系统可能导致驱动安装失 败) 2 FS210 试验箱3 FS210 试验箱配套资料(12G)(资料下载地址: 1 1、、裸机开发环境搭建裸机开发环境搭建( (这一大步骤需要在实验课上完成,第二步可以回去自己这一大步骤需要在实验课上完成,第二步可以回去自己 做做) ) 下面为 win7-32b 系统下软件安装流程,以后的实验都使用 win7-32 位系统进行, 使用其他系统的同学请参照实验箱配套书籍进行操作。
此实验手册不做介绍 把下载的实验箱资料解压(假设解压在桌面上)后: (1)安装 GCC 编译器和 Yagarto 工具包(圈住的两个都装,安装位置随意): (已经安装)(2)安装 FS-JTAG 调试软件(安装位置随意):(已经安装)(3)安装 FS-JTAG 驱动:如图所示用 USB 线连接 JTAG 仿真器和电脑--右键--管理--设备管理器,如图会出现两个带黄色叹号的设备(下图中的两个未知设备不必管它,只关心那两 个“USBJTAG go ”回车“setenv bootargs root=nfs nfsroot=192.168.100.192:/source/rootfs ip=192.168.100.191 init=/linuxrc.console=ttySAC0,”回车 “saveenv”回车,结果如图②再次重启开发板:开关关上再打开,(注意这次也会出现倒计时,但是不要 按下任何按键),结果如图此时还没有此时还没有 bootboot 完成,请等待一段时间完成,请等待一段时间 最后弹出如下内容,表示开发板已经通过网线把最后弹出如下内容,表示开发板已经通过网线把 PCPC 机的文件加载完成机的文件加载完成(6)制作 SD 卡启动盘 ①把下图路径的文件夹拷贝到共享目录下②在 ubuntu 终端里输入“cd ~”回车继续输入“cp /mnt/hgfs/VM_ENJ/sd_fusing/ ~ -a”回车继续输入“ls”回车 ③继续输入“cd sd_fusing”回车继续输入“make”回车继续输入“chmod 777 sd_fusing.sh”回车至此编译完成 ④拔下开发板的 SD 卡,用读卡器插在电脑上⑤在共享文件夹里新建一个文件夹命名为 sd_out。
终端输入“cp ~/sd_fusing/sd_fusing.sh /mnt/hgfs/VM_ENJ/sd_out/”回车,就把生成的 sd_fusing.sh 复制到了共享文件夹下的 sd_out 中 ⑥在 windows 下把第五步复制的文件拷贝到 SD 卡根目录,然后把 SD 卡插入开 发板 ⑦打开 putty 助手,拨码开关拨成 0110,启动开发板,结果如图⑧在 putty 中输入“tftp u-boot.bin”回车继续输入“nand erase 0 ”回车继续输入“nand write 0 ”回车⑨重启开发板,设置环境参数 依次输入下面的内容 “setenv serverip 192.168.100.192”回车 “setenv ipaddr 192.168.100.191”回车 “setenv gatewayip 192.168.100.1”回车 “setenv bootcmd tftp zImage\; go ”回车“setenv bootargs root=nfs nfsroot=192.168.100.192:/source/rootfs ip=192.168.100.191 init=/linuxrc.console=ttySAC0,”回车 “saveenv”回车,结果如图⑩再次重启开发板:开关关上再打开,(注意这次也会出现倒计时,但是不要 按下任何按键),结果如图实验结束!实验结束!本次实验到底在做什么?主要是做 SD 卡的启动,我们把需要运行的程序拷贝到了 SD 卡中,然后拨 码开关拨到 0110,这样 uboot 代码自动判断此时要求启动 SD 卡,就会加载 SD 卡中的 sd_fusing.sh,然后运行这个文件。
就得到了上图结果,虽然结果类似 于网络文件系统的启动方式,但本质上启动位置不同之前的网络启动方式是 把拨码拨至 1000,当然内部原理就不一样了以后当大家深入学习之后,可能会把一个嵌入式 linux 系统镜像烧写到 SD 卡中,然后拨码拨至 0110,这样,linux 就会在开发板上启动并且运行如果 把安卓镜像烧进 SD 卡,就会启动安卓系统再此还要说明一点,这个拨码开关到底是什么,它是普通的 CPU 引脚连在 开关上的当系统上电,首先运行 CPU 内部的 flash 中的初始化以及系统加载 代码这段代码相当于个人电脑刚开机进入 windows 之前所运行的那段程序, 因为我们电脑也可以装多个操作系统,通过键盘选择启动哪一个 CPU 的 flash 中的代码会判断拨码的状态,今儿决定启动谁 至于 flash 中的启动代码的设计,有的由 CPU 制造商提供,也可以由嵌入 式开发者自己设计其设计的总体流程类似于开发没有外部 flash 的 51 单片机, 只是因为 ARM-A8 系统远比 51 单片机复杂,所以用 ARM 汇编写启动代码会高深 一些思考题:思考题: 1.1.在在 linuxlinux 系统下开发基于系统下开发基于 linuxlinux 系统的嵌入式系统和开发裸机下嵌入式系统系统的嵌入式系统和开发裸机下嵌入式系统 的区别有哪些?(两点即可)的区别有哪些?(两点即可) 2.linux2.linux 操作系统、驱动程序、应用程序之间的位置关系是什么?操作系统、驱动程序、应用程序之间的位置关系是什么?实验报告要求实验报告要求 1 实验名称,实验日期等 2 实验目的 3 实验原理 4 实验仪器与资料 5 实验内容与步骤(不必把完整的步骤都写在实验报告上,只需要总结一个大 致过程即可) 6 实验最终现象(第一个实验只要一个查看自己的 ip 地址和接口信息的截图) 7 思考题(有思考题的实验必须要写思考题,格式:问题加答案) (前 5 条可以简写。
(实验现象或结果必须贴图,思考题必须完成) 8 实验体会与总结。












