驱动07.USB驱动程序

1 了解USB识别的过程eg:在Windows系统下的一个现象:把手机的USB设备接到PC  1. 右下角弹出“发现android phone“  2. 跳出一个对话框,提示你安装驱动程序问1. 既然还没有“驱动程序“,为何能知道是“android phone“答1. windows里已经有了USB的总线驱动程序,接入USB设备后,是“总线驱动程序“知道你是“android phone“
阅读本文

驱动09.nand flash

1 nand flash的操作目的:读地址A的数据,把数据B写到地址A。问1. 原理图上NAND FLASH和S3C2440之间只有数据线,怎么传输地址?答1.在DATA0~DATA7上既传输数据,又传输地址,当ALE为高电平时传输的是地址。问2. 从NAND FLASH芯片手册可知,要操作NAND FLASH需要先发出命令     怎么传入命令?答2.在DATA0~DATA7上既传输数据,又传输
阅读本文

驱动08.块设备驱动程序

1 块设备的概述  linux支持的两种重要的设备类型分别是字符设备和块设备,块设备可以随机地以固定大小的块传送数据。与字符设备相比,块设备有以下几个特殊之处:  (1)块设备可以从数据的任何位置进行访问  (2)块数据总是以固定长度进行传输,即便请求的这是一个字节  (3)对块设备的访问有大量的缓存。当进行读时,如果已经缓存了,就直接使用缓存中的数据,而不再读设备,对于写也通过缓存来进行延迟处理
阅读本文

Windows Server 2016- Windows Server 2016 上 HYPER-V 中的新增功能

升级的虚拟机版本。与连接待机兼容 (新)在使用始终 On/Always 连接 (AOAC) 电源模型,该模型的计算机上安装 HYPER-V 角色时 连接待机 电源状态现已可用。离散式设备分配 (新)此功能允许你授予虚拟机对某些 PCIe 硬件设备的直接和独占访问权限。 以这种方式使用设备将绕过 Hyper-V 虚拟化堆栈,使访问更迅速。 受支持的硬件的详细信息,请参阅“离散设备分配“中 HYPER
阅读本文

Linux驱动之配置内核

Linux在嵌入式系统中大受欢迎的一个重要因素就是开源,开源的特性决定了Linux内核可以根据个人的需求进行裁剪,裁剪内核就是根据你的硬件资源,将一些不需要的驱动裁剪掉,再把一些原本没有的驱动添加到内核,那么配置好的内核就适用于你特定的硬件平台。配置内核时,make zImage   make menuconfig,还有  .config    Kconfig  Makefile文件,以讯为iTo
阅读本文

I2C设备驱动的编写(一)

I2C总线是有Philips公司开发的,它是一种比较简单的总线,接线简单:只有两根线数据线(SCL)和时钟线(SDA),控制简单。所以一些封装较小的器件多使用I2C总线,常见的使用I2C总线的设备有EEPROM、rtc及一些传感器。这里我们介绍下基于linux的I2C设备驱动的编写。 I2C设备驱动的编写有多种方式: 一种是直接操作CPU的I2C控制器,正对于某一个设备写一个字符驱动,这种
阅读本文

PADS在画好的电路图上修改元件的封装

在画好的电路图上修改元件的封装现在有一个电路图PCB,其中的一个元件的中间接地焊盘引脚要接地,但是原理图上却是没有的,现在造成必须要在ECO模式下增加地和这个焊盘的走线,这样我觉得很不好,比如,我现在要改变布局,而这些ECO的线都将要被修改一遍,这很麻烦,所以现在想在原理图上增加一个管脚,layout图如下:现在我已经在原理图上增加了一个管脚9:PCB封装如下: 但是现在发现不管我怎么生成PCB都
阅读本文

NVIDIA Jetson TX1(5)

4.0     管脚定义TX1有多种用途的管脚(MPIO),每个MPIO能配置作为GPIO,也可能分配为特殊用处的I/O控制器。虽然每个MPIO有多达5个功能(GPIO功能和多达4个SFIO功能),一个特定的MPIO在某一时刻只能被分配一个任务,每个脚的功能是固定为一个SFIO或作为一个GPIO,差分MPIO脚能共享一个类似结构,但是这些不同变种使得板子上元件最少化(比如电平偏移芯片和上拉电阻)。
阅读本文

at91 看门狗

