/
Memory Management API Changes

Memory Management API Changes

The table below shows the difference in API for memory management.

Memory Management API

µC/OS-II (os_mem.c)

µC/OS-III (os_mem.c)

Note

OS_MEM *
OSMemCreate(
    void         *addr,
    INT32U        nblks,
    INT32U        blksize,
    INT8U        *perr);
void
OSMemCreate(
    OS_MEM      *p_mem,
    CPU_CHAR    *p_name,
    void        *p_addr,
    OS_MEM_QTY   n_blks,
    OS_MEM_SIZE  blk_size,
    OS_ERR      *p_err);

(1)        

void *
OSMemGet(
    OS_MEM       *pmem,
    INT8U        *perr);
void *
OSMemGet(
    OS_MEM      *p_mem,
    OS_ERR      *p_err);

INT8U
OSMemNameGet(
    OS_MEM       *pmem,
    INT8U       **pname,
    INT8U        *perr);


void
OSMemNameSet(
    OS_MEM       *pmem,
    INT8U        *pname,
    INT8U        *perr);
void 
OSMemPut(
    OS_MEM      *p_mem,
    void        *p_blk,
    OS_ERR      *p_err);

(2)

INT8U
OSMemPut(
    OS_MEM       *pmem,
    void         *pblk);


INT8U
OSMemQuery(
    OS_MEM       *pmem,
    OS_MEM_DATA  *p_mem_data);

(3)

(1) In µC/OS-II, OSMemCreate() returns the address of an OS_MEM object, which is used as the “handle” to the newly created memory partition. In µC/OS-III, the application must allocate storage for an OS_MEM, which serves the same purpose. The benefit in µC/OS-III is that it is not necessary to predetermine the number of memory partitions at compile time.

(2) µC/OS-III does not need an OSMemNameSet() since the name of the memory partition is passed as an argument to OSMemCreate().

(3) µC/OS-III does not support query calls.

Related content

Convention Changes
Convention Changes
More like this
Semaphores API Changes
Semaphores API Changes
More like this
Hooks and Port API Changes
Hooks and Port API Changes
More like this
Variable Name Changes
Variable Name Changes
More like this
API Changes
More like this
Differences in Source File Names and Contents
Differences in Source File Names and Contents
More like this