Hi3519AV100 Firmware Image Processing
By Shriv Commedia Solutions Pvt. Ltd.
The development and debugging tool cannot be run on the embedded board, because the resources of the embedded board are limited. The embedded board is typically developed in cross compilation mode, that is, in host+target machine (evaluation board) mode. The host and target machine are typically connected through the serial port. However, they can also be connected through the network port or Joint Test Action Group (JTAG) interface, as shown in Figure 1-1 Development in embedded mode.
After a cross compilation environment is set up on the linux server, and the Windows console is connected to the Hi3519A V100 reference board (REFB) through the serial port or network interface, the developer can develop programs on the Windows console or on the Linux server through remote login. Table 1-1 describes the software running in the Hi3519A V100 Linux development environment.
Note: Although a Windows console exists in the development environment, many operations can be completed on the Linux server, such as replacing the HyperTerminal with Minicom. Therefore, you can adjust the development environment to your personal preferences.
The processors of the host and the target machine are different. A cross compilation environment must be built on the host for the target machine. After a program is processed through compilation, connection, and location, an executable file is created. When the executable file is burnt to the target machine by some means, the program can then run on it.
After the target machine's bootloader is started, operational information about the target machine is transmitted to the host and displayed through the serial port or the network port and displayed. You can control the target machine by entering commands on the host's console.
Using a Huawei board Hi3519AV100 firmware, we developed a dual sensor setup capable of doing basic programmable digital cropping, panning and zooming functions.
Steps to Implement
Phase 0 - To setup and verify a firmware development environment. To configure standard drivers to support streaming via USB3.0 UVC transfer protocol that supports plug and play under Windows 7, 8 and 10 without additional driver.
Phase 1 - To implement uvc space parameter passing, compatible with Linux uvcdynctrl and libwebcam. To implement basic http web service or MQ for receiving control commands from Gigabit Ethernet and WiFi. And to implement mechanism for remote (OTA) firmware updates and version control.
Phase 2 - To develop crop, tween and fade functions to digitally crop, pan and zoom respectively for offloaded video processing.
Crop command shall configure firmware to output digitally cropped video.
Tween command shall configure firmware to automatically alter crop commands over time, providing “Ken Burns” and other video effect.
Fade command shall control fading between two cameras, both supported by the same chip.
Technical H/W and S/W Environment
Table 1-1 Software running in the Hi3519A V100 development environment
|Windows console||Operating System (OS)||Windows XP, Windows|
|Application software (OS)||Putty, HyperTerminal, Trivial File Transfer Protocol (TFTP) server, and DS-5.|
|Linux server||OS||Ubuntu, Redhat, and Debian are supported, and there are no special requirements. The kernel 2.6.18 or later is supported. Additionally, full installation is recommended.|
|Application software||Network file system (NFS), telnet, Samba, and vim, and ARM cross compilation environment (Gcc 6.3.0). Other application software varies according to the actual development requirements. The required software is pre-installed by default. You only need to configure the software before using it.|
|Hi3519A V100||Boot program||U-Boot|
|OS||HiSilicon Linux, Huawei LiteOS. The Linux kernel is developed based on the standard Linux kernel V4.9.y, and the root file system is developed based on the BusyBox V1.26.2.|
|Application software||Supports common Linux commands, such as telnetd and gdb server.|
|Program development library||Supports uClibc-0.9.33.2 and glibc-2.24.|
Time to Accomplish
Phase 0 - 2 weeks
Phase 1 - 2 weeks
Phase 2 - 4 weeks
A supporting video is also provided for the same.
Download File (Pdf)