全志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产品功能:

AHD-X527功能图

使用SDK编译应用程序

LinuxSDK编译完成后,就会生成针对该评估板的应用开发包SDK,SDK包括编译应用的交叉编译器和sysroot(sysroot目录包含了链接库和include文件)。交叉编译器为aarch64-none-linux-gnu-gcc,具体路径位于
/out/<LICHEE_IC>/<LICHEE_BOARD>/buildroot/buildroot/host/bin/aarch64-none-linux-gnu-gcc"。如下使用该交叉编译器演示编译helloworld.c程序并在评估板上运行的过程。

备注: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程序请联系我司。

posted @ 2025-08-07 14:55  embfly168  阅读(76)  评论(0)    收藏  举报