自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 DM9000A网卡模块调试总结

从开始写代码到调试成功大概花了两周时间,首先把出现的问题归纳一下。1、两台电脑用直连网线通信,需要指定各自的IP地址,若有连接故障(一个叹号),改变一下IP,直到连接成功。这样其中电脑A就学习到了    电脑B的MAC地址,将这个MAC地址写入DM9000A网卡模块,将其与电脑A

2011-05-13 15:19:00 2585

原创 QTE安装移植全过程(转载并修改)

Qt4.5.3 和 tslib1.4 在 ubuntu8.04 下安装及移植(转载并修改)<br />QT在路上2010-11-12 10:42:13阅读335评论5  字号:大中小 订阅<br />Qt4.5.3 和 tslib1.4<br />在 ubuntu8.04 下安装及移植<br />到友善之臂 Mini2440 开发板<br />彭海银<br />2009 年 12 月 15 日<br />注意:()内的内容为我在实践中遇到的问题和解决方法,并且我是在ubuntu10.10环境下实现的<br

2011-03-09 15:49:00 3366 1

原创 安装Eclipse, ubuntu下添加环境变量总结

<br /> p { margin-bottom: 0.21cm; }<br />可以在终端顺利启动Eclipse,但是鼠标双击,或者用起动器启动就会出现如下的内容:<br /><br />AJava RunTime Environment (JRE) or Java Development Kit (JDK) must beavailable in order to run Eclipse. No java virtual machine was found

2011-03-01 19:34:00 2581

原创 QTE安装过程(参考)

