[国嵌攻略][174][CGI快速入门-网页控制LED]

CGI程序(Common Gate Way Interface)

在服务器外部供服务器调用的程序,CGI程序与服务器配合后能让服务器完成更强大的功能。

1.浏览器通过HTML表单或超链接请求指向一个CGI应用程序的URL。

2.服务器收发到请求。

3.服务器执行指定所CGI应用程序。

4.CGI应用程序执行所需要的操作,通常是基于浏览者输入的内容。

5.CGI应用程序把结果格式化为网络服务器和浏览器能够理解的文档(通常是HTML网页)。

6.网络服务器把结果返回到浏览器中。

移植CGI库

1.解压

tar zxvf cgic205.tar.gz

2.修改Makefile

cd cgic205

vim Makefile

修改工具链为arm-linux-

3.编译

make

5.拷贝库文件

cp libcgic.a .../rootfs/lib

6.修改boa配置文件

ScriptAlias /app/ /web/app/   指定CGI程序路径

7.修改网页

<a  class=”menu” href=”/led.html”>LED控制</a>

标签通过action调用CGI程序,并且参数通过url地址传递给CGI程序。

编写CGI程序

编译CGI程序

arm-linux-gcc –L ./cgic205 –lcgic -I ./cgic205 led.c –o led.cgi

-L 表示库文件路径, -l 表示要包含的库文件, -I 表示头文件路径

时间: 2024-10-21 22:01:41

[国嵌攻略][174][CGI快速入门-网页控制LED]的相关文章

[国嵌攻略][049][中断处理流程深度剖析]

中断的生命周期 1.串口控制器产生事件,送到中断控制器,如果通过中断控制器的过滤,由中断控制器把事件送到CPU核 2.中断信号产生(中断源)->中断信号过滤(中断控制器)->中断信号处理(CPU) 中断源在中断的生命周期中,中断源的作用是负责产生中断信号.2440支持60个中断源:6410支持64个中断源:210支持93个中断源 中断过滤 1.中断信号送到中断控制器来了之后,中断控制器要进行过滤 2.串口子中断TX0的过滤过程: 2.1.首先,当TX0产生中断后SUBSRCPND中相应的位会被

[国嵌攻略][155][I2C用户态驱动设计]

用户态驱动模型 用户态驱动模型首先是一个应用程序,其次是在这个用户程序中通过内核调用来驱动设备. IIC通用驱动代码 IIC通用驱动程序的代码在/drivers/i2c/i2c-dev.c中.一次读操作或者一次写操作就是一条消息. EEPROM用户态驱动 IIC通用设备对应/dev/i2c-0设备文件. 1.打开通用设备驱动 2.构造写数据到eeprom的消息 3.使用ioctl写入数据 4.构造从eeprom读数据的消息 5.使用ioctl读出数据 6.关闭设备 配置IIC驱动 make me

[国嵌攻略][057][串口控制台建立]

控制台分类 1.菜单型控制台,通过选择菜单来执行命令 2.解析型控制台,通过输入命令来执行命令 printf().scanf()函数移植 1.函数采用变参 2.打印信息到串口 3.关键在于把变参转换成字符串,相关函数需要从Linux内核或标准C库中移植 va_list args; va_start(args, fmt); vsprintf(buf, fmt, args); va_end(args); /***********************************************

[国嵌攻略][117][LED驱动程序设计]

LED程序设计 1.编写内核模块 2.搭建字符驱动框架 3.实现设备方法 头文件 <linux/io.h> writel() leddev.h //设备命令 #define LED_MAGIC 'L' //LED幻数 #define LED_ON _IO(LED_MAGIC, 0) //打开LED #define LED_OFF _IO(LED_MAGIC, 1) //关闭LED leddev.c /***********************************************

[国嵌攻略][112][使用字符设备驱动]

编译/安装驱动程序 在Linux系统中,驱动程序通常采用内核模块的程序结构来进行编码.因此编译/安装一个驱动程序,其实就是编译/安装一个内核模块. 示例: make insmod memdev.ko 创建设备文件 应用程序->设备文件->驱动程序 通过字符设备文件,应用程序可以使用相应的字符设备驱动程序来控制字符设备.创建字符设备文件的方法一般有两种: 1.使用mknod命令 mknod /dev/文件名 c 主设备号 次设备号 驱动程序通过主设备号与字符设备文件一一对应,驱动程序的主设备号可

[国嵌攻略][102][内核驱动开发环境搭建]

服务器环境搭建 1.配置tftp服务器 1.1.设置tftp目录 vim /etc/xinetd.d/tftp server_args             = -s .../tftp disable                 = no 1.2.启动tftp服务 /etc/init.d/xinetd restart 2.配置nfs服务器 2.1.设置nfs目录 vim /etc/exports .../nfs *(rw,sync,no_root_squash) 2.2.启动nfs服务 /

[国嵌攻略][091][TCP网络程序设计]

server.c #include <sys/socket.h> #include <netinet/in.h> #include <strings.h> #include <stdio.h> #define SERVER_PORT 3333 void main(){ //创建标识 int serverfd; serverfd = socket(AF_INET, SOCK_STREAM, 0); //建立TCP连接 //绑定地址 struct sockadd

[国嵌攻略][079][多进程程序设计]

fork.c #include <stdio.h> #include <stdlib.h> #include <unistd.h> void main(){ int pid; pid = fork(); printf("pid is %d\n", pid); exit(0); } vfork.c #include <stdio.h> #include <stdlib.h> #include <sys/types.h>

[国嵌攻略][073][静态函数库设计]

外部函数 Linux应用程序设计中需要的外部函数主要由函数库和系统调用来提供. 两者区别 系统调用在Linux内核中位于核心态,而函数库是由工程师提供位于用户态 函数库分类 函数库按照链接方式可以分为静态函数库和动态函数库 存放位置 Linux应用程序使用的主要函数库均存放于/lib,/usr/lib目录下,其中以*.so.*方式命名的是动态函数库,而以*.a方式命名的是静态函数库. 静态链接库的特点 程序所要用到的库函数代码在链接时全部被拷贝到程序中.如果有多个进程在内存中同时运行,并且使用了