自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 STM32 DCMI调试

之前调试一款摄像头没有仔细读stm32数据手册,用库函数写的,sensor的数据手册配置和dcmi配置的HSYNC和VSYN都是低电平有效,读摄像头sensor示波器波形也是低电平有效,但是数据就是读不出来。摄像头HSYNC和VSYN信号:之后读stm32的数据手册时发现DCMI_CR寄存器:此位指示数据在并行接口上无效时 HSYNC 引脚的电平。所以stm32 DCMI接口HSYNC和VSYN的...

2018-03-08 12:43:01 3515 1

原创 cypress dma简介

FX3 DMA  架构的基本情况FX3 器件有一个内部 DMA 结构,用来将 GPIF II 接口连接至内部系统存储器和其他串行外设。通过 GPIF II 接口传输的所有数据都是传入/传出内部存储器缓冲区的。通过在 FX3 上运行的固件应用将该数据路径(使用 DMA 结构)连接至合适的发送器或接收器(如 USB 主机或串行外设)。1 套接字 (Sockets )USB 3.0 器件上的每一个端口都...

2018-02-26 18:00:58 983

翻译 can总线

控制器区域网络(CAN)总线是一种“车辆总线标准设计允许微控制器和设备互相沟通,在车辆没有主机。“这些设备也被称为电子控制单元(ECU)。基本上是一堆与CAN总线的ECU内,每个基于广播通信的车辆。每个ECU拦截每一个广播,但单独决定是否对它作出反应。下面举个例子:让我们想象一下,有一个ECU控制刹车灯,一个ECU控制汽车喇叭,一个ECU控制刹车系统。每当你吹喇叭,喇叭ECU发送一个广播信息在CA...

2018-02-23 10:11:14 389

转载 工作项、工作队列和工作者线程

工作项、工作队列和工作者线程  把推后执行的任务叫做工作(work),描述它的数据结构为work_struct ,这些工作以队列结构组织成工作队列(workqueue),其数据结构为workqueue_struct ,而工作线程就是负责执行工作队列中的工作。系统默认的工作者线程为events。  工作队列(work queue)是另外一种将工作推后执行的形式。工作队列可以把工作推后

2016-02-17 11:46:45 881

转载 linux I2c设备注册

OMAP3630 I2C device驱动    在Linux内核中,I2C device驱动位于drivers/i2c/chips目录下,可以看到该目录下有很多相关的device驱动,这里以xxxx项目的mma7455为例介绍device驱动的注册过程,对应的device驱动程序为mma7455.c。    既然有device驱动,那么必定有相应的device,I2C的device是

2015-12-09 17:43:43 2185

转载 linux下i2c驱动

1. 几个基本概念1.1. 设备模型由 总线(bus_type) + 设备(device) + 驱动(device_driver) 组成,在该模型下,所有的设备通过总线连接起来,即使有些设备没有连接到一根物理总线上,linux为其设置了一个内部的、虚拟的platform总线,用以维持总线、驱动、设备的关系。因此,对于实现一个linux下的设备驱动,可以划分为两大步:

2015-12-09 16:22:49 434

转载 蓝牙HID协议笔记

1.概述The Human  Interface  Device (HID)定义了蓝牙在人机接口设备中的协议、特征和使用规范。典型的应用包括蓝牙鼠标、蓝牙键盘、蓝牙游戏手柄等。该协议改编自USB HID Protocol。2.一些概念(1)HID Reports:Bluetooth  HID Device  支持三种:Reports: Input、output、Feature. 

2015-03-19 10:18:05 2042

转载 S3C6410的IROM启动模式

IROM启动(internal ROM Booting),IROM启动是指从OneNAND、SD/MMC卡和NAND Flash存储设备启动的方式,见下图,描述了6410支持的启动模式。图1 1.IROM启动方式的图解图2上图的启动流程根据进一步细化为下面的流程,结合图1和图2理解:1)      处理器上电后,当OM[4:1]=11

2014-07-04 10:56:04 562

转载 linux yum命令详解

linux yum命令详解yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,

2014-06-25 08:53:05 353

转载 APUE学习——Posix线程(2)

线程是CPU调度的最小单位,也就是说一个进程中的多个线程是以不定的调度顺序并发执行的。而一个进程中的多个线程是共享内存资源的,这里就引出了一个概念----临界资源,多个线程都可以访问的资源,而线程中访问临界资源的代码段称为临界区。如果多个线程都有同一个临界资源的临界区,那这些线程的调用顺序不同得到的结果就可能不同,这时我们就需要一些措施使线程按照我们的想法顺序执行从而避免这种情况情况,这个过程称之

2014-03-11 14:34:40 382

转载 APUE学习-线程(1)

线程(thread)----轻量级的进程、CPU调度的最小单位,相比较于进程,进程是分配资源的最小单位。之前讲到的是多进程编程,这一部分要说的是如何在一个进程中实现多线程编程(当然将进程部分的内容放到一起,就可以实现多进程多线程编程)。POSIX(可移植性操作系统接口)规定了可移植性的线程库pthread库,这里面的函数需要在编译时加上-lpthread(-pthread)参数,pthre

2014-03-07 17:44:05 445

转载 函数指针和指针函数

一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针     类型标识符    *函数名(参数表)      int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变

2014-03-07 16:51:30 359

转载 APUE--信号(4)

signal()有个高级版本的函数sigaction(),这个函数功能上要比signal()强大且具有可移植性[cpp] view plaincopyint sigaction(int signum, const struct  sigaction *act, struct sigaction *oldact);  第一个参数sign

2014-03-06 14:25:11 525

转载 APUE学习--信号(3)

1、信号集本篇文件介绍信号集的概念。信号集就是一些信号的集合,类型是sigset_t,这个类型是不透明的,当然可以找到头文件仔细研究但意义不大。该类型所涉及的操作函数如下:[cpp] view plaincopyint sigemptyset(sigset_t *set);  //初始化信号集set为空,不包含任何信号  int

2014-03-06 14:24:25 571

转载 APUE学习--信号(2)

这篇文章详细说明信号产生的方法。终端按键、kill命令、硬件条件,这些是系统为我们定义好的,并且与编程无管,所以不多说了。1、kill和raise函数kill()函数,功能是向指定的进程或进程组发送指定的信号。raise函数则是允许进程向自身发送信号。[cpp] view plaincopyin

2014-03-05 16:58:13 478

转载 APUE--信号1(自己的补充)

信号是软件中断。信号提供了一种处理一步事件的方法。1、信号的概念产生信号的条件:(1)当用户按某些终端键时,引发终端缠身的信号。(如ctrl+c通常产生中断信号(SIGINT)  ctrl+\通常产生中断信号(SIGQUIT))。(2)硬件异常产生信号。除数为0、无效的内存引用等等。这些条件通常由硬件检测到,并将其通知内核,然后内核为该条件发生时正在运行的进程产生适当的信号。

2014-03-05 15:36:16 515

转载 转载 apue学习笔记1

1:流的定向决定了读取的是多字节还是单字节的流,当一个流最初被创建的时候,并没有被定向,若在一个未定向的流上使用一个多字节的IO函数,则将该流定向设置为宽定向的,反之在未定向的流上使用一个单字节的IO函数,则将该流的定向设置为字节定向的。2:有两个函数可以改变流的定向,分别是freopen和fwide3:int fwide(FILE *fp, int mode);  若流是宽定

2014-03-04 14:58:17 515

空空如也

空空如也

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

TA关注的人

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