VxWorks에 포팅시 무엇을 고려해야할까요?

ninakhlee의 이미지

일반 리눅스에서 작성된 네트워크 어플리케이션입니다.
네트웍 서버/클라이언트 모드로 동작하고 둘 사이에 TCP/UDP로
패킷을 주고받는 프로그램입니다.
특별한 라이브러리라면 DNS라이브러리 정도를 사용하고 있습니다.
소스 크기는 DNS 라이브러리까지 포함해서 1.3M 정도 됩니다.

이런 어플리케이션을 VxWorks로 포팅하고자 한다면
어떠한 어려움이 있으며 고려해야할 사항이 어떤 것인지 알고싶습니다.

^^* 회사에선 머 별거 있겠냐며 그냥 하면 되지 않냐고 하는데요.
사실 제가 VxWorks가 어떤 특징을 가지고 있는지 잘 몰라서요.
여러분들의 도움을 얻고자 합니다.

일반 리눅스와 거의 같은 환경이라 별 문제가 없는건지.. 아니면
많이 차이가 있어서 포팅하는데 시간이나 노력이 많이 필요한가요?

읽어주셔서 감사합니다.

alsong의 이미지

잠시 vxWorks를 써본적이 있는데...
리눅스 코드를 포팅하는데 어렵지는 않았습니다.
(udp를 사용한 크기가 작은 코드였습니다.)
C(표준함수)로 짜여져 있다면 별로 손볼일은 없는것 같았습니다.

쓰레드가 조금 틀려서 고쳐주시고요. 리얼타임 OS특성의 스케줄링옵션을
잘 선택하기를....
표준함수외에도 vxWorks에서만 쓰는 함수들이 많이 있기는 합니다.

좀 오래되서 기억이 나지는 않지만 힘들진 않았습니다.
사이즈가 큰 소스를 포팅한적이 없어서 좋은답변은 못드리겠네요.

추가로
다른모듈의 전역변수까지 모두 참조가능하기때문에 전역변수는 조심하여 사용하는게 좋습니다. 대규모 프로젝트라면 너나없이 변수가 충돌합니다. 가능하면 static을 사용하는게 좋을겁니다. 그리고 특별히 메인함수라는 개념이 없습니다. 함수 호출하면 바로 실행 ^^; OS이미지 파일 잘 만드시고요....

그나저나 백수 언제 탈출하냐... ㅡㅡ; 배고파라.

은영신랑의 이미지

사용하는 function에 대하여 vxWorks 메뉴얼 찾아보면서 하시면 그리
어렵지 않을것 같네요. 가끔씩 함수 parameter같은 것들이 틀린 경우는
있더라구요.
그리고 Makefile같은것은 자동으로 생성되고, dependency 같은것도
자동이니깐 그러한 면에서는 수월한것 같더라구요.
위엣분이 이야기하신것처럼 변수는 주의를 좀 하셔야 하구요.

main이 없으니깐 좀 헷갈리기도 하더라구요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.