zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

编译成功了,运行为什么会失败_如何编译内核

内核 如何 运行 为什么 编译 成功 失败
2023-06-13 09:13:00 时间

大家好,又见面了,我是你们的朋友全栈君

1:首先在内核文件夹当中选择编译配置文件

arch/arm/configs下选则davinci_dm368_ipnc_defconfig_nand(nandflash启动),davinci_dm368_ipnc_defconfig_nfs(nfs文件系统启动)

2:make menuconfig

保存退出

3:make ARCH=arm CROSS_COMPILE=arm_v5t_le- uImage

直接编译过程中

出现No rule to make target `drivers/char/csl.o’, needed by `drivers/char/built-in.o’. Stop.

查看char目录下并无csl.c文件,所以必须把当前目录下的makefile中的编译项去掉

obj-y += csl.o obj-y += drv.o obj-y += edmak.o obj-y += irqk.o obj-y += dm365mmap.o obj-y += cmemk.o

以上所列的文件都不存在,所以都要屏蔽掉。

出现的错误如下::::

如果选用

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-gcc uImage

则会出现drivers/net/davinci_emac.c: In function ’emac_enable_channel’: drivers/net/davinci_emac.c:4626:5: error: lvalue required as left operand of assignment drivers/net/davinci_emac.c:4637:5: error: lvalue required as left operand of assignment drivers/net/davinci_emac.c: In function ’emac_disable_channel’: drivers/net/davinci_emac.c:4703:5: error: lvalue required as left operand of assignment drivers/net/davinci_emac.c: In function ’emac_pkt_process’: drivers/net/davinci_emac.c:5262:8: error: lvalue required as left operand of assignment

((volatile struct ewrap_dm646x_regs)dev-> ewrap_regs->wrapper_646x_regs). C0_RXINTEN = (1 << channel);也就是提示左边的值不是合法的操作变量。

在查看ewrap_dm646x_regs为寄存器的变量,所以想到可能是选择的交叉编译工具链有问题。

就选用make ARCH=arm CROSS_COMPILE=arm_v5t_le- uImage 编译通过,并可正常使用

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170243.html原文链接:https://javaforall.cn