随笔分类 - ARM
嵌入式系统ARM
GoAhead2.5源代码分析之6-访问验证(security.c)
摘要:security.c主要功能是:验证登陆用户的信息,会在页面上显示对应的信息,不成功,显示错误页面,成功时,会验证用户名和密码。-----------------------------------------------------------------------------------------------------------------int websSecurityHandler(webs_t wp, char_t *urlPrefix, char_t *webDir, int arg, char_t *url, char_t *path, char_t *query)功能.
阅读全文
GoAhead2.5源代码分析之7-form请求处理(form.c)
摘要:form.c(form请求处理)-----------------------------------------------------------------------------------------------------------------int websFormHandler(webs_t wp, char_t *urlPrefix, char_t *webDir, int arg, char_t *url, char_t *path, char_t *query)功能:处理form请求说明:1. 根据form的路径path,分离出form程序名,例如/goform/my,
阅读全文
GoAhead2.5源代码分析之8-sym hash table(sym.c)
摘要:sym.c(symbol hash table)typedef struct { /* Symbol table descriptor */ int inuse; /* Is this entry in use */ int hash_size; /* Size of the table below */ sym_t **hash_table; /* Allocated at run time */} sym_tabent_t;typedef struct sym_t { struct sym_t *forw; /* Pointer to next hash list */ value_t n
阅读全文
GoAhead2.5源代码分析之9-cgi处理句柄(cgi.c)
摘要:cgi.c(cgi)int websCgiHandler(webs_t wp, char_t *urlPrefix, char_t *webDir, int arg, char_t *url, char_t *path, char_t* query)功能:处理cgi请求。说明:1. 抽出页面上form中调用的cgi程序的名字,构建完整的路径/ata0/webs/www/*2. 进入到cgi程序所在的目录,即/ata0/webs/www3. 分配内存,建立cgi程序的参数,主要是从也空格分割的qurey中提取出来4. 从cgi的环境变量中,构建名、值对。5. 确定标准输入、输出。标准输出是个临时
阅读全文
GoAhead2.5源代码分析之10-web server主程序(main.c)
摘要:main.c(主程序)是web服务器的主要,也就是启动函数。int websvxmain(int argc, char **argv)功能:goahead web服务器的启动的第一个函数。说明:1. 判断命令中有没有-demo,有则,代码中包含/wwwdemo/目录下的页面对应的cgi程序,该目录下是一些例子程序。2. 分配一个60k的内存空间。3. 初始化web服务器。4. 然后进入while循环,在打开的socket数组中寻找是否有一个socket需要处理(socketReady);如果没有,则等待2秒,发现有可读、可写socket(socketSelect)。如果有则进行处理(socke
阅读全文
goAhead上实现文件上传到嵌入式web服务器上
摘要:本文内容概要:详细描述了在goAhead 2.5上如何实现文件上传(上传文件)到服务器端的功能。开发环境: 宿主 机:window XP;虚 拟 机:ubuntu9.10; 交叉编译器:arm-uclibc-gcc(arm-linux-gcc-4.3.2可以顺利编译通过)———————————————————————————————————————————————————————————————————1. 说明最近调试web文件上传到服务器功能,但在调试时,处理函数总是获取不到文件路径,百思不得其解,查了网上许多文章,但大多提到的是前端文件上传的原理、实现方式等,而未提供服务器端处理的实现(
阅读全文
Android在TQ2440开发板上的移植(转)
摘要:
一、目前进展
1.Android已经可以通过NFS在TQ2440开发板上运行
最近自己编译了android的文件系统,并在TQ上运行了,比熊猫版的bin程序多些,基本功能已经实现,大家可以从:
http://d.namipan.com/d/b64ce43b2388e5e1f66af18149824b98cd13b926c4921f02
下载文件系统试试,改天整理一下,发个详细的移植过程和注意事项。
阅读全文
一、目前进展
1.Android已经可以通过NFS在TQ2440开发板上运行
最近自己编译了android的文件系统,并在TQ上运行了,比熊猫版的bin程序多些,基本功能已经实现,大家可以从:
http://d.namipan.com/d/b64ce43b2388e5e1f66af18149824b98cd13b926c4921f02
下载文件系统试试,改天整理一下,发个详细的移植过程和注意事项。
阅读全文
AT91RM9200+pcf8563在linux2.6.20下的调试心得
摘要:这两天调试了AT91RM9200+pcf8563在linux2.6.20下的驱动,记录一下我的调试过程以及调试心得,呵呵 在linux2.6.20/drivers/rtc目录下面已经有了pcf8563的驱动程序,通过make menuconfig配置一下就可以了。 问题出来了“This chip cannot be reliably autodetected”这是源码中的注释,不能自动检测,实际上确实如此,怎么解决这个问题呢?google..... 搜索很久终于看到有个牛人的解决方法: static unsigned short normal_i2c[] = { I2C_CLIENT_END
阅读全文
嵌入式WEB服务器BOA的移植方法
摘要:今天自己在开发板上移植了boa服务器。参考资料是李驹光、郑耿大侠在恒颐论坛上的帖子。李大侠写的好,我没有费什么力气就搞定了,:-)。步骤如下:1.从http://www.boa.org/下载Boa源码,将其解压并进入源码目录的src子目录# tar -zxvf boa-0.94.13.tar.gz# cd boa-0.94.13/src2.生成Makefile文件# ./configure修改Makefile文件,a.找到CC=gcc,将其改成CC = arm-linux-gcc,b.找到CPP = gcc –E,将其改成CPP = arm-linux-gcc –E,保存退出。3.运行make
阅读全文
修改arm开发板IP地址
摘要:要修改arm开发板的IP,如果是yaffs2文件,可以1、首先要修改/etc/init.d/rcS文件,在/sbin/ifconfig lo 127.0.0.0下添加一行/sbin/ifconfig eth0 192.168.1.20 up注:192.168.1.20 只是举例,可以改成你想要修改的IP地址本来这样修改之后就可以的,但是我发现仍然不行,使用ifconfig命令,发现开发板IP地址没有被更改过来。后来无心插柳,发现还需要修改另一处2、修改/etc/eth0-setting将其IP地址改成你想要设置的IP重启开发板,使用ifconfig命令,就发现IP地址已经修改过来了。
阅读全文
SmartArm3250下的Linux系统安装
摘要:目前正在研究SmartArm3250的Linux驱动方面,所以首先就要在开发板上安装(也可以称为下载)Linux系统,按照书上的步骤,遇到一些小问题,通过多次试验和总结,现在可以熟练的安装Linux系统了,总结一下,其中包含个人的见解和自己找到的资料。首先,介绍一下安装Linux的大致步骤。开发板就像一个裸机一样,什么都没有(当然有硬件),首先要安装一个类似于电脑中BIOS一样的东西,还 有一个引导操作系统的东西,然后就是装入内核镜像,不是.iso文件哦,是编译内核生成的一个东东,最后就是一个文件系统,类似于电脑中的各个分区,也可 以理解成光是C盘的各种东西,而与电脑中安装系统的不同之处在于,
阅读全文
linux内核GPIO模拟I2C实例
摘要:前言:在许多情况下,我们并没有足够的I2C总线,本文主在介绍如何利用Linux内核中的i2c-gpio模块,利用2条GPIO线模拟i2c总线,并挂载设备。思路:先通过对i2c-gpio所定义的结构体初始化(包括初始化i2c的2条线,频率,timeout等)并将i2c-gpio模块编译进内核,实现用GPIO_X,GPIO_Y 2条GPIO线注册新的i2c总线。此时这个模块对i2c设备是透明的,及挂在这2条GPIO线的i2c设备可以直接使用Linux内核通用的i2c设备注册,传输和注销等方法。步骤:首先确认在注册i2c-gpio模块前,所要用到的2条GPIO口是没有被系统其它地方所调用的。在每个系
阅读全文
GT_Trace的使用
摘要:使用Codec Engine开发DaVinci系统,最令人头痛的莫过于调试。由于evm6446开发过程分成DSP端和GPP端,因此我们无法使用IDE下的调试工具对程序进行跟踪调试。为此,TI在Codec Engine中提供了一套名为Generic Trace Support 的模块,专门用来打印Debug信息。要使用GT_Trace,需要在应用程序文件夹下的remote.cfg文件中将GT_Trace的配置://TraceUtil.attrs = TraceUtil.SOCRATES_TRACING; TraceUtil.attrs = TraceUtil.FULL_TRACING; //..
阅读全文
.ko内核模块文件以及载入模块命令modprobe insmod
摘要:2.6内核版本,我完成了rtc_driver.c文件,在Makefile加入obj-$(CONFIG_RTC_XXXX) += rtc_driver.o,并对Kconfig进行修改,加入config RTC_XXXX bool "rtcrtcrtcrtcrtc",编译内核和内核模型,只能生成.O文件.请问如何生成能够insmod的.KO文件,是不是应该在Makefile中加些语句生成.ko文件已经完成了,可是[root@localhost char]# insmod rtc_driver.kortc_driver.ko: ELF file rtc_driver.ko not
阅读全文
linux字符cdev和Inode的关系
摘要:本文所说的Inode是struct inode结构体,并不是在inode块中的inode结点。Char Device Driver 相关数据结构:struct cdev { struct kobject kobj; struct module *owner; const struct file_operations *ops; struct list_head list; dev_t dev; unsigned int count;};struct kobj_map { struct probe { struct probe *next; dev_t dev; un...
阅读全文
关于Linux的视频编程(v4l2编程)
摘要:前言:目前正在忙于ARM平台的Linux应用程序的开发(其实是刚刚起步学习啦)。底层的东西不用考虑了,开发板子提供了NAND Bootloader,和Linux 2.6的源码,而且都编译好了。自己编译的bootloader可以用,但是Linux编译后,文件很大,暂且就用人家编译的系统,先专心写应用程序 吧。。正文:要做的任务是,把一块板子上的摄像头采集的图像和声卡采集的声音(貌似很啰嗦哈)通过TCP/IP协议传输到另一块板子上。第一步,先把视频获取并且在本地LCD上显示。看了板子提供的文档,视频传输需要用V4L2的API。一.什么是video4linux Video4l...
阅读全文
Linux平台下I2C设备驱动开发和实现
摘要:I2C总线具有结构简单使用方便的特点。本文描述了Linux下I2C驱动的结构,并在此基础上给出了I2C设备驱动和应用的实现。 1 引言 I2C (Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。I2C总线最初为音频和视频设备开发,现已应用于各种服务与管理场合,来实现配置或掌握组件的功能状态,如电源、系统风扇、系统温度等参数,增加了系统的安全性,方便了管理。 ...
阅读全文
Yaffs 文件系统分析
摘要:1Yaffs文件系统结构1.1简介1.1.1应用场合 Yaffs(Yet Another Flash File System)文件系统是专门针对NAND闪存设计的嵌入式文件系统,目前有YAFFS和YAFFS2两个版本,两个版本的主要区别之一在于YAFFS2 能够更好的支持大容量的NAND FLASH芯片。Yaffs文件系统有些类似于JFFS/JFFS2文件系统,与之不同的是JFFS1/2文件 系统最初是针对NOR FLASH的应用场合设计的,而NOR FLASH和NAND FLASH本质上有较大的区别,所以尽管JFFS1/2 文件系统也能应用于NAND FLASH,但由于它在内存占用和启动时间
阅读全文

浙公网安备 33010602011771号