디바이스 드라이버 메모리 접근

studentoflinux의 이미지

BBB를 이용해서 GPMC장치를 제어하는 디바이스 드라이버를 코딩중입니다.

BBB(am335x) 에서 GPMC장치의 메모리는 0x0000 0000 부터 시작으로 봤는데요.

이 부분을 디바이스 드라이버 모듈의 init 부분에서 적재 시 ioremap을 이용해 매핑하도록 구현하였습니다.

NULL포인터를 리턴하지 않는 것을 보아 매핑은 정상적으로 되는거 같은데

iowrite16/ioread16 또는 writeb/readb 모두 사용해도 에러가 발생하네요.

write 시에는 unhandled fault: imprecise external abort (0xc06)
read 시에는 Unhandled fault: external abort on non-linefetch (0x008)
에러가 발생합니다.

read의 경우에는 찾아보니 맵핑되지 않은 메모리 접근을 시도했을 경우라고 하는데 위에서 설명했듯, NULL포인터를 리턴하지 않습니다. 따라서 정상이라고 판단됩니다.

ioremap_nocache의 경우에도 마찬가지의 에러가 발생하네요.

혹시 read/write 함수를 잘못쓰고 있는건지 의견 부탁드립니다.

shint의 이미지


- 파워
- GPIO 설정 export

등등 여러가지 오류에 대한 내용이 있는거 같습니다.

잘 되는 예제소스와 책에 대한 주소도 첨부해봅니다. 참고해보세요.

임베디드 리눅스 시스템
http://book.naver.com/bookdb/book_detail.nhn?bid=9555185
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C+%EB%A6%AC%EB%88%85%EC%8A%A4+%EC%8B%9C%EC%8A%A4%ED%85%9C

ioremap
http://search.naver.com/search.naver?ie=utf8&sm=stp_hty&where=se&query=ioremap

Simple I/O device driver for RaspberryPi
http://www.codeproject.com/Articles/1032794/Simple-I-O-device-driver-for-RaspberryPi

ioremap
http://www.google.co.kr/search?hl=ko&source=hp&biw=&bih=&q=ioremap&gbv=2&oq=ioremap&gs_l=heirloom-hp.12..0l10.335.335.0.1493.1.1.0.0.0.0.134.134.0j1.1.0....0...1ac.1.34.heirloom-hp..0.1.134.IQYKJhalFkw

unhandled fault: imprecise external abort (0xc06)
http://www.google.co.kr/search?q=unhandled+fault%3A+imprecise+external+abort+%280xc06%29&hl=ko&biw=&bih=&gbv=2&oq=unhandled+fault%3A+imprecise+external+abort+%280xc06%29&gs_l=heirloom-serp.12..0i30.34868.34868.0.35725.1.1.0.0.0.0.137.137.0j1.1.0....0...1ac..34.heirloom-serp..0.1.137.wSVE8ELInNQ

unhandled fault: imprecise external abort (0xc06)
http://search.naver.com/search.naver?ie=utf8&sm=stp_hty&where=se&query=unhandled+fault%3A+imprecise+external+abort+%280xc06%29

Unhandled fault: external abort on non-linefetch (0x008)
http://search.naver.com/search.naver?sm=stb_hty&where=se&ie=utf8&query=Unhandled+fault%3A+external+abort+on+non-linefetch+%280x008%29

Unhandled fault: external abort on non-linefetch (0x008)
http://www.google.co.kr/search?q=Unhandled+fault%3A+external+abort+on+non-linefetch+%280x008%29&hl=ko&biw=&bih=&gbv=2&oq=Unhandled+fault%3A+external+abort+on+non-linefetch+%280x008%29&gs_l=heirloom-serp.12..0i30.0.0.0.-267398.1.1.0.0.0.0.131.131.0j1.1.0....0...1ac..34.heirloom-serp..0.1.130.FAw9BpNyVe4

ioremap_nocache
http://www.google.co.kr/search?q=ioremap_nocache&hl=ko&biw=&bih=&gbv=2&oq=ioremap_nocache&gs_l=heirloom-serp.12..0l3j0i30l7.78271.78271.0.78686.1.1.0.0.0.0.371.371.3-1.1.0....0...1ac..34.heirloom-serp..0.1.371.armd-znGC7Y

http://search.naver.com/search.naver?sm=stb_hty&where=se&ie=utf8&query=ioremap_nocache

iowrite16/ioread16
http://search.naver.com/search.naver?sm=stb_hty&where=se&ie=utf8&query=iowrite16%2Fioread16

http://www.google.co.kr/search?q=iowrite16%2Fioread16&hl=ko&biw=&bih=&gbv=2&oq=iowrite16%2Fioread16&gs_l=heirloom-serp.12...41421.41421.0.45673.1.1.0.0.0.0.134.134.0j1.1.0....0...1ac..34.heirloom-serp..1.0.0.CN-Wx9ssdDU

writeb/readb
http://www.google.co.kr/search?q=writeb%2Freadb&hl=ko&biw=&bih=&gbv=2&oq=writeb%2Freadb&gs_l=heirloom-serp.12...104003.104003.0.104500.1.1.0.0.0.0.0.0..0.0....0...1ac.1.34.heirloom-serp..1.0.0.05orYUgS6d4

http://search.naver.com/search.naver?sm=stb_hty&where=se&ie=utf8&query=writeb%2Freadb

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

댓글 달기

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