11 armeasy

尚未进行身份认证

暂无相关描述

等级
TA的排名 3k+

x4412开发板&ibox卡片电脑项目实战20-C库函数文件操作实验

我们不仅可以使用linux的文件操作函数,还可以直接使用标准的C库函数文件。C库函数的文件操作实际上是独立于具体的操作系统平台的,不管是在DOS、Windows、Linux还是在VxWorks中都是这些函数。这极大地方便了用户层的调试。1.1.1    创建和打开FILE*fopen(constchar*path,constchar*mode);fopen()实现打

2014-10-12 13:00:40

x4412开发板&ibox卡片电脑项目实战19-linux文件操作实验

linux的文件操作包括创建,打开,读写,定位,关闭等。在WINCE或是WINDOWS系统下,我们通常称这些接口为API函数。下面我们将分别介绍这些系统函数的使用方法。1.1.1    创建intcreat(constchar*filename,mode_tmode);参数mode指定新建文件的存取权限,它同umask一起决定文件的最终权限(mode&umask),其中u

2014-10-12 12:57:50

x4412开发板&ibox卡片电脑项目实战17-模块传参实验

在很多情况下,在加载驱动时我们需要接收外部的指令。我们可以通过加载模块传递参数的方式实现。在驱动中,通过“module_param(参数名,参数类型,参数读/写权限)”为模块定义一个参数,在加载模块时,向其传递参数。如果不传递,则参数为驱动中定义的默认值。参数类型可以是byte、short、ushort、int、uint、long、ulong、charp(字符指针)、bool或invbo

2014-10-12 12:53:27

x4412开发板&ibox卡片电脑项目实战18-驱动中导出符号

在驱动调试时,经常需要驱动互调,即在A驱动中调用B驱动中的相关函数。这时,驱动中的导出符号功能就可以大显身手了。/proc/kallsyms文件对应着内核符号表,它记录了符号以及符号所在的内存地址。模块可以使用如下宏导出符号到内核符号表:EXPORT_SYMBOL(符号名);EXPORT_SYMBOL_GPL(符号名);      其他模块需要使用导出的符号时,只需声明

2014-10-12 12:53:14

x4412开发板&ibox卡片电脑项目实战16-将hello x4412驱动编译成模块

在内核根目录执行makemenuconfig,进入DeviceDrivers->Characterdevices菜单界面,找到helloX4412driver配置选项,按空格键将它配置成模块[M],保存退出。执行如下指令,保存配置好的内核配置文件:cp.configarch/arm/configs/x4412_android_defconfig      再在整个源码

2014-10-12 12:44:44

x4412开发板&ibox卡片电脑项目实战15-移植第一个hello x4412内核驱动

前面我们学习了Linux驱动的调试方法,加载方法以及编写步骤,本章节我们将从零开始,编写第一个字符设备驱动。在kernel/drivers/char/x4412目录下新建Makefile,Kconfig以及hello-x4412.c三个文件,Makefile文件内容如下:obj-$(CONFIG_HELLO_X4412_DRIVER)+=hello-x4412.oKconfig文件

2014-10-12 12:42:00

x4412开发板&ibox卡片电脑项目实战14-linux驱动的编写步骤

从零开始编写linux驱动时,无论采用linux的何种架构,基本上都可以归纳为以下驱动八要素。1.1.1    建立Linux驱动框架Linux内核在使用驱动时首先要装载驱动,在装载过程中进行一些初始化动作,如建立设备文件、分配内存等。在驱动程序中需提供相应函数来处理驱动初始化工作,该函数须使用module_init宏指定。Linux系统在退出时需卸载Linux驱动,在卸载过程中进行一些退

2014-10-12 12:20:55

x4412开发板&ibox卡片电脑项目实战12-linux驱动的加载方法

在类unix操作系统中,驱动加载方式一般分为:静态加载和动态加载。静态加载就是把驱动程序直接编译到内核里,系统启动后直接被调用。静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重新编译下载内核,效率较低。动态加载利用了LINUX的module特性,可以在系统启动后用insmod命令把驱动程序(.ko文件)添加上去,在不需要的时候用rmmod命令来卸载。下面我们通过蜂鸣器驱动实例分别对其进行详

2014-09-27 23:40:08

x4412开发板&ibox卡片电脑项目实战11-linux驱动的调试方法

驱动程序开发的重点就在于驱动、系统的调试了,因此,掌握linux驱动的调试方法,是linux系统工程师必须掌握的技能。这里介绍驱动开发中常用的几种调试手段:l 利用printkl 查看OOP消息l 利用stracel 利用内核内置的hacking选项l 利用ioctl方法l 利用/proc 文件系统l 使用kgdb1.1.1   利

