- 博客(110)
- 资源 (16)
- 收藏
- 关注
转载 MTK编译命令
当修改一些代码时,使用什么编译命令可以最有效率1: ./mk n(r) kernel; ./mk bootimage;当修改kernel相关代码时,要使用此命令,具体如下: alps/kernel/ alps/mediatek/platform/mt65xx/kernel/ alps/mediatek/source/kernel/ alps/me
2014-07-10 18:29:19 775
转载 MTK gpio
MT6253 所有非V1.0版本的datasheet都没有详细对各个GPIO的描述都不详尽。而V1.0版本的datasheet又必须要有MTK的证书连接到他们的服务器才能看到的。因此,以下列表的内容花了我不少时间收集才整理出来。在这里共享给大家,希望能起到参考的作用。GPIO使用注意事项一、GPIO应用的总体原则:不管是什么平台,所有未使用的GPIO必须
2014-05-06 09:03:08 1682
转载 copy_to_user()和copy_from_user()的使用
#include #include #include #include #include MODULE_LICENSE("Dual BSD/GPL");static int count = 10;static char *init_mesg = "hello,world\n";static char *exit_mesg = "goodbye\n";static int m
2014-04-29 16:02:39 1241
转载 SPI驱动
1、驱动中有总线和设备的概念。spi控制器就是总线(spi总线),对应atmel_spi.cspi控制器上外接的芯片,比如串行flash、can收发器、时钟芯片等,就是设备。这就涉及到设备驱动的问题. 2、这些spi设备可以对应spidev.c,或者具体的文件. 比如说,我接的是flash芯片,那么可以定义spi_board_info 数组的时候指定
2014-04-28 17:45:21 636
转载 linux内核的配置机制及其编译过程
一、配置系统的基本结构Linux内核的配置系统由三个部分组成,分别是: 1、Makefile:分布在 Linux 内核源代码根目录及各层目录中,定义 Linux 内核的编译规则; 2、配置文件(config.in(2.4内核,2.6内核)):给用户提供配置选择的功能; 3、配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界
2014-04-24 10:25:34 731
原创 MTK 中的projectconfig.mk
CUSTOM_MODEM=cellon89_we_jb2_md1_hspa ,有关工程的调制解调器的 对应的目录为:
2014-04-21 19:32:26 2223
转载 第一个内核驱动
测试驱动开发平台为了后续学习的顺利进行,我们利用最简单的hello,world程序,在内核上挂载和卸载我们自己编写的hello模块。说明:本文调试环境VMware Workstation 5.0+TurboLinux 10,教材是《Linux Device Drivers》第3版英文电子图书。一、编写hello.c文件利用vi编辑器,我们键入下面的代码,并保存为hello.c文件。
2014-04-20 21:03:19 519
转载 MTK uart调试
MTK6575串口默认配置是uart1 uart4 用于log输出,uart3 用于GPS; 我现在在UART2接了一个串口外设,当前调试已经把UART2对应的GPIO功能配置为uart功能了,我用串口测试工具往串口里写数据用示波器测不到信号(用此上具向uart1写数据可以测到相应波形)。uart2引脚功能默认是关闭的,还需要配置其它地方吗?如何验证串口通讯已经OK?求做过或者了解uart调试的高
2014-04-18 15:13:53 3390 2
原创 wait_event_interruptible()和wait_up_interruptible()
wait_event_interruptible(wq, condition)用wake_up_interruptible()唤醒后,wait_event_interruptible(wq,condition)宏,自身再检查“condition”这个条件以决定是返回还是继续休眠,真则返回,假则继续睡眠,不过这个程序中若有中断程序的话,中断来了,还是会继续执行中断函数的。只有当执行
2014-04-17 12:01:51 2059
转载 Linux内核线程编程方法
内核经常需要在后台执行一些操作,这种任务就可以通过内核线程(kernle thread)完成--独立运行在内核空间的标准进程。内核线程和普通的进程间的区别在于内核线程没有独立的地址空间,mm指针被设置为NULL;它只在 内核空间运行,从来不切换到用户空间去;并且和普通进程一样,可以被调度,也可以被抢占。实际上,内核线程只能由其他内核线程创建,在现有的内核线程中创建一个新的内核线程的方法:
2014-04-17 11:55:20 621
转载 Android驱动之 Linux Input分系统之TP——A/B(Slot)协议
将A/B协议这部分单独拿出来说一方面是因为这部分内容是比较容易忽视的,周围大多数用到input子系统的开发人员也不甚理解;另一方面是由于这部分知识一旦扩展到TP(触摸屏Touch Panel)的多点触摸就要与Middleware/Framework一起结合起来看才能完全掌握,复杂性所在。这里的Middleware/Framework是针对android来说的,本人从事android这几个层次的工作
2014-04-16 16:39:57 810
原创 keypad 驱动分析
参考网站http://www.xuephp.com/main/detail.php?cid=39048对应文件目录:F:\MTK\alps6589_v1.3_s188_patch\mediatek\platform\mt6589\kernel\drivers\keypad\keypad.cCust_kpd.h (mediatek\platform\mt6589\kernel\d
2014-03-27 16:44:21 1389
原创 MTK配置GPIO口
工具 MTK\alps6589_v1.3_s188_patch\mediatek\dct\DrvGen.exe s188_patch\mediatek\custom\star89_s116\kernel\dct\dct\codegen.dws参考:http://wapwenku.baidu.com/view/539603b9f121dd36a32d82bc?bd_page_
2014-03-26 17:16:13 1768
转载 MTK如此面试,你能答对多少
1:MTK方案中的总线工作原理是什么?MTK采用的是ARM核,他主要用来进行管理各个模块,其中多媒体如视频这些都是用了DSP的,DSP与ARM间有相互通信的。而ARM他分为AHB部线和APB总线。这两个总线是不同的。AHB主要用来控制高速的东西如MEMORY DMA等,而APB就是来控制外设的。如IIC,KEY,GPIO等。而APB与AHB中间有一个APB桥。这个APB桥就是用来做高低速转换。
2014-03-14 09:29:42 1629
转载 wifi 调试一
查看网络设备:busybox ifconfig -a 查看可接入的无线热点:iwlist ath0 scan | less查看无线网络:iwconfig;ifconfig wlan0 up;iwlist wlan0 scan;modprobe //你的udev如果正确识别的话,这步可以免去iwconfig //查看无线网卡设
2014-03-05 13:56:29 2601
转载 中断 和工作队列的应用
转自http://my.oschina.net/fzliu/blog/33028尽管有些设备仅通过它们的I/O寄存器就可以得到控制,但现实中的大部分设备却比这复杂一些。设备需要与外部世界打交道,如旋转的磁盘,绕卷的磁带,远距离连接的电缆等。这些设备的许多工作通常是在与处理器完全不同的时间周期内完成的,并且总是要比处理器慢。这种让处理器等待外部事件的情况总是不能令人满意,所以必须有一种方法可
2014-03-05 10:12:15 1631
转载 _IO, _IOR, _IOW, _IOWR 宏的用法与解析
http://blog.chinaunix.net/uid-20754793-id-177774.html
2014-02-18 13:34:44 545
转载 ioremap()的理解
刚开始学字符设备驱动,感觉最难的是驱动和底层硬件的连接。linux上的驱动程序,是基于操作系统之上的,他并不直接和底层的硬件打交道,但是我们写的驱动必须能使硬件“跑”起来,即与硬件紧密相连。就拿最简单的LED驱动来说,我们的驱动程序是在虚拟的内存上面跑的,但是最终,LED的点亮还是必须靠GPIO管脚的高低电平来控制。那么,我们的虚拟的内存怎么才能和实际的硬件上面的寄存器对应起来呢?这篇要写
2014-02-18 10:58:37 1544
转载 SPI DEMO
我用的系统是ubuntu13.04。tiny6410的开发板。首先,对友善提供的内核进行配置。如图第二步,打开arch/arm/mach_s3c64XX/mach_mini6410.c增加代码:static void cs_set_level(unsigned line_id, int lvl) { gpio_direction_output(line_id
2014-02-18 09:11:09 1608
原创 SPI子系统一
一、SPI连线SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。(1)SDO – 主设备数据输出,从设备数据输入(2)SDI – 主设备数据输入,从设备数据输出(3)SCLK – 时钟信号,由主设备产生(4)CS – 从设备使能信号,由主设备控制其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时
2014-02-17 17:01:28 1102
原创 out/target/product/generic目录generic的生成
把build目录下的buildspec.mk.defaultf复制一下,放到Android-2.3.4目录下,重命名为buildspec.mk,打开该文件,修改#TARGET_PRODUCT:=generic,把前面的#去掉,把generic改为你编译源码后生成的那个文件的名字,这样就可以了
2014-02-14 11:39:53 1715
原创 厂商HAL层库文件 xxx.xxx.so添加到源码中编译到系统镜像中
以mini6410 中的背光库文件为例:首先将库文件放入Android-2.3.4/vendor/friendly-arm/mini6410/prebuilt中,修改Android-2.3.4/vendor/friendly-arm/mini6410中的AndroidBoard.mk,在其中添加:# -------------------------------------------
2014-02-14 11:29:38 1623
原创 编译HAL层生成lib.so文件
本文以编译LCD背光的库文件为例,生成的库文件为 lights.mini6410.so.源文件的目录为:Android-2.3.4/device/samsung/crespo/liblight/ light.c Android.mklight.c/* * Copyright (C) 2008 The Android Open Source Project * *
2014-02-14 11:08:58 2488
转载 backlight子系统二
三.Backlight核心驱动下面我们讲讲backlight子系统。背光子系统目录在/driver/video/backlight下,其中背光子系统核心代码是backlight.c先查看/driver/video/backlight/Makefileobj-$(CONFIG_BACKLIGHT_CLASS_DEVICE) += backlight.o继续查看/driver/vide
2014-02-13 10:01:28 867
转载 backlight子系统一
一.Backlight背光子系统概述我们的LCD屏常常需要一个背光,调节LCD屏背光的亮度,这里所说的背光不是仅仅亮和不亮两种,而是根据用户的需求,背光亮度是可以任意调节。Linux内核中有一个backlight背光子系统,该系统就是为满足用户这种需求设计的,用户只要根据自己的LCD背光电路中PWM输出引脚,对内核backlight子系统代码进行相应的配置,就可以实现LCD的背光。LCD的背光
2014-02-13 09:46:26 843
原创 LED子系统
通过LED子系统 驱动控制 LED 1 ~ 4,主要的驱动文件为:/driver/leds/leds-gpio.c1、查看/driver/leds/Makefileobj-$(CONFIG_LEDS_GPIO) += leds-gpio.o查看/driver/leds/Konfigconfig LEDS_GPIO tri
2014-02-12 15:33:19 713
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人