自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(49)
  • 收藏
  • 关注

转载 Linux下串口编程实例,实现0~255数据自环测试

#include          /*标准输入输出定义*/#include         /*标准函数库定义*/#include         /*Unix 标准函数定义*/#include      #include       #include          /*文件控制定义*/#include        /*PPSIX 终端控制定义*/

2012-03-31 17:25:16 1109

转载 linux 中解析命令行参数 (getopt_long用法)

getopt_long支持长选项的命令行解析,使用man getopt_long,得到其声明如下:  #include        int getopt_long(int argc, char * const argv[],                  const char *optstring,                  const struct option

2012-03-31 17:23:01 443

转载 S3C6410开发全纪录(三)《UBOOT中添加DM9000AE网卡驱动》

我们获得的UBOOT的代码中实际是有DM9000的网口驱动的,位于:driver/dm9000x.c在S3C6410的配置中,中并没有将之打开,而其他的芯片中有使用特别需要注意的是dm9000的驱动与dm9000AE的驱动还是有区别的,如果直接使用代码中自带的dm9000驱动流程,会出现无法收到数据的情况一、添加dm9000AE的驱动[cpp] view plainco

2012-03-29 00:15:39 540

转载 S3C6410开发全纪录(二)《如何计算内存大小,并在UBOOT中调整内存大小》

前章我们已经可以制作出用来启动的SD卡了,并将自己编译的UBOOT烧录到了SD卡中这份UBOOT代码中的内存配置肯定和手头的开发板不一致,这里我们将搞清楚如何修改内存大小,并说清楚内存大小到底是如何计算的一、关于内存大小的计算1)硬件的型号,在飞凌的开发板中128M内存 采用的是 K4X51163PC 可以看出来 这颗芯片是 总大小为512 bit 位宽 为16256M内存 采

2012-03-29 00:15:04 788

转载 S3C6410开发全纪录(一)《还原SD卡启动的真相》

前章我们也大致分析了SD卡的启动过程,在具体进行问题的定位及解决的过程中,发现还是有很多不明确的地方,网上的文章也多是人云亦云让我们来一步一步搞清楚S3C6410 SD卡启动的步骤及过程(我这里的开发板为OK6410,256M+1G的配置,SD卡为2G,MMC)一、开发板跳线,从SD卡启动[cpp] view plaincopy查看《OK6410开发板LINUX2.

2012-03-29 00:14:18 1763

转载 android2.1修改状态栏

向android 的状态栏中加入快捷按钮(home,back,menu等等)的方法(续)上一篇文章中谈到的加入快捷按钮的方法,实际上还是太过麻烦。那篇博客是在我刚接触android源代码没几天时,参考网上的介绍方法,自己看了下源代码尝试着写了一个。 不过那个方法,是我直接用贴图的方法实现了按钮特效,这实在是太浪费了,最近一直仍有朋友问我那篇文章中的问题,我想还是重写一下,用一个更简单点的方法,

2012-03-28 14:59:00 1038

转载 在Android 2.3状态栏中添加menu,home和back快捷键的方法

在Android 2.3状态栏中添加menu,home和back快捷键的方法1、准备资源,修改XML文准备几张图,这里我们准备添加home back和menu图标,就需要准备6张图,三张普通状态,三张按下的高亮状态图标:stat_home.pngstat_home_pressed.pngstat_back.pngstat_back_pressed.pngstat_men

2012-03-28 13:36:47 660

转载 如何修改Android应用程序能够使用的默认最大内存值

如何修改Android应用程序能够使用的默认最大内存值参考:Android Bitmap内存限制OOM,Out Of Memory分析:当应用程序分配内存时,会调用到dalvik/vm/alloc/HeapSource.c中的 dvmTrackExternalAllocation()方法,继而调用到externalAllocPossible()方法,该方法要求当前堆已使用的大小

2012-03-28 12:46:43 839

转载 为Android应用程序读取/dev下设备而提权(二)

为Android应用程序读取/dev下设备而提权(二)                  在为Android应用程序读取/dev下设备而提权(一)中,简单总结了提权的两种方法: device_init和init.rc 。在此篇文章中,我将详细总结的是稍一不留神,就容易把人弄晕乎的init.c、device_init和init.rc三者之间的关系,TA们到底是如何工作的。

2012-03-28 12:44:33 741

