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

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

Linux下的中断(interrupt) 简介

Linux下的中断(interrupt) 简介

中断其实就是由硬件或软件所发送的一种称为IRQ(中断请求)的信号。中断允许让设备,如键盘,串口卡,并口等设备表明它们需要CPU。一旦CPU接收了中断请求,CPU就会暂时停止执行正在运行的程序,并且调用一个称为中断处理器或中断服务程序(interrupt service routine)的特定程序。中断服务程序或中断处理器可以在中断向量表中找到,而这个中断向量表位于内存中的固定地址中。中断被CPU处理后,就会恢复执行之前被中断的程序。其实,在机器启动的时候,...
硬中断与软中断的区别

硬中断与软中断的区别

硬中断:1. 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上(注:硬件驱动通常是内核中的一个子程序,而不是一个独立的进程)。2. 处理中断的驱动是需要运行在CPU上的,因此,当中断产生的时候,CPU会中断当前正在运行的任务,来处理中断。在有多核心的系统上,一个中断通常只能中断一颗CPU(也有一种特殊的情况,就是在大型主机上是有硬件通道的,它可以...
Android开发——通过子线程更新界面UI

Android开发——通过子线程更新界面UI

在Android开发过程中,我们经常有通过子线程来更新界面UI的需求,而android是不允许子线程更新界面的,只能通过主线程来更新界面UI,而且,android开发中,由于要保证主线程的通畅,一般主线程只负责处理界面更新,事件处理,窗体显示的回调等重要且不耗时的操作,而像连接网络,io操作等,一般让子进程负责。所以,android提供了一种消息机制来实现子线程更新UI的需求,android提供Handler类,用于子线程和主进程交互。在主进程中,声明实例...
VLC视频播放器开发--VLC for Android编译

VLC视频播放器开发--VLC for Android编译

VLC播放器是一款优秀的开源播放器,可以播放MPEG-1、MPEG-2、MPEG-4、DivX、DVD/VCD、数字卫星频道、数字地球电视频道(digital terrestial television channels)、在许多作业平台底下透过宽频 IPv4、IPv6网络播放线上影片。此软件开发项目是由法国学生所发起的,参与者来自于世界各地,设计了多平台的支持,可以用于播放网络串流及本机多媒体档案之播放。接下来我们使用VLC来制作一个视频播放器,这章我们...
Android本地视频播放器开发--NDK编译FFmpeg

Android本地视频播放器开发--NDK编译FFmpeg

在Android本地视频播放器开发中的搜索本地视频章节中,我们能够搜索本地视频并且显示每个视频的图片、标题、时间长度,当然如果需要添加其他的例如视频的长度和宽度可以使用Video类中的方法,既然我们获取到视频后,那么接下来就是解码视频,解码视频我使用的是ffmpeg,所以这张就是使用NDK编译手机可以使用的FFmpeg库。首先到官网http://ffmpeg.org/download.html下载最新的源码,然后在ffmpeg目录下面创建一个脚本confi...
Linux下编译VLC for Android源代码总结

Linux下编译VLC for Android源代码总结

由于项目需要,需要一个在Android平台能够支持RTSP协议的播放器,由于之前没有android平台的经验,所以找了著名的video LAN的VLC播放器,更令人惊奇的是这款播放器居然还是完全开源的。在此向那些开源软件的作者和组织致以崇高的敬意,是你们的存在使得计算机软件产业蓬勃发展,你们帮助了很多囊中羞涩的个人和企业,让他们也有机会用上高质量的软件,同时不可避免的吸引了一批有志之士加入到你们的行业。既然有现成的代码,所以就想编译一下vlc for an...
Qt环境的搭建X11与Embedded

Qt环境的搭建X11与Embedded

Qt 版本:qt4.8.5qt是一个开源的、跨平台的图形库(当然qt的功能不只是图形库啦),一般在linux平台中应用比较广泛。开发者要是使用qt库进行应用程序的开发,需要对安装qt的开发环境,说简单点就是安装好qt的库、头文件及内部工具。我们一般采用源码包安装。准备:下载源码包qt-everywhere-opensource-src-4.8.5.tar.gz像所有的源码包安装一样,qt的安装也是configure、make、make install这经典...
【shell脚本学习】shift命令学习

【shell脚本学习】shift命令学习

位置参数可以用shift命令左移。比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。非常有用的 Unix 命令:shift。我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值给变量$*。若用户要求 Shell 在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在 $1 ...
MySQL集群的flexAsynch测试工具的安装和使用

MySQL集群的flexAsynch测试工具的安装和使用

一、编译安装flexAsynchOracle官方推荐的MySQL Cluster性能测试工具有DBT2,flexAsynch等。此处采用了flexAsynch,它是一种非常好的NDB测试工具。由于Oracle并不提供flexAsynch的二进制文件下载,仅仅在MySQL Cluster的源码包中提供这个测试工具的源码,所以必须手动编译MySQL Cluster才能获得flexAsynch的执行文件。以下命令都是在RHEL 6.4中以root账户权限运行。1...
C++ 程序使用 OpenCV 实现视频捕获

C++ 程序使用 OpenCV 实现视频捕获

下载 Capture.zip - 14.1 KB前言这是一个使用 Visual C++ 窗口表单编写的简单视频捕捉应用程序。这个工程既演示了窗口表单应用程序的创建,又演示了 OpenCV 的 Visual C++ 配置。OpenCV 是免费的计算机视觉软件,也是图像处理的开源库。本文帮助程序员配置 visual c++ 开发环境,从而运行基于窗口控制的 OpenCV 应用程序。OpenCV 库可以集成到开发环境中。它易于配置,如下六步展示了怎样来配置 vi...
Java 并发之 CountDownLatch、CyclicBarrier 和 Semaphore

Java 并发之 CountDownLatch、CyclicBarrier 和 Semaphore

目录CountDownLatch作用示例CyclicBarrier示例CyclicBarrier 和 CountDownLatch 在用法上的不同Semaphore示例:Semaphore 控制资源访问最后一句话总结这次说一下 JUC 中的同步器三个主要的成员:CountDownLatch、CyclicBarrier 和 Semaphore(不知道有没有初学者觉得这三个的名字不太好记)。这三个是 JUC 中较为常用的同步器,通过它们可以方便地实现很多线程之...
程序员的工作效率:Emacs vs IntelliJ IDEA

程序员的工作效率:Emacs vs IntelliJ IDEA

我用 Emacs 写了 7 年的 C++ 代码。 4 年前,当我换了工作,开始使用 IntelliJ IDEA 转向 Java 开发。毫无疑问,比起 Emacs,我在 IntelliJ IDEA 上写代码更有效率。导航代码好像真的是80%由导航生成,只有20%是实际写作的结果,IntelliJ IDEA的真正亮点所在是导航到代码库。例如,假设你要添加功能到现有的类,即使你对那个类很熟悉,你还是需要检查新代码该放在哪里比较合适,需要添加一个新的声明吗?还有什...
C++容器总结

C++容器总结

在面向对象程序中,大多引入了容器的概念。那么什么是容器?实质上是一组相同类型对象的集合,但它不仅仅是数组那么简单,它实现了比数组更复杂的数据结构,能够实现更复杂的功能。C++标准模版库里提供了10种通用的容器,它基本可以解决程序中遇到的大部分问题。什么是容器C++中容器的定义如下:数据存储上,有一种对象类型,它可以持有其他对象或指向其他对象的指针,这种对象类型叫容器。通俗的说容器就是保存其他对象的对象,这种“对象”还包含了一些列处理...
C++适配器概括

C++适配器概括

C++ primer中关于适配器的定义——适配器(adaptor): 是使一种事物的行为类似于另外一事物的行为的一种机制。这个定义初学时觉得好抽象。为了理解C++中的适配器,不妨先了解物理上的适配器。物理上的适配器就是一个接口转换器,它可以是一个独立的硬件接口设备,允许硬件或电子接口与其它硬件或电子接口相连,也可以是信息接口。比如:电源适配器、三角架基座转接部件、USB与串口的转接设备等。而C++上的适配器其实是物理上的适配器含义的...
<< 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 >>