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 编译通过,并可正常使用