DSP280x 플래시 메모리에서 속도 테스트
TMS320F2806을 이용해서 프로젝트를 할일이 있어 플래시 메모리에서 프로그램 실행했는데 속도가 심하게 느려진다.
TMS320F2806을 이용해서 프로젝트를 할일이 있어 플래시 메모리에서 프로그램 실행했는데 속도가 심하게 느려진다.
Flash 에서 LED토글 테스트 결과
1Mhz 450ns 정도 된다.
(TMS320F280x GPIO Toggle 속도 측정 결과 를 보면 RAM에서 70ns(7Mhz)정도 나온다.)
(TMS320F280x GPIO Toggle 속도 측정 결과 를 보면 RAM에서 70ns(7Mhz)정도 나온다.)
DSP280x_Examples.h 파일에 클럭설정을 조절하면 두배 정도 빨라지긴 하지만 여전히
2Mhz 220ns 가 출력된다.
//#define DSP28_CLKINDIV 0 // Enable /2 for SYSCLKOUT
#define DSP28_CLKINDIV 1 // Disable /2 for SYSCKOUT
#define DSP28_CLKINDIV 1 // Disable /2 for SYSCKOUT
플래시 메모리에서 램으로 카피해서 테스트 해보니 속도가 더 빨라 졌다. (이때 F2806.cmd 파일을 이용하면 된다.)
3.8Mhz가 나온다.
3.8Mhz가 나온다.
void main(void)
{
//DSP System Initialize
SystemInit();
//-----------------------------------------------------------------------------------
// 초기화 후 주요 코드를 RAM으로 복사
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
//Flash 초기화 함수
InitFlash();
//-----------------------------------------------------------------------------------
Led1Init();
Led1On();
while(1)
{
Led1Toggle();
}
}
{
//DSP System Initialize
SystemInit();
//-----------------------------------------------------------------------------------
// 초기화 후 주요 코드를 RAM으로 복사
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
//Flash 초기화 함수
InitFlash();
//-----------------------------------------------------------------------------------
Led1Init();
Led1On();
while(1)
{
Led1Toggle();
}
}
옵티마이즈를 Regiater로 변경하니
반응형