- 博客(13)
- 资源 (20)
- 收藏
- 关注
原创 时钟五
看了好多人分析了软件时钟部分,我也凑一下热闹吧,之前有说道软件时钟在何处执行的,在系统时钟中断里,执行的函数在init_timers中定义了open_softirq(TIMER_SOFTIRQ, run_timer_softirq); //初始化软中断函数 主意这里的是定时器软中断,开来还有其他软中断啊void open_softirq(int nr, void (*action)(
2012-09-21 16:25:30 716
原创 时钟四
接下来该分析time_init了/arch/arm/kernel/time.cvoid __init time_init(void){#ifndef CONFIG_GENERIC_TIME if (system_timer->offset == NULL) system_timer->offset = dummy_gettimeo
2012-09-21 16:25:21 1507 1
原创 时钟三
时钟机制的,使用通知链技术来执行。通知链技术,时钟源建立一个链表,然后待发生的事件将自己要执行的操作注册到链表上,简单吧,呵呵通知链有好多种:原子通知链( Atomic notifier chains ):通知链元素的回调函数(当事件发生时要执行的函数)只能在中断上下文中运行,不允许阻塞 可阻塞通知链( Blocking notifier chains ):通知链元素的回调函数在进
2012-09-21 16:25:09 652
原创 时钟二
内核中使用struct clocksource描述时钟源,使用clocksource_list来维护struct clocksource;使用struct clock_event_device来描述时钟发生的时间;使用clockevent_devices来维护struct clock_event_device;/include /linux/clocksource.h/**
2012-09-21 16:24:56 597
原创 时钟一
一切皆非难事,只要有恒心,蚂蚁也可啃掉大象,今天开始分析一下linux里的时钟机制。首先贴一下该是的启动Linux 部分asmlinkage void __init start_kernel(void){ char * command_line; extern struct kernel_param __start___param[], __stop
2012-09-21 16:23:34 677
原创 iic三
int i2c_add_numbered_adapter(struct i2c_adapter *adap){ int id; int status; if (adap->nr & ~MAX_ID_MASK) return -EINVAL;retry: if (idr_
2012-09-20 14:58:32 658
原创 iic二
一、driver/i2c/i2c-core.cstatic int __init i2c_init(void){ int retval; retval = bus_register(&i2c_bus_type); if (retval) return retval; retval =
2012-09-20 14:58:16 533
原创 iic一
struct i2c_client { unsigned short flags; /* div., see below */ unsigned short addr; /* chip address - NOTE: 7bit */
2012-09-20 14:58:07 540
原创 L一
mx51 LCD driver 分析以下为要用到的结构体struct mxcfb_data { struct fb_info *fbi; struct fb_info *fbi_ovl; volatile int32_t vsync_flag; wait_queue_head_t vsync_wq;
2012-09-17 15:31:05 1290
原创 L二
接上文,看完了结构体,也也应该知道个大概了,整个驱动部分围绕fb_info来,对其进行填充最后调用frambuffer_register将其注册进内核,接下来看详细分析: 426 static int mxcfb_ioctl(struct fb_info *fbi, unsigned int cmd, unsigned long arg) 427 { 428
2012-09-17 15:30:45 3471
原创 L三
整体架构分析LCD 本为字符设备,fbmem.c中定义了各项fbmem_init frambuffer_register等其中fbmem_init如下 1654 1655 static int __init 1656 fbmem_init(void) 1657 { 1658 proc_create("fb", 0, NULL, &f
2012-09-17 15:29:55 1076
原创 接口
LCD接口分类 1. I8080接口,我觉得应该就是所谓的8080,通常会用在12864屏上面,且有内部sdram,不需要实时的刷新图片,速度有限制, 支持的数据宽度有8/9/16/18bit,接口连接如下 稍微说一下引脚RS引脚表示数据还是命令,CS表示片选信号,/WR表示写,/RD表示读 2.M6800接口,哪些屏上会有我就不
2012-09-12 17:06:09 971
原创 ldr adr区别
ldr r0, _start adr r0, _start ldr r0, =_start nop mov pc, lr_start: nop 编译的时候设置 RO 为 0x0c008000↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
2012-09-07 16:21:26 680
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人