Guía de inicio de RT-Thread Smart ~

RT-Thread Smart (denominado rt-smart) es una nueva rama derivada del sistema operativo RT-Thread. Está dirigida a chips con MMU y aplicaciones de alta gama, como chips de la serie ARM Cortex-A, chips MIPS y chips RISC-V con MMU Espere. rt-smart permite un proceso independiente y completo basado en el sistema operativo RT-Thread, mientras se ejecuta en un modo de microkernel híbrido.

El paquete de software rt-smart.zip es un paquete de software de experiencia de usuario para RT-Thread Smart, que se puede ejecutar en la máquina VExpress-A9 emulada por QEMU o en la placa de desarrollo Raspberry Pi 4B. Este documento es para QEMU, la placa de desarrollo Raspberry Pi 4B para comenzar rápidamente el documento de la guía de inicio rt-smart.

Descripción del paquete


Descargue el paquete de software rt-smart

Puede descargar el paquete de software rt-smart en el siguiente enlace, el nombre del archivo es rt-smart-20201125.zip:

https://realthread.cowtransfer.com/s/1c2b64ba968748

Descomprímalo, asumiendo que el nombre del directorio descomprimido es rt-smart, y rt-smart se usa para representar este nombre de directorio a continuación. Las descripciones y los directorios principales relacionados se muestran en la siguiente figura:

Prepare la cadena de herramientas

Para entornos Linux y Windows, debe descargar la cadena de herramientas correspondiente arm-linux-musleabi. Si es el paquete de software rt-smart, se incluye la cadena de herramientas en el entorno Linux.

● Cadena de herramientas de la versión de Linux: install_arm-linux-musleabi_for_x86_64-pc-linux-gnu.tar

● Cadena de herramientas de la versión de Windows: install_arm-linux-musleabi_for_i686-w64-mingw32

Enlace de descarga de Toolchain:

https://realthread.cowtransfer.com/s/1c2b64ba968748

Descargue y utilice la cadena de herramientas adecuada según su propio entorno de desarrollo.

Después de la descarga, descomprima y expanda al directorio `rt-smart / tools / gnu_gcc`. Las variables de entorno establecidas por smart-env.bat / sh en el directorio rt-smart, donde la ruta de la cadena de herramientas apunta a este directorio.

Compile bajo Linux y ejecútelo en el entorno de simulación QEMU

En el sistema Linux, es necesario instalar algún entorno básico antes de compilar rt-smart. Este documento se basa en el funcionamiento del entorno del sistema Ubuntu16.04, otras versiones de Linux son similares.

Instalar el entorno de compilación

Primero instale otras herramientas y paquetes de software que sean necesarios durante la compilación. Puede instalarlos mediante los siguientes comandos:

1sudo apt-get update
2sudo apt-get install vim scons git bzip2 net-tools
3sudo apt-get install python-all python-all-dev
4sudo apt-get install qemu-system-arm qemu-system-common qemu-utils

El comando anterior instalará algunas herramientas básicas del sistema, entorno Python, scons, herramientas qemu, etc.

Compila la aplicación

 1# 进入到rt-smart目录
 2cd rt-smart
 3
 4# 设置对应的环境变量,和原RT-Thread相比,多了RTT_CC_PREFIX环境变量
 5source smart-env.sh
 6
 7# 编译用户态程序
 8cd userapps
 9scons
10
11scons: Reading SConscript files ...
12scons: done reading SConscript files.
13scons: Building targets ...
14CC build/hello/main.o
15CC build/ping/main.o
16CC build/pong/main.o
17CC build/vi/optparse-v1.0.0/optparse.o
18CC build/vi/vi.o
19CC build/vi/vi_utils.o
20CC build/webclient/main.o
21LINK root/bin/hello.elf
22LINK root/bin/ping.elf
23LINK root/bin/pong.elf
24LINK root/bin/vi.elf
25LINK root/bin/webclient.elf
26scons: done building targets.

Después de que la compilación sea exitosa, las aplicaciones bajo `userapps / apps` se compilarán en archivos ejecutables elf individuales y se colocarán en el directorio` userapps / root / bin`, que se puede convertir en romfs y matrices en lenguaje C. Se utiliza el kernel rt-smart, de modo que se puede ejecutar directamente sin depender de otros sistemas de archivos. Para generar romfs y matrices en lenguaje C, puede usar la siguiente línea de comando:

1cd userapps
2python ../tools/mkromfs.py root ../kernel/bsp/qemu-vexpress-a9/applications/romfs.c

