最近在做摄像头的测试,谈一下如何在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.