fengyv

http://www.cnblogs.com/fengyv

导航

随笔分类 -  linux 编程

摘要:第一节:start_kernel Linux的源代码可以从 www.kernel.org 得到,或者你可以查看linux代码交叉引用网站:http://lxr.linux.no/ 进行在线的代码查看,这是一个很好的工具网站。 在start_kernel中将调用到大量的init函数,来完成内核的各... 阅读全文

posted @ 2007-08-09 08:55 fengyv 阅读(581) 评论(0) 推荐(0)

摘要:uclinux启动的详细过程有着诸多的信息可以给我们巨大的启发,我们在这里讨论的就是要 对这些信息做一个具体细致的分析,通过我们的讨论,大家会对uclinux启动过程中出现的、以前感觉熟悉的、但却又似是而非的东西有一个确切的了解,并 且能了解到这些输出信息的来龙去脉。 uclinux的启动过程... 阅读全文

posted @ 2007-08-09 08:49 fengyv 阅读(873) 评论(0) 推荐(0)

摘要:1、什么是虚函数和多态 虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行晚绑定,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为基类的,它可以指向基类或派生类的对象。多态指同一个方法根据其所属的不同对象... 阅读全文

posted @ 2006-11-01 14:07 fengyv 阅读(183) 评论(0) 推荐(0)

摘要:一.基础知识:线程和进程 按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。 无论按照怎样的分法,一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如cp... 阅读全文

posted @ 2006-11-01 08:31 fengyv 阅读(179) 评论(0) 推荐(0)

摘要:共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。 采用共享... 阅读全文

posted @ 2006-09-30 11:45 fengyv 阅读(292) 评论(0) 推荐(0)

摘要:摘要:随着嵌入式Linux系统的迅速发展,嵌入式Linux已发展成为嵌入式操作系统的一个重要分支。本文介绍了嵌入式Linux的设计和几种流行的嵌入式Linux系统。 关键词:嵌入式Linux 一、引言 嵌入式系统(Embedded Systems)是根据应用的要求,将操作系统和功能软件集成于计... 阅读全文

posted @ 2006-09-11 08:24 fengyv 阅读(261) 评论(0) 推荐(0)

摘要:大家来了解一下我们平时用的取款机吧,嘿嘿 前言http://topdzh.byethost4.com/thread-383-1-1.html ATM机的核心部件是出钞模块,它是集电子、机械于一体的自动化装置,到现在为止,只有几个发达国家可以研发和制造,但随着我国机械制造和自动控制技术的提高,完... 阅读全文

posted @ 2006-08-31 10:05 fengyv 阅读(471) 评论(0) 推荐(0)

摘要:关键词:μC/OS-II MCF5272 移植 GNU工具链作为一个实时内核,μC/OS从1992年开始为人们熟悉,到现在已经发展为μC/OS-II。ΜC/OS-II最多支持56个任务,其内核为占先式,总是执行就绪态的优先级最高的任务,并支持Semaphore(信号量)、Mailbox(邮箱)、Message Queue(消息队列)等多种常用的进程间通信机制。与大多商用RTOS不同的是,μC/OS-II公开所有的源代码,并可以免费获得,对商业应用收取少量License费用。一般商用操作系统如VxWorks、pSOS、WinCE,购买费用动辄数万美元,而且每件产品都需要交纳运行费,开发、使用成本 阅读全文

posted @ 2006-08-28 10:24 fengyv 阅读(333) 评论(0) 推荐(0)

摘要:摘要 在开发数据流设备的驱动程序时,采用中断驱动的I/O方式结合缓冲区的使用,可以将数据的接收和系统调用read隔离开来,提高设备在系统中的运行效率。本文在讨论uClinux下中断处理程序和底半部分的开发的基础上,以一种电信E1线路和以太网互联设备上数据流设备为例,讲述中断驱动的I/O方式的驱动... 阅读全文

posted @ 2006-08-25 16:59 fengyv 阅读(358) 评论(0) 推荐(0)

摘要:我这里说的ioctl函数是在驱动程序里的,因为我不知道还有没有别的场合用到了ioctl,所以就规定了我们讨论的范围。为什么要写篇文章呢,是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。 一、 什么是ioctl。 ioctl是设备驱动程序中对设备的I/O通道进行管... 阅读全文

posted @ 2006-08-25 15:32 fengyv 阅读(779) 评论(0) 推荐(0)

摘要:一 const基础如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况:int b = 500;const int* a = &b; [1]int const *a = &b; [2]int* const a = &b; [3]const int* const a = &b; [4]如果你能区分出上述四种情况,那么,恭喜你,你已经迈出了可喜的一步。不知道,也没关系,我们可以参考《Effective c++》Item21上的做法,如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧 阅读全文

