- 博客(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关注的人