logo资料库

嵌入式系统设计与应用 实习报告.doc

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
一、系统简介
嵌入式系统软件组成大致如下图所示:
二、镜像烧写
Tftp 配置:
nfs服务器配置:
内核镜像的下载与烧写:
文件系统镜像的下载与烧写:
三、文件系统的移植
根文件系统制作:
NFS测试:
制作jffs2文件系统:
四、UDEV的移植
五、LED驱动编写与测试
六、Android应用程序开发基础——简单音频播放器
源文件:Main.java
源文件:main.xml
七、心得体会
学 号: 140 嵌入式系统设计与应用 实习报告 嵌入式 linux 设计与应用 学 生 姓 名 班 成 级 绩 计算机与信息工程学院 2017 年 12 月 9 日
前 言 近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在 通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系统无 疑成为当前最热门最有发展前途的 IT 应用领域之一。 嵌入式 Linux 嵌入式 Linux 是以 Linux 为基础的嵌入式作业系统,它被广 泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及 航空航天等领域中。嵌入式 linux 是将日益流行的 Linux 操作系统进行裁剪修改, 使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式 linux 既继承了 Internet 上无限的开放源代码资源,又具有嵌入式操作系统的特性。嵌入式 Linux 的特点是版权费免费;购买费用媒介成本技术支持全世界的自由软件开发者提供 支持网络特性免费,而且性能优异,软件移植容易,代码开放,有许多应用软件 支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考 和移植,实时性能 RT_Linux Hardhat Linux 等嵌入式 Linux 支持,实时性能稳定 性好安全性好。。 本次设计是采用三星公司的 64 位芯片 S5PC100,是 iPhone 3GS 的主 CPU, 采用 ARM v7 的 Cortex-A8 内核,运算能力强劲,是新一代高性能消费电子产品 的理想选择。 关键词:ARM Cortex-A8 S5PC100 Linux
目录 一、系统简介....................................................................................................... 1 二、镜像烧写....................................................................................................... 1 Tftp 配置:...................................................................................................1 nfs 服务器配置:............................................................................................ 3 内核镜像的下载与烧写:.............................................................................. 4 文件系统镜像的下载与烧写:...................................................................... 5 三、文件系统的移植........................................................................................... 5 根文件系统制作:.......................................................................................... 5 NFS 测试:......................................................................................................7 制作 jffs2 文件系统:..................................................................................... 7 四、UDEV 的移植............................................................................................... 8 五、LED 驱动编写与测试.................................................................................10 六、Android 应用程序开发基础——简单音频播放器................................... 10 源文件:Main.java..................................................................................... 10 源文件:main.xml...................................................................................... 13 七、心得体会..................................................................................................... 14
一、系统简介 嵌入式系统硬件设备包括嵌入式处理器和外围设备。其中,嵌入式处理器(CPU)是嵌 入式系统的核心部分,它与通用处理器最大的区别在于,嵌入式处理器大多工作在为特定用 户群所专门设计的系统中,它将通用处理器中许多由板卡完成的任务集成到芯片内部,从而 有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。如今,全世界嵌 入式处理器已经超过 1000 多种,流行的体系结构有 30 多个系列,其中以 ARM、PowerPC、 MC 68000、MIPS 等使用得最为广泛。 外围设备是嵌入式系统中用于完成存储、通信、调试、显示等辅助功能的其他部件。目 前常用的嵌入式外围设备按功能可以分为存储设备(如 RAM、SRAM、Flash 等)、通信 设备(如 RS-232 接口、SPI 接口、以太网接口等)和显示设备(如显示屏等)3 类。 嵌入式系统软件组成大致如下图所示: 应用层 驱动层 驱动层 二、镜像烧写 Tftp 配置: 1. 配置服务器端 使用以下的命令,安装 TFTP 服务。 install tftp-hpa tftpd-hpa xinetd linux@farsight:~$ sudo apt-get 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 推荐安装的软件包: inet-superserver 下列【新】软件包将被安装: tftp-hpa tftpd-hpa xinetd 共升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 9 个软件未被升级。 需要下载 198kB 的软件包。 解压缩后会消耗掉 631kB 的额外空间。 获取:1 http://archive.ubuntu.com intrepid/main tftp-hpa 0.48-2.2ubuntu1 [24.5kB] 获取:2 http://archive.ubuntu.com intrepid/main tftpd-hpa 0.48-2.2ubuntu1 [35.2kB] 获取:3 http://archive.ubuntu.com intrepid/main xinetd 1:2.3.14-7ubuntu1 [139kB] 下载 198kB,耗时 14s (13.8kB/s) 正在预设定软件包 ... 1
选中了曾被取消选择的软件包 tftp-hpa。 (正在读取数据库 ... 系统当前总共安装有 108543 个文件和目录。) 正在解压缩 tftp-hpa (从 .../tftp-hpa_0.48-2.2ubuntu1_i386.deb) ... 选中了曾被取消选择的软件包 tftpd-hpa。 正在解压缩 tftpd-hpa (从 .../tftpd-hpa_0.48-2.2ubuntu1_i386.deb) ... 选中了曾被取消选择的软件包 xinetd。 正在解压缩 xinetd (从 .../xinetd_1%3a2.3.14-7ubuntu1_i386.deb) ... 正在处理用于 man-db 的触发器... 正在设置 tftp-hpa (0.48-2.2ubuntu1) ... 正在设置 tftpd-hpa (0.48-2.2ubuntu1) ... 正在设置 xinetd (1:2.3.14-7ubuntu1) ... * Stopping * Starting [ OK ] [ OK ] internet internet superserver superserver xinetd xinetd 2. 修改配置文件 在/etc/default 下修改 tftp 服务的配置文件 tftpd-hpa: linux@farsight:~$ sudo vim /etc/default/tftpd-hpa # /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="-l -c -s" 说明:修改项,其中 TFTP_DIRECTORY 处可以改为你的 tftp-server 的根目录,参数-c 指 定 了可以创建文件。 创建文件夹/tftpboot, 修改权限为 666 3. 手动启动/停止服务 用户可以通过手动去启动/停止 TFTP 服务器,修改配置文件后必须重新启动服务。 a) 停止包括 tftp 在内的网络服务,查看状态显示为“not running”。 linux@farsight:~$ sudo service tftpd-hpa tftpd-hpa stop/waiting linux@farsight:~$ sudo service tftpd-hpa tftpd-hpa start/running, process 9948 stop start b) 启动包括 tftp 在内的网路服务,查看状态显示为“running”。 linux@farsight:~$ sudo service tftpd-hpa * Starting [ OK ] start internet status superserver xinetd linux@farsight:~$ sudo service tftpd-hpa tftpd-hpa start/running, process 9875 c) 重新启动包括 tftp 在内的网络服务。 linux@farsight:~$ sudo service tftpd-hpa tftpd-hpa start/running, process 9953 restart 2
nfs 服务器配置: 1. 配置服务器端 使 用 以 下 的 命 令 , 安 装 NFS 服 务 器 程 序 软 件 包 。 并 创 建 /etc/exports 和 /etc/default/nfs-kernel-server 配置文件,等待用户在完成 NFS 安装之后,配置将要共享的资 源。 linux@farsight:~$ sudo apt-get [sudo] password for linux: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 下列【新】软件包将被安装: nfs-kernel-server install 共升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 8 个软件未被升级。 需要下载 152kB 的软件包。 解压缩后会消耗掉 385kB 的额外空间。 获 取 : 1 http://archive.ubuntu.com intrepid-updates/main nfs-kernel-server 1:1.1.2-4ubuntu1.1 nfs-kernel-server [152kB] 下载 152kB,耗时 3s (43.1kB/s) 选中了曾被取消选择的软件包 nfs-kernel-server。 (正在读取数据库 ... 系统当前总共安装有 108565 个文件和目录。) 正在解压缩 nfs-kernel-server (从 .../nfs-kernel-server_1%3a1.1.2-4ubuntu1.1_i386.deb) ... 正在处理用于 man-db 的触发器... 正在设置 nfs-kernel-server (1:1.1.2-4ubuntu1.1) ... Creating config file /etc/exports with new version Creating config file /etc/default/nfs-kernel-server with new version * Starting NFS common utilities * Exporting directories for NFS kernel daemon... * Starting NFS kernel daemon [ OK ] [ OK ] [ OK ] 可以使用 netstat 命令检查 NFS 端口是否已经打开,NFS 端口(2049)以及 SUNRPC 端 口(111)已处于监听状态。 2. 配置 NFS 资源 配置 NFS 服务器的关键也就是配置该文件。配置文件中一行即为一条配置项,用于指明 网络中的“哪些客户端”共享“哪些目录资源”。导出资源配置项格式如下所示。 < Share Directory > …… 其中,表示服务器中导出的共享资源路径,必须使用绝对路径名; 表示客户端主机标识,可以使用表 24.1 列出的方式指定主机名,如果是多个主机标识,需 要使用空格隔开;表示赋予每个客户端主机的访问权限。以下为一个配置样本。 linux@farsight:~$ cat # /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). # Example for NFSv2 and NFSv3: /etc/exports 3
# /srv/homes hostname1(rw,sync) hostname2(ro,sync) # /source/rootfs *(rw,sync,no_root_squash) 3. 手动启停 NFS 服务 通常,NFS 服务的守护进程是以持续监听端口的独占方式运行。用户通过使用 NFS 的 初始化脚本,可以手动启停 NFS 服务。系统管理员在调整共享资源之后,一定要重新启动 NFS 服务,以便使修改的配置生效。 (1)启动 NFS 服务 linux@farsight:~$ sudo /etc/init.d/nfs-kernel-server * Exporting directories for NFS kernel daemon... [ OK ] * Starting NFS kernel daemon [ OK ] (2)停止 NFS 服务 linux@farsight:~$ sudo /etc/init.d/nfs-kernel-server [sudo] password for linux: * Stopping NFS kernel daemon [ OK ] [ OK ] * Unexporting directories for NFS kernel daemon... (3)重新启动 NFS 服务 linux@farsight:~$ sudo /etc/init.d/nfs-kernel-server * Stopping NFS kernel daemon start stop restart * * * [ OK ] Unexporting [ OK ] Exporting [ OK ] Starting [ OK ] directories directories for for NFS NFS kernel kernel NFS kernel daemon... daemon... daemon (4)查看 NFS 服务当前状态 NFS 服务开启时显示 nfsd running,关闭是显示 nfs not running。 linux@farsight:~$ sudo /etc/init.d/nfs-kernel-server nfsd running linux@farsight:~$ sudo /etc/init.d/nfs-kernel-server nfsd not running status status 内核镜像的下载与烧写: 烧写内核镜像到 nand flash 拷贝/image/zImage 到虚拟机/tftpboot 目录下 20008000 # tftp # nand erase # nand write 100000 20008000 300000 100000 300000 zImage 4
文件系统镜像的下载与烧写: flash 烧写文件系统镜像到 nand 拷贝 rootfs.cramfs 到虚拟机/tftpboot 目录下 20008000 # tftp # nand erase # nand write rootfs.cramfs 400000 400000 20008000 400000 400000 设置启动参数 bootdelay bootcmd bootargs # setenv # setenv # setenv # saveenv 3 nand root=/dev/mtdblock2 read 20008000 100000 300000\; go 20008000 init=/linuxrc console=ttySAC0,115200 三、文件系统的移植 根文件系统制作: 1.源码下载 我们选择的版本是 busybox-1.17.3.tar.bz2 下载路径为: http://busybox.net/downloads/ 2.解压源码 $ tar 3.进入源码目录 $ cd 4.配置源码 $ make menuconfig Busybox Settings ---> Build Options ---> busybox-1.17.3.tar.bz2 busybox-1.17.3 xvf [*] Build BusyBox as a static binary (no shared libs) [ ] Force NOMMU build [ ] Build with Large File Support (for accessing files > 2 GB) (arm-none-linux-gnueabi-) Cross Compiler prefix () Additional CFLAGS install 5.编译 $ make 6.安装 busybox 默认安装路径为源码目录下的_install $ make 7.进入安装目录下 $ cd $ ls bin usr 8.创建其他需要的目录 _install linuxrc sbin 5
分享到:
收藏