1.栈空间大小修改
TMS570 有两处可以修改堆栈空间
1.1动态内存
1.2静态内存分配
实际Flash或RAM中静态内存分配
1.3 HALCOGEN生成内存修改
实际上hlcogeneral 中修改后变更的是汇编和对应的头文件中
用户堆栈空间
汇编文件和cmd文件需要保持一致。
FreeRTOS 中堆栈的修改,可以在CODE generate 中修改,
也可以直接修改代码
备注:
在CCS(Code Composer Studio)中,heap size for C/C++ dynamic memory 和 HL_sys_link.cmd 文件中的内存配置是两个不同的概念,分别用于管理动态内存分配和静态内存布局。
- Heap Size for C/C++ Dynamic Memory
定义:这是在CCS项目设置中配置的一个参数,用于指定堆(heap)的大小。堆是用于动态内存分配的区域,通常通过 malloc、calloc、realloc 等函数来分配内存。
作用:堆的大小决定了你的程序可以动态分配多少内存。如果堆设置得太小,可能会导致动态内存分配失败;如果设置得太大,可能会浪费内存资源。
配置位置:在CCS中,可以通过项目的属性(Properties)-> C/C++ Build -> Basic Options 来设置堆的大小。
- HL_sys_link.cmd 中的 MEMORY 配置
定义:HL_sys_link.cmd 文件是一个链接器命令文件,用于定义内存布局。它指定了不同内存区域的起始地址(origin)和长度(length),以及这些区域的用途(如代码段、数据段、堆栈等)。
作用:这个文件告诉链接器如何将代码和数据分配到具体的内存地址。它定义了静态内存布局,包括代码、数据、堆栈等的存放位置。
内存区域:
VECTORS:通常用于存放中断向量表。
KERNEL:可能用于存放内核代码。
FLASH0 和 FLASH1:用于存放程序代码。
STACKS:用于存放栈(stack),栈是用于函数调用、局部变量等的内存区域。
KRAM 和 RAM:用于存放数据段、堆(heap)等。
2. 静态内存、动态内存,freeRTOS 对于内核空间大小占据变化
同样的线程数量和IPC数量,静态内存实际占据内存大小 大于 动态内存分配方式。
2.1 静态内存
2.2 动态内存 
3.修改工程名称
同一工程名和项目内人员分享工程后是无法导入的,这时就需要修改工程名,修改后还得能编译。
在project中修改name
重新导入工程,就能编译通过。