玩笑joker
码龄16年
求更新 关注
提问 私信
  • 博客:298,764
    298,764
    总访问量
  • 59
    原创
  • 160
    粉丝
  • 135
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:宁夏
加入CSDN时间: 2009-03-01

个人简介:码农一只!~

博客简介:

玩笑的博客

博客描述:
I‘m a coder!
查看详细资料
个人成就
  • 获得28次点赞
  • 内容获得71次评论
  • 获得123次收藏
  • 博客总排名1,334,692名
创作历程
  • 5篇
    2011年
  • 61篇
    2010年
  • 17篇
    2009年
成就勋章
TA的专栏
  • ARM
    1篇
  • C/C++/数据结构/算法
    8篇
  • codec
  • Linux内核
    1篇
  • Linux编程
    12篇
  • Linux驱动
    4篇
  • 开发工具
    6篇
  • 网络编程
    3篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

创作活动更多

『技术文档』写作方法征文挑战赛

在技术的浩瀚海洋中,一份优秀的技术文档宛如精准的航海图。它是知识传承的载体,是团队协作的桥梁,更是产品成功的幕后英雄。然而,打造这样一份出色的技术文档并非易事。你是否在为如何清晰阐释复杂技术而苦恼?是否纠结于文档结构与内容的完美融合?无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

55人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

线程加锁两次-死锁问题实验

    今天遇到了这个问题,晚上回来写个例子试试,试试证明还是会死锁的。一个不同线程分别加锁的例子,这种情况是不会死锁的。#include #include pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;int count = 0;void * thread_func_one(void *arg){ int i; for(i=0;i
原创
发布博客 2011.03.18 ·
14521 阅读 ·
2 点赞 ·
4 评论 ·
4 收藏

Linux音频编码的采样率模拟实现


    音频采样率一般来说都是由硬件决定的,但是某些操作系统的内核只提供最大某些固定的采样率,比如最大只有16KHz,这样我们需要用软件模拟的方式将采样率升高成原来的一般,但是这种方式可能并不能提高音质或者声音的精细度,不过工程师的任务就是尽可能的完成一些技术指标或者客户需求。这里简单记录以下:
 
16K采样率转8K采样率,即降采样处理:
Linux音频编码的就是把/dev/dsp下的音频数据采集到应用层来,拷贝到一块内存里,然后进行音频编码,G722,G711,
原创
发布博客 2011.03.08 ·
3074 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Linux 设备驱动之 ioctl小试牛刀(2)


    ioctl小试牛刀(1)的进阶笔记,该底层ioctl处理通过移位的方式可以控制所有的寄存器!~
 
main.c 上层应用测试代码
#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <linux/ioctl.h>#include "../ioctl_c.h"GPIO_D
原创
发布博客 2011.03.05 ·
1444 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux 设备驱动之 ioctl 小试牛刀(1)

    ioctl是广大人民群众喜闻乐见的函数之一,这里略作笔记,把以前写的代码整理以下。应用测试程序main.c#include #include #include #include #include #include #include "../ioctl_c.h"GPIO_Data_S led_ctl;int main(int argc, char **argv){ int testdev = 0; int i = 0; int erro = 0; c
原创
发布博客 2011.03.04 ·
1642 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

motion源代码解析


    很久没有更新blog,这样不好,工作之后仍然需要不断的学习新的技术,工作外的技术等等……
    motion是一个基于Linux平台的开源项目,其功能是检测视频流中的画面运动,类似于移动侦测。整个项目只有30多个文件,非常小巧。据说axis这个网络摄像机的大牌厂商也使用该算法处理。所有我也需要啃一啃才行啊~!   
    程序的入口是在motion.c中的main函数
