linux底层驱动
文章平均质量分 87
蜗牛哦
大家好!我是一名ARM嵌入式爱好者,欢迎大家跟我交流,谢谢!
展开
-
git 放弃本地修改
如果在修改时发现修改错误,而要放弃本地修改时, 一,未使用 git add 缓存代码时。可以使用 git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘记中间的 “--” ,不写就成了检出分支了!!)。放弃所以的文件修改可以使用 git checkout . 命令。此命令用来放弃掉所有还没有加入到缓存区(就是 git a...转载 2018-02-28 11:29:42 · 1063 阅读 · 0 评论 -
linux命令行中通过ssh复制文件(scp)到远程服务器(转载)
经常需要从一台服务器复制一些文件到另一台服务器,则需要用到远程复制 命令:scp如:从已登录的服务器1 (192.168.1.1)复制目录/usr/a 到服务器2 (192.168.1.2)的/usr目录 下,命令如下:scp -r /usr/a root@192.168.1.2:/usr/回车之后等待片刻,提示输入服务器2的密码 ,输入正确密码之后,开始复制目录a转载 2016-06-23 10:19:29 · 1000 阅读 · 0 评论 -
Linux I2C工具查看配置I2C设备
在處理音訊相關的問題時,我通常會找個方法來讀寫codec中register的值。幸好linux上也有這樣的工具 – i2c tools。先到lm-sensors下載soure code,然後cross compile成arm的執行檔,就可以放到板子來試試看了。i2c-tools中含有四個執行檔i2cdetect – 用來列舉I2C bus和上面所有的裝置i2cdump – 顯示转载 2016-07-28 14:55:21 · 2963 阅读 · 1 评论 -
Linux上挂载新硬盘
(一)查看硬盘分布和对新硬盘进行分区[root@cncmail data1]# fdisk -l ## 这里是查看目前系统上有几块硬盘Disk /dev/sda: 36.4 GB, 36401479680 bytes 255 heads, 63 sectors/track, 4425 cylinders Units = cylinders of 16065 * 512 = 82转载 2016-06-06 11:20:07 · 534 阅读 · 0 评论 -
更改linux文件系统为只读的方法
只要在etc目录下搜索这个文件S10checkroot.sh 然后把rw模式--->ro模式就可以了内核启动的时候,在内核中把ubifs文件系统挂载为rw模式,然后系统启动后通过S10checkroot.sh 脚本修改为ro模式,如果系统启动的进程太多的话,再去修改为ro模式,系统会报错busy修改后通过mount命令查看,已经修改为只读模式root@HDMTerm:~原创 2016-06-03 17:00:06 · 16137 阅读 · 0 评论 -
sysfs接口函数到建立_DEVICE_ATTR
sysfs接口函数到建立_DEVICE_ATTR最近在弄Sensor驱动,看过一个某厂家的成品驱动,里面实现的全都是sysfs接口,hal层利用sysfs生成的接口,对Sensor进行操作。说道sysfs接口,就不得不提到函数宏 DEVICE_ATTR原型是#define DEVICE_ATTR(_name, _mode, _show, _store) \s转载 2016-05-16 17:09:37 · 396 阅读 · 0 评论 -
UBI介绍
UBI介绍目录(?)[-]Table of contentsBig red noteUser-space toolsUBI headersUBI volume tableImplementation detailsMinimum flash inputoutput unitNAND flash sub-pagesFlash space转载 2016-05-28 11:39:46 · 642 阅读 · 0 评论 -
linux之学习live555视频笔记
开发板上交叉编译live555步骤笔记交叉编译live555MediaServer流媒体服务器RTP/RTCP, RTSP, SIPluther@gliethttp:~/live$ vi config.armlinux修改为CROSS_COMPILE=arm-linux-如果静态编译还需要做如下设置config.armlinux如下2处加入-static编译选项COMPILE_OPTS原创 2016-04-16 15:39:04 · 1926 阅读 · 0 评论 -
回调函数
在看LWIP时,见到用回调函数,再看某老外公司OPC源代码时,见到用回调函数。看我国内某些代码(我公司软件等)时没用到。于是,我对回调函数产生了很大的好奇。以前,我写VC程序时用到过回调函数,但是没有用C语言来使用。最近,看到国外大量的经典代码中广泛使用了回调函数(LWIP、某两个公司的OPC程序等),都是C语言来实现的,而不是VC windows程序中别人实现自己使用的那种。为了弄明白这种函转载 2016-04-11 17:56:18 · 506 阅读 · 0 评论 -
spi驱动之can总线mcp2515驱动测试
问1:linux内核.config Makefile Kbuild的关系?答1:在word里可以找到答案问2:因为mcp2515是spi转can芯片,所以首先移植spi驱动,分析spi驱动过程答2:----------------------------spi驱动整体框架---------------------------------------------原创 2016-04-14 10:35:18 · 12269 阅读 · 0 评论 -
linux下移植电容屏驱动gt9xx 笔记
# evtest /dev/event0或者# hexdump /dev/event0//////////////////////////////////////////////分析:\drivers\i2c\busses\I2c-digicolor.cstatic struct platform_driver i2c_dc_driver = { .probe原创 2016-04-09 17:09:09 · 7409 阅读 · 0 评论 -
启动linux文件系统遇到的问题记录
1.通过secure CRT连接Ubuntu时,如果出现小方框表示连接不上,查看Ubuntu的ip地址。2.pc宿主机与开发板直接连接时必须用交叉网线,如果中间通过交换机连接必须用直连网线。3原创 2016-04-09 17:07:38 · 446 阅读 · 0 评论 -
linux之块设备驱动程序
框架:app: open,read,write "1.txt"--------------------------------------------- 文件的读写文件系统: vfat, ext2, ext3, yaffs2, jffs2 (把文件的读写转换为扇区的读写)-----------------ll_rw_block----------------- 扇原创 2016-04-09 17:06:19 · 717 阅读 · 0 评论 -
i2c测试工具的使用
i2c测试工具的使用查找i2c几条总线root@HDMTerm:~# i2cdetect -li2c-1 i2c OMAP I2C adapter I2C adapteri2c-2 i2c OMAP I2C adapter I2C ad原创 2016-07-30 11:24:17 · 4653 阅读 · 0 评论 -
DM8168的互连与内存映射
DM8168的互连与内存映射DM8168是多处理器系统,每个子系统或处理器都有自己的内存和内存映射的寄存器。为了简化软件开发,使用一个统一的内存映射,这样从所有总线Master方来看芯片资源具有了一致性。整个系统内存映射被划分为4个1GB的quadrant,用于目标地址空间的定位。4个quadrant:Q0、Q1、Q2和Q3总计4-GB 的32位地址空间。(HDVPSS包括一个第33位地址转载 2016-07-21 15:37:11 · 890 阅读 · 0 评论 -
S3C2440 存储器地址映射
一、S3C2440存储控制器如果大家写过S3C2440的ARM裸机程序都应该知道通常SDRAM的起始地址是0X30000000,但是大家有没有想过为什么呢?下面我将给大家做一个简要的介绍。查S3C2440的手册可知S3C2440可寻址1G的地址范围,但是S3C2440的地址线只有27根,理论上只能寻址2的27次方等于128M的地址范围。于是S3C2440通过一个叫BANK的东东解决转载 2016-07-21 16:00:43 · 3656 阅读 · 0 评论 -
【已解决】*** Warning - bad CRC or NAND, using default environment
when uboot start,dispaly following info:U-Boot 1.1.6 (Mar 19 2008 - 14:02:12)DRAM: 32 MBNAND: 1024 MiB*** Warning - bad CRC or NAND, using default environmentso google and find ,the*** Warning - bad C转载 2018-01-19 09:50:10 · 4530 阅读 · 0 评论 -
如何制作ramdiskfs
如何制作ramdiskfs问1:制作ramdiskfs,需要内核启动,内核需要配置哪些选项功能?答1:1.修改内核选项 a):General setup-->选择 Initial RAM filesystem and RAM disk...... 项b):Device Drivers-->Block devices-->选择 RAM block device suppor原创 2017-09-15 09:07:11 · 834 阅读 · 0 评论 -
U-Boot启动过程完全分析
Posted on 2010-07-17 21:31 苍梧 阅读(83106) 评论(21) 编辑 收藏 1.1 U-Boot工作过程 U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能Ø 硬件设备初始化Ø 加载U-Boot第二阶段代码到RAM空间Ø 设置好栈Ø 跳转到第二阶段代码入口转载 2017-06-05 18:10:55 · 487 阅读 · 0 评论 -
DM8168]DSP与FPGA通信调试笔记之一——通过GPMC接口用EDMA传送
[DM8168]DSP与FPGA通信调试笔记之一——通过GPMC接口用EDMA传送硬件:TI达芬奇TMS320DM8168(以下简称DSP)、EP4CE6E22C8N(以下简称FPGA)软件:linux-2.6.37转载请注明出处~http://www.cnblogs.com/imapla/p/4122609.html 近期项目需要实现DSP与FPGA之转载 2017-02-27 17:26:29 · 2366 阅读 · 0 评论 -
DM8168裸机调试-GPMC+FPGA
目录(?)[-]前言一硬件原理图二程序1GPMC初始化2FPGA操作3 时序参数三已解决疑问点1基地址和掩码地址设置原则32片选容量验证33设置CS3片选区域有必要设置CS0-2片选区域CS0-2片选区域默认256MB吗4时序配置问题四待解答前言GPMC产生背景(个人理解):当调试nor flash、nand flash、FPGA、网卡等外部转载 2017-02-27 17:23:58 · 793 阅读 · 0 评论 -
linux gpio模拟i2c的使用
linux kernel 中的i2c-gpio使用 在linux中,我们可以自己来使用gpio来模拟i2c,但是万能的linux中其实也已经有了i2c的东东了。 现在看看i2c-gpio.c文件中到底提供了哪些接口[cpp] view plain copystatic void i2c_gpio_setsda_dir(void *data, int st转载 2016-12-27 14:59:31 · 1003 阅读 · 1 评论 -
DM8168的PCIE2.0使用笔记
目录(?)[-]概述DM816x FeaturesDM816x Feature Not SupportedMemory Map Registers MapRC EP模式选择寄存器REFCLK 100Mhz误差-300ppmonly one interface link250Mhz ClockPCIe and OCPInter address translating51000000-5100转载 2016-12-02 16:07:52 · 1499 阅读 · 0 评论 -
UBIFS学习笔记之一(查看打印信息)
在做项目的时候,发现flash芯片有异常现象,经过打印分析,发现是UBIFS方面设置有一些问题,经过查阅一部分资料,最终得到问题的答案。在解决问题的过程中,发现打印信息比较重要,但网上并没有直接的相关资料,最后将自己总结的东西总结如下:先看打印信息,打印信息如下:UBI: attaching mtd3 to ubi3UBI: physical eraseblock size: 1转载 2016-11-30 17:51:03 · 1754 阅读 · 0 评论 -
ethtool---查看网卡以及修改网卡配置工具
ethtool 命令详解命令描述:ethtool 是用于查询及设置网卡参数的命令。使用概要:ethtool ethx //查询ethx网口基本设置,其中 x 是对应网卡的编号,如eth0、eth1等等ethtool –h //显示ethtool的命令帮助(help)ethtool –i ethX //查询ethX网口的相关信息转载 2016-09-26 14:51:40 · 33769 阅读 · 0 评论 -
SPI中的极性CPOL和相位CPHA是什么以及如何设置
【背景】最近在看关于Silicon Labs的C8051F347的某个驱动中,关于SPI部分初始化的代码,看到其对于SPI的设置为CPOL=1,CPHA=0,对于CPOL及CPHA的含义不了解,想要搞懂,这两个参数到底是什么意思,以及为何要这么设置。所以才去找了SPI的极性和相位的相关资料,整理如下。【SPI基础知识简介】设备与设备之间通过某种硬件接口通讯,目前存在很多转载 2016-09-19 16:18:13 · 805 阅读 · 0 评论 -
DM8168平台中完成gv7601的spi总线驱动笔记
问1: 首先测试spi驱动自发自收,对应8168哪些管脚,如何配置spi功能?答1: SPI_D0 SPI_D1 SPI_SCLK SPI_SCS0 SPI_SCS1 SPI_SCS2 SPI_SCS3 arch\arm\mach-omap2\Board-ti8168evm.c内核启动打印信息[ 0.3400原创 2016-09-19 16:12:35 · 3830 阅读 · 0 评论 -
linux下tftp使用(服务器和客户端)
linux下tftp使用(转一些命令) TFTP协议简介TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。下面就详细转载 2016-08-01 17:54:57 · 15460 阅读 · 0 评论 -
进程的三态模型
原创 2016-04-13 11:27:37 · 8579 阅读 · 0 评论 -
Linux ALSA声卡驱动之一:ALSA系统架构
Linux ALSA 系统架构ALSA 是Linux声卡驱动的架构,下面基于linux-2.6.32描述下ALSA系统架构。ALSA系统可以分为alsa-lib、alsa- driver,而alsa-driver又分为core层和底层硬件层。作为开发者,我们只需移植底层硬件层,根据自己硬件特性,实现底层的移植。而 core层基本属于ALSA标准框架,不需要自己实现。介绍ALSA框架,下面是转载 2016-04-12 16:46:20 · 3122 阅读 · 0 评论 -
linux输入子系统概念介绍
在此文章之前,我们讲解的都是简单的字符驱动,涉及的内容有字符驱动的框架、自动创建设备节点、linux中断、poll机制、异步通知、同步互斥、非阻塞、定时器去抖动。在这一节里,我们要引入linux的分离分层的概念,linux输入子系统是一个很好的代表,在讲解如何编写input子系统的驱动之前,我们理所当然的要先好好认识一下input子系统的框架。一、linux输入子系统的框架(摘自作者:刘洪转载 2016-04-08 10:56:16 · 562 阅读 · 0 评论 -
helloworld驱动加强版
helloworld——加强版这篇文章相比上一篇文章主要是增加了一个模块参数运行环境:TQ2440开发板,内核版本2.6.30.4开发环境:Window下的Source Insight以及PC机上的红帽企版5虚拟机实验环境前提条件:拥有一个制作好的NFS文件系统 /**********************************hellop.c***********转载 2016-04-08 10:52:46 · 456 阅读 · 0 评论 -
第一个驱动之helloworld
第一个驱动——helloworld运行环境:TQ2440开发板,内核版本2.6.30.4开发环境:Window下的Source Insight以及PC机上的红帽企版5虚拟机实验环境前提条件:拥有一个制作好的NFS文件系统/**********************************hello.c*************************************/#转载 2016-04-08 10:40:54 · 450 阅读 · 0 评论 -
linux字符驱动之自动创建设备节点
上一节中,我们是手工创建设备节点,大家肯定也会觉得这样做太麻烦了。问:能不能让系统自动创建设备节点?答:可以,linux有udev、mdev的机制,而我们的ARM开发板上移植的busybox有mdev机制,那么就使用mdev机制来自动创建设备节点。问:文件系统里,在哪里设置了mdev机制?答:在etc/init.d/rcS文件里有一句:echo /sbin/mdev > /pr转载 2016-04-08 10:38:30 · 373 阅读 · 0 评论 -
linux字符驱动之初见
学习驱动也有长达一年多的时间了,受益最深的就是看韦东山老师的视频,如今已经几乎将二期三期的视频全部看完,甚至已经将二期视频看过好几遍,为了再次加深印象,我将韦老师的源码自己全部编写一遍。将所有遇到的问题,记录在此。觉得看了韦老师的视频,再看其他视频都是弱爆了。由于是文章记录,不可能写的非常详细,只摘录关键点,想具体详细的深入,还请去看韦老大的视频吧。这篇文章是主要是讲解字符驱动的框架,并没有涉转载 2016-04-08 09:30:49 · 329 阅读 · 0 评论 -
linux字符驱动之自动创建设备节点
上一节中,我们是手工创建设备节点,大家肯定也会觉得这样做太麻烦了。问:能不能让系统自动创建设备节点?答:可以,linux有udev、mdev的机制,而我们的ARM开发板上移植的busybox有mdev机制,那么就使用mdev机制来自动创建设备节点。问:文件系统里,在哪里设置了mdev机制?答:在etc/init.d/rcS文件里有一句:echo /sbin/mdev > /pr转载 2016-04-08 09:27:46 · 293 阅读 · 0 评论 -
linux字符驱动之点亮LED
上一节中,我们讲解了如何自动创建设备节点,这一节我们在上一节的基础上,实现点亮LED。驱动里面能够用很多种方法实现LED驱动,其中有本节的字符驱动(最笨的方法)、混杂设备驱动、使用内核GPIO函数接口、使用通用的平台设备驱动的方法等。但是,不要因为本节是最笨的方法,就不学习了,对于初学者来说,循序渐进的学习是一种好习惯,好了,废话不多说,直奔主题。问:怎么写LED驱动程序?1.转载 2016-04-08 09:18:34 · 416 阅读 · 0 评论 -
linux字符驱动之中断按键
在上一节中,我们讲解了如何自动创建设备节点,实现一个查询方式的按键驱动。测试的时候,大家都看到了,使用查询式的方法,占用CPU的利用率高达99%,那么有没有好的办法来取代这惨不忍睹的方法呢?答案当然是有的。这一节里,我们使用中断的方法来实现按键驱动。问:内核的中断体系是怎么样的?答:ARM架构linux内核中,有5种常见的异常,其中中断异常是其一,Linux内核将所有中断统一编转载 2016-04-08 09:13:16 · 335 阅读 · 0 评论 -
linux字符驱动之查询按键
在上一节中,我们讲解了如何自动创建设备节点,并用“最笨”的方法实现点亮LED。这一节里,我们基于上一节的基础上,稍微改动一下,来实现一个查询方式的按键驱动。问:既然是基于上一节的基础,只是稍微改动,改动了哪些?答:框架是不变的,还是字符设备框架,硬件操作有稍微变动,上一节里,LED的GPIO设置为输出方式,这一节里,KEY的GPIO设置为输入方式;上一节里,LED驱动的核心函数转载 2016-04-08 09:04:21 · 354 阅读 · 0 评论 -
linux字符驱动之同步互斥按键驱动
上一节里,我们将在上一节的基础上修改驱动,将其修改为有异步通知功能的按键驱动,目标是,按下按键时,驱动主动去通知应用程序。是不是感觉驱动已经比较完善了,好像已经是完美无缺了?是不是这样呢?好像不是呢,有没有这么一种情况,多个进程想同时使用驱动的设备节点?在多线的环境下,分分钟可能会发生这种情况。在这一节里,我们在上一节的基础上,实现同一时刻只能有一个进程使用同一个设备,例如:只转载 2016-04-07 16:54:25 · 462 阅读 · 0 评论