1 写在前面 既上上周在RA2E1上把RT-Thread跑起来之后,在上周日的晚上,马不停蹄地给《致敬未来的攻城狮计划》的小伙伴们开了一趟在线直播课,旨在辅导小伙伴们尽快上手基于RA2E1开发板的开发,同时也把基于RT-Thread的一些开发方法和基本操作流程给大家介绍了一遍。 期间遇到了一些小插曲,说起来还是有点尴尬,都...
空闲线程在RT-Thread 也有着它的特殊用途:若某线程运行完毕,系统将自动删除线程:自动执行rt_thread_exit()函数,先将该线程从系统就绪队列中删除,再将该线程的状态更改为关闭状态,不再参与系统调度,然后挂入rt_thread_defunct僵尸队列(资源未回收、处于关闭状态的线程队列)中,最后空闲线程会回收被删除线程的资源。空闲...
线程挂起可以由多种方法实现:线程调用rt_thread_delay()、rt_thread_suspend()等函数接口可以使得线程主动挂起,放弃CPU使用权,当线程调用rt_sem_take(),rt_mb_recv()等函数时,资源不可使用也会导致调用线程被动挂起。 当线程已经是挂起态的时候无法调用rt_thread_suspend()函数,已经是挂起态的线程调用rt_thread_...
/* 线程入口函数 */ void thread_entry(void *parameter) { ... } /* 定义线程控制块指针 */ rt_thread_t tid = RT_NULL; /* 创建线程 */ tid = rt_thread_create("thread_test", thread_entry, RT_NULL, 512, 10, 5); 首先定义一个线程控制块指针(线程句柄),然后调用 rt_thread_create...
(1)内存堆管理用于管理一段连续的内存空间如下图所示,RT-Thread 将“ZI 段结尾处” 到内存尾部的空间用作内存堆。 (2)在前面的其他笔记,都是从内部SRAM申请一块静态内存来作为内存使用。 1#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP) ...
error 列的线程错误没有多少参考价值,0 是正常,-2 表示超时,执行一个rt_thread_mdelay就变 -2 了。但并不表示有错误。目前还没有看到赋值有其它错误值的代码。 status 列代表当前线程状态。但是呢,因为 list_thread 或 ps 两条命令是在 tshell 线程执行的,所以 tshell 线程肯定是 running ;idle 线程不可能...
我在RT-thread Studio点击调度,软件提示错误, 0003879 E Error while executing remote command 'reset init': unexpected value for reset_type option ('init') [gdbserver] �[2mTraceback (most recent call last): File "D:\ProgramFiles\RT-ThreadStudio\RT-ThreadStudio\repo\Extract\Debugger_Support_Pa...
一、RT-Thread线程操作函数 1.1 动态创建线程 1.2 静态创建线程 1.3 启动线程 线程创建的一个细节—创建和初始化? 句柄是什么? 1.4 删除线程和脱离线程 1.5 挂起和恢复线程 1.6 其他线程辅助函数 1.6.1 获得当前线程 1.6.2 让出处理器资源 1.6.3 线程睡眠(延时函数) ...
rt_thread_mdelay(500);/* 读取输入引脚状态 */ if (pca9535pw_read_reg(PCA9535PW_INPUT_PORT_0...
CUBEMX生成RT_Thread工程后报错修改 一、生成工程后修改 1.在stm32f4xx_it.c文件里面删除如下程序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /** * @brief This function handles Hard fault interrupt. */ voidHardFault_Handler(void) { /* USER CODE BEGIN HardFault_IRQn 0 */...