Módulo controlador universal para Internet de las cosas. Pruebas de grasa
En este artículo demostraré los proyectos de prueba de la biblioteca FatFs portados al módulo K66BLEZ1. La biblioteca de código abierto FatFs es bien conocida por los programadores de microcontroladores e implementa el soporte para el sistema de archivos FAT32 en tarjetas SD y MMC. Una cosa indispensable en el desarrollo de registradores, controladores lógicos programables, grabadores de sonido, rastreadores, etc. Pero a veces puede convertirse en un cuello de botella en los sistemas en tiempo real.La introducción del módulo K66BLEZ1 se inició en este artículo:Módulo controlador universal para Internet de las cosas. Respirando vidaEl artículo mencionaba el paquete de software (SDK) para la familia de microcontroladores K66.En particular, en el SDK puede encontrar un ejemplo para probar FatFs. El ejemplo es muy simple y, por lo tanto, lo modifiqué para mayor practicidad.Organización de la salida de información de depuración.
Para que el ejemplo original del SDK funcione en la placa K66BLEZ1, no necesita realizar ningún cambio. Pero hay una cosa, pero! No habrá salida a la terminal de depuración. Dado que la placa del módulo no tiene un conector especial para la salida de depuración con la interfaz RS232.La depuración del módulo está diseñada para un trabajo estricto a través de la interfaz SWD y utilizando la tecnología Real Time Terminal (RTT) descrita en este artículo. Sin embargo, este enfoque puede no ser atractivo para los propietarios de adaptadores de depuración incompatibles con J-Link. Por lo tanto, no corrigí el código de salida de depuración en la aplicación, sino que lo redirigí a UART4. Una vez más, para evitar la creación de prototipos, aproveché J-Link. Las señales RX y TX del convertidor de puerto COM virtual UART <-> incorporado se envían a este adaptador en el conector SWD. Los usé Por lo tanto, la primera sintonización apareció en la placa del módulo. Se muestra en el diagrama a continuación en rojo.
(Haga clic para ampliar)es decir en la placa K66BLEZ1, suelde la conexión de las señales rojas del conector de depuración con las señales necesarias que provienen del microcontrolador.
(Click para ampliar)A continuación se muestra un diagrama del adaptador desde el conector J-Link al conector de depuración de la placa K66BLEZ1 para comprender de dónde provienen las señales del adaptador.
(Click para ampliar)Organización de proyectos.
Hice dos proyectos en IAR Embedded Workbench para el entorno ARM 7.40.7.Uno repite completamente el ejemplo de trabajar con FatFs desde el SDK del fabricante.Para una copia más conveniente del proyecto, su estudio y refactorización, extraje todos los archivos asociados con este proyecto del SDK y los transfirí a otra estructura de directorios más simple con menos archivos.Luego cambié la configuración para el UART de depuración en el archivo board.h .Por un costo máximo rendimiento en el archivo sdcard_FatFs.c reemplazar la función BOARD_BootClockRUN en BOARD_BootClockHSRUN , es decir, establecer la frecuencia del procesador a 180 MHz en su lugar120 MHzEl proyecto se encuentra aquí. Elsegundo proyecto se basa en el primero, pero con adiciones significativas.Este proyecto le permite probar la velocidad de apertura, creación, escritura, lectura, cierre y eliminación de archivos.El proyecto esta aquiDescripción de la prueba
Compilamos el proyecto en IAR y lo programamos a través del adaptador JTAG / SWD en el microcontrolador MK66FN2M0VLQ18 en la placa.Después de que se inicia el programa, se muestra un menú del siguiente tipo en el terminal:
(Haga clic para ampliar) Elmenú ofrece ejecutar una de las tres pruebas y la capacidad de cambiar varios parámetros de prueba.La prueba número 1 escribe secuencialmente el número especificado de archivos con el tamaño especificado. Se registran datos aleatorios obtenidos por la función rand. Cada registro va acompañado de una medición de los tiempos de apertura, grabación y cierre del archivo.Luego, los archivos se leen secuencialmente y se verifica su contenido, también se mide el tiempo de apertura, lectura y cierre del archivo.Si se establece el indicador Borrar, los archivos se eliminan y se mide el tiempo que lleva borrarlos.Para 3 grupos de operaciones: creación de archivos, lectura inversa y eliminación, se resumen las estadísticas.Así es como se ve la ventana para probar la escritura, lectura y eliminación de 5 archivos de tamaño 8192 baht.
(Haga clic para ampliar) Lacantidad de archivos y su tamaño se pueden cambiar arbitrariamente. Si los valores son demasiado grandes, el programa mostrará un mensaje sobre memoria insuficiente.La prueba número 2 crea, escribe, lee, elimina un archivo de un tamaño determinado y repite este número de veces.El nombre del archivo cambia cada vez. Aquí el número de entradas puede ser muy grande. La prueba le permite probar las tarjetas para completar el desgaste y, al mismo tiempo, ver una imagen de la degradación de la velocidad de escritura y lectura.Prueba número 3crea un archivo y escribe en él el número especificado (valor de Cnt de archivos) multiplicado por bloques del tamaño especificado. Luego, el procedimiento se repite para otro archivo. Este escenario le permite probar el modo de grabación continua típico de los dispositivos de grabación de audio con cambios de volumen.Resultados
En el tablero K66BLEZ1, la biblioteca FatFs mostró muy buenos resultados.Para las pruebas, utilizamos una tarjeta microSD de 8GB GOOD RAM SDU8GDMGR (10º grado).La velocidad de escritura promedio de un archivo de 32,768 bytes es de 5.1 Mb / s. Lavelocidad de escritura máxima de un archivo de 32768 bytes es de 11.8 Mb / s.La velocidad de lectura promedio de un 32768 byte es de 15.9 Mb / s Lavelocidad máxima de lectura de un archivo de 32,768 bytes es 16.2 Mb / s. Lasmediciones fueron tomadas por la prueba número 1 en 100 archivos.Se ha observado que la multiplicidad del tamaño del archivo al tamaño del clúster tiene un fuerte efecto en la velocidad de lectura y escritura.Además, con una gran cantidad de archivos, el tiempo de apertura comienza a influir en la velocidad general, que aumenta en dos órdenes de magnitud cuando la cantidad de archivos cambia de uno a cien.El valor práctico de las pruebas es que le permiten encontrar las opciones de formato de tarjeta óptimas, tamaños de archivo óptimos, así como optimizar los tamaños de bloque de los archivos grabados para obtener el máximo rendimiento.Las mismas pruebas ayudarán a ver y evaluar los retrasos de grabación esporádicos característicos de las tarjetas SD y MMC en relación con el funcionamiento de su mecanismo interno para nivelar el desgaste de los sectores de memoria.Todos los materiales relacionados con este proyecto se almacenan aquí : https://github.com/Indemsys/K66BLEZ1Source: https://habr.com/ru/post/es392955/
All Articles