大家好,小弟现在正在学习嵌入式这一块,最近看到U-Boot,现在希望能在其中添加一条自己的命令,可是却遇到了这样的问题。
小弟所用的版本是1.3.3,算是比较新的版本。基本上是依照网上介绍的做法来添加的。可是把u-boot拷入系统后,我的命令可以正常使用,可是输入Help命令后,系统就死掉了,而且根本无法进入do_help()函数。继续试验发现,只要是Commamd.c中定义的命令都会出现这种情况,而且输入错误的命令后,没有提示,系统直接崩溃。
希望各位大哥能给解决下,现在初步感觉是_arm_boot_start和_arm_boot_end这两个变量,就是这里我不太理解,他们是定义在。lds文件中,会不会是编译的时候出了些问题呢?
谢谢大家,小弟初学嵌入式,希望各位多多关照。。。
你可以在common下自己编写一个**.c文件,在Makefile中添加这个文件的编译。这个命令就可以用了
谢谢楼上,现在我用的版本是1.3..,我就是按照上面的方法添加的,可是有上面的问题。
现在我对common中的makefile文件不是很懂,希望不吝赐教。
COBJS-$(CONFIG_CMD_PORTIO) += cmd_portio.o
COBJS-$(CONFIG_CMD_REGINFO) += cmd_reginfo.o
COBJS-$(CONFIG_CMD_REISER) += cmd_reiser.o
COBJS-$(CONFIG_CMD_SATA) += cmd_sata.o
COBJS-$(CONFIG_CMD_SCSI) += cmd_scsi.o
COBJS-$(CONFIG_CMD_SETEXPR) += cmd_setexpr.o
COBJS-$(CONFIG_CMD_SPI) += cmd_spi.o
COBJS-$(CONFIG_CMD_STRINGS) += cmd_strings.o
COBJS-$(CONFIG_CMD_TERMINAL) += cmd_terminal.o
COBJS-$(CONFIG_CMD_UNIVERSE) += cmd_universe.o
COBJS-$(CONFIG_CMD_USB) += cmd_usb.o
COBJS-$(CONFIG_CMD_XIMG) += cmd_ximg.o
COBJS-$(CONFIG_CMD_LCDCONTROL) += cmd_lcd.o
COBJS-y += cmd_vfd.o
COBJS-y += command.o
COBJS-y += console.o
我的问题是,COBJS-$(CONFIG_CMD_LCDCONTROL)是个什麽东西呢?和COBJS-y有什么区别呢?这个编译的命令应该放在哪呢?
$(CONFIG_CMD_LCDCONTROL)是个变量,就是CONFIG_CMD_LCDCONTROL定义的值,如果前面有定义CONFIG_CMD_LCDCONTROL = y,那就和COBJS-y一样,如果这个宏没定义,那么就不编这个.o,你可以在Makefile或config中定义这个宏。
COBJS-$(CONFIG_CMD_SATA) += cmd_***.o在Makefile中,前面的东是定义的宏,在common下建cmd_***.c文件。
回复六楼:
这是个宏我知道,前面只有这样的定义
#define CONFIG_CMD_LCDCONTROL
也就是定义上了,但没有“赋值",呵呵,这样说不太准确。但是它和y有什么关系呢,一头雾水。
请检查你的命令定义结构的 help 和 long help 的 \t \n 使用情况