一.介绍
ADAS(Advanced Driver Assistance Systems)高级辅助驾驶,是利用安装于车上的各式各样的传感器, 在第一时间收集车内外的环境数据, 进行静、动态物体的辨识、侦测与追踪等技术上的处理, 从而能够让驾驶者在最快的时间察觉可能发生的危险, 以引起注意和提高安全性的主动安全技术。
二.s32v234介绍
S32V234是nxp公司第二代视频处理器系列,基于64位ARM Cortex-A53CPU,具有高达1000MHz 四核ARM Cortex-A53,集成了32 KB/32 KB I-/D- L1高速缓存,NEON MPE协处理器,双精度FPU,带2 CPU和256KB L2缓存的2集群,存储器管理单元,GIC中断控制器,提供ISP,功能强大的3D GPU,两个APEX-2可视加速器,支持SafeAssure™安全性,具有汽车级的可靠性,功能安全性,支持汽车和工业自动化,适用于汽车ADAS,NCAP前置摄像头,物体检测和识别,车载全景可视系统以及机器学习和传感器融合应用。
s32v234的主要特性:
• ARM Cortex-A53, 64-bit CPU
– Up to 1000 MHz Quad ARM Cortex-A53
– 32 KB/32 KB I-/D- L1 Cache
– NEON MPE co-processor
– Dual precision FPU
– 2 clusters with 2 CPUs and 256 KB L2 cache each
– Memory Management Unit
– GIC Interrupt Controller
– ECC/parity error support for its memories
– Generic timers
– Fault encapsulation by hardware for redundantexecuted application software on multiple corecluster
• ARM Cortex-M4, 32-bit CPU
– Up to 133 MHz
– 16 KB/16 KB I-/D- L1 Cache
– 32+32 KB tightly coupled memory (TCM)
– ECC/parity support for its memories
• Clocks
– Phase Locked Loops (PLLs)
– 1 external crystal oscillator (FXOSC)
– 1 FIRC oscillator
• System protection and power management features
– Flexible run modes to consume low power based onapplication needs
– Peripheral clock enable register can disable clocks tounused modules, thereby reducing currents
– Power gating of unused A53 cores and GPU
– Low and high voltage warning and detect
– Hardware CRC module to support fast cyclicredundancy checks (CRC)
– 120-bit unique chip identifier
– Hardware watchdog
– eDMA controller with 32 channels (withDMAMUX)
– Extended Resource Domain Controller
• Safety concept
– ISO 26262, ASIL level target
– Measures to detect faults in memory and logic
– Measures to detect single point and latent faults
– Quantitative out of context analysis of functionalsafety (FMEDA) tailored to application specifics
– Safety manual and FMEDA report available
• Security
– CSE with 16 KB of on-chip Secure RAM and ROM.
– ARM TrustZone (TZ) architecture support
– Boot from NOR flash with AES-128 (CTR)
– On-Chip One-Time Programmable elementController (OCOTP_CTRL) with on chip electricalfuse array.
– System JTAG Controller (SJC)
• Debug functionality
– Standard JTAG and Compact JTAG
– 16-bit Trace port, Serial Wire Output port
• Timers
– General purpose timers (FTM)
– Two Periodic Interrupt Timer (PIT)
– IEEE 1588 Timers (part of Ethernet Subsystem)
• Analog
– 1x 12-bit 1.8 V SAR ADC with self-test
• Communications
– UART(w/ LIN2.1l)
– Serial peripheral interface (SPI)
– I2C blocks
– PCI express 2.0 with endpoint and root complexsupport
– LFAST serial link
– 1 GBit Ethernet with PTP IEEE 1588
– FD-CAN
– FlexRay Dual Channel, Version 2.1 RevA
• Memory interfaces
– 32-bit DRAM Controller with support for LPDDR2/DDR3/DDR3L - Up to 1066 MHz data rate with ECC (SEC-DEDTED)triple errror detection support for subregion
– QuadSPI supporting Execute-In-Place (XIP)
– Boot flash fault detection and correction using two-dimensional parity.
– Triple fault detection and single fault correction scheme for external DDR-RAM including address/page fault detection.
• Video input interfaces, Image processing, graphics processing, display
– Display Control Unit (2D-ACE) with 24-bit RGB, GPU frame buffer decoding
– GPU GC3000 with frame buffer compression
– 2x VIU (Video interface unit) for camera input
– 2x MIPICSI2 with four lanes for camera input (support 1080 pixel @ 30 fps)
– Image signal processor (ISP), supporting 2x1 or 1x2 megapixel @ 30 fps and 4x2 megapixel for subset of functions(exposure control, gamma correction)
– 2x APEX2-CL Image cognition processor supporting OpenCL 1.2. APEX-642CL comprises two Array Processing Unit
(APU) cores configurable as single SIMD engine with 64 16-bit Computational Units (CU), or configurable as two coreMIMD engines with 32 16-bit CUs each.
– CUs are comprised of four Functional Units: 16-bit Multiplier, Load Store Unit, ALU, and Shifter
– JPEG video decoder (8/12-bit)
– H.264 video decoder (8/10/12-bit), High-intra and constrained baseline formats
– H.264 video encode (8/10/12-bit), High-intra only
– Fast DMA for data transfers between DRAM and System RAM with CRC
• Human-Machine Interface (HMI)
– GPIO pins with interrupt support, DMA request capability, digital glitch filter
– Configurable slew rate and drive strength on all output pins
• System RAM
– 4 MB On-Chip System RAM with ECC
三.官方源码编译教程
3.1 Download the Yocto Project Environment into your directory:
1. mkdir fsl-auto-yocto-bsp
2. cd fsl-auto-yocto-bsp
3. repo init -u https://source.codeaurora.org/external/autobsps32/auto_yocto_bsp -b hotfix/bsp17.0.hf1 -m adas.xml
4. repo sync
Note:如果你的机器没有安装repo,那么请遵循下面的步骤:
1. mkdir ~/bin
2. curl http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo> ~/bin/repo
3. PATH=~/bin:$PATH
4. chmod a+x ~/bin/repo
打开repo将改为:
#REPO_URL='git://codeaurora.org/tools/repo.git'
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
3.2Create build folder:
1../sources/meta-alb/scripts/host-prepare.sh
2,source nxp-setup-alb.sh -m s32v234sbc
运行完以上步骤:你将会如下目录:
ccion@ubuntu:~/ccion/fsl-auto-yocto-bsp/build_s32v234sbc$ ls
bitbake-cookerdaemon.log cache conf SOURCE_THIS tmp
然后修改此目录下面的conf/local.conf.j将vsdk加入yocto系统。
FSL_LOCAL_MIRROR = "file:///your path/fsl_local_mirror"
LICENSE_FLAGS_WHITELIST_append = " commercial "
操作完以上步骤后,请在nxp官网下载VisionSDK_S32V2xx_RTM_xxx.bin。网站:https://www.nxp.com/cn/search?keyword=s32v234#
bitbake fsl-image-vsdk
接下来就是漫长的等待编译,由于很多源码会从网上下载,所以第一次编译需要很长时间,大概12小时。编译完后,可以将downloads目录下的源码包保存。
ccion@ubuntu:~/ccion/code/fsl-auto-yocto-bsp/build_s32v234sbc/tmp/deploy$ ls
images licenses rpm
编完后,如上目录images就是我们所需要的镜像。
ccion@ubuntu:~/ccion/code/fsl-auto-yocto-bsp/build_s32v234sbc/tmp/work/aarch64-fsl-linux$ ls
acl boost flac inputproto libical libxft nfs-utils setserial
alsa-lib bridge-utils flex iozone3 libice libxi nspr shadow
alsa-plugins busybox fontconfig iperf3 libidn libxml2 ocv shadow-sysroot
apex-add bzip2 freetype iproute2 libjpeg-turbo libxrandr ofono shared-mime-info
apexcv-basic cairo gawk iptables libmnl libxrender openssh speexdsp
apexcv-orb canutils gcc iputils libmpc libxshmfence openssl sqlite3
apexcv-remap cnn-classifier gcc-runtime isl libnfsidmap libxt opkg-utils stat
apexcv-simple consolekit gconf isp-h264dec-single-stream libnl libxtst pango strace
apex-downsample-upsample-cv coreutils gd isp-jpeg-4stream libnss-mdns libxv pciutils strongswan
apex-emulation-test cracklib gdb isp-ov10635-viu-dcu libogg libxxf86vm pedestrian-detection sysfsutils
apex-face-detection-cv cryptodev-linux gdbm isp-ov10640-quad libpam lighttpd pedestrian-detection-aggcf sysstat
apex-fast9-cv curl gdk-pixbuf isp-sonyimx224-csi-dcu libpcap linux-libc-headers perl sysvinit
apex-gauss5x5-cv damageproto gettext isp-sonyimx224-default libpciaccess lmbench pixman tcpdump
apex-histogram-cv db giflib isp-sonyimx224-h264enc libpcre lmsensors pkgconfig tcpreplay
apex-indirect-input-cv dbus glib-2.0 isp-sonyimx224-rgb-yuv-gs8 libpng lrzsz polkit tcp-wrappers
apex-integral-image-cv dbus-glib glibc isp-stereo-apexbm libpthread-stubs lzo presentproto tiff
apex-isp-face-detection-cv demos-data glibc-initial isp-stereo-calib librsvg m4 procps u-boot-environment
apex-isp-fast9 devmem2 glibc-locale kbproto
可以看到在此目录下,就是vsdk提供过来的demo应用实例。