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가 도착하면 각각 명령어에 대해서 뭘 어떻게 해야하는지..
문서 참고하면서 실험해서 찬찬히 정리해서 올리도록 하겠습니다.
번호 | 제목 | 닉네임 | 조회 | 등록일 | |
---|---|---|---|---|---|
14 | CC2538 노드 제작 스펙 논의.. [2] | ||||
just4you |
2505 | 2013-09-03 | |||
CC2538의 무선 노드를 제작할 스펙에 대해서 논의~
- CC2538SF53RTQT
Cortex-M3 based ZigBee processor (TI)
- LSM9DS0
9 axis MEMs sensor (ST Microelectronics)
- 온도계 및 광량 센서
- 그리고 나머지 핀들을 ...
|
|||||
13 | 지그비 스터디의 방향에 대한 논의 [4] | ||||
just4you |
2107 | 2013-08-19 | |||
지그비 스터디에 대한 방향에 대해 논의를 하는 글입니다.
참여자는 회원으로만 제한됩니다.
실제적으로는 여러단계에 거쳐서 실행이 되겠지만..
가장 먼저해야하는 일은 개발환경을 설정하는 것이니깐..
타겟인 CC2538, LM3S9B96+CC2520...
|
|||||
12 | ZLL Gateway 테스트 중... [1] | ||||
just4you |
7505 | 2013-08-13 | |||
BeagleBone 보드 + CC2531EMK를 통한 ZigBee Gateway 설정방법..
(참고 사이트 - http://processors.wiki.ti.com/index.php/ZigBee_Lighting_Gateway)
Ninja palladium 이미지를 SD card에 설치하고 부팅한 다음..
그리고 비글본에 접속하...
|
|||||
11 | CC2538DK 개발 환경 설정하기. [1] | ||||
just4you |
7942 | 2013-08-02 | |||
개발환경은 IAR의 EWARM으로 꾸미고자 합니다.
구하기도 쉬울 뿐더러 많이들 사용하고 있으니깐...
하지만 문제가 발생~ IAR EWARM 버전이 계속 업데이트 되면서..
최신 칩인 CC2538의 경우 TI에서 제공해주는 예제들의 경우엔 최신...
|
|||||
10 | TI에서 CC2530용 게이트웨이 솔루션이 나왔습니다. [2] | ||||
just4you |
4449 | 2013-06-26 | |||
현재는 CC2530용 ZigBee Light Link용 프로파일용으로 Gateway S/W가 나왔습니다만...
HomeAutomation이나 다른 프로파일등을 지원할 수 있도록 확장하면 여러모로 쓸모가 있을것같습니다.
(TI에서는 왠만한 소스를 오픈하기 때문에 이건 맘...
|
|||||
9 | CC2538 Cortex-M3로 원칩 솔루션이 새로 나왔네요.. [3] | ||||
just4you |
3504 | 2013-06-03 | |||
ST 같은 경우엔 cortex 계열로 솔루션이 있었지만...
요건 소스 공개가 아니라서..
TI에서 CC2538이라는게 새로나와서 DK(Development Kit)는 있는데...
아직 제대로 된 Z-Stack이 나온건 아니네요..
나온지는 좀 됐는데 아직 이...
|
|||||
8 | Z-Stack에 대해서.. | ||||
just4you |
1218 | 2013-05-24 | |||
오늘도 그간 알아낸 사항에 대해 몇글자 적어봅니다.
먼저 제가 사용하고자 하는 Stellaris는 Z-Stack에서 비중을 차지하는게 아닙니다.
노드에서 연산 기능이 좀 필요하는 경우에 활용할만하지만..
아무래도 대세는 CC2530으로 원칩 솔...
|
|||||
7 | Z-Stack의 네트워크 초기화... | ||||
just4you |
3034 | 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...
|
|||||
6 | Z-Stack에 대한 SampleApp 예제 설명 및 테스트.. | ||||
just4you |
7116 | 2013-05-10 | |||
LM3S9B96 Z-Stack을 활용하기 위해서는 CC2530이나 MSP430에 대한 Z-Stack 소스를 참고하고 비교하기 바람..
(지난번 글에도 적어놨듯이 Cortex-M3로 노드를 만드는 경우가 별로 없는 듯...
개발자들도 대부분 원칩 솔루션인 CC2530을 ...
|
|||||
Z-Stack HomeAutomation SampleLight 소스 포팅 작업 | |||||
just4you |
8091 | 2013-04-26 | |||
CC2530의 HomeAutomation\SampleLight 소스를 포팅하였습니다.
포팅 과정은 생각보다 꽤 길었습니다.
오늘 오전부터 온 종일 여기에 매달려야 했으니까요.
(지난번에 집인가 회사에선가 시도해보긴 했었는데..
한 2~3시간 삽질하니깐 컴...
|
|||||
4 | 지금까지 TI의 Z-Stack에 대해 알아낸 사항들을 중간 정리합니다. [2] | ||||
just4you |
7802 | 2013-04-12 | |||
이 글은 TI Z-Stack을 통해서 개발하고자 하는 과정에서 겪은 문제점들을 통해,
어떻게 접근해야 효율적인지 적어놓는 것입니다.
그리고 앞으로 해야할 일에 대한 순서도 적어놓을 것입니다. (과정이 달라지면 수정하도록 하겠습니다)
혹여...
|
|||||
3 | 휴~ 드디어 기본 툴까지 테스트가 끝났네요. | ||||
just4you |
4278 | 2013-01-24 | |||
수개월 동안 안풀리던 문제를 겨우 풀었습니다.
개발보드에는 큼직한 LCD가 달려있어서..
쬐끄만 노드들을 만들면 모니터링을 어떻게 해야할지가 고민이었는데..
Z-Tool이라는 모니터링 툴에서 명령을 주고 반응을 살펴보는게 가능합니다....
|
|||||
2 | [중간보고] RF 인터페이스까지 동작 테스트함... | ||||
just4you |
1364 | 2012-10-13 | |||
지금까지 진행된 상태를 알려드리도록 하겠습니다. Dk-LM3S9B96 개발보드를 참고해서 만든 센서노드의 인터페이스의 차이는.. - RF 인터페이스 (동일) - LED 인터페이스 (2개 동일, 6개 추가) - 버튼 인터페이스 (포트 변화 및 개수 증가...
|
|||||
1 | WSN 센서 노드 개발 프로젝트 시작 - 테스트 보드 회로도입니다. [1] | ||||
just4you |
1574 | 2012-09-07 | |||
원래 스프링노트에 프로젝트 공간을 마련했지만, 이번달까지만 유지가 되기 때문에 이곳으로 옮깁니다...
현재 테스트하고 있는 보드의 회로도입니다.
LM3S9B96-DK의 개발보드를 참고해서 만들었습니다.
그런데 USB로 배터리를 충전하...
|