본문 바로가기

[DSP]/DSP6000

TI Cortex-A8 CCS4에서 Debuging 개발환경 설정

TI Cortex-A8 CCS4에서 Debuging 개발환경 설정
 
TargetConfiguration 에서 사용하는 JTAG를 선택하고 Device를 TI814 선택한다.
 
 
Advanced 탭에서 EVM보드의 gel파일을 선택한다.
 
 

설정이 완료되면 Launch 한다.
 
 
 
Debug창에의 CortexA8 탭에서 Connection을 하면 정상적으로 연결되는 것을 확인 할 수 있다.
 
 
참고로 JTAG초기화시 GEL파일이 실행되는 메세지를 아래와 같이 볼 수 있다.
 
CortexA8: GEL Output: --->>> Starting A8 <<<---
CortexA8: Output:  PRCM for DucatiSS is in Progress 
CortexA8: Output:  PRCM for DucatiSS is in Progress 
CortexA8: GEL Output: Tests Executed: 0x00000001
CortexA8: Output:  Clock is Active 
CortexA8: GEL Output: Tests Executed: 0x000000EF
CortexA8: GEL Output: Tests Executed: 0x00000010
CortexA8: Output:  MMU has been written 
CortexA8: Output:  PRCM for DucatiSS is Done Successfully 
CortexA8: Output:  PRCM for GEMSS is in Progress, Please wait..... 
CortexA8: GEL Output:   CP0...DoneCortexA8: GEL Output:   CP1...DoneCortexA8: GEL Output:   CP2...DoneCortexA8: GEL Output:   CP3...DoneCortexA8: GEL Output:   CP4...DoneCortexA8: GEL Output:   CP5...DoneCortexA8: GEL Output:   CP6...DoneCortexA8: GEL Output:   CP7...DoneCortexA8: Output:  GEM L2 RAM Accesses are PASSED
CortexA8: Output:  PRCM for GEMSS is Done Successfully 
CortexA8: Output:  User Can Connect to GEMSS  
CortexA8: GEL Output:
 PLL and Control MMR unlock done ...
