关于RTX的内存管理函数问题请教。。
为啥同样是RTX几个教程版本里面的内存管理RTX.h里面API都是这样的:
extern int _init_box (void *box_mem, U32 box_size, U32 blk_size);
extern void *_alloc_box (void *box_mem);
extern void *_calloc_box (void *box_mem);
extern int _free_box (void *box_mem, void *box);
但是在综合例程里面的RTX.h文件确实是这样的:
/* Memory Management */
extern U32 rt_init_mem(void *pool, U32size);
extern void *rt_alloc_mem (void *pool, U32size);
extern U32 rt_free_mem(void *pool, void *mem);
#define os_init_mem(pool,size) _os_init_mem((U32)rt_init_mem, pool,size)
#define os_alloc_mem(pool, size)_os_alloc_mem((U32)rt_alloc_mem, pool,size)
#define os_free_mem(pool, mem) _os_free_mem((U32)rt_free_mem, pool, mem)
刚接触这个,有点迷糊,硬汉老师及各位老师可否指点一下,谢谢。。
教程例子里面的RTX文件可以没上面这些api。。
这个是后来新增的,你下载最新版MDK5,在安装目录的RTX4文件夹里面就看到了。 eric2013 发表于 2019-10-21 16:15
这个是后来新增的,你下载最新版MDK5,在安装目录的RTX4文件夹里面就看到了。
谢谢,把你的代码扣出来,现在已经用上了,新的这个api感觉用起来清爽很多呀。
不知道有啥区别。 chenlijian80 发表于 2019-10-22 17:15
谢谢,把你的代码扣出来,现在已经用上了,新的这个api感觉用起来清爽很多呀。
不知道有啥区别。
早期那个是数组方式的,不会有碎片问题。
现在的这个是类似malloc方式的。
页:
[1]