IoT-Camera學習筆記之初識IoT-Camera(二)
阿新 • • 發佈:2019-02-20
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.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命令檢視當前目錄
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.bin這4個檔案複製至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載入啟動速度
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 不支援這種方式