当前位置:文档之家› AT91SAM9260EK开发板 Linux 移植 移植 文档

AT91SAM9260EK开发板 Linux 移植 移植 文档

AT91SAM9260EK开发板 Linux 移植 移植 文档
AT91SAM9260EK开发板 Linux 移植 移植 文档

AT91SAM9260EK开发板Linux移植

文档

移植文档

文档

Ver 1.0

Ver 1.0

目录目录::

1.准备所需要的软件和编译工具包 2.安装ARM-LINUX-GCC 工具链

3.安装编译AT91BootStrap Bootloader 4.安装编译Uboot 及AT91-Uboot 补丁 5.安装编译Linux2.6.22及AT91-Linux 补丁 6.安装下载工具AT91ISP 及烧写文件 7.NFS 根文件系统的建立 8.移植Boa Web 服务器 9.移植网络摄像头

10.移植Madplay 音频播放器 11.ARM MPlayer 移植

12.AT91SAM 芯片的启动过程 附录1:安装VMWARE+READHAT9环境 附录2:如何安装虚拟工具和网络设置

准备所需要的软件准备所需要的软件和编译和编译和编译工具包工具包工具包

1. A t91bootstrap Bootloader 软件包软件包 AT91Bootstrap1.8.zip AT91Bootstrap1.8.zip

https://www.doczj.com/doc/98919665.html,/dyn/products/tools_card.asp?tool_id=4093 光盘位置:/linux/at91bootstrap/

2. Uboot 以及补丁以及补丁

u -boot boot--1.1.5.tar.bz21.1.5.tar.bz2 u u -boot boot--1.1.5_atmel_1.5.diff.bz21.1.5_atmel_1.5.diff.bz2 ftp://ftp.denx.de/pub/u-boot/u-boot-1.1.5.tar.bz2

https://www.doczj.com/doc/98919665.html,/twiki/pub/Linux4SAM/U-Boot/u-boot-1.1.5_atmel_1.5.diff.bz2

光盘位置:/linux/uboot/

3. Linux2.6.22源码包以及补丁源码包以及补丁

linux linux--2.6.2.6.222222.tar.bz2.tar.bz2.tar.bz2 2.6.2.6.2.6.222222--at91.patch.gz at91.patch.gz linux linux linux--2.6.xx 2.6.xx--at91at91--exp.diff.gz exp.diff.gz

https://www.doczj.com/doc/98919665.html,/pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2 https://www.doczj.com/doc/98919665.html,.za/AT91RM9200/2.6/2.6.22-at91.patch.gz ftp://https://www.doczj.com/doc/98919665.html,/pub/linux/2.6.22-at91-exp.patch.gz 光盘位置:/linux/kernel/ 2.6.222.6.22--at91at91--exp.patch exp.patch 特性特性特性::

AT91SAM9261EK - Add button interface AT91_MCI - Enhancements 1

ATMEL_LCD - Add STN and alpha in 32bpp mode support

AT91SAM9261Ek - Make NAND FLASH partition match those on AT91SAM926[03]EK ATMEL_MACB - Add SRAM Tx buffers capabilities for AT91SAM926[03]EK AT91_AC97 driver for AT91SAM9263EK (playback only) AT73C213 (I2S DAC audio) support for AT91SAM926[01]EK

4. ARM ARM--LINUX LINUX--GCC 交叉工具链交叉工具链

arm arm--linux linux--gcc gcc--3.4.1

https://www.doczj.com/doc/98919665.html,/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2

arm arm--linux linux--gcc gcc--3.3.2

3.3.2 https://www.doczj.com/doc/98919665.html,/download/projects/toolchain/arm-linux-gcc-3.3.2.tar.bz2

arm arm--2007q12007q1--1010--arm arm--none none--linux linux--gnueabi gnueabi--i686i686--pc pc--linux linux--gnu.tar.bz2gnu.tar.bz2

https://www.doczj.com/doc/98919665.html,/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2007q1-10-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

arm arm--softfloat softfloat--linux linux--gnu.tar.bz2gnu.tar.bz2

光盘位置:/linux/toolchain/

安装ARM ARM--LINUX LINUX--GCC 工具链工具链

解压缩工具链压缩包: arm arm--linux linux--gcc gcc--3.4.1.tar.bz23.4.1.tar.bz2 arm arm--linux linux--gcc gcc--3.3.2.tar.bz23.3.2.tar.bz2

arm arm--2007q12007q1--1010--arm arm--none none--linux linux--gnueabi gnueabi--i686i686--pc pc--linux linux--gnu.tar.bz2gnu.tar.bz2 arm arm--softfloat softfloat--linux linux--gnu.tar.bz2gnu.tar.bz2

#cd /usr/loacal/arm #cd /usr/loacal/arm/toolchain /toolchain /toolchain

#tar xvjf tar xvjf arm arm arm--linux linux--gcc gcc--3.4.1.tar.bz23.4.1.tar.bz2 #tar xvjf #tar xvjf arm arm arm--linux linux--gcc gcc--3.3.2.tar.bz23.3.2.tar.bz2

#tar xvjf #tar xvjf arm arm arm--2007q12007q1--1010--arm arm--none none--linux linux--gnueabi gnueabi--i686i686--pc pc--linux linux--gnu.tar.bz2gnu.tar.bz2 #tar xvjf #tar xvjf arm arm arm--softfloat softfloat--linux linux--gnu.tar.bz2gnu.tar.bz2

设置编译器默认路径:

打开/etc/bashrc 文件,在文件最后添加

export export PATH=:$PATH:/usr/local/PATH=:$PATH:/usr/local/PATH=:$PATH:/usr/local/arm/arm/arm/toolchain/toolchain/toolchain/arm arm arm--2007q12007q1/bin /bin /bin

export PATH=:$PATH:/usr/local/arm/export PATH=:$PATH:/usr/local/arm/toolchain/toolchain/toolchain/arm arm arm--softfloat softfloat--linux linux--gnu gnu/bin /bin /bin export PATH=:$PATH:/usr/local/arm export PATH=:$PATH:/usr/local/arm/toolchain /toolchain /toolchain/3./3./3.4.14.14.1/bin /bin /bin

保存退出,需要运行source bashrc 或者重新启动linux。通过命令行打入: #arm #arm--linux linux--gcc gcc ––v

#arm #arm--none none--linux linux--gnueabi gnueabi--gcc gcc ––v #arm arm--soft softfloat float float--linux linux--gnu gnu--gcc gcc --v 出现版本信息提示表示安装成功。

如果需要使用3.3.2版本,则需要指定具体的路径。

安装安装编译编译AT91BootStrap AT91BootStrap Bootloader Bootloader Bootloader

将AT91Bootstrap1.8.zip 软件包解压缩到/usr/src/arm 文件夹下面,产生一个新的文件夹Bootstrap-v1.8。这个文件下面是AT91芯片的第一级bootloader 源代码。

编译步骤:

1. 进入Bootstrap-v1.8目录 2. 进入board 目录 3. 进入相应的开发板目录

4. 5. 编译

#make #make

安装安装编译编译Uboot 及AT91AT91--Uboot 补丁补丁

解压缩uboot 软件包:

#cd /usr/src/arm #cd /usr/src/arm

#tar xvjf u tar xvjf u--boot boot--1.1.51.1.5.tar.bz2.tar.bz2.tar.bz2

#cd u cd u--boot boot--1.1.51.1.5

打入补丁:

bzcat u bzcat u--boot boot--1.1.51.1.5_atmel__atmel__atmel_1.51.51.5.diff.bz2 | patch .diff.bz2 | patch .diff.bz2 | patch --p1p1

修改找到

改成

make make

安装安装编译编译Linux2.6.22及AT91AT91--Linux 补丁补丁

解压缩linux-2.6.22压缩文件:

#tar xvjf linux tar xvjf linux--2.6.2.6.222222.tar.bz2.tar.bz2.tar.bz2

进入linux-2.6.22文件夹:

#cd linux cd linux--2.6.2.6.222222

打入两个补丁:

#z cat 2.6.cat 2.6.222222--at91.patch.gz | patch at91.patch.gz | patch --p1p1

#zcat linux zcat linux--2.6.2.6.222222--at91at91--exp.diff.gz | patch exp.diff.gz | patch --p1p1

这样就获得了一个全新的linux-2.6.22内核,该内核打入了支持AT91 ARM9的一些补丁。

修改Makefile:

linux-2.6.22主目录下有个Makefile 文件,打开,找到185行左右,修改 ARCH ?= arm

CROSS_COMPILE ?= arm arm--none none--linux linux--gnuea gnueabi bi bi-- 保存退出。 配置内核:

由于内核中已经有对于AT91 ARM9的一些默认配置文件,所以可以直接使用命令,如对at91sam9260ek 设置:

#make at91sam9260ek_defconfig make at91sam9260ek_defconfig 这样就完成了at91sam9260ek 的默认设置。

如果需要自定义设置,使用命令make menuconfig make menuconfig 或者make xconfig 进行设置。 最后使用 #make make uImage uImage uImage 编译内核

注:如果使用make uImage 则能生成由uboot 引导的内核文件,需要用到uboot/tools/mkimage,可以在/etc/bashrc 文件末加入一下语句:

export PATH:=$PATH:/usr/src/arm/u export PATH:=$PATH:/usr/src/arm/u--boot boot--1.1.5/tools 1.1.5/tools 这样就能直接引用mkimage 命令。

最后会在linux-2.6.22/arch/arm/boot 目录下生成uImage 等几个内核映像文件。

安装下载工具AT91ISP及烧写文件

及烧写文件

isp v1.11.exe 首先卸载掉之前安装的低版本的at91-isp软件。全新安装at91

.exe。

at91--isp v1.11

.exe

去掉开发板dataflash的CS片选的跳线帽(AT91SAM9260-EK上面在DATAFLASH边上),连接开发板的5V电源,打开电源开关,让芯片内部固化的boot运行,用usb线连接开发板和PC,PC会提示找到新硬件并要求安装驱动,让PC自动查找驱动并安装。

dataflash_at91boot

烧写dataflash_at91boot

边上),连接开发板的

和PC。

运行

“Enable 初始化。

4.选中

Uboot

烧写Uboot

1.在Send File Name处打开先前生成的文件u-boot.bin,Address处填写0x8000,表示将u-boot烧写到dataflash的0x8000处。

2.点击“Send File”按钮,等待提示成功烧写。

Linux Kernel

烧写Linux Kernel

1.在Send File Name处打开先前生成的文件uImage,Address处填写0x30000,表示将u-boot烧写到dataflash的0x30000处。

2.点击“Send File”按钮,等待提示成功烧写。

烧写根文件系统

烧写根文件系统

1.点击“NandFlash”标签页。

2.选中按钮。3.选中

NandFlash

4.在Send

5.

1.

2.

启动开发板

1.

2.

DRAM: 64 MB

DataFlash:AT45DB321

Nb pages: 8192

Page Size: 528

Size= 4325376 bytes

Logical address: 0xD0000000

Area 0: D0000000 to D0003FFF (RO)

Area 1: D0004000 to D0007FFF

Area 2: D0008000 to D0037FFF (RO)

Area 3: D0038000 to D041FFFF

In: serial

Out: serial Err: serial DM9161A PHY Detected No link

MAC: error during RMII initialization Hit any key to stop autoboot: 0

出现上一行的提示倒数后,按空格键,出现命令行提示符:

U-Boot>

1.设置MAC 地址:

U -Boot>Boot>setenv ethaddr 3e:36:65:ba:6f:be setenv ethaddr 3e:36:65:ba:6f:be setenv ethaddr 3e:36:65:ba:6f:be

2.设置IP 地址:

U -Boot>Boot>setenv ipaddr setenv ipaddr setenv ipaddr 192.168.0.2192.168.0.2192.168.0.2

3.设置拷贝kernel 环境变量: U -Boot>Boot>setenv setenv setenv uImage uImage cp.b d0030000 21500000 15ffb0 cp.b d0030000 21500000 15ffb0 cp.b d0030000 21500000 15ffb0

该语句表示将位于0xd0030000处长度为0x15ffb0的数据段拷贝到0x21500000 其中0xd0030000为uImage 在整个系统中所处的地址,上面讲到将uImage 下载到dataflash 的0x30000位置上,而0xd0000000是该dataflash 在系统中的基地址。0x21500000是位于sdram 中,表示uImage 要被拷贝到sdram 中运行。最后的文件长度取决于uImage 文件的长度。

4.设置启动命令: U -Boot>Boot>setenv setenv setenv run uImage run uImage run uImage\\;bootm 21500000;bootm 21500000

5.设置linux 启动命令行: U -Boot>Boot>setenv setenv setenv bootargs mem=64M bootargs mem=64M bootargs mem=64M console=ttyS0,115200 root=/dev/mtdblock0console=ttyS0,115200 root=/dev/mtdblock0

6. 保存环境变量 U -Boot>Boot>saveenv saveenv

重新启动开发板重新启动开发板,,进入Linux Shell Linux Shell

出现login: root

输入root,回车,即能进入Linux 命令行。

NFS 根文件系统的建立根文件系统的建立

如果用cramfs 根文件系统,在调试或移植应用程序的时候,需要把编译好的结果如可执行文件及一些相关的库文件放到根文件系统目录里面,然后用mkcramfs 工具将文件目录转换成cramfs 格式的映像文件,再通过烧写的方式烧到目标板上去看执行结果,如此反复,非常麻烦。

NFS 根文件系统解决了这个问题,在PC 端编译好执行文件直接拷贝至相应的文件夹内,让目标板上的Linux 内核直接从PC 上建立的根文件系统文件夹启动。

1 1 1..网络配置工作网络配置工作

设置windows 下的网络参数,如ip 地址为 192.168.0.5 子网掩码255.255.255.0。 设置虚拟机的网络,设置虚拟机网络接入方式为桥接,表示虚拟机直接接入网络,和windows 网络地位同等,相当于都接在一个hub 上,所以在虚拟机里运行的redhat 的ip 地址和windows 里的ip 地址不能重复,redhat ip 地址为192.168.0.10,子网掩码255.255.255.0。

关闭虚拟机中redhat 的防火墙功能。

设置目标板ip,在linux shell 中,键入命令ifconfig eth0 192.168.0.2。 这个时候如果Windows,redhat,目标板之间能互相ping 通,则说明网络配置成功。

2 2 2..Redhat 安装NFS 服务服务

a)确认是否安装了NFS 服务。从redhat 开始菜单查看系统设置->服务器设置下是否有NFS 服务器。如果没有,则插入Linux 安装盘重新添加该软件包。

如果安装好了NFS 服务,我们可以通过配置文件/etc/exports 来允许目标板挂载你的目录。我的设置文件/etc/exports 的内容是这样的: /home/target 192.168.0.2(rw,no_root_squash)

该句意思是:任何 IP 地址192.168.0.2能挂载/home/target 目录,并且如果是以root 身份登录的话,那么他对该目录的权限也是root。

/home/target 就是NFS 根文件系统的一级目录,里面的包含有bin,etc,usr,mnt,dev,var 等等,包含有linux 启动运行所需要的一切。这里我们将光盘中的my_rootfs.tar.gz 文件夹拷贝到这里并解压缩。 b) 安装dhcpd 服务包软件,方法同安装NFS 服务。 c) 启动nfs,启动dhcpd,portmap service nfs restart service protmap restart

service dhcpd restart f) 测试服务器配置是否成功:

mount 192.168.0.10:/home/target /mnt ls /mnt

3. . 配置配置linux 内核内核

进入打过at91补丁的linux2.6内核源代码树的根目录 make menuconfig 进入内核配置程序。 1. 选中Networking ---> Networking options --->

[*] IP: kernel level autoconfiguration [*] IP: DHCP support [*] IP: BOOTP support [*] IP: RARP support 2. Device Drivers ---> Block devices --->

<*> Network block device support 3. 选中Device Drivers ---> Ethernet (10 or 100Mbit) ---> <*> Atmel MACB support

[*] Atmel MACB TX buffers in internal SRAM 4. 选中File systems ---> Network File Systems ---> <*> NFS file system support [*] Provide NFSv3 client support

[*] Provide client support for the NFSv3 ACL protocol extension [*] Provide NFSv4 client support (EXPERIMENTAL) [*] Root file system on NFS 重新编译 make u make uImage Image Image

将编译好的结果烧到板子上,修改下u-boot 里面的启动参数

根据uImage 文件大小修改setenv uImage cp.b d0030000 21500000 $(uImageSize) //$(uImageSize)即为uImage 的大小。

4.配置u -boot 启动参数启动参数 U -Boot>Boot>setenv setenv

bootargs

mem=64M

console=ttyS0

115200

root=/dev/nfs

nfsroot=192.168.0.10:/home/target

ip=192.16ip=192.168.0.2:192.168.0.10:192.168.0.108.0.2:192.168.0.10:192.168.0.108.0.2:192.168.0.10:192.168.0.10::255.255.255.0::eth0:off 255.255.255.0::eth0:off 然后保存参数: U -Boot>Boot>saveenv saveenv saveenv

其中nfsroot=192.168.0.10:/home/target 表示nfs 将从192.168.0.10:/home/target 文件夹内启动根文件系统

ip=192.168.0.2:192.168.0.10:192.168.0.10:255.255.255.0::eth0:off 表示ip=$(taget IP):$(servicer IP):$(netGate):$(netMask)::(device):off 重新启动目标板,就能从nfs 根文件系统启动了。

移植Boa Boa Web 服务器服务器

1.Boa 的移植的移植 1、下载Boa 源码

下载地址: https://www.doczj.com/doc/98919665.html,/, 或者https://www.doczj.com/doc/98919665.html,/ 最新发行版本: 0.94.13

下载 boa-0.94.13.tar.gz,注意:从boa 上下载的是boa-0.94.13.tar.tar,解压方式一样

解压:

# tar xzf boa # tar xzf boa--0.0.94.13.tar.gz 94.13.tar.gz 94.13.tar.gz 2、生成Makefile 文件

直接运行src/configure 文件 #cd src #cd src #./configure #./configure 3、修改Makefile 文件 a、 修改 CC = gcc

为 CC = /usr/local/arm/2.95.3/bin/arm-linux-gcc b、 修改 CPP = gcc - E

为 CPP = /usr/local/arm/2.95.3/bin/arm-linux-gcc –E 路径取决于arm-linux-gcc 安装的位置。

修改

LDFLAGS = -g –static 设置为静态编译 4、编译

# make # make

# /usr/local/arm/2.95.3/bin/arm # /usr/local/arm/2.95.3/bin/arm--linux linux--strip boa strip boa

2.Boa 的配置的配置

Boa 需要在/etc 目录下建立一个boa 目录,里面放入Boa 的主要配置文件boa.conf。在Boa 源码目录下已有一个示例boa.conf,可以在其基础上进行修改。

1.Group 和User 的修改

的修改 修改 Group nogroup 为 Group 0 修改 User nouser 为 User 0

2、Scri ScriptAlias ptAlias 的修改

的修改 修改 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 为 ScriptAlias /cgi-bin/ /var/www/cgi-bin/

3、ServerName 的设置

的设置 修改 #ServerName https://www.doczj.com/doc/98919665.html,.here/ 为 ServerName https://www.doczj.com/doc/98919665.html,.here/

注意:该项默认为未打开,执行Boa 会异常退出,提示“gethostbyname::No such file

or directory”,所以必须打开。其它默认设置即可。

3.Boa 的执行的执行

成功配置以后,还需要在根文件系统中创建boa 服务器所需要的文件加及文件。创建步骤如下:

1. 创建日制文件夹,用于boa 放置运行时产生的日制文件/var/log/boa。

2. 创建/var/www 文件夹,用于放置boa 运行时所需的静态网页,该文件夹下的网页文

件名为index.html,可以将主机 /usr/share/doc/HTML/目录下的index.html 文件和img 目录复制到/var/www 目录下。

3. 创建cgi 脚本所需要的目录/var/www/cgi-bin,将cgi 的脚本存放在该目录下。 4. 将mime.types 文件复制到/etc 目录下,可以从linux 主机的/etc 目录下复制即可。 5. 将生成的boa 可执行文件放到/bin 目录下。

6. 可以利用根文件映像文件产生工具如mkcramfs,mkjffs 等合适的工具将重新设置

过的根文件系统打包,生成的文件重新烧写到开发板上。 7. 开发板linux 启动进入shell 后执行

#ifconfig eth0 192.168.0.2

#boa

8.如果pc端ping 192.168.0.2能成功,则在浏览器中输入http://192.168.0.2,出 现redhat欢迎页面,静态HTML调试成功。

4.CGI脚本测试

脚本测试

1、编写Helloworld.c程序

#include

int main(void)

