驱动开发
文章平均质量分 66
BeanHuo
linkedin.com/in/bean-huo-8299b759
展开
-
4.3.2 交叉编译工具安装
FROM:http://blogold.chinaunix.net/u3/104564/showart_2091186.html一、安装交叉编译器 1)交叉编译器使用CodeSourcery提供的符合EABI标准的arm-none-linux-gnueabi-gcc-4.3.3交叉编译器,下载地址: http://www.codesourcery.com/sgpp/lite/arm转载 2013-01-10 23:50:19 · 2247 阅读 · 0 评论 -
inux kernel 里面打印堆栈的函数
inux kernel 里面打印堆栈的函数调用dump_stack()就会打印当前cpu的堆栈的调用函数了。参考内核源代码arch/x86_64/kernel/traps.c/** The architecture-independent dump_stack generator*/void dump_stack(void){ unsi转载 2013-06-04 18:34:23 · 1331 阅读 · 0 评论 -
Linux驱动--定时器timer小记
内核中定时器是一个基础的功能,很多的驱动程序都会用到定时器进行定时或延时,当然比较短的延时也可以使用ndelay和udelay这样的函数,但是这些函数都是以浪费机器周期来获得延时的,所以还是应该避免使用。下面介绍一下定时器的内容:#include //头文件//主要的结构体文件struct timer_list { struct list_hea转载 2013-07-03 18:07:29 · 1572 阅读 · 0 评论 -
Vxworks下flash驱动编写流程
Vxworks下flash系统结构图:作为BSP开发人员,我们要实现的是MTD和socket两块,其它的是由文件系统自己守成的。 MTD层 该层提供Flash 设备识别,读写,擦除,地址映射函数的具体实现。该层实现由 Flash 驱动开发人员完成。该层将实现在BSP 下tffsConfig.c 以及 tffsXXX.c 文件中。其中tffsConfig.c定义有MTD原创 2013-11-22 17:12:55 · 2534 阅读 · 0 评论 -
vxworks获取系统时间编程
#include //头文件unsigned int timeLen;struct timespec tp;struct tm timeBuffer;time_t nowSec;char datetime[64];/* prepare the time stamp */(void)clock_gettime(CLOCK_REALTIME, &原创 2013-12-12 10:05:54 · 8333 阅读 · 0 评论 -
转载一篇关于 哈弗结构与冯诺依曼 的文章
二者的区别是冯诺伊曼结构的程序空间(地址空间)和数据空间不分开,而哈佛结构的程序空间分开。 哈佛结构强调了总体的系统速度以及通讯和处理器配置方面的灵活性,重在对效率的要求,似乎从这点就可以看到冯诺伊曼的局限性及不足,关于这个问题,有人说51地址线复用,就是冯诺依曼结构。 很多入门的书上基本上都说:由运算器、控制器、存储器、输入设备、输出设备组转载 2013-12-25 11:37:23 · 1925 阅读 · 0 评论 -
Astyle使用方法
在Source Insight集成Astyle下载地址: Windows平台下也有好多人都喜欢用SourceInsight编辑C/C++程序,但是SourceInsight没有提供对代码格式化的功能,如果将Artistic Style集成到SourceInsight中,那就可以为它扩展出代码格式化的功能了。 假定AStyle.exe的目录是“C:\Artisti原创 2014-02-21 13:20:04 · 14593 阅读 · 1 评论 -
u-boot下spi norflash驱动大杂绘
总述原创 2014-04-29 16:48:30 · 6337 阅读 · 0 评论 -
ubuntu 下make menuconfig的支持
在ubuntu 12的版本,一般不会安装ncurses library库,而它正我们运行make menuconfig正需要的一个库文件。所以下面我们来看看如何安装这库。在这之前我们一定要让我们的ubuntu支持apt-get。第一步:配置proxy在下面两个文件中增加下面的内容:1)#/.bashrc export http_proxy=http://username:原创 2014-01-24 14:40:15 · 2396 阅读 · 0 评论 -
linux下cfi_cmdset_0002中关于timeout探究
这里有一个关于cfi_cmdset_0002http://lists.infradead.org/pipermail/linux-mtd/2013-April/046446.html原创 2014-05-04 16:48:23 · 1884 阅读 · 0 评论 -
如何从unix/linux文件中删除ctrl-m(^M)字符
Remove CTRL-M characters from a file in UNIXDescription How to remove CTRL-M characters from a file in UNIX.You may need to do this when you import a text file from MS-DOS (or MS-Windows), a翻译 2014-04-22 09:04:40 · 2881 阅读 · 0 评论 -
git不同linux版本说明
在确保你安装好git后,我们就可以通过git来下载不同版本的linux kernel了,这时要先说一下原创 2014-05-15 09:02:37 · 2055 阅读 · 0 评论 -
Zynq的中断号在dts中的表示
关于zynq的中断述,在网上和原创 2014-06-13 14:56:38 · 6064 阅读 · 0 评论 -
新内核 中关于spi nor的注册
3.X的内核,对于platform_device的注册和platform data,全都放在dts文件中指定,对于spi nor来说,它的整个驱动包括了master driver,master device,spi nor driver 和spi nor device.原创 2014-11-26 14:00:26 · 4409 阅读 · 0 评论 -
关于linux下mtd_oobtest.ko的一点点分析
最近在学习nand,写完nand controller的驱动后,随手也作了一下测试,发现mtd_oobtest老是出错,从这里开始,对它做一点点的分析:当我们加载mtd_oobtest.ko模块时,下面的函数就会调用:static int __init mtd_oobtest_init(void){ int err = 0; unsigned int i; uint64_原创 2015-01-09 15:40:40 · 2493 阅读 · 0 评论 -
vmwrare linux 下编译 出现 fatal error: error closing /tmp/ccsdc7Zt.s: No space left on device
不知道大家是否经常遇到这样的问题,提醒你tmp文件夹下 空间不足了,不能满足编译的需求,这个时候可以:或者清/tmp下的数据。。。包括隐藏文件 hohohoh0或者通下面的步骤:mkdir 文件夹——你可以使用的文件夹 比如说 mkdir /abc/tmp/然后只要export TMPDIR=/abc/tmp/这样就不会出现 tmp文件夹不够用的情况了转载 2013-06-03 10:28:18 · 2690 阅读 · 0 评论 -
Sam-ba 2.12在win7上的安装
我们知道 对于at91sam9260可以通过usb device 口来下载uboot、kernel 、 fs,这是对于老版本的sam-ba工具是通过它来下载的,但时在win7上,我们要用到sam-ba2.12,这时我们就不能通过usb口来下载的,要用到dbug口来下载,说明一点,在安装2.12版本的sam-ba之前一定要先卸载掉老版本的sam-ba驱动。这一点一定要注意。在安装好samba2.原创 2013-05-20 18:09:51 · 8468 阅读 · 0 评论 -
详解 ARM Linux启动过程分析
ARM Linux启动过程分析是本人要介绍的内容,嵌入式 Linux 的可移植性使得我们可以在各种电子产品上看到它的身影。对于不同体系结构的处理器来说Linux的启动过程也有所不同。本文以S3C2410 ARM处理器为例,详细分析了系统上电后 bootloader的执行流程及 ARM Linux的启动过程。1、引 言Linux 最初是由瑞典赫尔辛基大学的学生 Linus Tor转载 2013-04-11 20:59:01 · 1273 阅读 · 0 评论 -
powerPC的PCI总线的dts配置
powerpc使用称为FDT 扁平设备描述树的机制传递给内核硬件配置参数,从而引导内核。 这样的优势是PowerPC在Linux上的移植基本上都是对dts文件的修改,而升级内核的工作量远远小于其他cpu体系结构。 只是目前介绍FDT或者OPEN Firmware的中文资料欠缺,这里记录我领悟的关于PCI总线树部分的ranges参数。 pci0: pci@e0转载 2013-01-11 19:46:57 · 1122 阅读 · 0 评论 -
Linux下PCI设备驱动程序开发——总述
肖文鹏 (xiaowp@263.net), 硕士研究生, 北京理工大学计算机系简介: PCI是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。Linux的内核能较好地支持PCI总线,本文以Intel 386体系结构为主,探讨了在Linux下开发PCI设备驱动程序的基本框架。转载 2013-01-15 10:21:00 · 1026 阅读 · 0 评论 -
at91sam9260 bootstrap 3.2移植
第一步:下载源代码从下面的网址中下载最新的代码:ftp://www.at91.com/pub/at91bootstrap/第二步:开发板的硬件:CPU AT91SAM9260SDRAM MT48LC16M 1片(32MB 16bit)NANDFLASH K9F1208U0c(64MB)BOOTSTRAP针对我板子对Bo原创 2013-01-29 20:56:58 · 5895 阅读 · 3 评论 -
DTS草稿之二
二、DTS文件编译 Dts文件需要最后通过工具dtc(device tree compiler)编译生成UBOOT所需的dtb二进制文件。Dtc工具的一般命令行格式是: dtc[-I ] [-O ] [-o output-filename] [-Voutput_version] input_filename我们常用的命令如:dtc -I dts -O dtb -R 4原创 2013-01-21 10:16:30 · 2565 阅读 · 0 评论 -
DTS草稿之三
三、8572 DTS文件情景分析1.根节点 为了更清晰的说明怎样针对硬件平台编写一个dts文件,下面我们从8572的dts文件入手,进行一下仔细分析。dts的语法有些类似C语言的语法,我们在下面将看到这种相似性。首先看到的是第12行有个“/ {”的标志,我们在dts文件的最后一行还会看到一个“};”,这里定义的就是我们前面提到的根节点,它定义的是单板级。“model”指定单板原创 2013-01-21 10:18:01 · 5664 阅读 · 2 评论 -
DTS草稿之一
一、DTS文件综述 最新的UBOOT代码支持OF(Open Firmware)结构的扁平设备树(flattened device-tree),目前还没有对OF结构的用户接口API进行支持。因此,在U-boot向Linux内核跳转的时候需要向内核传递一张描述整个硬件系统扁平设备树的的表,来描述设备、总线以及中断的信息等等。这个表被称为设备树块(device-tree block),也就是我原创 2013-01-21 10:15:38 · 6197 阅读 · 2 评论 -
对于ARM加载文件系统出现 Kernel panic - not syncing: Attempted to kill init!
有时加载文件系统时,会出现下面的错误:VFS: Mounted root (nfs filesystem) on device 0:12.Freeing init memory: 124KKernel panic - not syncing: Attempted to kill init!从上面看,文件系统已经加载成功,但还是不能正常启动init进程,这是什么原因了?大多数是因原创 2013-02-26 10:57:27 · 2311 阅读 · 0 评论 -
DM9000网卡驱动分析
DM9000网卡驱动分析#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include转载 2013-03-09 21:59:07 · 2312 阅读 · 0 评论 -
DM9000的DM9161的比较
DM9000的DM9161的比较DM9000是将以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片,它包含OSI七层参考模型中第二层数据链路层(MAC)和第一层物理层(PHY)。这样能去掉许多外接元器件。这种方案可使MAC和PHY实现很好的匹配,同时还可减小引脚数、缩小芯片面积;DM9161是物理层接口收发器(PHY),其只包含OSI七层参考模型中的第一层物理层(PHY)。原创 2013-03-09 21:56:37 · 6042 阅读 · 0 评论 -
platform总线注册过程及platform_driver与platform_device的匹配
我们知道,按platform结构写驱动,我们只需注册platform_device和platform_driver而不需要我们自己去注册platform总线,因为系统启动就有那条总线,那么它是怎么得到的呢?这里进行具体跟踪一下:start_kernel——>rest_init——>kernel_thread(这个线程创建很重要)——>kernel_init——>do_basic_setup转载 2013-03-29 18:12:13 · 1469 阅读 · 0 评论 -
linux 下块设备驱动开发学习笔记 1
一、块设备的I/O操作特点字符设备与块设备I/O操作的不同在于:① 块设备只能以块为单位接受输入和返回输出,而字符设备则以字节为单位。大多数设备是字符设备,因为它们不需要缓冲而且不以固定块大小进行操作。② 块设备对于I/O请求有对应的缓冲区,因此它们可以选择以什么顺序进行响应,字符设备无需缓冲且被直接读写。对于存储设备而言调整读写的顺序作用巨大,因为在读写连续的扇区比分离的扇区更快。原创 2013-03-23 22:39:43 · 1506 阅读 · 0 评论 -
linux 下块设备驱动开发学习笔记 2(sbull驱动在vmware上测试)
在我们make完,生成一个ko文件后,我们就可以测试。1、insmode skull.ko2、more /proc/devices3、ls /dev/sbullsbulla sbullb sbullc sbulld4、fdisk /dev/sbullam-n-p-1- -w -p这时就在dev下有一个sbulla1的分区5、格式化,使指定文件系统原创 2013-03-23 23:18:13 · 1704 阅读 · 0 评论 -
linux 下块设备驱动开发学习笔记 2(sbull驱动分析)
//这个驱动是针对gendisk下的buff来实现的,没有用到bio#include #include #include #include //包含头文件#include #include /* printk() */#include /* kmalloc() */#include /* everything... */#include /*原创 2013-03-23 22:58:36 · 1596 阅读 · 0 评论 -
powerpc linux下dts解析过程
一. 在linux中,对dtb文件解析的整个过程序如下:1)首先将从u-boot 传递过来的映像基地址和dtb 文件映像基地址保存通用寄存器r30,r31;2)通过调用machine_init()、early_init_devtree()函数来获取内核前期初始化所需的bootargs,cmd_line等系统引导参数;3)调用start_kernel()、setup_arch()、unf原创 2013-01-18 19:02:43 · 3316 阅读 · 0 评论 -
关于 insmod Unknown symbol error
分享是一种快乐。 好久没有写字ko模块驱动,今天写了一个简单的确nand驱动,在做成KO模块,insmod时,出现了下面的问题:micronlld_nand: module license 'unspecified' taints kernel.Disabling lock debugging due to kernel taintmicronlld_nand: Unknown symbol原创 2015-02-28 15:47:40 · 3844 阅读 · 0 评论