摘要:地址:http://blog.csdn.net/qianjin0703/article/details/6387662 0. 专用术语 1. 物理结构 2. 系统架构 本文基于Freescale IMX平台Codec ALC5625为例。 0. 专用术语 ASLA - Advanced Sound Linux Architecture OSS - 以前的Linux音频体系结构,被ASLA取代并兼容 Codec - Coder/Decoder I2S/PCM/AC97 - Codec与CPU间音频的通信协议/接口/总线 DAI - Digital Audio Interface 其实就是...
阅读全文
摘要:地址:http://mp3.zol.com.cn/252/2524723.htmAndroid系统迅速崛起,超越iOS和Symbian成为第一大智能设备操作系统,它的占有率还有迅速扩张的趋势,将有大量的多媒体设备采用这个系统,那么Android是否适合作为影音设备的操作系统使用呢?我们今天就来了解一下Android的音频架构。 Android 基于Linux,我们先来了解一下Linux的特点。Linux使用ALSA作为其音频架构,其全称Advanced Linux Sound Architecture,即高级Linux声音架构的意思,...
阅读全文
摘要:地址:http://blog.csdn.net/droidphone/article/details/6289712 声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢! 1. struct snd_card 1.1. snd_card是什么 snd_card可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在 snd_card的管理之下,声卡驱动的第一个动作通常就是创建一个snd_card结构体。正因为如此,本节中,我们也从 struct cnd_card开始吧。 ...
阅读全文
摘要:地址:http://blog.csdn.net/droidphone/article/details/6271122 声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢! 一. 概述 ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/。 在内核设备驱动层,ALSA提供了alsa-driver,同时在应用层,ALSA为我们提供了a...
阅读全文
摘要:地址:http://blog.chinaunix.net/uid-20776117-id-3080287.html 在Linux中,先后出现了音频设备的两种框架OSS和ALSA,本节将在介绍数字音频设备及音频设备硬件接口的基础上,展现OSS和ALSA驱动的结构。17.1~17.2节讲解了音频设备及PCM、IIS和AC97硬件接口。17.3节阐述了Linux OSS音频设备驱动的组成、mixer接口、dsp接口及用户空间编程方法。17.4节阐述了Linux ALSA音频设备驱动的组成、card和组件管理、PCM设备、control接口、AC97 API及用户空间编程方法。17.5节以S3...
阅读全文
摘要:地址:http://zhangwenxin82.blog.163.com/blog/static/114595956201171510512459/译者序:在开发Hust Online Judge的过程中,查阅了不少资料,关于调试器技术的资料在网上是很少,即便是UNIX编程巨著《UNIX环境高级编程》中,相关内容也不多,直到我在 http://www.linuxjournal.com上找到这篇文章,如获至宝,特翻译之,作为鄙人翻译技术文档的第一次尝试,必定会有不少蹩脚之 处,各位就将就一下吧,欢迎大力拍砖。 你想过怎么实现对系统调用的拦截吗?你尝试过通过改变系统调用的参数来愚弄你...
阅读全文
摘要:Vimer初成长,Vim + ctags + cscope 这个组合基本是每个Vimer的必备吧。虽然ctags已经足够强大,但是cscope可以做的更多。下面来分享下自己的vimrc脚本关于cscope 的一部分,该脚本可以实现在项目的任一子目录下,自动的向上查找cscope.out,并把他add进来。 首先来分享一个小脚本,可以帮助我们在项目中生成cscope.out 和ctags。 我把这个文件命名为cs.sh [java] view plaincopy#!/bin/shfind.-name"*.h"-o-name"*.c"-o-name"
阅读全文
摘要:大致浏览了下GDB源码,分析记录如下: 1. GDB与GCC等其他GNU工具以前,构成了程序开发调试不可缺少的一环. 2. GDBSERVER源码架构如下: a) Gdbserver代码简单,本身支持serial或tcp连接 b) 源码位于 gdb/gdbserver下 c) Server.c文件是入口文件 d) 编译配置 i. 主Makefile.in中,gdbserver依赖OBS,OBS依赖DEPFILES,DEPFILES=@GDBSERVER_DEPFILES@ ii. GDBSERVER_DEPFILES是configure传递的,configur...
阅读全文
摘要:1. 编译运行环境见http://www.cnblogs.com/linucos/archive/2013/03/01/2938517.htm2. 汇编例子 .data msg: .asciz "hello, world\n" .text .global main main: push {r0,r1,r2,lr} ldr r1, =msg @ address mov r0, #1 @ stdout mov r2, #13 @ length swi #0x900004 @ sys_write pop {r0,r1,r2,pc}3. 编译运行arm-linux-gnueabi.
阅读全文
摘要:地址:http://hi.baidu.com/mscyhll/item/45909bf655375d28743c4c84 一、ARM体系的CPU有以下7种工作模式:1、用户模式(usr):正常的程序执行状态2、快速中断模式(fiq):3、中断模式(irq):4、管理模式(svc):操作系统使用的保护模式5、系统模式(sys):运行具有特权的操作系统任务6、数据访问终止模式(abt):数据或指令预取终止时进入该模式7、未定义指令终止模式(und):未定义的指令执行时进入该模式注解:可以通过软件来进行模式切换,或者发生各类中断、异常时CPU自动进入相应的模式;除用户模式外,其余6种工作模式都属于.
阅读全文
摘要:注意,本说明只适用于ubuntu 12.04 unity 桌面版本,其他版本请酌情参考即可 安装vnc: sudo apt-get install vnc4server 运行服务端: 安装好后直接运行 vncserver 即可,更多参数可以参考man vncserver。首次运行要求设置密码,生成配置文件在~/.vnc目录下,无限root权限运行。 在另外一台电脑通过远程vnc可以链接到桌面: 例如:vncviewer 1.2.3.4:1 连接到远端桌面 配置问题: 默认配置文件~/.vnc/xstartup如下: #!/bin/sh # Uncomment the foll...
阅读全文
摘要:Ubuntu下设置VNCServer Virtual Network Computing(VNC)是进行远程桌面控制的一个软件。客户端的键盘输入和鼠标操作通过网络传输到远程服务器,控制服务器的操作。服务器的图形界面 通过网络传输会客户端显示给用户。给你的感觉就像直接在操作本地计算机一样,只是所有的程序和命令都是在服务器端执行。 1、打开一个Terminal window 2、下载 vnc4server : sudo apt-get install vnc4server 3、启动vnc4server: vnc4server 此时系统会提示你输入密码,在通过客户端链接时将会用到...
阅读全文
摘要:在外面调试程序,内网是调试程序必须的,而要上外网,又只有通过无线连接。不过发现这样有个问题,就是在笔记本的无线连上外网的时候,只要插上内网的网线,就发现qq一类的一律掉线,外网连接就不行了,网页也打不开。这样搞的比较麻烦,每次测试完程序,要手动拔掉网线,外网才能上。感觉这样的做法太麻烦了,能否内网和外网同时接入到笔记本,不用每次拔网线呢?于是在网上找了找资料,果然还找到了。其实是因为Windows默认路由设置的问题。Windows每次会默认把对所有IP的访问,指向以太网或者无线网的网关,当同时接入两个、或者多个连接时,这样的默认路由会有问题,需要我们手动修改一下。 需要通过route命令...
阅读全文
摘要:地址:http://www.cnblogs.com/kulin/archive/2012/07/27/Custom_UbuntuLiveCD_Remastersys.html这两天因为要做Ubuntu的平台移植,一直在给自己电脑上的Ubuntu系统装各种软件,其间几次将内核破坏,导致不得不重装系统,经过几次痛苦的等待,痛定思痛,决定试一试能不能将自己的Ubuntu系统定制好,制作成安装光盘。 经过在CSDN的一番寻找,终于找到了我要的方法,哈哈。在这里非常感谢软件的原作者,也是很佩服他,Remastersys是由他一个人写成的。 本方法主要是依靠名为Remastersys的工具,当然,据我猜.
阅读全文
摘要:地址:http://www.live-in.org/archives/789.html使用的版本为4.1.0。首先安装VirtualBox时两种Network组件都要选: Birdged Network Host-Only Network 安装完后,Windows宿主机多了一个“VirtualBox Host-Only Network”本地网卡,可以先在VirtualBox菜单File-Preferences-Network里删除Host-Only Network网卡。因为有的模式不使用这个网卡。 这里宿主机IP设为192.168.0.113,Linux虚拟机IP为192.168.0.1...
阅读全文
摘要:地址:http://www.cnblogs.com/zhangjiankun/archive/2011/12/08/2280097.html一、ELF Executable and linking format(ELF)文件是x86Linux系统下的一种常用目标文件(object file)格式,有三种主要类型: (1)适于连接的可重定位文件(relocatable file),可与其它目标文件一起创建可执行文件和共享目标文件。 (2)适于执行的可执行文件(executable file),用于提供程序的进程映像,加载的内存执行。 (3)共享目标文件(shared object fi...
阅读全文
摘要:地址:http://hi.baidu.com/xiaoyue1800/item/a11a2c4a26da4b04c11613d9arm-linux工具的功能如下:arm-linux-addr2line 把程序地址转换为文件名和行号。在命令行中给它一个地址和一个可执行文件名,它就会使用这个可执行文件的调试信息指出在给出的地址上是哪个文件以及行号。arm-linux-ar 建立、修改、提取归档文件。归档文件是包含多个文件内容的一个大文件,其结构保证了可以恢复原始文件内容。arm-linux-c++flit 连接器使用它来过滤 C++ 和 Java 符号,防止重载函数冲突。arm-linux-gp.
阅读全文
摘要:-------- 因果 所有事情都是有原因的。结果是表象,原因才是根本。学习的目的是找到为什么,而不仅仅关注看表象。 -------- 计算 - 人类需求 计算是人类生活需求的基础之一。计算往往隐藏在真正的需求背后,通信、社交、游戏、军事、科研等等,都需要计算来支撑。图灵机及类似的计算模型,可以被任意应用,使用任何合适的方式、材料和手段加以实现,实现之后成为工具,满足人来的计算需要。电子计算机是以电路为基础的计算工具。电路的基础是电。电听上去,总有种恐惧的气息在,因为时常听说触电,以及危险的雷电。-------- 电 - 电荷演的戏 电荷的运动形成电流。电荷受力不平衡导致电荷运动。电荷分...
阅读全文
摘要:1. 异常异常大家都知道,cpu不正常的时候,就是异常,什么时候不正常呢?除0,指令未定义,总线信号错,总之导致cpu无法工作的,都是异常.分类时,一般把中断的概念划分给为异常.2. 中断软件中断,硬件中断,等等,很好理解.3. 断点想要让cpu在制定的地址前,停下来,之后,看cpu的状态,程序的状态,是调试的需要。cpu支持断点,方法很多,指令里加断点bit;加断点软中断等.跟cpu有关,要硬件支持.4. 单步让cpu一步一步指令执行,执行一条指令后停止,类似于断点,但不是断点,不太可能所以的指令都加断点bit,插入断点中断是可能的。主要还是cpu支持,标记后,cpu在每条指令后异常即可..
阅读全文
摘要:In September, I introduced thetopic of the GNU debugger,gdb. 1 I discussed how itsremote debugging featurecould be used to debug coderunning in an embedded sys-tem connected to a PC by a serialcable, network connection, or someother means. While commercial prod-ucts with this capability are also ava
阅读全文
摘要:地址: http://davis.lbl.gov/Manuals/GDB/gdb_31.htm There may be occasions when you need to know something about the protocol--for example, if there is only one serial port to your target machine, you might want your program to do something special if it recognizes a packet meant for GDB. In the exam...
阅读全文
摘要:转载地址:http://www.cnblogs.com/heaad/archive/2010/07/17/1779829.htmlU-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能 Ø硬件设备初始化 Ø加载U-Boot第二阶段代码到RAM空间 Ø设置好栈 Ø跳转到第二阶段代码入口 (2)第二阶段的功能 Ø初始化本阶段使用的硬件设备 Ø检测系统内存映射 Ø将内核从Flash读取到RAM中 Ø为内核设置启动参数 Ø调用内核 1.1.1 U-Boot启动第一阶段代码分析 第一
阅读全文
摘要:转载地址:http://blog.sina.com.cn/s/blog_71ed04f70100qhxc.html gdbserver --debug --remote-debug /mount/hello Usage: gdbserver [OPTIONS] COMM PROG [ARGS ...] gdbserver [OPTIONS] --attach COMM PID gdbserver [OPTIONS] --multi COMM COMM may either be a tty device (for serial debugging), or HOST:PORT to...
阅读全文
摘要:转载地址:http://blog.chinaunix.net/uid-20769502-id-112445.html ARM 可以用两套指令集:ARM指令集和Thumb指令集。本文介绍ARM指令集。在介绍ARM指令集之前,先介绍指令的格式。1 指令格式 (1)基本格式 <opcode>{<cond>}{S} <Rd>,<Rn>{,<opcode2>} 其中,<>内的项是必须的,{}内的项是可选的,如<opcode>是指令助记符,是必须的,而{<cond>}为 指令执行条件,是可选的,如果不写则使用默
阅读全文
摘要:一. 基础环境 0. 安装virtualbox下载最新virtualbox (4.2),安装1. 安装ubuntu12.04下载ubuntu-12.04的dvd安装iso,搜索下载2. virtualbox安装ubuntu时候,分配100G,的动态盘3. 装好ubuntu后, 安装virtualbox增强功能,重启4. 设置共享文件夹,自动挂载+固定分配,重启5. sudo adduser xxx vboxsf,设置了用户加到vboxsf组,获取权限,重启6. 修改ubuntu源,网易很给力:deb http://mirrors.163.com/ubuntu/ precise main re.
阅读全文