上一页 1 2 3 4 5 6 ··· 11 下一页
摘要: 前言 电路原理在文章http://www.cnblogs.com/lknlfy/p/3583806.html中已经说明,两个LED的原理图是一样的。要使两个LED交替闪烁,只需要在点亮蓝色LED,熄灭绿色LED之后延时一段时间,然后再点亮绿色LED,熄灭蓝色LED,延时一段时间,如此不断循环即可,过程如图1所示。 图1 LED交替闪烁流程图一、目的 通过编写裸机程序,使板载的两个LED交替闪烁。二、源代码说明 程序比较简单,已给出详细注释,直接看代码好了,如下所示: 1 /* 2 * (C) Copyright 2014 Conan Liang 3 * 4 * two ... 阅读全文
posted @ 2014-03-06 09:31 lknlfy 阅读(1382) 评论(0) 推荐(0) 编辑
摘要: 前言 CUbieboard2板载两个LED,一个绿色的,一个蓝色的,其中绿色LED通过三极管与PH20管脚连接,蓝色LED通过三极管与PH21管脚连接,这里只以蓝色LED为例,电路原理图如图1和图2所示。 图1 LED所使用的管脚 图2 LED与三极管连接图由此可知,当PH21输出高电平时,三极管处于导通状态,从而蓝色LED会被点亮;当PH21输出低电平时,三极管处于截止状态,蓝色LED熄灭。一、目的 编写第一个裸机程序,点亮板载的蓝色LED。二、源代码说明 程序很简单,已给出详细注释,直接看代码好了,如下... 阅读全文
posted @ 2014-03-06 09:22 lknlfy 阅读(2428) 评论(3) 推荐(0) 编辑
摘要: A20支持从NAND Flash、SPI NOR Flash、SD card(SDC 0/2)和USB启动。当系统上电时,首先检测Boot Select Pin(BSP)管脚,如果为低电平,则直接从USB启动,否则尝试从MMC0启动,如果启动失败则尝试从NAND启动,如果启动失败则尝试从MMC2启动,如果启动失败则尝试从SPI NOR启动,如果启动失败则尝试从USB启动,整个启动过程如图1所示。 图1 A20启动过程 下面以MMC0启动为例进行分析。当系统从MMC0启动时,首先会读取TF卡从8KB开始的数据,一共读取24KB,读到内部SRAM的0地址... 阅读全文
posted @ 2014-03-04 23:24 lknlfy 阅读(2620) 评论(1) 推荐(2) 编辑
摘要: 前言 昨天终于入手了一块Cubieboard2板子,今年4月入职从事的就是与之相关的工作,因此趁现在有时间就好好熟悉一下。一、主机环境1.PC主机WIN 7旗舰版1.虚拟机VM7.02.ubuntu12.043.4G的TF卡,读卡器二、安装交叉编译器 这个比较关键,试过用自己下载的arm-linux-gnueabihf的4.7版本在构建busybox的根文件系统时会出现经典的错误:kernel panic - not syncing: No init found. Try passing init= option to kernel,因此用ubuntu源里自带的交叉编译器,安装方法如下... 阅读全文
posted @ 2014-03-01 12:33 lknlfy 阅读(5445) 评论(3) 推荐(0) 编辑
摘要: 前言 在学习、分析之前首先要弄明白一个问题:为什么要分析启动代码? 因为启动代码绝大部分都是用汇编语言写的,对于没学过或者不熟悉汇编语言的同学确实有一定难度,但是如果你想真正深入地学习Linux,那么读、分析某一个体系结构(比如ARM)的启动代码或者其他底层代码是必不可少的。当分析之后会发现这是有很多好处的:分析启动代码可以加深对汇编语言的理解;可以学习汇编语言的使用技巧;可以学习如何编写位置无关的代码,可以知道从启动到start_kernel()函数之前内核到底干了什么事情,从而为后续其他内核子系统的学习打下基础。 废话不多说,下面基于s3c6410,以Linux-2.6.36... 阅读全文
posted @ 2013-10-09 14:23 lknlfy 阅读(5372) 评论(3) 推荐(2) 编辑
摘要: 00000076 static void input_pass_event(struct input_dev *dev,00000077 unsigned int type, unsigned int code, int value)00000078 {00000079 struct input_handler *handler;00000080 struct input_handle *handle;00000081 00000082 rcu_read_lock();00000083 00000084 handle = rcu... 阅读全文
posted @ 2013-08-22 20:17 lknlfy 阅读(2477) 评论(0) 推荐(2) 编辑
摘要: 00000518 /* get current state of buttons */00000519 for (i = 0; i nbuttons; i++)00000520 gpio_keys_report_event(&ddata->data[i]);00000521 input_sync(input);00000522 00000523 device_init_wakeup(&pdev->dev, wakeup);00000524 00000525 return 0;00000526 00000527 fail3:0000052... 阅读全文
posted @ 2013-08-22 19:59 lknlfy 阅读(1863) 评论(1) 推荐(0) 编辑
摘要: 分别是总线类型、厂商号、产品号和版本号。1156行,evbit,设备支持的事件类型的位图,每一位代表一种事件,比如EV_KEY、EV_REL事件等等。BITS_TO_LONGS(nr)是一个宏,假设long型变量为32位,1位可以表示一种事件,那么这个宏的意思就是nr种事件需要用多少个long型变量来表示。EV_CNT的值为0x1f+1,因此BITS_TO_LONGS(0x1f+1)的值就为1。1157行,keybit,设备拥有的按键的位图,每一位代表一个按键。1158行,relbit,设备拥有的相对轴的位图,每一位代表一个相对轴。1159行,absbit,设备拥有的绝对轴的位图,每一位代表一 阅读全文
posted @ 2013-08-22 19:43 lknlfy 阅读(2752) 评论(0) 推荐(0) 编辑
摘要: 前言 以前在移植Qt到开发板上时只知道在配置文件中需要指定触摸屏的设备文件/dev/input/event0,仅此而已。直到一年半前突然想到用红外遥控器控制Tiny6410开发板上的Android系统,从而代替物理按键。实现原理是很简单的,就是首先解码红外信号,然后根据解码出的键值模拟一个按键信号。既然要模拟按键信号,那得首先找到按键信号产生的地方,通过查看内核编译生成的文件知道drivers/input/keyboard/gpio_keys.c文件是产生按键信号的源头,这是一个通用的用IO口模拟键盘的驱动程序。别小看这样一个功能,这是开发Android机顶盒、Android盒子必须要接触.. 阅读全文
posted @ 2013-08-22 19:28 lknlfy 阅读(7992) 评论(0) 推荐(3) 编辑
摘要: 558行,又重试2次。560行,调用s3c24xx_i2c_doxfer函数:00000482 static int s3c24xx_i2c_doxfer(struct s3c24xx_i2c *i2c,00000483 struct i2c_msg *msgs, int num)00000484 {00000485 unsigned long iicstat, timeout;00000486 int spins = 20;00000487 int ret;00000488 00000489 if (i2c->suspend... 阅读全文
posted @ 2013-08-17 21:13 lknlfy 阅读(1992) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 11 下一页