首页 理论教育 TinyOS组件的初始化顺序及注意事项

TinyOS组件的初始化顺序及注意事项

更新时间:2025-01-10 工作计划 版权反馈
【摘要】:TinyOS的启动顺序将组件的初始化分为硬件平台初始化PlatformInit和软件初始化SoftWareInit,硬件平台的初始化在软件初始化之前。不依赖于硬件资源的其他组件软件在初始化时都通过配置文件MainC连接到接口SoftwareInit,在软件初始化时没有特定的顺序。当软件的初始化完毕后,说明整个系统已经准备完毕,进行中断初始化,使硬件中断可用,为了保证前期的初始化顺利进行,在这期间是不能执行硬件中断的。

TinyOS的启动顺序将组件的初始化分为硬件平台初始化PlatformInit和软件初始化SoftWareInit,硬件平台的初始化在软件初始化之前。

硬件平台进行初始化的命令是call PlatformInit.init(),选用的硬件平台不一样,其初始化内容也不相同,并且硬件平台的初始化要按照特定的顺序。不依赖于硬件资源的其他组件软件在初始化时都通过配置文件MainC连接到接口SoftwareInit,在软件初始化时没有特定的顺序。

硬件平台初始化的具体初始化功能由PlatformC(或其连接的组件)完成,每个硬件平台都会有组件PlatformC,平台的不同使得其内容不同,但功能是一致的,都是对硬件平台完成初始化。初始化过程可能会提交任务,因此,随后要调度执行任务队列中的任务直至任务队列为空。硬件初始化提交的任务执行完毕后才能执行软件的初始化,在代码中显示为:(www.xing528.com)

用一个While循环来判断任务调度器队列中的任务是否已经执行完毕,如果队列中为空则跳出循环,执行接下来的代码。

当软件的初始化完毕后,说明整个系统已经准备完毕,进行中断初始化,使硬件中断可用,为了保证前期的初始化顺利进行,在这期间是不能执行硬件中断的。__nesc_enable_interrupt()的实现比较简单,是一段汇编语言,完成开启中断的功能,其代码如下:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