Linux
xiaowen_10
这个作者很懒,什么都没留下…
展开
-
Linux 内核的WorkQueues API做了修改 work_struct变动原因
原文源自:http://blog.chinaunix.net/space.php?uid=14163325&do=blog&cuid=1388772WorkQueue机制允许内核代码在晚一点的时间执行。Workqueue通过存在的一个或者多个专门的进程实现,去执行队列工作。因为在进程的上下文汇总执行,因此如果需要,其可以sleep。WorkQueue也可以延迟特定时间执行工作。所以它们在内转载 2012-10-08 13:33:32 · 863 阅读 · 0 评论 -
ldd3 所有错误修改补订 基于linux-2.6.35
ldd3 examples patch under linux-2.6.35源自于:http://ubuntuforums.org/showthread.php?t=1643858Only in ldd3_examples_Linux-2.6.35/: ldd3_examples_Linux-2.6.35.patchdiff -crb examples//lddbus/lddb转载 2012-10-16 20:41:07 · 1873 阅读 · 1 评论 -
Ubuntu C语言检测内存泄漏
检测内存泄漏需利用工具Valgrind,源码下载地址为:http://www.valgrind.org/downloads/current.html#current其.deb相应版本的下载地址:http://pkgs.org/download/valgrind测试的例子:#include void f(void){ int* x = malloc(10 *转载 2013-04-02 20:59:39 · 942 阅读 · 0 评论 -
linux下bmp转化为jpeg程序源代码, jpeg图片压缩
文章源于:http://blog.chinaunix.net/uid-26544753-id-3049279.html前一段时间做了一个项目,项目中有一部分是关于图像采集的,相关硬件有:高速数字相机(我们采用Basler A312f),工控机,服务器。其中相机通过1394视频线连接到工控机的1394视频卡上,工控机与服务器通过百兆网连接。具体工作流程为:工控机控制 相机采集图像,帧率一般为转载 2013-04-06 11:21:42 · 2061 阅读 · 0 评论 -
Ubuntu 回收站 位置(处理回收站不能打开问题)
不知怎么回事,自己ubuntu的回收站突然不能打开了,最后在系统查看删除的文件,惊喜的发现回收站的位置!如果回收站打不开了,直接可以用命令: cp .local/share/Trash/files/delete_files destinotion原创 2013-04-14 11:39:38 · 5540 阅读 · 0 评论 -
利用Vim打造自己的IDE环境, vim超级棒的插件
1 Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重要啊, 估计很多人就是卡在这个门槛上了, "工欲善其事, 必先利其器"嘛, 我想如果有一个很好用的IDE, 那些Linux牛人也会欢迎的. 这都是劳动人民的美好愿望罢了, 我今转载 2013-03-03 18:57:03 · 498 阅读 · 0 评论 -
linux中的likely和unlikely
源自:http://blog.21ic.com/user1/5593/archives/2010/68193.html在linux中判断语句经常会看到likely和unlikely,例如:if(likely(value)){}else{}简单从表面上看if(likely(value)) == if(value),if(unlikely(value)) == if(val转载 2012-10-17 08:32:07 · 844 阅读 · 0 评论 -
Linux 生成可以调试的动态库(单步调试)
gdb 单步调试动态库.原创 2015-04-17 16:11:49 · 1699 阅读 · 0 评论 -
生成支持32位和64位静态库
我们在类UNIX平台下,编译32位或64位程序时,会分别使用对应的库,32位或者64位库(使用file命令查看),下面说一下如何生成一个库,支持32位和64位平台。 以下是库文件:test_a.c #include <stdio.h> int list(char*a) { printf("I am a lib\n"); return 0; }下面将源文件编译成支持32位和64原创 2015-07-06 17:41:12 · 3096 阅读 · 0 评论 -
printf 动态适配终端大小对齐显示输出
自适配终端大小,使用printf 对齐显示不定长内容原创 2016-10-15 14:40:25 · 1621 阅读 · 0 评论 -
动态获得Linux终端的大小(尺寸)
根据信号量,动态的获得当前终端的大小原创 2016-11-07 18:00:29 · 2676 阅读 · 0 评论 -
信号处理函数-malloc 线程死锁
信号处理函数中,使用malloc导致进程阻塞原创 2016-11-22 15:09:05 · 3010 阅读 · 2 评论 -
程序不产生gmon.out的原因
使用gprof优化程序,但是程序不产生gmon.out文件原创 2017-03-10 13:29:32 · 4011 阅读 · 0 评论 -
APP Store审核失败因为references non-public symbols
app store提示The app references non-public symbols in bandu: _getcontext, _makecontext, _setcontext,解决方案原创 2017-05-06 09:41:26 · 3024 阅读 · 3 评论 -
Linux启动时显示Grub命令行及修改
linux修复引导菜单,出现grub命令提示符,使用命令进入系统。原创 2015-01-17 21:17:55 · 31592 阅读 · 2 评论 -
异步信号(用户空间与内核空间的实现)详细解析
文章源自:http://bbs.chinaunix.net/thread-3567889-1-1.html用户空间相应的API函数及用法:http://linux.chinaunix.net/docs/2006-10-11/2870.shtml使用信号可以实现设备驱动与用户程序之间的异步通知。为达到此目的: 1. 用户空间需要设置设备文件的拥有者、FASYNC标志及捕获转载 2012-10-18 20:03:57 · 1047 阅读 · 0 评论 -
内核list链表的实现
源自:http://hi.baidu.com/itaolei/item/e562ce90cb97201e924f4197list的数据结构定义/* *双链表 */struct list_head { struct list_head * next, ** prev; };或许我们比较习惯如下的形式struct list_head { struct lis转载 2012-09-24 22:41:52 · 485 阅读 · 0 评论 -
记录生命周期的kref
源自于:http://blog.csdn.net/jeffreyst/article/details/7913132kref是一个引用计数器,它被嵌套进其它的结构中,记录所嵌套结构的引用计数,并在计数清零时调用相应的清理函数。kref的原理和实现都非常简单,但要想用好却不容易,或者说kref被创建就是为了跟踪复杂情况下地结构引用销毁情况。所以这里先介绍kref的实现,再介绍其使用规则。转载 2012-10-09 11:26:27 · 499 阅读 · 0 评论 -
list_for_each_entry和list_for_each_entry_safe
/** * list_for_each_entry - iterate over list of given type * @pos: the type * to use as a loop cursor. * @head: the head for your list. * @member: the name of the list转载 2012-09-19 09:33:10 · 6232 阅读 · 0 评论 -
cs8900的物理io为0x19000000的原因
说明在初始化以太网接口控制器时出错,没有找到你的CS8900A,应该是硬件还有问题,或是地址不对.你可以先尝试去读cs8900a的ID,正确的应该是630e.如果有仿真器直接在仿真器下读看结果,没有就在系统中添加打印信息,将读取的ID打印出来。19.1 CS8900A调试步骤1.检查网络的物理连接。用交叉网线将目标板于PC机相联,此时目标板和PC机的以太网连接指示灯(LIN转载 2012-09-21 13:42:50 · 718 阅读 · 0 评论 -
网络驱动程序 各个函数详解及图解 DM9000A网卡驱动框架源码分析
本文源自:http://www.linuxidc.com/Linux/2011-06/37493p2.htm首先分析一下Linux网络设备的结构,如下图:网络协议接口层向网络层协议提供提供统一的数据包收发接口,不论上层协议为ARP还是IP,都通过dev_queue_xmit()函数发送数据,并通过netif_rx()函数接受数据。这一层的存在使得上层协议独立于具体的设备。转载 2012-10-15 10:20:08 · 1716 阅读 · 0 评论 -
seq_lock的典型应用及内幕
源自:http://www.2cto.com/kf/201106/92967.html1 Overview Linux内核中常见的同步机制有Atomic Operation,Spin Locks,Semaphore,Mutex等。其中Spin Locks和Semaphore都支持读/写锁。此外,Linux内核还支持一种更轻量级的读/写锁定机制:Sequential Loc转载 2012-09-23 22:19:45 · 703 阅读 · 0 评论 -
ldd3 用vm_operations_struct结构中的fault成员代替no_page成员过程
源自:http://blog.csdn.net/nevil/article/details/7718259关于ldd3的scullv,在编译过程中,主要是vm_operations_struct中现在的kernel中已经没有.nopage这一operation了,其被 fault替换了。下面逐一说明:(1)main.c中,主要就是就是上一篇文章提到的INIT_WORK, s转载 2012-10-15 20:19:47 · 1308 阅读 · 0 评论 -
tty设备驱动程序 基于:linux2.6.28
本文源自:http://blog.chinaunix.net/uid-21273878-id-1828727.htmltty设备的数据流通图:tty设备有三层:tty核心,tty线路规程,tty驱动。我们写驱动还是只负责最底层的tty驱动。线路规程的设置也是在底层的tty驱动。tty核心是封装好的。来看一下tty设备的操作函数:struc转载 2012-10-16 11:22:45 · 912 阅读 · 0 评论 -
组播原理及 C语言编程
源自:http://blog.163.com/mh_333333333/blog/static/3585491220095199419684/摘要: 本文可做为TCP/IP组播技术的入门材料,文中介绍了组播通信的概念及原理,以及用于组播应用编程的Linux API的详细资料。为了使读者更加完整的了解Linux 组播的整体概念,文中对实现该技术的核心函数也做了介绍。在文章的最后给出转载 2012-10-14 12:39:38 · 9275 阅读 · 0 评论 -
ldd3 lddbus编译遇到问题 bus_id
文章源自:http://blog.csdn.net/nevil/article/details/77182841. struct device不再包含bus_id,取而代之的是.init_name,修改ldd_bus[cpp] view plaincopystruct device ldd_bus = { .in转载 2012-10-15 22:22:08 · 443 阅读 · 0 评论 -
linux 等待队列 wait_event wake_up等函数讲解
源自:http://www.yiyon.net/index.php/archives/120一、等待队列 (一)数据结构 等待队列结构如下,因为每个等待队列都可以再中断时被修改,因此,在操作等待队列之前必须获得一个自旋锁。 struct __wait_queue_head { spinlock_t lock; st转载 2012-09-24 14:16:03 · 840 阅读 · 0 评论 -
ldd3 sbull编译遇到的问题 解决(部分)方法
源自于:http://www.vsyo.com/a/t/79a054b715b8bb10开始第一次make:结果如下:root@ubuntu:/home/shevarey/ssdd/sbull# makemake -C /lib/modules/2.6.32.16/build M=/home/shevarey/ssdd/sbullmodulesmake[1]: Ente转载 2012-10-16 17:04:21 · 2215 阅读 · 0 评论 -
Ldd3编译遇到常见问题汇总
short.c编译错误解决方法请看:http://blog.csdn.net/angelbosj/article/details/76950381、提示scripts/Makefile.build:46:*** CFLAGS was changed in "/home/chenfang/scull/Makefile",Fix it use EXTRA_CFLAGS.Stop.由于LDD转载 2012-10-07 21:58:45 · 729 阅读 · 0 评论 -
构造内核源码树
源自于:http://www.cublog.cn/u2/88891/showart_2164920.html 编写驱动程序时, 需要内核源码树的支持。内核源码树时从内核源代码编译得到的。下面开始构造内核源代码的步骤。 以Ubuntu为例子1. 下载内源代码,位置www.kernel.org. (注意:源码树内核的版本要和驱动程序运行的目标平台的内核版本一致)转载 2012-10-16 19:44:52 · 457 阅读 · 0 评论 -
利用seq_file在proc下添加文件
源自:http://blog.chinaunix.net/uid-317451-id-92670.html#include linux/kernel.h>#include linux/module.h>#include linux/mutex.h>#include linux/proc_fs.h>#include linux/seq_file.h转载 2012-09-23 14:03:38 · 1151 阅读 · 0 评论 -
工作队列 schedule_delayed_work/schedule_work_on/schedule_work函数内核实现
文章源自于:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=3641752int schedule_work(struct work_struct *work){ return queue_work(keventd_wq, work);}/* * schedule_work_on - put wo转载 2012-09-19 17:07:10 · 7224 阅读 · 1 评论