Construcción y operación del entorno LiteOS qemu realview-pbx-a9

Prefacio

  • Recientemente, planeo trasplantar y construir algunos entornos comunes de desarrollo y aprendizaje de RTOS qemu. En la actualidad, RT-Thread y FreeRTOS han ejecutado qemu con éxito, y la verificación preliminar de LiteOS puede ejecutar qemu normalmente. Aquí hay un realview-pbx-a9registro

  • En primer lugar, aprenda o investigue RTOS. Sólo mirar el código fuente del kernel será aburrido. En su lugar, necesitará desarrollar una placa. Puede que al principio requiera demasiados controladores de hardware, lo que reducirá su interés en aprender e investigar el kernel RTOS. En la etapa inicial, es necesario ejecutar el kernel RTOS. Hay una comprensión global. En este momento, se requiere que qemu aprenda y verifique. En comparación con la placa de desarrollo real, será más conveniente y eficiente.

LiteOS

  • El kernel LiteOS actualmente verificado es: https://gitee.com/LiteOS/LiteOS

  • En comparación con https://gitee.com/openharmony/kernel_liteos_a , puede haber una pequeña diferencia aquí , pero se recomienda utilizar la verificación LiteOS en la etapa inicial y kernel_liteos_afaltan algunos archivos de configuración a nivel de placa.

  • El kernel de LiteOS se puede clonar a través de Git y la verificación actual de qemu encuentra que no se necesitan otros paquetes de software para ejecutarlo.

  • git clone https://gitee.com/LiteOS/LiteOS.git

qemu realview-pbx-a9

  • Después de clonar con git el repositorio del kernel de LiteOS, puede ingresar al kernel. Al verificar el directorio del kernel, encontrará tools/build/config/que hay archivos de configuración para algunas placas compatibles. Entre ellos, qemu actualmente lo admite qemu-virt-a53.config realview-pbx-a9.configy se recomienda actualmente realview-pbx-a9.config. Debido a que es un ARM plataforma, la información relevante se compara con la cadena de herramientas de compilación.

  • Archivo de configuración: cópielo tools/build/config/realview-pbx-a9.configal directorio raíz del kernel y cámbielo a .configarchivo

  • Ejecute en el directorio del kernel make menuconfigpara ingresar a la configuración de la interfaz gráfica.

  • [Observaciones] Si make menuconfigfalla, generalmente necesita configurar un entorno de compilación cruzada

Configurar el entorno de compilación cruzada arm gcc

  • Descargue la cadena de herramientas de compilación cruzada arm gcc: https://developer.arm.com/downloads/-/gnu-rm descarga oficial en ARM , la versión verificada actual: gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2que estoy usando actualmente gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2puede compilar normalmente

  • Después de descargar la cadena de herramientas arm gcc, descomprímala en el entorno Linux (ubuntu 20.04) y luego configure las variables de entorno: como modificar /etc/profileel archivo

  • sudo vim /etc/profile

  • Finalmente agregue:export PATH=$PATH:/home/zhangsz/tools/gcc-arm-none-eabi-10-2020-q4-major/bin

  • Luego guarde source /etc/profilepara que la variable de entorno surta efecto.

  • Puede ejecutarlo en el shell arm-none-eabi-gcc -vy confirmar que la variable de entorno de la cadena de herramientas arm gcc surte efecto.

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

Instalar kconfiglib

  • LiteOS requiere que esté instalada la versión python2 de kconfiglib.

  • Si el Linux actual, como ubuntu 20.04, no puede instalar la versión python2 de kconfiglib, debe obtener manualmente la versión python2 de pip y luego usar la versión python2 de pip para instalar kconfiglib.

  • Mi sistema actual es ubuntu 20.04, la versión de Python es Python 2.7.18, pero no hay una versión de pip de Python 2, la versión de pip predeterminada es python3, por lo que debes instalar manualmente la versión de pip de Python2.

  • Obtenga get-pip.py, la dirección obtenida:, https://bootstrap.pypa.io/pip/2.7/get-pip.pyUbuntu puede usarla para wget https://bootstrap.pypa.io/pip/2.7/get-pip.pyobtener

  • Luego asegúrese de que la versión actual de Python sea la versión 2 y utilícela python get-pip.pypara instalar la versión python2 de pip.

  • Después de instalar la versión python2 de pip, instale kconfiglib con el comando:

$ pip --version
pip 20.3.4 from /home/zhangsz/.local/lib/python2.7/site-packages/pip (python 2.7)


$ pip install Kconfiglib

menuconfig configurar LiteOS

  • En la actualidad, se puede guardar directamente sin configuración. Después de familiarizarse con el kernel y los módulos funcionales de LiteOS, puede intentar agregar y modificar la configuración del kernel.

Compilar LiteOS

  • makeSe puede compilar. Si le indica que arm-none-eabi-gccno se encuentra la cadena de herramientas, siga la operación anterior y configure la cadena de herramientas arm gcc primero.

  • Después de compilar, puede ejecutar qemu realview-pbx-a9

Ejecutar qemurealview-pbx-a9

  • Escriba un script de shell de qemu.sh, el contenido es el siguiente y chmod +x qemu.shestablezca el permiso ejecutable

  • ¿Dónde está el producto compilado de out/realview-pbx-a9/Huawei_LiteOS.binqemu ?realview-pbx-a9

#!/bin/bash

qemu-system-arm -machine realview-pbx-a9 \
    -smp 4 -m 512M \
    -kernel out/realview-pbx-a9/Huawei_LiteOS.bin \
    -nographic
  • correr./qemu.sh

Insertar descripción de la imagen aquí

  • Entró en el shell de LiteOS, LiteOS comenzó a ejecutarse

resumen

  • Este artículo registra realview-pbx-a9la construcción del entorno y el funcionamiento del sistema de LiteOS en qemu.

  • Más adelante, continuaré familiarizándome con LiteOS, intentaré usar GDB para depurar el kernel de LiteOS basado en qemu y comprenderé el proceso de inicio del kernel, los módulos del kernel, etc.

Supongo que te gusta

Origin blog.csdn.net/tcjy1000/article/details/132527819
Recomendado
Clasificación