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

首页 / 操作系统 / Linux

GCC Inline ASM GCC内联汇编

GCC Inline ASM GCC内联汇编

GCC 支持在C/C++代码中嵌入汇编代码,这些汇编代码被称作GCC Inline ASM——GCC内联汇编。这是一个非常有用的功能,有利于我们将一些C/C++语法无法表达的指令直接潜入C/C++代码中,另外也允许我们直接写 C/C++代码中使用汇编编写简洁高效的代码。1.基本内联汇编GCC中基本的内联汇编非常易懂,我们先来看两个简单的例子:__asm__("movl %esp,%eax"); // 看起来很熟悉吧!或者是__asm__("movl $1,...
C/C++ 笔试总结

C/C++ 笔试总结

1.New delete 与malloc free 的联系与区别?答案:都是在堆(heap)上进行动态的内存操作。用malloc函数需要指定内存分配的字节数并且不能初始化对象,new 会自动调用对象的构造函数。delete 会调用对象的destructor,而free 不会调用对象的destructor.2.有哪几种情况只能用intialization list 而不能用assignment?答案:当类中含有const、reference 成员变量;基类的...
Linux 中断的上半部和下半部

Linux 中断的上半部和下半部

另外,与Linux中断息息相关的一个重要概念是Linux中断分为两个半部:上半部(tophalf)和下半部(bottom half)。上半部的功能是"登记中断",当一个中断发生时,它进行相应地硬件读写后就把中断例程的下半部挂到该设备的下半部执行队列中去。因此,上半部执行的速度就会很快,可以服务更多的中断请求。但是,仅有"登记中断"是远远不够的,因为中断的事件可能很复杂。因此,Linux引入了一个下半部,来完成中断事件的绝大多数使命。下半部和上半部最大的不同...
Ubuntu下Qt-4.7.1的静态编译

Ubuntu下Qt-4.7.1的静态编译