Compilar el kernel inteligente rt

 1cd rt-smart/kernel/bsp/qemu-vexpress-a9
 2scons
 3... ...
 4CC build/kernel/src/thread.o
 5CC build/kernel/src/timer.o
 6LINK rtthread.elf
 7arm-linux-musleabi-objcopy -O binary rtthread.elf rtthread.bin
 8arm-linux-musleabi-size rtthread.elf
 9   text    data     bss     dec     hex filename
101219480   40652  122444 1382576  1518b0 rtthread.elf
11scons: done building targets.

Si la compilación es correcta, se generará el archivo del kernel rtthread.elf.

Ejecución de simulación

Ejecutar directamente a través de la placa de desarrollo vexpress-a9 simulada por qemu:

 1cd rt-smart/kernel/bsp/qemu-vexpress-a9
 2./qemu-nographic.sh
 3
 4 \ | /
 5- RT -     Thread Smart Operating System
 6 / | \     5.0.0 build Nov 15 2020
 7 2006 - 2020 Copyright by rt-thread team
 8lwIP-2.0.2 initialized!
 9try to allocate fb... | w - 640, h - 480 | done!
10fb => 0x61100000
11[I/sal.skt] Socket Abstraction Layer initialize success.
12[I/SDIO] SD card capacity 65536 KB.
13Dir /mnt mount failed!
14hello rt-thread
15msh />
16msh />/bin/hello.elf
17msh />hello world!

