linux
文章平均质量分 65
xiaolei05
这个作者很懒,什么都没留下…
展开
-
Linux2.6 input子系统分析
Linux的input子系统提供了输入设备的驱动框架,比如鼠标、键盘、触摸屏等就属于输入设备。Linux中关于input子系统的文档在Documentation/input目录,input的核心代码在input.c和input.h中。本文没有涉及input的一些细节实现,比如input_dev->grab,以及按键的定时事件等。1. input_handle, input_handler, input_devinput_handle, input_handler, input_dev是input子系转载 2011-01-06 22:55:00 · 554 阅读 · 0 评论 -
linux spi驱动分析
关于spi的学习,我觉得最好的方法还是看Linux的源代码,主要是driver/spi/spi.c(h),spidev.c(h)。spi dev的示例可以看看at25.c,spi总线的示例可以看omap_uwire或者spi_s3c24xx.c和spi_s3c24xx_gpio.c。在看这些代码之前,需要对Linux的设备模型有一定的了解。另外,网上有两篇教程不错,《linux spi子系统驱动分析》以及《linux spi子系统 驱动分析 续》,百度可以直接搜到,这里帖一下我找到的链接,但不清楚是转载的还转载 2011-01-06 23:13:00 · 609 阅读 · 0 评论 -
unable to open an initial console 问题解决
重新为FS2410移植内核过程中遇到的初始化console节点失败问题内核启动参数为:noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200内核启动显示:Warning: unable to open an initial console.Failed to execute /linuxrc. Attempting defaults...Kernel panic - not syncing: No init found. Try转载 2011-01-08 17:20:00 · 1658 阅读 · 0 评论 -
基于bluez程序编译时注意事项
制作了一个基于bluez的,类似于BTW的库---BTX.在编写和使用这个库时,发现头文件包含容易出现的问题。第一:不要用到哪个Bluez头文件中定义的内容就只去包含这个头文件。而应该将bluetooth/bluetooth.h最先加入。类似://==================================//bluetooth header file#include //BTPROTO_HCI#include //struct hci_dev_info#include转载 2011-01-08 18:08:00 · 618 阅读 · 0 评论 -
Bluetooth Sniff 详解
<br />前面讲了Blueooth Remote Control发送Sniff request,要求每5ms发送一个数据包。这篇详细介绍一下Bluetooth Sniff. 在Sniff mode, Slave活动的占空比可能会降低。如果一个ACL逻辑传输的Slave 处于Active Mode,它将在在每个Master 发送ACL Slot中监听。除非link处理为分散连接或者在Hold Mode。在Sniff Mode,Slave监听的次数会减少。于是, Master 只在指定的Slot中传送数据给S转载 2011-01-08 18:10:00 · 795 阅读 · 0 评论 -
Bluetooth协议栈学习之SDP
<br />SDP(service discovery protocol:服务发现协议)提供了一个方法,让应用程序检测哪些服务是可用的并探测这些可用服务的特性。<br />服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。这个协议定义了客户如何能够寻找基于特定属性的服务而不让客户知道可用服务的任何知识。SD转载 2011-01-08 18:11:00 · 671 阅读 · 0 评论 -
实战Linux Bluetooth编程(一) 协议栈概述
<br />Sam一年前在Linux下写了一个类似Windows下BTW的库--BTX。现在需要添加新功能时发现很多知识点都忘记了。所以决定在这次学习中,把一些bluez API记录下来。这几天又想,这样还不够,不如把Linux下的Bluetooth编程基础给记录下来吧。<br />前言:随着嵌入式系统的飞速发展,很多嵌入式平台上需要Bluetooth设备和应用。但在Linux下如何对Bluetooth编程,一直没有一份很好的中文文档。Sam结合自己的工作,一步一步将一些有用的东西记录下来,希望对其它Lin转载 2011-01-08 18:12:00 · 737 阅读 · 0 评论 -
实战Linux Bluetooth编程(二) BlueZ简介
<br />Linux下Bluetooth协议栈的实现. Linux下开放的蓝牙协议栈主要包括IBM公司的BlueDrekar,Nokia公司的Affix, Axis公司的OpenBT和官方协议栈BlueZ。我们主要面对Bluez来探讨。<br />BlueZ基础代码均是由Maxim Krasnyansky完成的。包括:HCI,L2CAP,RFCOMM和基本socket的实现。他就职于Qualcomm(高通)。Marcel Holtmann开发层的协议和应用,包括:BNEP, CMTP等。当然,这些中也有M转载 2011-01-08 18:14:00 · 1213 阅读 · 0 评论 -
实战Linux Bluetooth编程(三) HCI层编程
<br />1. HCI层协议概述:<br />HCI提供一套统一的方法来访问Bluetooth底层。如图所示:<br /><br />从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。<br />在Host这一端:application,SDP,L2cap等协议都是软件形式提出的(Bluez中是转载 2011-01-08 18:15:00 · 697 阅读 · 0 评论 -
实战Linux Bluetooth编程(四) L2CAP层编程
<br />(L2CAP协议简介,L2CAP在BlueZ中的实现以及L2CAP编程接口)<br />一:L2CAP协议简介:<br />Logical Link Control and Adaptation Protocol(L2CAP)<br />逻辑连接控制和适配协议 (L2CAP) 为上层协议提供面向连接和无连接的数据服务,并提供多协议功能和分割重组操作。L2CAP 充许上层协议和应用软件传输和接收最大长度为 64K 的 L2CAP 数据包。<br /> L2CAP 基于 通道(channel) 的转载 2011-01-08 18:16:00 · 562 阅读 · 0 评论 -
实战 linux蓝牙编程之(八) hci 协议 应用编程实现
<br />对于hci层的编程 是相当复杂的 功能也是强大的,建议学习者 去读bluez-lib中的hci和sdp<br /> 这里简要介绍 我在开发公司的项目中的 一个小的基础动作. 该编程的过程基本理清了hci和sdp的衔接和应用.希望对学习者有帮助<br />说明有不到之处,望大家多多研究,不要局限,每个人有自己的方式,也许你的在逻辑算法上比我的好!!<br />//scan是一个利用hci层协议 获得远程蓝牙设备的蓝牙地址和蓝牙昵称的函数;<br />int scan()<br />{<br />转载 2011-01-08 18:19:00 · 869 阅读 · 0 评论 -
rfcomm层的socket程序编写
<br />今天写了个简单的蓝牙server—client传递字符串的程序,并且把server移植到了开发板上,测试通过。能够在测试端输入字符串,并显示在服务端。现在输入超过1200个左右的字符就会出现问题,还不清楚究竟是socket的write大小限制在1000多,还是自己缓冲区的问题,明天去借本书来研究研究。<br />利用蓝牙建立连接其实和普通socket编程中建立tcp连接很相似,首先在监听端创建socket,bind,然后listen,accept.在客户端connect就连接上了.之后用read转载 2011-01-08 18:20:00 · 2103 阅读 · 2 评论 -
omap3530 系统固化
固化系统,包括固化x-load、U-Boot、Kenel以及rootfs。需要借助SD卡进行固化。在SD卡中存入如下文件:MLO ——x-load的SD版本,第一个存放,仅用于SD卡启动。x-load.bin.ift —— x-load的NAND FLASH版本,最终要固化到NAND上的。u-boot.bin —— u-boot镜像文件,需要固化到NAND的。uImage —— Linxu内核文件,需要固化到NAND的。ramdisk.gz —— r转载 2011-01-08 21:56:00 · 1553 阅读 · 2 评论 -
TI omap35x WIKI 目录
<br />http://processors.wiki.ti.com/index.php/Category:OMAP35x原创 2011-01-09 14:33:00 · 608 阅读 · 0 评论 -
Changing Options in U-boot
<br />If you use the environment provided by the initenv.txt script you have several choices for boot options. Most of the boilerplate has been provided; you just need to set your choices. <br />Note: Refer Section Running the Re-flash Procedure for modifi原创 2011-01-09 15:10:00 · 502 阅读 · 0 评论 -
Creating a Root File System for Linux on OMAP35x
ABSTRACT <br />A Linux kernel is not very useful without a root file system containing applications and settings. Root file systems can be created in several formats: mountable over a network (NFS), a RAMDISK, or stored in flash (flash file system). Instru原创 2011-01-09 15:49:00 · 1591 阅读 · 0 评论 -
omap35 出现 No more output is seen on the console after "Starting Kernel..." 调试信息
<br />The first problem a user may encounter when booting the kernel, is that no further output after "Starting kernel..." is seen on the console. For example: ## Booting kernel from Legacy Image at 80300000 ... Image Name: Linux-2.6.31 Image Typ转载 2011-01-09 16:27:00 · 825 阅读 · 0 评论 -
出现 No more output is seen on the console after "booting the kernel" 调试信息
<br />Another problem a user may encounter when booting the kernel, is that no further output after "booting the kernel" is seen on the console. For example: ## Booting kernel from Legacy Image at 80300000 ... Image Name: Linux-2.6.31 Image Type:原创 2011-01-09 16:29:00 · 1047 阅读 · 0 评论 -
omap35 出现 No console prompt seen after kernel boot
<br />After the kernel has finished booting you may see a console message such as "Please press Enter to activate this console" and when hitting enter a console prompt appear which may be signified by a character such as "#". An example output is shown bel原创 2011-01-09 16:32:00 · 774 阅读 · 0 评论 -
实战Linux Bluetooth编程(五) Socket与Bluetooth
<br />Linux下Bluetooth编程,借用了Socket体制。也就是说,BlueZ Kernel部分将Bluetooth协议栈以网络协议的形式添加进网络协议栈,这样极大的方便了用户编程。下面Sam就结合Socket概念将Linux Bluetooth做个研究。<br />1957年10月4日,星期五,苏联发射了人类历史上第一颗人造地球卫星--Sputnik.这标志着人类外太空时代的开始。这颗卫星篮球大小,在发射98分钟后到达运转轨道,可以通过短波40.002MHz收听到它的声音。这也标志着苏联在航转载 2011-01-08 18:16:00 · 746 阅读 · 0 评论 -
实战Linux Bluetooth编程(六) L2CAP编程实例
<br />例一:发送Signaling Packet:<br />Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.<br />多个Command可以在一个C-frame(control frame)中发送。<br /><br /> 如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identifi转载 2011-01-08 18:17:00 · 527 阅读 · 0 评论 -
实战Linux Bluetooth编程 (七) SDP协议
<br />Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。<br />服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。这个协议定义了客户如何能够寻找基于特定属性的服务而不让客户知道可用服务的任何知识。SDP提供发现新服务的方转载 2011-01-08 18:18:00 · 580 阅读 · 0 评论 -
Rebuilding the Graphics SGX Kernel Modules
Rebuilding the Graphics SGX Kernel Modules <br />Perform the following steps to build the graphics SGX kernel modules with the TI PSP SDK Kernel Release. <br />Perform steps 1 and 2 as mentioned in Building the OMAP35x Graphics Demo Software. <br /><br />N转载 2011-01-15 19:59:00 · 765 阅读 · 0 评论 -
Rebuilding the Full Ramdisk Image
Rebuilding the Full Ramdisk Image <br />The following steps describe the procedure to build the ramdisk for the target. <br />NOTE: It is recommended to perform these commands with root permissions, as it would be easier to manage special files, such as de原创 2011-01-15 21:27:00 · 1016 阅读 · 0 评论 -
sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory
<br />在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。 <br />分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。 <br />解决:1)在windows下转换: <br />利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下(转载 2011-01-23 09:28:00 · 470 阅读 · 0 评论 -
MPlayer在ARM开发板的移植
<br />MPlayer 1.0已经把大部分解码库都自带了,如ffmpeg,但是自带的音频库在S32440下效果非常不好.换成使用libmad效果不错.因此MPlayer在ARM-Linux的最简单的移植只需要移植这两个即可.移植后即进行字符界面的播放.ARM的版本由我学生程磊最早运行成功. 但完整版本需要如下库. 如果需要字幕支持.需要移植freetype库.支持JPG皮肤需要 libjpeg库,打开DVD光盘格式,需要dvdread,dvdnav等,支持pnm库需要libpnm MPlayer的皮肤转载 2011-01-23 11:45:00 · 1282 阅读 · 0 评论 -
OMAP3430 sdp Linux camera driver 分析
一、文件:arch/arm/mach-omap2/board-3430sdp.c line1274(1)、/*定义I2C 的相关信息*/static struct i2c_board_info __initdata sdp3430_i2c_boardinfo_2[] = {#if转载 2011-07-20 22:02:27 · 1463 阅读 · 0 评论 -
Linux下的Source Insight+Ubuntu 10.04使用Wine安装Source
Linux下的Source Insighthttp://rogerer.javaeye.com/blog/755346 在网上看到一朋友写了一篇推荐Linux下代码阅读工具Source Insight 。我想更细化一下,也做做笔记,方便日后使用。方法是:win转载 2011-09-10 23:00:10 · 198 阅读 · 0 评论 -
三星GT-i8320到Android的系统移植
硬件配置:处理器: Texas Instruments OMAP3430 Cortex-A8 & PowerVR core; Similar to OMAP3530 info datasheet RAM : 256MB P原创 2011-09-10 09:09:24 · 2004 阅读 · 0 评论 -
source insight 3.5 如何增强阅读代码的性能
source insight 3.5 如何增强阅读代码的性能使用source insight有很久了,遇到了同名文件不同目录的情况,或者需要找到引用文件所在的目录,而恰恰source insight没有显示出中间的目录,于是可以在菜单上点击 选项--参数选择--显示-转载 2011-09-10 23:06:15 · 596 阅读 · 0 评论 -
Linux使用Wine 安装source insight
Windows 的Souce Insight 是非常经典的C编译器,无论是应用程序开发和编译都是相当不错,Linux 有Kcodes,但功能不如Source Insight.有一种解决方案的是在LINUX安装Wine, 然后安装Source Insight. Wine编译转载 2011-09-11 00:57:03 · 1507 阅读 · 0 评论 -
curl 介绍
curl是利用URL语法在命令行方式下工作的文件传输工具。概念:它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。 curl同样支持HTTPS认证,HTTP POST方法, H原创 2011-08-28 16:34:03 · 595 阅读 · 0 评论 -
wave格式音频文件采样率转换
一、此转换方法为文件转换方式,需要对现在的文件分析的基础上生成新的音频文件。二、方法占用时间比较多,但速度在允许范围之内三、分析文件与写入新文件的时候是按字节操作四、本方法转换生成的新文件的精度只能为16位,如果需要其他的精度,需要另外进行精度转换。操作流程:一、分析源文件的头结构,取得源文件的采样率、声道数、数据长度、数据流量等参数。二、根据文件头结构生成新文件的头结构,转载 2012-01-27 20:55:49 · 2236 阅读 · 0 评论 -
Audio Codec介绍
Audio Codec的必要性 在理想状况下,对于录音过程,只需要将麦克风获取到的analog信号通过ADC转换为digital信号并存储即可,对于播放音过程,只需要将digital信号通过DAC转换为analog并输出到speaker播放即可。 但在实际的过程中,对于录音过程而言,会受到外界声源的干扰,麦克风自身对信号的衰减以及物理链路接口上引入的杂音等因转载 2012-01-27 21:00:53 · 21568 阅读 · 0 评论 -
slab alloc内存分配机制
slab的“对象重用” 到目前为止,SUN于1991年发明的Slab Allocator是各种OS内核Memory Allocator中被认为整体性能最好的。它有几个措施来促进内存分配性能的提高,其中之一就是"对象重用"。原理OS可以使用Slab提供通用内存块的申请与释放;所谓通用内存块指的是可以被用于非特转载 2012-02-04 15:09:07 · 766 阅读 · 0 评论 -
Linux slab 分配器剖析
了解 Linux 内存管理的方式 动态内存管理内存管理的目标是提供一种方法,为实现各种目的而在各个用户之间实现内存共享。内存管理方法应该实现以下两个功能:最小化管理内存所需的时间 最大化用于一般应用的可用内存(最小化管理开销) 内存管理实际上是一种关于权衡的零和游戏。您可以开发一种使用少量内存进行管理的算法,但是要花费更多时间来管理可用内存。也可以开发一个算法来有效地管理内原创 2012-02-04 15:14:29 · 482 阅读 · 0 评论 -
免费开源的嵌入式 OS、GUI、fs、数据库等
OS :rtems http://www.rtems.org/ftp/pub/rtems/ecos http://ecos.sourceware.org/freertosChibiOS/RTuSmartXt-kernel http://www.t-engine.org/T-Kernel/tkernel_e.html注意ucos不是免费的GUI :Nano-X(m原创 2012-02-11 08:54:17 · 2032 阅读 · 0 评论 -
linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式——在一个独立的文件夹通过makefile配合内核源码路径完成 那么如何将驱动直接编译进内核呢? 在我们实际内核的移植配置过程中经常听说的内核裁剪又是怎么麽回事呢?我们在进行linux内核配置的时候经常会执行make menuconfig这个命令,然后屏幕上会出现以下界面转载 2012-07-13 23:27:34 · 759 阅读 · 1 评论 -
Android定制系统语言为简体中文
Android系统原版默认的语言为英文,而我们定制系统可能需要用户一开机就是简体中文。我们可以通过修改系统属性来达到默认语言的作用。这里有两种方法,需要的可以借鉴下:1、在init.rc或者在其他的开机初始化文件如:default.prop中加入如下设置系统属性的代码:[persist.sys.language]: [zh][persist.sys.country]: [CN]转载 2012-08-02 12:53:37 · 503 阅读 · 0 评论 -
linux设备和驱动加载的先后顺序
Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢。Linux系统使用两种方式去加载系统中的模块:动态和静态。静态加载:将所有模块的程序编译到Linux内核中,由do_initcall函数加载核心进程(/init/main.c)kernel_inità do_basic_setup()àdo_initcalls()该函数中会将在_转载 2012-08-04 15:30:46 · 477 阅读 · 0 评论