你好。 我使用的是 LAUNHXL-F28379D,我已经构建了一个连接 到 J9的256MB SDRAM 板。 当我尝试两种方法向 EMIF1读取/写入数据时,遇到了一个奇怪的问题。
首先,我使用绝对寻址,它运行良好。 代码如下所示:
#include "F28x_Project.h"
#include "SCI_Transmission.h"
外部 void LaunchXL_F28379D_CPU1_Init(void);
浮点*EMIF_DATA =(浮点*) 0x8000000;
主无效(无效)
{
InitSysCtrl();
LaunchXL_F28379D_CPU1_Init();
While (1)(同时)
{
*(EMIF_DATA+147)= 0.3;
}
现在,如果我定义了一个数组并将其分配给 EMIF1部分。 对于某些索引,它运行良好。 但对于其他大型索引,PC 指针失去控制。 它从0x3fee00到0x3fee04被吸入。 代码如下所示:
#include "F28x_Project.h"
#include "SCI_Transmission.h"
外部 void LaunchXL_F28379D_CPU1_Init(void);
#define size 150
浮点 EMIF_DATA[大小];
#pragma data_section (EMIF_data,"DataLogFile");
主无效(无效)
{
InitSysCtrl();
LaunchXL_F28379D_CPU1_Init();
While (1)(同时)
{
EMIF_DATA[147]= 0.3;
}
我还附加了我的.cmd 文件。
第1页:
EMIF1_CS0n :原点= 0x8000000,长度= 0x10000000
DataLogFile:> EMIF1_CS0n,第=1页
我用红色突出显示了不同的部分。 此外,“147”不是任意值。 当我将其更改为146时,PC 指针不会失去控制。 但是,不管它是什么索引,该值都不能正确传输到 EMIF_DATA[147]中。 那么,我是否对第二种方法(数组)做了正确的操作? 谢谢!
此致。
杨