/** * main * * Main entry point of
原创
发布博客 2011.01.06 ·
4480 阅读 ·
0 点赞 ·
4 评论 ·
5 收藏

关于VMware虚拟机在笔记本上主板响声的解决


    DELL笔记本,每次VMware装了Linux虚拟机后,在终端敲错东西的时候就会发出很大的响声,这个不是声卡的声音,而是主板在响。解决方法就是在Linux中
   vim /etc/inputrc 
    然后将#set bell-style none 前面的#去掉,即把注释关掉,然后重启虚拟机即可!
原创
发布博客 2010.11.19 ·
2336 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ioctl VIDIOC_REQBUFS

名称    VIDIOC_REQBUFS—开启内存映射或用户指针I/O梗概    int ioctl(int fd, int request, struct v4l2_requestbuffers *argp);参数 fd     open()返回的文件描述符 request    VIDIOC_REQBUFS argp描述    这个ioctl用于初始化内存映射或者用户指针IO,内存映射缓冲区由设备内存分配而且必须在应用程序地址空间分配之前由ioctl分配。用户空间的缓冲区由用户层自己分配,这个ioctl
翻译
发布博客 2010.09.14 ·
11520 阅读 ·
0 点赞 ·
1 评论 ·
4 收藏

Linux串口参数设置


在Linux中man串口有关的信息,在以下链接中http://www.9linux.com/tcgetattr.html

termios,  tcgetattr,  tcsetattr,  tcsendbreak,  tcdrain,  tcflush,  tcflow,  cfmakeraw,  cfgetospeed,cfgetispeed, cfsetispeed, cfsetospeed, cfsetspeed - 这些函数都是获取或者设置串口属性,控制线,获取和设
原创
发布博客 2010.08.25 ·
1595 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用gettimeofday实现精确计时功能


    gettimeofday的man说明:
 GETTIMEOFDAY(2)            Linux Programmer's Manual           GETTIMEOFDAY(2)NAME       gettimeofday, settimeofday - get / set timeSYNOPSIS       #include <sys/time.h>       int gettimeofday(struct timeval *tv, struct t
原创
发布博客 2010.08.08 ·
5112 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Ubuntu error:unkown command keystatus 解决方法



Ubuntu对 wubi安装一向不重视,但是以前9.04 9.10升级后wubi安装的还不能进图形界面。
 
这次Ubuntu 10.04安装好后启动ubuntu会出现 error:unkown command keystatus 的错误 具体原因不知道 直接看Ubuntu的引导文件
 
终端输入 sudo gedit /boot/grub/grub.cfg
 
然后删掉
 
if [ ${timeout
转载
发布博客 2010.08.06 ·
3089 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux设备驱动之《玩转GPIO》

    在Linux设备驱动之《点亮一盏LED》中,编写了ioctl_c.h这样的头文件,在本文中将继续使用这一头文件,代码如下:#ifndef __IOCTL_C_H__#define __IOCTL_C_H__typedef struct GPIO_Data_t{ unsigned int port; unsigned int bit; unsigned int value; unsigned int v;}GPIO_Data_S;#define GPIO_I
原创
发布博客 2010.06.25 ·
2094 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

ubuntu下删除菜单图标


方法一:直接在终端输入命令alacarte。可以任意增、改、隐藏、显示菜单,但无法删除菜单,即使拥有root权限。

方法二:注意几个目录和文件。

/usr/share/applications/下的desktop文件
/usr/share/applications/mimeinfo.cache文件
~/.local/share/applications下的desktop文件
转载
发布博客 2010.06.17 ·
4473 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Ubuntu 几种常见乱码解决方法


 
Ubuntu几种常见乱码解决方法
本文非原创,因在网上看到这篇文章非常好,故拿来和大家分享,要查看原文请看missfall的网易博客:http://coolwinding.blog.163.com/blog/static/112240939200975431027/
网上有许多关于ubuntu中乱码的解决方法,有些很好,有些转载却有很多错误,在此,结合自己的亲身体验,总结各种方法并修改,希望对你有所帮助。
 
 
一
转载
发布博客 2010.06.17 ·
2481 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

Linux设备驱动之《点亮一盏LED》

    接着上一篇字符设备驱动编写继续,GPIO就是General Purpose Input Output GPIO (通用输入/输出)的意思,这里本人使用的开发板核心板为三星的s3c2440,非常普及的板,相信做ARM嵌入式的童鞋们一定都听说过的。   如果玩过单片机那么对于ARM控制GPIO来说应该不会很陌生,上手比较容易,对于硬件的操作无非就是高低电平和寄存器的操作,所以对于ARM也是一样的。这里简单的介绍一个控制开发板上led的简单例子,对于硬件操作能有一定的基础概念和操
原创
发布博客 2010.06.15 ·
2515 阅读 ·
1 点赞 ·
3 评论 ·
1 收藏

Linux设备驱动之《字符设备驱动》

    Linux设备中最大的特点就是设备操作犹如文件操作一般,在应用层看来,硬件设备只是一个设备文件。应用程序可以像操作文件一样对硬件设备进行操作,如open(),close(),read(),write()等。    下面是一个字符设备驱动程序的简单实现test.c    #include #include #include #include #include #include #include #include #include #include #includ
原创
发布博客 2010.06.14 ·
1288 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

Linux设备驱动之《构造和运行模块》


    下面的代码是一个完整的最简单的“hello world”模块
    C代码名称hello.c
#include <linux/init.h>#include <linux/module.h>/* 告知内核该模块带有自由许可证 否则会报错*/MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk(KERN_ALERT "Hello,world/n"); print
原创
发布博客 2010.06.13 ·
1343 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux环境编程之进程间通信


    进程间通信顾名思义就是进程之间的通信机制,英文简称IPC,进程见通信主要有一下几种方式:
    信号(signal):亲缘进程和非亲缘进程都可以, 也可以进程自己给自己递送信号。
    信号量(semaphore):主要是线程间和亲缘进程间的同步手段,不做数据传输之用。
    命名信号量:可以在非亲缘进程间使用。
    管道:只允许亲缘进程间的通讯。
    命名管道(FIFO):除了亲缘进程可以通讯外,非亲缘进程
