作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 beagleboard-xm rev C 板。处理器的 TRM。我在网上看到了一些如何配置 pad 的例子。这是其中一个例子:
int fd = open("/dev/mem", O_RDWR | O_SYNC);
if (fd < 0) {
printf("Could not open memory\n");
exit(1);
}
// Pad configuration
volatile ulong *pinconf;
pinconf = (ulong*) mmap(NULL, 0x10000, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0x48000000);
if (pinconf == MAP_FAILED) {
printf("Pinconf Mapping failed\n");
close(fd);
exit(1);
}
// configure expansion header
pinconf[0x2174/4] = 0x001A001A; //
close(fd);
我的问题是,将0x2174
除以4 的目的是什么?
我看到 0x2174 代表我想在 http://www.ti.com/lit/ug/spruf98x/spruf98x.pdf 上配置的引脚(CONTROL_PADCONF_UART2_CTS[15:0]
)第 778 页。我看到它是一个 32 位寄存器。但是我无法通过该寄存器的低 16 位 4 点获得功能 0x2174?
最佳答案
因为指针是“ulong”类型,在这个平台上好像是4字节。假设 pinconf 的寄存器地址是 0x12174,您必须将 0x10000 的偏移量除以 4,以获得 ulong 数组的正确索引(以及正确的字节地址)。
关于c - 通过 mmap 配置焊盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14816798/
我是一名优秀的程序员,十分优秀!