自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

luckywang1103的专栏

慢一些脚步,多一点思考!

  • 博客(12)
  • 资源 (44)
  • 收藏
  • 关注

原创 内核地址空间与进程地址空间

一、内核地址空间1)物理内存映射区:        kmalloc,get_free_pages申请的内存位于物理内存映射区,在物理上连续,他们与真实的物理地址只有一个固定的偏移。        virt_to_phys()  可以实现内核虚拟地址转化为物理地址        phys_to_virt()  物理地址转化为虚拟地址2)虚拟内存分配区:

2013-11-29 20:37:18 2261

原创 Linux I/O端口与I/O内存

一、IO端口访问 1、直接使用IO端口操作函数   1)在设备打开或驱动模块被加载时申请IO端口区域,之后使用inb(),outb()等进行端口访问,最后在设备关闭或驱动被卸载时释放IO端口范围。流程如下:      2)struct resource *request_region(unsigned long first,unsigned long n

2013-11-29 15:40:49 1580

转载 linux设备驱动之mmap函数

1.mmap系统调用void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset);功能:负责把文件内容映射到进程的虚拟地址空间,通过对这段内存的读取和修改来实现对文件的读取和修改,而不需要再调用read和write;参数:addr:映射的起始地址,设为NULL由系统指定;len:映

2013-11-28 18:03:19 1728

原创 i2c驱动之普通设备驱动2(推荐设备驱动方法)

与前面普通设备驱动1方法不同,这里的普通设备驱动利用i2c-core.c提供的i2c_transfer方法来实现设备驱动,而不是普通设备驱动1里面的通过操纵s3c2440的i2c寄存器来与设备通信        采用友善之臂的2.6.32.2内核,需要修改/linux-2.6.32.2/arch/arm/mach-s3c2440/mach-mini2440.c文件1)添加 #include

2013-11-23 15:29:18 2446

原创 i2c驱动之普通设备驱动1

驱动程序#include #include #include #include #include #include #include #include /* printk() */#include /* kmalloc() */#include /* everything... */#include /* error codes */#i

2013-11-21 23:44:32 2748 2

原创 i2c驱动之i2c-dev驱动

i2c的设备驱动可以直接利用内核提供的i2c-dev.c文件提供的ioctl函数接口在应用层实现对i2c设备的读写,但是在应用层使用ioctl函数对应用程序员要求较高,必须了解设备的操作流程,时序之类的。        另外i2c设备的驱动也可以通过普通的设备驱动实现,像往常的驱动一样实现,然后在应用层就可以像读取普通文件一样操作,无需再考虑读写时序。        在编译驱动的时候提示出

2013-11-20 00:18:18 16728 3

转载 Linux completion理解

