embedded-linux相关内容

将u-Boot加载到内存中,而不是将其刷新

在基于ARM的自定义板上,每当对此进行更改时,我便将u-boot闪存到NAND. (放入一些调试语句/修改).有什么方法可以直接将uboot映像加载到RAM内存中,而不是每次都刷新它吗? 对于linux内核映像,我确实将其加载到内存中,并使用bootm启动该映像.同样,对于u-boot,我正在尝试.请提供您的建议. 解决方案 飞思卡尔的某人已经为其P1022DS评估系统(以及其他一些 ..
发布时间:2020-05-01 10:59:29 服务器开发

如何找到哪个Yocto Project配方填充了图像根文件系统上的特定文件

我在Yocto Project上做了很多工作,一个共同的挑战是确定在rootfs上包含文件的原因(或从什么配方).这是希望可以从构建系统的环境log&中得到的东西.元数据.理想情况下,一组命令将允许将文件链接回源(即配方). 我通常的策略是对元数据(例如grep -R filename ../layers/*)执行搜索,并在互联网上搜索所述文件名,以查找可能负责任的食谱的线索.但是,这并不总 ..
发布时间:2020-05-01 10:56:54 服务器开发

可视化Linux内核使用的设备树文件(dtb)的工具?

我正在寻找一种可以图形化表示Linux内核中使用的硬件设备树的工具.我正在尝试了解特定ARM芯片组的Linux内核.这将是一个非常有用的工具. 解决方案 您可以尝试组件检查器工具. 它是 QorIQ配置套件的一部分 ,它是Eclipse的插件. 下载 这里 . (需要注册.可以免费下载.) 就我个人而言,大部分时间我都在cmd线上,并且非常沉迷于vi,我发现只要 dts ..
发布时间:2020-05-01 10:56:44 服务器开发

为嵌入式Linux设备实现更新/升级系统

我有一个运行在嵌入式Linux设备上的应用程序,并且不时更改软件,有时甚至更改根文件系统,甚至安装的内核. 在当前更新系统中,仅删除旧应用程序目录的内容,并在其上复制新文件.对根文件系统进行更改后,新文件将作为更新的一部分提供,并且只需在旧文件上进行复制即可. 现在,当前方法存在一些问题,我正在寻找改善情况的方法: 用于创建文件系统映像的目标的根文件系统未版本化(我认为我们甚至没 ..
发布时间:2020-05-01 10:38:13 服务器开发

从内核空间关闭(嵌入式)Linux

我正在为Olinuxino(基于ARM9的平台)开发2.6.35内核的修改版本.我正在尝试修改电源管理驱动程序(特定于体系结构的部分). 处理器是飞思卡尔i.MX23.该处理器具有一个称为"PSWITCH"的“特殊"引脚,该引脚触发由电源管理驱动程序处理的中断. 如果按下该开关,系统将进入待机状态.这是通过在驱动程序中调用pm_suspend(PM_SUSPEND_STANDBY)来完成的. ..
发布时间:2020-05-01 09:51:58 服务器开发

在Linux中什么是链式irq,何时需要使用它们?

什么是链接IRQ? chained_irq_enter和chained_irq_exit的作用是,因为在产生中断之后,IRQ线被禁用,但是chained_irq_enter正在调用与屏蔽中断相关的函数.如果该行已被禁用,为什么要屏蔽该中断? 解决方案 什么是链式irq? 在父设备(中断控制器)的IRQ处理程序中,有两种方法可以为子设备调用中断处理程序. 受束缚的中断: ..

Intel Atom板上的spidev Linux驱动程序

我正在Linux上在控创基于Atom的SMARC-sXBTi板上开发SPI. 控创提供了Yocto BSP,但它不包含SPI驱动程序. 我重建了带有SPI支持的Linux.我可以在lspci和sysfs中看到SPI控制器,这些SPI PCI设备已绑定到pca2xx_spi_pci驱动程序. 据我了解,这是一个平台驱动程序,它不公开用户模式API,我需要spidev才能通过/dev ..
发布时间:2020-05-01 09:13:31 服务器开发

如何获取使用insmod插入的内核模块的地址?

我想知道内核模块的地址.实际上,从堆栈跟踪中可以看出,崩溃是由内核模块触发的(系统启动后已被破坏).我手动安装了几个模块.因此,我需要检测其中的哪个模块触发了崩溃.请让我知道如何获取使用insmod加载的每个模块的地址. 解决方案 cat /proc/modules应该为您提供加载位置的粗略指南.通过查看/proc/kallsyms,您可能会更多地了解内核崩溃的确切位置. ..

如何在Linux内核模块中添加定期定时器回调

我正在研究一个Linux内核模块,该模块注册一个来自定制板的中断的回调,并将接收到的数据放入char设备接口后面的队列中,以供应用程序处理.即使没有来自板上的中断,该模块也需要不断地监视和测量来自板上的中断和数据,因此它具有另一个根据时间触发的回调. 当前实现使用RTC中断作为恒定定时器源.我禁用内核RTC驱动程序(CONFIG_RTC_DRV_CMOS)并请求IRQ 8,并将计时器回调作为 ..

什么是Linux irq域,为什么需要它们?

什么是irq域,我阅读了内核文档( https://www.他们说: 注册为唯一irqchips的中断控制器的数量 显示出上升的趋势:例如,不同类型的子驱动程序 例如GPIO控制器避免重新实现相同的回调 通过对中断机制进行建模来将其作为IRQ核心系统 处理程序作为irqchips,即实际上是级联中断控制器. 如何将GPIO控制器称为中断控制器? 解决方案 什么是linux ..

用户空间与内核空间驱动程序

我正在寻找编写PWM驱动器.我知道我们可以通过两种方式控制硬件驱动程序: 用户空间驱动程序. 内核空间驱动程序 如果通常(不考虑PWM驱动器的情况),我们必须决定是使用用户空间驱动程序还是内核空间驱动程序.那么除了这些之外,我们还必须考虑哪些因素? 用户空间驱动程序可以直接mmap()/dev/mem内存到其虚拟地址空间,而无需上下文切换. 用户空间驱动程序无法实现中断处理程 ..

/proc/iomem的内容

1)是否可以访问/proc/iomem中未定义的物理地址? 2)如果设备的物理地址范围未出现在/proc/iomem中,是否表示该设备尚未被使用/初始化? 解决方案 1)是否可以访问/proc/iomem中未定义的物理地址? 是的 假定内存映射所有直接连接的外围设备的ARM处理器,驱动程序可以执行ioremap()操作以将物理内存映射到虚拟内存以进行访问. 但是正确编写 ..

内核函数asm_do_IRQ()中的irq与我在模块中请求的irq不同

我用cortex-A9开发板做了一些实验.我使用gpio_to_irq()来获取一个irq num,然后我请求了irq并编写了一个小驱动程序,在syslog中为196.我在asm_do_IRQ中添加了一些printks.当我触发gpio中断时,驱动程序工作正常,但是asm_do_IRQ中的irq num为62.为什么irq号码与我要求的号码不同?驱动程序如下: #include ..

使用设备树中的信息注册平台设备

我正在将Petalinux用于Xilinx Zynq应用程序,并且是内核驱动程序开发的新手. 我为AXI FIFO接口的平台驱动程序创建了一个内核模块.似乎可以使用.of_match_table从设备树中识别设备,因为我可以看到cat /proc/iomem保留的正确内存空间. 如果我搜索驱动程序名称xxx,我会得到 ./lib/modules/4.4.0-xilinx/extr ..