自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (11)
  • 收藏
  • 关注

转载 s3c6410的GPIO驱动总结

1、查看gpio状态:头文件中int gpio_request(unsigned gpio, const char *label); ,该函数的功能是通过查看该gpio保存的记录标志是否为NULL来判断GPIO是否被占用,并把此gpio取名为*lable。                              例如:if(gpio_request(S3C64XX_GPB(0), "GPB"

2015-11-24 18:37:24 711

转载 error:unknown field ioctl specified in initializer

在linux-2.6.36内核上加载编译驱动时,出现 error:unknown field 'ioctl' specified in initializer原因是:在2.6.36内核上file_operations发生了重大的改变:原先的  int (*ioctl)(struct inode*, struct file*, unsigned int

2015-11-24 17:40:41 352

转载 IS_ERR()函数详解

内核中的函数常常返回指针,问题是如果出错,也希望能够通过返回的指针体现出来。 总体来说,如果内核返回一个指针,那么有三种情况:合法指针,NULL指针和非法指针。1)合法指针:内核返回的指针一般是指向页面的边界(4K边界),即 ptr & 0xfff == 02)非法指针:这样ptr的值不可能落在(0xfffff000,0xffffffff)之

2015-11-23 20:52:33 8258

转载 Linux内核register_chrdev_region()系列函数

内核提供了三个函数来注册一组字符设备编号,这三个函数分别是 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()。其中,register_chrdev_region()是为提前知道设备的主次设备号的设备分配设备编号。alloc_chrdev_region() 是动态分配主次设备号。register_chrd

2015-11-22 18:44:37 488

转载 Linux之dev详解

一.前言以前对于cdev仅仅是知其然,而不知其所以然。在本文中,将深入理解cdev的架构以及具体的实现。二.真实的cdev2.1 设备号搞驱动的都应该知道的东西,在写gpio驱动时,往往会用到以下两个函数。alloc_chrdev_region     --自动分配设备号register_chrdev_region  --分配以设定的设备号。上面两个函数的调用很

2015-11-21 18:54:55 1549

转载 一步一步写misdevice

对于linux的驱动程序来说,主要分为三种: miscdevice、platform_device、platform_driver  。这三个结构体关系: (基类) kobject -------------------- /     \                    \ /       \                     \ device     cdev  

2015-11-21 18:45:44 840

转载 嵌入式Linux函数之printfk()函数

1概述:  printk相当于printf的孪生姐妹,她们一个运行在用户态,另一个则在内核态被人们所熟知。但是根据不同的操作系统也会有不一样的效果,例如编写一个hello word 内核模块,使用这个函数不一定会将内容显示到终端上,但是一定在内核缓冲区里,可以使用dmesg.查看效果。  对于做嵌入式或者熟悉linux内核的人来说,对printk这个函数一定不会感到陌生。printk是

2015-11-19 21:34:09 1982

转载 int类型和char类型的区别

比较下面三个定义式的区别:int i = 1;char i = 1;char i = '1';int用来定义整型变量,char用来定义字符型变量,要清楚的知道三个定义式的区别,可以比较它们在内存中的存储形式。数据在内存中是以二进制形式存放的,而且是以补码表示的。一个正整数的补码和该数的原码(即该数的二进制形式)相同;如果数值是负的,求补码的方法是:将该数的绝对值的二进制形式,按

2015-11-16 21:11:17 24698

转载 如果让我重做一次研究生

王汎森 院士 / 中央研究院历史语言研究所这个题目我非常喜欢,因为这个题目,对大家多少都有实际的帮助。如果下次我必须再登台演讲,我觉得这个题目还可以再发挥一两次。我是台大历史研究所毕业的,所以我的硕士是在台大历史研究所,我的博士是在美国普林斯顿大学取得的。我想在座的各位有硕士、有博士,因此我以这两个阶段为主,把我的经验呈现给各位。我从来不认为我是位有成就的学者,我也必须跟各位坦白,我为了要

2015-11-16 21:08:51 564

原创 嵌入式Linux应用程序常用到的几个函数

sizeof一、sizeof的概念    sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。    它并不是函数。    sizeof操作符以字节形式给出了其操作数的存储大小。    操作数可以是一个表达式或括在括号内的类型名。    操作数的存储大小由操作数的类型决定。    二、sizeof的使用方法   1、用于数据类型   

2015-11-16 10:40:12 622

原创 嵌入式Linux的几个小问题

帖子中的问题都是一些很基本的问题,是我在学习嵌入式Linux中遇到的一些问题,自己在网上搜到答案并且贴出来。  1 linux驱动和应用程序关系?  驱动程序运行在内核空间,而应用程序运行于用户空间。一般情况下应用程序是不能直接访问硬件的,但最终程序的执行结果必然是要到硬件的,这时就需要驱动程序。打个比方,你要将一段字符写进硬盘,你在应用程序中是以文件的抽象方式进行的,但是在这个层

2015-11-14 18:12:33 583

转载 va_start和va_end的用法详解

本文为转载,转载地址为:http://www.cnblogs.com/hanyonglu/archive/2011/05/07/2039916.html   主要介绍va_start和va_end的使用及原理。   介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理: 1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表void

2015-11-03 20:40:33 551

F407的ADC多通道采样+DMA

stm32f407的ADC多通道采样,同时用到了DMA

2016-11-07

QT实现简单串口

QT实现最简单的串口,可以完成HEX发送与接收

2016-10-23

串口检测工具

串口检测工具,不占用串口

2016-10-09

SP3232芯片手册(英文版)

SP3232芯片英文手册

2016-10-06

MAX232英文手册

MAX232英文手册

2016-10-06

CRC16计算器

CRC16校验工具

2016-10-02

stm32低功耗之待机模式

基于stm32低功耗的待机模式程序,为野火的原版程序,适用于野火指南者(MINI开发板),我在这个程序里面加了一些注释,更加详细的程序分析请参考我相关的博客

2016-09-16

基于stm32的超声波测距

基于stm32的超声波测距模块,程序的讲解可以参考我相关的博客

2016-06-05

基于STM32的ADC采样(双通道)

基于STM32的ADC采样(双通道)

2016-05-12

基于STM32的ADC实验(单通道)

基于STM32的ADC实验(单通道)

2016-05-12

基于是stm32的PWM呼吸灯

和CSDN上的同名博客想配套的程序,基于stm32,使用定时器来实现控制IO口输出PWM波形,从而是LED灯出现类似呼吸的现象。

2016-05-07

空空如也

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

TA关注的人

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