completion是一种轻量级的机制,它允许一个线程告诉另一个线程工作已经完成。可以利用下面的宏静态创建completion:DECLARE_COMPLETION(my_completion);如果运行时创建completion,则必须采用以下方法动态创建和初始化:struct compltion my_completion;init_completion(&my_com

2013-11-19 11:38:42 1034

原创 i2c驱动之调用ioctl函数进行读写at24c08

在linux驱动中/drivers/i2c/目录下有i2c-dev.c提供了I2C设备的通用驱动,实现了read(),write(),ioctl等函数,不过这里的read()和write()函数只能对应一条消息,即如下,但是如果碰到下面的情况:先写一次地址,然后再开始读数据,即分为两次消息,这个时候read(),write()函数就不能正常读写了,因为先

2013-11-18 21:45:42 18898 4

原创 动手做一个linux字符驱动

最近学习了一本书《linux 设备驱动开发详解》——宋宝华老师写的,不过买的竟然是第二版的,里面是关于处理器s3c6410的,本来看这书的第一版是讲s3c2410,后来发现其实内容差不多了。    学习了一下里面第2篇,设备驱动的核心理论,涉及很多,基础的知识需要反复的推敲才能明白。    主要内容:1、模块加载函数static int __init combine_init(

2013-11-11 22:53:44 1186 1

原创 function declaration isn't a prototype解决办法

对以上程序,在编译驱动的时候会出现以下warning:在网上查到解决办法是:即使函数括号内没有任何参数,也要加一个void类型,来避免这种warning:解决如下:

2013-11-10 00:26:15 48132 4

原创 linux驱动头文件

#include 是在linux-2.6.29/include/linux下面寻找源文件。#include 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。Linux驱动程序常用头文件列举#inclu

2013-11-04 20:42:39 1408

原创 hello驱动与Makefile

#include #include MODULE_LICENSE("Dual BSD/GPL");MODULE_AUTHOR("xxx");static int __init hello_init(void){ printk(KERN_ALERT "Hello world\n"); return 0;}static void __exit hello

2013-11-03 22:37:21 843

androidJNI例子

从这个简单的例子学习android JNI是如何做的

2015-07-19

嵌入式系统开发之道笔记

嵌入式系统开发之道的读书笔记 ... 2、中断分为CPU自行产生的内部中断及由外围设备产生的外部中断。 3、*(volatile unsigned char*)0x300022&=0xfd; C语言用指针取地址里面的东西 asm("xld.w %r0,0x300022"); Asm("bset [%r0],0x1"); 汇编用[]取地址里面的东西 ...

2015-05-17

alsa-utils-1.0.25_alsa-lib-1.0.25

alsa-utils-1.0.25和alsa-lib-1.0.25,具体编译方法参考http://blog.csdn.net/luckywang1103/article/details/45626201

2015-05-11

算法导论_第二版(中文+答案)_第三版(英文)

算法导论内容包括: 中文第二版PDF+答案 英文第三版PDF

2015-05-05

ldd3书本+书本源代码

包括linux设备驱动(第三版)书本和书本上对应的源代码

2015-05-05

pthread API的一些用法

主要是pthread API组成的一个简单的例子,更关键的是能够熟悉pthread_join,他能够一直阻塞整个进程直到他等待的那个线程结束才能继续执行他后面的代码。 编译使用gcc pthread.c -o pthread -pthread

2015-02-15

Protel转PADS工具

可以实现Protel PCB转PADS PCB 实现Protel原理图转PADS原理图

2013-12-19

MJPEG压缩与解压缩

实现在友善之臂平台 usb_camera.c文件:如果V4L2采集的图像是MJPEG,则解压成RGB进行LCD显示; YUV2JPEG.c文件:如果V4L2采集的图像是YUYV,则先变成RGB,再压缩为MJPEG

2013-12-13

nfs安装文件

里面有3个nfs安装所需的文件,安装方法是dpkg -i ***.deb, 安装顺序是portmap、common、kernel

2013-12-10

labview显示串口读取的心电波形

前端是单片机采集的并通过串口发送出来的波形信号,电脑端是采用labview软件制成的简单的动态描绘心电波形的图。

2013-12-09

usb_camera

用于在友善之臂嵌入式板子上跑的usb camera应用程序,从usb camera取出数据然后保存为图片文件并显示在LCD屏幕上

2013-12-05

MyDrivers驱动文件

利用基本的驱动核心理论完成了按键驱动和beep驱动

2013-11-11

mfc创建DLL

里面有创建DLL文件的例子和使用这个DLL文件的例子,用于学习

2013-10-05

MassStorageClass协议文档

MassStorageClass协议文档共4个,其中有USB BulkOnly协议、也有USB UFI协议、也有USB MassStorageClass协议

2013-09-28

CATC抓取的UFI数据

CATC仪器抓取的UFI Command的数据

2013-09-24

USB枚举失败会复位.usb

USB枚举失败会复位用CATC抓的过程中的数据,便于分析USB协议

2013-09-23

c8051f320_USB枚举过程.usb

C8051F320USB设备成功枚举,用CATC抓的过程的数据

2013-09-23

51单片机内部RAM

51单片机内部ram的分配,叙述small和large模式

2013-08-20

QT连续显示多幅图片看起来像动画

在window的qt creator平台上开发的,qt定时器的方法连续播放几幅图片看起来像动画,而且运行时外围的窗体都被透明化了,只有显示破壳而出的小鸡的动画,在你的桌面上随意拖动。

2012-12-14

51单片机控制DS18B20

51单片机控制DS18B2020的例子程序,里面还有proteus仿真的程序,你可以在这个程序的基础上扩展

2012-12-08

test1_lib_app.rar

MFC动态库的创建的代码在test1_lib的目录下,MFC动态库调用的代码在test1_app的目录下

2019-07-13

devmem tool

用于linux系统读取或者写入寄存器或者内存的值,调试驱动的时候会有帮助

2018-12-20

audio应用层播放代码

audio应用层的播放参考代码,调用alsa lib的API。内含编译和使用的Readme

2018-10-22

linux framebuffer application

使用/dev/fbx设备节点,能够读取framebuffer的信息,并且在framebuffer上显示

2018-10-12

绑定进程到指定cpu

绑定进程到特定cpu去执行,只是一个简单的例子,直接可以通过gcc编译好了在pc上运行。

2018-09-18

fft算法c语言实现

c语言实现的fft算法,代码中先做码位置换,再做蝶形运算

2018-05-16

linux控制cpu占用率

在Linux平台下通过程序控制cpu占用率,最好在空闲的机器上测试

2018-01-30

minimad.tar.gz

使用libmad的一个example,可以解码mp3文件为pcm文件,mp3文件和解码出来的pcm文件都在里面了

2018-01-05

easyBSD2.3

在网上下载的easyBSD,用于添加开机启动选项,试过挺好用的

2016-09-13

内存模拟块设备驱动程序

与ldd3第十六章块设备驱动程序相关的代码,基于3.10内核接口的实例

2016-06-27

Kbuild分析

Kbuild系统实现分析,Kconfig和Makefile语法

2016-02-16

实现内核seq操作的例子

实现内核seq的操作的例子,可以自己放到内核中编译试试

2016-02-04

内核proc文件系统的代码

调用了linux内核提供的操作proc文件系统接口的函数,一个小例子。

2016-02-03

mmap内核驱动与应用程序

里面包括 1. 一个用户空间的mmap将文件映射到内存进行操作的例子 2. 一个mmap内核驱动及对应的mmap用户空间的程序。

2016-02-02

debugfs例子程序

linux文件系统中的debugfs程序小例子

2015-12-20

dma控制器操作

使用s3c2440的DMA控制器搬运内存数据和使用cpu搬运数据

2015-09-30

dma映射函数

主要讲3个dma的函数,dma_alloc_coherent,dma_poll_create, dma_map_single使用实例

2015-09-30

dma_operation.c

使用s3c2410的公共DMA控制器来搬运内存数据和使用cpu来搬运内存数据

2015-09-30

TCT40-16超声波传感器

超声波传感器TCT40-16,由发送和接收两个构成,这个是文档介绍

2015-09-13

linux内核异步通知用户空间fasync

linux内核异步通知用户空间fasync,使用内核提供的fasync_helper和kill_fasync两个函数

2015-08-26

空空如也

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

TA关注的人

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