c語言中指令碼呼叫
阿新 • • 發佈:2018-11-21
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 #[email protected]
注意:這裡直接這樣寫在/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 # [email protected]
在設定程式自啟動的時候也是這樣的,要將路徑與執行指令碼分兩步寫。