RT_USING_CPU_FFS 这个是使用CPU的FFS,可以将一个比较大的数组优化成CPU命令: 差不多是0.3KB的样子: RT_USING_CONSOLE 这个优化强度比较大,console系统,差不多占2KB的大小,因为我们暂时用不掉console, RT_MAIN_THREAD_STACK_SIZE RT_MAIN_THREAD_STACK_SIZE这个占RAM大小, 其他编译选项优化空间有限,我就不一...
RT_VER_NUM 0x40002/* end of RT-Thread Kernel */#define ARCH_ARM#define RT_USING_CPU_FFS#...
RT_USING_CPU_FFS /* RT-Thread Components */ #define RT_USING_COMPONENTS_INIT #define RT_USING_USER_MAIN #define RT_DEBUG_INIT 0 #define RT_USING_OVERFLOW_CHECK // #define RT_USING_HOOK // #define RT_USING_IDLE_HOOK /* Software timers Configuration */ #define RT_USING_TIMER_SOFT 0...
if RT_THREAD_PRIORITY_MAX <= 32 highest_ready_priority = __rt_ffs(rt_thread_ready_priority_group) - 1; else register rt_ubase_t number; number = __rt_ffs(rt_thread_ready_priority_group) - 1; highest_ready_priority = (number << 3) + __rt_ffs(rt_thread_ready_table[number]) -...
RT_USING_CPU_FFS /* RT-Thread Components */ #define RT_USING_COMPONENTS_INIT #define RT_USING_USER_MAIN #define RT_DEBUG_INIT 0 #define RT_USING_OVERFLOW_CHECK // #define RT_USING_HOOK // #define RT_USING_IDLE_HOOK /* Software timers Configuration */ #define RT_USING_TIMER_SOFT 0...
ifdef RT_USING_OVERFLOW_CHECK AI检测代码解析 _rt_scheduler_stack_check(to_thread); 1. endif AI检测代码解析 /** 如果中断嵌套的层数为0,为正常的上下文切换 */ if (rt_interrupt_nest == 0) { rt_hw_context_switch((rt_uint32_t)&from_thread->sp, ...
void rt_hw_cpu_reset(void) { SYS_UnlockReg(); SYS->IPRST0 |= SYS_IPRST0_CHIPRST_Msk; } #ifdef RT_USING_CPU_FFS int __rt_ffs(int value) { @@ -136,7 +129,9 @@ int __rt_ffs(int value) #include <finsh.h> static void reboot(uint8_t argc, char **argv) { rt_hw_cpu...
select ARCH_ARM_MMU select RT_USING_CPU_FFS select ARCH_USING_IRQ_CTX_LIST config ARCH_MIPS bool @@ -325,3 +326,7 @@ config ARCH_CPU_STACK_GROWS_UPWARD config ARCH_USING_HW_THREAD_SELF bool default n config ARCH_USING_IRQ_CTX_LIST bool default n2...
#define RT_USING_HW_ATOMIC #define RT_USING_CPU_FFS #define ARCH_ARM #define ARCH_ARM_CORTEX_M #define ARCH_ARM_CORTEX_M3 /* RT-Thread Components */ #define RT_USING_COMPONENTS_INIT #define RT_USING_USER_MAIN #define RT_MAIN_THREAD_STACK_SIZE 2048 ...
(number<<3)+__rt_ffs(pcpu->ready_table[number])-1;#elsehighest_ready_priority=__rt_ffs(rt_thread_ready_priority_group)-1;local_highest_ready_priority=__rt_ffs(pcpu->priority_group)-1;#endif/* get highest ready priority thread */if(highest_ready_priority<local_highest_ready_priority)...