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:ARM Cortex-M4F 处理器内核堆栈大小

Guru**** 2042910 points
Other Parts Discussed in Thread: TM4C1290NCPDT
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/715302/tm4c1290ncpdt-arm-cortex-m4f-processor-core-stack-size

器件型号:TM4C1290NCPDT

有人知道 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

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没有限制(当然可用内存量除外)、并且堆栈可以填满分配矢量表、静态变量、堆等之后保留的所有内存。