embedded-linux相关内容
我按照一些文档通过 sdcard 在 ARM 板上启动嵌入式 Linux(例如:飞思卡尔 Vybrid 塔).文档中有构建uImage和将u-boot写入sdcard的步骤如下: sudo dd if=u-boot.imx of=/dev/sdX bs=512 seek=2mkimage -A arm64 -O linux -T 内核 -C 无 -a 0x81000000 -e 0x810000
..
在 ARM FIQ 中断上,我们保留了一些仅供 FIQ 使用的寄存器,这些是“保存状态"的便捷方式,例如 FIQ 调用之间的数据传输. 目前我正在从 FIQ 触发一些 GPIO 引脚,它按预期工作.在设置 FIQ 处理程序时,我将指针传递到数据寄存器,这些寄存器是用 ioremap 映射的.工作代码如下所示: //驱动初始化:静态字符* dout0;静态字符* din0;...静态 int
..
我在 ARM9 板上运行嵌入式应用程序,其中总闪存大小仅为 180MB.我能够运行 gdb,但是当我这样做时 (gdb) 生成核心转储 出现错误 警告:核心文件部分的内存读取失败,0x4156c000 处为 1048576 字节.警告:核心文件部分的内存读取失败,0x50c00000 处为 1048576 字节.保存的核心文件 core.5546程序正在运行.无论如何退出(并分离它)
..
我是嵌入式 Linux 开发的新手.我必须将 uboot 和自定义 Linux 发行版移植到新的基于 ARM 的主板上. 我们使用的 uboot (2009.08) 没有 Arch 和 DTS 文件夹.我想它是一个较旧的版本,它不使用 DTS 将硬件信息传递给内核(v 3.0).我已经阅读了很多关于 DTS 的信息,但是关于这种(过时的?)将硬件信息从 uboot 传递到我们正在使用的内核的
..
我必须使用 linux 看门狗驱动程序 (/dev/watchdog).效果很好,我写了一个这样的角色: echo 1 >/开发/看门狗 看门狗启动,大约1分钟后,系统重新启动. 问题是,如何更改超时时间?我必须在驱动程序中更改时间间隔? 解决方案 请阅读Linux 文档.从用户空间更改超时的标准方法是使用ioctl(). int timeout = 45;/* 以秒为单位的
..
我想了解矢量页面如何映射到 0xffff0000.我指的是 3.14 内核. 根据 early_trap_init() 中的评论 traps.c 向量从 entry-armv.S 复制到向量页面. 似乎 early_trap_init() 是从 devicemaps_init() 调用的 mmu.c. 在调用 early_trap_init() 之前,它正在使用 early_al
..
目标:模拟 Qemu 特别支持的“sabrelite : Freescale i.MX6 Quad SABRE Lite Board (Cortex A9)"(执行 'qemu-system-arm -M ?' 它显示出来). Qemu 版本:2.10.1(主机:fedora-27). 我已经成功地交叉编译并构建了一个 4.1.46 Linux 内核(使用了 imx_v6_v7_def
..
在过去的三天里,我一直在尝试使用我的 Win7 32 位机器上的虚拟 Ubuntu (12.04) 和 CodeSourcery Sourcery 为 TechNexion Blizzard 板(运行未知版本的 Angstrom)交叉编译 Mono 2.11.4G++ ARM 工具链,但很少/没有成功.我已经学习了网络上的每个教程,但它不起作用. CodeSourcery Sourcery
..
我将设置构建环境,为 AT91SAM9X25 开发板制作我自己的 linux 嵌入式系统.我正在使用 buildroot 来做到这一点.make 命令构建所有目标,首先构建工具链,然后打包,然后是 rootfs 和 rootfs 的图像(tar、cpio ...).要重建 rootfs,我通常使用 make clean 然后 make.make clean 命令删除所有工具链,包括工具链.
..
我看到 valgrind 有一个 ARM7 目标,但我发现有关 valgrind 是否支持 ARM9 的信息相互矛盾.我正在使用的 ARM9 目标正在运行 linux. 有没有人特别成功地在 ARM9 目标上使用 valgrind?如果是这样,您可以提供的任何指示都会有所帮助,包括“您是如何构建它的?". 谢谢 -z 解决方案 Valgrind 在 ARM-v7(架构名称
..
我正在学习 linux 内核内部结构,在阅读“了解 Linux 内核"时,很多与内存相关的问题让我印象深刻.其中之一是,如果我的系统上仅安装了 512 MB 的物理内存,则 Linux 内核如何处理内存映射. 据我所知,内核将 0(或 16)MB-896MB 物理 RAM 映射到 0xC0000000 线性地址,并且可以直接对其进行寻址.因此,在上述情况下,我只有 512 MB: 内核
..
我正在运行 Ubuntu 12:04LTS 并安装了 arm-linux-gnueabi C 和 C++ 编译器.编译后的二进制文件不会在我的目标板上运行.看起来即使我指定了 cpu 和 arch,编译器仍然会为错误的 CPU 构建二进制文件.而不是 atm9tdmi 它构建和 7-A. 我做错了什么还是我应该配置什么?谢谢. ~/ArmTest$ arm-linux-gnueabi-g+
..
在 imx50 ARM 板上将大量数据 (3 MB) 从 uboot 传递到 linux 内核 2.6.35.3 时遇到一些问题.此数据在内核设备驱动程序探测函数中是必需的,然后应将其释放.首先 uboot 将数据从闪存加载到 RAM,然后使用 bootargs 为 linux 内核传递物理地址.在内核中,我尝试使用 arch/arm/kernel/setup.c 文件中的 Reserve_res
..
有没有人在没有scratchbox或qemu的情况下成功地在Linux下为ARM交叉编译mono? (可能使用 distcc 或一些交叉编译器工具链) 解决方案 我使用 CodeSourcery Lite 工具链在 Ubuntu 机器上安装了 Scratchbox 2,成功地交叉编译了 mono(2.0, 2.4, 2.6, 2.8, 2.10.1).我使用了 Mono 项目页面中的
..
我先说我不是该领域的专家,我的问题可能包含误解,在这种情况下,如果你纠正我并附上资源,我会很高兴,以便我了解更多细节. 我试图弄清楚系统总线以及移动设备中出现的各种设备(例如传感器芯片、wifi/BT SoC、触摸面板等)是如何被 CPU 寻址的(以及其他 MCU). 在 PC 世界中,我们有将命令/数据路由到设备的总线仲裁器,而且地址是硬连线在板上的(如果我错了,请纠正我).然而,在
..
我正在尝试在带有 i.MX6(CPU 内核是 ARM Cortex A9)的定制板上通过 U-boot 启动 Linux 我们似乎已经成功移植了 Das U-Boot(2009.08).但是在最后一条 U-Boot 消息中启动 Linux 失败:“正在启动内核..." 这是我的相关环境: bootargs=console=ttymxc1,115200 vmalloc=400M roo
..
__asm__ __volatile__ () 的基本作用是什么,“内存" 对 ARM 架构有什么意义? 解决方案 asm volatile("" ::: "memory"); 创建编译器级别的内存屏障,强制优化器不重新排序跨屏障的内存访问. 例如,如果您需要以特定顺序访问某个地址(可能是因为该内存区域实际上由不同的设备而不是内存支持),您需要能够将此告诉编译器,否则它可能只是优化
..
我正在为 Intel Edison 构建 Yocto 映像. 图像的一个组件是带有 Edison 特定补丁的 u-boot.默认情况下,Edison 的 UART 端口用于 u-boot 控制台.我想禁用此功能,但只能在串行接口上(u-boot 也侦听 USB 并且需要保留). 我主要关心的是 UART 端口上的“按任意键停止自动启动"功能.我需要这个端口来连接一个附件,它可能会在
..
我正在努力使用 yocto 构建自己的“嵌入式 linux".它基于带有 SAMA5D35 的 SAMA5D3x-MB + SAMA5D3x-CM(RONETIX).我有两个问题: 1.) 改变设备树 我基于以下条件构建图像:MACHINE ??="sama5d3xek" 生成过程后,我在部署目录中找到了 5D35 的两个设备树文件: zImage--4.1+git0+19
..
我维护了一个与 Dunfell 兼容的自定义 Yocto 元层.它支持基于 Microchip SAMA5D27 处理器的开发板.我在这一层中有几个 bbappend 文件,它们仅适用于来自 meta-atmel 和其他 Microchip 特定封装的文件. 现在,我想重用这个自定义元层的许多部分,并支持来自不同供应商的新处理器.我在我的层中创建了自己的新图像配方,其中不包含这些仅与 Mic
..