c语言中如何调用脚本
对于海思3518ev100只有一个物理接口,而这一个物理接口要实现对相机和sil9024进行初始化,再对相机进行初始化时是利用其复用功能i2c进行初始化的,而对9024初始化是利用gpio模拟i2c进行的,但是在进行相机初始化之后需要将i2c释放,然后设置成gpio进行模拟i2c,两者之间需要一定的时间与逻辑关系(就是在对相机进行初始化完成之后将i2c进行释放,设置为普通io,然后加载模拟i2c驱动和sil9024驱动)。
在我的代码中是这样写的:
/******************************************
step 4: start vi dev & chn to capture
******************************************/
system("/opt/ko/VioUse.sh");
sleep(5);
/******************************************
step 5: start VO SD0 (bind * vi )
******************************************/
对于程序中的VioUse.sh脚本就放在开发板/opt/ko/目录下。
下面就是VioUse.sh脚本的内容,如下:
#! /bin/sh
#rmmod
source ./pinmux_hi3518.sh bt1120 gpio_i2c > /dev/null
insmod extdrv/gpioi2c.ko
insmod extdrv/sil9024.ko norm=5 #720P@60fps
注意:这里直接这样写在/opt/ko/目录下可以单独加载,但是在程序中调用却出错,can’t open …,要这样写:
#! /bin/sh
#rmmod
cd /opt/ko/
source ./pinmux_hi3518.sh bt1120 gpio_i2c > /dev/null
insmod extdrv/gpioi2c.ko
insmod extdrv/sil9024.ko norm=5 #720P@60fps
在设置程序自启动的时候也是这样的,要将路径与执行脚本分两步写。