CC2530의 HomeAutomation\SampleLight 소스를 포팅하였습니다.
포팅 과정은 생각보다 꽤 길었습니다.
오늘 오전부터 온 종일 여기에 매달려야 했으니까요.
(지난번에 집인가 회사에선가 시도해보긴 했었는데..
한 2~3시간 삽질하니깐 컴파일만 되는 것은 확인할 수 있었었습니다만...)
이래저래 혼자서 삽질을 하긴 했지만, 그런건 생략하기로 하고요.
▲ 간략한 과정 설명
1. 프로젝트 생성하기
먼저 CC2530의 \Projects\zstack\HomeAutomation 폴더를 통째로 카피합니다.
\Projects\zstack\HomeAutomation\SampleLight\CC2530DB을 지우고 \Projects\zstack\Samples\SampleApp\LM3S9B96 폴더를 복사합니다.
SampleApp.eww → SampleLight.eww
SampleApp.ewp → SampleLight.ewp
SampleApp.ewd → SampleLight.ewd
SampleApp.dep → SampleLight.dep
그리고는 SampleLight.eww파일을 텍스트 뷰어로 열어서 SampleApp라는 문자열을 SampleLight로 교체합니다.
일단 여기까지 하고 SampleLight.eww파일을 열면 SampleLight 프로젝트가 열립니다.
2. 프로젝트 파일 정리하기
이 작업을 하는 요령은 다음과 같습니다.
포팅하고자 하는 SampleLight의 경우엔 ZStack-LM9B96-2.5.1엔 존재하지 않습니다.
따라서 CC2530의 프로젝트를 보면서 틀린점을 하나씩 찾아서 바꿔줘야합니다.
ZStack-CC2530-2.5.1a : SampleLight vs SampleApp
ZStack-LM9B96-2.5.1 : SampleLight vs SampleApp
바꿔주어야하는 부분은 소스 파일과 프로젝트의 설정입니다.
- Application Group
파일 제거 : OSAL_SampleApp.c, SampleApp.h, SampleApp.c, SampleAppHw.h, SampleAppHw.c
파일 추가 : OSAL_SampleLight.c, zcl_samplelight.h, zcl_samplelight.c, zcl_samplelight_data.c
- Profile Group
파일 추가 : zcl.h, zcl.c, zcl_general.h, zcl_general.c, zcl_ha.h, zcl_ha.c
※ ota_common.h, zcl_ota.h, zcl_se.h, zcl_key_establish.h, zcl_key_establish.c 파일은
Monitor Task의 MT_UTIL 명령을 위해서 추가해야 하는 합니다.
(그리고 \Projects\zstack\OTA 폴더도 복사해줘야합니다.)
Project Options → C/C++ Compiler → Preprocessor → Additional include directories
$PROJ_DIR$\.
$PROJ_DIR$\Source
$PROJ_DIR$\..\Source
$PROJ_DIR$\..\..\Source
$PROJ_DIR$\..\..\..\OTA\Source
$PROJ_DIR$\..\..\..\SE\Source
$PROJ_DIR$\..\..\..\Zmain\LM3Sxxxx
$PROJ_DIR$\..\..\..\..\..\Components\hal\include
$PROJ_DIR$\..\..\..\..\..\Components\hal\target\lm3s9B96cc2520
$PROJ_DIR$\..\..\..\..\..\Components\hal\target\_common\arm_cm3\drivers
$PROJ_DIR$\..\..\..\..\..\Components\hal\target\_common\arm_cm3\drivers\driverlib
$PROJ_DIR$\..\..\..\..\..\Components\hal\target\_common\arm_cm3\drivers\inc
$PROJ_DIR$\..\..\..\..\..\Components\hal\target\_common\arm_cm3\drivers\grlib
$PROJ_DIR$\..\..\..\..\..\Components\mac\include
$PROJ_DIR$\..\..\..\..\..\Components\mac\high_level
$PROJ_DIR$\..\..\..\..\..\Components\mac\low_level\srf04\dual_chip
$PROJ_DIR$\..\..\..\..\..\Components\mac\low_level\srf04
$PROJ_DIR$\..\..\..\..\..\Components\osal\include
$PROJ_DIR$\..\..\..\..\..\Components\services\sdata
$PROJ_DIR$\..\..\..\..\..\Components\services\saddr
$PROJ_DIR$\..\..\..\..\..\Components\mt
$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
$PROJ_DIR$\..\..\common\arm_cm3
$PROJ_DIR$\..\..\..\..\..\Components\freertos\source\include
$PROJ_DIR$\..\..\..\..\..\Components\freertos\source\portable\iar\arm_cm3
Project Options → C/C++ Compiler → Preprocessor → Defined symbols
ewarm
PART_LM3S9B96
IAR_ARMCM3_LM
ZTOOL_P1
MT_AF_FUNC
MT_AF_CB_FUNC
MT_APP_FUNC
MT_DEBUG_FUNC
MT_NWK_FUNC
MT_NWK_CB_FUNC
MT_SYS_FUNC
MT_TASK
MT_UTIL_FUNC
MT_ZDO_FUNC
MT_ZDO_CB_FUNC
LCD_SUPPORTED=DEBUG
ewarm, PART_LM3S9B96는 제가 grlib, driverlib 라이브러리를 없애고,
소스파일로 집어넣으면서 에러를 없애기 위해서 넣은 부분입니다.
(StellarisWare를 받으면 grlib, driverlib 라이브러리 소스가 포함되어 있습니다.
cpu파일인가 어디서 함수 이름이 똑같아서 에러가 났었는데.. 어디였는지 기억이 잘 안나네요.
아무튼 기존에 Z-Stack에 포함된 소스와 비교해보시고 에러나는 부분의 함수를 바꿔주시면 됩니다.)
빨간 글씨 부분은 Z-Tool을 위해서 포함되어야 하는 부분입니다.
그리고 마지막의 LCD_SUPPORTED=DEBUG는 없을 경우엔 __error__ 가 없다고 나옵니다.
(자세히 따져보지는 않았지만 Debug 관련한 매크로의 문제인듯한데.. 그냥 이렇게 쓰면 됩니다)
Project Options → C/C++ Compiler → Extra Options
-f $PROJ_DIR$\..\..\..\Tools\LM3Sxxxx\f8wConfig.cfg
-f $PROJ_DIR$\..\..\..\Tools\LM3Sxxxx\f8wCoord.cfg
-f $PROJ_DIR$\..\..\..\Tools\LM3Sxxxx\f8wZCL.cfg
HomeAutomation 표준에서는 ZCL을 사용하기 때문에 커맨드라인 옵션에 추가합니다.
Project Options → Linker → Library
$PROJ_DIR$\..\..\..\Libraries\LM3Sxxxx\bin\Router-Pro.a
$PROJ_DIR$\..\..\..\Libraries\LM3Sxxxx\bin\Security.a
$PROJ_DIR$\..\..\..\Libraries\LM3Sxxxx\bin\Ecc.a
$PROJ_DIR$\..\..\..\Libraries\TIMAC\bin\TIMAC-LM3Sxx.a
런타임 라이브러리에도 MT_UTIL을 활용하기 위해서 위의 라이브러리를 추가합니다.
일단 이렇게 하고 Z-Tool을 설정한다음 연결하면 다음과 같이 연결되는 것을 볼 수 있습니다.
이렇게 하고 나서 연결을 해보려고 하니깐 노드에 대한 설정이 아무것도 안되어 있네요.
CC2530 보드들끼리 통신이 되는 녀석들을 참고해서 뭘 어떻게 설정해야할지 천천히 살펴봐야겠습니다.
오늘한 일에 대해서 몇글자 안되지만 정리하다보니깐 벌써 시간이 늦었네요.
CC2530ZDK가 도착하면 각각 명령어에 대해서 뭘 어떻게 해야하는지..
문서 참고하면서 실험해서 찬찬히 정리해서 올리도록 하겠습니다.
번호 | 제목 | 닉네임 | 조회 | 등록일 | |
---|---|---|---|---|---|
17 | [로드맵] 현 상황에서 로드맵.. [4] | ||||
just4you |
9006 | 2014-04-16 | |||
앞으로 계속 논의할겠지만, 현재 상황에 맞춰 수정된 로드맵을 올립니다. ■ 현재 목표 1. 2개의 플랫폼 구성 - CC2538 (Cortex-M3 기반 원칩 솔루션) - TM4C129x + CC2538 (Cortex-M4 ZAP + ZNP 2칩 솔루션) (TI의 웹포럼에 ...
|
|||||
16 | contiki 예제 빌드 & 다운로드까지 성공~ [1] | ||||
just4you |
15446 | 2014-04-11 | |||
■ 준비 사항 1. XDS100v3 드라이버 설치 (EWARM의 arm\drivers\ti-xds\ti_emupack_setup.exe 파일 실행 혹은 ti.com에서 해당 파일을 다운로드) ■ contiki 예제 빌드 1. www.contiki-os.org 에서 Instant Contiki 2.7을 다운받는다. ...
|
|||||
15 | [실패] Z-Stack Home에 LM3S9B96을 포팅하면서 느낀 점.. | ||||
just4you |
6140 | 2014-04-08 | |||
어제 시간내서 새 버전인 Z-Stack Home 1.2에 스텔라스를 포팅해보았습니다. 하드웨어 코드를 건드린게 아니라 프로젝트 위치 수정하고 경로 지정해주고... 뭐 이런 정도였는데요.. 생각보단 쉽게 가나 했는데 결국 마지막에 문제가 생기네...
|
|||||
14 | [2014-02-15] 향후 진행 방향에 대한 논의 [1] | ||||
just4you |
11392 | 2014-03-17 | |||
===================================================================================================
향후 진행 방향
==========================================================================...
|
|||||
13 | Contiki 예제 컴파일 후기.. [3] | ||||
just4you |
5166 | 2014-01-21 | |||
Contiki 사이트에서 컴파일해본 결과..
InstantContiki라는 VMware 이미지를 받아서 실행하면 기본적인 기능이 가능하도록 모든 툴이 설치가 되어있습니다.
다만 플랫폼에 따라 포함된 예제들이 다른데..
가장 많은 예제를 지원하는 플랫...
|
|||||
12 | CC2538 노드 및 디버거 회로도 [2] | ||||
just4you |
8211 | 2014-01-13 | |||
여러가지 고민을 했었는데,
결국 핀수 제한 때문에 9축 센서도 바꾸고...
Contiki 호환을 고려하여,
핀맵도 SmartRF06EB와 비슷하게 만들도록 수정을 했습니다.
버전은 0.99 정도(?)
업로드하고 보니 디버거 회로에 바이패스 커패시터...
|
|||||
11 | ZLL Gateway 테스트 중... [1] | ||||
just4you |
7622 | 2013-08-13 | |||
BeagleBone 보드 + CC2531EMK를 통한 ZigBee Gateway 설정방법..
(참고 사이트 - http://processors.wiki.ti.com/index.php/ZigBee_Lighting_Gateway)
Ninja palladium 이미지를 SD card에 설치하고 부팅한 다음..
그리고 비글본에 접속하...
|
|||||
10 | CC2538DK 개발 환경 설정하기. [1] | ||||
just4you |
8066 | 2013-08-02 | |||
개발환경은 IAR의 EWARM으로 꾸미고자 합니다.
구하기도 쉬울 뿐더러 많이들 사용하고 있으니깐...
하지만 문제가 발생~ IAR EWARM 버전이 계속 업데이트 되면서..
최신 칩인 CC2538의 경우 TI에서 제공해주는 예제들의 경우엔 최신...
|
|||||
9 | CC2538 Cortex-M3로 원칩 솔루션이 새로 나왔네요.. [3] | ||||
just4you |
3583 | 2013-06-03 | |||
ST 같은 경우엔 cortex 계열로 솔루션이 있었지만...
요건 소스 공개가 아니라서..
TI에서 CC2538이라는게 새로나와서 DK(Development Kit)는 있는데...
아직 제대로 된 Z-Stack이 나온건 아니네요..
나온지는 좀 됐는데 아직 이...
|
|||||
8 | Z-Stack의 네트워크 초기화... | ||||
just4you |
3101 | 2013-05-16 | |||
▲ ZigBee RF 규격
- 868MHz : 0번 채널 (1개)
- 915MHz : 1~10번 채널 (10개)
- 2.4GHz : 11 ~ 26번 채널 (16개)
※ 2.4GHz에서 5MHz 폭의 16개 채널을 가짐.
▲ TI의 Z-Stack
TI의 Z-Stack 소스를 보면, f8wConfig.cfg...
|
|||||
7 | Z-Stack에 대한 SampleApp 예제 설명 및 테스트.. | ||||
just4you |
7256 | 2013-05-10 | |||
LM3S9B96 Z-Stack을 활용하기 위해서는 CC2530이나 MSP430에 대한 Z-Stack 소스를 참고하고 비교하기 바람..
(지난번 글에도 적어놨듯이 Cortex-M3로 노드를 만드는 경우가 별로 없는 듯...
개발자들도 대부분 원칩 솔루션인 CC2530을 ...
|
|||||
Z-Stack HomeAutomation SampleLight 소스 포팅 작업 | |||||
just4you |
8211 | 2013-04-26 | |||
CC2530의 HomeAutomation\SampleLight 소스를 포팅하였습니다.
포팅 과정은 생각보다 꽤 길었습니다.
오늘 오전부터 온 종일 여기에 매달려야 했으니까요.
(지난번에 집인가 회사에선가 시도해보긴 했었는데..
한 2~3시간 삽질하니깐 컴...
|
|||||
5 | 지금까지 TI의 Z-Stack에 대해 알아낸 사항들을 중간 정리합니다. [2] | ||||
just4you |
7950 | 2013-04-12 | |||
이 글은 TI Z-Stack을 통해서 개발하고자 하는 과정에서 겪은 문제점들을 통해,
어떻게 접근해야 효율적인지 적어놓는 것입니다.
그리고 앞으로 해야할 일에 대한 순서도 적어놓을 것입니다. (과정이 달라지면 수정하도록 하겠습니다)
혹여...
|