{

printf("Content-type: text/html\n\n");

printf("\n");

printf("CGI Output\n");

printf("\n");

printf("

Hello,world.

\n");

printf("\n");

printf("\n");

exit(0);

}

交叉编译生成helloworld.cgi

o helloworld.cgi helloworld.c

linux--gcc

gcc --o helloworld.cgi helloworld.c

# arm--linux

# arm

2、浏览

将helloworld.cgi拷贝至/var/www/cgi-bin/下,浏览器输入:

http://192.168.0.2/cgi-bin/helloworld.cgi

5.出现问题及解决方

出现问题及解决方法

Q:使用 toolchain 3.4.1 编译出现错误

arm-linux-gcc -g -O2 -pipe -Wall -I. -c -o util.o util.c

util.c:100:1: pasting “t” and “->” does not give a valid preprocessing token make: *** [util.o] Error 1

A:修改 src/compat.h,找到

#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff

修改成

#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff

Q:执行 boa 出现 “gethostbyname::No such file or directory”

A:需要将 boa.conf 里的 ServerName 开头注释去掉

Q:无法启动 Boa,error log 显示 “boa.c:266.icky Linux kernel bug!:No such file”

A:修改 src/boa.c,将下面判断语句注释:

/*if (setuid(0) != -1) {

DIE(”icky Linux kernel bug!”);

}*/

重新编译

Q:无法启动Boa,error log 显示 “boa.c:211 - getpwuid….略”

A:修改 src/boa.c,将下面判断语句注释:

/*if (passwdbuf == NULL) {

DIE(”getpwuid”);

}

if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {

DIE(”initgroups”);

}*/

重新编译。

另外在测试cgi脚本时,当在浏览器地址中输入:

http//192.168.0.2/cgi-bin/helloworld.cgi

浏览输出下述错误:

502 Bad Gateway

The CGI was not CGI/1.1 compliant

在目标板的调试终端中输出下述错误:

……cgi_header:unable to find LFIF

上述错误是在boa原码中的cgi_header .c文件中的process_cgi_header函数产生,如下:

buf = req->header_line;

c = strstr(buf, "\n\r\n");

if (c == NULL) {

c = strstr(buf, "\n\n");

if (c == NULL) {

log_error_time();

fputs("cgi_header: unable to find LFLF\n", stderr); //出错信息

#ifdef FASCIST_LOGGING

log_error_time();

fprintf(stderr, "\"%s\"\n", buf);

#endif

send_r_bad_gateway(req);

return 0;

}

}

我们可以定义FASCIST_LOGGING,使产生该错误时将buf内容打印出来,结果如下: ……cgi_header:unable to find LFIF

Content-type: text/html

CGI Output

Hello, world.

原来buf中的内容就是helloworld.c中输出的内容,查看输出结果,再看process_cgi_header函数中的语句:c = strstr(buf, "\n\n"),很明显buf中没有两个连续的换行符"\n\n",所以是helloworld.c文件中的语句:

printf("Content-type: text/html\n\n");

错写成了:

printf("Content-type: text/html\n");

上述行通过标准输出将字符串″Contenttype:text/plain\n\n″传送给Web服务器。它是一个MIME头信息,告诉Web服务器随后的输出是以纯ASCII文本的形式。在这个头信息中有两个新行符,这是因为Web服务器需要在实际的文本信息开始之前先看见一个空行。

移植网络摄像头

移植网络摄像头

Linux内核版本:Linux2.6.22

服务器视频采集:

客户端播放视频: spcaview-20061208.tar.gz

浏览器java plugs: jre-1_5_0_06-linux-i586-rpm.bin

如果一切顺利的话,此时将在看到类似下面的信息,

Using /mydev/spca5xx.o

usb.c: registered new driver spca5xx

spca_core.c: USB SPCA5XX camera found. Type Vimicro Zc301P 0x301b

spca_core.c: spca5xx driver 00.57.06LE registered

此时会在/dev/成生成 v4l/video0表明摄像头成功安装。

1、移植视频采集程序servfox

移植这个程序是最简单的,解压servfox-R1_0_0.tar.gz后,会发现在其目录中会有一个Makefile文件,将此文件修改下,

再make就可生成我们要用到的serfox程序了,将此程序上传到我们的板中,运行就行了。

另外在运行servfox前,一定要运行"mknod /dev/video0 c 81 0"这步,不写这步,出现“ERROR opening V4L interface”错误。

在服务器端运行servfox,图像大小为320x240,端口号为 7070:

# servfox -d /dev/video0 -s 320x240 -w 7070

2、客户端spcaview

解压缩spcaview-20061208.tar.gz,make生成目标文件。

在PC上,spcaview –w 192.168.1.186:7070就可以看到摄像头采集来的图片了。Servfox和spcaview还有很多选项,可以通过spcaview –h 和servfox –h查阅。

解压后,还会产生,此是WEB客户端,将此客户端上传到开发板上的WEB文件夹中,则在浏览器输入 http://192.168.0.2/index-sample.html则可看到摄像

头采集来的图片了。Web Server是移植 boa,移植方法见boa移植说明。

3、web浏览器安装jre

下载jre-1_5_0_06-linux-i586.bin 下载最新自解压安装包。

2、使用命令如下

./jre-1_5_0_06-linux-i586.bin

按空格查看下面的条款,然后输入yes安装完毕后,进行下一步。

3、 到/usr/lib/mozilla-1.2.1/plugins下执行:

ln -s $JAVA_HOME/plugin/i386/ns7-g/libjavaplugin_oji.so

$JAVA_HOME就是先前安装的jre文件夹地址。 这样就安装完成了。可以在mozilla地址栏里输入about:plugins查看是否安装成功。

将连接创建在/usr/lib/mozilla-1.2.1/plugins下是放在当前用户下,不需要root权限,不影响其他用户。

移植Madplay Madplay 音频播放器音频播放器音频播放器

移植madplay 需要如下文件:

madplay-0.15.2b.tar.gz libmad-0.15.1b.tar.gz libid3tag-0.15.1b.tar.gz zlib-1.1.4.tar.gz

这里列出它们的下载地址:前三个文件的下载地址在这个网站可以找到相应的链接: https://www.doczj.com/doc/98919665.html,/project/showfiles.php?group_id=12349,zlib-1.1.4.tar.gz 的下载地址为: https://www.doczj.com/doc/98919665.html,/zlib/zlib-1.1.4.tar.gz 。

1.我在根目录下面建立了一个名为“mp3”的目录,然后把它们都解压到这个目录下面,同时还建立了一个名为“libz ”的目录,作为存放所生成的文件的地方,总共在/mp3 目录下,有5 个目录。 2.编译zlib-1.1.4

首先配置configure 文件,改动如下: A :把AR=${AR-" ar rc"}改为:

AR=${AR-"编译器安装路径/arm-linux-ar rcs"} 把RANLIB=${RANLIB-"ranlib"}改为:

RANLIB=${RANLIB-"编译器安装路径/arm-linux-ranlib"}

把cc=${CC-gcc}改为:

cc=${CC-编译器安装路径/arm-linux-gcc}

然后保存它,使用如下指令编译:

如果之前编译过,则先要把上次编译的结果清除:make distclean 然后输入:./configure --prefix=/mp3/libz 待上步完成后,输入:make 然后再输入:make install

到此,编译zlib-1.1.4 就算完成了。

【最新文档】移植法案例word版本 (5页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除! == 本文为word格式,下载后可方便编辑和修改! == 移植法案例 篇一:发明创造技巧——移植法.doc 龙源期刊网 .cn 发明创造技巧——移植法 作者:银月 来源:《发明与创新(学生版)》201X年第06期 把大家已经知道的原理,已有的物品或方法等,移植运用(来自:WwW. : 移植法案例 )到自己的发明上,得到一项新的发明,这种方法叫做移植法。这种技术 性移植是发明创造的一条重要途径。下面例举两个利用了移植法的小发明; 充气太阳灶 太阳能对人们极有吸引力,但目前的太阳灶造价高,工艺复杂,又笨重(50千 克左右),调节也麻烦,野外工作和旅游时携带不方便。发明者在调查研究的基 础上,明确了主攻方向:简化太阳灶的制作工艺,减轻重量,减少材料消耗, 降低成本,获取最大的功率。他们首先把两片圆形塑料薄膜边缘粘结,充气后 就膨胀成一个抛物面,再在反光面上贴上真空镀铝涤纶不干胶片。用打气筒向 内打气,改变里面气体压强,随着打气的多少,上面一层透明膜向上凸起,反 光面向下凹,可以达到自动会聚反射光线的目的。这种“无基板充气太阳灶” 只有4千克重,拆装方便,便于携带。 该发明实际上是多种移植的结果:发明者把充气玩具的技术,日常商品商标的 不干胶贴片,凸透镜似的抛物面结构,移植到新的太阳灶上来,把光学、流体 力学的原理等知识,移植到太阳灶的设计上,从而成功地完成了小发明。 蜡烛灯 蜡烛是人们常用的一种照明工具,但烛焰怕风,烛体不易固定,亮度不能控制。怎样改进这些缺点呢?湖北监利中学的柳国弘同学先考虑固定烛体与防风,他将蜡烛插在一个铁筒中,罩上一个玻璃罩。他联想到卡口式灯泡的固定方式,并 借用到蜡烛灯上,安了个弹簧以使烛焰保持在灯罩的最佳中心位置。

御商v9升级说明文档

科脉·御商商业管理软件 版本发布日志 ***说明:本文档中红色部分表示版本发布中的重要修改内容*** V9.0.0028.0028 发布日期: 2015-12-04 功能修改: 1、去掉支付宝站点控制。 2、去掉微支付站点控制。 3、去掉前台【系统设置】中“深圳通参数设置”。 4、将【会员-积分管理】中“增加会员积分”功能名称改为“增减会员积分”,同时支 持手工增加或减少会员积分。 5、商品的保质期为0 或空时,【验收入库单】单据明细“有效日期”默认显示为空,可 手动设置有效日期。 功能完善: 1、完善【配送-配送管理-配货处理】第二步“确定配出数量”,物流模式为越库的商品, 不能强制完成配货。 2、支持PDA复核功能。 3、前台【外接设置-电子秤】增加支持电子秤(太航计价秤ACS-AA-JJ、大华ACS-15Aa-1-b 计价称、托利多ACS_iSmart PC秤、中科英泰TT-S313 PC秤和好事特HOST-1515S PC秤)。 缺陷修正: 1、修正【库存-盘点业务-生成盘点差异】差异处理后没有生成漏盘商品的问题。 2、修正【营运-收银报表-前台商品销售流水数据】报表查询报错的问题。 3、修正【档案-商品管理-商品档案】更改已审核的商品的类别时,该商品的零售价会 被修改的问题。 4、修正【物价-调价管理-调进价单】导入盘点机数据文件,只能导入一行的问题。 5、修正【物价-调价管理-综合调价单】导入盘点机数据文件,系统崩溃的问题。 6、修正【会员-异动管理-挂失注销管理】“检索”按钮没有显示的问题。 7、修正门店初始化完成后,进入系统提示数据库还原连接总部的问题。 8、修正门店做【配退单】传输到配送中心,配送中心【配退单】中单头的配退货门店 显示不正确的问题。 9、修正商品在调入门店不经营,做【店间调拨单】提示“此商品在调入门店的属性为 不经营,不可录入”的问题,现修改为做【店间调拨单】时,不校验商品在调入门 店是否经营。 10、修正前台启用双屏后,前台主屏界面显示偏位的问题。

arm-linux下usb转串口移植手册

arm-linux下usb转串口移植手册: 讲述在嵌入式平台上,移植usb转串口的步骤: 1、配置Kernel 2、文件系统配置等。 Kernel:在配置内核时:加入usb转串口的支持、加入usb转串口器件的支持。 不同厂家的usb转串口工具需要的驱动可能不一样。 Device Drivers ---> USB support ---> --- USB port drivers USB Serial Converter support ---> <*> USB Serial Converter support [*] USB Serial Console device support [*] USB Generic Serial drivert < > USB AIRcable Bluetooth Dongle Driver (EXPERIMENTAL) <*> USB FTDI Single Port Serial Driver (EXPERIMENTAL) 本次实验才用的是FTDI的usb转串口工具 在配置Kernel时,还可以加入对其他厂家的驱动支持。 文件系统: 1、在/dev目录下建立设备文件/dev/ttyUSB0 mknod /dev/ttyUSB0 c 188 0 2、在运行/sbin/getty登陆命令之前要先设置好:usb转串口对应端口的波特率、停止位等。int usb_to_serial_init(viod) { iUSBTORS232 = open( "/dev/ttyUSB0", O_RDWR); if (iUSBTORS232 iRS232 < 0) { printf("Can't open device dev/ttyUSB00"); return -1; } set_speed(iUSBTORS232 iRS232,BAUDRA TE); set_Parity(iUSBTORS232 iRS232,8,1,'n'); close(iRS232); } 3、在/etc/inittab 加入如下命令。同时用consel和usb转串口工具登陆。 # Example of how to put a getty on a serial line (for a terminal) ::respawn:/sbin/getty -L ttyS0 115200 vt100 ::respawn:/sbin/getty -L ttyUSB0 115200 vt100

MMS&WAP移植文档

MMS&WAP移植报告 本次在6219平台上移植的是移软的MMS&WAP。在正式开始移植之前我们先确定了移植移软的MMS&WAP所要求的硬件和软件资源,进行了可行性分析、需求分析,然后进入设计阶段,最后是测试阶段,整个过程严格的按照软件工程的迭代模型来执行。 第一步,创建TASK 在custom_config.h里面定义TASK ID ----INDX_CUSTCMS,这里创建的task数不能大于16,定义三个模块附属于这个TASK,三个模块分别为MOD_CMSMMS、MOD_CMSWAP、MOD_CMSMAP(用户定义的模块数也不能大于16)。 在custom_config.c里面 完成task到模块id的映射,并实现创建task的函数,给定任务优先级212。const comptask_info_struct custom_comp_config_tbl[ MAX_CUSTOM_TASKS ] = { /* INDX_CUSTOM1 */ {"CUST1", "CUST1 Q", 210, 1024, 10, 0, #ifdef CUSTOM1_EXIST custom1_create, KAL_FALSE}, #else NULL, KAL_FALSE}, #endif /* INDX_CUSTOM2 */ {"CUST2", "CUST2 Q", 211, 1024, 10, 0, #ifdef CUSTOM2_EXIST custom2_create, KAL_FALSE}, #else NULL, KAL_FALSE}, #endif //Jo++ 05-05-16 added the Index_CustCMS /* INDX_CUSTCMS */ {"CUSTCMS", "CUSTCMS Q", 212, 1024, 30, 100, #ifdef CUSTCMS_EXIST //Jo++ 需事先定义 customCMS_create, KAL_FALSE}, #else NULL, KAL_FALSE}, #endif //Jo-- }; 第二步,修改makefile,在原mtk工程中添加进去wap mms模块。

LINUX APACHE升级文档

Linux apache编译安装 1.下载httpd- 2.2.15.tar.gz [root@test-AS4~]#mkdir-P/usr/local/src/apache/#创建源包存放的目录 [root@test-AS4~]#cd/usr/local/src/apache/#把httpd-2.2.15.tar.gz放入此目录下[root@test-AS4apache]#tar-zxvf httpd-2.2.15.tar.gz#解压文件会生成httpd-2.2.15目录 [root@test-AS4apache]#ll total6464 drwxr-xr-x11angel angel4096Mar1007:42httpd-2.2.15 -rw-r--r--1root root6593633Mar102010httpd-2.2.15.tar.gz [root@test-AS4httpd-2.2.15]#cd httpd-2.2.15 [root@test-AS4httpd-2.2.15]#./configure--prefix=/usr/local/apache-2.2.15--enable-so --enable-mods-shared=most--with-mpm=worker [root@test-AS4httpd-2.2.15]#make [root@test-AS4httpd-2.2.15]#make install 2.设置开机自启动服务控制脚本 执行下面的命令启动Apache服务: /usr/local/apache-2.2.15/bin/apachectl start 执行下面的命令停止Apache服务: /usr/local/apache-2.2.15/bin/apachectl stop 可以简单地把Apache启动命令加到/etc/rc.local文件,让Apache随系统启动而自动启动:echo"/usr/local/apache-2.2.15/bin/apachectl start">>/etc/rc.local 也可以把Apache加入到系统服务,用service命令来控制Apache的启动和停止。 首先以apachectl脚本为模板生成Apache服务控制脚本: grep-v"#"/usr/local/apache-2.2.15/bin/apachectl>/etc/init.d/apache

成功移植OpenSSH到ARM Linux开发板

成功移植OpenSSH到ARM Linux开发板 概述 如果是用到一些没有SSH的开发板,对于部分的应用开发来说,会受到影响,比如使用ARM DS-5进行RSE远程管理操作时,就会出现错误。下面就具体如何进行OPENSSH移植进行详细介绍。 步骤 1.下载源码包如下,下载 openssh、openssl 和 zlib 三个包。 openssh ?本地下载:openssh-6.6p1.tar.gz(1.22 MB, 下载次数: 2470) ?官网下载:https://www.doczj.com/doc/98919665.html,/portable.html openssl ?本地下载:openssl-1.0.1h.tar.gz(4.27 MB, 下载次数: 2647) ?官方下载:https://www.doczj.com/doc/98919665.html,/source zlib ?本地下载:zlib-1.2.8.tar.gz(557.71 KB, 下载次数: 3499) ?官方下载:https://www.doczj.com/doc/98919665.html,/ 2.部署工作目录创建用户主目录下创建工作目录: 3.解压并编译

注意:openssh不需要make install 4.操作目标板 b)从PC机上将以下文件拷贝到目标板Linux系统中 PC机 /home/gary/work/openssh-6.6p1/ 目录下的 ?scp sftp ssh sshd ssh-add ssh-agent ssh-keygen ssh-keyscan 共8个文件拷

贝到目标板 /usr/local/bin ? moduli ssh_config sshd_config 共3个文件拷贝到目标板 /usr/local/etc ? sftp-server ssh-keysign 共2个文件拷贝到目标板 /usr/libexec c )生成Key 文件 将生成的 ssh_host_*_key 这4个文件copy 到目标板的 /usr/local/etc/ 目录下。其中 ssh_host_ed25519_key 是SSH 第二版协议用到的key ,放到开发板之后,要 d )修改目标板passwd 文件。 5.测试 如果开发板的 root 用户还没有密码,键入以下命令然输入两次密码来修改,否可以用 ps 命令查看sshd 是否在工作 如果运行的过程中有提示缺少动态连接库,可以在主机上搜索相应文件,拷贝到目标板/lib/目录下面,注意创建软连接! OK !不出意外的话可以成功,

eMwin 移植 文档飞利浦 恩智浦

uC/GUI(emWin)的应用与移植 当你开始使用emWin进行编程时,通常遵循以下的步骤: 第1步:配置emWin 第一步通常是通过修改头文件LCDConf.h来配置emWin。LCDConf.h中的宏定义描述了LCD显示部分硬件特性;根据你的具体情况修改这些宏定义(例如显示屏的长、宽,每像素点用几位表示,LCD控制器的类型等参数)。 第2步:定义LCD的底层驱动函数 底层函数包括对LCD(控制器)的初始化函数,LCD显示缓冲区的读写函数等,完成对LCD显示硬件的直接操作。 对于映射在系统存储器上的LCD,对显示缓冲区的操作仅需要在LCDConf.h中进行定义就可以了。但对于采用I/O端口/缓冲区操作的LCD,就必须定义相应的接口函数了。 第3步:编译,链接和测试例子代码 emWin对于单任务和多任务环境下的应用都提供了例子代码。在编程之前,对这些例子代码进行编译、链接和测试,使你能够初步了解这些代码的使用。 第4步:修改例子程序 对例子代码作少量的修改。逐步添加一些额外的指令,例如显示不同大小的文字,显示多行等等,从而进一步理解代码的应用。 第5步:emWin的多任务应用,加入到你的操作系统中 如果你的系统有可能多个任务同时对显示进行操作,这时就要用到GUITask.C文件中的GUI_MAXTASK 和GUI_OS宏。 第6步:采用emWin编写你自己的应用 到这一步你应该对怎样使用emWin有一个清楚的了解了。考虑如何采用emWin提供的函数来构建你的应用,并通过阅读手册来获得各函数更详细的功能和使用上的信息。 emWin的移植 移植是指对emWin进行配置和修改,使它能够在你的目标系统上运行。参考第3.4节中的第一步和第二步,移植工作主要是针对配置头文件中的宏定义进行修改。 这些宏包括: 1. LCD宏,定义了显示的尺寸和一些可选择的特性(例如镜像,等等)

华为AR系统系列升级、更新文档最全

1 升级操作系统 1.1 准备升级工具 升级前,需要准备以下工具: 操作终端,可以是台式机或者便携机。 网线、串口线。 如果采用FTP、SFTP或TFTP方式升级,AR可以作为TFTP Client、SFTP Server、SFTP Client、FTP Client或FTP Server, 需要准备相对应的TFTP Server、SFTP Server、SFTP Client、FTP Server或FTP Client软件。 1.2 查询当前软件版本信息 用户视图下,使用display version命令查看设备正在运行的系统软件的版本,确认当前版本符合升级前的版本要求。 1.2.1 场景三:AR作为TFTP Client,PC作为TFTP Server 这里以设备作为TFTP Client为例进行说明。

TFTP Server软件由用户自己购买、安装,TFTP Server程序建议使用TFTPD32软件。 将PC作为TFTP服务器,在PC上运行TFTP Server程序并进行相应设置 CONSOLE登录设备后:配置ip地址与tftp server连通 tftp serverip get 1.3 备份Flash/SD卡中的重要文件 Flash或SD卡中的重要文件一定要在升级之前备份。重要文件包括:升级前系统使用的系统软件、配置文件、License文件和补丁文件。 备份补丁文件、License文件的方法和系统软件类似,这里不再单独举例说明。 以通常AR1220VW为例,假设当前系统的系统软件为以,数据配置文件为(V200R007C00SPC900版本的默认配置文件为)。 备份系统软件有如下方式: AR作为FTP Server备份系统软件 AR作为FTP Client备份系统软件 AR作为TFTP Client备份系统软件 AR作为SFTP Client备份系统软件 1.3.1 方法三:AR作为TFTP Client 步骤 1设置TFTP服务器(参照“场景三:AR作为TFTP Client,PC 作为TFTP Server”进行设置)

ARMLinux移植基本概念

ARM的嵌入式Linux移植体验之基本概念 日前,笔者作为某嵌入式ARM(硬件)/Linux(软件)系统的项目负责人,带领项目组成员进行了下述工作: (1)基于ARM920T内核S3C2410A CPU的电路板设计; (2)ARM处理下底层软件平台搭建: a.Bootloader的移植; b.嵌入式Linux操作系统内核的移植; c.嵌入式Linux操作系统根文件系统的创建; d.电路板上外设Linux驱动程序的编写。 本文将真实地再现本项目开发过程中作者的心得,以便与广大读者共勉。第一章将简单地介绍本ARM开发板的硬件设计,第二章分析Bootloader的移植方法,第三章叙述嵌入式mizi Linux的移植及文件系统的构建方法,第四章讲解外设的驱动程序设计,第五章给出一个已构建好的软硬件平台上应用开发的实例。 如果您有嵌入式系统的开发基础,您将非常容易领会本文讲解地内容。即便是您从来没有嵌入式系统的开发经历,本文读起来也不会生涩。您可以通过如下email与作者联系:21cnbao@https://www.doczj.com/doc/98919665.html,。 2.ARM体系结构 作为一种RISC体系结构的微处理器,ARM微处理器具有RISC体系结构的典型特征。还具有如下增强特点:

(l)在每条数据处理指令当中,都控制算术逻辑单元(ALU)和移位器,以使ALU和移位器获得最大的利用率; (2)自动递增和自动递减的寻址模式,以优化程序中的循环; (3)同时Load和Store多条指令,以增加数据吞吐量; (4)所有指令都条件执行,以增大执行吞吐量。 ARM体系结构的字长为32位,它们都支持Byte(8位)、Halfword(16位)和Word(32位)3种数据类型。 ARM处理器支持7种处理器模式,如下表: 大部分应用程序都在User模式下运行。当处理器处于User模式下时,执行的程序无法访问一些被保护的系统资源,也不能改变模式,否则就会导致一次异常。对系统资源的使用由操作系统来控制。 User模式之外的其它几种模式也称为特权模式,它们可以完全访问系统资源,可以自由地改变模式。其中的FIQ、IRQ、supervisor、Abort和undefined 5种模式也被称为异常模

hp3par存储解决方案模板

贵单位HP- 3PAR存储解决方案

目录 贵单位......................................................... 错误!未定义书签。第1章.前言................................................. 错误!未定义书签。第2章.简介................................................. 错误!未定义书签。 用户现状....................................................... 错误!未定义书签。 用户需求....................................................... 错误!未定义书签。第3章.需求分析............................................. 错误!未定义书签。 容量分析....................................................... 错误!未定义书签。 性能分析....................................................... 错误!未定义书签。 维护分析....................................................... 错误!未定义书签。 存储部署..............................................错误!未定义书签。 存储配置调整..........................................错误!未定义书签。 存储扩容..............................................错误!未定义书签。 性能优化..............................................错误!未定义书签。 高可用性需求.................................................. 错误!未定义书签。 容灾需求....................................................... 错误!未定义书签。第4章.解决方案............................................. 错误!未定义书签。 方案概述....................................................... 错误!未定义书签。 方案配置....................................................... 错误!未定义书签。 方案基本优势................................................... 错误!未定义书签。 全网状控制器集群架构..................................错误!未定义书签。 独特的双分类处理单元..................................错误!未定义书签。 全新的磁盘划分方式....................................错误!未定义书签。 高性能存储系统........................................错误!未定义书签。 存储的高可用性........................................错误!未定义书签。 业务连续性............................................错误!未定义书签。 存储数据精简..........................................错误!未定义书签。 动态的存储优化........................................错误!未定义书签。 数据分层以及热点数据迁移..............................错误!未定义书签。 虚拟资源调配..........................................错误!未定义书签。 智能的管理界面........................................错误!未定义书签。 VM WARE环境解决方案 ............................................ 错误!未定义书签。 提高VMware vSphere投资回报...........................错误!未定义书签。 提高虚拟化环境的整合力度..............................错误!未定义书签。 简化虚拟化环境的管理..................................错误!未定义书签。 O RACLE环境解决方案............................................. 错误!未定义书签。 Oracle环境面临的挑战................................错误!未定义书签。 HP-3PAR Thin与Oracle ASM环境的完美结合.............错误!未定义书签。 Oracle环境的更高磁盘利用率..........................错误!未定义书签。 智能和主动的分层存储技术.............................错误!未定义书签。

白桦的移植技术-最新文档资料

白桦的移植技术 随着现代城市对景观环境的不断提高,大树移植以其优化城市绿地结构,改善城市绿地景观等特点逐渐被采用。白桦枝叶扶疏,姿态优美,尤其是树干修直,洁白雅致,十分引人注目,是园林绿化的优选树种。这几年,我们在移植白桦的过程时总结了以下几个技术要点。 、前期准备 1)掌握白桦特性、生态习性及苗木地、种植地的土壤等 环境因素。 2)准备好必须的机械设施(如吊车,运输车等)、人力 及辅助材料,运输路线,并制定合理的起运栽植方案。 3)号苗及苗木处理:选择生长强健,无病虫害的、符合 绿化设要求的苗木,预先进行疏枝及修剪,修剪时剪口必须平滑,截面尽量缩小,修剪2 公分以上的枝条,剪口应涂沫防腐剂(涂白调和漆或石灰乳)。 4)白桦栽植穴的处理:如白桦树穴除考虑土坨大小外, 还要预留出人工坑内作业空间,树穴基部土壤保持水平。新换的土,一定要将虚土夯实并用水下沉,以防止土壤不平白桦放入后发生倾斜。 二、起运栽植 1、时间

