|
例程说明:
将RTX5系统的动态内存管理搞了出来,可以同时管理多个分区。如果其它RTOS中使用,记得做互斥保护或者加个调度锁均可。支持动态内存使用情况统计。
实验介绍:
开发平台:官方STM32H743 NUCLEO板子
开发环境:MDK5.25正式版
软件版本:
(1)CMSIS软件包 V5.3.0
(2)H7的HAL库版本 V1.2.0
注意事项:
要使用JLINK才可以使用RTT,而NUCLEO板子使用JLINK的方法看此贴:链接
例程下载:
实验8:STM32H743动态内存管理,同时分区管理AXI RAM,DTCM,SRAM1和SRAM2五块空间.7z
(1.1 MB, 下载次数: 1167)

空间分配:
/* AXI SRAM, D1域名, 128KB */
mem_head_t *AXISRAMUsed;
uint64_t AppMallocAXISRAM[128*1024/8];
/* SRAM1, D2域, 128KB */
mem_head_t *SRAM1Used;
uint64_t AppMallocSRAM1[128*1024/8]__attribute__((at(0x30000000)));
/* SRAM2, D2域, 128KB */
mem_head_t *SRAM2Used;
uint64_t AppMallocSRAM2[128*1024/8]__attribute__((at(0x30020000)));
/* DTCM, 128KB */
mem_head_t *DTCMUsed;
uint64_t AppMallocDTCM[128*1024/8]__attribute__((at(0x20000000)));
初始化:
/* 初始化动态内存空间 */
osRtxMemoryInit(AppMallocAXISRAM, 128*1024);
osRtxMemoryInit(AppMallocSRAM1, 128*1024);
osRtxMemoryInit(AppMallocSRAM2, 128*1024);
osRtxMemoryInit(AppMallocDTCM, 128*1024);
AXI SRAM(申请三次,释放三次,释放完毕后会固定占用16字节):
SRAM1(同上)
SRAM2(同上)
DTCM(同上)

移植仅需要rtx_lib.h和rtx_memory.c文件,可用于任何其它CM内核。
|
评分
-
查看全部评分
|