完善不支持mpu的处理器支持,更加省内存

This commit is contained in:
zhangzheng
2024-01-28 14:57:12 +08:00
parent e3aecf4506
commit 931bb451b9
15 changed files with 92 additions and 23 deletions

View File

@@ -235,13 +235,16 @@ static void share_mem_init(share_mem_t *sm, umword_t max)
*/
static share_mem_t *share_mem_create(ram_limit_t *lim, size_t max)
{
int align_size = max;
#if CONFIG_MK_MPU_CFG
#if CONFIG_MPU_VERSION == 1
if (max < PAGE_SIZE || !is_power_of_2(max))
{
//!< 大小必须是2的整数倍
return NULL;
}
align_size = max;
#elif CONFIG_MPU_VERSION == 2
if (max < MPU_ALIGN_SIZE || (max & (MPU_ALIGN_SIZE - 1)))
{
@@ -249,15 +252,18 @@ static share_mem_t *share_mem_create(ram_limit_t *lim, size_t max)
return NULL;
}
max += MPU_ALIGN_SIZE;
align_size = MPU_ALIGN_SIZE;
#endif
#else
align_size = sizeof(void *);
#endif
share_mem_t *mem = mm_limit_alloc(lim, sizeof(share_mem_t));
if (!mem)
{
return NULL;
}
mem->mem = mm_limit_alloc_align(lim, max, CONFIG_MPU_VERSION == 2 ? MPU_ALIGN_SIZE : max);
mem->mem = mm_limit_alloc_align(lim, max, align_size);
if (!mem->mem)
{
mm_limit_free(lim, mem);