栽植白桦的时间根据北方的气候条件选在3 月20日到4 月 10 日。此时白桦还在休眠,树液尚未流动。白桦移植应做到随 2、起苗 这次移栽的白桦树胸径在距地面一米三处达到20 厘米左右,按着技术规定,根系要保证不小于胸径的10-12 倍,这次我们起的树坨直径是2 米,土坨的高度为直径的0.6 倍。土坨要完好、平整。土坨形似苹果,底部不超过土坨直径的三分之一。起挖前以白桦树干为中心,按规定尺寸划出圆圈,在圈外挖60-80 厘米的操作沟,至规定深度,挖时先去表土,见表土为准,再行下挖,挖时遇粗根必须用锯锯断再削平,不得硬铲,以免造成散 坨。修坨,用铣将所留土坨修成上大下小呈截头圆锥型的土球。 收底,土球底部不应留的过大,一般为土球直径的1/3 左右。土球修成圆形之后,立即用预先湿润的草包将土球围住,并用湿润的草绳横腰绕, 7-10 圈,捆紧。将围腰草绳捆好后就开始包扎土球,一般需要2-3 人同时操作。用草绳包土球时,将双股草绳的一头系在树干基部,然后从土球上部往下绕过土球底部,从土球的对面再绕上去,将草绳每隔5-8 绕1 圈,这样从上绕到下,再从下绕到上,反复缠绕,就能将整个土球包住。拉草绳的人每拉一次草绳就用小木锤顺着草绳前进的方向锤好土球肩部的草绳,使草绳紧紧套住底部。土球包好以后,将草绳拴绕在树干的根基处,并在土球腰部密集绕捆草绳 10-14 圈,在腰箍上打成

