Cree un entorno de compilación cruzada para STM32MP157 en ubuntu

ST Company ha lanzado un producto de procesador multinúcleo de un solo chip de deconstrucción heterogénea Cortex + A / cortex-M. Aunque actualmente solo hay productos de la serie A7 plus M4 de un solo núcleo o de doble núcleo, el rendimiento de MPU parece compararse con los productos de 4 núcleos. Es un poco más débil, pero combina el procesador coetex-A que puede ejecutar el sistema operativo Linux y el procesador cortex-M4 con un fuerte rendimiento en tiempo real y ricos periféricos Tiene su singularidad en aplicaciones integradas. Compró una placa de desarrollo STM32MP157 de Mir Technology para experimentarla. Las mercancías aún están en camino, pero el expreso de SF aún no ha llamado a la puerta. Primero mire la información y configure el entorno de desarrollo.

Serie STM32MP1

Actualmente hay tres productos en la serie

  1. STM32MP157: núcleo Cortex-A7 dual a 800 MHz, núcleo Cortex-M4 a 209 MHz, GPU 3D, interfaz de pantalla DSI y CAN FD
  2. STM32MP153: núcleo Cortex-A7 dual a 800 MHz, núcleo Cortex-M4 a 209 MHz y CAN FD
  3. STM32MP151: núcleo Cortex-A7 único a 800 MHz, núcleo Cortex-M4 a 209 MHz

 

Aquí se toma el STM32 MP157 como ejemplo para presentar las características de este producto:

Potencia del procesador

  • Núcleos Dual Cortex®-A7 funcionando a 800 MHz 
    • Caché de instrucciones L1 de 32 KB
    • Caché de datos L1 de 32 KB
    • Caché de nivel 2 de 256 KB
  • Núcleo Cortex®-M4 funcionando a 209 MHz
    • Unidad de coma flotante de precisión simple (FPU)
    • Un conjunto completo de instrucciones del procesador de señal digital (DSP)
    • La unidad de protección de memoria se utiliza para mejorar la seguridad de la aplicación.

Circuitos periféricos

  •   1 puerto Gigabit Ethernet
  •   2 interfaces CAN-FD
  •   6 puertos SPI
  •   4 × UART + 4 × USART

monitor

  • GPU 3D
  • LCD-TFT 
  • MIPI® DSI 2

 

Esta configuración se utiliza para IoT a pequeña escala, los controladores industriales ya son suficientes. Y el precio al por mayor es de aproximadamente $ 12. Y el precio de los productos de la serie STM32H7 no es muy diferente. De hecho, a veces la elección de MCU no se basa completamente en la frecuencia, el precio y la cantidad de núcleos de la MCU. También depende de si se cumplen los requisitos del software. Necesitamos implementar la carga dinámica de software y realizar la componenteización del software. Por lo tanto, si el procesador tiene función MMU, todo el cortex-M4 no puede cumplir con los requisitos. Si se usa Rockchip, la MCU de Allwinner, la cantidad de núcleos es grande, el precio es bajo, pero los circuitos periféricos son pocos. Por supuesto, la serie i.MX de NXP debería ser buena. Pero el imax 6 parece un poco antiguo y el circuito periférico no cumple completamente con nuestros requisitos.

 

Entorno de desarrollo

Una desventaja de STM32MP1 es que es demasiado nuevo, hay muy pocos artículos que se pueden encontrar en Internet y la mayoría de ellos se desechan sin cabeza ni cola. Depende principalmente de la wiki de ST. Articulo de referencia:

Instale el SDK

Crea una aplicación simple de hola mundo

 

Lo primero que obtienes es compilar una aplicación hello world y dejar que se ejecute.

1 Descargar SDK

SDK del paquete para desarrolladores

Una vez completada la descarga, descomprímalo.

2  Cree un espacio de trabajo STM32MPU_workspace y cree varias carpetas en él

  -tmp: se utiliza para almacenar el SDK descomprimido

      - Paquete de desarrollo

            -SDK    

3 Ejecute Install.sh

Ingrese tmp para ejecutar el shell de instalación del SDK

yao@yao-dc:~/yao2020/STM32MPU_workspace/tmp/stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sdk$ ./st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1-openstlinux-5.4-dunfell-mp1-20-06-24 -d /home/yao/yao2020/STM32MPU_workspace/Develop-Package/SDK

Luego instálelo completamente, sin problemas.

4 Inicie el SDK

 yao@yao-dc:~/yao2020/STM32MPU_workspace/Develop-Package$ source SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

No sé por qué, ¿tengo que empezarlo todo el tiempo?

5 Verifique la versión

yao@yao-dc:~/yao2020/STM32MPU_workspace/Develop-Package$ $CC --version
arm-ostl-linux-gnueabi-gcc (GCC) 9.3.0

6 Escribir programa de saludo

#include <stdio.h>
int main(void){
    printf("Hello!\n");
    return 0;
}

7 Compilar

(base) yao@yao-dc:~/yao2020/STM32MPU_workspace$ $CC hello.cpp -o hello

¡La compilación es un éxito! ¡Escribamos aquí primero! SF Express Courier entró en la comunidad.

8 Descarga a la versión de desarrollo

El mensajero envió la placa de desarrollo y los accesorios del embalaje estaban bien, lo que indica que todavía estaba en color. Conéctese como ellos lo hacen. El DHCP de la dirección IP está disponible. Después de conectarse al enrutador, 192.168.31.194 se asigna automáticamente (a través del comando ifconfig en el modo de terminal serial. Después de eso, el terminal serial no es necesario.

Cree un espacio de trabajo de directorio de trabajo en la placa de desarrollo

espacio de trabajo mkdir

Utilice scp para transferir el saludo compilado a la placa de desarrollo

(base) yao@yao-dc:~/yao2020/STM32MPU_workspace$ scp hello [email protected]:/home/root/workspace
hello                                                   100%   11KB  11.4KB/s   00:00    

9 Utilice ssh para realizar una terminal remota

ssh [email protected]

10 Prueba C ++

#include <stdio.h>
class hello {
    public:
     void sayHello();
};
void hello::sayHello(){
     printf("Hello! from object\n");
}
int main(void){
   hello Hi;
   Hi.sayHello();
    return 0;
}

Compila y descarga, no hay problema.

Supongo que te gusta

Origin blog.csdn.net/yaojiawan/article/details/109184023
Recomendado
Clasificación