03 2022 档案
摘要:多任务系统的事件响应是在中断中完成的,但事件的处理是在任务中完成的。 在多任务系统中,任务与中断一样,也具有优先级,优先级高的任务会被优先执行。当一个紧急事件在中断中被标记之后,如果事件对应的任务的优先级足够高,就会立刻得到响应。 相比前后台系统,多任务系统的实时性又被提高了。 int flag1
阅读全文
摘要:前后台系统是在轮询系统的基础上加入了中断。外部事件的响应在中断里面完成,事件的处理还是回到轮询系统中完成,中断在这里称为前台, main()函数中的无限循环称为后台。 伪代码: int flag1 = 0; int flag2= 0; int flag3 = 0; int main(){ hardw
阅读全文
摘要:轮询系统即在裸机编程时,先初始化好相关的硬件,然后让主程序在一个死循环里面不断循环,顺序地处理各种事件。 轮询系统是一种非常简单的软件结构,通常只适用于仅需要顺序执行代码且不需要外部事件来驱动就能完成的事件。 当有外部事件驱动时,实时性就会降低。 伪代码: int main() { hardware
阅读全文
摘要:学习一个RTOS,弄清楚它的编程风格很重要,这可以大大提高我们阅读代码的效率(虽然我不太喜欢这种风格)。 1、数据类型 FreeRTOS针对不同的处理器,对标准C的数据类型进行了重定义。在类型前一般加上port ,这里的port表示接口,在移植FreeRTOS到处理器上时,需要将这些接口文件把它们连
阅读全文
摘要:在编程时,如果用户没有明确指定char的符号类型,那么编译器会默认指定指定char的类型为无符号或者有符号。在KEIL中,默认char是无符号的,但是也可以配置为有符号的
阅读全文