- 博客(18)
- 资源 (5)
- 收藏
- 关注
转载 浅析Android中的消息机制
在分析Android消息机制之前,我们先来看一段代码:[java] view plaincopypublic class MainActivity extends Activity implements View.OnClickListener { private TextView stateText;
2015-09-14 11:22:42 319
转载 Android 操作系统的内存回收机制
Android 是一款基于 Linux 内核,面向移动终端的操作系统。为适应其作为移动平台操作系统的特殊需要,谷歌对其做了特别的设计与优化,使应用程序关闭但不退出,并由操作系统进行进程的回收管理。本文在 Application Framework 与 Linux 内核两个层次上,以进程为粒度,对 Android 操作系统的进程资源回收机制进行了剖析。读者可以从本文获得对 Android 应用程序的
2015-09-14 11:12:26 684
转载 android的消息处理机制(图+源码分析)——Looper,Handler,Message
作为一个大三的预备程序员,我学习android的一大乐趣是可以通过源码学习google大牛们的设计思想。android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了。这不,前几天为了了解android的消息处理机制,我看了Looper,Handler,Message这几个类的源码,结果又一次被g
2015-09-14 11:11:29 282
转载 contiki 中数据包的接收与发送流程
--------------------------------------- 数据包接收流程 ----------------------------------------------------------------------以ESB为例:CPU为msp430,射频芯片为Tr1001。相关代码在/platform/esb以及 /cpu/msp430 ,/core/net中
2015-09-09 21:10:56 1413
转载 Rime 协议栈地址 rimeaddr_t
摘要 : 本文讲述了 Rime 协议栈 rimeaddr_t 相关细节,包括地址格式、地址相关操作 rimeaddr_copy 和 rimeaddr_cmp; 两个全局变量 rimeaddr_node_addr 和 rimeaddr_null。一、概述 无论哪个协议栈,都得解决一个根本问题,如何标识不同的设备,即编址。如计算机网络中,用端口号标识同一台
2015-09-09 20:40:06 573
转载 Rime 协议栈缓冲区 packetbuf
摘要: 本文讲述了Rime协议栈缓冲区管理,先是结合示意图理清各变量间关系,接着给出函数API描述,并详细剖析各个函数,最后分析了发出和接收的数据包存放方式不同的原因。一、概述及相关变量 Rime缓冲区管理比较简单,将发出和收到的数据包(包括应用程序数据和数据包属性packet attributes,即所有数据都经过该缓冲区)都存储在一个单一的缓冲区pac
2015-09-09 20:35:39 773
转载 Contiki之父Adam Dunkels经典论文介绍
作为一个越来越受重视的物联网操作系统,Contiki已经受到产业界和教育界开发和应用者的青睐。Contiki系统与传统的操作系统相比具有自己的特性:非常节省内存,丰富的无线通信协议原语,小巧实用的Coffee文件系统,可灵活更换的动态链接库,支持IPPv4和IPv6协议栈,由ASNI C语言实现,开源免费。 接下来的问题是,我们应用者如何快速掌握该系统,根据我们使用OS的经验,大概是“四步
2015-09-07 19:23:05 852
转载 Contiki常用数据结构
Contiki常用数据结构1. Packetbuf得益于Contiki进程是非抢占的特性,Rime缓冲区将接收与发送的数据包存储在一个单一的缓冲区packetbuf,它的管理结构如图1.1所示,结合该图与源代码packetbuf.c可以很好地理解和使用缓冲区。特别注意packetbufptr,该指针可以指向外部引用的内存,这样就带来很大的灵活性(如:实现“零拷贝”,访问只读数据
2015-09-07 19:21:05 845
转载 Contiki协议栈
Contiki协议栈一.协议栈总体框架Contiki系统为了支持多种硬件平台和软件协议设计了如图1.1所示的层次框架,通过contiki-conf.h的宏定义用户可以灵活地选择协议类型,如:#define NETSTACK_CONF_NETWORK rime_driver#define NETSTACK_CONF_MAC csma _driver#define NE
2015-09-07 19:20:23 1091
转载 Contiki rtimer原理与移
[+]rtimer原理与移植一rtimer用途二数据结构三rtimer中断时序四rtimer移植rtimer原理与移植一.rtimer用途Contiki系统引入rtimer可以满足精准定时的需要,一些对时间极为敏感的模块(如MAC协议)依赖于rtimer。和etimer的粗粒度(常见为100Hz)不同,rtimer是细粒度(常见为10kHz)定时器。根据经验
2015-09-07 19:19:43 703
转载 Contiki开发要点
Contiki开发要点一.Protothread变量定义Adam Dunkels的论文中提到,基于Contiki的protothread开发时要特别注意变量的生存周期,分配在栈中的自动变量,随着函数被多次返回与调用,它很容易带来错误。现在,通过分析几个实例程序来总结protothread中定义变量的规律。1. 一个出错的程序如图1所示的程序用于打印当前的时钟值,可得到的结
2015-09-07 19:18:59 569
转载 Contiki内核原理
[+]Contiki协议栈一协议栈总体框架二收发Radio Packet的调用与时序接收Radio Packet发送Radio Packet三CSMACarrier Sense Multiple Access协议原理Contiki协议栈一.协议栈总体框架Contiki系统为了支持多种硬件平台和软件协议设计了如图1.1所示的层次框架,通过conti
2015-09-07 19:18:02 1624
转载 Contiki移植
一.系统层次结构一个基于Contiki嵌入式系统的层次结构如图1所示,很明显,移植Contiki主要的工作是开发对应硬件的“板级层”软件包,同时解决Make工程的各种错误。图1 Contiki系统层次结构二.移植思路移植一个嵌入式操作系统的大致流程如下,Contiki也不例外:1. 阅读该系统的原理论文和说明手册,建立整体概念;2. 下
2015-09-07 19:16:56 1097
转载 Contiki Makefile结构
摘要本文简要介绍了contiki的makefile结构和添加新平台的方法。正文1.CPUa. 建立需要支持的cpu目录contiki/cpu/cputype/b.在../cputype/下放置以下文件:CPU相关的底层代码和驱动contiki移植与CPU相关的代码,例如clock.c rtimer-arch.c链接文件makefile
2015-09-07 19:10:48 558
转载 移植Conkiti内核到LPC11U14上
Conkiti的调度内核很简单:使用轻量级的proto-threads进程模型,可以在事件驱动内核上提供一种线性的、类似于线程的编程风格。因此Conkiti的上下文保存不会使用到汇编而完全用C语言完成,proto-threads属于抢占式OS模型,需要进程主动释放CPU,进程的上下文通过当前文件的行号保存。因此上下文切换可以通过C完成。1.调度内核涉及的文件:conkiti/core/
2015-09-07 19:07:38 685
转载 Contiki 调度内核不完全介绍
Protothread:Lightweight, Stackless Threads in C C协程利用C语言的语法特性或者利用编译器特性来完成上行文的切换,所有的thread共用一个堆栈,只是用2byte保存上下文。类似于协作式操作系统,由thread主动释放CPU。设计原理可参照http://www.chiark.greenend.org.uk/~sgtatham/corouti
2015-09-07 19:05:25 440
转载 Contiki packetbuf原理
摘要本文介绍了contiki netstack中在framer,rdc,mac层中b欧诺个uffer数据的packetbuf的构造和原理。正文packetbuf作用contilki netstack发送和接收数据先通过packetbuf缓冲,再进行处理。packetbuf构成packetbuf由header部分和data部分组成 data的长度为PAC
2015-09-07 18:52:21 514
转载 contiki netstack数据收发结构
摘要本文介绍了contiki netstack的MAC层以下数据收发层次结构,并讨论如何移植新的无线器件做为contiki的无线收发器。正文contiki netstack的数据收发层级 Radio:主要完成物理层无线数据的收发和控制Framer: 完成对数据帧的打包和解析RDC: radio duty cycling, 周期性访问radio,主要为了减少功耗M
2015-09-07 18:47:20 639
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人