- 博客(42)
- 资源 (3)
- 收藏
- 关注
转载 Git常用命令总结
Git常用命令总结git init 在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹. git clone 获取一个url对应的远程Git repo, 创建一个local copy. 一般的格式是git clone [url]. clo
2016-03-09 11:37:33
576
转载 程序员如何进阶(转载)
12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来了一些他的心得和经历,我在把他的
2014-08-13 16:34:54
709
原创 make[2]: *** [PreLink] 错误 126
Start to prepare rootfs image ...>>> Start to prelink... copy application/mslib/config etc... to rootfs>>> Prelinking... make[2]: *** [PreLink] 错误 126make[2]:正在离开目录 。。。。。。。。。。。make[1]: ***
2013-12-09 15:29:36
5790
原创 查看库文件编译时所使用的GCC版本号
可以使用如下命令来查看库文件编译时所使用的GCC版本:strings -a xxx.a | grep "GCC"
2013-10-30 10:34:25
6721
转载 GCC内联汇编
如果您是 Linux 内核的开发人员,您会发现自己经常要对与体系结构高度相关的功能进行编码或优化代码路径。您很可能是通过将汇编语言指令插入到 C 语句的中间(又称为内联汇编的一种方法)来执行这些任务的。让我们看一下 Linux 中内联汇编的特定用法。(注:内联汇编即嵌入汇编)GNU 汇编程序简述让我们首先看一下 Linux 中使用的基本汇编程序语法。GCC(用于 Linux 的 GNU
2012-01-09 20:17:37
2178
转载 mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’
编译FAAC-1.28时遇到错误:mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’解决方法:从123行开始修改此文件mpeg4ip.h,到129行结束。修改前:#ifdef __cplusplusextern "C" {#endifchar *strc
2012-01-08 21:47:37
8597
2
转载 市场安装提示空间不足的解决办法
****************现象****************在市场中安装部分程序提示空间不足无法安装****************原因****************市场下载的程序会首先下载到/cache/download下,受到/cache空间的限制,如果刷过修改的hboot,有的只有5M,原生G7只有40M,各种rom中的cache都不会特别大,加上其
2011-12-25 13:26:25
1316
原创 使用Google performance tools侦测Faad2性能
1 介绍1.1 Google performance toolsGoogle performance tools是google公司开发的一套用于C++Profile的工具集。其中包括:一个优化的内存管理算法—tcmalloc性能优于malloc。 一个用于CPU profile的工具,用于检测程序的性能热点,这个功能和gprof类似。一个用于堆检查工具,用于检测程序在是够有内存
2011-12-02 19:52:52
2332
转载 Mutex/Semphore/Binary Semphore的异同
Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把钥匙交给队列的第一个。一般的用法是用于串行化对critical section代码的访问,保证这段代码不会被并行的运行。 Semaphore是一件可以容纳N人的房间,如果人不满就可以进去,如果人满了,就要等待有
2011-10-18 19:40:11
704
原创 memmove与memcpy
void * __cdecl memcpy ( void * dst,const void * src,size_t count){ void * ret = dst; while (count--) {
2011-10-14 14:13:14
472
原创 C语言输出星型图案
程序如下:#include void main() { int i,j,n; printf("please input n:\n"); scanf("%d",&n); for(i=1;i { for(j=1;j
2011-10-14 13:30:43
7568
转载 float内存存储方式
任何数据在内存中都是以二进制(1或着0)顺序存储的,每一个1或着0被称为1位,而在x86CPU上一个字节是8位。比如一个16位(2字节)的 short int型变量的值是1156,那么它的二进制表达就是:00000100 10000100。由于Intel CPU的架构是Littl
2011-10-09 20:11:38
1004
转载 new/delete 和malloc/free 的区别
相同点:都可用于申请动态内存和释放内存不同点:(1)操作对象有所不同。malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行
2011-10-09 15:42:59
541
转载 C中的位段的使用
C语言: C中的位段的使用/* DATE : 2010.6.24 关于C中的位端igned或者int*/#include typedef struct _A{ unsigned a:4;//位段成员
2011-09-16 15:12:54
500
转载 const修饰符在c语言编程中的注意事项
const修饰符在c语言编程中的注意事项(转载)const 是一个C语言的关键字(修饰符),它的基本作用是限定一个变量不允许被改变。使用const在一定程度上可以提高程序的健壮性,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有
2011-09-08 16:23:13
643
转载 gettimeofday() -- 获取当前时间(保存在结构体timeval中)
#include #include #include int main(int argc, char * argv[]){ struct timeval tv; //(1) while(1){
2011-08-04 13:02:35
1005
转载 tar命令使用手册
tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-
2011-07-04 15:37:49
934
原创 Ubuntu 10.04 LTS 安装 sun-java6-jdk
Ubuntu 10.04 去除了 sun-java6-jdk,若要安装,在终端下键入:add-apt-repository "deb http://archive.canonical.com/ lucid partner"sudo apt-get updatesudo apt-get install sun-java6-jdk
2011-06-27 15:15:00
528
原创 多媒体工程师职位要求
职位要求: 1. 计算机,电子工程,或通信相关专业本科及以上学历 2. 精通C/C++,熟悉基本的数据结构算法 3. 有过Linux/Android手机平台开发经验优先 4. 熟悉Linux/Android音频体系(OSS、ALSA或者高通芯片音频系统) 5. 熟悉GStreamer(FFmpeg), OpenCore, Stagefright,Helix一种或多种多媒体框架 6. 熟悉各种音频编
2011-06-25 18:48:00
712
原创 建立NFS服务器
在嵌入式Linux开发的时候,常常需要使用NFS以方便程序的调试。使用NFS,用户可以将板子要用到的根文件系统放在主机目录下,开发板则通过以太网挂载到这个目录并将这个目录下的文件作为根文件系统的内容,这样用户的程序更新后不必重新烧写板子的根文件系统便能被重新使用,这点能够大大加快程序的调试。 Ubuntu下安装NFS服务器的步骤如下: 1.进行NFS服务器端与客户端的安装:ap
2011-06-10 09:44:00
1814
原创 程序、进程、线程区别与联系
<br /><br />定义:<br /> 一 程序只是一组指令的有序集合,<br /> 二 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位;<br /> 三 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),一个线程可以创建和撤销另一个线程;<br /> 一 进程与线程区别与联系<br /> (1) 划分尺度
2011-05-12 19:30:00
512
转载 三种方法:Linux动态库(.so)搜索路径
<br /><br />众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib。动态库被创建后,一般都复制到这两个目录中。当程序执行时需要某动态库,并且该 动 态库还未加载到内存中,则系统会自动到这两个默认搜索路径中去查找相应的动态库文件,然后加载该文件到内存中,这样程序就可以使用该动态库中的函数,以及 该动态库的其它资源了。在Linux 中,动态库的搜索路径除了默认的搜索路径外,还可以通过以下三种方法来指定。<br /> 方法一:在配置文件/etc/ld.so.conf中指定动态库搜索路径
2011-05-12 19:09:00
724
转载 linux typedef的四个用途和两个陷阱
用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量; 以下则可行: typedef char* PCHAR; // 一般用大写 PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针 虽然: char *pa, *pb; 也可行,但相对来说没有用typedef的形式直观,尤其在需要大量指针的地方,typedef的方式
2011-05-12 14:34:00
507
转载 Linux使用time命令获取命令执行时间
<br /><br /> Linux下time命令可以获取到一个程序的执行时间,包括程序的实际运行时间(real time),以及程序运行在用户态的时间(user time)和内核态的时间(sys time)。<br /> 它的使用方法和前面讲过的strace类似,在待执行的命令前加上time即可。<br />来看一个例子程序test.c<br /> #include<br /> int main()<br /> {<br /> FILE *fp = fopen("/tmp/te
2011-05-12 12:43:00
792
转载 嵌入式系统编程中的代码优化
<br />1 引言<br /> <br />在当前计算机技术高度发展的今天,嵌入式系统已经广泛地应用于工业控制、信息家电、办公自动化、移动通信、仪器仪表、医疗电子以及国防等领域。随着国内外各种嵌入式产品的进一步开发和推广,嵌入式技术越来越和人们的生活紧密结合。<br />嵌入式系统一般指非PC系统,通常完成一种或多种特定的计算机功能。它是以应用为中心,软硬件可裁减的,适应应用系统对功能,可靠性,成本,体积,功耗等综合性要求的专用计算机系统。简单的说类似于PC中的BIOS的工作方式,具有软件代码小、高度自动
2011-05-11 16:24:00
599
原创 C 编程之——寄存器赋值操作
在嵌入式硬件编程中,大多数情况下都是对相应硬件的功能寄存器进行设置和操作。一, 寄存器的设置和操作特性1,一个寄存器的每个位有其不同的意义,进行不同的设置会使硬件产生不同的效果和功能;2,有些情况下需要对一个寄存器进行连续的不同的甚至完全相反的设置;3,有些情况下需要对一个寄存器中的某一位或一位进行连续的不同的甚至完全相反的设置,而其余的位要保持不变;4,有时,对一个寄存器进行设置时,对其不同的位进行先后顺序不同的设置,即对
2011-05-05 09:35:00
5896
6
转载 循环缓冲区
循环缓冲区需要读端和写端2个指针来标定一块buffer,写端写到buffer的边界的时候,会跳到另一个边界继续写,直到写端指针和读端指针重合,这个时候缓冲区FULL状态,不可以再写,读端会一直读数据直到和写端指针重合,这个时候缓冲区为EMPTY状态,不可以再读。比如下面这段缓冲,存储了数字数据,r和w分别是读写指针|-------------------------------------------|1 2 3 4 5r w当读了2个数据
2011-05-04 21:27:00
1814
转载 Android2.3编译
1.安装JDK6对于Android2.3系统,不要安装JDK5,应该安装最新的JDK6。如果安装了JDK6,Android会自动按64位编译,如果系统是32位的,会有编译错误,后面会说如何修改这个错误。sudo apt-get install sun-java6-jdksudo update-java-alternatives -s java-6-sun安装完后,需要手动设置JAVA_HOME, JRE_HOME, CLASS_PATH为JDK6的安装路径。2. 安装各种包$ sudo aptitude i
2011-05-03 08:51:00
2674
转载 PKG_CONFIG_PATH变量 与 ld.so.conf 文件
<br /><br />文章来自:http://hi.baidu.com/dexinmeng/blog/item/5512cf018b8941d5277fb571.html<br /><br />一、编译和连接<br /> 一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径的 不同,造成了用 -I 参数指定的头
2011-03-25 00:33:00
617
转载 dd命令的高级应用
dd是Linux上的一个常用的命令。 例如:dd if=/1.txt of=/tmp/2.txt (其中, if代表input file;of代表output file, 命令的结果就是将根目录下的1.txt的内容拷贝到/tmp目录的的2.txt。) 当然,如果只是用dd做这样的事情显然大材小用了,因为cp可以干同样的事情,而且更简单。 下面就介绍一下dd的“高级”应用:(一)直接读写闪存 在嵌入式系统中,经常需要测试系统文件读写的性能,如果想绕过文件系统(文件系统一般都有自
2011-03-08 09:55:00
8353
原创 编译错误"/usr/bin/ld: cannot find -lz"
<br />编译的时候出现"/usr/bin/ld: cannot find -lz"错误,需要安装zlib-dev这个包,在线安装命令为:apt-get install zlib1g-dev。
2011-01-07 09:37:00
44154
8
转载 nm基本用法
<br />对于每一个符号,nm列出其值(the symbol value),类型(the symbol type)和其名字(the symbol name)。<br /> <br />符号类型说明A该符号的值是绝对的,在以后的链接过程中,不允许进行改变。这样的符号值,常常出现在中断向量表中,例如用符号来表示各个中断向量函数在中断向量表中的位置。B该符号的值出现在非初始化数据段(bss)中。例如,在一个文件中定义全局static int test。则该符号test的类型为b,位于bss section中。其
2010-12-09 11:29:00
1216
转载 Android下的PVPlayer的实现
<br />我们知道,MediaPlayerInterface接口是Android框架中承上启下的关键接口,Android下面几个播放器都是冲这个接口派生过来的,前面在写flac的时候已经基本看了一些关于OGG player的相关东西,但是那个只是音频,还没有涉及到视频,下面简单的介绍一下其中最复杂的PVPlayer<br /><br />class PVPlayer : public MediaPlayerInterface<br />{<br />public:<br />PVPlayer();<br
2010-11-25 09:55:00
1044
原创 Ubuntu下安装KDE
Ubuntu的桌面默认是Gnome的,早听说KDE很华丽,今天闲来无事,就试着装装看,看看到底有多华丽...1.安装KDE桌面命令sudo apt-get install kubuntu-desktop 注销 Ctrl+Alt+Backspace 2.设置中文环境sudo apt-get install language-pack-kde-zh language-pack-kde-zh-base language-pack-zh language-pack-zh-base language-support-
2010-09-29 17:00:00
579
转载 简单工程Makefile的自动生成
<br />工程Makefile的编写,可以自己动手来写,也可以使用automake等工具来自动生成。下面还是以sort工程为例,对自动生成Makefle进行示例说明。<br /> <br />预备知识:<br /> 运用GNU Autoconf 及 Automake 这两套工具,可以自动生成Makefile文件,并且让开发出来的软件可以像大多数源码包那样,只需"./configure", "make","make install" 就可以把程序安装到系统中。<br /> autoconf是一个
2010-09-15 15:00:00
663
原创 GStreamer下的音视频播放
Gst-launch命令:gst-launch filesrc location=*.* ! demux name=demux demux.video_00 ! queue ! decoder ! ffmpegcolorspace ! videoscale ! ximagesink (注:蓝色部分为根据具体编码格式从下表中选取替换,注意demux是根据容器格式选取的,下表中只是列出了此编码格式较常见的视频封装容器的demux,对于其它demux可参照注2中的表进行查询。输出sink还可以选取其它,如xvim
2010-09-09 10:47:00
7893
转载 Printf()输出格式控制
<br />1.转换说明符<br /> %a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)<br /> %c 字符<br /> %d 有符号十进制整数<br /> %f 浮点数(包括float和doulbe)<br /> %e(%E) 浮点数指数输出[e-(E-)记数法]<br /> %g(%G) 浮点数不显无意义的零"0"<br />
2010-09-08 10:54:00
677
原创 libtool: link: only absolute run-paths are allowed
<br />今天在交叉编译Bellagio时,当编译到“libomxil-bellagio-0.9.2.1/src/components”下的三个component,即audio_effects、clocksrc以及videoscheduler时,总是报错:“libtool: link: only absolute run-paths are allowed”,google了一下,参考几个版本的解决方法,最终解决方案是:<br />分别修改这三个component下的makefile文件,修改方法(以aud
2010-09-07 16:18:00
5004
原创 Ubuntu下允许Root用户直接登录图形界面
Ubuntu安装后,root用户默认是被锁定了的,不允许登录,也不允许“su”到 root。虽然这样的设置使安全性更高一些,但对于开发者来说就显得很不方便了。如何让Ubuntu允许root用户直接登录GUI呢,以下是设置步骤(本文以Ubuntu10为例):◆允许 su 到 root 非常简单,下面是设置的方法: yym@ubuntu:~$ sudo passwd Password: Enter new UNIX password: Retype new UNIX password: passwd:已成功更新
2010-09-07 01:30:00
8429
转载 Framebuffer原理
Framebuffer Driver 中文名为:帧缓冲驱动 一、FrameBuffer的原理 FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口。 Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。Framebuffer机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过Framebuffer的读写直接对显存进行操作。用户可以将Frameb
2010-09-06 20:48:00
627
Ahead AAC Decoder library documentation
2010-09-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人