摘要:在嵌入式Linux中,串口是一个字设备,访问具体的串行端口的编程与读/写文件的操作类似,只需打开相应的设备文件即可操作。串口编程特殊在于串口通信时相关参数与属性的设置。嵌入式Linux的串口编程时应注意,若在根文件中没有串口设备文件,应使用mknod命令创建,这这里假设串口设备是/dev/ttyS0,介绍一下串口的编程过程。#mknod /dev/ttyS0 c 4 641、打开串口打开串口设备文件的操作与普通文件的操作类似,都采用标准的I/O操作函数open()。fd = open("/dev/ttyS0",O_RDWR|O_NDELAY|O_NOCTTY);open()
阅读全文
摘要:我们启动开发板之后,将SD卡插上会打印如下信息:# s3c2440-sdi s3c2440-sdi: running at 0kHz (requested: 0kHz).s3c2440-sdi s3c2440-sdi: running at 196kHz (requested: 195kHz).s3c2440-sdi s3c2440-sdi: running at 196kHz (requested: 195kHz).s3c2440-sdi s3c2440-sdi: running at 196kHz (requested: 195kHz).s3c2440-sdi s3c2440-sdi: r
阅读全文
摘要:在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE VRE = “Hello World!”elseendififeq ($(OPT),define) VRE ?= “Hello World! First!”endififeq ($(OPT),add) VRE += “Kelly!”endififeq ($(OPT),recover) VRE := “Hello World! Again!”endifall: @echo $(VRE)敲入以下make命令:make
阅读全文
摘要:开发平台:ubuntu10.04,内核版本2.6.32-33-generic,交叉编译器:天嵌公司提供的arm-linux-gcc 4.3.3,内核树:/opt/EmbedSky/linux-2.6.30.4/目标平台:天嵌公司的TQ2440开发板ARM9,内核版本2.6.30.41. 首先解压天嵌公司提供的内核源码包linux-2.6.30.4_20100531.tar.bz2,[plain]view plaincopytarxvfjlinux-2.6.30.4_20100531.tar.bz2–C/-C是指定解压目录,后面的/代表在根目录解压归档文件。之后内核树会被解压到/opt/Embe
阅读全文
摘要:#include 是在linux-2.6.29/include/linux下面寻找源文件。#include 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。#include 在linux-2.6.31_TX2440A20100510\linux-2.6.31_TX2440A\arch\arm\plat-s3c\include\plat#include //最基本的文件,支持动态添加和卸载模块。Hello World驱动...
阅读全文
摘要:(1)struct file结构体定义在include/linux/fs.h中定义。文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的 struct file。它由内核在打开文件时创建,并传递给在文件上进行操作的任何函数。在文件的所有实例都关闭后,内核释放这个数据结构。在内核创建和驱动源码中,struct file的指针通常被命名为file或filp。如下所示:struct file { union { struct list_head fu_list; 文件对象链表指针linux/include/linux/list.h struct rcu_head fu_rcu
阅读全文