全志T527/A527 Linux应用程序的开发与自启动-盈鹏飞嵌入式
公司最近评估T527,使用的是盈鹏飞嵌入式的T527开发板-AHD-X527,该开发板支持4路AHD摄像头输入,也可以支持6路,不过需要增加一个转换板。恰好符合我们的应用。以下操作都是在该开发板上操作,该产品介绍如下:
AHD-X527产品特性:
-
采用Allwinner公司Cortex-A55八核A527/T527处理器,运行最高速度为2.0GHZ(T527最高1.8GHZ);
-
支持Mali-G57 MC1 GPU,支持OpenGL ES 3.2/2.0/1.0, Valkan 1.1,OpenCL 2.0
-
支持4K/25fps H.264视频编码,支持4K/15fps MJPEG编码;
-
多格式4K/60fps视频解码 (H.265,H.264,VC-1, MPEG-1/2/4, VP8) ;
-
支持双屏异显;支持HDMI 2.0B, 分辨率最高4K@60fps;支持LVDS,分辨率最高1920x1080@60fps;支持MIPI DSI,分辨率最高2.5K@60fps(与LVDS复用);
-
支持1-4G Bytes LPDDR4X SDRAM;
-
支持EMMC 8G-64G大容量电子盘,可启动;
-
支持1路USB 3.0;支持3路USB2.0 HOST和一路OTG(TYPE-C接口);
-
支持2路I2C(其中一路支持掉电唤醒)、2路PWM(应用于背光);
-
支持双路千兆以太网;
-
支持3G/4G通信;
-
支持2路UART(TTL)、支持1路RS485、支持双路CAN BUS(2.0B,仅T527支持);
-
支持4路AHD摄像头输入,最高分辨率为1080p;支持MIPI CSI接口-1x4-lane/2x2-lane;
-
操作系统的支持,可预装Android13/LINUX 5.15/Ubuntu 22.04;
-
尺寸为146X119MM-
AHD-X527产品功能:

使用SDK编译应用程序
LinuxSDK编译完成后,就会生成针对该评估板的应用开发包SDK,SDK包括编译应用的交叉编译器和sysroot(sysroot目录包含了链接库和include文件)。交叉编译器为aarch64-none-linux-gnu-gcc,具体路径位于
备注:LICHEE_IC是选择的处理器,例如:a527; LICHEE_BOARD是您选择的板型,例如ahd_a527;
执行如下命令,编写helloworld.c程序并进行交叉编译。
Host# vim helloworld.c
Host# ./env_x527.sh //我们提供这个环境变量的脚本,该脚本需要在
Host# aarch64-none-linux-gnu-gcc -o helloworld helloworld.c
点击查看代码
/***********************************************
* Copyright (C) Embfly, 2018 *
* *
* The most basic hello world sample code in C. *
***********************************************/
#include <stdio.h>
int main(void)
{
printf("Hello world!\n");
return 0;
}
将编译生成的可执行程序helloworld拷贝至评估板运行,打印出"Hello,World!"说明程序正常运行。
env_x527.sh脚本内容如下:
点击查看代码
#!/bin/sh
source .buildconfig
export SYSROOT=$LICHEE_BR_OUT/host/usr/aarch64-buildroot-linux-gnu/sysroot
export CROSS_COMPILE_DIR=$LICHEE_BR_OUT/host/bin
export CROSS_COMPILE=aarch64-none-linux-gnu-
export PATH=$CROSS_COMPILE_DIR:$PATH
程序开机自启动说明
我司提供固件主要是针对AHD摄像头应用,默认的固件启动后,将会默认启动一个aw_camera的QT app。启动脚本S99wayland_qt.sh如下:
点击查看代码
#!/bin/sh
#
# Start linux launcher...
T_PROGRAME=aw_camera
chmod +x $T_PROGRAME
case "$1" in
start|"")
printf "Starting launcher: "
export LC_ALL='zh_CN.utf8'
# Uncomment to disable mirror mode
# unset WESTON_DRM_MIRROR
export XDG_RUNTIME_DIR=/tmp/wayland
export QT_QPA_PLATFORM=wayland
export QT_PLUGIN_PATH=/usr/lib/plugins
export QT_WAYLAND_SHELL_INTEGRATION=xdg-shell-v6
#export QT_QPA_FONTDIR=/usr/share/fonts/ttf
export QT_QPA_FONTDIR=/usr/share/fonts/wqy-zenhei
#export QT_QPA_PLATFORM=${QT_QPA_PLATFORM:-wayland}
#weston --tty=8 --idle-time=0&
{
# Wait for weston ready
while [ ! -e ${XDG_RUNTIME_DIR}/wayland-0 ]; do
sleep .1
done
$T_PROGRAME /dev/video0
}&
;;
stop)
killall $T_PROGRAME
#killall weston
printf "stop finished" ;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0
该脚本存放于开发板的根文件系统/etc/init.d目录下。该文件是通过预制文件的方式存放在根文件系统/etc/init.d目录下的,细节请参考6.5章节。
另外,QT的app可以基于不同的backends运行。例如S99wayland_qt.sh脚本启动app依赖的后端插件是wayland,因此务必先要weston这个窗口合成器才行。我们也提供了kms+drm方式启动QT app的脚本S99launcher_kms,通过该脚本启动QT程序时,依赖的后端插件是mali+kms,需要该方式启动QT程序请联系我司。

浙公网安备 33010602011771号