自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

转载 安卓驱动、HAL、JNI与java

最近看了安卓驱动层到应用层的实现,总结一下所学,新手学习,不足之处请指正(以LED为例):网址:http://blog.csdn.net/liruicom/article/details/8517948由驱动层到应用层的流程Linux驱动->HAL->JNI->APK首先是驱动层:1)创建cdev与实现file_operations 。2)module_init与module_

2015-11-24 22:33:28 663

转载 C语言的那些小秘密之异常处理

版权声明:本文为博主原创文章,未经博主允许不得转载。很多读者在此之前可能根本没有使用或者听说过C语言的异常处理,印象中都是C++或者java才有的东西,C语言怎么会有异常处理呢?当然估计在大学出于一般的性的学习考试之类的话老师几乎是不会提及C语言的异常处理的,那么到底什么是异常处理?C语言中又该如何来实现异常处理呢?那么我们今天就讲解一种典型的实现C语言异常处理的方法,以setjmp(

2015-11-24 22:22:50 445

转载 Linux V4L2驱动架构解析与开发导引

Andrew按:众所周知,linux中可以采用灵活的多层次的驱动架构来对接口进行统一与抽象,最低层次的驱动总是直接面向硬件的,而最高层次的驱动在linux中被划分为“面向字符设备、面向块设备、面向网络接口”三大类来进行处理,前两类驱动在文件系统中形成类似文件的“虚拟文件”,又称为“节点node”,这些节点拥有不同的名称代表不同的设备,在目录/dev下进行统一管理,系统调用函数如open、close

2015-11-24 22:14:03 2926

转载 V4L2驱动程序架构

1 V4L2简介video4linux2(V4L2)是Linux内核中关于视频设备的内核驱动,它为Linux中视频设备访问提供了通用接口,在Linux系统中,V4L2驱动的Video设备节点路径通常/dev/video/中的videoXV4L2驱动对用户空间提供字符设备,主设备号为81,对于视频设备,其次设备号为0-63。除此之外,次设备号为64-127的Radio设备,次设备

2015-11-24 22:11:55 1349

转载 聊聊arm下的函数栈

引言  这篇文章简要说说函数是怎么传入参数的,我们都知道,当一个函数调用使用少量参数(ARM上是少于等于4个)时,参数是通过寄存器进行传值(ARM上是通过r0,r1,r2,r3),而当参数多于4个时,会将多出的参数压入栈中进行传递(其实在函数调用过程中也会把r0,r1,r2,r3传递的参数压入栈),具体是什么实现的呢,我们看看。 函数栈  首先我们需要了解一下lin

2015-11-24 19:44:35 1485

转载 PDP Context 激活流程(UE发起)

一个UE 发起的PDP 上下文激活过程,目的是向SGSN申请某种数据业务,如浏览网页、在线视频浏览等业务。如果之前UE没有建立RRC 连接,则首先需建立RRC 连接,再通过初始直传建立传输NAS 消息的信令连接,最后建立RAB。如果PDP 上下文激活过程是由网络主动发起,则信令流程中将包含寻呼过程。在接入层内与主叫过程很类似,其它区别主要体现在NAS消息上,在此不再详述。终端GPRS附着成

2015-11-24 16:55:09 3447

转载 深入理解C语言的define和内联函数

深入理解C语言的define和内联函数时间 2014-05-17 22:43:00  Bill's Blog原文  http://ibillxia.github.io/blog/2014/05/17/insight-into-define-and-inline-function-in-c/主题 C语言概述在 Robert C.Searcord 的 T

2015-11-24 10:39:41 747

转载 C语言中的内联函数(inline)与宏定义(#define)详细解析

先简明扼要,说下关键:1、内联函数在可读性方面与函数是相同的,而在编译时是将函数直接嵌入调用程序的主体,省去了调用/返回指令,这样在运行时速度更快。2、内联函数可以调试,而宏定义是不可以调试的。内联函数与宏本质上是两个不同的概念如果程序编写者对于既要求快速,又要求可读的情况下,则应该将函数冠以inline。下面详细介绍一下探讨一下内联函数与宏定义。一、内联函数是什么?内

2015-11-24 10:22:48 886

转载 inline函数和宏函数的区别

转自:http://blogt.chinaunix.net/space.php?uid=25213672&do=blog&id=125451#define TABLE_COMP(x) ((x)>0?(x):0) 就定义了一个宏。 为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地

2015-11-24 10:16:35 572

转载 宏、函数、宏函数的区别

http://hi.baidu.com/pobenliu/blog/item/3e458208279486a32fddd43f.html宏、函数、宏函数的区别先说宏和函数的区别:1. 宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型.2. 宏的参数替换是不经计算而直接处理的,而函数调用是

2015-11-24 10:13:26 418

转载 函数式宏定义与普通函数

在C及C++语言中允许用一个标识符来表示一个字符串,称为宏,该字符串可以是常数、表达式、格式串等。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的。若字符串是表达式,我们称之为函数式宏定义,那函数式宏定义与普通函数有什么区别呢?我们以下面两行代码为例,展开描述:  

2015-11-24 10:11:49 854

转载 C语言宏定义和宏定义函数

要写好C语言,漂亮的宏定义是非常重要的。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。  在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。  我们来看一个例子,比较两个数或者表达式大小,首先我们把它写成宏定义:  #define MAX( a, b)

2015-11-24 10:04:51 534

转载 编写优质嵌入式C程序

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]简介C语言特性1处处都是陷阱11 无心之过12 数组下标13 容易被忽略的break关键字14 意想不到的八进制15指针加减运算16关键字sizeof17增量运算符和减量运算符18逻辑与和逻辑或的陷阱19结构体的填充2不可轻视的优先级3隐式转换编译器1不能简单的认为是个工具2不能依赖

2015-11-21 12:37:24 2282

转载 10个足以让你成为更优秀的程序员的C语言资源

一些人觉得编程无聊,一些人觉得它很好玩。但每个程序员都必须紧跟编程语言的潮流。大多数程序员都是从C开始学习编程的,因为C是用来写操作系统、应用程序最常用的语言。C编程笔记这些是华盛顿实验学院C编程入门课的部分笔记。它们是以《C程序设计语言》的补充笔记(从1995年春开始)为基础修改的,而这本书的作者就是大名鼎鼎的Brian Kernighan和Dennis Ritchie了,人们亲

2015-11-20 19:18:08 1083

转载 C语言错误处理策略

今天写程序时,发现自己平时不爱做异常处理。(C语言的异常处理比起java的来总觉得好费劲啊~)  上网google了一下看见了一位大牛的解释,好厉害,膜拜一下  1. 返回值方式:用函数的返回值标志函数是否执行成功。比如成功返回1,失败返回0。这种方式的好处是简单方便,而且不影响效率,保持了c语言的高效率。但是仍然有问题,一个问题是代码可读性的问题,如果每个函数都有这样的返

2015-11-20 16:27:45 1318

转载 C语言程序员必读的5本书

本文由 伯乐在线 - programmer_lin 翻译。未经许可,禁止转载!英文出处:fromdev。欢迎加入翻译组。你正计划着通过看书来学习C语言吗?“书籍是人类最忠诚的朋友“。海明威一定知道书籍对一个人一生的重要性。书籍是知识的丰富来源。你可以从书中学到各种知识。书籍可以毫无歧视地向读者传达作者的本意。C语言是由 Dennis Ritchie在1969年到1973年在贝尔实验室研

2015-11-20 16:22:10 11243

转载 低级程序员和高级程序员的区别

低级程序员认为自己与高级程序员的区别, 主要是高级程序员任何功能都能编码实现, 编码速度快, 代码无 bug. 正如一惯的那样, 低级程序员之所以低级, 正是因为他们勉强能看到(或者根本看不到)事物的表象而看不到本质. 所以, 低级程序员总结出的一切东西, 你都可以大胆的忽略.所以, 我们来听听高级程序认为自己与低级程序员的区别是什么. 高级程序员之所以高级, 在于他们认识到代码 bug

2015-11-20 12:20:07 3927

转载 低级程序员和高级程序员的区别

低级程序员认为自己与高级程序员的区别, 主要是高级程序员任何功能都能编码实现, 编码速度快, 代码无 bug. 正如一惯的那样, 低级程序员之所以低级, 正是因为他们勉强能看到(或者根本看不到)事物的表象而看不到本质. 所以, 低级程序员总结出的一切东西, 你都可以大胆的忽略.所以, 我们来听听高级程序认为自己与低级程序员的区别是什么. 高级程序员之所以高级, 在于他们认识到代码 bug

2015-11-20 12:19:18 793

转载 C语言中的回调

ResourceFrom:http://lemote.blog.163.com/blog/static/1748395072013111631216547/软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执 行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用

2015-11-19 23:04:10 415

转载 C语言----for语句,break和continue的应用与区别

C语言----for语句,break和continue的应用与区别 (2012-06-12 16:32:28)转载▼1。问题2。for语句3。break和continue的应用与区别 1。问题;   上章博文的问题点,主要是看B的变量变化情况。这里就不在说明; 2。for语句   格式:   f

2015-11-19 23:01:23 1246

转载 C语言中的回调

软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。回调和异步

2015-11-19 15:31:28 3832

转载 如何编写易于移植的C++ 程序

如何编写易于移植的C++ 程序由于操作系统的差异,同一种操作系统本身版本的差异,目前C++标准库提供的功能仍然有限以及C++编译器产品不是完全兼容等问题,使得我们在移植大型应用程序的时候往往会出现很多难以解决的问题,如何合理的避免他们提高C++程序的移植性,本文作者从源代码的组织安排等方面提出了一些实用的建议。 当我们编写服务器端的软件产品时,我们往往需要为同一个软件产品推出多种不同平

2015-11-17 11:03:28 423

转载 嵌入式程序员应该知道的16个问题

http://www.bubuko.com/infodetail-649505.htmlhttp://www.51testing.com/html/04/n-815204.htmlhttp://blog.csdn.net/sy_lixiang/article/details/21174817http://blog.csdn.net/weiqifa0/article/detail

2015-11-16 21:55:33 422

转载 怎样判断ucos ii ostaskcreate任务的 堆栈是否溢出

1.1. 任务堆栈一但溢出,意味着系统的崩溃,在有MMU或者MPU的系统中,对堆栈溢出的检测十分简单,因为这是MMU和MPU必备的功能之一。(uCOS-II/uCOS-III中均有针对没有MMU和MPU的处理器对堆栈溢出检测的策略)1.2. 堆栈的大小取决于该任务的需求。设定堆栈大小时,你就需要考虑:所有可能被堆栈调用的函数及其函数的嵌套层数,相关局部变量的大小,中断服务程序所需要的空间。另外

2015-11-16 21:52:37 1661

转载 ARM的异常处理过程分析

ARM的异常处理过程分析 2012-05-23 22:29:35分类: LINUX近来翻了翻uC/OS-II官网给出来的ARM7-ARM9移植手册(AN-104),分析了在ARM中移植的问题,想想从来没有认真的学习过ARM的汇编,趁着这个机会复习复习吧。其实底层的东西才是创造力的心脏。其中的移植代码中存在的很多问题比如中断的关闭和开启,任务级别的

2015-11-16 19:56:11 817

转载 ARM的Abort异常

data abort exception:      data abort是arm异常的一种。当程序试图读或者写一个不合法的内存地址时发生(没有权限访问或者不存在的地址), 可以通过以下方式计算不合法的内存地址:    R14(LR)-8得到导致data abort异常的指令,从指令的寄存器中得到需要操作的地址。    一般而言,导致这种异常的指令为STR,LDR(涉及

2015-11-16 19:53:08 2096

转载 W中的Event 1A到Event 1J以及Event 2A到2F的含义?

频内测量内容:1)频内测量小区信息列表2)频内测量数值(CPICH、Ec/No、CPICH RSCP、RSSI/pathloss)3)频内测量报告数值4)报告小区状态5)测量有效性(有效的UE状态)可选6)报告准则(频内测量报告准则、周期性测量报告准则、不报告)频内测量报告的触发事件:1A:CELL 进入报告范围。1B:CELL 离开报告范围。1C:有CEL