最近在学习Qt的静态编译,相比较来说windows的Qt静态编译比较容易,相反对于linux编译网上的文章实践下来都有这样那样的错误,这里简要小结一下自己的编译成果。一、实验环境1、Ubuntu 10.042、qt-x11-opensource-4.7.1.tar.gz二、前期准备在安装好Ubuntu 10.04后默认是没有安装程序编译软件包的,所以我们首先是要配置ubuntu。配置方法:(推荐全程root用户模式)1、首先调整网络设置使得机器可以上网(具...
Android的功能特性简介

Android的功能特性简介

学习Android开发貌似有大半年的日子了吧,一路走来,慢慢的觉得基础原来是那么的重要,在开发的过程中做着做着就会出现一些很低级的错误,经 过这一段时间的总结,找到了错误的原因,基础不牢,不扎实,因此现在重新制定计划,每天定量的复习java方面的知识,android的基础知识以及重要 的主要点,希望能以后少走弯路!何为android,我在看sdk的开发文档中看到的这个Google官方给出的简单介绍:相关阅读:Android将ScrollView移动到最底部...
Android系统架构

Android系统架构

这次开始了Android系统架构的学习,目的了解android的系统架构,我的开发路线,应用程序开发—-android底层开发,呵呵!回归正题:Android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,我们可以得知android分为四层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。下面对Android系统架构的四层进行详细的介绍相关阅读:Android将ScrollView移动到最底部1.Android会同一...
Linux的Cache Memory(缓存内存)机制

Linux的Cache Memory(缓存内存)机制

当前一个项目中需要用到音频,用到的音频芯片是CS4344,驱动是从linux内核自带的AT73C213音频IC驱动移植过来的。在用自己写的应用程序播放音频文件的时候,发现随着播放不同的音频文件,内存的使用越来越多,甚至高达27或28M(总共内存是32M)。由于在这之前没有关注过linux的cache机制,判断内存是用top命令的used的值来判断的,因此将这个问题判断为内存问题。由于音频驱动是alsa架构,而播放音频的应用程序是直接用系统函数写的,开始判断...
Linux下vlc编绎过程记录

Linux下vlc编绎过程记录

这几天,刚好有时间(闲得蛋疼),于是想要去看看vlc的源码。出于本能的原因,下载了源码后,第一件想要做的事就是尝试着编绎此源码。网络上相关编绎资料也多, 但多数没法满足我的要求, 很多资料更多是作者随手记录的笔记,作者编绎的vlc版本与现在所下载的最新版本也有了一定的偏差。编绎环境linux版本:Fedora 9编绎器:gcc 4.3.0vlc源码版本:vlc-1.1.7 (已是此时的最新的版本)qt4源码库:qt-everywhere-opensourc...
在Fedora 10上编译vlc1.0.2全程笔记

在Fedora 10上编译vlc1.0.2全程笔记

在linux上编译vlc,花了很久才搞定 ,因此特地的记录下整个编译过程。本来先是想在windows上用cygwin,或者msys+mingw来进行编译,后来老大来了句真的linux都编译不过,假的linux更会遇到问题了,想想也是,自己的目的不在于做一个windows上面的vlc版本,而是想调试vlc,看一下它的执行过程,于是还是回到linux进行编译,在真实的linux物理机器上编译速度很快。linux的版本是Fedora10, vlc的版本是最新的v...
ARM+Linux驱动----点亮开发板的LED

ARM+Linux驱动----点亮开发板的LED

使用FS2440开发板2.6.4内核1)关于fs_operations的问题fs_operations数据结构是有文件系统(虚拟文件系统VFS)提供的,其主要作用是向上(应用层)提供统一的系统调用接口,比如open(),read(),write(),ioctl()等文件(Linux把所有的设备也当作文件)操作,向下屏蔽各种不同平台的差异。fs_operations内部是一个指针实现,链接了向上的接口和向下的具体实现。设备驱动的层次在文件系统之下,就是这个道...
Linux Kernel 2.6.37.2内核编译实战

Linux Kernel 2.6.37.2内核编译实战

昨天因为/etc/rc.d/rc文件被我弄坏,不得不重新安装系统,安装的发行版内核用的还是2.6.18,决定要赶紧升级下内核,呵呵。话说linux2.6.37.2内核出来也已经有一段时间了,目前2.6.38还在开发当中,于是还是下个stable的,步骤如下:1. ftp://ftp.kernel.org/pub/linux-2.6.37.2.tar.bz2获取源代码,放在/usr/src/kernel下, 并用tar解压2. 首先看一下源目录中Docume...
利用Java反射解决Android系统方法不能调用的情况

利用Java反射解决Android系统方法不能调用的情况

作者提到的“ Android系统方法”大部分是指Android源码中的隐藏类,其实我们要调用它们还有两种方法:一是从linux中编译后源码中提取该隐藏类所在的jar包,然后导入项目中调用;二是从编译前的源码中提取相应的java类,将其包含在项目中使用;从性能的角度将,我不提倡使用反射,据网上测试结果说,简单方法使用反射调用其性能损耗太大,但复杂方法或项目中使用性能损耗比例小一些,但还是会有损耗,所以希望大家在用之前多多斟酌得失吧~转载:之前在写2.2的退出...
Android的反射机制Reflection

Android的反射机制Reflection

由于Android 2.2的推出,很多新的API加入导致很多项目移植需要考虑使用Java的反射机制Reflection来动态调用,动态调用的好处就是不需要使用引用文件,直接通过JDK中声明好的方法直接调用,本身原理基于JVM的,从Java 1.5开始支持,原理上就是根据类名而不实例化对象的情况下,获得对象的方法或属性而直接调用。Android开发时反射能帮助我们多少?1. 有些网友可能发现Android的SDK比较封闭,很多敏感的方法常规的用户无法编译,我...
<< 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 >>