MDK里使用stdlib时,scat文件里怎么分配Heap
时间: 2024-03-09 22:48:29 浏览: 89
在MDK中,使用stdlib时,需要在scatter文件中显式地为Heap分配空间。以下是一个示例,展示了如何在scatter文件中为Heap分配空间:
```scatter
LR_IROM1 0x08000000 0x00040000 { ; load region size_region
ER_IROM1 0x08000000 0x00040000 { ; load address = execution address
*.o (RESET, +First)
*.o (+RO)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x00010000 { ; RW data
.ANY (+RW +ZI)
}
ARM_LIB_STACK 0x20010000 0x00004000 { ; stack
.ANY (+RW +ZI)
}
CSTACK 0x20014000 0x00004000 { ; CSTACK
.ANY (+RW +ZI)
}
RW_IRAM2 0x20020000 0x00010000 { ; Heap
.ANY (+RW +ZI)
}
}
```
在示例中,Heap被分配在0x20020000地址处,大小为0x00010000。您可以根据需要修改这些值。
需要注意的是,如果您在代码中使用了malloc函数,但没有在scatter文件中为Heap分配空间,那么编译过程中会出现错误。因此,确保在scatter文件中为Heap分配足够的空间非常重要。
阅读全文