개발환경은 IAR의 EWARM으로 꾸미고자 합니다.

구하기도 쉬울 뿐더러 많이들 사용하고 있으니깐...

하지만 문제가 발생~ IAR EWARM 버전이 계속 업데이트 되면서..

최신 칩인 CC2538의 경우 TI에서 제공해주는 예제들의 경우엔 최신 버전으로 작성되어 있네요.

 

ARM 6.30 버전 이후 어느 버전부터는 라이센스를 꼭 인터넷으로 확인하도록 바뀌었습니다.

예전엔 그냥 웹 사이트에서 신청만하면 30일짜리 라이센스를 계속 제공해주었는데..

이젠 그것도 어려워진건지..

 

 

따라서 최신 칩인 CC2538만 이전 버전에서 컴파일할 수 있도록 해주면 되지 않을까? 시도를 해봅니다.

 

1. C:\Program Files\IAR Systems\Embedded Workbench 6.0\arm\config\debugger\TexasInstruments 폴더 카피 

2. C:\Program Files\IAR Systems\Embedded Workbench 6.0\arm\config\devices\TexasInstruments 폴더를 지우고 카피

3. C:\Program Files\IAR Systems\Embedded Workbench 6.0\arm\config\flashloader\TexasInstruments 폴더 카피

4. C:\Program Files\IAR Systems\Embedded Workbench 6.0\arm\config\linker\TexasInstruments 폴더 카피

 

 

이렇게 한 다음 워크스페이스 파일을 불러와도..

이전 버전에서 만들어진 파일 형식이 틀려서인지 로딩할때 에러 발생함..

 

프로세서 선택하는 건 뜨지만 컴파일하고 제대로 플래쉬에 꾸워지고 동작할런지는..

개발보드에서 직접 테스트해보아야함..

 

 

일단 상위버전의 옵션 창을 보고 전부 그대로 배껴오기로 함..

 

기본 설정이랑 바뀌는 부분

===================================================================================================

 

- General Options → Target → Device → TexasInstruments CC2538SF53

 

- C/C++ Compiler → Language 1 → C dialect → C99 → C++ inline semantics에 체크

- C/C++ Compiler → Optimizations → Level → High → Size → Enabled transformations 에 항목에 있는 것들을 모두 체크

 

- C/C++ Compiler → Preprocessor → Additional include directories: (one per line) 에 아래 항목 추가

$PROJ_DIR$\..\Source
$PROJ_DIR$\..\..\Source
$PROJ_DIR$\..\..\..\Zmain\TI2538DB
$PROJ_DIR$\..\..\..\..\..\Components\hal\include
$PROJ_DIR$\..\..\..\..\..\Components\hal\target\CC2538
$PROJ_DIR$\..\..\..\..\..\Components\driverlib\cc2538\inc
$PROJ_DIR$\..\..\..\..\..\Components\driverlib\cc2538\source
$PROJ_DIR$\..\..\..\..\..\Components\sdriverlib\cc2538\source
$PROJ_DIR$\..\..\..\..\..\Components\bsp\srf06eb_cc2538\drivers\source
$PROJ_DIR$\..\..\..\..\..\Components\mac\include
$PROJ_DIR$\..\..\..\..\..\Components\mac\high_level
$PROJ_DIR$\..\..\..\..\..\Components\mac\low_level\srf05\single_chip
$PROJ_DIR$\..\..\..\..\..\Components\mac\low_level\srf05
$PROJ_DIR$\..\..\..\..\..\Components\mt
$PROJ_DIR$\..\..\..\..\..\Components\osal\include
$PROJ_DIR$\..\..\..\..\..\Components\services\sdata
$PROJ_DIR$\..\..\..\..\..\Components\services\saddr
$PROJ_DIR$\..\..\..\..\..\Components\stack\af
$PROJ_DIR$\..\..\..\..\..\Components\stack\nwk
$PROJ_DIR$\..\..\..\..\..\Components\stack\sapi
$PROJ_DIR$\..\..\..\..\..\Components\stack\sec
$PROJ_DIR$\..\..\..\..\..\Components\stack\sys
$PROJ_DIR$\..\..\..\..\..\Components\stack\zcl
$PROJ_DIR$\..\..\..\..\..\Components\stack\zdo
$PROJ_DIR$\..\..\..\..\..\Components\zmac
$PROJ_DIR$\..\..\..\..\..\Components\zmac\f8w

- C/C++ Compiler → Preprocessor → Defined symbols: (one per line) 에 아래 항목 추가

ewarm
ZTOOL_P1
MT_TASK
MT_SYS_FUNC
MT_ZDO_FUNC
LCD_SUPPORTED=DEBUG
CC2538_USE_ALTERNATE_INTERRUPT_MAP=1
TC_LINKKEY_JOIN
ZCL_DOORLOCK (옵션)

ZCL_REPORT (옵션)

 

- C/C++ Compiler → Diagnostics → Suppress these diagnostics: 에 Pa082 항목 추가

 

- C/C++ Compiler → Extra Options → Command line options: (one per line) 에 아래 항목 추가

-f $PROJ_DIR$\..\..\..\Tools\CC2538DB\f8wConfig_HA.cfg
-f $PROJ_DIR$\..\..\..\Tools\CC2538DB\f8wCoord.cfg
-f $PROJ_DIR$\..\..\..\Tools\CC2538DB\f8wZCL.cfg

 

※ f8wConfig_HA.cfg 파일을 추가해야하나? 고민중임..

 

- Linker → Config → Linker configuration file → Override default에 체크 → $PROJ_DIR$\..\..\..\Tools\CC2538DB\CC2538.icf 입력

 

- Linker → Library → Automatic runtime library selector에 체크 → Additional libraries 에 아래 항목 추가

$PROJ_DIR$\..\..\..\Libraries\CC2538\bin\Router.a
$PROJ_DIR$\..\..\..\Libraries\TIMAC\bin\TIMAC-CC2538.a
$PROJ_DIR$\..\..\..\..\..\Components\driverlib\cc2538\bin\iar\sdriverlib.lib
$PROJ_DIR$\..\..\..\..\..\Components\bsp\srf06eb_cc2538\drivers\bin\iar\bsp.lib

→ Override default program entry에 체크 → Entry symbol에 __iar_program_start 입력

 

- Linker → List → Generate linker map file 에 체크

 

- Debugger → Setup → Driver에서 "TI XDS100"을 선택

- Debugger → Download → Verify download에 체크 → Use flash loader(s)에 체크

 

- TI XDS100 → Setup → Emulator → Board file에 "$TOOLKIT_DIR$\config\debugger\TexasInstruments\xds\CC2538_XDS100v3c2.dat"를 입력

 

 

===================================================================================================

 

이렇게 하면 빌드는 이상없이 되는데..

디버깅이 잘 될지 모르겠네요.

별 이상없이 잘되지 않을런지... 안되면 그냥 디버거를 바꿔서 연결해야죠.. ^^;

 

CC2538DK를 구매하는대로 테스트를 해봐야겠습니다.