自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (18)
  • 收藏
  • 关注

转载 基于ARM的嵌入式Linux移植真实体验(1)――基本概念

http://21cnbao.blog.51cto.com/109393/120254

2012-07-30 09:39:52 562

转载 ARM的嵌入式Linux移植体验之BootLoader

BootLoader指系统启动后,在操作系统内核运行之前运行的一段小程序。通过BootLoader,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 BootLoader 几乎是不可能的。尽管如此,我们仍然可

2012-07-30 09:36:22 1844

转载 宋宝华谈 ARM 的嵌入式 Linux 移植体验之三:操作系统

在笔者撰写的《C 语言嵌入式系统编程修炼之道》一文中,主要陈诉的软件架构是单任务无操作系统平台的,而本文的侧重点则在于讲述操作系统嵌入的软件架构,二者的区别如下图        嵌入式操作系统并不总是必须的,因为程序完全可以在裸板上运行。尽管如此,但对于复杂的系统,为使其具有任务管理、定时器管理、存储器管理、资源管理、事件管理、系统管理、消息管理、队列管理和中断处理的能力,提供多任务处

2012-07-30 09:35:05 8636

转载 ARM的嵌入式Linux移植体验之应用实例

应用实例的编写实际上已经不属于Linux操作系统移植的范畴,但是为了保证本系列文章的完整性,这里提供一系列针对嵌入式Linux开发应用程序的实例。  编写Linux应用程序要用到如下工具:  (1)编译器:GCC  GCC是Linux平台下最重要的开发工具,它是GNU的C和C++编译器,其基本用法为:gcc [options] [filenames]。  我们应该使

2012-07-30 09:33:37 749

转载 ARM的嵌入式Linux移植体验之设备驱动

作者:宋宝华    文章来源:天极开发设备驱动程序是操作系统内核和机器硬件之间的接口,它为应用程序屏蔽硬件的细节,一般来说,Linux的设备驱动程序需要完成如下功能:  ·设备初始化、释放;  ·提供各类设备服务;  ·负责内核和设备之间的数据交换;  ·检测和处理设备工作过程中出现的错误。  Linux下的设备驱动程序被组织为一组完成不同任务的函数

2012-07-30 09:32:38 639

转载 十 ARM9(2440)的IIC——理论知识及程序实例

原文地址:十 ARM9(2440)的IIC——理论知识及程序实例作者:骨Zi里德骄傲概述S3C2440A RISC 微处理器可以支持一个多主控IIC 总线串行接口。一条专用串行数据线(SDA)和一条专用串行时钟线(SCL)传递连接到IIC 总线的总线主控和外设之间的信息。SDA 和SCL 线都为双向的。多主控IIC 总线模式中,多个S3C2440A RISC 微处理器可

2012-07-30 09:26:41 1648

转载 register_chrdev()与register_chrdev_region()

分配设备编号,注册设备与注销设备的函数均在fs.h中声明,如下:extern int register_chrdev_region(dev_t,unsigned int,const char*);表示静态的申请和注册设备号extern int alloc_chrdev_region(dev_t,unsigned int,const char*);表示动态的申请和注册设备号e

2012-07-18 16:47:13 805

转载 ioctl 函数

本函数影响由fd 参数引用的一个打开的文件。 #includeint ioctl( int fd, int request, .../* void *arg */ );返回0 :成功    -1 :出错 第三个参数总是一个指针,但指针的类型依赖于request 参数。我们可以把和网络相关的请求划分为6 类:套接口操作文件操作接口操作ARP 高速缓存操作路

2012-07-18 14:30:28 703

转载 memset函数

需要的头文件  在C中  or   在C++中   void *memset(void *s, int ch, size_t n);  函数解释:将s中前n个字节替换为ch并返回s;  memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。常见错误  第一: 搞反了ch 和 n的位

2012-07-18 10:51:01 562

转载 嵌入式开发板linux驱动与pc——linux驱动的makefile

1、开发板linux驱动makefileKERN_DIR = /bbs/linux-2.6.28.7all:make -C $(KERN_DIR) M=`pwd` modules clean:make -C $(KERN_DIR) M=`pwd` modules cleanrm -rf modules.orderobj-m += globalmem.o2、p

2012-07-17 21:22:24 1368

转载 XP下Virtualbox 虚拟Linux 共享文件夹设置

环境:主机操作系统是Windows      XP,虚拟机是VirtualBox,虚拟主机为Linux系统,      1. 安装增强功能包(Guest Additions)      安装好Linux虚拟主机后,运行它并登录。然后在VirtualBox的菜单里选择"设备(Devices)" -> "安装增强功能包(Install      Guest Addi