Linux C语言 socket编程 聊天室 可移植到arm开发板

sockets聊天室 1.1介绍 包括一个客户端和一个服务器。可实现多人聊天和两人一对一单独聊天。 1.2开发环境和工具 Linux gcc 1.3程序设计 服务器: 1. 声明一个client结构体,包含用户自己的socket描述符mid,自己的用户名name以及 与自己聊天对象的Socket描述符fid(默认是-1,即公共聊天室)。并定义一个结构体数组。 2. 服务器新建一个socket设置默认的ip为自动获取,调用bind()函数绑定服务器socket 与ip。 3. 开启listen()监听客户端的连接请求。 4. 在while循环里,用accept()等待连接,连接成功后,把accept()返回的socket描述 符存入client结构体数组中。 5. 每成功新建一个连接,就创建一个对应的子线程,接收并转发消息。 6. 定义void rec_snd(int n)这个函数,用于接收和转发消息。可选择公共聊天室和私聊, 私聊需要正确输入对方的名字。连接建立以后就可以发送消息。当接收的消息为bye 时,断开当前连接,如果是一对一私聊,一方断开另一方自动转入公共聊天室。 客户端: 1.新建一个socket,并与ip,端口进行绑定。 2.调用connect连接服务器。连接成功后新建一个线程用于发送消息, 主线程在while中调用read()接收服务器消息。 3.Snd()函数用于向服务器发送消息。 4._select()函数用于选择功能。 1.4应用演示 服务器端成功开启等待连接:

