目录
目录
RT-Thread Studio 中英文界面切换
- 使用
MSH_CMD_EXPORT(<函数名称>,<描述、注释 >);
导出到msh命令
RT-Thread动静态内存区别
RT-Thread 的内存管理分为静态内存管理和动态内存管理,提供内存初始化、分配、释放等功能但是各有优缺点。
动态内存:在动态内存池中分配用户指定大小的内存块。
优点:按需分配,在设备中灵活使用。
缺点:内存池中可能出现碎片。
静态内存:在静态内存池中分配用户初始化时预设(固定)大小的内存块。
优点:分配和释放效率高,静态内存池中无碎片。
缺点:只能申请到初始化预设大小的内存块,不能按需申请。
#ifdef RT_USING_HEAP
/* 使用动态内存 */ // (1)
tid =rt_thread_create("main",
main_thread_entry,
RT_NULL,
RT_MAIN_THREAD_STACK_SIZE,
RT_THREAD_PRIORITY_MAX / 3, (初始线程优先级)
20);
RT_ASSERT(tid != RT_NULL);
#else
/* 使用静态内存 */ // (3)
rt_err_t result;
tid = &main_thread;
result =rt_thread_init(tid,
"main",
main_thread_entry,
RT_NULL,
main_stack,
sizeof(main_stack),
RT_THREAD_PRIORITY_MAX / 3, (初始线程优先级)
20);
RT_ASSERT(result == RT_EOK);
(void)result;
#endif
c 事项
结构体等的类型定义以结构体名称加上 “_t” 的形式作为名称,例如:
typedef struct rt_list_node rt_list_t;
因为内核中对象引用方便的缘故,采用了对象内核指针作为类型定义的形式,例如:
typedef struct rt_timer* rt_timer_t;
内部静态函数命名:以下划线开头,使用 _class_method
格式,不携带_rt_
开头,如内核或驱动文件中的函数命名:
/* IPC object init */
static rt_err_t _ipc_object_init()
/* UART driver ops */
static rt_err_t _uart_configure()
static rt_err_t _uart_control()