基于S5PC100的仓储物联网管理系统 - 图文 下载本文

第4章 前端数据中心软件平台 第4章 前端数据中心软件平台

4.1 前端数据中心软件平台的选择 4.1.1 嵌入式操作系统选择

常见的嵌入式系统有:嵌入式Linux、uClinux、Nucleus、ThreadX 、Rtems 、WinCE、PalmOS、QNX、INTEGRITY、Symbian、eCos、uCOS-II、VxWorks、pSOS、QNX、INTEGRITY、OSE、C Executive。[10]

其中嵌入式Linux代码开源同时在国内应用广泛且资料丰富,这里我们选择嵌入式Linux。

4.1.2 嵌入式Linux

从技术上来说Linux只是一个操作系统内核,除了内核还需要工具、各种库、文件系统、应用程序等。

而嵌入式Linux内核是由当前发行的Linux版本进过交叉编译后获得的。本设计使用的内核是Linux-2.6.35。

嵌入式Linux的优点,很多的软件提供厂商提供开发环境与技术支持;不需要支付版权费使用费以及许可费;能稳定运行的内核; 内核代码个人可读、个人可修改、个人可修改后并发表自己的版本。[11]

4.2 前端数据中心软件平台的搭建 4.2.1 交叉编译

由于宿主机与目标嵌入式处理器体系结构和指令集的不同,在宿主机上编写的程序直接在目标嵌入式平台上直接运行。中间需要进行交叉编译以让程序能在目标嵌入式平台上运行。同样的,Bootloader,Linux的内核也需要进行交叉编译。

4.2.2 宿主机的配置

为了方便开发,宿主机上需要安装tftp服务器与NFS服务器。tftp用于宿主机与目标机之间传输文件如内核及文件系统等。tftp是基于UDP协议用于下载文件的简单网络协议。

tftp服务器配置分以下几个步骤:

9

第4章 前端数据中心软件平台 1.安装tftp服务器tftp-sever:

Sudo apt-get install tftp-hpa tftpd-hpa xinetd

2.在/etc/default下修改tftp服务的配置文件tftpd-hpa;

3.创建tftp目录,把需要传输的文件放入该目录,启动tftp-sever:Sudo service tftpd-hpa

NFS服务器

NFS服务器用于把宿主机本地的一个目录通过网络输出提供给嵌入式目标机作为其根文件系统以便于对根文件系统里的程序进行实时调试修改,方便程序的开发。 NFS服务器配置分以下几个步骤:

1.安装 nfs-kernel-server 2.修改主配置文件

exports,/source/rootfs*(rw,sync,no_subtree_check,no_root_squash); 2.启动 NFS 服务nfs-kemel-sever; 3.远程挂载文件系统。 restart。

4.2.3 BOOTLOADER

BOOTLOADER是硬件启动与操作系统启动的引导程序,它的主要任务是配置硬件资源并引导操作系统,操作系统启动后,BOOTLOADER把硬件的控制权全部交由操作系统控制。[12]

这里我们使用u-boot,目前它已经支持S5PC100的架构,只要指定交叉编译工具链以及稍作修改就可以使用,编译后,把生成的u-boot.bin二进制文件烧写到目标嵌入式系统内运行。

4.2.4 u-boot的配置

u-boot 可以运行之后,对其网络功能以及引导系统的方式进行配置: #setenv baudrate 115200//与串口调试终端的通信波特率。 #setenv ethaddr 11:22:33:44:55:66 //配置网卡物理地址。 //配置文件系统挂载方式为nfs方式挂载文件系统。

#setenv bootargs root=nfs nfsroot=10.0.45.119:/source/rootfs init=/linuxrc

console=ttySAC0,115200 ip=10.0.45.223。 #setenv serverip 10.0.45.119//配置宿主机的ip。 #setenv gatewayip 10.0.45.1//设置网关。

#setenv ipaddr 10.0.45.223//目标机ip,即嵌入式系统本机ip。

10

第4章 前端数据中心软件平台 #setenv netmask 255.255.255.0 //子网掩码。 #saveenv//保存设置,烧写到nandFlash中。

4.2.5 嵌入式Linux内核的配置与编译

内核的配置与编译步骤:

1.在内核顶层目录下的Makefile文件中指定用于交叉编译的工具链; 2.拷贝由三星公司提供的BSP文件到环境配置目录下; 3.#make menuconfig配置内核,选择需要的特性; 4.编译内核;

5.得到的镜像文件即所要的内核。

图4-1 menuconfig的图形界面

4.2.6 根文件系统的移植与制作

这里我们使用busybox-1.17.3。 根文件系统制作步骤:

1.安装前指定交叉编译工具链,make menuconfig.[ ] Build with Large File Support (for accessing files > 2 GB)(arm-none-linux-gnueabi-) Cross Compiler prefix。 2.编译安装busybox。

3.将交叉编译工具链中的各种库文件拷贝到_install目录。 4.编写inittab系统启动文件,并添加到在环境配置目录。 5.编写文件系统表fstab,添加到环境配置目录。

6.在etc下创建init.d目录,并在init.d下创建rcS文件(应用程序启动脚本,填入用

户希望在系统启动后启动的应用程序)。

11

第4章 前端数据中心软件平台 7.至此根文件系统制作完成,可挂载到NFS服务器上进行测试。

4.2.7 jffs2文件系统制作

为了使系统脱离宿主机独立运行,我们还需要把根文件系统打包制成jffs2格式的文件系统并焼写到目标硬件平台存储器内。 具体步骤如下:

1.安装mkfs.jffs2。

2.制作目标文件系统sudo mkfs.jffs2 -r ./rootfs -o ./rootfs.jffs2 -e 0x20000

--pad=0x3c00000 –n 3.jffs2文件系统烧写

# tftp 10004000 rootfs.jffs2//把文件系统下载到内存中 # nand erase 400000 3c00000//擦除Flash中文件系统段的内容

# nand write.jffs2 10004000 400000 3c00000//把内存里的文件系统烧写到Flash中 4.修改u-boot启动参数,把NFS挂载文件系统修改为从存储器中读取文件系统: #setenv

bootargs

root=/dev/mtdblock2

init=/linuxrc

rootfstype=jffs2

rw

console=ttySAC0,115200 5.启动系统,查看效果。

12

第6章 系统测试 第5章 系统测试

6.1 搭建测试环境

前端数据中心

前端数据中心以及Zigbee设备如下图所示:

图6-1 前端数据中心硬件平台及Zigbee设备

首先把Zigbee连接到前端数据中心的串口转USB(ttyUSB0)端口上,接着把前端数据中心的串口1(作为调试窗口)以及以太网接入到宿主机上,给系统上电。

设置u-boot启动参数,如下图所示:

图6-2 u-boot参数设置

13