一、参数缓存区
The argument buffer can be used when passing an argument from an exiting process to a process that has not been created yet. More…
在将参数从退出进程传递给尚未创建的进程时,可以使用参数缓冲区。
Functions
char * arg_alloc (char size)
//Allocates(分配) an argument buffer.
void arg_free (char *arg)
//Deallocates (解除分配)an argument buffer.
详细描述
当将参数从现有进程传递到尚未创建的进程时,可以使用参数缓冲区。
由于退出进程在新进程启动时将退出,因此该参数不能在任何进程的addres空间中传递。在这种情况下,可以使用参数缓冲区。
论点缓冲区是静态分配在内存中,在全局范围内访问所有进程。
一个论点缓冲区用arg_alloc()函数分配空间,用arg_free()函数解除分配。arg_free()函数的设计,以便它可以采取任何指针,而不只是一个论点缓冲区指针。如果指向arg_free()的指针不是一个参数缓冲区,这个函数什么也不做。
函数文档
char* arg_alloc ( char size )
//分配一个参数缓冲区.
参数:
size 请求的缓冲区大小,以字节为单位。
返回值:
指向已分配缓冲区的指针,如果无法分配缓冲区,则为空。
注意事项:
目前无法分配128字节以外的任何其他大小的参数缓冲区。
void arg_free ( char * arg )
//释放一个参数缓冲区。
此函数释放由参数指向的参数缓冲区,但仅当该缓冲区实际上是参数缓冲区并已被分配时才释放。使用任何指针调用这个函数都是完全安全的。
参数:
arg 指针
二、时钟库
时钟库是contiki与平台特定时钟功能之间的接口。
Defines
#define CLOCK_SECOND
A second, measured in system clock time.
Functions
void clock_init (void)
//Initialize the clock library.
//初始化
CCIF clock_time_t clock_time (void)
//Get the current clock time.
//获得当前时钟时间
CCIF unsigned long clock_seconds (void)
//Get the current value of the platform seconds.
//获取平台秒的当前值。
void clock_set_seconds (unsigned long sec)
//Set the value of the platform seconds.
//设置平台秒的值。
void clock_wait (clock_time_t t)
//Wait for a given number of ticks(滴答).
//等待给定时间的滴答
void clock_delay_usec (uint16_t dt)
//Delay(延迟) a given number of microseconds.(微秒)
//延迟给定时间的微秒
int clock_fine_max (void)
//Deprecated platform-specific routines.
//弃用平台特定的例程。
void clock_delay (unsigned int delay)
//Delay the CPU for a multiple(倍数) of 2.83 us.
//将CPU延迟2.83 us的倍数。
Detailed Description
时钟库是Contiki与平台特定时钟功能之间的接口。
时钟库定义了一个宏Clock_SECOND,用于将秒转换为平台的刻度分辨率。通常这是1-10毫秒,例如4*Clock_SECOND可以是512秒。这样,16位计数器每1-10分钟就会溢出一次.平台使用滴答中断来维护启动后的秒数。
平台还可以为更高的时间分辨率和实时中断实现定时器,它们使用相应的RTIMER_SECOND。
Note:
这些定时器不一定有公共除数或相位锁定。一种可能是晶体控制的,另一种则可能不是。低功率操作或睡眠通常会使用一个唤醒和禁用另一个,然后给它一个滴答纠正醒来后。
时钟库在许多情况下不需要直接使用。相反,计时器库, 事件计时器,或者需要使用rtimer库
另见:
Timer library
Event timers
Realtime library
函数文档
void clock_delay ( unsigned int i )
//将CPU延迟2.83 us的倍数。
msp430的原始clock_delay使用2.83 usec粒度。这近似于值为1456 usec的延迟。(leds.c中最大的核心调用使用400个)。
void clock_delay_usec ( uint16_t howlong )
//延迟给定时间的微秒
Parameters:
dt 延迟多少微秒。
Note:
中断可以将延迟增加一个可变的值。
延迟给定的微秒数。
使用250KHz的MACA时钟进行更长的延迟,以避免中断效果。然而,如果收音机是电力循环,那就不能用了!
void clock_init ( void )
//Initialize the clock library.
这个函数初始化时钟库,应该从系统的main()函数调用。
将Timer/Counter0设置为与CPU时钟异步,由第二个外部时钟(32,768kHz)驱动。
等待TCN0UB、OCR0UB和TCR0UB。
Definition at line 110 of file clock.c.
CCIF unsigned long clock_seconds ( void )
//获取平台秒的当前值。
这可以是自启动以来的秒数,也可以是自标准纪元以来的秒数。
Returns:
值。
获取平台秒的当前值。
这种比较避免了在原子读取4字节变量时禁用时钟中断的需要。
void clock_set_seconds ( unsigned long sec )
//设置平台秒的值。
参数:
sec 要设置的值
设置平台秒的值。
绝对日期/时间的标准纪元。
CCIF clock_time_t clock_time ( void )
//获得当前时钟时间
此函数返回当前系统时钟时间。
Returns:
当前时钟时间,以系统滴答声度量。
当16位时,它通常每10分钟包装一次。这种比较避免了对多字节变量的原子读取禁用时钟中断的需要。
void clock_wait ( clock_time_t i )
//等待给定数量的滴答
Parameters:
t 多少滴答
三、通信能量总计
compower模块积累功耗信息和属性交流活动。
Data Structures
struct compower_activity
包含特定通信活动的功耗信息的活动记录。
Files
file compower.c
通信功率计算模块。
file compower.h
通信功率计算模块的头文件。
Functions
void compower_init (void)
//Initialize the communication power accounting module.
//初始化通信功率计算模块。
void compower_accumulate (struct compower_activity *a)
//Accumulate power contumption for a communication activity.
//为通信活动积累能量消耗。
void compower_clear (struct compower_activity *a)
//Clear power consumption information for a communication activity.
//为通信活动清除功耗信息。
void compower_attrconv (struct compower_activity *a)
//Convert power contumption information to packet attributes.
//将功率消耗信息转换为包属性。
void compower_accumulate_attrs (struct compower_activity *a)
//Accumulate power contumption for a communication activity based on energy data in packet attributes.
//累积基于分组属性中的能量数据的通信活动的能量消耗。
Variables变量定义
struct compower_activity compower_idle_activity
//The default idle communication activity.
//默认的空闲通信活动。
Detailed Description
compower模块收集功耗信息并将其归因于通信活动。
通信活动的例子有包传输、包接收和空闲监听。
Function Documentation
void compower_accumulate ( struct compower_activity * a )
//为通信活动积累能量消耗。
Parameters:
a 指向活动结构的指针。
此功能为通信活动积累功耗信息。这个功能通常是由省电的MAC协议在无线电关闭时,或在接收或传输数据包时调用的。
void compower_accumulate_attrs ( struct compower_activity * a )
累积基于分组属性中的能量数据的通信活动的能量消耗。
Parameters:
a 指向活动结构的指针。
此函数从包属性(参见包属性)累积通信活动的功耗信息。
void compower_attrconv ( struct compower_activity * a )
//将功率消耗信息转换为包属性。
Parameters:
a 指向活动结构的指针。
此函数将通信活动的累积功耗信息转换为包属性(参见包属性)。
void compower_clear ( struct compower_activity * a )
//为通信活动清除功耗信息。
Parameters:
a 指向活动结构的指针
此函数将清除以前在活动结构中累积的任何电源消耗信息。
void compower_init ( void )
//初始化通信功率计算模块。
此功能初始化通信功率计算模块。系统在启动期间调用该函数。
Variable Documentation
struct compower_activity compower_idle_activity
//默认的空闲通信活动。
这是一种空闲的通信活动,所有不可能归属于单个信息包的能量都归属于此活动。例如,空闲监听传入的数据包和mac级的信标传输。