Hai, nama saya Oleg Gerasimov, saya direktur pusat kompetensi cluster TI Rostelecom. Tim kami, di antara banyak tugas, mengembangkan firmware kamera CCTV untuk layanan B2B dan B2C. Di artikel sebelumnya, saya memberi tahu bagaimana kami mempelajari cara mengembangkan perangkat lunak dan firmware secara mandiri untuk kamera IP, termasuk yang murah, dan menghubungkannya ke cloud.
Sejak itu, kamera dengan firmware kami telah muncul di pasaran, dan, dilihat dari data dari Yandex.Market, harga di rak toko mulai dari 1.500 rubel. Dan ini bukan lagi kamera "tanpa nama" yang murah, tetapi kamera berkualitas tinggi dari merek-merek terkemuka dunia: Hikvision, Dahua, dan Uniview. Menurut saya, ini adalah hasil yang bagus!

, . .
, , , .
, , SDK , . , . — , (Datasheet) . , , , , .
, , , . , . , , , .
. . , , .
— , , GPIO-, , , .. , / , , WI-FI .

. , -, .
- , : , , .
, — . . , ,
, . — «-» , .
, . : Wi-Fi, PTZ, .. , , .
, .
, . .

. : , .
: , , .
, , : SDK . :
- SDK SoC. 10 Hisilicon, Ambarella, MStar Fullhan.
- , . NDA, .
- , , Git.
- : , , SoC SDK .
- , .
- «-SoC» , .
- . , .

, , . , , . ( ) : , ...
: SDK , : , toolchain, uboot, (- uclibc, glibc). , . :
| Linux | gcc | |
|---|---|---|
| Hisilicon 3516a/d | 3.4.y | gcc 4.9 |
| Hisilicon 3518ev100 | 3.0.y | gcc 4.4 |
| Hisilicon 3518ev200 | 3.4.y | gcc 4.9 |
| Hisilicon 3516cv300 | 3.18.y | gcc 4.9 |
| Hisilicon 3518ev300/3516ev200/ev300 | 4.9.y | gcc 6.3 |
| Hisilicon 3516cv500/dv300 | 4.9.y | gcc 6.3 |
| mStar i3 | 3.18 | gcc 4.8 |
| mStar i6 | 4.9 | gcc 8.2 |
| Ambarella s2l | 3.10 | gcc 4.9 |
| Ambarella s3l | 3.10 | gcc 5.2 |
| Fullhan fh8632 | 3.0.y | gcc 4.3 |
, : .
: , , 10+ SoC, . init-, .
, //makefile/ , " → SoC → ". SDK . , Megatech Hisilicon.
drivers
+ megatech/ -> 'megatech'
| + hi3518ev200/ -> hisilicon hi3518ev200
| | + 1421 -> 1421
| | | | + ipcdb.1421.yml ->
| | | | + mpi/entry.1421.yml ->
| | | | + ptz/entry.1421.yml -> PTZ
| | + motor -> PTZ
| | | + bu24036_motor -> bu24036
| | | | gpio_motor -> GPIO
| | + wlan -> wi-fi
| | | + Makefile ->
| | + sensor ->
| | | + Makefile ->
kernel
+ megatech/
| + hi3518ev200/
| | + mmc_hotplug.patch
| | + kernel-config.patch
uboot
uboot
+ megatech/
| + hi3518ev200/
| | + uboot-mmc.patch
| | + uboot-spi.patchYAML, , :
- (GPIO, Wi-Fi, , , , ).
1421:
vendor: megatech
model: Model A
soc: 3518ev2
ethernet: 0
wlan: rtl8188eu
sensor: ov9732
leds:
ir:
gpio: 23
inverse: true
red:
gpio: 10
power:
gpio: 10
green:
gpio: 2
net:
gpio: 2
keys:
wps:
gpio: 16
reset:
gpio: 16
peri-out:
pwdn:
gpio: 1
inverse: true
ircut.p:
gpio: 57
ircut.n:
gpio: 60
wifi_pwr:
gpio: 7
flash: spi
misc:
microphone: true
speaker: true
mic_hpf_level: 3
mic_anr_level: 4
scripts:
insert-sns:
- himm 0x200f0040 0x2; # I2C0_SCL
- himm 0x2003002c 0xc4001; # sensor unreset, clk 24MHz, VI 99MHz
init-wlan:
- insmod 8188eu.ko- ( , , , ).
1421:
sensor:
type: ov9732
lib: libsns_ov9732.so
resolutions:
- targets:
- { width: 1280, height: 720, maxrate: 30 }
- { width: 640, height: 480, maxrate: 30 }
- { width: 640, height: 360, maxrate: 30 }
- { width: 320, height: 240, maxrate: 30 }
channels:
- main
source: { width: 1280, height: 720, rates: [30, 25] }
combo_dev_attr:
input_mode: CMOS_33V
vi_dev_attr:
interface_mode: DIGITAL_CAMERA
component_mask: [67043328, 0]
syn_cfg:
vsync: field
vsync_neg: high
hsync: valid_signal
hsync_neg: high
vsync_valid: valid_signal
vsync_valid_neg: high
timing_blank: [ 370, 1280, 0, 6, 720, 6, 0, 0, 0 ]
isp_image_attr:
bayer_format: BGGR- PTZ ( , ).
1421:
type: pan_controller_and_tilt_gpio_generic
interrupt_gpio: 50
absolute: true
pan:
park_ccw: false
continuous: [-20, 20]
relative: [-7.9, 7.9]
absolute: [0, 355]
channel: 0
min_wait: 100
max_step: 140
max_speed: 375
unity: 430
tilt:
park_ccw: true
continuous: [-20, 20]
relative: [-3.5, 3.5]
absolute: [0, 90]
max_step: 2000
unity: 157 SDK . Docker , .
Docker , CI, .
. Docker- SDK CI «SoC-».
:
- build-tools — Dockerfile, SoC SDK . CI Docker- .
- vc-firmware — . git-submodule : , , ). CI .
SDK , vc-sdk, vc-firmware build-tools git-submodule. CI :
- Docker- build-tools;
- (, , );
- ( , Wi-Fi ..)
- ,

CI Docker-, .
registry , .
— . , . , Foliant. «Write the Docs Moscow» (https://habr.com/ru/post/431210/).
8 SDK, . .
, — SDK — : . : .
, , . .