- 博客(10)
- 资源 (4)
- 收藏
- 关注
转载 UART控制器驱动流程
<br /><br />UART控制器也属于片上设备,因此它的流程也如其他的片上设备类似,流程可参考《2410下soc上的设备的驱动流程(RTC, watchdog等)》。首先是静态的初始化好这个设备的相关信息,包括中断号,寄存器地址等在arch/arm/mach-s3c2410/devs.c下<br />/* Serial port registrations */<br />static struct resource s3c2410_uart0_resource[] = {<br /> [
2010-09-29 16:58:00 1342
转载 linux串口终端设备驱动分析
17.内核启动信息分析 Uncompressing Linux...................................................... done , booting the kernel. [archarmootcompressedmisc.c: decompress_kernel()] Linux ver
2010-09-29 14:17:00 3016
转载 EXPORT_SYMBOL and EXPORT_SYMBOL_GPL
1.EXPORT_SYMBOL<br />EXPORT_SYMBOL( my_pub_func);<br />在预编译阶段会解析为:<br />extern void *__crc_my_pub_func __attribute__((weak)); <br />static const unsigned long __kcrctab_my_pub_func __attribute__((__used__)) __attribute__((section("__kcrctab" ""), unused))
2010-09-28 22:25:00 1124
转载 详解linux下的串口通讯开发
串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是RS-232-C接口(又称EIA RS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。串口通讯指的是计算机依次以位(bit)为单位来传送数据,串行通讯使用的范围很广,在嵌入式系统开发过程中串口通讯也经常用到通讯方式之一。Lin...
2010-09-23 21:05:00 2701
转载 linux(互斥)信号量
<br />信号量实现的机制<br />信号量是一种睡眠锁。它是实现同步操作,防止竟态的方式之一。任何进程在对共享数据进行读写操作之前必须获得用来保护共享数据的信号量,否则不能供访问权限,信号量会把这个访问进程放进一个等待队列中(这个等待队列是在信号量初始化过程中被初始化的),然后让其进入睡眠状态。这是处理器重新调度,去执行其他进程的操作。保护共享数据的信号量被释放,被这个信号量放进等待队列的进程会被激活,获得该信号量,然后对共享数据进行访问。<br /> <br />信号量的实现函数<br />stati
2010-09-12 12:49:00 1713
转载 typecheck(type,x) 作用
<br />在kernel 2.6.30 的typecheck.h源码中有如下定义<br />#define typecheck(type,x) /<br />({ type __dummy; /<br /> typeof(x) __dummy2; /<br /> (void)(&__dummy == &__dummy2); /<br /> 1; /<br />})<br />这个有什么作用呢?下面举例来说明<br />#define time_aft
2010-09-07 00:07:00 530 1
转载 linux内核的 等待队列 使用方法,wait_queue_head_t,进程休眠
<br />当你在用户空间需要读写一大片数据的时候,这个就用上了。<br />以下来自:http://www.yuanma.org/data/2006/1207/article_1916.htm假设我们在 kernel 里产生一个 buffer,user 可以经由 read,write 等 system call 来读取或写资料到这个 buffer 里。如果有一个 user 写资料到 buffer 时,此时 buffer 已经满了。那请问你要如何去处理这种情形呢 ? 第一种,传给 user 一个错误讯息,说
2010-09-07 00:03:00 864 1
转载 GNU C 扩展之__attribute__ 机制简介
<br /> <br />摘要:<br /> 在学习linux内核代码及一些开源软件的源码(如:DirectFB),经常可以看到有关__attribute__的相关使用。本文结合自己的学习经历,较为详细的介绍了__attribute__相关语法及其使用。<br /><br />----------------------------------------------------------------<br />声明:<br /> 原创作者:聂飞(afreez) 北京-中关村<br />
2010-09-06 17:08:00 421
转载 关于EXPORT_SYMBOL
<br />linux2.6的“/prob/kallsyms”文件对应着内核符号表,记录了符号以及符号所在的内存地址。<br />模块可以使用如下宏导出符号到内核符号表:<br /> view plaincopy to clipboardprint?EXPORT_SYMBOL(符号名); EXPORT_SYMBOL_GPL(符号名) <br />EXPORT_SYMBOL(符号名);EXPORT_SYMBOL_GPL(符号名)<br /> <br />导出的符号可以被其他模块使用,不过使用之前一定
2010-09-06 17:03:00 512
转载 驱动程序与应用程序中函数调用关系分析(write)
<br />驱动程序里的write函数有四个参数,函数格式如下: <br />short_write (struct inode *inode, struct file *filp, const char *buf, int count) <br />而用户程序中的write函数只有三个参数,函数格式如下: <br />write(inf fd, char *buf, int count) <br />那他们两个是怎么联系在一起的呢?这就要靠操作系统核心中的函数sys_write了,下面 <br
2010-09-04 17:08:00 1161
智能硬件 智能家居物联网控制通用通信协议
2016-03-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人