自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(281)
  • 资源 (4)
  • 收藏
  • 关注

转载 GCC编译的背后( 预处理和编译 汇编和链接 )

平时在Linux下写代码,直接用"gcc -o out in.c"就把代码编译好了,但是这后面到底做了什么事情呢?如果学习过编译原理则不难理解,一般高级语言程序编译的过程莫过于:预处理、编译、汇编、链 接。gcc在后台实际上也经历了这几个过程,我们可以通过-v参数查看它的编译细节,如果想看某个具体的编译过程,则可以分别使用-E,-S,-c和 -O,对应的后台工具则分别为cpp,cc1,as,ld。

2015-06-01 14:51:32 951

转载 LCD驱动(FrameBuffer)实例开发讲解

一、开发环境主  机:VMWare--Fedora 9开发板:Mini2440--64MB Nand, Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2二、背景知识1. LCD工作的硬件需求:   要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG

2015-05-28 14:30:18 1316

转载 虚拟机中的linux系统如何上网

进入VMware中的LINUX系统,设置  1)选择VMware的Host-only 虚拟机Liunx上网设置  。。。 系统会自动为LINUx分配IP地址  2)主机的本地连接 虚拟机Liunx上网设置   3)本地连接共享Internet 虚拟机Liunx上网设置   4)在虚拟机l

2015-05-26 21:40:55 1767

转载 配置NFS服务器启动mini2440

通过主机windows上虚拟机中Ubuntu与micro2440中的linux系统以NFS方式进行文件共享NFS,我们创建NFS的目的是通过网络对外提供目录文件共享服务。NFS的原理是在客户端通过网络将远程主机共享文件系统以挂载(mount)的方式加入本机的文件系统,之后的操作就如同在主机上一样。正因为Ubuntu nfs是一个RPC服务程序, 所以在使用它之前, 先要映射好端口——通过p

2015-05-20 14:06:17 839

转载 530 This FTP server is anonymous only vsftp服务器登录失败解决方案 vsftp 500 OOPS: cannot change directory:/hom

用本机用户登录vsftp出现错误:root@ubuntu:~#ftpftp> open 127.0.0.1Connected to 127.0.0.1.220 (vsFTPd 2.3.5)Name (127.0.0.1:pipi):530 This FTP server is anonymous only.Login failed.ftp> quit登录失败原因:vsftp

2015-05-20 08:50:19 8150

转载 eclipse

eclipse最有用快捷键整理2013 年 3 月 30 日 BY WEAGER·评论关闭推荐图书:深入理解Java 7核心技术与最佳实践在网上搜eclipse快捷键,可以搜出一大堆,大多罗列了n多的快捷键,估计大部分人看了以后都会头大的,我也头大,不过我一一尝试了一遍,整理出了eclipse最常用最有用,写代码必须用到的一些快捷键,大约只有网上快捷键大全的一半,减少大

2015-05-07 20:57:01 585

转载 Mini2440使用USB无线网卡(wifi)

先把usb-wifi-kits-for-mini2440-linux-2.6.32.2-20100728.tar.gz这个压缩包拷贝到mini2440的linux系统中,然后直接在根系统下面解压缩,使用以下命令:#tar  -xzvf  usb-wifi-kits-for-mini2440-linux-2.6.32.2-20100728.tar.gz  -C  /(参考:http://

2015-05-07 20:52:34 1856

原创 错误

2015-03-30 14:03:50 454

原创 Duplicate Net Names Multiple Top Level Documents

本人的第一感觉是多张原理图的标识符作用域的设置问题,随后在Project-》Project options中的Options选项下设置了一下Net Identifier Scope(网络标识符作用范围),由原来的Automatic改为Global,随后编译了一下,几十个error全部消失,可见,是网络标识符的作用域的问题,这个问题发生在多张原理图设置中。    本人上一年发表过一篇有关Alti

2015-03-30 13:28:54 4050

转载 [Error] ADC.SchDoc Compiler Net NetU1_AD1_14 contains floating input pins (Pin U1_AD1-14) 19:27:

