[DSP]/DSP280x2010. 7. 5. 19:11

TMS320F2808 최적화 옵션 문제


#define Led1Off()      GpioDataRegs.GPADAT.bit.GPIO16 = 1
#define Led1On()      GpioDataRegs.GPADAT.bit.GPIO16 = 0

#define Led2Off()      GpioDataRegs.GPADAT.bit.GPIO15 = 1
#define Led2On()      GpioDataRegs.GPADAT.bit.GPIO15 = 0

main(void)
{
    :
    while(1)
    {
        swiech(status)
        {   
          case 0:
            Led1On();Led1Off();
            break;

          case 1:
            Led1Off();Led1On();
            break;
               :
    }
}

최적화 옵션처리후 정상 동작하지 않음


아래와 같이 처리 하니 정상 동작을 잘한다.

#define NOP()          asm(" RPT #7 || NOP")

#define Led1Off()      GpioDataRegs.GPADAT.bit.GPIO16 = 1;NOP()
#define Led1On()      GpioDataRegs.GPADAT.bit.GPIO16 = 0;NOP()

#define Led2Off()      GpioDataRegs.GPADAT.bit.GPIO15 = 1;NOP()
#define Led2On()      GpioDataRegs.GPADAT.bit.GPIO15 = 0;NOP()




 

Posted by nexp

댓글을 달아 주세요

[DSP]/DSP280x2008. 7. 18. 13:51

DSP280x 플래시 메모리에서 속도 테스트

DSP280x 플래시 메모리에서 속도 테스트
TMS320F2806을 이용해서 프로젝트를 할일이 있어 플래시 메모리에서 프로그램 실행했는데 속도가 심하게 느려진다.
 
Flash 에서 LED토글 테스트 결과
1Mhz 450ns 정도 된다.
(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
 
 
플래시 메모리에서 램으로 카피해서 테스트 해보니 속도가 더 빨라 졌다. (이때 F2806.cmd 파일을 이용하면 된다.)
3.8Mhz가 나온다.
void main(void)
{
 //DSP System Initialize
 SystemInit();
 
//-----------------------------------------------------------------------------------
 // 초기화 후 주요 코드를 RAM으로 복사
 MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);

 //Flash 초기화 함수
 InitFlash();
//-----------------------------------------------------------------------------------

 Led1Init();
 Led1On();

 while(1)
 {
  Led1Toggle();
 }
}  

 옵티마이즈를 Regiater로 변경하니
5Mhz(100ns)가 출력된다.

디지털 필터를 적용한 프로젝트 보드

Posted by nexp

댓글을 달아 주세요

[DSP]/DSP280x2008. 1. 30. 01:31

[TMS320F2808]성능 테스트 - GPIO 토글링 테스트

[TMS320F2808]성능 테스트 - GPIO 토글링 테스트


GPIO 토글테스트로 TMS320F2808의 성능 테스트를 해보았다. 단순 페리 속도로 CPU의 성능을 테스트 하기는 좀 그렇지만... 아무래도 주로 MPU로 하는 일들이 GPIO로 제어하는 일이 많으므로 [다른 MCU속도 측정 결과] 비교를 위해 GPIO테스트를 해보면 편하다.

일단 가장 간단히 GPIO를 단순히 비트 XOR시켜 속도를 측정했다. TMS320F2808 @20Mhz에서 RAM에 올려 100Mhz코어로 설정.
#define LED0_TOGGLE()  (GpioDataRegs.GPADAT.bit.GPIO6 ^= 1)

측정 결과 대략 180ns (2.94Mhz)가 나온다.
컴파일러의 옵션에 따라 차이는 있겠지만 100Mhz라기에는 좀... 느리다.
어셈블 코드를 보니 역시... 옵티마이즈가 전혀 안되어 있다. 루프도는데 이렇게 무식하게...



TMS320에는 GPIO Toggle Register가 있으므로 이걸 이용해 보자. 역시.. 3줄이면 된다.
테스트 결과 GPIO 토글 속도는 100ns(5.5Mhz) 가 출력된다.



이제야 어느정도 정상 출력되는것 같다.

컴파일 옵션을 최적화해서 테스트 하니 70ns(7.13Mhz) 까지 출력된다.
Posted by nexp

댓글을 달아 주세요

[DSP]/DSP280x2007. 9. 24. 16:27

[개발일지] TMS320F2808 이용 고압 전력제어 보드 프로젝트

[2006.09.24 12:50]
 - 어제 PCB나와서 열심히 납땜중



[2006.09.25 22:50]
DSP2808 조립완료
- CPU(2808)는 잘 살아남
Posted by nexp

댓글을 달아 주세요

[DSP]/DSP280x2007. 5. 28. 11:27

[DSP280x-s EVM] 보드 제작 - TMS320F2808 테스트

[DSP280x-s EVM] 보드 제작 - TMS320F2808 테스트

사용자 삽입 이미지



TMS320F2808 테스트 동영상
Posted by nexp

댓글을 달아 주세요