void *rt_heap_end_get(void) { return rt_heap + RT_HEAP_SIZE; } #endif 在rt_hw_board_init添加下述代码: #if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP) rt_system_heap_init(rt_heap_begin_get(), rt_heap_end_get()); #endif 完成上述工作便可使用RT-Thread的动态内存相关接...
}/*enable interrupt*/rt_hw_interrupt_enable(lock); #ifdef RT_USING_HEAP//程序运行到这,说明上文处理的僵尸线程为动态创建的线程#ifdefined(RT_USING_MODULE) && defined(RT_USING_SLAB)/*the thread belongs to an application module*/if(thread->flags &RT_OBJECT_FLAG_MODULE) rt_module_free((rt_...
4.1 超时函数执行环境 软件定时器模式可通过配置宏定义RT_USING_TIMER_SOFT来决定是否启用该模式,该模式被启用后,系统会在初始化时创建一个 timer 线程,SOFT_TIMER模式的定时器超时函数在都会在 timer 线程的上下文环境中执行,因此与线程一下需要注意以下几点: 不允许使用任何可能引软件定时器起线程挂起或者阻塞的 API...
#ifdef RT_USING_HEAP//程序运行到这,说明上文处理的僵尸线程为动态创建的线程#ifdefined(RT_USING_MODULE) && defined(RT_USING_SLAB)/*the thread belongs to an application module*/if(thread->flags &RT_OBJECT_FLAG_MODULE) rt_module_free((rt_module_t)thread->module_id, thread->stack_addr);//...
#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP) rt_system_heap_init(rt_heap_begin_get(), rt_heap_end_get()); #endif } 接下啦就可以愉快地使用 rt_kprintf 了。 三、实验现象 如图所示,红框的内容就是rt_show_version 输出的信息。
void rt_system_heap_init(void *begin_addr, void *end_addr) 1. 开启RT_USING_HEAP 后,系统默认使用数组作为 heap,heap 的起始地址与结束地址作为参数传入 heap 初始化函数,heap 初始化函数 rt_system_heap_init() 将在 rt_hw_board_init() 中被调用。
#if defined(RT_USING_UART1)/* UART1 device driver structure */ static struct drv_uart uart1;...
Kendryte K210是一款集成有2个64-bit RISC-V核心的通用AI芯片,要使用双核,需要开启RT_USING_SMP宏以启用RT-Thread的SMP(对称多处理)功能。 RT-Thread对于SMP的支持流程大概是:主核先启动,并完成对全局硬件、系统及自身的初始化,然后唤醒其他核,开始线程调度;其他核被唤醒后仅进行自身相关初始化后就可以就行线程...
说明一下uart驱动的移植,涉及到两个驱动文件:usart.c和serail.c;在serail.c中定义了初始化、打开设备、数据收发等接口,由于接口中都是动态分配缓存的(rtconfig.h里面可以配置系统是否使用动态分配内存,但是关掉这个宏之后serail.c中相关接口会报错,因为函数定义被屏蔽掉了),所以需要打开RT_USING_HEAP这个宏定义。打开...
1/*可以选择不使用recursivemutex*/2#ifdefRT_USING_MUTEX3#defineconfigUSE_RECURSIVE_MUTEXES14#defineconfigUSE_MUTEXES15#endif67/*可以选择不使用countingsemaphore*/8#ifdefRT_USING_SEMAPHORE9#defineconfigUSE_COUNTING_SEMAPHORES110#endif1112/*若不使用heap_3,可以通过configTOTAL_HEAP_SIZE配置内存堆大小*/13#...