随笔分类 -  FreeRTOS

摘要:1. printf-stdarg.c 在调用标准库函数时,栈空间的用量可能急剧上升,特别是IO与字符串处理函数,比如 sprintf()。 在FreeRTOS下载包中有一个名为printf-stdarg.c 的文件,这个文件可以替代标准C库函数版本。在大多数情况下,可以调用sprintf() 及相关 阅读全文
posted @ 2016-03-23 10:23 Risun_Lee 阅读(1691) 评论(0) 推荐(0)
摘要:1. 标准malloc() 和 free() 库函数的缺陷: 1)在小型的嵌入式系统中,可能不可用。 2)具体实现相对较大,占用较多宝贵的代码空间。 3)通常不具备线程安全性。 4)具有不确定性,每次调用的时间开销可能不同。 5)会产生内存碎片。 6)会使得链接器、配置的复杂。 2. 内存分配方案范 阅读全文
posted @ 2016-03-23 10:04 Risun_Lee 阅读(644) 评论(0) 推荐(0)
摘要:1. 多任务系统存在一个潜在的风险:资源管理。 2. 基本临界区:taskENTER_CRITICAL() 与 taskEXIT_CRITICAL() 或 taskENTER_CRITICAL_FROM_ISR( x ) 与 taskEXIT_CRITICAL_FROM_ISR() 之间的代码。 基 阅读全文
posted @ 2016-03-23 09:56 Risun_Lee 阅读(840) 评论(0) 推荐(0)
摘要:1. 只有以“FromISR”或"FROM_ISR"结束的API函数或宏才可以在中断服务函数中使用。 2. 除互斥信号量外,所有类型的信号量都可以调用 xSemaphoreTake() 来获取信号量,但 xSemaphoreTake() 不能用在中断服务函数中。 3. 计数信号量的典型用法:① 事件 阅读全文
posted @ 2016-03-23 09:13 Risun_Lee 阅读(1532) 评论(0) 推荐(0)
摘要:1. 队列主要用于任务与任务、中断与任务之间的消息传递。 2. 创建队列时,请注意队列中数据单元的长度。 3. 通常情况,队列被作为FIFO(先进先出)使用,即数据从队列尾写入,从队列首读。当然,数据也可由队列首写入。 4. 向队列中写入数据是通过字节拷贝,将数据拷贝到队列中;从队列中读取数据也是通 阅读全文
posted @ 2016-03-21 14:36 Risun_Lee 阅读(2837) 评论(0) 推荐(0)
摘要:1. FreeRTOS 任务不允许以任何方式从实现函数中返回——他们绝不能有一条“return”语句,也不可能执行到函数的末尾。如果一个函数不需要,可以将其删除,如在任务中使用函数vTaskDelete(NULL),将当前任务删除。 2. 在启动任务调度器(osKernelStart() )前,最好 阅读全文
posted @ 2016-03-18 15:41 Risun_Lee 阅读(1957) 评论(0) 推荐(0)