自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ebpf学习过程记录

ebpf学习记录

2023-01-17 12:37:32 155

转载 CPU性能-上下文切换(学习笔记)

CPU性能-上下文切换

2022-08-22 20:12:40 151

原创 6410 uboot代码重定位问题

6410uboot有一段代码用于重定位代码:adr r0, _start cmp r0, r6 beq clear_bss /* skip relocation */ mov r1, r6 /* r1 <- scratch for copy_loop */ ldr r3, _bss_start_ofs add r2, r0, r3 /* r2 <- source end

2013-02-27 23:18:15 1429

转载 IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)

转自historyasamirror的http://blog.csdn.net/historyasamirror/article/details/5778378;当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link 。写完之后发

2013-02-17 16:36:02 779

原创 ubuntu环境下重新编译内核

由于调试内核、驱动或工作需要,有可能需要对ubuntu下的内核进行重新编译,本文对内核重新编译过程进行简单分析,在进行重新编译内核前你可以通过uname -a来确认你的linux系统的当前版本。1.根据你的需要获取内核源码,获取内核源码有两种方式,一种是直接到http://www.kernel.org/下载你要的源码,另一种是通过在terminal中输入shell命令 sudo apt-g

2013-01-26 17:53:08 18633 1

原创 内存管理相关知识

对于32位的系统,它的寻址空间为4GiB,linux系统通常会把这个4GiB的虚拟地址空间按3:1进行分配,即前面3GiB用于用户空间,后而1GiB用于内核空间。        用户空间通过中断异常或系统调用切换到内核空间,用户空间访问内存时,它不会直接去访问物理内存,而是通过页表机制去访问,虚拟地址与物理地址之间的关系如图1所示:图1 32位处理上虚拟地址与物理地址之间关系

2013-01-21 14:46:50 948

转载 翻译:Linux的电源管理架构

本文转自DroidPhone的“http://blog.csdn.net/droidphone/article/details/6664057”Linux的源代码里,大部分都属于设备驱动程序的代码,因此,大多数电源管理(PM)的代码也是存在于驱动程序当中。很多驱动程序可能只做了少量的工作,另外一些,例如使用电池供电的硬件平台(移动电话等)则会在电源管理上做了大量的工作。 这

2013-01-08 14:47:09 944

原创 usb枚举过程分析之hub_events

当守护程序第一次运行或usb port上状态发生变化,守护进程被唤醒都会运行hub_events函数,这个函数在usb系统中处理核心位置,usb的枚举过程就是由它完成,usb枚举过程流程图如图1所示;图1 usb枚举流程图         由于hub_events函数比较长这里分几个部分进行讲解:static void hub_events(void){ struct

2013-01-08 14:23:33 19744 3

原创 usb枚举过程分析之守护进程及其唤醒

usb热插拔,即usb设备可以实现即插即用,像U盘一样,插到电脑里就可以用,不用时可以直接拔除,这个动作不会影响USB设备使用性能。        在linx 系统中,usb热插拔由两部分方面共同实现,即内核空间和用户空间,内核由一个守护进程实现,用户空间由udev 程序实现。在内核空间里,有一个专门用于监控usb hub的状态的守护进程,守护进程通过等待队列实现,等待队列平时处理休眠状态

2013-01-04 16:13:34 6639 1

原创 基于s3c6410 otg controller的gadget driver及usb枚举分 析

一.简介     一个完整的USB系统由两部分构成,即usb主机(usb host)和usb设备(usb device)。usb主机通常是指我们的pc机、具有host controller的嵌入式设备;像u盘、usb鼠标、键盘属于usb设备,具有otg controller的usb设备,它即可工作在host模式又可以工作在device模式,模式之间通过HNP协议来进行转换,如我们平时比较常

2012-12-29 15:41:13 9905 2

转载 linux下热插拔事件的产生是怎样通知到用户空间,kobject_uevent_env之uevent

1.kobject, ktype, ksetkobject代表sysfs中的目录。ktype代表kobject的类型,主要包含release函数和attr的读写函数。比如,所有的bus都有同一个bus_type;所有的class都有同一个class_type。kset包含了subsystem概念,kset本身也是一个kobject,所以里面包含了一个kobject对象。

2012-12-12 16:49:15 2124

原创 ohci之usb_submit_urb 一

usb控制器与usb设备之间是通过urb结构来传递数据,urb是usb通信基础。         驱动在使用urb之前要先通过usb_alloc_urb来创建struct urb结构,并通过usb_fill_xx_urb来初始化创建的urb,然后通过usb_submit_urb把urb提交给主控制器,由控制器进行实际发送,发送完给控制器把urb所有权交还给驱动,并可通过回调函数获取urb发送状

2012-12-07 10:55:01 6317

原创 usb中urb相关接口函数

一. 简介             usb总线是一种轮询式总线,协议规定所有的数据传输都必须由主机发起,usb主机与设备之间是通过管道(pipe)传输的,管道两边分别对应主机中的数据缓冲区和设备侧的端点(endpoint),端点是通信的发送和接收点,要发送数据,只要把数据发到对应的端点就可以,而这个数据发送的动作由usb主机实现,驱动中只需确定接收端点,然后把数据提交给主机控制器,主机会把数据

2012-12-05 17:46:02 6130

原创 各种总线match匹配函数

当向linux系统总线添加设备或驱动时,总是会调用各总线对应的match匹配函数来判断驱动和设备是否匹配,这些match函数之间都存在一定的差异,本文先对常用的match匹配函数进行讲解,以后会陆续添加新的内容。 一. 驱动和设备匹配过程常用数据结构1. of_device_idstruct of_device_id{charname[32];char type[32]

2012-11-13 15:28:17 20892 3

原创 中断及其延期执行技术

一 .中断基础        中断是除了系统调用之外的另一种可进行用户空间和内核空间切换的途径;        中断分为硬件中断(hardware interrupt)和软中断(softirq),下文中的中断是指硬件中断。          硬件中断:由系统本身和它所接外设产生的,用于实现更高效率的驱动程序,也可能是由处理器运行错误和异常的程序所导致。前者可称为异步中断,后者叫同步中断

2012-11-02 09:02:29 1452

原创 i2c driver

一. 简介       I2C(Inter-Intergrated circuit)及子集smbus(System Mangement Bus)接口是嵌入式系统中比较常见的设备接口,这类设备主要有eeprom,hwmon,rtc等。I2C及SMBUS为两线接口,分别为SDA(串行数线),SCL(串行时钟);SDA是双向数据线,可以读写命令来控制SDA方向,I2C支持最高传输速率为100kbit

2012-10-29 13:25:58 6267

原创 RTC系统

一. RTC及驱动简介        RTC即real time clock实时时钟,主要用于为操作系统提供可靠的时间;当系统处于断电 的情况下,RTC记录操作系统时间,并可在电池供电情况下继续正常工作,当系统正常启动后,系统可从RTC读取时间信息,来确保断电后时间运行连续性。        目前,很多CPU中都已集成RTC系统,且有许多独立的外接RTC芯片可用于实现RTC功能;

2012-10-26 17:28:51 20908

原创 input-dev输入子系统

一.input子系统简介:        linux系统中,input输入子系统驱动主要可以分为:设备驱动层、input core层和input handler事件处理层。设备驱动层为具体用户设备驱动,输入设备由struct input-dev 结构表示,并由input_register_device和input_unregister_device来注册和卸载;input hander事件处理

2012-09-26 15:27:19 8502

原创 内核调试技术 profs

/proc文件系统是一种特殊的,由软件创建的文件系统,内核通过它向用户输出信息;/proc下面的每个文件都绑定一个内核函数,当用户读取其中文件时,内核函数会动态生成文件的内容。例如,/proc/modules列出的是当前系统中已加载模块;linux中的很多工具都是通过/proc来获取它们所需要的信息,如ps,top等        /proc文件可以通过下面函数创建

2012-09-21 14:08:45 771

原创 linux 阻塞等待

对于一个进程"睡眠"意味着什么? 当一个进程被置为睡眠, 它被标识为处于一个特殊的状态并且从调度器的运行队列中去除. 直到发生某些事情改变了那个状态, 这个进程将不被在任何 CPU 上调度, 并且, 因此, 将不会运行. 一个睡着的进程已被搁置到系统的一边, 等待以后发生事件.        当你运行在原子上下文时不能休眠,如果在获得自旋锁情况下,在中断处理函数中;当进程从休眠中醒来时,必须对

2012-09-07 14:45:45 3930

原创 linux notifier

Linuxnotifier技术内核通知链介绍(引用网络资料):在linux内核系统中,各个模块、子系统之间是相互独立的。Linux内核可以通过通知链机制来获取由其它模块或子系统产生的它感兴趣的某些事件。例如,可以通过通知链来获取某总线上的设备增加、删除情况,来动态添加和卸载dev文件设备。Linux内核中包含四种类型通知链:Atomic notifierchains: 这种类型通知

2012-08-29 11:11:39 2079

基于Zigbee的簇树协议分析

Z i g b e e 是 一种短距 离、 低速率 的无线 传 感器网络 的技术标准 ,其 P H Y层和 M A C层 协议 为 I E E E 8 0 2 . 1 5 4协议标准. 主要特 性是 低速率、 近距离 、 低功耗、 低复杂度和低成本

2014-05-16

基于ZigBeeMAC层的多信道接入协议的研究

Z i g B e e 是 一 种新 兴 的 无 线传 感 器 网络 技 术【 ” , 近 年 来 已被 广 泛地 应 用 于无 线 传 感 器 网络 中。在 该 协议 的 MAC 层 中 , 规 定 每 个 P A N( P e r s o n a l A r e a Ne t wo r k , 个人 区域 网 络 ) 内所 有 节 点 均 工作 在 一 个 单 一 的信 道 上 , 而 该 协议 的 P H Y 层 以及 多种 Z i g b e e芯 片 在 2 . 4 G H z频 段 内都 可 以 支持 多达 1 6个信 道 。基 于此 . 本 文 为 Z i g B e e网 络提 出 了一 种 多信道 分 配的 MA C机 制 , 并 通过 仿 真 验 证 了该 算 法 的 可行 性

2014-05-16

linux device driver

This is, on the surface, a book about writing device drivers for the Linux system. That is a worthy goal, of course; the flow of new hardware products is not likely to slow down anytime soon, and somebody is going to have to make all those new gadgets work with Linux. But this book is also about how the Linux kernel works and how to adapt its workings to your needs or interests. Linux is an open system; with this book, we hope, it is more open and accessible to a larger community of developers. This is the third edition of Linux Device Drivers. The kernel has changed greatly since this book was first published, and we have tried to evolve the text to match. This edition covers the 2.6.10 kernel as completely as we are able. We have, this time around, elected to omit the discussion of backward compatibility with previous kernel versions. The changes from 2.4 are simply too large, and the 2.4 interface remains well documented in the (freely available) second edition. This edition contains quite a bit of new material relevant to the 2.6 kernel. The discussion of locking and concurrency has been expanded and moved into its own chapter. The Linux device model, which is new in 2.6, is covered in detail. There are new chapters on the USB bus and the serial driver subsystem; the chapter on PCI has also been enhanced. While the organization of the rest of the book resembles that of the earlier editions, every chapter has been thoroughly updated. We hope you enjoy reading this book as much as we have enjoyed writing it.

2014-05-16

无线传感器网络中TinyOS的研究

无线传感器网络是一种全新的信息获取和处理技术 , 能够实时监测、 感知和采集各种环境或监测对象的信息 ; 传统的嵌入式操 作系统由于各种原因不能满足无线传感器网络的需求 , 为此深入研究了加州大学伯克利分校设计的 TinyOS ; 该文介绍了 TinyOS 基于组件架 构的体系结构 ; 深入地阐述了 TinyOS 的调度策略、 能量管理机制以及并发模型 ; 展望了 T i nyOS 在无线传感器网络中广阔的应用前景

2014-05-16

基于Tinyos的传感器网络程序实例开发

T iny os 操作系统采用的轻量级线程技术 、 两层调度方式 、 事件驱动模式 、 主动消息通信技术及组件化编程 等有效地提高了传感器节点 CP U 的使用率 , 在 T iny os 中采用 Nes C 语言进行应用程序开发 , 有很多问题值得研究和探 讨 。从 Nes C 语言基于组件化编程的特点入手 , 讨论基于 T iny os 的应用程序的开发过程 。分析了编程语言 Nes C 的应用 程序结构 , 结合实例给出完整的 T iny os 中用 T oss im 模拟器模拟应用程序的过程 , 说明了应用程序开发的步骤及运行方法

2014-05-16

基于ARM核处理器的TinyOS实现

简要介绍了面向无线传感器网络的操作系统 Ti ny O S及其编程语言 Ne s C的特点 , 详细分析了 Ti ny O S和 N e s C的编译链接过程 ,并以 A T 91 M40800为例给出了基于 AR M 核处理器芯片的 Ti ny O S的实现

2014-05-16

tinyos programming

This book provides an in-depth introduction to writing nesC code for the TinyOS 2.0 operating system. While it goes into greater depth than the TinyOS tutorials on this subject, there are several topics that are outside its scope, such as the structure and implementation of radio stacks or existing TinyOS libraries. It focuses on how to write nesC code, and explains the concepts and reasons behind many of the nesC and TinyOS design decisions. If you are interested in a brief introduction to TinyOS programming, then you should probably start with the tutorials. If you’re interested in details on particular TinyOS subsystems you should probably consult TEPs (TinyOS Enhancement Proposals), which detail the corresponding design considerations, interfaces, and components. Both of these can be found in thedoc/htmldirectory of a TinyOS distribution

2014-05-16

Data Fragmentation Scheme in IEEE 802.15.4

we propose a data fragmentation scheme to increase channel utilization and avoid inevitable collision. Our proposed scheme outperforms the standard IEEE 802.15.4 MAC in terms of collision probability and aggregate throughput. The proposed scheme is easily adapted to the standard IEEE 802.15.4 MAC without any additional message types

2011-05-11

无线网络通信技术及其应用

中对应用广泛的蓝牙、 Z i g B e e 等无线协议进行了阐述,并介绍了各 自的技术特点及其应用。

2011-05-10

无线传感网络目标定位系统建模与仿真

文章首先提出一种传感器网络目标定位系统的系统模型 然后利用 Ptolemy Ⅱ建模仿真平台完成该传感器网络目标 定位系统的系统级行为描述 并根据系统级建模方法学对该目标定位系统进行建模与仿真 分析了传感器网络目标定位系统的诸多影响因素 测试结果表明 传感器网络目标定位系统对于传感器节点的功耗及信息时间同步窗口具有敏感性 符合传感器网络目标定位系统应用特性 验证了 Ptolemy 嵌入式系统级设计方法学对于指导传感器网络系统设计的正确性和可行性

2011-03-22

无线智能传感系统的实现

常见的低功耗、 电池供电的无线数字传感器采用的节能方式主要是在传感器的无线发射端采用分时采样发送的方法节约电力.由于在许多场合接受端要求数据采集的频次远低于发射端数据发送的频次 ,因此 ,许多次发射是空耗的 ,浪费了能源.文中设计的无线数字智能传感器 ,采用上位机编程控制的方法 ,利用接受端按需要发送请求控制发送端发送数据的方法 ,在不影响数据采集质量的情况 下 ,最大程度上降低了能耗

2011-03-22

一种多传感模块无线传感器网络新型节点的设计与实现

本文首先对无线传感器网络的体系结构、特点及应用做了介绍,指出现有无线传感器网络及传感节点的研究现状:其次提出了传感器节点模块化的设计思想,详细论述了接口模块、处理器模块、无线通信模块、传感器模块和电源模块的设计方案,并在硬件设计中,就器件的对比和选择、电路原理和PCB的设计及电气规则等问题作了详细论述

2011-03-22

WSN无线传感网络定位技术的研究

本文首先对无线传感器网络进行了概述,介绍其结构和特点,然后对其节点的定位问题进行了研究

2011-03-22

TinyOS下基于MSP430平台的EEPROM驱动程序设计

无线传感器网络节点需要非易失性的外部存储器来保存自身采集的数据、 路由信息等传感器数 据。这就需要节点上的微处理器能够访问外部存储器。在专门为传感器网络设计的微型操作系统 Tiny2 OS中 ,没有支持对串行 EEPROM进行相关操作的底层驱动程序。根据实际需求 ,在分析了串行 EEPROM AT24C512B的功能和 Tiny OS下硬件抽象体系结构的基础上 ,设计了基于 I2C总线的 EEPROM硬件抽象组 件体系 ,实现了 Tiny OS下基于 MSP430平台的串行 EEPROM驱动程序 ,同时满足了应用开发的灵活性与 传感器节点功耗低两方面的需求

2011-03-22

TinyOS任务调度机制与实时调度构件设计

TinyOS是一个开源的构件化操作系统 ,它采用构件化描述语言 nesC进行开发,主要针对资源非常有限的无线传感器网络节点而设计。分析了 TinyOS2 2 . x的任务调度机制 ,针对其在实时应用领域的调度缺陷 ,设计并实现了一种软实时任务调度构件。根据构件在 T OSSI M仿真器中的验证分析 ,能有效增强 TinyOS的实时性能。

2011-03-22

TinyOS集成开发环境的设计与实现.pdf

Tiny OS是针对资源非常有限的无线传感器网络节点而设计的构件化操作系统 ,采用构件化描述语言 nesC进行开发。由于采用基于构件的软件工程 (CBSE)技术 , Tiny OS可以看成是一个构件库 ,简化了无线传感器节点上的应用程序设计 ,但目前缺乏系统配套的构件管理工具和高效集成开发环境 ( I DE)。分析了构件化描述语言 nesC和 Tiny OS的开发过程 ,设计并实现了一种构件化集成开发环境及其构件管理器。根据分析和实际使用 ,该开发环境能有效地简化开发流程并提高开发效率。

2011-03-22

TinyOS环境下音频数据采集原型系统的设计与实现

无线传感器网络中音频数据的采集具有采样频率快、 数据量大的特点 ,对无线传感器网络数据的存储、压缩与传输提出了挑战。结合音频数据采集的特点 ,针对其应用环境 ,提出了一种具有存储、 压缩与可靠传输功能的音频数据采集协议 ,并在 MicaZ节点硬件平台上实现了该协议的原型系统。实验表明 ,该原型系统可以保证音频数据的可靠传输 ,并能够有效减少节点的发包量。

2011-03-22

空空如也

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

TA关注的人

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