2012-07-17 15:46:18 1159

转载 自旋锁

一种广泛应用的同步技术是加锁。当内核控制路径必须访问共享数据结构或进入临界区时,就需要为自己获取一把”锁”。由锁机制保护的资源非常类似于限制于房间内的资源,当某人进入房间时,就把门锁上。如果内核控制路径希望访问资源,就试图获取钥匙”打开门”。当且仅当资源空闲时,它才能成功。然后,只要它还想使用这个资源。门就依然锁着。当内核控制路径释放了锁时,门就打开,另一个内核控制路径就可以进入房间。图5

2012-07-16 10:54:06 2995

转载 火星探测器的优先级翻转

From: Mike Jones mbj@MICROSOFT.comSunday, December 07, 1997 6:47 PM翻译:zhou, 2002     自从1997年7月4日抵达火星表面后,火星探路者(The Mars Pathfinder)一直被大肆宣称为“完美的”。它确实包含了很多成功之处,从它那非传统的着陆方式――被巨大的气囊包裹着蹦蹦跳跳着陆,然后释放出 火星

2012-07-14 10:18:46 2464 2

转载 与vxWorks相比,Linux究竟有那些优势?

2001年IBM大张旗鼓的宣布支持Linux,并投入10亿美金用于Linux相关开发。      【陈怀临注:是的,没有IBM Linux Research Center的R&D投入,Linux在服务器市场方面的发展绝无今日之局面】     最近的Cisco抛弃了其专有的IOS核心,在 ASR1000的控制平面软件上采用了Linux为基础平台。【陈怀临注:思科在OS方面目前比较乱了。是的,

2012-07-14 09:49:00 16880 1

转载 几次由于软件失误造成的航天事故

1. Ariane 5  爆炸, 调查小组后来分析是由于导航软件部分的一个类型转行造成的,将一个64位的浮点数转换成了16位的有符号整数。   2. Mars Pathfinder到达火星后不久,持续不断的重启,当时很多人都以为是因为系统做的工作太多,超负荷了才不断重启的。但在后来的一次IEEE Real-Time Systems Symposium会议上,VxWorks(pathfind

2012-07-14 09:46:25 6494

转载 异步通知fasync

linux设备驱动归纳总结(三):7.异步通知fasyncxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx异步通知fasync是应用于系统调用signal和sigaction函数,下面我会使用signal函数。简单的说,signal函数就是让一个信

2012-07-14 09:23:07 1361

转载 异步通知

异步通知意味着设备可以通知应用程序自身可被访问,实现了异步IO。        在ldd3中给出了设备驱动实现异步信号的详细操作顺序:1.当发出 F_SETOWN,什么都没发生,除了一个值被赋值给 filp->f_owner.2.当 F_SETFL 被执行来打开FASYNC, 驱动的 fasync方法被调用.这个方法被调用无论何时 FASYNC的值在 filp->f_fla

2012-07-13 09:52:08 586

原创 详细注释FL2440按键中断驱动(含poll机制),测试成功

平台:FL2440  内核版本linux 2.6.28效果:没有按键时,程序进入休眠,每5秒打印超时信息。按键时响应中断,并输出是按下还是松开。转载注明:http://blog.csdn.net/bbs598598/article/details/7742052#include  /*模块有关的*/#include /*内核有关的*/#include /*文件系统有关的*/

2012-07-12 22:23:52 2094

转载 poll机制分析(韦东山)

poll机制分析所有的系统调用,基于都可以在它的名字前加上“sys_”前缀,这就是它在内核中对应的函数。比如系统调用open、read、write、poll,与之对应的内核函数为:sys_open、sys_read、sys_write、sys_poll。一、内核框架:对于系统调用poll或select,它们对应的内核函数都是sys_poll。分析sys_poll,即可理解p

2012-07-12 14:38:30 867

转载 与中断有关的数据结构

1.概述通过前文,我们已经知道了中断通常由上下两部分组成。在上部分,也就是中断处理程序,完成中断请求的响应以及完成那些对时间要求紧迫的工作;而在下部分,通常完成那些被推后的工作,因为这部分工作对时间的要求相对宽松一些。通过了解上下两部分的工作情况,可以更好的理解中断这个概念。从下半部分执行机制来看——不管是tasklet还是工作队列——这些推后的工作总是在上半部分被调用,然后交给内核在适当

2012-07-11 20:14:18 1499

转载 fl2440按键中断驱动

#include #include #include #include #include #include #include #include #include #include #include    //copy_to_user#include    //内核时钟#include    //atomic_t#include    //

2012-07-11 15:56:22 634

转载 转:一个相当详细的MINI2440按键驱动详解

/*mini2440_buttons_my.c*//*后面加了_my*//*按键驱动程序*//*mini2440所用到的按键资源*//**************************************************//* 按键          对应的IO寄存器     对应的中断引脚*//* K1             GPG0

2012-07-11 13:42:49 944

转载 linux中断之中断注册

专业的linux驱动开发离不开中断处理,在处理中断,首先要注册中断,在linux下通过request_irq来注册中断的,不同内核版本,注册中断所需要的参数也不同,本文以linux-2.6.34为例,对比老版本进行说明。    request_irq()函数在include/linux/interrupt.h中定义,原型为:    static inline int __must_

2012-07-11 13:37:46 5742 1

转载 C语言之结构体

C语言中,结构体是一种很常用的数据类型。简单而又复杂,能够用好它实属不易。下面总结下它的常见用法及容易出错的地方。一、关于结构体的声明1、匿名声明。如:struct {   int i,j;}point;说明:>>这段代码的含义是,声明一个无名(anonymous)的结构体,并创建了一个结构体变量point。如果这段声明是放在全局域内,那么p

2012-07-10 16:35:37 952

转载 【12条说话艺术】

1急事,慢慢地说;2小事,幽默地说;3没把握的事,谨慎地说;4没发生的事,不要胡说;5做不到的事,别乱说;6伤害人的事,不能说;7伤心的事,不要见人就说;8别人的事,小心地说;9自己的事,听别人怎么说;10尊长的事,多听少说。11夫妻的事,商量着说。 12孩子们的事,开导着说。

2012-07-10 14:41:41 924

转载 关于void*

void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程序的作用,定义一个void变量没有意义,不妨试着定义:   void a;   这行语句编译时会出错,提示“illegal use of type 'void'”。不过,即使void a的编译不会出错,它也没有任何实际意义。   void真正发挥的作

2012-07-10 09:51:45 626

转载 vxWorks中对时间的精确统计

原始资料来源:http://topic.csdn.net/u/20070703/12/d94a3121-4272-4715-9de4-d39e201f6f56.html我查了一下,好多网友也给出了不少关于获得毫秒级时间的方法和建议,粘贴如下, 供大家参考: 帖1:  如果支持Timestamp,BSP应提供以下函数 sysTimestampConnect()

2012-07-09 14:45:22 11688 2

转载 udev轻松上路 (做2.6移植的朋友不要错过:)

第一、什么是udev? 这篇文章UDEV Primer给我们娓娓道来,花点时间预习一下是值得的。当然,不知道udev是什么也没关系, 把它当个助记符好了,有了下面的上路指南,可以节省很多时间。我们只需要树立一个信念:udev很简单! 嵌入式的udev应用尤其简单。 第二、为什么udev要取代devfs? 这是生产关系适应生产力的需要,udev好,devfs坏,用好的

2012-07-07 16:31:13 2073

转载 cdev结构

在Linux2.6内核中一个字符设备用cdev结构来描述,其定义如下:struct cdev {        struct kobject kobj;        struct module *owner;   //所属模块        const struct file_operations *ops;                   //文件操作结构,在写驱动时,

2012-07-07 15:47:15 750

原创 关于LED中的down()up()

down(&leds_lock);  //为什么这里 要down()和up(),我看过韦东山讲同步与互斥那个视频时,将up()放在了close中,还有就是      case2中为什么没有使用up()和down(),总之我这一块很迷惑,不知道这个程序是怎么实现的 不同次设备号控制不同的led,不理解这里的down()和up()作用是什么。请老师解答!!!!

2012-07-05 22:12:16 1977

转载 class_create(),device_create自动创建设备文件结点 .

从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一点,udev是应用层的东东,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用 class_device_cre

2012-07-05 19:13:44 4612

转载 字节对齐

gcc 中的"__attribute__ ((packed))" __attrubte__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐。#define __u8    unsigned char#define __u16   unsigned short/* __attribute__ ((pac

2012-07-04 08:47:24 1022

转载 VxWorks下使用双向链表lstLib的小例子

#include #include #include typedef struct _Queue{ NODE * next; NODE * prev; int age; char name[255];} QUEUE;LIST list;void TestList(){    QUEUE *p;    int i

2012-07-03 15:45:39 3446

原创 vxworks错误调试

alignmentException current instruction address: 0x00082024Machine Status Register: 0x0000b030Data Access Register: 0x02716a0bCondition Register: 0x20000048Data storage interrupt Register: 0x

2012-07-02 22:14:54 2448 2

转载 Linux Shell编程基础

linux系统下给命令指定别名alias命令用法: 在linux系统中如果命令太长又不符合用户的习惯,那么我们可以为它指定一个别名。虽然可以为命令建立“链接”解决长文件名的问题,但对于带命令行参数的命令,链接就无能为力了。而指定别名则可以解决此类所有问题。只要举一些例子就可以了: alias l='ls -l' ;用 l 代替 ls -l 命令(Xenix 下就有类似的 l 命令)

2012-07-01 21:56:30 522

转载 嵌入式Linux启动过程中的问题积累

1.Bad Magic Number ## Booting image at 33000000 ...Bad Magic NumberOMAP5912 OSK # (tftp下载好kernel的uImage后就停止在这,不能启动kernel)问题原因:启动参数设置错误,0x30000000处不可以执行。有的开发板sdram不是在0x33000000,所以不能把kerne

2012-07-01 21:09:19 675

原创 '/etc/init.d/rcS'启动打不开

'/etc/init.d/rcS' 文件系统中有这个文件啊  怎么报错说没有呢?   用光盘里面的内核镜像就不会出现这个问题    自己移植的内核刷上去就会这样  怎么办啊?以前也移植成功过没出现这个问题啊  已经搞了N天了快崩溃了  急急急补充一下 rcS  以及  init.d  和 etc 目录的权限都是  777原因找到了 是这个选项 choose

2012-07-01 20:44:10 4736

原创 我的第一个简单的linux打印输出驱动(文件自动注册有问题)

平台:linux 2.6.28.7#include #include #include #include #include #include #include #include /*#include #include #include #include */static struct class *firstdrv_class;s

2012-07-01 20:39:50 859 1

转载 linux驱动编写之十三(设备模型之sysfs,bus,device,driver源代码分析)

sysfs文件系统存在于内存中,是一个虚拟文件系统,其提供了kobject对象层次的视图,可以让用户以一个简单文件系统的方式来观察系统中的各种设备的拓扑结构,使用属性对象,kobject可以导出文件的方式,将内核变量提供给用户读取或者写入。在2.6内核的系统中,都拥有sysfs文件系统。sysfs将kobject对象与目录项紧密联系,通过kobject结构体中的dentry字段实现的。sy

2012-07-01 18:30:40 1134

转载 class_create(),class_device_create()或device_create()自动创建设备文件结点

从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一点,udev是应用层的东东,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用 class_device_creat

2012-07-01 17:26:28 669

嵌入式操作系统试题

嵌入式操作系统试题 求职面试考试学习资料

2012-08-14

ARM经典300问

ARM经典300问 学习ARM 找工作面试的经典学习资料

2012-08-14

嵌入式系统_ARM_试题

嵌入式系统 ARM 试题嵌入式系统 ARM 试题

2012-04-13

ads学习资料

ads学习资料

2012-03-16

华清远见vxworks培训资料

华清远见vxworks培训资料,入门介绍,适合初学

2011-10-12

虚拟机桥接问题大全.doc

虚拟机桥接问题大全.doc 讲述了虚拟机联网方式的问题,可用于网络通信的实验

2011-10-09

基于dSPACE的三相PWM整流器建模与控制

dSPACE 三相PWM整流器 仿真 基于dSPACE的三相PWM整流器建模与控制

2011-05-28

Matlab优化工具箱简介.

Matlab优化工具箱简介. Matlab优化工具箱简介. Matlab优化工具箱简介.

2009-04-10

十天学会ASP 经典

十天学会ASP 经典 编程 asp 语言 设计

2009-03-05

电子元件基础教程\电子元件基础教程 经典必备

电子元件基础教程\电子元件基础教程 经典必备 绝对适合与电子爱好者

2008-11-29

电子元件速查 经典版

电子 元件 经典 电子元件速查 经典版 适合于在线速查 方便 绿色版

2008-11-29

机器人工程适合自动电气设计专业爱好者

机器人工程适合自动电气设计专业爱好者 机器人 电气电子 自动化 设计 值得参考查阅

2008-11-29

C语言100例及教程.chm

C语言100例及教程.chm编程入门及练习,适合计算机等级考试。

2008-10-11

空空如也

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

TA关注的人

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