当有客户端连接时,会显示ip端口,socket标识符信息。客户端成功连接上服务器时会收到提示输入用户名: 输入姓名后会提示选择功能:

HP3PAR存储日常管理系统手册簿

青岛市财政信息系统灾备中心设备采购 项目 HP 3par V7000操作手册 北京市太极华青信息系统有限公司 2015年11月

目录 第一章 HP 3PAR StoreServ 7000管理 (3) 1.1 存储的开机步骤 (3) 1.2 存储的关机步骤 (3) 1.3 存储日志InSplore收集 (3) 1.4 管理机SP日志InSplore收集 (4) 第二章日常操作 (5) 2.1 IMC连接至3PAR (5) 2.2 创建HOST (6) 2.3 创建VV (10) 2.4 分配VV (13)

第一章 HP 3PAR StoreServ 7000管理 1.1存储的开机步骤 打开PDU电源 打开各盘笼左右电源模块开关,并等待盘笼硬盘自检1分钟 打开控制器NODES左右电源模块开关 打开SP电源 进入IMC管理软件中,检查存储状态是否已经能够访问 启动连接存储的服务器 启动数据库/应用程序 1.2存储的关机步骤 关闭连接存储的业务系统或服务器 打开SP界面 选择Inserv Product Maintenance 选择”Halt an InServ Cluster/Node“ 有3此弹出关机确认窗口需要确认 选择”ALL Nodes“并确认关机,等待系统3-4分钟关闭存储操作系统,Node状态灯闪烁,热拔插灯变成蓝色 选择“SP Control/Status——Halt SP” 关闭各控制器、盘笼的电源模块开关 关闭4个PDU电源开关 1.3存储日志InSplore收集 Insplore工具收集存储相关参数及日志等信息用于相关故障诊断 通过IE浏览器访问SP的IP地址,使用“3parcust”用户登录SP图形界面SPOCC。 点击Support面板,然后点击InSplore。

系统移植方案

文档作者:cyt2005 提交时间:2007年7月06日 系统移植方案 Mysql的版本是mysql-5.1.19-win32 操作系统是WINXP2 移植过程中重点问题 数据类型差异 ORACLE数据库和MYSQL数据库在数据类型方面差异比较大,而且数据类型也是一个数据库存储数据的基础,所以找到数据类型之间的对应是整个系统进行移植的基础。以下给出了ORACLE →MYSQL数据类型的对应关系。b5E2RGbCAP 数值类型: NUMBER → DECIMAL,精度刻度都不变 注:如果是序列用BIGINT 字符串类型: VARCHAR2 → VARCHAR长度不变。 LONG → LONGTEXT 这里有可能遇到的问题是超过主键key长度的问题,根据实际情况适当修改,如果是TEXT类型也需要指名长度,否则建立key会报错p1EanqFDPw 日期类型: DATE→DATETIME

