当前位置: 首页 > 工具软件 > miniWEB APP > 使用案例 >

移植appweb 5.0到arm平台 mini2440

狄玉书
2023-12-01

开发板上需要运行一个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,里面有详细的介绍

 类似资料: