活动地址:CSDN21天学习挑战赛
学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…
关于devmem工具的来源是因为通常在标准的Linux操作方式下,对于硬件的操作必须通过硬件驱动程序完成,而对于在刚开始开发阶段,对于硬件工程师来讲,硬件在设计好测试时需要对硬件做简单的硬件寄存器读写操作,单单为此去开发驱动程序显得劳师动众,因此针对这种情况,devmem便由此产生~
对于devmem工具的使用需要kernel的支持,如下:


在Linux kernel中操作寄存器需要使用ioremap接口,使用如下:
#define GPIO0_DDR_BASE ((uint32_t)0xE7A01014)
static volatile uint32_t *GPIO0_ddr_vreg;
uint32_t val = 0;
GPIO0_ddr_vreg = (uinit32_t *)ioremap(GPIO0_DDR_BASE,4);
val = readl(GPIO0_ddr_vreg);
printk("val = %ld\n",val);
mmap接口操作的设备节点为/dev/mem
