embeded/DSP C2000 Ti2018. 2. 10. 11:32

일단 어제 깔아 두고 실행도 안해본 CCS v5.5.0을 실행해보니

라이센스 어떻게 할래? 하는데 일단 다 풀어줬으니 ACTIVATE로 해서 lic 파일을 넣어 주면 패스~


신규 프로젝트를 하는데 음.. C2000 패밀리에 280x Fixed Point DSP였나 보군..

항상 언제나 그렇듯(!) Hello World로 시작


Connection은 XDS510USB로 해주고 패스~


아무것도 손을 안댔는데 링커 에러라니!!!

저번에 Nios II에서 reduced C Library 이런게 있나 보는데 못 찾음.. 끄응

**** Build of configuration Debug for project test ****


"C:\\ti\\ccsv5\\utils\\bin\\gmake" -k all 

'Building file: ../hello.c'

'Invoking: C2000 Compiler'

"C:/ti/ccsv5/tools/compiler/c2000_6.2.0/bin/cl2000" -v28 -ml -mt --include_path="C:/ti/ccsv5/tools/compiler/c2000_6.2.0/include" -g --diag_warning=225 --display_error_number --diag_wrap=off --preproc_with_compile --preproc_dependency="hello.pp"  "../hello.c"

'Finished building: ../hello.c'

' '

'Building target: test.out'

'Invoking: C2000 Linker'

"C:/ti/ccsv5/tools/compiler/c2000_6.2.0/bin/cl2000" -v28 -ml -mt -g --diag_warning=225 --display_error_number --diag_wrap=off -z -m"test.map" --stack_size=0x300 --warn_sections -i"C:/ti/ccsv5/tools/compiler/c2000_6.2.0/lib" -i"C:/ti/ccsv5/tools/compiler/c2000_6.2.0/include" --reread_libs --display_error_number --diag_wrap=off --xml_link_info="test_linkInfo.xml" --rom_model -o "test.out"  "./hello.obj" "../2808_RAM_lnk.cmd" -l"rts2800_ml.lib" 

<Linking>

warning #10247-D: creating output section ".cio" without a SECTIONS specification

warning #10247-D: creating output section ".sysmem" without a SECTIONS specification

warning #10210-D: creating ".sysmem" section with default size of 0x400; use the -heap option to change the default size


"../2808_RAM_lnk.cmd", line 111: error #10099-D: program will not fit into available memory.  placement with alignment/blocking fails for section ".text" size 0x189c page 0.  Available memory ranges:

   PRAMH0       size: 0x1000       unused: 0x1000       max hole: 0x1000    

error #10010: errors encountered during linking; "test.out" not built

>> Compilation failure

gmake: *** [test.out] Error 1

gmake: Target `all' not remade because of errors.


**** Build Finished ****


SECTIONS

{

   /* Setup for "boot to SARAM" mode: 

      The codestart section (found in DSP28_CodeStartBranch.asm)

      re-directs execution to the start of user code.  */

   codestart        : > BEGIN,     PAGE = 0

   ramfuncs         : > RAMM0      PAGE = 0  

   .text            : > PRAMH0,    PAGE = 0

   .cinit           : > RAMM0,     PAGE = 0

   .pinit           : > RAMM0,     PAGE = 0

   .switch          : > RAMM0,     PAGE = 0

   .reset           : > RESET,     PAGE = 0, TYPE = DSECT /* not used, */

   

   .stack           : > RAMM1,     PAGE = 1

   .ebss            : > DRAMH0,    PAGE = 1

   .econst          : > DRAMH0,    PAGE = 1      

   .esysmem         : > RAMM1,     PAGE = 1


   IQmath           : >  PRAMH0,   PAGE = 0

   IQmathTables     : >  BOOTROM, type = NOLOAD, PAGE = 0


그러니까.. 얘 스펙을 모르고 있었네..?

printf를 넣기에는 메모리가 적다~ 인데.. 그럼 디버깅은 어쩌라고 ㄷㄷㄷ

 This is because the "printf" command used in the "hello world" project takes a large amount of memory which is not available on the 2812 devices. The 281x linker command file, 2812_RAM_lnk.cmd, by default does not define enough memory for code (.text) to support the "printf" command.

For getting started on the 2812, users should instead start with the CCSv4 peripheral examples in the 2812 C/C++ Header Files and Peripheral Examples software package. A good "first project" to get started with is the "cpu timer" project following the same instructions on this wiki page as were used for 2833x devices.

[링크 : http://processors.wiki.ti.com/...#Errors_with_.22hello_world.22_project_using_F281x_Devices]

    [링크 : https://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/253360]

[링크 : http://nexp.tistory.com/1469]

[링크 : http://processors.wiki.ti.com/index.php/C28x_Code_Generation_Tips_and_Tricks]


혹시나 해서 Runtime support Library를 바꾸어줘도 안되는건 마찬가지


어라.. 애증의(?) MISRA가 있네? 나중에 한번 체커로 쓸 수 있나 확인은 해봐야 겠다.


이렇게 죄다 주석처리하면 빌드는 됨 ㅋㅋㅋㅋ

//#include <stdio.h>


/*

 * hello.c

 */

int main(void) {

// printf("Hello World!\n");

return 0;

}


그나저나 디버거 연결이 안되네.. 머가 문제일까..

당연하지만.. 타겟 보드에 전원 안 넣고 JTAG 전원 공급될거라고 생각해서 그런건가?


 Spectrum Digital Configuration and Diagnostic Utility


Supports:

Printer Port: XDS510PP, XDS510PP+, SPI515, eZdsp

ISA Bus:      SPI510, XDS510

PCI Bus:      SPI525

USB Bus:      XDS510-USB


** Using emulation application from directory c:\ccstudio_v3.3\drivers

** Checking for a valid emulator/eZdsp


  $$ You are connected to:

  $$ EmuProductName=XDS510USB

  $$ EmuPortAddr=0x510

  $$ EmuPortMode=USB

  $$ ProductId=510

  $$ ProductVersion=84


** Checking emulator/eZdsp scan connection

** Emulator Test **

 $$ EmuProductName=XDS510USB

 $$ EmuPortAddr=0x510

 $$ EmuPortMode=USB

 $$ ProductId=510

 $$ ProductVersion=84

 ** Emulator Scan Test


  >> Check power to your emulator/eZdsp

  >> Then check your port mode/address



'embeded > DSP C2000 Ti' 카테고리의 다른 글

xds100 510 560  (0) 2018.02.10
tms320f2808 스펙  (0) 2018.02.10
CCSv5 설치 및 XDS510 USB  (0) 2018.02.09
CCSv6 설치 시도... 실패 ㅠㅠ  (0) 2018.02.09
Code Composer Studio - CCS  (0) 2018.02.09
Posted by 구차니