physical addreess direct 로 access 하는법?

chxooi의 이미지


UART 인터럽트를 이용한 interrupt 가 5번이구요..

해당 인터럽트를 enable 해야하는데...

UART baseaddress 가 0xdff00000
으로 나왔다고 치면,

UART interrupt 를 enable 하기 위해 IER 을 살려야하는데 IER 이 offset 0x04 거든요..

그럼 이 0x04 offset 을 어떻게 살릴 수 있을까요?

#define dev_base 0xdff00000
#define dev_reg1 dev_base+0x04
#define dev_reg2 dev_base+0x08

regwrite example

*(unsigned char*)dev_reg1 = 0xFF
*(unsigned char*)dev_reg1 = 0xFF

read example
int read_val=0
read_val= *(unsigned char*)dev_reg1;
printk("===>reg value is %x\n",read_val);

이렇게 하면될까요??왠지 잘못된것같은데.....

사이트내의 UART 참조중인데 interrupt 살리는 부분은 못찾았어요..

physical address access 하면될것같아서요....

잘못한거겠죠??어떻게 해야할까요....

highvolt의 이미지

1. Virtual Address와 Physical Address의 차이를 이해하세요. Linux에서는 어떠한 상태에서도 MMU enabled상태입니다.

2. *(unsigned char*)dev_reg1 = 0xFF 보다는 *(volatile unsigned char*)dev_reg1 = 0xFF 가 확실합니다.

MasterQ의 이미지

Kernel 내부에서는 ioremap을 이용해서 접근할수 있는 주소를 얻어온 다음 쓰면 될것 같습니다.

headbang의 이미지

#define dev_reg1 dev_base+0x04
#define dev_reg2 dev_base+0x08
==>
#define dev_reg1 (dev_base+0x04)
#define dev_reg2 (dev_base+0x08)

위와 같이 수정하는 게 맞는 게 아닌가요?

0xdff00000 이게 물리 주소라면 ioremap()도 해줘야 겠네요.

Hyun의 이미지

/dev/mem 을 열어서 해당 부분을 mmap 후 사용하면 되지 않을까요?
캐시같은건 저 드라이버 내부에서 어떻게 처리하는지는 확인해 봐야겠습니다.


나도 세벌식을 씁니다

댓글 달기

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