CortexA8: Output:  PRCM for Control Module in Progress
CortexA8: Output:  PRCM for Control Module Done
CortexA8: Output:  CENTAURUS ALL ADPLL INIT IS IN PROGRESS,Please wait .....
CortexA8: Output:  Centaurus MODENA_PLL Init is in Progress, Please wait .....
CortexA8: GEL Output:   ADPLLS CLKOUT value is  = 600
CortexA8: Output:  Centaurus MODENA_PLL Init is Done
CortexA8: Output:  Centaurus MODENA_PLL is initialized to 600Mhz
CortexA8: Output:  Centaurus DSS_PLL Init is in Progress, Please wait .....
CortexA8: Output:  Centaurus DSS_PLL Init is Done
CortexA8: Output:  Centaurus DSS_PLL is initialized to 200MHz
CortexA8: Output:  Centaurus DSP_PLL Init is in Progress, Please wait .....
CortexA8: Output:  Centaurus DSP_PLL Init is Done
CortexA8: Output:  Centaurus DSP_PLL is initialized to 500MHz
CortexA8: Output:  Centaurus SGX_PLL Init is in Progress, Please wait .....
CortexA8: Output:  Centaurus SGX_PLL Init is Done
CortexA8: Output:  Centaurus SGX_PLL is initialized to 200MHz
CortexA8: Output:  Centaurus IVA_PLL Init is in Progress, Please wait .....
CortexA8: Output:  Centaurus IVA_PLL Init is Done
CortexA8: Output:  Centaurus IVA_PLL is initialized to 266MHz
CortexA8: Output:  Centaurus ISS_PLL Init is in Progress, Please wait .....
CortexA8: Output:  Centaurus ISS_PLL Init is Done
CortexA8: Output:  Centaurus ISS_PLL is initialized to 400MHz
CortexA8: Output:  Centaurus USB_PLL Init is in Progress, Please wait .....
CortexA8: Output:  Centaurus USB_PLL Init is Done
CortexA8: Output:  Centaurus USB_PLL is initialized to 200MHz
CortexA8: Output:  Centaurus DDR_PLL Init is in Progress, Please wait .....
CortexA8: Output:  Centaurus DDR_PLL Init is Done
CortexA8: Output:  Centaurus DDR_PLL is initialized to 666MHz
CortexA8: Output:  Centaurus AUDIO_PLL Init is in Progress, Please wait .....
CortexA8: Output:  Centaurus AUDIO_PLL Init is Done
CortexA8: Output:  Centaurus AUDIO_PLL is initialized to 200MHz
CortexA8: Output:  Centaurus HDMI_PLL Init is in Progress, Please wait .....
CortexA8: Output:  Centaurus HDMI_PLL Init is Done
CortexA8: Output:  Centaurus VIDEO_0_PLL Init is in Progress, Please wait .....
CortexA8: Output:  Centaurus VIDEO_0_PLL Init is Done
CortexA8: Output:  Centaurus VIDEO0_PLL is initialized to 54MHz
CortexA8: Output:  Centaurus VIDEO_1_PLL Init is in Progress, Please wait .....
CortexA8: Output:  Centaurus VIDEO_1_PLL Init is Done
CortexA8: Output:  Centaurus VIDEO1_PLL is initialized to 148.5MHz
CortexA8: Output:   --- SATA PLL Locked
CortexA8: Output:   ****  CENTAURUS ALL ADPLL INIT IS COMPLETE  *******
CortexA8: GEL Output:  **** EMIF is configured for DDR2 Elpida EDE1116ACBG-1J with Single Device on CS0 ****
CortexA8: Output:  PRCM for EMIF0, EMIF1 and DMM are in Progress, Please wait..... 
CortexA8: Output:  Busy reading back DMM registers Please wait ...
CortexA8: Output:  DMM register read successfully 
CortexA8: Output:  PRCM for DDR2 EMIF0, EMIF1 and DMM are Initialized Successfully..... 
CortexA8: GEL Output:   ***** Configuring ethernet Clk and Mux....*****
CortexA8: GEL Output:   ***** GMII pin mux and Clk initialized....*****
CortexA8: GEL Output:   ***** This GEL function is not yet tested....*****
CortexA8: Output:  PRCM for UART0, UART2 and UART2 are in Progress, Please wait..... 
CortexA8: Output:  PRCM for UART0, UART1 and UART2 are Done Successfully..... 
CortexA8: Output:  PRCM for mailboxes Initialization in Progress
CortexA8: Output:  mailboxes Accesses are PASSED
CortexA8: Output:  Pmailboxes Initialization in Done
CortexA8: Output:  PRCM for spinlock Initialization in Progress
CortexA8: Output:  spinlock Accesses are PASSED
CortexA8: Output:  spinlock Initialization in Done
 

 
Blackhawk USB560(BH-USB-560M) 에서 디버깅 에러
BH-USB560-M 을 이용하여 JTAG테스트 중 에러가 발생했다.
펌웨어 레벨에서 디버깅은 문제가 없는데.. GEL파일을 이용하여 로드하면 에러가 발생한다.
 
 
 
GEL파일중 OnTargetConnect() 부분에서 에러가 발생하는데...
따라가다 보면 결국 DucatiClkEnable() 함수에서 에러가 발생하고 있다.
 
좀더 정확히 보면 아래 메모리 설정부분에서 에러가 발생한다. 이부분 빼면 에러는 없지만 실제 프로그램이 돌아 갈때는 문제가 발생하고 있다.
 
 /*Medium Page*/
 WR_MEM_32(DUCATI_MMU_CFG+0x860,      0x00300000);
 WR_MEM_32(DUCATI_MMU_CFG+0x864,      0x00000000);
 WR_MEM_32(DUCATI_MMU_CFG+0x868,      0x00000000);
 WR_MEM_32(DUCATI_MMU_CFG+0x86C,      0x00000000);
 WR_MEM_32(DUCATI_MMU_CFG+0x8A0,      0x40300000);
 WR_MEM_32(DUCATI_MMU_CFG+0x8A4,      0x00000000);
 WR_MEM_32(DUCATI_MMU_CFG+0x8A8,      0x00000000);
   :
 
 
JTAG Connection시 콘솔 메세지
CortexA8: GEL Output: --->>> Starting A8 <<<---
CortexA8: Output:  PRCM for DucatiSS is in Progress 
CortexA8: Output:  PRCM for DucatiSS is in Progress 
CortexA8: GEL Output: Tests Executed: 0x00000001
CortexA8: Output:  Clock is Active 
CortexA8: GEL Output: Tests Executed: 0x000000EF
CortexA8: GEL Output: Tests Executed: 0x0000001C
CortexA8: Warning: (Error -1065 @ 0x3D5A) Unable to access device memory. Verify that the memory address is in valid memory. If error persists, confirm configuration, power-cycle board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Release 5.0.333.0)
CortexA8: GEL: Error while executing OnTargetConnect(): target access failed.

 

 

 

 

반응형