如上所述,dma引擎和dma-controller(关注linux)有什么区别?
linux dma引擎什么时候到位?这是一个特殊设备还是所有外围设备的一部分,它们支持dma?
浏览linux源码时,我找到了驱动程序ste_dma40.c.任何驱动程序如何使用此引擎?
KBUILD_DEFCONFIG_KMACHINE ?= defconfig_file
没有按我的预期工作。
我学到的第一课:defconfig != .config
arch/arm/config/xy_defconfig
Bare-Kernel-Build(不带 yocto):下面创建的新 defconfig 文件make savedefconfig
不等于该.config
文件。我假设 Linux 内核扩展了一些符号并创建了最终的.config
.
Yocto-Build:问题来了:Yocto 无法正确处理下面的 defconfig 文件arch/arm/config/xy_defconfig
。当使用 yocto 构建 linux 内核时,内核的大小是一半且无法启动。这是因为 yocto 不会扩展 .config 中缺失的符号,而 amake defconfig
会这样做。
你如何处理这个问题?
更新:
想出一个额外的make xy_defconfig
方法并创建正确的 .config 文件。这是一个丑陋的黑客,非常欢迎任何更好的想法。
将其添加到我的自定义linux-xy.bb
文件中。
KBUILD_DEFCONFIG ?= xy_defconfig
do_makedefconfig() {
oe_runmake -C ${B} ARCH=${ARCH} $KBUILD_DEFCONFIG
}
addtask do_makedefconfig after do_configme before do_compile
Run Code Online (Sandbox Code Playgroud)