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

1.開發板介紹

1.1.概述

IoT-Camera是一款由開發RT-Thread操作系統的上海睿賽德電子科技有限公司推出的開源物聯網攝像頭開發板,採用RT-Thread開源實時操作系統,支持C/C++/lua編程開發,兼容Arduino,可通過Wi-fi將視頻數據傳輸至手機、平板等設備。
IoT-Camera購買地址:
https://item.taobao.com/item.htm?_u=o1m5ek5ce617&id=538501985648
RT-Thread是一款嵌入式實時操作系統,包含實時嵌入式操作系統內核及TCP/IP協議棧、文件系統、無線網絡棧、設備抽象層、存儲機制、算法、圖形庫、libc接口、POSIX接口等。RT-Thread源碼下載地址:https://github.com/RT-Thread/rt-thread。不熟悉RT-Thread開發的可先先登錄官網http://www.rt-thread.org/瞭解詳情。
RT-Thread最新版本的編程手冊下載地址:
http://www.rt-thread.org/download/manual/rtthread_manual.zh.pdf
請注意核心板的連接,正對方向看IoT-Camera開發板,天線朝上,TF卡由右邊插入;位於上半部分的是按鈕是Reset按鈕

1.2.硬件配置

CPU:採用富瀚微電子的FH8620。ARM1176JS內核,300MHZ主頻,集成128Mbits DDR
Wi-Fi:採用AP6181模組,支持802.11b/g/n ,支持station或軟AP模式
視頻:支持H.264 編碼和支持 JPEG/MJPEG 編碼
音頻:內嵌 Audio Codec (單聲道輸入和輸出),支持麥克風輸入
硬件接口:
一個 iic 接口
一組 SPI 接口
一個串口
六個 gpio 接口
三路 pwm 接口
一個 micro SD 卡插槽
兩路 ADC 輸入
LINE IN 與 LINE OUT

1.3.軟件功能

RT-Thread基本系統平臺,涵蓋:RT-Thread內核,SD卡上文件系統,TCP/IP協議棧
TFTP、web server方式更新固件;
Wi-Fi Station模式/AP模式(支持WEP、WPA/WPA2等加密方式);
攝像頭以720P方式錄像成H.264視頻並存儲到SD卡中;
攝像頭以720P方式錄像成H.264格式,並通過RTSP TCP或UDP方式通過wifi傳輸出去;
攝像頭以720P方式錄像成mjpeg視頻流,提供給瀏覽器查看;
攝像頭以720P方式錄像存儲到SD卡中(H.264格式),並提供一路720P子幀用於mjpeg方式供瀏覽器瀏覽
支持POSIX C/C++開發,支持LUA腳本
IoT-Camera軟件功能持續更新中,請關注官網發佈情況

2.開發環境配置

IoT-Camera採用camera studio集成開發環境。camera studio是由睿賽德爲IoT-Camera開發板專門開發的集成開發環境,基於eclipse定製,當前支持windows 32bit/64bit開發環境,請選擇對應版本下載。

2.1.下載

下載地址爲:http://pan.baidu.com/s/1pLguWt1 密碼: 6c33。下載後,請解壓至開發主機,特別注意,解壓後的目錄不能含中文、空格等目錄。

下載、解壓完成後,請先打開網盤內有一個“camera_studio-env補丁(32位64位都適用)”完成camera studio env補丁


2.2.啓動camera studio

點擊“env.exe”文件啓動camera studio,因爲camera studio需要做一些環境變量的設置(環境變量就在那個env.xml裏面吧)。
注意:不是點擊eclipse.exe啓動的哦!
camera studio內含整套開發所需要的工具,如交叉編譯器、make、python、scons等。
啓動後初始界面,沒有導入工程

2.3.SDK 源碼

2.3.1.導入:通過選擇”File”->”Import”->”Existing Code as Makefile Project”導入

     


選擇對應的sdk目錄,
Languages:默認選擇爲c/c++
Toolchain:默認選擇爲none

目前官方對IOT-Camera的sdk在持續更新中,請關注官網發佈情況。

2.3.2.編譯

點擊工具欄的小錘子或CTRL+B編輯SDK

編譯完成後,可在Console下查看編譯情況。rtthread.bin就是最終bin文件

3.SDK目錄結構

1)Makefile:eclipse調用make的入口文件,IoT-Camera採用scons完成編譯;rtthread源碼都採用scons完成build

2)armv6目錄:針對FH8620內核的支持,包括棧初始化、上下文切換、MMU配置等

3)rt-thread目錄:包括rt-thread內核、文件系統dfs、網絡協議棧lwIP、shell命令行、c++支持等。目前採用的是比較新的v2.5.0版本代碼

4)drivers目錄:FH8620外設驅動,包括gpio、i2c、ssi、dma、sdio等;和rt-thread發行版本的bsp目錄功能一致

5)libraries目錄:包含系統的啓動彙編代碼;同時也包括一些底層庫(AP6181 wifi驅動庫、extlib芯片ISP庫等),一般這部分代碼不需要做相應的修改

6)platform目錄:FH8620板級代碼,和rt-thread發行版本的board目錄功能一致。

7)applications目錄:應用目錄,目前有的demo有audio、gpio、pwm、adc、video等,該目錄下還包括main主函數

8)packages目錄:軟件包目錄,包括cJSON、ezxml、telnet_server、wget等,該目錄下軟件包會越來越多

4.SDK運行流程

4.1.啓動入口

1)彙編級入口,異常向量表中的reset也指向這裏,啓動後程序跳轉到這裏運行。

2)依次完成各種模式下棧的配置情況。
3)進入C的入口:_rtthread_startup,該函數跳轉至rt-thread內核

rtthread_startup函數位於rt-thread->src目錄下的components.c文件內

4.2.RT-Thread的C入口rtthread_startup:

完成各種板級初始化、RTT_Log顯示、用戶代碼初始化、調度器啓動等工作

1)硬件板級初始化函數rt_hw_board_init:主要完成了中斷初始化、MMU初始化等工作


a.MMU初始化:通過內存描述數組,完成內存段映射關係

b.heap空間定義

2)用戶初始化函數:rt_application_init


在main_thread_entry裏面完成:
組件初始化
調用main

所以main函數只是rt-thread裏面一個優先級爲 RT_THREAD_PRIORITY_MAX / 3的任務;main函數位於applications目錄下main.c文件內

到這裏,整個Project已經啓動完成,用戶可在main裏面添加自己的代碼!

完整版pdf下載地址:http://download.csdn.net/detail/flyingcys/9668808

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章