2012/01/26

VxWorks에서 NTP를 이용하여 시간 맞추기.

  1. NTP 서버를 마련한다.
    1. Windows 계열 PC를 NTP 서버로 설정하는 방법은 널리(?) 일려져 있으니 구글 검색..
    2. 방화벽으로 막혀 있을수 있으니 UDP 123 포트는 열어둘것. (이거 안해서 몇시간 공생했음..) 
  2. VxWorks kernel에서 SNTP 추가한다. (INCLUDE_IPSNTPC)
    1. 세부 설정에서 server IP 설정
이렇게 까지만 하면 잘 동작하는데... NTP 서버 시간을 UTC  시간으로 인식한다. 
즉 서버의 시간이 오후 1시 33분이면 vxWorks 장비에서는 04:33분으로 생각...
뭐.. 이가지만 해도 좋으면 그냥 둬도 되는데... TIMEZONE 변수로 맞출수도 있다.

->putenv("TIMEZONE=KST::-540:000000:000000")
이렇게 하면 동작 함...
(daylight 기능은 확인안해봤지만 될것 같은 느낌....)


-> t = time()
t = 0x7912b70: value = 1327552404 = 0x4f20d794
-> printf("%s\n", asctime(gmtime(&t)))
THU JAN 26 04:33:24 2012
value = 26 = 0x1a
-> printf("%s\n", asctime(localtime(&t)))
THU JAN 26 13:33:24 2012
value = 26 = 0x1a


** 기타 시간관련 함수는 ansiTime 관련 도움말 참고...
** bsp에서 RTC 관련 시간은 바뀌지 않기때문에 시간 관련 함수 통일할것...