內(nèi)核配置devmem
devmem命令依賴于/dev/mem設(shè)備節(jié)點,需要在Linux內(nèi)核中打開/dev/mem的配置:
Device Drivers --- >
Character devices --- >
[*] /dev/mem virtual device support
Linux應(yīng)用層操作寄存器
除了直接使用devmem,我們也可以在Linux應(yīng)用層自己實現(xiàn)一個devmem。
devmem的實現(xiàn)原理,就是打開/dev/mem,然后通過mmap映射物理地址,從而實現(xiàn)讀寫寄存器。因此,我們只要實現(xiàn)這些操作,就可以自己實現(xiàn)類似devmem的功能。
例如,在Linux應(yīng)用層讀取物理地址為0x40000000的值:
#include < stdio.h >
#include < stdlib.h >
#include < time.h >
#include < unistd.h >
#include < fcntl.h >
#include < unistd.h >
#include < sys/mman.h >
#define MAP_SIZE 0x80000
#define base 0x40000000
int main(int argc, char **argv)
{
int fd = open("/dev/mem",O_RDWR|O_NDELAY);
if (fd < 0)
{
printf("open /dev/mem error!n");
return -1;
}
void *map_base = mmap(NULL,MAP_SIZE,PROT_READ|PROT_WRITE,MAP_SHARED,fd,base);
if (map_base == MAP_FAILED)
return -1;
printf("%x n",*(volatile unsigned int*)(map_base));
close(fd);
munmap(map_base,MAP_SIZE);
return 0;
}
總結(jié)
devmem是一個很常用的工具,主要給驅(qū)動開發(fā)人員在Linux應(yīng)用層調(diào)試使用。devmem不僅僅是訪問寄存器,只要有權(quán)限訪問某個物理地址,就可以使用devmem,方便我們調(diào)試。
-
寄存器
+關(guān)注
關(guān)注
31文章
5363瀏覽量
121198 -
內(nèi)核
+關(guān)注
關(guān)注
3文章
1382瀏覽量
40430 -
Linux
+關(guān)注
關(guān)注
87文章
11345瀏覽量
210415 -
RISC
+關(guān)注
關(guān)注
6文章
465瀏覽量
83877 -
應(yīng)用層
+關(guān)注
關(guān)注
0文章
46瀏覽量
11545
發(fā)布評論請先 登錄
相關(guān)推薦
寄存器是什么?怎么操作寄存器點亮LED燈?
![<b class='flag-5'>寄存器</b>是什么?怎么<b class='flag-5'>操作</b><b class='flag-5'>寄存器</b>點亮LED燈?](https://file1.elecfans.com/web2/M00/8D/6E/wKgaomS6SMiADtQfAACtrdEXQEk745.jpg)
嵌入式linux驅(qū)動對gpio的基本操作
如何在嵌入式linux中應(yīng)用層操作gpio口
寄存器操作方法_對寄存器操作的通用方法總結(jié)
寄存器變量
嵌入式Linux驅(qū)動 GPIO操作 包括驅(qū)動和應(yīng)用層程序?qū)︱?qū)動進行測試
![嵌入式<b class='flag-5'>Linux</b>驅(qū)動 GPIO<b class='flag-5'>操作</b> 包括驅(qū)動和<b class='flag-5'>應(yīng)用層</b>程序?qū)︱?qū)動進行測試](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32的寄存器操作
![STM32的<b class='flag-5'>寄存器</b><b class='flag-5'>操作</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
簡述RAL寄存器模型基礎(chǔ)
![簡述RAL<b class='flag-5'>寄存器</b>模型基礎(chǔ)](https://file.elecfans.com/web2/M00/90/B3/poYBAGPrR22AUrkqAAGMANm30iE910.jpg)
評論