![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux/嵌入式
seanyxie
谢思源的个人博客
展开
-
Linux的冒险位和强制位
<br />QT应用程序中按钮槽中在根目录下创建了一个文件,然后向里面write,然后通过命令行查看该文件,却发现该文件具有我们平时所见不到的权限,S和T权限,如图<br /><br /> <br />查资料,发现这两个权限代表的是冒险位和强制位<br /> <br />他们的详细介绍如下:<br /> <br />除了读写执行权限以外,ext3文件系统还支持强制位(setuid 和setgid)与冒险位(sticky)的特别权限针对u,g,o,分别有set uid,set gid,及sticky强制位与冒原创 2010-06-26 17:40:00 · 1751 阅读 · 0 评论 -
MP3文件格式解析
<br />最近做的一个项目,移植libmad到micro2440上,使用QT写一个界面,来作为madplay的前端,播放mp3,关于libmad的介绍就不多说了,还有madplay,一直没有办法获取歌曲的时间长度,刚开始想到了使用开源的库taglib或者libid3tag,后来taglib没有移植成功,放弃了移植库的这个想法,然后找资料去了解MP3的文件格式,自己来计算时间长度,下面是找到的关于MP3文件格式的资料<br />总体来讲就是<br />时间=文件长度/每帧长度*0.026s<br />每帧长转载 2010-12-26 13:36:00 · 5053 阅读 · 1 评论 -
Linux安装madplay以及设置共享库连接
首先再在所需的四个文件,分别是zlib-1.2.3.tar.gzlibid3tag-0.15.1b.tar.gz ,用来获取媒体文件的tag,保存了一些曲目信息libmad-0.15.1b.tar.gz ,解码库madplay-0.15.2b.tar.gz ,应用程序源码包按照上面的顺序进行解压缩,源码包就到网上下载好了,我这里也有~~Mkdir /root/Qtmp3tar –xzvf libid3tag-0.15.1b.tar.gz –C /root/Qtmp3tar –xzvf libmad-0.1原创 2010-12-20 19:06:00 · 2752 阅读 · 1 评论 -
ps输出进程状态
<br />PROCESS STATE CODES<br />Here are the different values that the s, stat and state output specifiers<br />(header "STAT" or "S") will display to describe the state of a process.<br />D Uninterruptible sleep (usually IO)<br />R Running or runnabl原创 2010-09-23 14:17:00 · 1683 阅读 · 0 评论 -
编译内核错误解决
<br />一晚上在忙着编译内核,总是报错,出现想,没有规则创建****.o需要****.c文件,这样的错误<br /><br />这时候我们需要找到这个****.c文件在内核编译菜单的位置,首先应该在对应的路径下找到Makefile文件,查看****.o文件对应的菜单config是什么,如图<br /><br />然后到Kconfig里面找到对应的config选项所对应的菜单名字是什么,<br /><br />然后通过最原始,例如net目录的Kconfig文件找到该菜单在哪里,然后修改了该选项,就可以了重原创 2010-06-23 01:42:00 · 1873 阅读 · 0 评论 -
proc文件系统
<br />今天是端午节,本来想些点东西,可最近压力太大了,连msn 的blog都没有时间写,学习的时候,可以坐在那里一天不站起来,可以熬几个通宵,可是代码隔上四五天不写,就会颓废掉,再写的话感觉要找上好半天,甚至都不想学,马上要考试了,总共八门,我都没有怎么看~~~<br />晚上一起出去吃饭,世界杯让瑾璠疯掉了,三句话不离狗字,让老徐NC了,各种的无奈...想想我还是好点的,写点东西吧,这个时候了,凌晨了,最近学到了Linux内核,今天下午刚好看到了proc文件系统,散文写不下去了,就写个程序来纪念下我原创 2010-06-16 01:37:00 · 2239 阅读 · 0 评论 -
QTcreator编译出错
作为移植性很好的QT图形开发工具,他支持windows,linux,FBS,macos,Symbian等OS,在windows下的QT程序在安装了QTcreator后很快就编译出来了,可是在我的redhat enterprise5 安装后,一个hello,world!却报错了错误如下:undefined reference to 'FcFreeTypeQueryFace'乍一看以为是环境没有配置好,可是设置了库和头文件的路径后,仍旧是这个错误从昨天开始到现在,整三十多个小时,自己将QT的Manuel看了一通原创 2010-06-18 16:35:00 · 2549 阅读 · 1 评论 -
linux内核模块编程
<br />主题: linux内核模块的程序结构--模块加载函数(必须),模块卸载函数(必须),模块许可证声明(必须),模块参数(可选),模块导出符号(可选),模块作者的等信息声明(可选)一个linux内核模块主要由以下几个部分组成。<br />1、模块加载函数"用module_init()来指定"(必须)<br /> 当通过insmod和modprobe命令加载内核模块时,模块的加载函数会自动被内核执行,完成本模块的相关初始化工作。<br />linux模块加载函数一般以 __init表示声明。典型声转载 2010-06-14 11:42:00 · 1737 阅读 · 0 评论 -
settimer()函数和alarm()函数
unsigned int alarm(unsigned int seconds)函数,用来定时,当到达定时的时间后,内核会发送SIGALRM信号给进程,如果进程忽略该信号,该进程会终止,也可以自己定义SIGALRM信号的处理函数,当然是用的是signal()函数void (*signal)(int signo, void (*func)(int)))(int );signo 指定要处理的信号,信号处理函数void func(),当要处理多个信号时候,func(int sig)用sig参数传进信号,在func原创 2010-06-13 14:15:00 · 12133 阅读 · 1 评论 -
编译Linux内核
<br />在源代码的目录下,有一个配置文件,.config文件,可以使用默认的,也可以使用<br />命令清除,然后重新配置内文配置文件,把/boot/下的配置文件拿来修改使用,或者在源代码下/arch/平台下<br />选择相应的配置文件,然后再这个基础上来配置自己的内核<br /><br />1、make distclean 清除一些临时文件,也可以使用make clean和make mrproper<br /> distclean是彻底的清除,就是清除的更彻底,其次是mrproper<br /原创 2010-06-10 23:50:00 · 1477 阅读 · 0 评论 -
浅谈Linux内核和CPU架构
Linux由用户空间和内核两部分组成,之所以有这两部分构成,我想应该是由于考虑CPU体系结构嵌入式ARM处理器有七种工作状态,分别是用户模式、快速中断、外部中断、管理模式、数据访问终止模式、系统模式和为定义指令模式,而X86体系结构的CPU则有RING0~RING3 四种工作模式,这些工作模式是有权限限制的,例如在访问IO设备上Linux利用CPU这中架构,用户空间和内核空间分别工作在不同的模式下,X86体系上,用户代码工作在RING3,而内核代码则工作中在RING0上如果想切换工作状态,可以通过系统调用和原创 2010-06-09 00:04:00 · 3181 阅读 · 1 评论 -
调用并产生守护进程来后台工作
程序如下:守护进程.c#include#include#include#include#include#include#include//deamon function turn thr process who get it into a deamon progressvoid deamon(){ pid_t pid; int fd; pid=fork(); if(pid { p原创 2010-05-29 00:37:00 · 1350 阅读 · 2 评论 -
linux并发服务器
原创 转载请注明 我们知道linux的UDP是面向无连接的,但是TCP是面向连接,所以UDP服务器可以并发处理,但是TCP由于是面向连接,一次通信只能和一个客户端相连,所以要想实现并发处理,可以使用fork()创建子进程来实现,编程模式如下: 服务端:#include #include #include #include #include #include #i原创 2010-05-11 21:00:00 · 2189 阅读 · 0 评论 -
vim配置C、C++高亮显示
一、首先,确认你的linux系统是否安装了功能完整的且足够新的vim。比如你用的是RedHat(Fedora),请确定安装了vim-enhance的rpm包。以下命令将对你有所帮助。查看系统中已经安装的vim组件(后三行为示例输出,已经安装了完整的vim):# rpm -qa|grep vimvim-enhanced-7.1.12-1.fc7vim-common-7.1.12-1.fc7vim-minimal-7.0.235-1.fc7安装vim-enhanced:# y原创 2010-07-01 18:45:00 · 7794 阅读 · 0 评论 -
嵌入式Linux内核模块的移植
<br />一个在X86上的Linux,如果要编写了一个内核模块,我们可以按照下满的Makefile格式来写,然后生成了.ko文件,insmod就可以了<br />原文件是opps.c<br /> <br />ifneq ($(KERNELRELEASE),)<br />obj-m := opps.o<br />else<br /> <br />KDIR := /lib/modules/2.6.18-53.el5/build<br />all:<br /> make -C $(KDIR) M=$(PWD)原创 2010-06-29 20:06:00 · 1747 阅读 · 0 评论 -
Linux修改用户组
<br />usermod -g group loginname <br />强行设置某个用户所在组<br /><br /><br />usermod -G groups loginname<br />把某个用户改为 group(s) <br /><br />usermod -a -G groups loginname<br />把用户添加进入某个组(s)<br />原创 2010-11-30 21:22:00 · 37035 阅读 · 0 评论