自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风流的苦行僧

向死而生

  • 博客(21)
  • 资源 (5)
  • 收藏
  • 关注

原创 C++异常处理学习笔记 -- 持续更新

笔者在看《C++标准程序库》,看到“错误(Error)处理和异常(Exception)处理”这一章节,关于这方面的内容,笔者经常使用的《C++ Primer》里写的不是很详细,《C++标准程序库》也一样,根据笔者理解和测试,以此文做个总结吧!C++标准库由不同的成分构成。来源不同(不是由某个人或某个组织以某种统一的形式弄成的),设计与实现风格迥异。而错误处理和异常处理正是这种差异的一个典型代表

2014-03-26 23:35:41 1334

原创 《C++标准程序库》读书笔记 -- 持续更新

缘起C++问世后不久,就成为面向对象程序设计领域的实质标准,因此,正式标准化的呼声也就浮上了台面。一旦有了一个可以依循的标准规格,我们便可以写出跨越PC,乃至大型主机等各种不同平台的程序。此外,如果能够建立起一个标准程序库,程序员便可得以运用可移植的通用组件(general components)和更高层次的抽象性,而不必从头创造世界。

2014-03-25 00:18:48 553

原创 处理指针常会出现的错误

通常来说,我们常常会这样来释放指针所指向的内存:譬如定义一个结构体:typedef struct Book { unsigned char *name; unsigned char *press; float price;}T_Book, *PT_Book;static T_Book tBook;若要想释放tBook成员变量name所指向的内存,比较把稳的做法是这样:if (t

2013-08-11 18:07:02 832

原创 一句话经验

1.在定义宏的时候不要定义这样的值“#define  AREA  13*12”为什么呢?这样很容易对后续计算造成干扰,譬如j=

2013-08-11 17:08:04 520

转载 老码农教你学英语

对于咱们这些高端大气、时刻需要和国际接轨的码农,英语的重要性自然是毋庸置疑的。尤其是那些胸怀大志,想在码农行业闯出一片天地,成为秒杀身边小弟们的潜在大牛们,熟练掌握英语更是事业成功最关键的因素之一。试想在你捧着某出版社刚刚翻译出来的《JSP 高效编程》苦苦学习JSP模板的时候,你旁边的小弟却是拿着原版的《AngularJS in Action》学习开发单页面应用,虽然你们都同样认真地学习了一个月,

2013-08-11 11:04:11 718

原创 使用libjpeg

关于libjpeg,维基百科有一些介绍:libjpeg 是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现。这个库由独立JPEG工作组维护。libjpeg-turbo是libjpeg的衍生品,性能较之libjpeg更强!相关的产品还有Intel IPP(一套跨平台的软件函数库,他提供了广泛的多媒体功能:音频解码器、图像处理 、信号

2013-08-02 20:09:33 1939

原创 8.条件变量应用实例

基于《4.Linux C多线程的执行顺序问题》进行修改,现在要做这么一件事情,线程thread_one和线程thread_two共同处理一个全局变量i,thread_one:++i和打印i,thread_two处理的事情是:打印i。thread_one和thread_two都处理打印i的事务,所不同的是,当i为3的倍数的时候,由thread_two打印,否则由thread_one打印。程序

2013-08-01 18:38:41 1097 2

原创 7.条件变量简介

条件变量,先谈谈自己的理解吧!互斥量解决了不同线程处理共享资源的问题,比如有俩线程one和two以及和一个共享资源share,one和two每次处理share的前提都是成功获取互斥量mutex,这样的做法保证了共享资源在一段时间里只被一个线程处理,也即保证了处理共享资源的原子性。但这还不够,常常会有这样的应用需求(mark nb),线程one处理完共享资源share之后,需要通知处于阻塞状

2013-08-01 18:34:48 699

原创 6.互斥量

互斥量是一种特殊的变量,它可以处于锁定状态(locked),也可以处于解锁状态(unlocked)。如果互斥量是锁定的,那么必然有一个线程持有或拥有这个互斥量。如果没有任何一个线程持有这个互斥量,那么这个互斥量就处于解锁、空闲或可用状态(这三种状态有区别?!)。当互斥量空闲,并且有一个线程试图获取这个互斥量时,这个线程就可以获得这个互斥量而不会被阻塞。如果互斥量处于锁定状态,那么试图获取这个互斥量

2013-08-01 18:33:11 720

原创 5.线程的属性和状态

线程属性POSIX将栈的大小和调度策略这样的特征封装到一个pthread_attr_t类型的对象中去,用面向对象的方式表示和设置特征。属性对象只在线程创建的时候会对线程产生影响。编写程序时可以先创建一个属性对象,然后再将栈的大小和调度策略这样的特征与属性对象关联起来,之后就可以通过向pthread_create传递相同的线程属性对象来创建多个具有相同特征的线程。通过将各种特征组合到单个对象中区

2013-08-01 18:18:54 721

原创 4.Linux C多线程的执行顺序问题

先来探究一下最自然状态下(除了pthread_create()不做任何处理)main线程、子线程之间的执行顺序问题!试验之前不妨来些猜测:猜测1:执行顺序main Thread > thread_one > thread_two(thread_one比thread_two先创建)猜测2:它们的执行顺序没有严格的先后顺序P.S:若猜测1正确,那么在“不对主线程进行阻塞”的情况下,子线

2013-08-01 18:11:33 2078

原创 3.退出和取消进程

《pthread_create()初体验》里曰过:进程的终止可以通过在主函数main()中直接调用exit、return、或者通过进程中的任何其它进程调用exit来实现。在任何一种情况下,该进程的所有进程都会终止。如果主线程在创建了其它进程之后没有工作可做,或者说主线程有必要等到其他进程都结束才结束的情况下,主线程应该阻塞到所有进程都结束为止。“进程的终止可以通过在主函数main()中直接

2013-08-01 18:05:56 840

原创 2.pthread_join()、pthread_exit()、pthread_cancel()简述

继续回到解决程序#include #include #include void *sayhello(void *arg){printf("hello, world! I'm son\n");}int main(void){int error;pthread_t son;error = pthread_create(&son, NULL, sayhello, NULL);

2013-08-01 17:59:09 2556

原创 1.pthread_create()初体验

#include #include #include void *sayhello(void *arg){printf("hello, world! I'm son\n");}int main(void){pthread_t son;pthread_create(&son, NULL, sayhello, NULL);printf("hello, wor

2013-08-01 17:49:57 7122 2

原创 LCD驱动程序三(驱动测试和总结)

上一篇《LCD驱动程序二(程序设计)》已经涉及到LCD驱动程序的编写,本文基于此进行测试(以Linux-2.6.30.4)为参考~1. 加载自定义的LCD驱动程序的前后,执行“ls /dev/fb*”发现多了一个/dev/fb0这个节点,此节点正是LCD节点,并且发现加载前LCD是黑的,加载后LCD被点亮了~2. 执行“echo sadjason > /dev/tty1”指令发现LCD上显

2013-01-22 02:38:08 1988

原创 LCD驱动程序二(程序设计)

笔者使用开发板是TQ2440,所针对的是天嵌4.3寸TFT屏幕,基于Linux-2.6.30.4内核,驱动代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #includ

2013-01-22 02:37:49 1358

原创 LCD驱动程序一(预备知识)

LCD硬件原理首先结合LCD接口来简要了解LCD驱动原理(笔者使用的开发板是TQ2440,所用的LCD是天嵌4..3寸屏,以此为例),如下:首先得知道LCD是由N多个像素点组成,一帧图像在视觉上看到是一体的,但实际上每个像素点的显示的是有时序的。可以想象一下,有好比一个喷光灯,它打到哪个像素点,哪个像素点就被“照亮”。如何让一行像素点一个接一个“点亮”呢?于是有了HSY

2013-01-22 02:37:27 1228

原创 字符设备驱动之按键处理二(中断处理的按键驱动程序)

仍然是处理按键驱动问题,前面《字符设备驱动之按键处理一(查询方式的按键驱动程序)》已经通过查询方式完成了简单功能的探究,但这种方式存在一个比较严重的问题:占用太多CPU资源(97%或更高)。在基于操作系统的程序中,这种做法显然是不可取的。本文探究以中断处理的方式实现按键驱动程序。1. 首先依然是搭建框架a. file_operations相对于之前所写的LED和查询按键驱动

2013-01-22 01:50:40 1392

原创 字符设备驱动之按键处理一(查询方式的按键驱动程序)

和LED这类简单的设备驱动开发一样,依旧是比较简单的步骤,如下:· 搭框架· 硬件操作阅读原理图 -- 确定哪些引脚接到按键上阅读收据手册 -- 确定操作哪些寄存器· 写测试程序1. 搭框架a. 建立file_operationsb. 创建驱动open、read等驱动函数的框架(根据需要,名字随便定义,但要与定义file_op

2013-01-22 01:20:42 747

原创 字符设备驱动之点亮LED

这次弄一个复杂一点的驱动测试,暂且认为是LED驱动吧!应用程序借用驱动程序控制4个LED灯亮灭。对于驱动程序的编写,首先是构建框架,打通LED与应用程序之间的关系。本文在《字符设备驱动之"Hello, World!"》的基础上捣鼓,框架已经有了。然后便是完善对硬件的操作。具体下文细细道来。此LED驱动程序首先能够实现的功能是:调用应用程序app_test1,能够实现LED灯亮灭控制。譬

2013-01-22 01:05:42 876

原创 字符设备驱动之"Hello, World!"

从零开始,尝试写一个“hello world!”级别的驱动测试程序。1. 创建驱动文件,简单的命名为test1.c,代码如下:#include #include #include #include #include #include #include #include #include #include #include static int test1

2013-01-22 00:11:46 741

libjpeg-turbo-1.3.0

libjpeg-turbo-1.3.0.tar.gz源码文件,请笑纳

2013-08-02

交叉编译器arm-eabi-4.4.0

交叉编译器arm-eabi-4.4.0,请笑纳

2013-04-16

S3C2440 ADC和触摸屏接口学习

S3C2440 ADC和触摸屏接口学习资料,介绍TFT电阻屏工作原理

2013-01-23

linux内核源代码情景分析

《linux内核源代码情景分析》,高清非扫描版的,别看文件小,但它是最清晰的,一千五百多页,不含糊...欢迎下载

2012-12-20

深入理解Linux内核(第三版)中文

深入理解Linux内核第三版,扫描版,但比较清晰,有详细目录,是我目前能够找到最好的

2012-12-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除