自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (3)
  • 收藏
  • 关注

原创 如何为驱动程序添加宏控制

背景:很多情况下,我们会在不同的项目上使用同一套代码,但是项目的不同会导致需求的不同,而宏控制可以解决这种或者诸多类似的问题。问题:如何在不影响其他项目的情况下为指定项目修改源代码?解决方案:(1)在该项目的配置文件*_deconfig中添加如下代码:CONFIG_XXXXXX=y(2)在*.c文件所在的文件夹下的Kconfig文件中添加如下代码:config XXXXXX    tristate...

2018-04-10 16:48:18 291

原创 多态实例

class Base { public: void func1() { this->func2(); } virtual void func2() { cout << "Base::func2()" << endl; }};class Derived : public Base { public: virtual void func2() { c...

2018-04-10 15:46:11 124

转载 Binder系统:servicemanager

servicemanager 是 Binder 进程间通信机制的核心,它扮演了 Binder 通信机制上下文管理者(context manager)的角色,既负责系统中 Service 组件的注册,又负责向 Client 组件提供获取 Service 组件代理对象的服务。

2018-01-03 16:43:39 126

转载 主存到Cache直接映射、全相联映射和组相联映射

Cache直接映射、全相联映射和组相联映射

2017-12-27 11:04:15 612

转载 深入理解SPI总线协议

单片机模拟SPI接口—加深理解SPI总线协议标签: 扩展c通讯存储工作2011-11-01 00:01 33827人阅读 评论(6)收藏举报本文章已收录于:分类: SPI总线学习(7) 作者同类文章X版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[

2017-03-21 10:38:21 353

转载 SPI总线协议介绍

SPI总线协议介绍一、技术性能        SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构;支持多slave模式应用,一般仅支持单Master。时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSB first);SPI接口有2根单向数据线,为全双工通信,目前应用中的数据速率可达几Mbps的水平

2017-03-21 10:34:15 373

转载 uart自动流控制

1.流控制在串行通讯中的作用这里讲到的“流”,当然指的是数据流。数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。现在我们在网络上通过MODEM进行数据传输,这个问题就尤为突出。流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收到“可

2017-01-08 15:38:39 276

原创 嵌入式linux内核面试题

1) linux中的同步机制?主要有哪几种内核锁?linux中的同步机制从2.0到2.6以来不断完善,从最初的原子操作到后来的信号量,从大内核锁到今天的自旋锁。这些同步机制的发展伴随LINUX从单处理器到对称多处理器的过渡;伴随着从非抢占内核到抢占内核的过渡;linux的锁机制越来越有效,复杂。linux的内核锁主要有自旋锁和信号量。自旋锁最多只能被一个可执行线程持有,如果一个可执行线程试

2016-10-22 08:58:51 141

原创 linux系统工程师试题

参数:-c :建立一个压缩文件的参数指令(create 的意思);-x :解开一个压缩文件的参数指令!-t :查看 tarfile 里面的文件!特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩

2016-10-18 08:08:52 75

原创 嵌入式linux驱动工程师面试经验

1. 创发科技2. 中科创达3. 中电海康集团(52研究所)主要考察c语言的基础知识,问道了inline关键字和static关键字,然后就讲述了项目方面的经验,有关linux内核里面的各种机制也问道了好多,比如自旋锁和互斥锁机制,以及两个锁之间的区别,还有关于进程休眠和调度的知识,由于我对s3c2440比较熟悉,面试官还问到了bootloader方面各种知识,以及在编写

2016-10-13 13:31:07 321

原创 福州瑞芯微电子嵌入式软件笔试题

1. linux中shell变量$#,$@,$0,$1,$2的含义解释:$$:shell本身的PID(processID);$!:shell最后运行的后台process的PID;$?:最后运行的后台process的PID;$* = $@:所有参数列表。“$*” 以“$1 $2 ... $n”的形式输出所有参数。$#:添加到SHELL的参数的个数。$0:shell本身的文件名。$1~

2016-10-12 19:46:27 932

转载 linux中的pid与tid

1.linux中,每个进程有一个pid,类型pid_t,由getpid()取得。linux下的POSIX线程也有一个id,类型为pthread_t,由pthread_self()取得,该id由线程维护,不同进程中的线程可能有相同的id,每个进程有独立的线程id空间。代码范例:#include #include #include #include #include #include v

2016-10-11 00:27:18 427

原创 readelf和ldd分析elf文件

很多时候,我们利用交叉编译好的应用放在开发板上并不能运行,这个

2016-10-05 21:27:36 166

转载 动态库、共享库、静态库

gcc -c  a.c : 编译成目标文件gcc -o  a.c : 生成可执行文件gcc a.c :生成执行文件a.exe总结:只要参数有-c,总是生成目标文件;只要参数中无-c而只有-o, 则总是生成执行文件。通常库分为:静态库,共享库,动态加载库。一、静态库—— 一些目标文件的集合。以.a结尾。1. 使用场合:程序链接时使用。链接器会将程序中使用到得函数代码从

2016-09-14 20:25:54 61

转载 linux同步机制

死锁(deadlock)是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。虽然进程在运行过程中,可能发生死锁,但死锁的发生也必须具备一定的条件,死锁的发生必须具备以下四个必要条件。1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某

2016-09-11 21:18:00 227

转载 static用法小结

static用法小结 static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数下面就这三种使用方式及注意事项分别说明一、局部静态变量在C/C++中, 局部变量按照存储形式可

2016-08-28 08:10:02 316

原创 kobject引用计数

**************************************************************创建一个平台设备:static struct platform_device xxx = {.name = xxx.resourse =.dev = {.release = xxx_release,}

2016-08-23 08:36:22 275

原创 chche与DMA的一致性问题

1. cache是一种高速缓冲存储器,主要作用:提高cpu数据读取速率,协调cpu速度与内存存储速度之间的差异。2. cpu可以快速的从cache中读取数据,但是如何得到cpu在下一个时间段内用到的内存中的数据? 局部性原理:如果cpu当前时间用到内存中的某块数据,那么就将这块数据的周围数据存入cache中,为下一个时间段cpu读取数据做准备。3. 直接映像:主存的一个字块只能映像到Cac

2016-08-14 10:17:59 464

原创 Makefile中“=”与“:=”与“?=”区别

1. B := $(A)  :在这句语句之前找A的值;2. B  = $(A)  :在Makefile 文件最后往前找A的值;3. B ?= $(A) :如果没定义B,则给B赋值;例子:1.#exampleA = befor1A = befor2B := $(A)A = laterall:    @echo $(B)执行make   输出be

2016-06-22 18:55:02 188

原创 matlab2014b 安装libsvm-3.21

1. 安装 visual stdio 2012 :下载链接:https://lzw.me/a/microsoft-visual-studio-2012.html2. 重启电脑 ,打开matlab3. 下载:libsvm-3.21   将其置于tools 目录,并添加工作路径。4. 执行 mex -setup C++  设置matlab使用的编译器5. 执行make 即可附:

2016-06-08 14:41:55 504 1

原创 驱动中的poll机制分析

-------------------------------------------------------------------------------------------------APP: 调用poll----------------------------------------------------------------------------------------

2016-05-11 15:07:50 218

原创 scullpipe驱动程序测试(使用x86平台)

scullpipe驱动程序测试打开两个终端:1. cat /dev/scull_pipe02. ls -l > /dev/scull_pipe0非阻塞测试:/**************************** * function nbtest * 测试非阻塞操作 * 用非阻塞性I/O把输入复制到输出,并在其间稍作延迟,延时时间由命令行传递

2016-05-10 15:11:47 428

原创 驱动模块编译平台的选择

编译平台的选择arm平台:DEBUG = yifeq ($(DEBUG), y)    MYDEBFLAGS = -O -g -DSCULL_DEBUG else    MYDEBFLAGS = -O2endifEXTRA_CFLAGS += $(MYDEBFLAGS)KERN_DIR = ../linux-mini2440all:make

2016-05-10 15:10:11 205

转载 wait_event_interruptible() 分析

1. 关于 wait_event_interruptible() 和 wake_up()的使用  读一下wait_event_interruptible()的源码,不难发现这个函数先将 当前进程的状态设置成TASK_INTERRUPTIBLE,然后调用schedule(), 而schedule()会将位于TASK_INTERRUPTIBLE状态的当前进程从runqueue 队列

2016-04-30 08:49:50 267

原创 LINUX驱动编写技巧(1)

驱动程序编写过程遇到的问题:1.为驱动程序增加编译可选项#ifdef MY_DEBUGprintk("my debug")//操作#endif2. 在Makefile中添加  1 DEBUG = y  2   3 ifeq ($(DEBUG), y)  4     MYDEBFLAGS = -O -g -DSMY_DEBUG  5 else  6    

2016-04-23 16:52:55 180

原创 ldd(linux设备驱动程序)scull驱动

1. 下载源代码:http://download.csdn.net/detail/wjf201003050643/94942652. 参考书中第三章:linux设备驱动程序3. 下面将附上驱动源代码。(该驱动使用内存模拟出4个硬盘,可以实现对其读写操作)4. 调试过程出现的问题:    执行命令# ls –l > /dev/scull0   :该命令将输出重定向到设

2016-04-21 15:26:08 382

原创 CGI应用(1)

最近在学习嵌入式WEB服务器的移植,对于BOA服务器的移植,网上的文章很多,大家可以直接搜索嵌入式BOA服务器的移植;对于一个移植好的WEB服务器,例如BOA服务器,如何通过网页实现对板子的控制功能呢,这就需要CGI了,具体来说,CGI(common getway interface)就是运行在WEB服务器之外的供服务器调用的程序。它与服务器配合使用,可以让服务器具有更强大的功能。下面学习

2015-11-17 18:28:00 284

多态代码实例

通过两个程序代码例子彻底理解什么是多态,什么是虚函数;

2018-04-10

u-boot-mini2440

该压缩包中包含u-boot-2012.04.01原代码,制作了运行在Mini2440开发板的补丁文件,通过打补丁,编译出的uboot.bin文件可以直接运行于mini2440开发板。(注意:只支持nandflash启动),有兴趣的开发者可以根据自己的需求修改相应的代码支持nor启动。

2016-04-18

linux设备驱动程序(第三版)示例源代码

本书是经典著作《linux 设备驱动程序》的第三版。该版本已针对 linux 内核的 2.6.10 彻底更新过了。资源中包含了该书中所涉及到得所有得开源代码,为广大嵌入式驱动开发者提供免费下载,望大家共同学习进步

2016-04-18

空空如也

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

TA关注的人

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