TIMESTAMP(N> TIMESTAMP SQL语法差异 SEQUENCE: MYSQL没有ORACLE中的SEQUENCE对象,我们在迁移的时候需要特别注意,一般SEQUENCE有两种用途:DXDiTa9E3d 1、作为表中自增字段的序列号。 2、程序中获得自动编号。 MYSQL数据类型中存在 AUTO_INCREMENT为自增数据类型。我们可以利用该数据类型变通一下来满足我们现有系统中的SEQUENCE功能。RTCrpUDGiT 对于ORACLE中SEQUENCE作为表的自增列一般是通过与触发器绑定实现的,在MYSQL中我们可以直接利用MYSQL的AUTO_INCREMENT类型来实现。5PCzVD7HxA ORACLE开发的应用程序中直接SELECT SEQUENCT来获得自动编号,对于这个功能我们也可以利用MYSQL的AUTO_INCREMENT类型来实现。jLBHrnAILg 首先介绍一个函数,我们可以利用如下函数查询最后一个序列号的值: mysql> SELECT LAST_INSERT_ID(>。 +------------------+ | LAST_INSERT_ID(> | +------------------+

linux arm 移植手册(分享)

Linux系统移植 目 录 第一部分 前言 (8) 1 硬件环境 (8) 1.1主机硬件环境 (8) 1.2 目标板硬件环境 (8) 1.3工具介绍 (8) 2软件环境 (8) 2.1主机软件环境 (8) 2.1.1 Windows 操作系统 (8) 2.1.2 Linux操作系统 (8) 2.1.3 目标板最后运行的环境 (9) 2.2 Linux下工作用户及环境 (9) 2.2.1 交叉工具的安装 (9) 2.2.2 u-boot移植工作目录 (9) 2.2.3 内核及应用程序移植工作 (9) 2.3 配置系统服务 (10) 2.3.1 tftp服务器的配置 (10) 2.4 工具使用 (12) 2.4.1 minicom的使用 (12) 3 作者介绍 (13) 3.1 策划, 组织, 指导, 发布者 (13) 3.2 ADS bootloader部分 (13) 3.3 交叉工具部分 (13) 3.4 uboot部分 (13) 3.5 内核部分 (13) 3.6 应用程序部分 (13) 3.7 网卡驱动部分 (13) 3.8 Nand Flash 驱动部分 (13) 第二部分 系统启动bootloader的编写(ADS) (14) 1 工具介绍 (14) 1.1 ADS 命令行命令介绍 (14) 1.1.1 armasm (14) 1.1.2 armcc, armcpp (14) 1.1.3 armlink (14) 2 基本原理 (15) 2.1 可执行文件组成及内存映射 (15) 2.1.1 可执行文件的组成 (15)

2.1.3 启动过程的汇编部分 (17) 2.1.4 启动过程的C部分 (17) 3 AXD的使用以及源代码说明 (18) 3.1 源代码说明 (18) 3.1.1 汇编源代码说明 (18) 3.1.2 C语言源代码说明 (23) 3.1.3 源代码下载 (23) 3.2 AXD的使用 (23) 3.2.1 配置仿真器 (23) 3.2.2 启动AXD 配置开发板 (23) 第三部分 GNU交叉工具链 (25) 1 设置环境变量,准备源码及相关补丁 (25) 1.1 设置环境变量 (25) 1. 2 准备源码包 (25) 1.2.1 binuils (25) 1.2.2 gcc (25) 1.2.3 glibc (25) 1.2.4 linux kernel (26) 1.3 准备补丁 (26) 1.3.1 ioperm.c.diff (26) 1.3.2 flow.c.diff (26) 1.3.3 t-linux.diff (26) 1.4 编译 GNU binutils (26) 1.5 准备内核头文件 (26) 1.5.1 使用当前平台的gcc编译内核头文件 (26) 1.5.2 复制内核头文件 (27) 1.6 译编glibc头文件 (27) 1.7 编译gcc第一阶段 (27) 1.8 编译完整的glibc (27) 1.9 编译完整的gcc (28) 2 GNU交叉工具链的下载 (28) 2.1 ARM官方网站 (28) 2.2 本文档提供的下载 (28) 3 GNU交叉工具链的介绍与使用 (29) 3.1 常用工具介绍 (29) 3.2.1 arm-linux-gcc的使用 (29) 3.2.2 arm-linux-ar 和 arm-linux-ranlib的使用 (30) 3.2.3 arm-linux-objdump的使用 (30) 3.2.4 arm-linux-readelf的使用 (31) 3.2.6 arm-linux-copydump的使用 (32) 4 ARM GNU常用汇编语言介绍 (32)

NB-IoT协议SDK移植说明文档docx.docx

NB-IOT 协议接入说明文档 Version: 1.0

1、资源模型介绍 1.1协议介绍 OneNET提供了采用LWM2M+CoAP协议接入设备的说明文档,用户可以下载学习相关的具体内容,其中包括: LWM2M协议的介绍 LWM2M是OMA组织制定的轻量化的M2M协议。LwM2M定义了三个逻辑实体: ?LWM2M Server 服务器; ?LWM2M Client 客户端,负责执行服务器的命令和上报执行结果; ?LWM2M 引导服务器Bootstrap Server,负责配置LWM2M客户端。 在这三个逻辑实体之间有4个逻辑接口: ?Device Discovery and Registration:客户端注册到服务器并通知服务器客户端所支持的能力; ?Bootstrap:Bootstrap Server配置Client; ?Device Management and Service Enablement:指令发送和接收; ?Information Reporting:上报其资源信息。 图1-1 LWM2M协议栈 ?LWM2M Objects:每个对象对应客户端的某个特定功能实体。LWM2M 规范定义

了以下标准Objects,比如 o urn:oma:lwm2m:oma:2; (LWM2M Server Object); o urn:oma:lwm2m:oma:3; (LWM2M Access Control Object); o每个object下可以有很多resource,比如Firmware object可以有Firmware版本号,size等resource; o Vendor可以自己定义object。 LWM2M Protocol:定义了一些逻辑操作,比如Read, Write, Execute, Discover or Observe等。 LWM2M协议的具体内容和消息格式可以参考OMA的网站 https://https://www.doczj.com/doc/98919665.html,/wiki/OMA_LWM2M CoAP协议的说明 CoAP(Constrained Application Protocol)协议是IETF提出的一种面向网络的协议,采用了与HTTP类似的特征,核心内容为资源抽象、REST式交互以及可扩展的头选项等。CoAP协议基于REST构架,REST是指表述性状态转换架构,是互联网资源访问协议的一般性设计风格。为了克服HTTP对于受限环境的劣势,CoAP既考虑到数据报长度的最优化,又考虑到提供可靠通信。一方面,CoAP提供URI,REST式的方法如GET、POST、PUT和DELETE,以及可以独立定义的头选项提供的可扩展性。另一方面,CoAP基于轻量级的UDP协议,并且允许IP多播。为了弥补UDP传输的不可靠性,CoAP定义了带有重传机制的事务处理机制。并且提供资源发现机制,并带有资源描述。

系统升级说明文档

系统升级功能培训文档 一、系统调整及升级功能培训 1、异动表模板 单位异动表导出:失业保险-> 人员管理-> 人员异动 【失业人员申领资格初审表打印】:导出单位当前失业状态人员的领取资格初审表 【导出人员异动信息表】:导出单位当前在业状态人员的标准异动格式表 新版异动表格式: 对于从本地转出后又重新转入的人员,可在人员编号出带入系统中已经存在的个人编号。个人月度应缴会根据异动时间自动按照对应的比例进行费用核算 新版失业人员申领资格初审表:

2、人员基本情况及缴费登记表 表格导出位置:失业保险-> 年度登记管理-> 年度登记: 【导出当年个人信息表】:导出单位当前系统中的在业缴费人员 【导出当年个人信息表】:导出单位指定年份的在业人员,指定年份3月份的数据 新版人员基本情况及缴费登记表: 个人缴费比例:默认为0.007,如果需要年审2014年之前的数据,则需要调整该比例为0.01。 3、人员缴费月数变更业务 针对业务办理过程中出现的一些特殊状况(比如人员的合理视同缴费没有在参保时带入系统、参保后从外地有正式的缴费记录转入记录等),系统提供这个功能,通过申请、审核、审批的多级审核后即可将这部分数据修改进系统。 4、人员异动记录变更业务

由于单位在人员异动办理过程中异动原因的填报错误,后续提出申请需要进行修改的,可通过此业务进行异动原因的修正。 5、在职职工转迁 针对在职职工提供的一种转入和转出操作。转出操作是只需要该人员在失业状态并且不在领取状态即可通过该功能转出(比如领取人员在未全部领取完毕后在外地就业的转移,由于不需要转移待遇,所以无法从待遇人员处转移)。转入主要提供人员异动进入系统是就附带了转移单的状况。人员异动进入后可通过该功能对转移的月数进行保存。 6、人员基本信息的变更 处理系统中所有人员(含失业人员和待遇享受人员)的基本信息的变更登记。待遇部分不再提供基本信息的变更处理。 7、月度初始化 原来的查询只能查询到已经申报的单位,新版增加了【查询未初始化】功能。可以查询到当月还没有进行应缴费核定的单位。

移植树木请示文档3篇

移植树木请示文档3篇Request document for transplanting trees

移植树木请示文档3篇 小泰温馨提示:请示报告是机关、事业和企业单位在公文往来中经常用到的重要评议体之一。主要用于向上级机关请求指示、请示批准某一事项的报告。本文档根据请示报告内容要求展开说明,具有实践指导意义,便于学习和使用,本文下载后内容可随意修改调整及打印。 本文简要目录如下:【下载该文档后使用Word打开,按住键盘Ctrl键且鼠标单击目录内容即可跳转到对应篇章】 1、篇章1:移植树木请示文档 2、篇章2:移植树木请示文档 3、篇章3:移植树木请示文档 规划先行,重点工程铺开,树木逐步移栽。移植树木的请示该怎么写?下文是移植树木请示,欢迎阅读! 篇章1:移植树木请示文档 汲取6.6南山火灾教训,根据电力线路规程的要求,需将南山电杆、线路附近的树木全部移植或裁剪,共计处理树木1668余颗;其中110kv进线区的178颗柏树和35kv出线处190颗松柏要求修剪到1米高度,剩余的要求裁剪或移植。(树木数量详见附表:南山站周边树木明细表),本请示报告,已于

六月十三日上报绿化办,因资金问题,一直未能解决,请上级领导协助督促处理为盼。 篇章2:移植树木请示文档【按住Ctrl键点此返回目录】小组,因县乡规划自然沙洲退洲返田,原来沙洲一些零星树木(包括花果树、人工栽培樟树、)尽快移植,为加强生态文明建设,合理保护资源,恳请贵局批复XXX组xxx有限公司)。 篇章3:移植树木请示文档【按住Ctrl键点此返回目录】东花园提升改造工程已于20XX年4月2日正式开工,今年园区铺开的主要基础设施工程为:打通西口学府街通往园区内的360米施工道路;开挖400亩生态如意形水系;形成园区4.8公里内8字形主干道路基工程;6000米左右的排污管网铺设,百亩绿化示范区建设等工程,计划完成投资额1亿元人民币。 按照规划先行,重点工程铺开,树木逐步移栽的原则,施工单位并云湖工程部反复调查,递交了《关于花园提升改造工程并涉及树木移栽情况报告》见附件。

相关主题
文本预览
相关文档 最新文档