Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

I2C子系统之内核中I2C子系统的结构

I2C子系统之内核中I2C子系统的结构

本文开始,分析内核的i2c子系统。说明:1.分析的内核版本为2.6.37.1 2.开发板为TQ2440,板载ARM9(S3C2440) 3.I2C设备为AT24C02 4.分析顺序就是内核I2C子系统的注册顺序(即本系列文章发表的先后顺序)。在正式进入代码分析前应摸清各初始化函数的执行先后顺序,清楚这个顺序后对i2c的整个框架也有就有数了。1.初始化函数的执行顺序1.1 函数执行顺序是如何确定的内核编译链接完成后初始化函数的执行先后顺序就确定了。这是通过链...
I2C子系统之platfor_device初始化——smdk2440_machine_init()

I2C子系统之platfor_device初始化——smdk2440_machine_init()

调用完函数i2c_init后(见 I2C子系统之I2C bus初始化——I2C_init() http://www.linuxidc.com/Linux/2012-08/68261.htm)系统将成功创建i2c总线。初始化完毕总线后还需要接着初始化i2c设备和i2c驱动(一般是先初始化device),对于2440来说,linux内核中的device初始化一般是通过platform device来初始化的,platform device的初始化在/arch/...
μC/OS中高优先级任务一旦处于就绪态总能获得CPU控制权的理解

μC/OS中高优先级任务一旦处于就绪态总能获得CPU控制权的理解

μCOS的任务切换时间:1.任务创建时2.任务挂起时3.任务恢复4.任务延时时 6.任务释放信号量时7.任务释放互斥信号量时8.任务请求消息邮箱时9.任务释放消息队列时10中断退出时(OSINTEXIT()函数中)任务之前的切换应该就是利用时钟中断来实现,当OS运行完一个时钟片后会产生一个中断(定时器的中断)异常,PC指针立即跳转到异常向量表执行处理异常的代码,随后会导致OS执行一次任务调度。整个过程分析如下:产生异常后执行的第一条指令b HandlerI...
内核代码不可直接访问用户空间数据

内核代码不可直接访问用户空间数据

一定要注意的是不能直接访问用户空间数据,内核代码可以通过特殊的函数来访问用户空间数据,copy_to_user copy_from_user这两个函数就是内核代码访问用户空间数据的函数,但是内核不能直接通过像是memcpy函数来直接操作用户空间数据。按照linux设备驱动书本上的说法,我的理解,三个原因描述如下。其一,驱动程序架构不同或者内核的配置不同,用户空间数据指针可能运行在内核模式下根本就是无效的,可能没有那个虚拟地址映射到的物理地址,也有可能直接指...
交叉编译gdb遇到no termcap library found的解决方法

交叉编译gdb遇到no termcap library found的解决方法

在是用ejtag的时候缺少了gdb工具,因此自己需要手动编译一个gdb工具,编译过程中遇到了一些错误,翻阅了大量的网上资料解决了这些问题,从而也学习了一下交叉编译源码包的方法,这里做一个总结。首先去官方网站下载gdb的源码包,我下载的7.4.1版本的源码包,解压开来,进入到源码包的根目录下。对于一个源码包,拿到手里首先要阅读的就是README,然后看一下INSTALL文件,这个文件里编译源码包的步骤。基本上所有的源码包都是三步,configure,make...
如何在GNU Emacs环境下编译并运行C/C++程序?

如何在GNU Emacs环境下编译并运行C/C++程序?

学习C/C++的朋友有没有想过完完全全的在Linux环境下开发软件!?我想过,可能是因为个人对Windows平台有些偏见,或者说个人不是非常喜欢在Windows下写程序的感觉,总觉得有那么一层膜隔阂着我们,不像Linux,可以做强大的服务器,在终端下只需要使用简简单单的命令便能完成相当复杂的事情,是不是感觉很高深!?还有很多很多开源项目,Emacs也算一个吧!!! 呵呵,谈到在Linux下编程,我们不得不提这两款编辑器:vi/vim和Emacs(确切的说E...
使用OpenCV官方提供文件配置、静态编译并运行OpenCV-2.3.x/2.4.x实例

使用OpenCV官方提供文件配置、静态编译并运行OpenCV-2.3.x/2.4.x实例

当我们需要测试程序,或者想将程序发给其他同事或者同学,以让同事或者同学运行以测试程序性能或者逻辑是否恰当时,是不是还要他人也要像你当初开发程序时一样一步一步的配置OpenCV运行环境!?如果不做这些,还会提示像图1所示的系统错误(无法启动程序,因为计算机中丢失“opencv_highgui241d.dll。尝试重新安装该程序以解决此问题”),这是不是太麻烦了,其实我们可以将程序以静态链接的方式编译,如此便少去了配置运行时环境的步骤了。图1动态编译的程序在未...
OpenCV 2.3.x/2.4.x在Visual Studio 2005/2008和Visual Studio 2010配置方法详解

OpenCV 2.3.x/2.4.x在Visual Studio 2005/2008和Visual Studio 2010配置方法详解

由于OpenCV自2.3.0版本开始就提供了OpenCV-2.3.x -win-superpack.exe或OpenCV-2.4.x.exe文件,该文件解压后,会生成Windows版本的源代码,这种源代码可以通过cmake、intel TBB与Visual Studio 2005/2008/2010结合编译生成目标文件(包括动态链接库、可执行文件等),出现的问题也就那么几个,非常容易便能解决。本人技术有限,不能够直接使用Unix源码在Windows下编译(...
安装OpenCV 2.3出现错误“opencv error PRJ0019: 工具从“正在执行生成后事件...”

安装OpenCV 2.3出现错误“opencv error PRJ0019: 工具从“正在执行生成后事件...”

这个问题困扰了我很久,而且困扰了我两次,于是我终于找到了解决方法,但是那个网站上居然不能复制内容,还要注册之后才能复制!这我怎么能把这个伟大而正确的信息广泛传播呢?在有关openCV这么伟大的开源软件面前,还要给开发人员设置边边框框,这个坎那个坎的,不脸红吗?于是哥自己手打了一遍这个解决方法,复制在此,供大家利用。就不注明来源地址了,还要注册才能复制内容!(1)如果在重新编译install时出现错误“opencv error PRJ0019: 工具从“正在...
OpenCV2.3中背景建模算法

OpenCV2.3中背景建模算法

我也不清楚具体是在哪一个版本进行更新的,我看的是最新的2.3版本,已经淘汰了网上很流行的那个建模算法,连那个函数都没有了最新版的文档说明为在这里:http://opencv.itseez.com/在其中的video. Video Analysis项目下就有BackgroundSubtractor,点击打开发现原来那些都是更新过的,这次比较搞乐的是,opencv的作者们搞了两个背景建模算法,也许是因为现在背景建模的算法实在是又多又杂。其中第一个算法类是Bac...
使用OpenCV-2.4.0.exe文件编译x86或x64平台Visual Studio 2005/2008/2010目标文件

使用OpenCV-2.4.0.exe文件编译x86或x64平台Visual Studio 2005/2008/2010目标文件

首先声明在Visual Studio 2008/2010下使用OpenCV不需要再编译OpenCV-2.4.0,原因是在OpenCV-2.4.0.exe解压后会产生build文件夹,其中有很多目录,我们注意到x86文件夹,里面又有vc9、vc10等文件夹(包含debug和release版本),使用这些文件我们可以直接配置OpenCV-2.4.0,这里讲述编译方法只是一时兴起。配置方法详见本人其他文章:OpenCV 2.3.x/2.4.x在Visual St...
<< 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 >>