1. 程式人生 > >IoT-Camera學習筆記之初識IoT-Camera(二)

IoT-Camera學習筆記之初識IoT-Camera(二)

5.bin檔案燒寫執行

剛拿到手的IOT-Camera開發板是沒有燒寫攝像頭韌體的,所以我們要先刷機!!!
最新版本的Firmware已經支援3種不同的刷機方式。

5.1.更新韌體方式1:手工TF卡刷機

1)Step1:將camera studio編譯完成後的rtthread.bin複製至TF卡根目錄,插入IoT-Camera核心板。
2)Step2:將USB插入電腦後,開啟串列埠終端,波特率為115200,本人使用的是SecureCRT。在顯示”Hit any key to stop autoboot”倒計時為0前,按任意鍵進入uboot命令列模式。

3)Step3:選擇啟動方式:IoT-Camera可以通過2種不同的啟動模式啟動
a)啟動方式1:將rtthread.bin從TF複製至內部flash,每次從內部flash啟動IoT-Camera,每次更新韌體都需要手工進uboot輸入命令。(也太麻煩了吧!!!)
將TF卡中的rtthread.bin載入到0xA0000000記憶體地址中
fatload mmc 0 0xA0000000 rtthread.bin
將映象檔案燒錄至 Flash 中(從 4M 位置,燒錄 2M 資料)
sf probe 0
sf erase 400000 200000
sf write a0000000 400000 200000
設定 U-Boot 啟動引數並儲存
set bootcmd 'sf probe 0; sf read a0000000 400000 200000; go a0000000'
save
重新啟動
reset

可以看到,程式已經正常執行
b)啟動方式2:從TF卡啟動IoT-Camera,uboot自動讀取rtthread.bin檔案
在uboot中修改啟動引數
set bootcmd fatload mmc 0 0xa0000000 rtthread.bin\; go 0xa0000000
儲存uboot配置
save
重新啟動
reset
兩種啟動方式比較:
1.啟動方式1適合正式生產的時候使用,在程式除錯階段並不合適。
2.啟動方式2會在啟動時讀取rtthread.bin增加啟動時間,但適合程式除錯。
3.在下面的更新方式中會經常用到,所以推薦使用啟動方式2。

5.2.更新韌體方式2:通過wget下載rtthread.bin至TF卡並在TF卡上執行

更新韌體方法1只適合的IoT-Camera第一次刷機使用或者由於程式出錯無法正常啟動時使用!如果每次更新程式都需要去通過TF卡在電腦上覆制bin檔案那是非常麻煩的!那我們來試試方法2吧!
1.2.3.4.5.5.1.5.2.1)Step1格式化分割槽:這個很重要哦!否則rtthread系統訪問不了TF卡(step1只需要執行一次就可以了)
a.韌體執行起來後,需要格式化rootfs分割槽。輸入:
mkfs rootfs 後重啟

b.建立sdcard目錄.輸入:
mkidr sdcard 後重啟

這樣,rtthread系統能夠自動裝載 flash 上的 rootfs 分割槽到’/’根目錄,而把 TF 卡裝載到’/sdcard’目錄中。可通過ls命令檢視當前目錄

1)2)Step2啟動web_server
c.如果電腦上沒有安裝python2.7,可先安裝,安裝完成後,在windows命令列輸入:
python c:\iot_camera\firmware-20161002\websrv.py啟動web_server

如果不想安裝python2.7,camera_studio自帶了python2.7,在windows命令列輸入:
cd c:\iot_camera\camera_studio\tools\Python27
python.exe c:\iot_camera\firmware-20161002\websrv.py

啟動完成後,在瀏覽器輸入http://localhost:8000/檢視是否成功執行。
注:以上2種方式啟動的web_server的根目錄不一樣,這個對於我們下面使用wget獲取檔案位置有很大關係(本人使用的是自己安裝python2)
3)Step3將IoT-Camera連線網路:
使用wifi join ssid password命令,ssid和password為需要配置的網路名和密碼。

連線成功!並可使用ifconfig檢視ip確認是否正確連線

4)Step4使用wget命令下載
在電腦端先將rtthread.bin複製至對於web_server根目錄下,在msh命令列輸入:
wget http://192.168.31.166:8000/rtthread.bin /sdcard/rtthread.bin
如配置及輸入命令正確,wget將開始從web_server下載rtthread.bin檔案

下載完成!!!重啟iot-camera就可執行新程式。


可修改Makefile檔案,每次編譯完成後自動將rtthread.bin複製至web_server根目錄(目錄請自行修改)


5.3.更新韌體方式3:通過rboot啟動並下載rtthread.bin至TF卡並在TF卡上執行

更新韌體方式2在程式正常執行後,可通過wget獲取rtthread.bin至TF卡完成更新。但如果使用者修改程式後無法正常執行wget呢?只能用方式1了吧???當然還有更便捷的方法,通過rboot啟動IoT-Camera。IoT-Camera啟動流程:

我們來試試用rboot啟動系統,更新系統吧!

1) Step1:將rboot.bin rboot.sh init.sh rtthread.bin4個檔案複製至TF卡根目錄。檔案下載地址為:網盤http://pan.baidu.com/s/1pLguWt1的prebuilt_demo目錄下密碼:6c33

1) Step2:按照前章描述啟動IoT-Camera並進入uboot命令列,輸入如下命令:

設定執行地址

setenv bootcmd fatload mmc 0 0xa0200000 rboot.bin\; go 0xa0200000

設定 uboot 的提示計數等待為 1

setenv bootdelay 1

 儲存設定

save

 重啟

reset

這時候就可以看到rboot已經正常工作了


rboot.sh指令碼是rboot啟動提示計數器減到0後自動執行的指令碼檔案。在rboot.sh中可以指定下一個啟動的rt_thread韌體位於哪裡。如:
載入TF卡根目錄下的rtthread.bin
boot /rtthread.bin
載入web_server伺服器上的韌體
boot http://192.168.31.166:8000/rtthread.bin
為了讓rboot能上網,需要先在rboot下先進行wifi配置;輸入:wifi cfg ssid passwd。完成wifi配置後,rboot會在提示計數器時試圖關聯到本地wifi網路中,以便執行rboot.sh指令碼時,能儘快下載到更新需要的韌體
本人使用的是載入TF卡根目錄下rtthread.bin這種方式,如需要更新程式直接進rboot命令列輸入:boot http://192.168.31.166:8000/rtthread.bin;這樣可提高iot-camera載入啟動速度

下載完成後,rboot會自動

6.視訊測試

在iot-camera正常啟動rt-thread系統後,可以使用help命令,或tab鍵獲得當前rt-thread支援的命令列。

具體該指令如何使用,可輸入該指令:

1.將iot-camera連入wifi。聯網操作請參照前述操作。
2.在msh命令列中輸入 mjpeg start 啟動mjpeg_server,預設埠為80

3.啟動成功後,在瀏覽器中輸入當前iot-camera的IP地址,就可看到視訊流。

並可在msh中斷上看到client連線狀態

注: 在 PC 上請使用 Chrome 或 firefox 瀏覽器來開啟視訊, IE 不支援這種方式