Part Number:TMS570LS3137
你好!
TMS570LS3137如何实现把数据存储到指定的内存?我代码如下,问题:没有给变量mydata0分配内存,请问是什么原因?谢谢
/*—————————————————————————-*/
/* Linker Settings */
–retain="*(.intvecs)"
/* USER CODE BEGIN (1) */
/* USER CODE END */
/*—————————————————————————-*/
/* Memory Map */
MEMORY
{
VECTORS (X) : origin=0x00000000 length=0x00000020
FLASH0 (RX) : origin=0x00000020 length=0x0017FFE0
FLASH1 (RX) : origin=0x00180000 length=0x00180000
STACKS (RW) : origin=0x08000000 length=0x00001500
RAM (RW) : origin=0x08001500 length=0x0003EB00
MY_NEW_RAM (RW) : origin=0x08040000 length=0x00001000
/* USER CODE BEGIN (2) */
/* USER CODE END */
}
/* USER CODE BEGIN (3) */
/* USER CODE END */
/*—————————————————————————-*/
/* Section Configuration */
SECTIONS
{
.intvecs : {} > VECTORS
.text : {} > FLASH0 | FLASH1
.const : {} > FLASH0 | FLASH1
.cinit : {} > FLASH0 | FLASH1
.pinit : {} > FLASH0 | FLASH1
.bss : {} > RAM
.data : {} > RAM
.my_data : {} > MY_NEW_RAM
.sysmem : {} > RAM
FEE_TEXT_SECTION : {} > FLASH0 | FLASH1
FEE_CONST_SECTION : {} > FLASH0 | FLASH1
FEE_DATA_SECTION : {} > RAM
/* USER CODE BEGIN (4) */
/* USER CODE END */
}
/* USER CODE BEGIN (5) */
/* USER CODE END */
/*—————————————————————————-*/
/* Misc */
/* USER CODE BEGIN (6) */
/* USER CODE END */
/*—————————————————————————-*/
////////////程序代码如下/////////////////////////////////////////////////////////
#pragma SET_DATA_SECTION("my_data")
int mydata0 = 0;
#pragma SET_DATA_SECTION()
Cherry Zhou:
您好我们已收到您的问题并升级到英文论坛,如有答复将尽快回复您。谢谢!
,
Fu Mo:
谢谢!
,
Cherry Zhou:
您好,linker cmd 文件中的段名称与您在 c 文件中定义的段名称不同:
Linker:
.my_data : {} > MY_NEW_RAM — there is on dot before my_data
C文件:
("my_data") — no dot before my_data
您应该使用.my_data或者my_data。
,
Fu Mo:
修改如下:还是没给 mydata0变量分配到指定的内存空间
/*—————————————————————————-*//* Linker Settings */
–retain="*(.intvecs)"
/* USER CODE BEGIN (1) *//* USER CODE END */
/*—————————————————————————-*//* Memory Map */
MEMORY{VECTORS (X) : origin=0x00000000 length=0x00000020FLASH0 (RX) : origin=0x00000020 length=0x0017FFE0FLASH1 (RX) : origin=0x00180000 length=0x00180000STACKS (RW) : origin=0x08000000 length=0x00001500RAM (RW) : origin=0x08001500 length=0x0003EB00MY_NEW_RAM (RW) : origin=0x08040000 length=0x00001000
/* USER CODE BEGIN (2) *//* USER CODE END */}
/* USER CODE BEGIN (3) *//* USER CODE END */
/*—————————————————————————-*//* Section Configuration */
SECTIONS{.intvecs : {} > VECTORS.text : {} > FLASH0 | FLASH1.const : {} > FLASH0 | FLASH1.cinit : {} > FLASH0 | FLASH1.pinit : {} > FLASH0 | FLASH1.bss : {} > RAM.data : {} > RAM.my_data : {} > MY_NEW_RAM.sysmem : {} > RAM
FEE_TEXT_SECTION : {} > FLASH0 | FLASH1FEE_CONST_SECTION : {} > FLASH0 | FLASH1FEE_DATA_SECTION : {} > RAM
/* USER CODE BEGIN (4) *//* USER CODE END */}
/* USER CODE BEGIN (5) *//* USER CODE END */
/*—————————————————————————-*//* Misc */
/* USER CODE BEGIN (6) *//* USER CODE END *//*—————————————————————————-*/
////////////程序代码如下/////////////////////////////////////////////////////////
#pragma SET_DATA_SECTION(".my_data")
int mydata0 = 0;
#pragma SET_DATA_SECTION()
,
Fu Mo:
感觉这个回答不专业啊,Ti操作手册是没有点的,(".my_data") — no dot before my_data—–这么写就不对啊,请重新回答分析一下,谢谢!