转载 为Android应用程序读取/dev下设备而提权(一)

为Android应用程序读取/dev下设备而提权(一)         倘若应用程序需要对/dev/xxx进行读写操作,就需要提升其权限。提权方法不唯一,需要根据具体需求情况而选择。归根结底,终究都落到chmod 777 /dev/xxx 上,不同的是,chmod操作被执行在何时何地,在此做个分析总结。        内核启动后会执行/system/init,传说中的系统1号进程,

2012-03-28 12:43:52 1017

转载 TCC8900中关于SD卡的注意事项

TCC8900具有8个SD卡接口(Port),其中它们与GPIO复用:----------------------------------------------------------------------------------------------------------------* GPIOB[0-7] =  SD_Port5[0-7],  GPIOB[12]=SD_CM

2012-03-24 20:00:08 1232

转载 关于TCC89XX的时钟频率(参考Spec译文)

1.CKC1.1 概览CKC 时钟体系有8个主时钟源,它们分别是4个PLL,XIN(TCC8900上的XIN为12Mhz的晶振),XTIN,SATA_XI,HDMI_XI,其中的4个PLL还可以通过各自的分频器产生合适的分频时钟源,XIN和XTIN都可以产生分配时钟源,上述8个主时钟源和分频时钟源可以用作CPU时钟源、总线时钟源、以及各个外围组件的时钟源。在CKC块图中,安全时钟转

2012-03-24 19:58:52 1026

转载 dma_alloc_coherent vs. dma_alloc_writecombine

这两天在做 DMA 相关开发, 遇到一对分配 dma buffer 的函数,dma_alloc_coherent 与 dma_alloc_writecombine。 不知其区别。 google 一下也没有得到信息。只好自己看代码。 原来 dma_alloc_coherent 在 arm 平台上会禁止页表项中的 C (Cacheable) 域以及 B (Bufferable)域。而 dm

2012-03-24 12:47:36 713

转载 Android SDCard Filesystem

Opendroid原创,转载请注明参与讨论的朋友请加入qq群81410571 关键字:android,linux,sdcard,S3C2440,armv4,filesystem   android的在s3c2440的移植,编译过程清参照熊猫哥哥的大作《s3c2410/2440(armv4t) 移植教程》。本文所讲述的是将android的根目录置于sd卡上。   1. lin

2012-03-23 19:09:39 657

转载 Android GSM驱动模块(rild)详细分析(三)

Android GSM驱动模块(rild)详细分析(三)response流程熊猫哥哥 发表于IT168和Opendroid 转载请注明前文对request的分析, 终止在了at_send_command_full_nolock里的writeline操作,因为这里完成命令写出到硬件设备的操作,接下来就是等待硬件响应,也就是response的过程了。我们的分析也是从这里开始。respo

2012-03-23 19:05:47 537

转载 Android GSM驱动模块(rild)详细分析(二)

Android GSM驱动模块(rild)详细分析(二)request流程熊猫哥哥 发表于IT168和Opendroid 转载请注明1. 多路复用I/O机制的运转上文说到request是接收,是通过ril_event_loop中的多路复用I/O,也对初始化做了分析.现在我们来仔细看看这个机制如何运转.ril_event_set负责配置一个event,主要有两种event:r

2012-03-23 19:05:11 599

转载 Android GSM驱动模块(rild)详细分析(一)基本架构及初始化

Android GSM驱动模块(rild)详细分析(一)基本架构及初始化熊猫哥哥 发表于IT168和Opendroid 转载请注明Android的RIL驱动模块, 在hardware/ril目录下,一共分rild,libril.so以及librefrence_ril.so三个部分,另有一radiooptions可供自动或手动调试使用。都依赖于include目录中ril.h头文件。目前c

2012-03-23 19:04:29 715

转载 基于Android 的GPS 移植 Android内部调用方式

android内部调用方式在linux系统中有一个deamon程序等待上层android层的调用

2012-03-23 19:00:23 680

转载 基于Android 的GPS 移植 主要结构体及接口介绍

最近负责 Android 驱动的GPS部分,所谓Android驱动 我觉得可以说成是linux应用之前发了一个图描述了 Android GPS 架构GPS芯片大多采用串口通信,所以只要CPU能够提供一个UART 驱动, 那么跟GPS芯片通信是没有问题的, 但是现在很多GPS功能不是一个单独的芯片,大部分都是一个芯片上有好几种无线模块 比如 Blletoo

