[질문] 드라이버를 사용하는 응용프로그램

jimink의 이미지

안녕하세요.
드라이버를 개발해서

해당 하드웨어를 테스트하는 프로그램을 짜고 싶은데요..
제 드라이버 함수에

int lcd_open(struct inode *inode, struct file *pfile)
{
.........
}

있는걸 main.c
에서 얻어 올려면 어떻게 하죠??
제가 윈도에서 createfile같은걸 어떻게 해야하는지 모르겠어요.
그리고
struct inode는 어디에 정의 되어있나요? 어떤 헤더에?? 아무리 찾아도 못찾겠네요..

해당 드라이버 함수를 사용하는 방법을 좀 알려주세요..
친절한 답변부탁드립니다.
꾸벅..
예제 파일이나 샘플 있으면 좀 알려주세요

은영신랑의 이미지

kelp.or.kr 에 가시면 유영창님의 디바이스 드라이버 강좌가 있습니다.
프린터 포트를 가지고 짜여진것인데 쭉 읽어보시면 test프로그램 만드는데는
문제가 없을것 같네요.
또 리눅스 드라이버라는 책도 있고요,

자료는 많이 있습니다.

jimink의 이미지

음..
해당 강좌를 보니까요.
프린터드라이버를 만드는 쪽이더라구요..
그런데..
StrongArm 보드에서 프린터를 연결하여 출력해 보자.. 강좌에는 제가 원하는
테스트쪽 코드는 없더라구요..드라이버쪽만 있고.

전..main.c 하나만들어서
드라이버 객체 하나 얻고(아마 파일 형태 겠죠?)
해당 드라이버에 제가 명령 내리는 함수들을 사용하고 싶거든요.
어떻게 해야하는지요?
참고할 만한 책이라도 좀 알려주세요..
히~

hskim76의 이미지

제가 질문을 제대로 파악한건지 모르겠네요.

제 나름대로 몇자 적습니다.

드라이버 소스에 보면, Major넘버라는 부분이 있을겁니다.

아마 이 번호를 가진 디바이스 파일이(아마 캐릭터 디바이스이겠죠?) /dev 밑에 있을텐데, 이 파일을 그냥 open하면 됩니다.

아마 그러면, 커널에서 lcd_open()을 불러줄겁니다.

그리고 귀하가 가지신 디바이스 드라이버 소스에 ioctl이 있다면 control은 ioctl로 하시고, 없다면 아마 lcd_read라던가 lcd_write등이 있을겁니다.

디바이스에 대한 인스턴스라기보다는 디바이스에 대한 파일 디스크립터가 생기겠죠. linux에서는 대부분 이와 같은 방법으로 디바이스 드라이버랑 놉니다.

윈도우에서 createfile등으로 약속된(레지스터에 있는) COM1: 등을 오픈해서 디바이스 드라이버를 제어하는 것과 비슷할 수도 있습니다.

댓글 달기

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