OS_SYS_MEM_ADDR:系统动态内存池起始地址,一般不需要修改 OS_SYS_MEM_SIZE:系统动态内存池大小,以byte为单位,系统默认分配DDR后未使用的空间 LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK:内存越界检测开关,默认关闭。打开后,每次申请动态内存时执行动态内存块越界检查;每次释放静态内存时执行静态内存块越界检查。 初始化LO...
在LiteOS中,系统管理的内存大小为OS_SYS_MEM_SIZE,该宏由用户配置,用户可以在内存堆中随意分配内存使用,当内存使用完成后,应及时把该内存释放,内存管理可以分为以下过程。 1. 初始化内存:在使用内存之前,必须首先初始化内存堆,LiteOS在内核初始化的时候就已经将管理的内存进行初始化了,内存的起始地址是__LOS_HE...
OS_SYS_MEM_SIZE:系统动态内存池大小,以byte为单位,系统默认分配DDR后未使用的空间 LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK:内存越界检测开关,默认关闭。打开后,每次申请动态内存时执行动态内存块越界检查;每次释放静态内存时执行静态内存块越界检查。 初始化LOS_MemInit。 初始一个内存池后如图,生成一个 EndNode,并...
由于动态内存管理需要管理控制块数据结构来管理内存,这些数据结构会额外消耗内存,故实际用户可使用内存总量小于配置项OS_SYS_MEM_SIZE的大小。 对齐分配内存接口LOS_MemAllocAlign/LOS_MemMallocAlign因为要进行地址对齐,可能会额外消耗部分内存,故存在一些遗失内存,当系统释放该对齐内存时,同时回收由于对齐导致的遗失内存。
Mem:1883740440288896080310245473721256984Swap:000 注:本机已关闭swap分区。 物理总内存total:1883740KB / 1024 =1.8G(这里不包括内核在启动时为其自身保留的一小部分,所以这里是1.8G,而其实是2G内存) 使用内存:1883740KB - 896080KB -547372KB = 440288KB(计算公式:total - free - buffers - cache = used) ...
[0, OS_SYS_MEM_SIZE) 不同平台默认值不一样 无 LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE 默认任务栈大小 [0, OS_SYS_MEM_SIZE) 不同平台默认值不一样 无 LOSCFG_BASE_CORE_TSK_IDLE_STACK_SIZE IDLE任务栈大小,一般使用默认值即可 [0, OS_SYS_MEM_SIZE) 不同平台默认值不一样 无 LOSCFG_BASE...
OS_SYS_MEM_SIZE:系统动态内存池大小,以byte为单位,系统默认分配DDR后未使用的空间 LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK:内存越界检测开关,默认关闭。打开后,每次申请动态内存时执行动态内存块越界检查;每次释放静态内存时执行静态内存块越界检查。 初始化LOS_MemInit。
由于动态内存管理需要管理控制块数据结构来管理内存,这些数据结构会额外消耗内存,故实际用户可使用内存总量小于配置项OS_SYS_MEM_SIZE的大小。 对齐分配内存接口LOS_MemAllocAlign/LOS_MemMallocAlign因为要进行地址对齐,可能会额外消耗部分内存,故存在一些遗失内存,当系统释放该对齐内存时,同时回收由于对齐导致的遗失内存。
#define OS_SYS_MEM_SIZE (UINT32)(((UINT32)LOS_HEAP_ADDR_END - (UINT32)OS_SYS_MEM_ADDR + (64 - 1)) & ~(64 - 1)) 以上代码定义OS_SYS_MEM_ADDR为动态内存起始地址,LOS_HEAP_ADDR_END为动态内存结束地址,OS_SYS_MEM_SIZE为动态内存大小。
osal_mem.h osal_mutex.h osal_sem.h osal_spinlock.h osal_thread.h osal_time.h osal_timer.h parameter_item.h parameter.h player.h pms_interface.h pms_types.h poll.h press_event.h pthread.h pwm_if.h recorder.h rect.h regex.h registry.h release_event....