chenlijian80 发表于 2019-10-21 15:10:47

关于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。。







eric2013 发表于 2019-10-21 16:15:53

这个是后来新增的,你下载最新版MDK5,在安装目录的RTX4文件夹里面就看到了。

chenlijian80 发表于 2019-10-22 17:15:03

eric2013 发表于 2019-10-21 16:15
这个是后来新增的,你下载最新版MDK5,在安装目录的RTX4文件夹里面就看到了。

谢谢,把你的代码扣出来,现在已经用上了,新的这个api感觉用起来清爽很多呀。

不知道有啥区别。

eric2013 发表于 2019-10-23 08:38:15

chenlijian80 发表于 2019-10-22 17:15
谢谢,把你的代码扣出来,现在已经用上了,新的这个api感觉用起来清爽很多呀。

不知道有啥区别。

早期那个是数组方式的,不会有碎片问题。

现在的这个是类似malloc方式的。
页: [1]
查看完整版本: 关于RTX的内存管理函数问题请教。。