前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >编译成功了,运行为什么会失败_如何编译内核

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

作者头像
全栈程序员站长
发布2022-09-21 10:09:02
6730
发布2022-09-21 10:09:02
举报
文章被收录于专栏:全栈程序员必看

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档