HiSilicon project learning record-1

1. The entire process of video from production to consumption
(1) Basic cognition: Video is composed of a single frame image continuously at a rate of x frames per second, and a single frame image is similar to a bitmap.
(2) Original video generation: lens and sensor
(3) Image processing: ISP (image signal processing)
(4) Video coding compression: h.264/h.265 compression algorithm, operation, built-in DSP for compression operation.
(5) Video stream transmission: network transmission, http/rtsp, etc.
(6) Video storage: packaged into MP4 and other formats for storage, waiting for
review (7) Video playback: decoding + playback

2. HiSilicon SDK understands
2.1; three scripts
sdk.unpack decompress
sdk.cleanup to clear the files generated by the compression, so if any files are modified before operation, they will be backed up
scripts/common.sh mainly provides some functions which are included by the first two scripts

2.2. Compile operation provided by osdrv HiSilicon
\package\osdrv HiSilicon has provided cross-compilation tool chain, uboot, kernel, file system, etc.

The cross-compilation tool chain provides two types, which can be specified by passing parameters when compiling. The uclic library is incomplete but streamlined, while the glibc library is huge but comprehensive.

2.3. Series of problems with the cross-compilation tool list
1) The tool chain is 32-bit and does not match the number of system bits.
Install the 32-bit compatibility package for ubuntu16.0403X64
(1) Reference: http://blog.csdn.net/ma57457/ article/details/68923623
or: https://www.cnblogs.com/leaven/p/5084902.html
(2) Use aptitude to install lib32z1. Using sudo apt-get install lib32z1, I found that it could not be installed. The reason is that ubuntu is too new. Many libraries in it are new versions, but lib32z1 based on this new version is not available yet, so it cannot be installed. The solution is to use the aptitude tool to install, but based on this new version of lib32z1 is not yet available, so it cannot be installed. The solution is to use the aptitude tool to install.
Note that aptitude is not necessarily successful.
First, pay attention to ensuring that the virtual machine is connected to the Internet (so pay attention to the network switch, the interface file content is different when communicating with the development board and when networking), and you can try NYY's choice, otherwise sometimes Haven't downloaded a thing for a long time, try the first option N, then choose Y to succeed

(3) Test execution arm-xxx-gcc -v, prompting stdc++ not found error:
./arm-hisiv300-linux-uclibcgnueabi-gcc -v
./arm-hisiv300-linux-uclibcgnueabi-gcc: error while loading shared libraries : libstdc++.so.6: cannot open shared object file: No such file or directory
(4) Use aptitude to install lib32stdc++6-4.8-dbg
sudo aptitude install lib32stdc++6-4.8-dbg
to test arm-xxx again -gcc -v, it can finally run.

In the end, there was a compilation error. The name was wrong. In fact, HiSilicon and SDK wrote us the steps of a ready-made cross-compilation tool chain. We only need to execute it to generate the corresponding link file. Note that we will add the generated path to the PATH environment. Variables,

And indeed mkinit execution file, because uboot generation needs,
/sambashare/Hi3518E_SDK_V1.0.3.0/osdrv/opensource/uboot/u-boot-2010.06/tools$ sudo cp mkimage /usr/local/bin/ copied to the PATH include path Ready to execute

If some operations need to be operated separately, it is best to refer to how the makefile file was originally compiled as a whole, so as to avoid errors and improve efficiency.

2.4. mmp deployment
mmp is some ko files, lib library files and .h files packaged in the SDK by HiSilicon. The purpose is to support the API used by the subsequent application development codec.
ko file; it is the pre-compiled module from HiSilicon, and we can use it directly after it is provided. The ko file is actually a packaged driver, almost all of these modules directly operate the hardware, and then provide the lib library file, we directly call the API in the library file.
For example, hi3518E_h264e.ko is related to the encoding of h.264 encoding
hi3518e_chnl.ko pipeline-related
hi3518e_isp.ko ISP image debugging related

sample; sample code, is to use the lib library combined with the ok module to complete a simple application, for us to imitate.

Configure and deploy mmp
1) Key file; ./ko/load3518e is a sh script that manages the installation and uninstallation of the ko module
and identifies the incoming snseron camera sensor, which varies depending on the hardware.
./load3518e -i -sensor ar0130 -osmem 32 -total 64 View the load3518e script settings.

2) Sample compilation and test
Before use, please check the readme and makefile files, and don’t get started in a hurry.
Insert picture description here

Guess you like

Origin blog.csdn.net/zw1996/article/details/114213480