摘要:
RT-Thread,全称是 Real Time-Thread,是一个嵌入式实时多线程操作系统,基本属性之一是支持多任务,允许多个任务同时运行并不意味着处理器在同一时刻真地执行了多个任务。 RT-Thread 就是一个物联网操作系统(IoT OS),物联网操作系统是指以操作系统内核(可以是 RTOS、 阅读全文
摘要:
1.创建任务 创建任务的主要工作是对任务的stack进行初始化,也就是伪造一个现场。 /********************************************************************************** 创建任务 ****************** 阅读全文
摘要:
阅读全文
摘要:
参考:《Cortex M3与M4权威指南.pdf》 阅读全文
摘要:
以一段简单的程序为例进行讲解: 1 int a = 0x123; 2 int32_t main(void) 3 { 4 volatile int b; 5 b = a; 6 return 0; 7 } 相应的汇编代码: 1 0x00000420 B508 PUSH {r3,lr} 2 0x00000 阅读全文
摘要:
1 /// Create a thread and add it to Active Threads. 2 osThreadId_t osThreadNew (osThreadFunc_t func, void *argument, const osThreadAttr_t *attr) { 3 o 阅读全文
摘要:
1.系统启动(System Startup) mian函数不再以一个线程的形式运行,因此在main函数运行之前,RTX5不会干预系统的启动。main函数运行之后,推荐按照以下的流程初始化硬件并启动内核: (1)硬件的初始化和配置,包括外设,内存,引脚,时钟和中断系统。 (2)使用CMSIS-Core 阅读全文
摘要:
CMSIS-RTOS2的一个新特性是能够创建一个“可连接的”(设置 osThreadJoinable 属性)线程A,并像标准线程一样执行。此外,也容许另外一个B线程通过 osThreadJoin() 函数加入此线程A,这将会导致加入的线程B被重新调度,并进入等待状态,直到被加入的线程A终止。如果被加 阅读全文
摘要:
System Configuration OS_DYNAMIC_MEM_SIZE:全局动态内存大小,默认值32768,要根据所使用的控制器型号进行具体设置,不能超过控制器的RAM大小。 OS_TICK_FREQ:内核滴答时钟频率,默认1000Hz,建议采用默认值。如果采用更快的处理器,可考虑设置更快 阅读全文
摘要:
内存池是线程安全的固定大小的内存块。它们的运行速度比动态分配的堆快得多,而且不会出现碎片问题。由于是线程安全的,因此可以从线程和ISR访问它们。 内存池可以看作是固定大小的可用(未使用)内存块的链表。从池中分配内存(使用osMemoryPoolAlloc),只需从列表中解链一个块,并将控制权交给用户 阅读全文