Cómo compilar el SDK hi3520d
Si está instalando este SDK por primera vez, consulte el Capítulo 2 directamente.
Capítulo 2: Instalación del SDK por primera vez
1 La ubicación del paquete de software hi3520D SDK
En "hi3520D_V100R001***/01". .software/board" A continuación, puede ver un archivo hi3520D_SDK_Vx.x.x.x.x.tgz,
Este archivo es el archivo hi3520D_SDK_Vx.x.x.x.x.tgz.
2. Descomprima el paquete SDK
En un servidor Linux (o PC que use Linux, cualquier distribución convencional de Linux es aceptable), use el comando: tar -zxf hi3520D_SDK_Vx.x.x.x.x.tgz,
Extraiga el archivo para obtener un directorio hi3520D_SDK_Vx.x.x.x.
3. Expanda el contenido del paquete SDK
Regrese al directorio hi3520D_SDK_Vx.x.x.x y ejecute ./sdk.unpack (use permisos de root o sudo para ejecutar) para comprimir y almacene el contenido del paquete SDK ampliado, siga las instrucciones para completar la operación.
Si necesita copiar el paquete SDK a través de WINDOWS, ejecute ./sdk.cleanup, contraiga el contenido del paquete SDK, cópielo a un nuevo directorio y luego expándalo.
4. Instale el compilador cruzado en el servidor Linux
1) Instale el compilador cruzado uclibc (tenga en cuenta que necesita permisos sudo o permisos de root):
Transferir Vaya al directorio hi3520D_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv100nptl-linux, ejecute chmod x cross.install y luego ejecute ./cross.install.
2) Instale el compilador cruzado glibc (tenga en cuenta que se requieren permisos sudo o root, la versión glibc no es compatible temporalmente):
Vaya a hi3520D_SDK_Vx.x.x.x/osdrv/toolchain /arm-hisiv200-linux, ejecute chmod x cross.install y luego ejecute ./cross.install.
3) Ejecute source /etc/profile, las variables de entorno configuradas en el script de instalación del compilador cruzado surtirán efecto; de lo contrario, inicie sesión nuevamente.
5. Compile osdrv
Consulte el archivo Léame en el directorio osdrv
6 Importe el directorio SDK
La estructura del directorio de hi3520D_SDK_Vx.x.x.x es el siguiente:
|-- sdk.cleanup # script de limpieza del SDK
|-- sdk.unpack # script de descompresión del SDK
| -- osdrv # Sistema operativo y directorios de controladores relacionados
|-- Busybox # código fuente de Busybox
|-- drv # código fuente drv
| |- kernel # código fuente del kernel de linux
|-- pub # Imágenes compiladas, herramientas, controladores drv, etc.
|-- rootfs_scripts # código fuente de rootfs
|-- cadena de herramientas # compilador cruzado
|-- herramientas # código fuente de herramientas de Linux
p>|- uboot # código fuente de uboot
| `-- Makefile # osdrv Makefile
|- paquete # directorio del paquete SDK
| |- osdrv.tgz # paquete de compresión de código fuente de linux kernel/uboot/rootfs/tools.
|-- mpp.tgz # Paquete de compresión de software de plataforma de procesamiento de medios
| `-- image # Archivos de imagen que se pueden grabar en FLASH, como el kernel y el sistema de archivos raíz p>
|-- scripts # directorio de script de shell
|-- mpp # directorio de plataforma de procesamiento de medios
|- componente # código fuente del componente
|- extdrv # Código fuente del controlador periférico a nivel de placa
|- incluir # Archivo de encabezado externo
|-ko # Módulo kernel
|- lib # Biblioteca de lanzamiento y biblioteca de audio
|- herramientas # Herramientas de procesamiento de medios
|- mpp # Directorio de plataforma de procesamiento de medios mpp Otra multiplexación de pines se configura de manera uniforme en uboot, descripción detallada Consulte la "Guía de desarrollo de aplicaciones de portabilidad U-boot".
Capítulo 5: Desarrollo usando SDK y placa DEMO
1. Habilitar la red en Linux
# Configurar la red
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx:xx;
ifconfig eth0 xx.xx.xx.xx máscara de red xx.xx.xx.xx;
ruta agregada predeterminada gw xx.xx.xx.xx
# Luego haga ping a otras partes de la máquina, si no hay otros problemas, la red funcionará normalmente.
2. Utilice el sistema de archivos NFS para el desarrollo
# Durante la etapa de desarrollo, se recomienda utilizar NFS como entorno de desarrollo, lo que puede ahorrar el trabajo de recrear y grabar. el sistema de archivos raíz.
# Utilice el siguiente comando para montar el sistema de archivos NFS:
mount -t nfs -o nolock -o tcp xx.xx.xx.xx:/your-nfs-path /mnt
# Luego puede acceder a los archivos en el servidor en el directorio /mnt y realizar el trabajo de desarrollo.
3. Habilite el servicio telnet
# Después de que la red sea normal, ejecute el comando telnetdamp; para iniciar el servicio telnet de la placa, y luego podrá usar telnet para iniciar sesión en la placa. .
4. Ejecute el servicio MPP
# En el sistema Linux de placa única, ingrese al directorio mpp/ko y cargue KO
cd mpp/ko
./load3520D -i
# Vaya a cada directorio de muestra y ejecute el programa de muestra correspondiente (la muestra debe compilarse correctamente en el servidor primero)
cd mpp/sample/ vio
./sample_vio 0
Capítulo 6 Asignación y uso del espacio de direcciones
1. Instrucciones de administración de memoria DDR
1) En Entre todas las memorias DDR, una parte es administrada por el sistema operativo y se llama memoria OS, y la otra parte es administrada por el módulo MMZ y es utilizada únicamente por los servicios de medios, llamada memoria MMZ.
2) La memoria del sistema operativo comienza desde 0x80000000. El tamaño de la memoria se puede configurar mediante bootargs. Por ejemplo, setenv bootargs 'mem=64M...' significa que la memoria asignada al sistema operativo es 64M. Puede configurarlo según la situación real.
3) La memoria MMZ es administrada por el módulo del kernel MMZ (mmz.ko en el directorio mpp/ko_hi35xx). Al cargar el módulo mmz, especifique su dirección inicial y tamaño a través de los parámetros del módulo, por ejemplo:
insmod mmz.ko mmz=anonymous, 0, 0x84000000, 186M.jpeg, 0, 0x8fa00000, 5M anony=1 | | report_error
significa que mmz tiene dos áreas. El nombre del área uno es anónimo, la dirección inicial es 0x84000000 y el tamaño es 186M. y el tamaño es 5M.
Puede modificar la dirección inicial y el tamaño total modificando los parámetros del módulo mmz en el script load3520D en el directorio mpp/ko_hi35XX.
4) Tenga en cuenta que el rango de direcciones de memoria MMZ no debe superponerse con la memoria del sistema operativo.
2. Diagrama de administración de memoria DDR de la placa DEMO
1) Tomando como ejemplo la memoria DDR con una capacidad de 256 MBytes, el siguiente es un diagrama de administración de memoria basado en este artículo y el Configuración predeterminada del SDK:
p>
DDR:
-----|-------| 0x80000000 # Memoria administrada del sistema operativo.
64M | SO |
|
-----|-------| 0x84000000 # Memoria administrada de forma anónima por bloques MMZ.
187M | Memoria gestionada por MMZ block jpeg.
5M | |
|
-----|-------| 0x8ff00000
1M | |
|
-----|-------| 0x90000000 # Fin de DDR.
Nota:
(1) Los usuarios deben configurar la memoria administrada del sistema operativo en 64 M al configurar los parámetros de inicio, es decir, "setenv bootargs 'mem=64M ...".
(2) Después de que se inicie el sistema, configure el script load3520D de 191 M de memoria de administración para mmz, "insmod mmz.ko mmz=anonymous, 0, 0x84000000, 186M: jpeg, 0, 0x8fa00000, 5M anony= 1 | | informe_error".