Al ejecutar el programa compilado directamente en el hardware, aparece un mensaje de advertencia de que las versiones de las bibliotecas C y C++ son incorrectas. Parece deberse a la inconsistencia entre la versión del compilador y el sistema de la placa actual. Es necesario actualizar rootfs y use el paquete BSP correspondiente al compilador: Hi3536C V100R001C02SPC040, compile rootfs y use el sistema de archivos jffs2 para facilitar el desarrollo.
- Configuración de partición:
mem=300M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:1M(boot),4M(kernel),11M(rootfs);
- Compilación BSP
Después de descomprimir el paquete BSP, busque Hi3536CV100_SDK_V2.0.4.0.tgz en Hi3536C V100R001C02SPC040\01.software\board, descomprímalo y ejecute: sdk.unpack en el directorio.
Consulte las instrucciones de osdrv\opensource\kernel, descargue y descomprima el kernel, aplique el parche de modificación, regrese al directorio osdrv y compile de acuerdo con las instrucciones de readme_cn.txt.
En mi ubuntu20, me indica que no se puede encontrar mkimage, solo use apt-get para instalar las herramientas correspondientes.
Al compilar en mtd-utils1.5.0 del sistema de archivos, se compilará pero se compilará. Al registrar el método de procesamiento hace unos años, lo actualicé a la versión 1.5.2.
El malentendido significa principalmente que no se pueden encontrar las funciones mayor y menor. Esta vez corregí el error y agregué la instrucción #include <sys/sysmacros.h> al archivo correspondiente. También apareció un mensaje de que el archivo de encabezado zlib no podía ser encontrado. Sí, modifiqué el Makefile correspondiente. Debido a que solo necesito usar mkfs.jffs2, me aseguro de que no se modificará después de compilar esta herramienta. Después de compilar mkfs.jffs2, cópielo a osdrv/pub/bin/pc /mkfs.jffs2.
- Siga el método del SDK para empaquetar rootfs:
osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_glibc -l -e 0x10000 -o osdrv/pub/rootfs_glibc_64k.jffs2
- Instale el servicio tftpd-hpa en ubuntu;
- Ingrese el comando uboot en la placa y configure la dirección IP relevante;
- Utilice las herramientas tftp y sf para escribir rootfs, como en mi entorno:
tftp 0x8200000 rootfs_glibc_64k.jffs2;
sf probe 0;sf erase 0x500000 0xb00000; sf write 0x82000000 0x500000 0xb00000;
Después de ingresar al sistema y configurar la IP, monte en el directorio NFS de uboot y no se informará ningún error al ejecutar el programa.
- configuración del entorno MPP;
Coloque el directorio Hi3536CV100_SDK_V2.0.4.0\mpp\ko en el directorio de montaje y ejecútelo en la placa. Sin embargo, se informan errores de módulo como el símbolo desconocido devm_pinctrl_put. Parece que el kernel debería actualizarse.
Primero haga una copia de seguridad del kernel del lado de la placa y luego actualice el kernel.
El kernel compilado directamente en BSP puede ejecutarse normalmente y la red también es normal. Parece suerte. No hay muchos cambios entre el fabricante y la DEMO oficial. Luego ejecute el siguiente script.
./load3536c -i -total 512 -octavo 300
Se cargan los KO correspondientes de MPP.
Con estos entornos implementados, básicamente puede desarrollar todas las funciones comerciales en esta placa: copie el controlador mpp y la biblioteca en el SDK al directorio de montaje de ubuntu y cárguelos mediante comandos.
/nfsroot/hi3536c/mpp/ko # lsmod
Module Size Used by Tainted: P
hi3536c_adec 6099 0
hi3536c_aenc 85360 0
hi3536c_ao 355555 0
hi3536c_ai 206470 1 hi3536c_aenc
hi3536c_aio 25556 0
hi3536c_ive 183354 0
hi3536c_vda 566389 0
hi3536c_jpege 46427 0
hi3536c_h265e 157524 0
hi3536c_h264e 139170 0
hi3536c_vedu 11723 0
hi3536c_chnl 36078 0
hi3536c_venc 227024 3 hi3536c_jpege,hi3536c_h265e,hi3536c_h264e
hi3536c_rc 180446 0
hi3536c_hdmi 295031 0
hifb 79096 0
hi3536c_vou 436942 0
hi3536c_vpss 365830 0
hi3536c_vgs 170236 0
hi3536c_region 76502 0
hi3536c_tde 99004 0
hi3536c_jpegd 4373 0
hi3536c_vfmw 1283461 0
hi3536c_vdec 233615 0
hi3536c_sys 65523 3 hi3536c_aenc,hi3536c_aio,hi3536c_venc
hi3536c_base 47502 24 hi3536c_adec,hi3536c_aenc,hi3536c_ao,hi3536c_ai,hi3536c_aio,hi3536c_ive,hi3536c_vda,hi3536c_jpege,hi3536c_h265e,hi3536c_h264e,hi3536c_vedu,hi3536c_chnl,hi3536c_venc,hi3536c_rc,hi3536c_hdmi,hifb,hi3536c_vou,hi3536c_vpss,hi3536c_vgs,hi3536c_region,hi3536c_tde,hi3536c_vfmw,hi3536c_vdec,hi3536c_sys
hi_osal 58462 26 hi3536c_adec,hi3536c_aenc,hi3536c_ao,hi3536c_ai,hi3536c_aio,hi3536c_ive,hi3536c_vda,hi3536c_jpege,hi3536c_h265e,hi3536c_h264e,hi3536c_vedu,hi3536c_chnl,hi3536c_venc,hi3536c_rc,hi3536c_hdmi,hifb,hi3536c_vou,hi3536c_vpss,hi3536c_vgs,hi3536c_region,hi3536c_tde,hi3536c_jpegd,hi3536c_vfmw,hi3536c_vdec,hi3536c_sys,hi3536c_base
sys_config 2845 0
¡Comprueba que estos kos estén cargados!
PUPANVR