问题标签 [embedded-linux]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 确定 CPU 利用率
是否有命令或任何其他方式来获取 Linux 中的当前或平均CPU 利用率(对于多处理器环境)?
我在一个小型系统中使用嵌入式 Linux。基本上,我需要确定 CPU 利用率,如果它很高,我可以将新进程转移到系统中的另一个控制器,而不是在可能忙于执行更重要进程的主处理器上执行。
这个问题不仅仅是优先处理进程,另一个控制器可以充分处理新进程,只是当主处理器不忙时,我希望它来执行。
c++ - ALSA:循环声音问题
我编写了一个小程序,在嵌入式 Linux 板上测试 ALSA 库。程序配置 ALSA,播放单个声音,然后等待 1 分钟后退出。
这是我观察到的:播放声音后,有静默停顿,然后再次播放声音。我 100% 肯定该程序本身不会再次播放它。
为了进一步研究,我做了另一个实验:在同一块板上使用 aplay,我播放了不同的声音。这工作得很好。接下来,我再次执行了我的 hello world 程序。这一次除了周期性的声音,我听到了aplay播放的其他声音。
我怀疑 alsa-lib 或声音驱动程序中的缓冲区没有被清除。或者我可能没有正确配置软件参数。snd_pcm_dump 吐出以下信息:
我还应该提到,我没有看到任何这些是我在 Ubuntu 下运行的。
embedded - 嵌入式 Linux 从 USB 端口读取和写入视频
我有一个嵌入式 Linux 项目,我需要通过 USB 端口读取视频,对该视频进行一些修改(例如压缩),然后最好通过相同的 USB 端口将其发送回主机。如果我们可以发送命令来更改诸如从主机到设备的视频压缩级别等内容,这也是一个首选功能。
可以假设主机是运行某个版本的 Linux 的桌面,而实际执行此视频处理的设备是运行嵌入式 Linux 的 Gumstix。
我基本上不知道如何开始这个项目或在 Linux 中的输入/输出划分中研究什么。首先,是否可以通过同一个 USB 端口同时读取视频、写入视频和发送命令?视频比较小,尤其是经过设备压缩后,所以带宽不是问题。主要问题是知道从哪里开始这个项目的研究。有没有像 USB 的 TCP/IP 这样的东西,您可以在主机和设备之间打开多个连接来传输数据?
我们是否必须编写自己的 USB 设备驱动程序?开发我们自己的协议还是 USB 支持在同一个端口上做多个事情相对容易?
我应该开始研究 Linux 驱动程序、用户级编程和 API 还是 USB 协议?还是完全不同的东西?
我是一名高级计算机工程专业的学生,所以我的经验水平是 C、C++、Java、Verilog、TCL 等编程的混合体。几乎所有与套接字相关的编程都使用 Java(独立于操作系统)所以我真的不确定从哪里开始编写 Linux 应用程序来执行这样的任务。我在微处理器编程(AVR、coldfire)方面有相当多的经验,但是尽管已经接近我需要的东西,但它并没有真正帮助我弄清楚从哪里开始。
embedded-linux - 嵌入式 Linux - 连接时获取调制解调器的信号强度
我在嵌入式 Linux 中通过 PPP 运行 USB 单元调制解调器。当 PPP 连接不活跃时,我可以通过 minicom 使用 AT 命令连接到调制解调器并询问信号强度(AT+CSQ)。但是,当它处于活动状态时,这是不可能的。
在使用 PPP 连接时,有什么方法可以从 PPP 连接的 USB 蜂窝调制解调器中检索信号强度?我对 API 或任何其他可用方法持开放态度。
daemon - 嵌入式 Linux LED 闪烁守护进程:它存在吗?
我以前见过嵌入式板有一个像心跳一样闪烁的 LED,表明板仍在执行代码。我想在我正在研究的嵌入式 Linux 板上做类似的事情。鉴于这是一段相当琐碎的代码,在我看来,似乎有人已经为 Linux 编写了一个守护进程来执行此操作,但我无法找到任何证据。
请注意,OS X Server 的 heartbeatd 和 High-Availability Linux heartbeat 守护进程并不是我想要的——它们都通过 IP 网络或类似的方式协调系统可用性。
假设我正在寻找的东西不存在,我也对如何编写一个在最小化资源使用的同时切换 pin 的守护程序感兴趣。cron 以什么更新速率成为一个愚蠢的想法?
(如果出于某种原因这似乎相关,我也不想听到关于睡眠 MacBook Pro 上 LED 的滔滔不绝。)
谢谢。
c - busybox 中的 L_* 宏是什么?
我正在尝试交叉编译busybox,但在链接阶段我得到了“未定义的引用”。使用nm
时,库文件(在我的例子中是 libbb.a)中实际上缺少符号。查看源代码('busybox/libbb/xfuncs.c'),所有这些#ifdef L_
<function_name> 都围绕着有问题的函数. 有谁知道这些宏是什么?我通过源 grep 找不到它们的定义位置。
unit-testing - 在嵌入式设备中使用检查测试单元框架?
有没有人在需要交叉编译的嵌入式设备中使用 check 作为单元测试框架?
这甚至是一个好主意,还是我应该只使用其他东西(例如 embunit 或类似的东西)?
如果是这样,我应该如何编写 Makefile.ams 和 configure.ac?我一开始没有使用过自动工具,所以所有这些交叉编译的东西肯定无济于事......
我可以简单地跳过所有实际的配置检查,因为我只在一个或两个环境中编译,但我需要编译检查到目标吗?我无法从说明中了解如何将实际框架链接到我的测试代码。
我需要的最小文件是什么?这些示例完成了所有配置工作,但我不知道我可以遗漏什么。
c - 有没有办法阻止 sh/bash 执行命令替换?
从 C 程序中,我想以文件名作为参数调用 shell 脚本。用户可以控制文件名。C 类似于(省略初始化/错误检查):
目标设备实际上是一个嵌入式系统,所以我不需要担心恶意用户。显然,这将是 Web 环境中的攻击媒介。尽管如此,如果系统上有一个文件名,例如,其名称中包含反引号,则该命令将失败,因为 shell 将对名称执行扩展。有什么可以防止命令替换吗?
embedded-linux - arm 中 ulibc 的回溯
我想知道是否有任何移植可用于 uclibc in arm 的回溯实现,我可以在我的信号处理程序中使用它来调试分段错误。
我确实在这里遇到了一个有用的代码 ,并尝试在我的信号处理程序中使用它,但它在第一次检查时失败并从那里返回。
我还尝试了一个递归回溯函数,它简单地使用 (current_frame_p)-3) 递归,直到它为 NULL 并打印 (current_frame_p)-1)。这似乎也给我带来了问题。我得到的只是处理程序的地址和一些垃圾大地址(我假设它可能是信号地址)。但我不会超越这一点。我希望我的踪迹超越这一点。
崩溃的代码是故意编写的,用于调试取消引用和无效地址。
任何帮助都感激不尽。
非常感谢提前。
-凯沙夫
linux-kernel - linux内核中的函数调用者
有没有办法在linux内核中获取函数调用者?我知道__ func __返回正在执行的函数名。我正在寻找名为“ __ func __ ”的函数