最近在做摄像头的测试,谈一下如何在UBOOT里添加对OV9650寄存器操作的命令
首先,在UBOOT下添加命令。
这一块,网上讲的很多,我就简单的说一下步骤:
首先:在common文件夹下添加*.c文件,并按固定的格式书写程序。
其次:在common/Makefile文件下添加对自己创建的C文件的编译
最后:在include/config_cmd_default.h文件中添加自己的C文件的宏定义
具体操作,以我的CMOS文件为例:
1、创建文件cmd_cmos.c,由于是利用I2C总线及ov9650中的宏定义,所以头文件要包括<i2c.h>,<ov9650defs.h>,由于涉及到一些常用函数,所以最好把<command,h>及<common,h>添加到头文件中。然后套用固定的格式书写函数,例如:
int do_test(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
//i2c_write(0x60,4,1,80,1);
i2c_reg_write(0x60,5,0x55);
i2c_reg_write(0x60,6,0xaa);
printf("hello,word!/n");
return 1;
}
最后,添加
U_BOOT_CMD( cmos_test, 1,0,do_test, "test/n", "test/n", "test");
其中cmos_test为添加的UBOOT下命令,1,0,为参数信息,do_test为该命令要执行的操作,后面“test…”
为一些帮助信息。
2、在Makefile文件中添加编译信息
COBJS-$(CONFIG_CMD_CMOS) += cmd_cmos.o
3,由于在IM25的配置文件中引用了config_cmd_default.h,所以,直接在该文件中进行宏定义就行了
#define CONFIG_CMD_CMOS
4、然后编译就可以了,,make clean—-make mx25_3stack_config —–make.
2010-08-29 / 7:31 pm by: yangzj
EMSYM 昂信科技 苏州市嵌入式系统重点实验室