[질문] 임베디드 네트워크 관련

qldpfh의 이미지

임베디드 네트워크를 사용하기 위한 질문 입니다.

우선 VM을 사용하여 RedHat Linux 9.0 에서 사용하고 있음을 알려드립니다.

임베디드 시스템과 동일하게 제작된 시뮬레이터가 있습니다.
시뮬레이터 상에서 일반 web으로 http method를 던저 반응을 보는 프로그램을
만들려고 합니다.

그래서 시뮬레이터 제공 업체의 API 레퍼런스를 찾아보았습니다.

int (*open)(struct net_device *dev);

호출방식이 저렇다고 나와있더군요... 도무지 무슨뜻인지 알수가 없습니다.
예제도 없습니다..ㅠㅠ

그래서 질문을 드립니다.

저 함수를 보자면 시리얼 통신인것 같은데요...

소켓 프로그래밍에서는 어떠한 곳에 연결을 하고
연결된 곳에 데이터를 보내고 받고 를 합니다.
연결 정보를 물론 가지고 있겠지요..(socket)

그럼 시리얼 통신에서는 소켓 통신 처럼 외부 web으로 저런 일이 가능한가요?

그리고.. 시리얼 통신으로 web과 통신을 하려면.. 무엇 부터 봐야할까요...

질문이 조금 오락가락 하네요..ㄷㄷ 아래 요약입니다.

-----요약-----
1.시리얼 통신으로 외부 web과 통신이 가능한가?
2. 1번이 가능하다면 그것을 실행하기 위해 봐야할 것들이 무엇인가?(ex : 커널..모듈...등등)
3. 2번질문을 보기위한 사이트가 있으면..

위 3가지 질문입니다.. 너무 무지해서.. 어디서 부터 어떻게 봐야할지 조차 모르겠습니다...
아.. 나중에 보면 알게될듯 하지만.. struct net_device <<이거 도대체 어찌 쓰는겁니까?ㄷㄷ

답변에 미리 감사드립니다.^^;

절차탁마의 이미지

1.시리얼 통신으로 외부 web과 통신이 가능한가?
web은 TCP/IP를 사용하니 serial에 TCP/IP를 올리면 될것같습니다.
PPP같은거요.

2. 1번이 가능하다면 그것을 실행하기 위해 봐야할 것들이 무엇인가?(ex : 커널..모듈...등등)
ppp사용하려면 kernel에 ppp 관련항목을 확인하고, user mode에서 ppp 프로그램을 돌려야 합니다.
당연히 ppp server도 있어야 하구요.

3. 2번질문을 보기위한 사이트가 있으면..
HOW-TO쪽을 한번 살펴보심이..

그리고 open 관련해서는 아마도 network device driver interface라고 생각합니다.
다시한번 관련 문서 또는 업체 확인해보시는게 제일 좋을것 같습니다.

qldpfh의 이미지

좋은 답변 감사합니다.^^

참조가 많이 될것 같습니다.^^

neogeo의 이미지


윗분이 대답을 잘 해주셨고...

Quote:

int (*open)(struct net_device *dev);

호출방식이 저렇다고 나와있더군요... 도무지 무슨뜻인지 알수가 없습니다.
예제도 없습니다..ㅠㅠ

이부분은 function pointer 라는 개념을 공부하시면 쉽게 와닿을 것입니다.

인자로 function pointer 를 받는 녀석을 호출하라고 되어있는 모양입니다 ( 질문만으로는 알기 힘들군요 )

Neogeo - Future is Now.

Neogeo - Future is Now.

qldpfh의 이미지

답변 감사합니다..

그부분은 해결이 되었습니다.. 저 함수 말고 다른 함수로..사용을 해봤는데..

Quote:

이부분은 function pointer 라는 개념을 공부하시면 쉽게 와닿을 것입니다.

함수 포인터를 열심히 뒤져보니.. 나오더군요.^^;

ex)
int(open*)(int a, int b); 

이렇게 되어있으면..

int plus(int a, int b)
{
   return a+b;
}
int main()
{
  int a=1,b=2;
  open open_func = plus;
  printf("a + b = %d\n",open_func(a,b));
  return 0;
}

이런식으로 사용하더군요...

그리고 이런식의 호출방식과.. 콜백함수..머라구 하는부분도 있던데...
의미가 틀린건 알겠지만.. 차이점은 잘모르겠더군요.^^;

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.