在Altium Designer中,画原理图的时候往往出现下列的提示,而且一下好好多个。今天我也遇到这个问题,记得之前遇到过,解决了,但是没有整理。今天把解决办法也整理出来。这个问题的原因是说管脚有悬空,但是明明是有网络连接的呀?为什么呢?如果细心点会发现,你的线可能全都连接的,但是却“没连接上”,为什么呢?这个要从元件封装说起,元件封装的引脚有很多属性,其中一个是电气特性(Electri

2015-03-30 13:16:17 13584

转载 嵌入式开发之工具移植---tcpdump移植和使用

转载:根据自己的情况调整了一些‘’‘[摘要]:本文主要讲解了tcpdump相关概念和主要参数的使用,并通过事例来讲解tcpdump的用法,最后讲解如何将其移植到嵌入式开发环境,使其在嵌入式主控板中发挥其强大功能。一. tcpdump概念tcpdump就是 dump the traffic on a network,根据使用者的定义对网络上截获的数据包进行分析的工具。tc

2015-01-06 15:28:32 727

转载 Tcpdump的详细用法

1. TCPDump介绍          TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。tcpdump就是一种免费的网络分析工具,尤其其提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的Free

2015-01-05 21:50:07 474

转载 WiFi基本知识

1. IE802.11简介标准号IEEE 802.11bIEEE 802.11aIEEE 802.11gIEEE 802.11n标准发布时间1999年9月1999年9月2003年6月2009年9月工作频率范围2.4-2.4835GHz5.150-5.350GHz5.475-5.725GHz5.725

2015-01-05 11:01:45 485

转载 USB协议架构及驱动架构

1. USB协议1.1 USB主机系统       在USB主机系统中,通过根集线器与外部USB从机设备相连的处理芯片,称为USB主机控制器。USB主机控制器包含硬件、软件和固件一部分。1.2 USB设备系统        USB设备按功能分为两部分:集线器(Hub)和功能部件。从下图可知,主机通过根集线器连接到各种外围设备(集线器和功能部件)。1.

2015-01-05 10:58:57 637

转载 Linux下的串口编程

---------------------------------------------------------Author             :tiger-johnWebSite            :blog.csdn.net/tigerjbEmail               :[email protected]   : 2

2014-12-26 10:44:58 2890

转载 S3C2440 地址分配硬件连接及其启动原理分析**********

一.CPU 地址分配:1. s3c2440A 的存储器控制器有以下特性:l 大小端(通过软件选择)l 地址空间:每个bank有128M 的字节(总共1G字节/8个banks)l 可编程的访问位宽,bank0(16/32 位),其他bank(8/16/32 位)l 共8个存储器banksl 6 个是ROM,SRAM 等类型存储器bank (bank0

2014-12-23 15:03:52 591

转载 S3C2440开发板LED驱动——ioremap 映射 ********

刚开始学字符设备驱动,感觉最难的是驱动和底层硬件的连接。linux上的驱动程序,是基于操作系统之上的,他并不直接和底层的硬件打交道,但是我们写的驱动必须能使硬件“跑”起来,即与硬件紧密相连。就拿最简单的LED驱动来说,我们的驱动程序是在虚拟的内存上面跑的,但是最终,LED的点亮还是必须靠GPIO管脚的高低电平来控制。那么,我们的虚拟的内存怎么才能和实际的硬件上面的寄存器对应起来呢?

2014-12-23 15:02:14 526

转载 fcntl系统调用

今天在看《Linux设备驱动程序(第3版)》碰到了fcntl系统调用,以前没接触过。在网上查到了这份资料,转载自 企鹅乐园_雅虎群组。【fcntl系统调用】       功能描述:根据文件描述词来操作文件的特性。   用法:   int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int

2014-12-09 16:20:20 415

原创 字符设备的注册与注销模版

//一下程序申请了2个从设备号//#define MEMDEV_MAJOR 254 static mem_major = MEMDEV_MAJOR;  //主设备号module_param(mem_major, int, S_IRUGO);struct cdev cdev; static int __init  XXX_init(void)//驱动程序的注册{d

2014-12-01 08:54:42 767

转载 Linux 字符设备驱动简单总结

一、字符设备、字符设备驱动与用户空间访问该设备的程序三者之间的关系。        如图,在Linux内核中使用cdev结构体来描述字符设备,通过其成员dev_t来定义设备号(分为主、次设备号)以确定字符设备的唯一性。通过其成员file_operations来定义字符设备驱动提供给VFS的接口函数,如常见的open()、read()、write()等。     

2014-11-30 23:01:59 500

转载 Linux系统中“动态库”和“静态库”那点事儿

今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻。在这之前,我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情。      在Linux操作系统中,普遍使用ELF格式作为可执行程序或者程序生成过程中的中间格式。ELF(Executable and Linking Format,可执行连接格式)是UNIX系统实验室(USL)作为应用程序二进制接

2014-11-25 10:54:20 708

转载 Linux 内核访问外设IO资源的方式

首先介绍一下I/O端口和I/O内存。1. I/O端口:当一个寄存器或内存位于I/O空间时,称其为I/O端口。2. I/O内存:当一个寄存器或内存位于内存空间时,称其为I/O内存。再来看一下I/O寄存器和常规内存的区别:I/O寄存器具有边际效应(side effect),而内存操作则没有,内存写操作的唯一结果就是在指定位置存贮一个数值;内存读操作则仅仅是返回指定位置最后一次写入的

2014-11-25 08:44:33 628

转载 Linux2.6设备驱动常用的接口函数

Linux2.6设备驱动常用的接口函数(一)----字符设备 刚开始,学习linux驱动,觉得linux驱动很难,有字符设备,块设备,网络设备,针对每一种设备其接口函数,驱动的架构都不一样。这么多函数,要每一个的熟悉,那可多难啦!可后来发现linux驱动有很多规律可循,驱动的基本框架都差不多,再就是一些通用的模块。基本的架构里包括:加载,卸载,常用的读写,打开,关闭,这是那种那基本

2014-11-25 08:05:42 847

转载 I/O驱动相关__raw_readl和__raw_writel

1.S3C2410_GPB5是端口编号,定义在regs-gpio.h中,#define S3C2410_GPIO_BANKB   (32*1)#define S3C2410_GPIONO(bank,offset)   ((bank) + (offset))#define S3C2410_GPB5         S3C2410_GPIONO(S3C2410_GPIO_BANKB,

2014-11-24 20:10:47 560

转载 mini2440的pwm驱动程序和测试程序详解

一 pwm 驱动程序位置: 内核/drivers/char/mini2440_pwm.c代码注解#include #include #include #include #include #include #include #include #include #include #include #include #include

2014-11-24 14:44:11 463

转载 Linux设备驱动之Ioctl控制

大部分驱动除了需要具备读写设备的能力之外,还需要具备对硬件控制的能力。 一、在用户空间,使用ioctl系统调用来控制设备,原型如下:int ioctl(int fd,unsigned long cmd,...);/*fd:文件描述符cmd:控制命令...:可选参数:插入*argp,具体内容依赖于cmd*/  用户程序所作的只是通过命令码告诉驱动程序它想做什么,

2014-11-23 20:23:32 392

转载 c语言中static 用法

static在c里面可以用来修饰变量,也可以用来修饰函数。先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。int a ;int main(){    int b ;     int c* = (int *)malloc(sizeof(int));}a是全局变量,b是栈变量,c是堆变量。static

2014-11-23 16:37:28 407

原创 LINUX 中的库的问题

库是一组预先编译好的函数的集合

2014-11-19 20:14:56 429

转载 驱动调试之自制工具——寄存器编辑器

当我们调试驱动程序的时候,可能要调整寄存器的设置。按照我们之前的作法就是直接在程序里面修改,然后重新编译程序。但是这种方法比较麻烦,我们可以编写一个工具,可以直接对寄存器进行修改,这就是我们说的寄存器编辑器。其具体程序如下:#include #include #include #include #include #include #include #

2014-11-19 13:43:11 718

转载 驱动程序调试方法之printk——自制proc文件(二)

上一节的程序很振奋人心,我们自己实现了一个myprintk打印函数。但是这个函数存在一个致命的缺陷,那就是只能使用一次cat /proc/mymsg命令来读取mylog_buf的值。这是因为读到最后会出现:mylog_r == mylog_w,表示缓冲区为空,下一次就不能在读到数据了。在本节里面我们就着手来解决这个问题,我们要实现的就是每次使用 cat /proc/mymsg 时,都会从头

2014-11-19 13:42:10 993

转载 驱动程序调试方法之printk——printk的原理与直接使用

1、基本原理(1)在UBOOT里设置console=ttySAC0或者console=tty1这里是设置控制终端,tySAC0 表示串口, tty1 表示lcd(2)内核用printk打印内核就会根据命令行参数来找到对应的硬件操作函数,并将信息通过对应的硬件终端打印出来!2、printk的使用(1)printk函数的信息如何才能在终端显示出来

2014-11-19 13:25:17 2493

转载 LINUx 驱动程序printk 调试

1. 控制台的日志优先级#define KERN_EMERG                  ""       /* 致命级:紧急事件消息,系统崩溃之前提示,表示系统不可用   */#define KERN_ALERT                    ""       /* 警戒级:报告消息,表示必须采取措施                                  

2014-11-19 10:30:57 967

转载 LINUX下GDB调试

(注:本文实例在SecureCRT中得到验证,以下为全文转载:)本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友,以及程序爱好者。GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。

2014-11-18 17:56:43 414

原创 第三章 字符设备驱动程序——note

1.在内核中, dev_t 类型(在 中定义)用来持有设备编号 -- 主次部分都包括. 对于 2.6.0 内核, dev_t 是 32 位的量, 12 位用作主编号, 20 位用作次编号

2014-11-09 22:38:14 363

原创 cyclone 中宏单元 的应用

建立ROM 宏单元

2014-11-09 11:05:02 702

转载 异步复位同步释放---关于复位的问题

一个简单的异步复位的例子  1 module test 2 ( 3  input clk, 4  input rst_n, 5  input data_in, 6  output reg out 7 ); 8  always @ (posedge clk or negedge rst_n) 9 if(!rst_n) out 1'b0;10  

2014-11-06 08:46:43 988

转载 FPGA中异步复位和同步复位

为了避免纯粹的同步复位和纯粹异步复位的问题,可以使用一种叫做同步化的异步复位,我们称其为第三类复位。这种复位完全结合了异步复位和同步复位的优势,我们知道异步复位的优势是不参与数据路径,所以不影响数据路径速度,而复位几乎是瞬间起作用;而同步复位的优势是百分百地同步时序分析且具有抗噪声性能。这种复位其实就是通常我们所说的异步复位同步释放。就如同我之前讨论的那样,异步地进入复位是最好的,只是异步地退出复

2014-11-06 08:26:29 3051

转载 单片机I/O口推挽输出与开漏输出的区别(转)

单片机I/O口推挽输出与开漏输出的区别(转)  推挽输出:可以输出高,低电平,连接数字器件;开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.我们先来说说集电极开路输出的结构。集电

2014-11-05 10:41:33 579

转载 mini2440-s3c2440 的 存储系统和I/O空间 认识

用友善之臂的板子已经有一段时间了.对于存储系统和I/O空间的认识也渐渐淡忘了,原因是在做其他开发时,一直用着自带的启动代码,从不关心板子的储存空间配置.最近在做网卡驱动,突然间就不知道网卡的地址是什么了,于是花点时间总结一下.废话少说.开始吧.1,板上的存储资源两个32M的SDRAM.一个2M的NOR FLASH一个128M(有些是64M)的NAND FLASH

2014-11-04 13:40:34 568

转载 DMA基本概念及linux 2440下DMA驱动程序 编写与测试

本文是基于操作系统linux下的利用DMA的方式将

2014-11-04 13:15:16 601

PR转场插件

PR转场插件,提供了10款PR特效中的转场特效,非常有用

2018-06-09

Linux设备驱动程序学习(2)-调试技术.pdf

#define KERN_EMERG "<0>" /* system is unusable */ #define KERN_ALERT "<1>" /* action must be taken immediately*/ #define KERN_CRIT "<2>" /* critical conditions */ #define KERN_ERR "<3>" /* error conditions */ #define KERN_WARNING "<4>" /* warning conditions */ #define KERN_NOTICE "<5>" /* normal but significant condition */ #define KERN_INFO "<6>" /* informational */ #define KERN_DEBUG "<7>" /* debug-level messages *

2014-11-19

键盘程序keypad

用QT实现的keypad程序代码,值得一看

2014-08-26

s3c2440中文数据手册(完整版).pdf

s3c2440中文数据手册(完整版).pdf 不要错过

2013-12-01

空空如也

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

TA关注的人

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