Articles of embedded

用XGrabServer抓取X服务器

在embedded式Linux系统中,我试图显示closures通知,应该在closures时覆盖其他窗口。 现在创build窗口不是问题,但可靠地显示窗口是。 X服务器或WM不知何故太忙,无法每次绘制通知。 考虑到我们有限的CPU功率,这并不奇怪。 所以,我想通过使用gdk_x11_grab_server()(在默认显示中调用XGrabServer)来抓取X服务器,我将使WM / X变得容易。 但是,我应该何时调用抓取函数? 如果在构build窗口之前调用窗口,在窗口暴露事件之前显示窗口或事件,则屏幕上不会显示任何内容(即使在空载testing中)! 该文件说: XGrabServer函数禁止处理请求,并closures所有其他连接而不是该请求到达的连接。 我想这意味着只有来自我的应用程序的请求应该被处理,但似乎并非如此,因为如果X被我的应用程序抓住,没有任何东西被绘制。 那么,如何抓住X服务器来实现想要的结果呢?还是完全是一个错误的工具,我误解了它的使用(或者试图使用它太高的级别来实际工作)。

多核处理器中基于轮询和中断的数据包处理方法

此查询与多核处理器中的数据包处理有关。 数据包处理可以在Linux或纯数据path中进行。 如果数据包处理应用程序在Linux上,那么它是真的,那么它必须是基于中断的数据包处理以获得高性能,但是如果数据包处理是纯数据path(没有Linux),那么应该使用轮询来获得更高的性能? 如果是,为什么/如何?

预计的杀戮持续时间和waitpid收割能力

我有一个Linux应用程序,必须用exec()函数之一产生一个subprocess。 如果subprocess尚未完成,那么应用程序必须在启动新进程之前终止先前的实例。 它是这样做的 kill(pid, SIGTERM); 我保持以前的实例和使用的PID waitpid(pid, &status, WNOHANG) 收获的过程。 似乎有时在发出kill调用和能够用waitpid获得进程之间有一个非常长的时间窗口(可能达到几百毫秒)。 什么可能导致这个? 我认为,除非儿童进程设置了一个信号手(这个不是),否则它将立即被杀死。 这是在一个200MHz的ARM9,但仍然…对我来说似乎很奇怪。

embedded式Linux编程入门套件

我想开始学习embedded式Linux开发(我不是C和Linux的初学者),我select这本书: http : //www.amazon.com/Embedded-Linux-Primer-Practical-Real-World/dp/ 0137017839 如果你有更好的select,请让我知道。 我想买一些硬件做一些练习,有什么build议吗? 谢谢你的帮助。

select()似乎不适用于TTY

我目前正在编写一个程序,需要通过UART接口与AT接口进行通信(操作系统是Linux)。 但是我在使用文件描述符的select()时遇到了麻烦。 出于某种原因,select不考虑文件描述符准备好阅读,但为了缩小这个问题,我使用了下面的程序。 int main() { char buffer[BSIZE]; fd_set rfds; int ret; struct termios cnf; struct timeval tv; fd = open("/dev/ttyO1", O_RDWR); // Have also tried to set fd = 0 for stdin, as a reference signal(SIGINT, sig_handler); tcgetattr(fd, &cnf); old = cnf; cfmakeraw(&cnf); tcsetattr(fd, TCSANOW, &cnf); while (1) { tv.tv_sec = 5; tv.tv_usec = […]

embedded式Linux PPC32dynamic内存检查工具?

系统只有128 MB内存,我无法成功运行valgrind,它只会耗尽内存,太慢,无法使用。 处理器也很慢。 在PPC32上有一个更简单的工具来检查资源非常有限的PPC 32的堆损坏/泄漏吗? 我想也许像libsegfault.so小可以用LD_PRELOAD,但检查malloc /免费问题?

如何在Linux中启动ARM编程?

我正在为我的项目使用PIC微控制器。 现在我想转移到基于ARM的控制器。 我想用Linux启动ARM(使用C)。 但我不知道如何开始使用Linux。 哪个编译器是最好的,我需要学习的东西就像很多混乱。 你们能帮我吗? 我的项目通常包括UART,IIC,LCD等等。 我没有使用任何RTOS。 你们能帮我吗? 对不起,我的英语不好

我怎样才能debuggingembedded式过程?

在arm + Linux平台上debugging进程时遇到问题: 这是一个使用CAPWAP协议的守护进程,因此它不断地与另一个远程进程通信。 当它出现分段错误时,我通常的debugging方法是通过printf添加一些日志输出,以查找进程崩溃的位置,但效率不高。 有没有其他的方法来debugging这个问题?

是否有任何副本更新替代命令?

我目前正在使用BusyBox v1.16.2, cp命令不提供更新选项: … -u, –update copy only when the SOURCE file is newer than the destination file or when the destination file is missing 有没有其他的select? 我想使用find –newer参数,但我想弄清楚如何做到这一点(经过几次尝试…)。 BusyBox v1.16.2 multi-call binary. Usage: cp [OPTIONS] SOURCE DEST Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY Options: -a Same as -dpR -R,-r Recurse -d,-P Preserve […]

保护RPi SD卡在每日电源周期内不被损坏

我将从我的问题开始,因为他们是一般的,并给出一些背景下面… 我的问题: 有没有办法保护SD卡免受意外断电损坏? – 我可以指定文件系统为只读,并为用户程序保留一个区域,并将其作为读写? 通过HDMI-to-DVI连接器连接到显示器的微控制器是否可以向显示器发送电源开/关命令? 任何参考这将不胜感激。 背景: 我有一个Raspberry Pi板 – 从SD的电源Linux启动并运行用户程序。 它连接到显示器,扬声器,GPIO和LED。 该项目要求所有的电力每天都被削减,以节省能源。 发生这种情况的几个月的结果是,SD卡变得腐败。 非常感谢您的帮助, 谢谢。