2015-11-14 18:20:15 1005

转载 *.h文件头部常用 #ifndef _STDIO_H_,#if __cplusplus

头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。  还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的:#ifndef #define ....

2015-11-14 18:15:52 1161

转载 ARM汇编语言从1+2+......+100

Thumb 汇编指令实验的参考程序代码清单;文件名:test.s;功能:计算1+2+3+…+N 的值N        EQU 50                               定义N的值为50  AREA testcode,CODE,READONLY            区域名为testcode,代码,只读ENTRY                      

2015-11-08 21:19:19 15048

转载 i.mx257的gpio简要理解

飞思卡尔的芯片与三星的芯片有很大的不同, 从GPIO 的配置上就能看到飞思卡尔有多操蛋.在本节中我们使用GPIO3-23 来点亮板子上的 ERR-LED. 1. 配置 IOMUX 来选择GPIO模式(IOMUXC), GPIO3-23为普通io口2. 设置GPIO为输出(GDR)3. 写DR寄存器Software Mux Control Registers (SW_MUX_CT

2015-11-08 20:51:22 943

转载 ARM的B,BL跳转指令

B跳转指令:它是个相对跳转指令,其机器码格式如下:[31:28]位是条件码;[27:24]位为“1010”(0xeaffffff)时,表示B跳转指令,为“1011”时,表示BL跳转指令;[23:0]表示偏移地址。使用B或BL跳转时,下一条指令的地址是这样计算的:将指令中24位带符号的补码立即数扩展为32(扩展其符号位);将此32位数左移两位;将得到的值加到pc寄存器中,即得

2015-11-08 20:28:26 6302

曲线积分与曲面积分解题技巧

最近刚看到的好资源,快来下啊!!!!!!!!

2009-01-17

非常全面的数学公式大全

含有高等数学,线性代数,概率论所有公式!!

2008-11-24

空空如也

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

TA关注的人

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