2012-03-23 18:59:37 887

转载 Android Bluetooth 移植(下)

支持特性下面这一节总结了Android各个release版本所支持得蓝牙特性的变化情况,并对未来可能支持的特性做了一个粗略的展望。Android 1.0 release平台特性(Platform features)·   基于 Bluez 3.36 和 Linux Kernel 2.6.25·   Bluetooth 2.0+EDR 主机协议栈·   HSP 1.0 (作为

2012-03-23 18:55:01 1140

转载 Android Bluetooth 移植(上)

原文链接地址:http://source.android.com/porting/bluetooth.html#androidBluetoothPorting本文涵盖以下方面·         移植·        编译·        疑难解答·        工具·        支持特性 Android 的蓝牙协议栈使用BlueZ实现来对GAP, SDP以及R

2012-03-23 18:53:55 1033

转载 linux serial构架分析及驱动开发(6)

这一节分析串口核心中对写操作的处理,从用户空间调用write系统调用开始,首先执行tty_write函数,在该函数中执行do_tty_write,将用户空间的数据复制到tty->write_buf中,然后调用线路规程中的写函数即write_chain,最后write_chain调用uart_write或uart_flush_chars,再调用专用port->ops中的数据将数据发射出去,具体的操作

2012-03-23 18:48:40 462

转载 linux serial构架分析及驱动开发(5)

uart_close主要在tty_release和do_tty_hundup中调用,做与uart_pen相反的操作,具体源码如下:/* * In 2.4.5, calls to this will be serialized via the BKL in *  linux/drivers/char/tty_io.c:tty_release() *  linux/drivers/ch

2012-03-23 18:47:40 569

转载 linux serial构架分析及驱动开发(4)

在uart_register_driver函数中有这样的一个函数:tty_set_operations(normal,&uart_ops),这个uart_ops就是tty_operations函数集,这里是串口操作的公用函数接口,本节及后面章节将结合串口操作的流程,来介绍上面的操作函数。 static const struct tty_operations uart_ops = { .

2012-03-23 18:47:00 569

转载 linux serial构架分析及驱动开发(3)

这一节我们将介绍一个serial驱动的实例,后面各节中也将以这个例子来分析串口各种操作的实际情景(例子是at91sam9260板子的串口驱动)。  该驱动将串口看作平台(platform)设备。platform可以看作一伪总线,用于将集成于片上系统的轻量级设备与Linux设备驱动模型联系到一起,它包含以下两部分(有关platform的声明都在#include ,具体实现在drivers

2012-03-23 18:46:02 847

转载 linux serial构架分析及驱动开发(2)

上节介绍了serial驱动核心提供的重要数据结构,这一节将介绍serial核心提供给驱动开发的核心函数uart_register_driver向内核注册serial驱动(具体操作就是向内核注册一个tty_driver)以及uart_unregister_driver注销serial驱动。uart_add_one_port用于为串口驱动添加一个串口端口(在总线型设备驱动中,通常用于探测函数probe

2012-03-23 18:44:47 559

转载 linux serial构架分析及驱动开发(1)

前面介绍了tty核心分析及tty驱动开发的方法,tty设备包括串口、终端、伪终端三大类,其中终端和伪终端驱动内核都帮我们实现好了,很少需要改动。因此我们主要介绍串口驱动的开发及其在内核中的构架(其核心实现源码主要在/drivers/serial_core.c中),这一节中我们主要分析向内核中加入一个serial驱动用到的数据结构。      serial core是构建在tty core之上的

2012-03-23 18:44:04 588

转载 Linux串口(serial、uart)驱动程序设计

一、核心数据结构http://www.cublog.cn/u3/109117/article.html串口驱动有3个核心数据结构,它们都定义在1、uart_driveruart_driver包含了串口设备名、串口驱动名、主次设备号、串口控制台(可选)等信息,还封装了tty_driver(底层串口驱动无需关心tty_driver)。struct uart_driver {

2012-03-23 18:15:18 882

转载 Linux设备驱动之控制台驱动

一:前言  我们在之前分析过input子系统和tty设备驱动架构.今天需要将两者结合起来.看看linux中的控制台是怎么样实现的.  二:控制台驱动的初始化  之前在分析tty驱动架构的时候曾分析到.主设备为4,次设备为0的设备节点,即/dev/tty0为当前的控制终端.  有tty_init()中,有以下代码段:  static int __init tty_init(voi

2012-03-19 12:50:40 630

转载 Linux设备模型之tty驱动架构分析

一:前言Tty这个名称源于电传打字节的简称。在linux表示各种终端。终端通常都跟硬件相对应。比如对应于输入设备键盘鼠标。输出设备显示器的控制终端和串口终端.也有对应于不存在设备的pty驱动。在如此众多的终端模型之中,linux是怎么将它们统一建模的呢?这就是我们今天要讨论的问题.二:tty驱动概貌Tty架构如下所示:如上图所示,用户空间主要是通过设备文件同tty_core交互

2012-03-19 12:46:41 790

转载 linux设备模型之uart驱动架构分析

一:前言接着前面的终端控制台分析,接下来分析serial的驱动.在linux中,serial也对应着终端,通常被称为串口终端.在shell上,我们看到的/dev/ttyS*就是串口终端所对应的设备节点.在分析具体的serial驱动之前.有必要先分析uart驱动架构.uart是Universal Asynchronous Receiver and Transmitter的缩写.翻译成中文即为

2012-03-19 12:44:08 1851

转载 BITS_TO_LONGS宏的作用

[linux-3.0]BITS_TO_LONGS定义在:include/linux/bitops.h#define BITS_PER_BYTE        8#define BITS_TO_LONGS(nr)    DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long))DIV_ROUND_UP定义在:include/linux/ker

2012-03-15 20:47:55 564

转载 ERROR: Invaled boot image pagesize. Device pagesize: 4096, Image pagesize: 16384

无法启动内核,出现以下提示:ERROR: Invaled boot image pagesize. Device pagesize: 4096, Image pagesize: 16384ERROR: Could not do normal boot. Reverting to fastboot mode.Diplay initializedfastboot_init()ept

2012-03-14 23:00:07 773

转载 Android修改LCD、DDR、NAND的位置

telechips方案:1:修改LCD参数:用的是ATA070TN93的7寸屏①:修改:MYSDK\kernel\drivers\video\tcc\lcd_at070tn93.c②:修改:MYSDK\bootable\bootloader\lk\target\m801_evm\rules.mk2:修改DDR型号的位置:(参考:manual\DOC\tcc88xx\

2012-03-14 22:53:34 1147

原创 TCC89XX方案上的ADC触摸屏驱动分析

static char banner[] __initdata = KERN_INFO "Telechips Touchscreen driver, (c) 2009 Telechips\n";static int __init tcc_ts_init(void){    printk(banner);    return platform_driver_register(&t

2012-03-14 09:21:17 871

原创 Android编译脚本之telechips方案

#!/bin/sh## Description        : Build Telechips Android Script.# Authors               : joyse - sky191_lxin@yahoo.cn# Version               : 1.0# Notes                  : None#export

2012-03-09 16:12:06 1519

转载 Ubuntu 10.04环境下载&编译Android-2.1_r2源代码【20110527更新说明】

注:本文撰写于1年之前,目的是为弥补当时Android官网文档不够详细确切的问题。目前Android Open Source Project上的文档已经今非昔比,相当完善与准确。从Android2.2(含)起,需要使用JDK1.6,并在64bit Linux系统上编译源码(网络上虽有文章给出在32bit系统上编译的方法,但毕竟不是官方推荐的,因此我个人不赞同这种workaround),照此看来,本

2012-03-09 13:32:52 462

原创 Android源码编译工具集

sudo apt-get install build-essential      sudo apt-get install make      sudo apt-get install gcc      sudo apt-get install g++      sudo apt-get install libc6-dev      sudo apt-get install

2012-03-09 11:10:34 559

原创 ubuntu下安装samba

安装sambasudo apt-get install sambasudo apt-get install samfs[编辑]Kubuntu安装系统设置的共享模块sudo apt-get install kdenetwork-filesharing[编辑]配置1.windows 访问 ubuntu第一步创建共享目录: 比如要创建/home/用户名/s

2012-03-09 11:06:45 548

转载 Android lk bootloader中相关修改指南

1.主要功能,红色部分是android特有的一些功能,如fastboot,recovery模式等: * Variety of nand devices for bootup* USB driver to enable upgrading images over usb during development* Keypad driver to enable developers en

2012-03-08 00:12:00 1166

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除