线程是 RT-Thread 操作系统中最小的调度单位,线程调度算法是基于优先级的全抢占式多线程调度算 法,即在系统中除了中断处理函数、调度器上锁部分的代码和禁止中断的代码是不可抢占的之外,系统的其他部分都是可以抢占的,包括线程调度器自身。支持 256 个线程优先级(也可通过配置文件更改为最大支持 32 个或 8 个线...
rt-thread 源码目录下 “components/dfs/filesystems/romfs” 有个 romfs.c 文件,是 rom 文件系统配置模板文件,拷贝它到你的应用目录下,修改_root_dirent定义。可以创建只读文件。 RT_WEAK const struct romfs_dirent _root_dirent[] = { {ROMFS_DIRENT_DIR, "dummy", (rt_uint8_t *)_dummy, sizeof(_d...
因此,我们可以理解为:RT-Thread Nano是通过定义全局数组的方式在ZI-Data段占据了一段空间,并将这段空间交由RT-Thread进行动态内存分配。 如果不想使用RT-Thread-Nano中使用数组作为动态内存堆的方式,也可以使用和RT-Thread-Master中同样的方法将ZI段结束作为动态内存堆起始地址,将RAM空间结束地址作为动态内存堆的结束...
int system_sram2_init(void) { static struct rt_memheap memheap_sram2; /* Heap initialization */ #if defined(RT_USING_HEAP) rt_memheap_init(&memheap_sram2, "sram2", (void *)RAM2_START, (rt_size_t)RAM2_SIZE); #endif return 0; }rt_weakvoidrt_hw_board_init() {externvoidhw_boar...
4)RT_WEAK,定义如下,常用于定义函数,编译器在链接函数时会优先链接没有该关键字前缀的函数,如果找...
rt-thread 定义的软件定时器还细分两种,“硬定时器” “软定时器”,前一种是在 SysTick 中断中执行回调函数的,多数用于线程内置定时器,应用层也可以用,但是要时刻谨记它的回调函数是在中断中执行的。 后一种,是在一个线程中运行的,应用层对定时精度要求不是很高的可以用这种,但是也要注意“定义定时器和执行定...
如题,RT-Thread Studio刚新建工程后直接打开main.c编译就产生报错。 具体为:刚新建了一个stm32F407ZGT6和一个STM32F103RCT6的工程,之后啥代码也没有改,直接打开main.c文件然后编译,直接报错。 报错定位在“drivers/board.c”,再具体定位在代码“RT_WEAK void rt_hw_board_init()”。
1、RT-Thread 的架构 下面是官方的架构图:我们现在学习的重点在,内核层之下的RT-Thread 内核这一部分...
1、__WEAK int main(void)前面的__WEAK需要手动添加,注意这两个下横线是两个英文的下划线。 2、新添加的外设文件,需要通过修改SConscript文件添加,步骤就按照上面说明: 注意有个文件stm32f1xx_it.c是不建议加的,因为其中的一些中断响应函数在 RT-Thread 内部有实现这里会冲突,除非自己完全能懂哪些需要哪些不需要...
void rt_components_init(void) 执行其余等级 rtthread.map *(SORT(.rti_fn*)).rti_fn.0 0x9002...