看 门狗的驱动一般来说比较简单,只要做寄存器的设置实现开启、关闭、喂狗功能。本项目中我们使用的是at91sam9g45处理器,带有看门狗定时器。这个 看门狗的驱动却比较复杂,应用层想用它的话,将涉及到boot引导设置,uboot配置及驱动,改写驱动程序。下面将逐步说明。1、boot引导(bootstrap-v1.14)由于该看门狗的MR寄存器只能写一次(Only a processor reset
阅读本文

嵌入式Linux-LCD显示多行文字

显示文字这里我用了freetype库。以左上角显示两行文字:#include <sys/types.h> #include <sys/stat.h> #include <sys/mman.h> #include <linux/fb.h> #include <stdio.h> #include <fcntl.h> #include <unistd.h> #include <string.h> #in
阅读本文

imx6 usb bluetooth的连接与文件传输

开发平台:imx6dl 开发环境:yocto poky1.7(linux kernel 3.14.28) 参考文档:fsl-6dl-source/sources/meta-fsl-bsp-release/imx/meta-fsl-bluez/readme-bluez.txt(源码提供的文档说明)+网上资料博客 内核配置: <*>Networking support ----> <*
阅读本文

fork函数的小误区

对于fork这个函数相信大家都不陌生。我们知道他会创建一个子进程,返回两个值,也有fork会返回两次这么个说法。那今天在这里我们就来整理一下对这个函数的认识。对于fork会返回两次这个说法我不知道大家都是怎么理解的,“返回一次然后又返回了一次”,在刚接触这个函数的时候有许多同学都是这样认为的。那在这里呢我们就来对这个说法进行一下剖析。首先我们知道,在进程内调用fork之后,如果调用成功会怎样啊?没
阅读本文

Arduino Uno + 光耦继电器 弱电控制强电 实验

这个弱电控制强电,隔离等作用等等 关于常闭,常开,不同模块位置不同,请用万用表蜂鸣档测试,确认正确的常开端和常闭端。 实验效果用光耦继电器控制LED的亮和灭 BOM表Arduino Uno                             * 1继电器(光耦隔离继电器)    *1LED发光二极管                        *11kΩ 电阻
阅读本文

wm8960驱动:裸机代码研读

网上已经有基本的wm8960驱动的demo。可以播放特定频率的wav文件。这个程序很具有参考性。 我们知道,初始化wm8960,需要大概的步骤如下: 1.初始化I2C总线,通过I2C接口给wm8960下配置命令。 2.将声音文件加载到memory中 3.初始化I2S,并把内存中的数据通过I2S总线送给wm8960,从而wm8960通过解码播放出声音 我们大概来看一下,这个代码的实现过程:
阅读本文

嵌入式开发板丨ARM开发板 学习必备资料- 迅为电子

摘要: ARM开发板 迅为三星Exynos嵌入式开发平台超强GPS模块 iTOP-Exynos4412开发板采用 Exynos4412的主芯片,具有更高的主频和更丰富外设,配置 2GB 双通道 DDR3的内存及 16GB 存储,具有稳定性强、可靠性高,能适用于对性能和处理能力有更高要求的嵌入式系统应用场合。 iTOP-Exynos4412开发板内置有无线 WIFI 模块、Bluetooth、G
阅读本文

UE(ultraedit)技巧(很多数据时设置换行 列模式的使用)

很多数据时设置换行有一个文件数据如下: 这时候想把这些数据弄成一个C语言数组,这时候第一步看到最大的麻烦就是,这些数据之间都没有换行,这就十分的难弄,如果数据很多很多,那分行工作就十分的繁重,这时候就要想到使用工具了,这里先把这些数据弄成16个字节一行,步骤如下(参考https://zhidao.baidu.com/question/501228815.html):这时候数据显示如下:这时候我们还
阅读本文

S5PV210内存外存及启动方式

内存: SRAM 静态内存 特点就是容量小、价格高,优点是不需要软件初始化直接上电就能用 DRAM 动态内存 特点就是容量大、价格低,缺点就是上电后不能直接使用,需要软件初始化后才可以使用。 单片机中: 内存需求量小,而且希望开发尽量简单,适合全部用SRAM 嵌入式系统:内存需求量大,而且没有NorFlash等可启动介质 PC机: 内
阅读本文

Linux中IIC总线驱动分析

虽然I2C硬件体系结构比较简单,但是I2C体系结构在Linux中的实现却相当复杂.通过阐述Linux系统中I2C总线体系结构,在此基础上完成嵌入式Linux系统中I2C总线驱动的开发.1. 嵌入式Linux中I2C驱动程序分析I2C(Inter2IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.嵌入式系统中,微控制器通过I2C总线
阅读本文

嵌入式程序员的工作需求和所需做的事情

嵌入式程序员是在基于硬件平台的底层程序员。  嵌入式程序员的工作需求有三:移植BSP、编写驱动程序、编写驱动测试程序,其中要属编写驱动的工作量比较多。  嵌入式程序员需要经常做的事情为三方面:查看数据手册、查看电路原理图、了解协议。 做这些事情的目的就是编写代码。  编写驱动工作量比较多的原因是:ARM9、ARM11等各类芯片比较多,芯片有许多的外设功能,每一个外设都需要驱动,所以,主要的工
阅读本文