c6416的dsp关于hpi boot引导加载,现在是我已把自己编的LED灯程序.out文件转化为.h文件了,也下载到dsp的0地址了,现在是dsp无法运行(不是hpi boot 可以运行的);我想的是在.h文件里有Entry point 和 .text 以及 .const 这些有运行地址和长度,是不是要在dsp上设置什么寄存器标识这些信息啊,要不然dsp也不知道哪些是.text哪些是.data段????
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.
c6416的dsp关于hpi boot引导加载,现在是我已把自己编的LED灯程序.out文件转化为.h文件了,也下载到dsp的0地址了,现在是dsp无法运行(不是hpi boot 可以运行的);我想的是在.h文件里有Entry point 和 .text 以及 .const 这些有运行地址和长度,是不是要在dsp上设置什么寄存器标识这些信息啊,要不然dsp也不知道哪些是.text哪些是.data段????
你好,谢谢你以前的帮助,现在我又遇到一个问题了,能否帮我解释一下啊,非常谢谢了!
C6416 EMIFA 这样配置寄存器 然后向外部存储器的三个地址写数据,最后观看CCS的memory为什么出现0xA0000000以后的所有地址都是一个值啊???都是0xFFFFFFFF,而不是0xA0000000是0x55555555,0xA0000004是0x12345678,0xA0000008是0xFFFFFFF?????
程序如下:
#include <csl.h>
#include <csl_emifa.h>
#include <stdio.h>
#define EMIFA_CE3_BASE_ADDR1 0xA0000000
#define EMIFA_CE3_BASE_ADDR2 0xA0000004
#define EMIFA_CE3_BASE_ADDR3 0xA0000008
EMIFA_Config emifaCfg0 = {
0x0009207C,
0xFFFFFFD3,
0xFFFFFF03,
0xFFFFFF43,
0x6326CC22,
0x57116000,
0x0008061A,
0x00054549,
0x00000042,
0x00000042,
0x00000042,
0x00000042
};
Uint32 index, tempData1,tempData2,tempData3;
Uint32 *pAsyncData1 = (Uint32 *)EMIFA_CE3_BASE_ADDR1;
Uint32 *pAsyncData2 = (Uint32 *)EMIFA_CE3_BASE_ADDR2;
Uint32 *pAsyncData3 = (Uint32 *)EMIFA_CE3_BASE_ADDR3;
void main()
{
/*Initialise CSL,???CSL?*/
CSL_init();
EMIFA_config(&emifaCfg0);
tempData1 = 0x55555555;
tempData2 = 0x12345678;
tempData3 = 0xFFFFFFFF;
index=0;
while(1){
*pAsyncData1 = tempData1;
*pAsyncData2 = tempData2;
*pAsyncData3 = tempData3;
}
printf("\nAsynchronous Read Write is Successful\n");
return;
}