posted @ 2006-08-23 11:16 fengyv 阅读(154) 评论(0) 推荐(0)

摘要:简介 Linux是一种很受欢迎的操作系统,它与Unix系统兼容,开放源代码。它原本被设计为桌面系统,现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设备。uClinux正是在这种氛围下产生的。在uClinux这个英文单词中u表示Micro,小的意思,C表示Control,控制的意思... 阅读全文

posted @ 2006-08-23 10:54 fengyv 阅读(278) 评论(0) 推荐(0)

摘要:Purpose This examples shows how to create and stop a kernel thread.The driver is implemented as a loadable module. In the init_module() routine five... 阅读全文

posted @ 2006-07-26 14:18 fengyv 阅读(197) 评论(0) 推荐(0)

摘要:本章主要描叙Linux核心的中断处理过程。尽管核心提供通用机制与接口来进行中断处理,大多数中断处理细节都是CPU体系结构相关的。推荐阅读:《走向linux 2.6》图7.1 中断路由的逻辑图Linux通过使用多种不同硬件来执行许多不同任务。包括驱动显示器的视频设备、驱动硬盘的IDE设备等。 我们可以同步驱动这些设备,即我们可以发送一个请求执行一组操作(比如说将一块内存数据写入到磁盘)然后等待到执行完毕。这种方式虽然可以工作,但是效率很低,因为操作系统必须等待每个操作的完成,所以操作系统将花费大量时间在“忙等待”上。更为有效的方式是执行请求,然后转去执行其它任务。当设备完成请求时再通过中断通知操 阅读全文

posted @ 2006-07-21 13:11 fengyv 阅读(333) 评论(0) 推荐(0)

摘要:volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。使用该关键字的例子如下:int volatile nVint;当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。例如:volatile int i=10;int a = i;。。。//其他代码,并未明确告诉编译器,对i进行过操作int b = i;volatile 指出 阅读全文

posted @ 2006-07-12 12:49 fengyv 阅读(273) 评论(0) 推荐(1)

摘要:编写Linux网络驱动程序中需要注意的问题 3.1 中断共享 Linux系统运行几个设备共享同一个中断。需要共享的话,在申请的时候指明共享方式。系统提供的request_irq()调用的定义: int request_irq(unsigned int irq, void (*handler... 阅读全文

posted @ 2006-07-01 11:03 fengyv 阅读(445) 评论(0) 推荐(0)

摘要:2.1网络驱动程序的结构 Linux网络驱动程序的体系结构如图1所示。可以划分为四层: (1)协议接口层 (2)网络设备接口层 (3)设备驱动功能层(4)及网络设备和网络媒介层。 网络驱动程序重点:完成设备驱动功能层 在Linux中,所有网络设备都抽象为一个接口(interface)。这... 阅读全文

posted @ 2006-07-01 10:38 fengyv 阅读(1314) 评论(0) 推荐(0)

摘要:1.1 Linux设备驱动程序分类 Linux系统的设备分为三类: (1)字符设备(char device)(2)块设备(block device)(3)网络设备(network device)。 字符设备是指存取时没有缓存的设备。(鼠标,键盘,串行口) 块设备的读写都有缓存来支持,并且块设备必... 阅读全文

posted @ 2006-07-01 10:01 fengyv 阅读(405) 评论(0) 推荐(0)

摘要:关键词:PCI总线 配置空间 操作系统PCI总线推出以来,以其独有的特性受到众多厂商的青睐,已经成为计算机扩展总线的主流。目前,国内的许多技术人员已经具备开发PCI总线接口设备的能 力。但是PCI总线的编程技术,也就是对PCI总线设备的操作技术,一直是一件让技术人员感到头疼的事情。PCI总线编程... 阅读全文

posted @ 2006-06-30 17:12 fengyv 阅读(1292) 评论(0) 推荐(0)

摘要:摘要:介绍一个动态内存管理模块,可以有效地检测C程序中内存泄漏和写内存越界等错误,适用于具有标准C语言开发环境的各种平台。 关键词:C语言 动态内存 内存泄漏 写越界 引言 当前,绝大多数嵌入式平台上的软件都采用C语言编写。除了代码简洁、运行高效之外,灵活操作内存的能力更是C语言的重要特色。然而,不恰当的内存操作通常 也是错误的根源之一。如“内存泄漏” ——不能正确地释放已分配的动态内存,就是一种非常难于检测的存错误。持续的内存泄漏会使程序性能下降到最终完全不能运行,进而影响到所有其它有动态内存 需求的程序,在某些相对简单的嵌入式平台上甚至会妨碍操作系统的运转。再如“写内存越界”,一... 阅读全文

posted @ 2006-06-27 12:56 fengyv 阅读(207) 评论(0) 推荐(0)