实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。 2、了解tinyos中task抽象及其使用。 3、在Blink程序中使用task实现计算和外部设备操作的并发。
二、预备知识 1、课堂讲义 2、TinyOS Programming 3、TinyOS Blink源程序 4、TinyOS printf组件的使用 http://tinyos.stanford.edu/tinyos-wiki/index.php/The_TinyOS_printf_Library
1、修改Blink程序,在timer0的触发事件处理中加入计算 三、实验内容 1、修改Blink程序,在timer0的触发事件处理中加入计算 观察LED亮灯的情况,分析其原因,将400001改为10001,再观察并进行分析。 event void Timer0.fired() { uint32_t i; dbg("BlinkC", "Timer 0 fired @ %s.\n", sim_time_string()); for(i=0;i<400001;i++) call Leds.led0Toggle(); }
三、实验内容 2、采用task实现计算 观察LED亮灯的情况,分析其原因,将400001改为10001,再观察并进行分析。 uint32_t i; task void computeTask() { for (i=0;i 400001; i++) {} } event void Timer0.fired() { dbg("BlinkC", "Timer 0 fired @ %s.\n", sim_time_string()); call Leds.led0Toggle(); post computeTask(); } 观察LED亮灯的情况,分析其原因,将400001改为10001,再观察并进行分析。
三、实验内容 3、请修改computetask的内容,将400001次计算分割成为若干小的部分,从而使得LED1和LED2的fire事件可以被正常调用。