原创
发布博客 2010.06.12 ·
1886 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

Linux环境编程之信号

    信号的概念    信号是软件中断。它即可以作为进程间通信的一种机制,更重要的是,信号总是中断一个进程的正常运行,它更多地被用于处理一些非正常情况。信号是异步的,进程并不知道信号什么时候到达。进程既可以处理信号,也可以发送信号给特定进程。每个信号都有一个名字,这些名字都以SIG开头。例如:SIGABRT是进程异常终止信号。    信号的来源    硬件异常产生信号:除数为0、无效的存储访问等等。这些条件通常由硬件检测到,并将其通知内核。然后内核为该条件发生时正在运行的进程产生适当的信号。软件产生异常信
原创
发布博客 2010.06.10 ·
2148 阅读 ·
0 点赞 ·
1 评论 ·
7 收藏

Linux环境编程之多线程

可以认为一个进程就是只有一个线程的模型,那么多线程就是一个进程中有多个线程。下图很明显的说明了一个进程和线程的区别。多线程的代码段,数据段,文件描述符都是共享的,但是他们却有相互独立的寄存器和•堆。    • 下面介绍线程中常用的函数,pthread大概有60多个函数,包括线程的创建、终止等。Linux中实现了pthread线程库,Unix/Widows中也有pthread的实现。 Linux中使用pthead方法为:头文件加上#include ,在编译的时候要手动链接线程库,例如gcc main.c –
原创
发布博客 2010.06.08 ·
1525 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux环境编程之进程


    一.概念
    什么是进程,什么是程序。这个在操作系统的书籍上有很多种阐述。程序是一个包含可执行代码的文件,它放在磁盘等介质上。当程序被操作系统装载到内存并分配给它一定资源后,此时可称为进程。为方便操作系统管理,每个进程都会有一个唯一的非负整数编号。程序是一个静态概念,进程是一个动态概念。
 
    理解进程之前先了解一下什么是用户空间和内核空间,我们知道32位系统最大的寻址空间是4G,在Linux系统中,0~3G为用户空间,3~4G为内核空间,当进程陷
原创
发布博客 2010.06.06 ·
1266 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多