embedded-linux相关内容
我的理解是,对于 ARM,内核引导命令行一般有三个来源: 在内核配置中作为 CONFIG_CMDLINE 给出的那些 引导加载程序传递的那些(通常是 ARM 处理器上的 U-Boot) 那些包含在设备树中的,在 selected/bootargs 下使用哪一个取决于内核配置参数.我的问题是如何使用内核配置在这些选项之间进行选择? 一个可以附加到另一个,即我们可以使用 CONFIG_
..
我正在编译 Compiling QEMU for ARM.参考以下链接:--http://opensourceforu.efytimes.com/2011/06/qemu-for-embedded-systems-development-part-1/ 我正在使用以下下载:-- http://download.savannah.gnu.org/releases/qemu/qemu-0.
..
我必须将我的 GSM 模块与基于 ARM9 的 AM1808 连接起来. 我已将所有 GPIO 引脚分配给 Da850.c 以及 mux.h 文件.我成功创建了一个 uImage 并将该图像插入到我的闪存中. 我需要处理来自用户应用程序的一些 GPIO. 我知道我们可以从 Kerel 空间处理 GPIO,但我需要从用户空间处理. 例如,我为 GSM 模块分配了一个用于电源键
..
我正在尝试使用 AppWeb,我编写了一个非常简单的程序将 AppWeb 嵌入到我的应用程序中,它使用 AppWeb 库中的一个函数. #include int main(int argc, char** argv){返回 maRunWebServer("appweb.conf");} 不知道什么时候用gcc(或cc)编译,编译成功.但是,当我交叉编译到 Arm 架构时,一直出错.这是我的 M
..
我已经建立了一个模拟 vexpress-a9 机器的 QEMU 虚拟机.我使用 buildroot 创建了 initrd 系统,并且使用了 buildroot 下载的 codesourcery 交叉编译器作为编译 Linux 内核的设置的一部分.这就是我调用 qemu 的方式 qemu-system-arm -m 512 -M vexpress-a9-dtb linux-4.4.192/ar
..
我从 arm 的设备驱动程序开始......我看到每个处理程序提到 --- __attribute__((interrupt( irq ))) -.我很困惑这个属性如何放置调用我们的驱动程序..?? arm 的 IRQ 有以下向量地址--- 0x00000018 (或 0xFFFF0018)因为同一行上可以有许多中断处理程序.假设我们有 4 个设备驱动程序,每个驱动程序都有自己的 IRQ 需
..
我需要从内核中保留一个物理连续 RAM 的大缓冲区,并能够保证缓冲区将始终使用特定的硬编码物理地址.该缓冲区应在内核的整个生命周期内保留.我编写了一个 chardev 驱动程序作为访问用户空间中该缓冲区的接口.我的平台是一个 ARMv7 架构的嵌入式系统,运行 2.6 Linux 内核. Linux 设备驱动程序,第三版的第 15 章对该主题有以下说明(第 443 页): 保留顶部 R
..
我能够执行系统调用调用并在内核中进行处理.但我还不清楚一些事情.进入 swi 例程后,内核会保存用户模式在堆栈上注册.问题是—— 是谁的筹码?(因为 swi 处理和相应的系统调用例程需要堆栈帧来处理) 如果是Kernel自己的栈,从哪里得到栈分配..?它会开始使用当前的堆栈吗?如果是,那么 current 可以是当时内核中可能正在执行的任何进程.这不会耗尽当前的堆栈吗? 如果它在
..
我想像开发一些设备驱动程序等一样学习它,并为此使用 QEMU,因为我没有像 beagle 板这样的 ARM 硬件板.大家有什么建议?我可以使用 Qemu 模拟器在 ARM 目标上学习 Linux 内核吗?或我应该尝试的任何其他选择? 解决方案 这取决于你想学习什么:硬件还是软件.如果您真的想尝试使用不同的 GPIO 输出来实现伺服电机控制、LED 灯闪烁和显示等功能,那么便宜的板(例如,R
..
我一直在处理 ARM 上的 Linux 中断: request_irq() 可用于注册中断. 在单个中断线上,您可以使用 SHA_SHIRQ 注册多个中断,即正常的 IRQ. Linux 是否允许在特定中断线上注册多个 SA_INTERRUPT ? 也就是说,我们可以为 ARM 快速中断 或 FIQ 注册多个中断处理程序吗? 解决方案 与 IRQ 一样,FIQ 也有一个
..
Linux 支持运行 32 位应用程序,只要 内核启用CONFIG_COMPAT 硬件支持 AArch32 我假设 32 位应用程序必须在 arm AArch32 执行状态下运行,并且环境是否有 32 位应用程序和 64 位应用程序. 32位应用进程->arm状态为AArch32 64 位应用进程和内核 -> arm 状态为 AArch64 正确吗? 如果是这
..
我需要在嵌入式系统上显示图像.板卡配置如下: 它是 AT91sam9263-EK,上面运行着 Linux 2.6.20 内核.有没有这个板子的图像处理库.处理器是ARM926EJ-S. 谢谢大家 解决方案 如果在 Linux 操作系统中没有激活帧缓冲区,我知道它在 Linux4Sam.您可以随时尝试通过发出命令 cat/bin/sh > 来激活它./dev/fb0;屏幕上应
..
我一直在尝试在 评估工具包用于飞思卡尔的ARM i.MX28,将 Freescale ARM 层用于OpenEmbedded-Core.不幸的是,我找不到基本的“入门"指南(尽管有一个 Yocto 入门指南).不幸的是,我无法“开始",无法成功启动到主板调试串行端口上的基本命令提示符. 这是我能够拼凑起来的东西,并且到目前为止我已经设法做到了. 获取来源 mkdir -p oe-co
..
在开发嵌入式 Linux 软件以在 I2C 总线上进行通信时,有很多使用 i2c_smbus_ 函数的参考资料.当 i2c_smbus 函数(例如 i2c_smbus_read_word_data)在软件项目中被引用时,会在编译. 对以下头文件的调查表明缺少大多数i2c_smbus 函数定义. /usr/arm-linux-gnueabi/include/linux/i2c.h /u
..
总结 我目前正在使用一些用于定制板的定制驱动程序编译 Linux 内核(内核、模块和 DTB).有时我会编译内核并意识到 DTB 文件中的兼容性字符串不是自定义驱动程序要查找的内容.现在,我可以解决此问题的唯一方法是修改 DTS 或内核驱动程序,使字符串匹配,然后再次重新编译内核.有没有办法可以只编辑 DTB 文件来更新兼容性字符串? 失败的尝试 我已经能够使用以下命令将 DTB
..
我正在寻找一种工具,它可以以图形方式表示 linux 内核中使用的硬件设备树.我正在尝试了解特定 arm 芯片组的 linux 内核.这将是一个非常有用的工具. 解决方案 您可以试试组件检查器工具. 它是 QorIQ 配置套件的一部分 这是 Eclipse 的插件. 下载在这里.(需要注册.免费下载.) 就我个人而言,因为我大部分时间都在 cmd 行上,并且非常沉迷于 v
..
我正在做一个需要在 Linux 中处理中断的项目. 我使用的板子是 ARM9Board 基于三星的 s3c6410 MCU(arm 11 处理器),具有以下 I/O 接口: 如图所示,我有用于外部中断的 EINTx 引脚和作为 GPIO 引脚的 GPxx 引脚,我不介意使用它们中的任何一个,但我没有它们的编号! 对于 EINTx 引脚: 当我打电话 int request
..
我尝试在 Ubuntu 11.10 上的 Scratchbox 中为 arm 编译 mono.但是当我进行安装时,我收到一条错误消息. [sbox-ARMEL:~] ./configure --enable-minimal=profiler,debug,logging,soft_debug --with-tls=--with-tls=__thread --with-monotouch=no --
..
我们有一个嵌入式应用程序,现在它需要保存和重新加载其状态.就像在 PC 游戏中一样,您必须在出去呼吸新鲜空气之前保存它.该产品本质上是安静的进化,没有适当的设计,因此无法识别要保存的数据. 软件是用 C 语言编写的,所以所有数据都有固定地址(.data 段),它也是确定性的,没有动态内存分配.所以理论上我会在文件中备份这个数据段,并在重新启动应用程序时从文件中更新它.这种方法可能会保存比所需
..
我按照这篇文章打印堆栈跟踪 如何在我的 gcc C++ 应用程序崩溃时生成堆栈跟踪.它在 x86 linux 中运行良好.谁能教我如何让它在 arm-linux 上工作? 我使用的是 arm-linux-gcc 4.4.3. [root@FriendlyARM/]# ./test1错误:信号 11:[0x0] 在 x86 中 mickey@mickeyvm:~/Desktop/work
..