安装QT4.7.1嵌入式开发环境花了我4天时间,好好总结下。 p { margin-bottom: 0.21cm; }1、系统环境以及软件准备主机操作系统:Ubuntu9.04主机编译器:gccversion 4.3.3 (Ubuntu 4.3.3-5ubuntu4)交叉编译器:arm-linux-gcc3.4.1软件安装包:(软件包事先下载到了主目录下的Qt目录)qt-everywhere-opensource-src-4.6.2.tar.gz  (适

2011-03-01 19:15:00 3187

原创 NB语录

【1】我们已走得太远,以至于我们忘了为什么而出发。(BY纪伯伦)【2】人老的标志是突然发现自己很难再轻易的喜欢上什么了,并且内心很难随意的跟着什么热闹起来。(治愈系心理学)

2011-02-27 15:50:00 751 1

原创 应用程序设计

<br />1 linux中文件编程两种方法:linux系统调用(依赖具体的操作系统)、C语言库函数<br />库函数方式访问文件(2-1-1):库函数独立于操作系统;访问文件的库函数fopen fread fwrite fgetc fputc fprintf fscanf fseek mkdir;访问标准输入输出设备的库函数getch() putchar() printf();获取当前路径getcwd();参考如何按下任意键退出的代码;<br />系统调用方式访问文件(2-1-2):creat(filen

2011-02-26 10:55:00 623

原创 内核记录

1、  内核空间与用户空间是程序执行的两种不同状态,通过系统调用和硬件中断可以完成从用户空间到内核空间的转移。2、  Linux内核七层架构:系统调用接口、进程管理、内存管理、虚拟文件系统、网络协议栈、体系结构相关代码、硬件驱动3、  内核源代码:init目录---内核初始化代码,ipc目录---进程间通信的实现代码,kernel目录---大多核心功能的实现功能(进程调度、进程控制、模块化),mm目录---内存管理中与体系结构不相关的代码,net目录---实现网络协议(并不是网卡驱动),scripts目录-

2011-02-26 10:52:00 995

原创 曾经的读书记录

《菜根谭》欲做精金美玉的人品,定从烈火中煅来;思立掀天揭地的事功,须向薄冰上履过可见名为招祸之本,欲乃散志之媒,学者不可不力为扫除也学者动静殊操、喧寂异趣,还是锻炼未熟,心神混淆故耳。须是操存涵养,定云止水中,有鸢飞鱼跃的景象;风狂雨骤处,有波恬浪静的风光,才见处一化齐之妙。面上扫开十层甲,眉目才无可憎;胸中涤去数斗尘,语言方觉有味。操存要有真宰,无真宰则遇事便倒,何以植顶天立地之砥柱!应用要有圆机,无圆机则触物有碍,何以成旋乾转坤之经纶!心体澄彻,常在明镜止水之中,则天下自无可厌之事;意气和平,赏在丽日光

2011-02-21 23:34:00 932

原创 触摸屏驱动程序

<br />四线电阻式的,工作流程:<br />1、选择X、Y坐标转换模式(分别获取模式还是各自获取模式)<br />2、设置触摸屏接口为等待中为方式<br />3、按下触摸屏,中断发生(INT_TC中断),按设定的数模转换模式得到X、Y坐标<br />4、转换完成后产生(INT_ADC中断),回到等待中断状态,如此循环<br /> <br /> 

2011-01-21 14:46:00 457

原创 输入子系统

<br />三层结构:<br />Input Device Drivers 、Input core 、Input Event Drivers<br />设备描述<br />intput设备用struct input_dev描述<br />设备驱动的核心工作是向系统报告输入事件(input_event结构体描述),不再需要关心文件操作接口;因为input子系统已经完成了文件操作接口中。驱动报告的事件经过Inputcore和Eventhandler最终达到用户空间<br />注册输入设备的函数为:<br />i

2011-01-20 22:12:00 608

原创 示波器使用

edge选择哪个通道以及上升沿还是下降沿触发,mode选择auto的话是一直进行触发,实时显示,选择normal的话只触发一次;设置好这些后按下single,便会开始单次捕获,按下auto run则实时触发捕获;有待改进!

2011-01-20 16:56:00 1201

原创 EVM测试

误差向量幅度(EVM):理想波形与测量波形之差,称为误差向量,通常与QPSK等M-ary I/Q调制方案有关,且常以解调符号的I/Q“星状”图表示。 测试调制信号的性能,由调制后的射频信输出给频谱仪去解调,频谱仪把解调结果给PC,能过PC机上的软件显示星座图;还没机会做一次测试,一定要把测试的方法、步骤、软件设置详细的记录下来;

2011-01-20 16:52:00 5985

原创 网卡驱动程序

<br />1、网络子系统(如下的内核空间的几层)<br />用户空间     应用层<br />内核空间     系统调用   通过socket访问网络子系统<br />内核空间     协议无关接口    一组通用函数通过socket访问不同协议<br />内核空间     网络协议层 各种传输层网络层协议tcp udp ip<br />内核空间     设备无关接口<br />内核空间     设备驱动<br />                 硬件设备<br />2、网卡驱动<br />设备描述:

2011-01-20 12:45:00 761

原创 串口驱动

终端(tty)是一类字符设备的总称,有控制台、串口、伪终端三种,控制台可以理解为printk输出的地方;核心层、协议层、底层驱动层三层结构底层驱动层的实现流程:1、定义一个uart_driver的结构体,并初始化2、使用uart_register_driver来注册这个驱动3、初始化uart_port结构和ops函数表4、调用uart_add_one_port()添加初始化好的uart_port,把driver和port关联起来发送与接收发送:循环buffer(驱动实现)->发送fifo(硬件芯片)->发送

2011-01-19 16:33:00 590

原创 pci总线

pci桥与cpu内部系统总线相连,产生下一级pci总线;上一级总线与下一级总线通过桥连接;桥本身也是挂在总线上的一个特殊的设备,最多256条pci总线,每条总线上最多挂32个设备,每个设备最多8种功能;lspci,查看pci设备信息;遍历pci桥,深度优先,遍历到一个pci桥紧接着就产生一条新的pci总线;每个pci设备有一组固定格式的寄存器

2011-01-19 11:21:00 614

原创 交叉编译

<br />1、交叉编译工具<br />2、交叉编译内核模块<br />3、交叉编译应用程序<br /> <br />一、交叉编译工具<br />      从mini6410开发板光盘目录中的arm-linux-gcc-4.4.1.tgz复制到某个目录如/tmp并解压<br />      #cd /tmp<br />      #tar xvzf arm-linux-gcc-4.4.1.tgz -C/    (C大写,是改变目录的意思)<br />      执行命令后arm-linux-gcc安装到/

2011-01-14 19:07:00 570

原创 基于2.6.28.6内核的SPI驱动总结

设备结构体的定义在arch/arm/s3c6410/plat s3c64xx里,而向总线添加设备是在arch/arm/s3c6410/mach-s3c6410/smdk-6410.c中;前者对于平台定义所有结构,后者对于特定的机器添加不同的设备结构;

2011-01-12 10:10:00 1631

原创 ubuntu下编译内核(驱动、设备)

1、下载源码并解压2、进入源码目录,运行make menuconfig,配置后会自动保存在.config文件中3、sudo make会在arch/arm/boot下生成linux内核映像文件zImage,下载到开发板即可

2011-01-10 21:11:00 1949

原创 中断处理

<br />为设备实现一个中断有两步<br />1、向内核注册中断<br />2、实现中断处理函数<br />request_irq(unsigned int irq,<br />                    void (*handler)..,     中断处理程序<br />                     unsigned long flags,  中断标志<br />                     char *devname<br />                  

2011-01-07 09:53:00 476

原创 platform平台总线驱动

<br />

2011-01-06 20:39:00 574

原创 设备与驱动模型

第一步:初始化要注册的结构           struct device xxx            {bus type xxx              bus_id    xxx 设备名              parent    xxx              release   xxx             };              struct device_driver xxx             {name  xxx                bus_type xxx 

2011-01-06 16:01:00 398

原创 总线模型

总线描述struct busy_type{bus_attribute,match,uevent,....总线注册bus_register

2011-01-06 12:08:00 502

原创 混杂设备

<br />设备描述<br />struct miscdevice {<br />   int mimor;<br />   const char *name;<br />   ocnst struct file_operation;<br />   struct list_head list;<br />   sturct device *parent;<br />   struct device *this_device;<br />};  <br />设备注册<br />int misc_regist

2011-01-05 15:59:00 459

原创 硬件访问

除x86外,ARM均只有内存空间,没有IO空间(区别在于不同的地址线)IO端口:       当一个寄存器或设备内存位于IO空间时,称其为IO端口IO内存:        当一个寄存器或设备内存位于IO空间时,称其为IO内存怎么访问IO内存:        申请 struct resource *request_mem_region(unsigned long start,unsigned long len,char * name)                /proc/iomem 中可以看到IO内存的

2011-01-05 11:07:00 486

原创 自动创建设备文件

<br />用户空间应用程序udev(mdev)<br />驱动初始化代码里调用class_create为设备创建一个class,在调用device_create创建class类中的一个设备<br />驱动被加载时,udev(mdev)就会自动在/dev下创建相应的设备文件<br /> 

2011-01-05 09:31:00 511

原创 阻塞

<br />阻塞<br />可以在打开文件时指定标志file->flag为O_NONBLOCK,则在没有准备就绪就读写设备时返回-EAGAIN,而不会阻塞进程。<br />阻塞方式是文件读写操作的默认方式。<br />read中数据没准备好时进行阻塞,并在write中写完数据后改变判断条件,并唤醒read进程所在的队列。同理read中读完后唤醒write所在队列。<br />read和write用俩个不同的等待队列,唤醒并不意味着立即获得cup,只是该变了进程的状态。

2011-01-05 09:14:00 440

原创 等待队列

等待队列可看作保存进程的容器,在阻塞进程时,将进程放入等待队列,当唤醒进程时取出。定义等待队列wait_queue_head_t my_queue初始化init_waitqueue_head(&my_queue)定义并初始化等待队列DECLARE_WAIT_QUEUE_HEAD(my_queue)有条件睡眠wait_event(queue,condition)      condition 为真时不会睡眠,立即返回,为假时睡眠wait_event_interruptible(queue,condition)

2011-01-04 17:36:00 394

原创 运放基本应用

<br />要图,下次传

2011-01-04 17:12:00 334

原创 Linux驱动--Ioctl

第一步:定义命令第二步:实现命令            1).注意返回值            2).作参数的有效性的检测,如用户空间地址的有效性            3).用switch语句实现int (*ioctl) (struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)

2011-01-04 16:15:00 701

原创 Linux驱动--并发控制

<br />1、信号量<br />     struct semaphore sem    定义信号量<br />     void sema_init(struct semaphore *sem, int val)用于初始化设置信号量的值为val<br />     void init_mutex(struct semaphore *sem)用于初始化一个互斥信号量,设置sem的值为1<br />     void init_mutex_locked(struct semaphore *sem)用于初始化

2011-01-04 11:47:00 606

原创 Linux字符驱动--结构分析

1、aloc_cdev分配、init_cdev初始化、add_cdev设备注册2、三个结构体node、file_operation、file,前两个在驱动中自已定义,最后一个在打开时内核帮你定义的(我觉得是)。

2011-01-04 10:51:00 683

原创 电源去耦

<br />电源去耦:电源输出一般用两个电容旁路到地,靠近电源的那个有比较大的电容,旁路频率比较小的交流噪声,靠近用电芯片的一端用较小的电容,旁路掉芯片耦合进来的高频噪声。

2010-12-29 20:34:00 393

原创 滤波器设计

使用软件 filter solution巴特沃斯滤波器:带内平坦,但过渡带平缓椭圆滤波器:带内起伏大,但过渡带比较陡本试验:基带低通滤波,码元速率160M,按0.5的滚降的话,通带至少到160*(1+0.5)/2=120M,为留有余度,设为130M;阻带起始频            率随便设为180M,则ratio为180/130=1.385,通带纹波一般1db即可,此处用0.5db。通带到阻带的衰减软件会自动处理,约            50db左右。Implementation选项选第一项lumpec

2010-12-29 17:01:00 732

原创 电源相关总结

<br />电源分开关电源和线性电源两种<br />开关电源提供的电流大(几安培),效率高,FPGA中适合给核电压供电。<br />线性电源提供的电流小(500mA以下),纹波小,FPGA中适合给IO、辅助电压供电。

2010-12-28 21:15:00 405

AX88180 DEMO BORD

亚信公司推出的AX88180千兆以太网MAC层芯片,原理图解决方案

2011-07-26

空空如也

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

TA关注的人

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