- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
您好,我使用在 debian 上运行的 beaglebone black,我在 /dev/mem 文件上使用 mmap
来访问 GPIO 寄存器。我有一个包含我的映射函数的 .c 文件:
//sample code
unsigned int *gpio_get_map(int gpio)
{
unsigned int *gpio_addr = NULL;
int fd = open("/dev/mem", O_RDWR);
gpio_addr = mmap(0, GPIO_SIZE, PROT_READ | PROT_WRITE,MAP_SHARED,fd, gpio_get_number(gpio));
if(gpio_addr == MAP_FAILED)
{
printf("Unable to map GPIO : %s\n",strerror(errno));
close(fd);
return NULL;
}
close(fd);
return gpio_addr;
}
然后我在另一个 .c 文件中调用此函数以获取 gpio_addr
的值并使用它来操作 GPIO,它工作正常但我不确定 gpio_addr
将有效。gpio_addr
给出的地址是否始终有效?或者我应该在一段时间后调用另一个 mmap
吗?谢谢。
最佳答案
您不需要更新映射。它将在调用过程中保持有效,直到您明确取消映射(或过程结束)。
关于c - Linux 中 MMAP 值的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25944669/
我正在开发一个使用多个 turtle 的滚动游戏。玩家 turtle 根据按键命令在 Y 轴上移动。当危害和好处在 X 轴上移动时,然后循环并改变 Y 轴位置。我尝试定义一个名为 colliding(
我不明白为什么他们不接受这个作为解决方案,他们说这是一个错误的答案:- #include int main(void) { int val=0; printf("Input:- \n
我正在使用基于表单的身份验证。 我有一个注销链接,如下所示: 以及对应的注销方法: public String logout() { FacesContext.getCurren
在 IIS7 应用程序池中有一个设置 Idle-time out 默认是 20 分钟,其中说: Amount of time(in minutes) a worker process will rem
我是一名优秀的程序员,十分优秀!