Embedded 需要了解ioremap的用法

Embedded 需要了解ioremap的用法,embedded,posix,Embedded,Posix,在内核空间映射硬件寄存器时,我遇到了两个基本问题 void __iomem * ioremap(unsigned long offset, unsigned long size); 偏移量是否必须与页面大小对齐,并且大小必须是页面大小的倍数?公众的意见是矛盾的。我们的代码似乎还可以。无需调整页面大小 我是否可以直接反引用指针以访问映射的寄存器?我在过去曾直接引用过它,它成功了。但是互联网上的大多数人说这是不允许的。应该使用ioread/iowrite()(或者readb/readw/read

在内核空间映射硬件寄存器时,我遇到了两个基本问题

void __iomem * ioremap(unsigned long offset, unsigned long size);
  • 偏移量是否必须与页面大小对齐,并且大小必须是页面大小的倍数?公众的意见是矛盾的。我们的代码似乎还可以。无需调整页面大小

  • 我是否可以直接反引用指针以访问映射的寄存器?我在过去曾直接引用过它,它成功了。但是互联网上的大多数人说这是不允许的。应该使用ioread/iowrite()(或者readb/readw/readl/writeb/writew/writel)特殊函数吗