您的位置:首页 > 移动开发

移植appweb 5.0到arm平台 mini2440

2014-08-22 17:32 477 查看
开发板上需要运行一个web服务器,经过比较选择了appweb,现记录一下移植过程。

1.前言

1.1开发环境参数

开发板:mini2440 64MB内存 256MB Flash

PC系统:X86 ubuntu10.04 gcc:4.4.3

交叉编译器:gcc 4.4.3

1.2AppWeb简介

官网:http://appwebserver.org/

Appweb是一个嵌入式HTTP Web服务器,功能很强大,号称“mini阿帕奇”

具有以下特性:

Full HTTP/1.1 web server

Multi-threaded, event-driven core: fastest performance in its class

Dynamically loadable modules

Server-side JavaScript web framework

In-memory PHP module

In-process CGI as well as traditional CGI

Apache compatible configuration and logging

Basic and Digest Authentication

Secure Socket Layer (SSL/TLS)

Session state data management

HTTP Client program and library

ROMable web pages and configuration files

Cross-platform and portable

Embeddable in applications and devices (supports XIP)

Modular source code and documentation provided

更多细节参考如下网址:
http://appwebserver.org/products/appweb/features.html
2.移植

2.1 下载

去网址:http://appwebserver.org/downloads/appweb/download.esp下载appweb的源码,我下载的版本是appweb5.0

2.2 交叉编译

(1)解压源码文件,在projetcs文件夹底下找到appweb-linux-default.mk文件和appweb-linux-default-me.h文件将其复制名为appweb-linux-default-arm.mk文件和appweb-linux-default-me-arm.h

(2)修改appweb-linux-default-arm.mk文件中的内容:

(i)ARCH ?= arm

(ii)CC ?= arm-linux-gcc

(iii)把文件中3处appweb-linux-default-me.h改为appweb-linux-default-me-arm.h

(iiii)把文件appweb-linux-default-me-arm.h中的#define ME_COMPILER_HAS_SYNC64 1注释掉,不然会报错“undefined reference to `__sync_add_and_fetch_8'collect2: ld returned 1 exit status”

//#define ME_COMPILER_HAS_SYNC64 1

(3)编译

make -f projects/appweb-linux-default-arm.mk

编译完后会在../appweb-5.0.0-rc1/linux-arm-default文件下生成目标文件将../appweb-5.0.0-rc1/linux-arm-default/bin文件夹下的所有文件拷贝到开发板上的bin目录下或是/usr/bin目录下

2.3测试

在开发板上输入命令:appweb --version
会打印出版本信息:5.0.0-rc1

说明appweb移植正确

要使用appweb运行网站,参见我的这篇博客http://blog.csdn.net/xiaominthere/article/details/38756421,里面有详细的介绍
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: