Bonjour, je m'appelle Oleg Gerasimov, je suis le directeur du centre de compétences du cluster informatique de Rostelecom. Parmi de nombreuses tâches, notre équipe développe un micrologiciel de caméra CCTV pour les services B2B et B2C. Dans l' article précédent, j'ai expliqué comment nous avons appris à développer indépendamment des logiciels et des micrologiciels pour les caméras IP, y compris des caméras peu coûteuses, et à les connecter au cloud.
Depuis lors, des appareils photo dotés de notre firmware sont déjà apparus sur le marché et, à en juger par les données de Yandex.Market, les prix sur les tablettes des magasins commencent à 1500 roubles. Et ce n'est plus un "sans nom" bon marché, mais des caméras de haute qualité des plus grandes marques mondiales: Hikvision, Dahua et Uniview. À mon avis, c'est un excellent résultat!
, . .
, , , .
, , 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.patch
YAML, , :
- (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 — : . : .
, , . .