有人知道 TM4C1290NCPDT UC 中 ARM Cortex-M4F 处理器内核的最大堆栈大小是多少? 我从数据表中了解到、有两种可能的堆栈、即主堆栈和处理堆栈、但我似乎无法找到它们有多大。 我假设可以根据此微控制器的用例更改大小、但我要查找每个堆栈的最大大小。
说到堆栈、上面我声称数据表中提到了两个堆栈(主堆栈和进程堆栈)、但在文档的其他部分中提到了一个"例外堆栈"-这是第三个堆栈、如果是、它的大小是否与其他两个堆栈相同、 还是其他东西?
原谅我的无知,但任何帮助都是感激的!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
有人知道 TM4C1290NCPDT UC 中 ARM Cortex-M4F 处理器内核的最大堆栈大小是多少? 我从数据表中了解到、有两种可能的堆栈、即主堆栈和处理堆栈、但我似乎无法找到它们有多大。 我假设可以根据此微控制器的用例更改大小、但我要查找每个堆栈的最大大小。
说到堆栈、上面我声称数据表中提到了两个堆栈(主堆栈和进程堆栈)、但在文档的其他部分中提到了一个"例外堆栈"-这是第三个堆栈、如果是、它的大小是否与其他两个堆栈相同、 还是其他东西?
原谅我的无知,但任何帮助都是感激的!
您好 Jason、
我认为堆栈大小本身不是最大的。 这将受到片上 RAM 容量的限制。 下面是一个有关如何配置堆栈大小的示例。
在链接器命令文件中、您将指定堆栈点的位置。 请注意、在 ARM 中、堆栈会向下。
--retain=g_pfnVectors
/*以下命令行选项作为 CCS 项目的一部分进行设置。 *
/*如果您使用命令行构建,或者出于某种原因想要*/
/*在此处定义它们,您可以根据需要取消注释并修改这些行。 *
/*如果您使用 CCS 进行构建、最好进行任何这样的构建*/
/*对 CCS 项目进行修改并将此文件保留为单独文件。 *
/**//
/*--heap_size=0 */
/*--stack_size=256 */
/*--library=rtsv7M3_T_le_eabi.lib */
/*应用程序的起始地址。 通常是中断矢量*/
/*必须位于应用程序的开头。 *
#define APP_BASE 0x00000000
#define RAM_base 0x20000000
/*系统内存映射*/
存储器
{
/*存储在内部闪存中并从内部闪存执行的应用程序*/
闪存(RX):origin = APP_BASE,length = 0x00100000
/*应用程序使用内部 RAM 进行数据*/
SRAM (rwx):origin = 0x20000000,length = 0x00040000
}
/*内存中的段分配*/
部分
{
.intvecs:> app_base
.text:> FLASH
.const:> FLASH
.cinit:>闪存
.pinit:> FLASH
init_array:> FLASH
.vtable:> RAM_base
.data :> SRAM
.bss:> SRAM
.sysmem:> SRAM
.stack:> SRAM
}
__STACK_TOP =__STACK + 256;