2014-09-27 23:35:48

x4412开发板&ibox卡片电脑项目实战10-使用buildroot搭建linux文件系统

上一章节我们讲述了最简单的文件系统的搭建方式,在实际应用场景中,我们需要添加很多第三方文件,比如busybox,tslib,qt,vim,交叉编译工具等,如果我们手动移植里面的任何一个源码包,都会花费我们少则半个小时,多则半天,甚至一天,大大的浪费了我们宝贵的时间。buildroot可以很方便的解决这些问题。我们只需要通过menuconfig配置我们需要的功能,不需要的功能去掉,再执行make指令

2014-09-27 23:30:49

x4412开发板&ibox卡片电脑项目实战9-搭建最简单的linux文件系统

Linux文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。有了文件系统,用户就可以很方便的和Linux设备进行数据交互了。随着实际需求的不断提高,Linux文件系统也变得越来越庞大。无论它如何千变万化,归根结底,都是基于最基本的linux文件系统不断丰富而来。因此,我们完全有必要了解最基本的文件系统的搭建过

2014-09-27 23:20:12

x4412开发板&ibox卡片电脑项目实战8-Linux下的C语言编程风格

谈起linux的编程,我们首先就会想到GNU。GNU计划,又称革奴计划,是由RichardStallman在1983年9月27日公开发起的。它的目标是创建一套完全自由的操作系统。它在编写linux的时候自己制作了一个标准成为GNUC标准。ANSI,全称为美国国家标准协会,它对C做的标准后来被国际标准协会接收成为标准C,所以ANSIC即标准C。GNUC对标准C进行了一系列扩展,以

2014-09-27 22:45:14

x4412开发板&ibox卡片电脑项目实战7-Linux内核的引导

linux的启动框架如下:

2014-09-27 22:29:34

x4412开发板&ibox卡片电脑项目实战6-配置内核

我们可以使用如下四条命令的任意一条来配置内核:

2014-09-27 22:24:25

x4412开发板&ibox卡片电脑项目实战5-修改内核LOGO

由于我们linux,android都共用一套uboot和内核,因此默认linux系统启动时,显示的仍然是一个android机器人图标。我们可以从这个机器人图标入手,修改成我们自己想要的LOGO。具体步骤如下:第一步:在kernel/drivers/video/logo/Kconfig中添加配置文件: configLOGO_X4412_CLUT224 bool"224-colorX

2014-09-23 16:15:24

x4412开发板&ibox卡片电脑项目实战4-在uboot中添加开机LOGO

在uboot中添加开机LOGO,基本上可以归纳为以下四个步骤:一:初始化LCD控制器相应的寄存器;二:初始化LCD控制器对应的时钟源;三:填充framebuffer;四:打开背光。在uboot\board\samsung\x4412\x4412.c中,我们在函数board_late_init中添加显示开机LOGO的函数x4412_framebuffer_init(),该函数内嵌

2014-09-23 16:07:59

x4412开发板&ibox卡片电脑项目实战3-文件系统编译脚本解析

mk脚本中包含了android文件系统和linux文件系统的编译,这里我们只讲解linux文件系统的编译脚本。

2014-09-23 16:00:17

x4412开发板&ibox卡片电脑项目实战2-内核编译脚本解析

内核的编译脚本如下:build_kernel(){ #Compilerkernel cd${BS_DIR_TOP}/kernel||return1 //进入内核目录 make${BS_CONFIG_KERNEL}||return1 //配置内核 make-j${threads}||return1 //编译内核 #CopyzImagetor

2014-09-23 15:58:53

x4412开发板&ibox卡片电脑项目实战1-uboot编译脚本解析

x4412&ibox平台所有源码包统统可以使用一个mk脚本编译。编译uboot的脚本如下:build_uboot(){ #Compileruboot cd${BS_DIR_TOP}/uboot||return1 //进入uboot根目录 makedistclean||return1 //清除缓存 make${BS_CONFIG_BOOTLOADER_UBOOT

2014-09-23 15:56:54

android4.0平台通过IOCTL控制LED-基于x210v3开发板

1.1     使用IOCTL测试LED前面的实验中,我们通过sys文件系统,在sys/devices/platform/x210-led目录下建立了四个对应led的文件,通过改变这四个文件的状态控制LED灯。本章节我们重新编写驱动,另外再编写测试应用程序,通过IOCTL控制LED。1.1.1    LED驱动在kernel/drivers/char目录下建议led2目录,在led2目

2013-09-10 13:44:11

查看更多

勋章 我的勋章
    暂无奖章