La forma de salir de qemu: "Ctrl + A, X". También ejecutamos la aplicación compilada `/ bin / hello.elf` anterior, y vimos que mostraba` ¡hola mundo! '.

Cuando se ejecuta por primera vez, se mostrará el mensaje `¡Fallo en el montaje de Dir / mnt!`. Esto se debe a que al comienzo de la ejecución, el script qemu generará un archivo sd.bin vacío como una tarjeta SD para vexpress-a9. Entonces, en la primera ejecución, sd0 debe formatearse

 1 \ | /
 2- RT -     Thread Smart Operating System
 3 / | \     5.0.0 build Nov 24 2020
 4 2006 - 2020 Copyright by rt-thread team
 5lwIP-2.0.2 initialized!
 6try to allocate fb... | w - 640, h - 480 | done!
 7fb => 0x61100000
 8[I/sal.skt] Socket Abstraction Layer initialize success.
 9[I/SDIO] SD card capacity 65536 KB.
10[I/SDIO] switching card to high speed failed!
11Dir /mnt mount failed!
12hello rt-thread
13msh />mkfs sd0
14msh />
15
16# Ctrl + A, X退出
17QEMU: Terminated
18
19bernard@fuchsia-NUC8i7BEH:~/workspace/rt-smart/smart/kernel/bsp/qemu-vexpress-a9$ ./qemu-nographic.sh
20 \ | /
21- RT -     Thread Smart Operating System
22 / | \     5.0.0 build Nov 24 2020
23 2006 - 2020 Copyright by rt-thread team
24lwIP-2.0.2 initialized!
25try to allocate fb... | w - 640, h - 480 | done!
26fb => 0x61100000
27[I/sal.skt] Socket Abstraction Layer initialize success.
28[I/SDIO] SD card capacity 65536 KB.
29[I/SDIO] switching card to high speed failed!
30file system initialization done!
31hello rt-thread
32msh />

Compile en Windows y ejecute en Raspberry Pi 4B

También se puede compilar en Windows y ejecutar en la placa de desarrollo qemu o Raspberry Pi 4B. Aquí mencionamos principalmente cómo ejecutarlo en Raspberry Pi 4B.


Prepare el entorno de compilación

Para compilar rt-smart en Windows, puede utilizar la herramienta env de RT-Thread. Para descargar e instalar la herramienta env, consulte: https://www.rt-thread.org/page/download.html

Asegúrese de que env se pueda usar normalmente. Debido a que el paquete rt-smart.zip no incluye la cadena de herramientas en el entorno de Windows, recuerde instalar la sección de preparación de la cadena de herramientas descrita anteriormente para descargar la cadena de herramientas de Windows y descomprimirla en `rt-smart \ tools \ gnu_gcc`. Abra la ventana de terminal de env, cambie al directorio raíz del paquete de código rt-smart, ejecute smart-env.bat, establecerá ciertas variables de entorno y, a continuación, podrá utilizar el entorno de desarrollo inteligente general.

1#进入rt-smart目录,设置环境变量
2cd rt-smart
3> smart-env.bat

Nota: Ejecute smart-env.bat aquí para configurar el entorno, incluye la configuración del compilador y también establece el prefijo de la cadena de herramientas. Puede ingresar el siguiente comando en la terminal env para ver si el resultado devuelto es válido:

1# 查看环境变量是否生效
2> set RTT_CC_PREFIX
3RTT_CC_PREFIX=arm-linux-musleabi-

Compila la aplicación

Al compilar una aplicación, el uso es similar al de Linux:

1#进入userapps目录进行编译
2cd rt-smart\userapps
3scons


Compilar el kernel inteligente rt

 1#进入raspberry-pi\raspi4-32目录进行编译
 2cd rt-smart\kernel\bsp\raspberry-pi\raspi4-32
 3scons
 4... ...
 5CC build/kernel/src/signal.o
 6CC build/kernel/src/thread.o
 7CC build/kernel/src/timer.o
 8LINK rtthread.elf
 9arm-linux-musleabi-objcopy -O binary rtthread.elf kernel7.img
10arm-linux-musleabi-size rtthread.elf
11   text    data     bss     dec     hex filename
12 710780   40448   64730  815958   c7356 rtthread.elf
13scons: done building targets.

Una vez que la compilación sea correcta, se generará el archivo kernel7.img en el directorio actual, que es la versión de 32 bits de la Raspberry Pi. Actualmente, rt-smart solo admite sistemas de 32 bits, por lo que se ejecuta en modo de 32 bits en Raspberry Pi 4B.

Ejecutar en Raspberry Pi

Preparar la conexión de hardware

Para ejecutar en Raspberry Pi 4B, debe preparar la siguiente lista de hardware y conectar el cable serie a la placa de desarrollo. El diagrama de conexión es el siguiente:

1. Raspberry Pi 4B

2. Tarjeta SD (32 GB o menos)

3.Cable serial USB a TTL

4. Cable de red

5. TYPE-C (para fuente de alimentación)

6. Lector de tarjetas (utilizado para escribir archivos compilados en la tarjeta SD)

Prepare el software en la tarjeta SD

Para cargar la Raspberry Pi, algunos archivos de arranque deben colocarse en la tarjeta SD. rpi4_rt-smart_boot.zip es para cargar algunos archivos de arranque para Raspberry Pi, que se pueden descargar desde la siguiente dirección:

https://realthread.cowtransfer.com/s/1c2b64ba968748

Descomprima el archivo descargado y colóquelo en el directorio raíz vacío de la tarjeta SD junto con kernel7.img, como se muestra en la figura siguiente, donde el archivo elf ejecutable compilado en el directorio `userapps \ root \ bin` se almacena en la carpeta bin.

Abra el asistente de depuración del puerto serie, conecte la alimentación, puede ver que el programa se ha estado ejecutando normalmente, ingrese al directorio bin para ejecutar el programa de muestra:

 1heap: 0xc00c9a0a - 0xc40c9a0a
 2\ | /
 3- RT -     Thread Smart Operating System
 4 / | \     5.0.0 build Nov 15 2020
 5 2006 - 2020 Copyright by rt-thread team
 6lwIP-2.0.2 initialized!
 7version is B1
 8bcmgenet: PHY startup ok!
 9[I/sal.skt] Socket Abstraction Layer initialize success.
10[I/SDIO] SD card capacity 31465472 KB.
11found part[0], begin: 4194304, size: 256.0MB
12found part[1], begin: 272629760, size: 29.772GB
13file system initialization done!
14hello rt-thread!
15msh />/bin/hello.elf
16msh />hello world!


1. Mesa redonda virtual Parte 1: Seguridad de la información del sistema integrado

2. ¿ El secreto del 5G de Huawei estaba originalmente en manos de un turco? !

3. Se publican las últimas clasificaciones de semiconductores y Nvidia logra un crecimiento del 50%.

4. [MCU] Un programa de actualización de IAP "flexible y que ahorra recursos"

5. ¿Por qué RISC-V se está convirtiendo en un punto caliente?

6. Introducción al sistema operativo Hongmeng adecuado para desarrolladores ~

Descargo de responsabilidad: este artículo se reproduce en línea y los derechos de autor pertenecen al autor original. Si está involucrado en los problemas de derechos de autor de la obra, comuníquese con nosotros, confirmaremos los derechos de autor según los materiales de certificación de derechos de autor que proporcione y pagaremos la remuneración del autor o eliminaremos el contenido.

Supongo que te gusta

Origin blog.csdn.net/DP29syM41zyGndVF/article/details/110412136
Recomendado
Clasificación