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.

[参考译文] TM4C123GH6PM:#pragma DATA_SECTION 无法创建可用于数组的数据段

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1419793/tm4c123gh6pm-pragma-data_section-cannot-create-a-data-section-which-i-can-use-for-an-array

器件型号:TM4C123GH6PM

工具与软件:


我尝试将 TM4C123GHPM 中的 SRAM 修改为两个部分、一部分用于 MSP 和系统变量0x20000000、length =0x1000;对于 PSP、我已经设置了 ox20001000、length =0x7000、一直到 SRAM 末尾。 我已经命名了区域堆


--retain=g_pfnVectors.

小程序

   Flash (RX):origin = 0x00000000、length = 0x00040000
   SRAM (RWX):origin = 0x20000000、length = 0x00001000 // 32KB
 // stack (RW):origin = 0x20000000、length = 0x00001000 // 4KB
   heap (rwx): origin = 0x20001000, length = 0x00007000 // 28kB
}

/*以下命令行选项作为 CCS 项目的一部分进行了设置。    */
/*如果您使用命令行构建,或者出于某种原因想   */
/*在此处定义它们,您可以根据需要取消注释和修改这些行。     */
/*如果您使用 CCS 进行构建、可能最好制作任何此类*/
/*在 CCS 项目中进行修改、并保留该文件。              */
/*                                                                          */
 --heap_size=0
/*-- stack_size=256                                                         */
/*--library=rtsv7M4_T_le_eabi.lib                                          */

/*存储器中的段分配*/

部分中)

   .intvecs:  > 0x00000000
   .text  :  >闪存
   .const :  > FLASH
   .cinit :  >闪存
   . Pinit :  >闪存
   .init_array :> FLASH

   .vtable:  > 0x20000000
   .data  :  > SRAM
   . bss   :  > SRAM
   .sysmem :  > SRAM.
   .stack :  > SRAM.
   heap : align (4)> heap
}

__STACK_TOP =__STACK + 512;

但是、当我按如下方式编写 DATA_SECTION pragma 时、它会编译、但当我尝试访问数组时、我收到总线错误

#pragma DATA_SECTION (myHeap、".heap")
static uint8_t myHeap[16];//全局堆内存

uint8_t * a=myHeap;//我可以单步执行这一行

*a=23;//但当我访问这里分配的内存时,我得到总线错误
A=A+4;

*a=32;

我的问题是 DATA_SECTION pragma ,它是否为我提到的区域分配内存. 请建议一种更好的方法来写入 cmd 文件数据段

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    一些评论:

     -为什么不删除变量声明上的 static ?  

     -实验中,如果删除 DATA_SECTION pragma ,是否仍有错误?

     -检查 Debug 文件夹中的.map 文件。 你看到 myHeap 符号了吗? 该符号映射到了什么地址?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、大家好!

    在工程属性链接器选项卡中简单定义堆或基本栈大小似乎更容易。 过去必须在工程属性中调整 LWIP v1.4.1的堆大小。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     我没有听到你的声音。 希望您的问题得到解决。 我现在结束该主题。 如果您有任何更新、您可以回写此帖子、并且状态将自动更改为"已打开"。