草庐IT

EMBEDDED

全部标签

Linux 输入设备事件,如何检索初始状态

我正在使用gpio-keys设备驱动程序,用于处理运行Linux的嵌入式设备中的某些按钮。用户空间中的应用程序只需打开/dev/input/eventX并循环读取输入事件。我的问题是如何获得按钮的初始状态。有一个ioctl调用(EVIOCGKEY)可用于此,但是如果我先检查它然后开始从/dev/input/eventX读取,则没有保证状态在两者之间没有变化的方法。有什么建议吗? 最佳答案 evdev设备queueevents直到你read()它们,所以在大多数情况下打开设备,执行ioctl()并立即开始从它读取事件应该工作。如果驱动

linux - 直接访问 linux framebuffer - copyarea

我想在嵌入式linux应用程序中的帧缓冲区上快速移动一个矩形。我发现函数cfb_copyarea可能很有用。但是我在/dev/fb设备上找不到任何ioctl来调用该函数。还是可以直接调用这个函数? 最佳答案 这是初始化和关闭FrameBuffer的代码classCFrameBuffer{void*m_FrameBuffer;structfb_fix_screeninfom_FixInfo;structfb_var_screeninfom_VarInfo;intm_FBFD;intInitFB(){intiFrameBufferSiz

linux - 直接访问 linux framebuffer - copyarea

我想在嵌入式linux应用程序中的帧缓冲区上快速移动一个矩形。我发现函数cfb_copyarea可能很有用。但是我在/dev/fb设备上找不到任何ioctl来调用该函数。还是可以直接调用这个函数? 最佳答案 这是初始化和关闭FrameBuffer的代码classCFrameBuffer{void*m_FrameBuffer;structfb_fix_screeninfom_FixInfo;structfb_var_screeninfom_VarInfo;intm_FBFD;intInitFB(){intiFrameBufferSiz

linux - 版本控制软件将保留 POSIX FS (ext3/ext4) 中的所有文件及其元数据

场景我正在为某些嵌入式Linux设备开发RootFS。它位于主机上,通过NFS导出,我的开发板安装在“/”下。我需要的工作流程是:-与其他开发人员分享我的FS(他们有自己的开发板)-将我的RootFS备份到某个“服务器”-将我的RootFS部署到闪存盘或其他媒体上-跟踪我的根FS中特定文件的更改、分支和merge、回滚等。伙计们,这在我看来是一个版本控制场景,我什至使用git。问题如您所知,Git(还有svn/mercurial/bazaar!)1)不存储特殊文件(/dev下的设备文件等)2)不存储文件所有者和权限。我想按原样存储所有内容。问题:您知道一些可以完成这项工作的VCS吗?或

linux - 版本控制软件将保留 POSIX FS (ext3/ext4) 中的所有文件及其元数据

场景我正在为某些嵌入式Linux设备开发RootFS。它位于主机上,通过NFS导出,我的开发板安装在“/”下。我需要的工作流程是:-与其他开发人员分享我的FS(他们有自己的开发板)-将我的RootFS备份到某个“服务器”-将我的RootFS部署到闪存盘或其他媒体上-跟踪我的根FS中特定文件的更改、分支和merge、回滚等。伙计们,这在我看来是一个版本控制场景,我什至使用git。问题如您所知,Git(还有svn/mercurial/bazaar!)1)不存储特殊文件(/dev下的设备文件等)2)不存储文件所有者和权限。我想按原样存储所有内容。问题:您知道一些可以完成这项工作的VCS吗?或

c - 如何在C中找到挂载的U盘大小?

我有一个闪存驱动器设备(/dev/sda1)安装到嵌入式linux系统(内核2.6.23)上的/mnt。使用C如何计算驱动器的大小? 最佳答案 在Linux上,如果您不担心可移植性(C不了解驱动器,因此任何此类特定代码都不可移植),请使用statfs():structstatfsfsb;if(statfs("/mnt",&fsb)==0)printf("devicehas%ldblocks,each%ldbytes\n",fsb.f_blocks,fsb.f_bsize); 关于c-如何

c - 如何在C中找到挂载的U盘大小?

我有一个闪存驱动器设备(/dev/sda1)安装到嵌入式linux系统(内核2.6.23)上的/mnt。使用C如何计算驱动器的大小? 最佳答案 在Linux上,如果您不担心可移植性(C不了解驱动器,因此任何此类特定代码都不可移植),请使用statfs():structstatfsfsb;if(statfs("/mnt",&fsb)==0)printf("devicehas%ldblocks,each%ldbytes\n",fsb.f_blocks,fsb.f_bsize); 关于c-如何

linux - 从哪里开始学习 linux DMA/设备驱动程序/内存分配

我正在移植/调试设备驱动程序(由另一个内核模块使用)并面临死胡同,因为dma_sync_single_for_device()因内核oops而失败。我不知道该功能应该做什么,谷歌搜索也无济于事,所以我可能需要全面了解这些内容。问题是,从哪里开始?哦是的,如果相关的话,代码应该在PowerPC上运行(Linux是OpenWRT)编辑:最好是在线资源(书籍需要几天才能送达:) 最佳答案 在线:AnatomyoftheLinuxslaballocatorUnderstandingtheLinuxVirtualMemoryManagerLi

linux - 从哪里开始学习 linux DMA/设备驱动程序/内存分配

我正在移植/调试设备驱动程序(由另一个内核模块使用)并面临死胡同,因为dma_sync_single_for_device()因内核oops而失败。我不知道该功能应该做什么,谷歌搜索也无济于事,所以我可能需要全面了解这些内容。问题是,从哪里开始?哦是的,如果相关的话,代码应该在PowerPC上运行(Linux是OpenWRT)编辑:最好是在线资源(书籍需要几天才能送达:) 最佳答案 在线:AnatomyoftheLinuxslaballocatorUnderstandingtheLinuxVirtualMemoryManagerLi

linux - 在嵌入式系统上,您将内核控制台发送到哪里?

我正在开发一个嵌入式系统,该系统当前通过串行端口1上的控制台输出来引导linux(使用来自引导加载程序的控制台引导参数)。然而,最终我们将使用这个串口。内核控制台输出的最佳解决方案是什么?/开发/空?能否以某种方式将其放在pty上,以便我们有可能访问它? 最佳答案 如果您只想从控制台读取内核printk消息,而不是实际运行getty或shell,您可以使用netconsole。您可以向引导加载程序内核选项(或modprobenetconsole)提供以下内容:netconsole=4444@10.0.0.1/eth1,9353@10