Autor Tema: STM32H7, the Most Powerful Cortex-M7 MCU  (Leído 2419 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
STM32H7, the Most Powerful Cortex-M7 MCU
« en: 06 de Mayo de 2017, 03:35:43 »
.

Parece que ST se ha picado en la guerra de los M7. Anuncian, aunque todavía no están a la venta, sus Cortex M7, STM32H7 a 400Mhz, 2Mb Flash, 1M RAM. Faltará ver precio, disponibilidad y tarjetas de evaluación.

http://blog.st.com/stm32h7-powerful-cortex-m7-coremark/
http://www.st.com/en/microcontrollers/stm32h7-series.html?querycriteria=productId=SS1951





Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:STM32H7, the Most Powerful Cortex-M7 MCU
« Respuesta #1 en: 06 de Mayo de 2017, 04:46:14 »
Que burro! ¿A ese bicho se le puede poner freeRTOS?. Al final sacaran linux para M7 (si no lo hay ya) aunque creo que sería desvirtuarlo...
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:STM32H7, the Most Powerful Cortex-M7 MCU
« Respuesta #2 en: 06 de Mayo de 2017, 15:26:29 »
.

Creo que esto ya es el límite de los Cortex-M, de ahí para arriba ya están los MPU Cortex-Ax, o igual siguen subiendo la potencia de los microcontroladores. Yo prefiero por ahora no tener por debajo ningún sistema operativo.

Lo bueno, al menos con los Atmel SAM S70, es que son baratísimos, no tiene sentido seguir usando los Cortex M4, si los M7 son más baratos y más potentes.

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:STM32H7, the Most Powerful Cortex-M7 MCU
« Respuesta #3 en: 07 de Mayo de 2017, 05:30:09 »
Lo digo porque si tienen tanta potencia sacarle todo el jugo al micro con una simple máquina de estados suena complejo...
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:STM32H7, the Most Powerful Cortex-M7 MCU
« Respuesta #4 en: 07 de Mayo de 2017, 11:18:33 »
Que burro! ¿A ese bicho se le puede poner freeRTOS?. Al final sacaran linux para M7 (si no lo hay ya) aunque creo que sería desvirtuarlo...

Imagino que si, ya deberia haber ports para los Cortex-m7 que hace rato estan en el mercado. Para M4 hay y se puede poner.

Lo digo porque si tienen tanta potencia sacarle todo el jugo al micro con una simple máquina de estados suena complejo...

A no ser que ocurra como es el caso de los Kinectis M7 que estan desarrollados unicamente para sistemas en tiempo real por eso no tienen esos otros perifericos y justamente para eso lo vas a usar (solo tiempo real), estos parecen querer cumplir un bache entremedio de un microcontrolador y un microprocesador, ya que proveen demasiados modulos/interfaces que ocuparian tiempo como para atender de la misma forma que los de kinectis , creo que por la potencia del micro yo utilizaria FreeRTOS seguramente.

FreeRTOS deberia facilitarte la programación, pero al menos en mi experiencia lo unico que hizo fue complicarmela mas con otras cosas. Programo como si fueran tareas asi que simplemente debo "separarlas" y agregarles las cosas del RTOS, pero el manejo de pasar datos entre uno y otro, señalizacion, pila, etc y con poca experiencia y la falta de pdf sencillo con todas las funciones se me hizo un poco complicado.

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:STM32H7, the Most Powerful Cortex-M7 MCU
« Respuesta #5 en: 07 de Mayo de 2017, 13:15:07 »
Me asusta lo que comentas de freertos KILLERJC. Me gustaría probarlo porque ya con los PI32MZ me da la sensación de que pierdo el control de lo que pasa: interrupciones, adc, usb, varios timer, gráficos (aunque con DMA), etc. es complejo atender con máquina de estados y no saltarte nuna "un loop"...
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:STM32H7, the Most Powerful Cortex-M7 MCU
« Respuesta #6 en: 07 de Mayo de 2017, 13:51:02 »
.

A mi también me gustaría probar un día de estos el famoso Free RTOS del que tanto se habla. Entiendo que es un sistema operativo para micros, que permite multitarea. Alguna aplicación le sacaré, el problema es que hay tantas cosas que ver y probar, que no hay tiempo.

Pongo en Google Free RTOS M7, y que casualidad, el primer enlace es precisamente para rodarlo en un Atmel SAM V71, E70, S70.  http://www.freertos.org/Atmel_SAMV7_Cortex-M7_RTOS_Demo.html


Desconectado tsk

  • PIC18
  • ****
  • Mensajes: 257
Re:STM32H7, the Most Powerful Cortex-M7 MCU
« Respuesta #7 en: 07 de Mayo de 2017, 14:30:53 »
También tienes NuttX

Código: [Seleccionar]
$ ls | grep sam
sam3u-ek
sam4cmp-db
sam4e-ek
sam4l-xplained
sam4s-xplained
sam4s-xplained-pro
sama5d2-xult
sama5d3x-ek
sama5d3-xplained
sama5d4-ek
samd20-xplained
samd21-xplained
same70-xplained
saml21-xplained
samv71-xult

No lo he probado, pero dicen que es como tener instalado Linux.

https://www.youtube.com/playlist?list=PLd73yQk5Fd8JEsVD-lhwYRQKVu6glfDa8


Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:STM32H7, the Most Powerful Cortex-M7 MCU
« Respuesta #8 en: 07 de Mayo de 2017, 14:48:11 »
No es para asustarse, el tema esta es que los libros que lei y que enseñan FreeRTOS por ahi usan funciones que ya no existen.

O que vos tenes un ejemplo y cuando vas al manual te encontras que por ejemplo la configuracion posee el triple de opciones... Doy un ejemplo..

Esto es sacado de la pagina:

Código: C
  1. #ifndef FREERTOS_CONFIG_H
  2. #define FREERTOS_CONFIG_H
  3.  
  4. /* Here is a good place to include header files that are required across
  5. your application. */
  6. #include "something.h"
  7.  
  8. #define configUSE_PREEMPTION                    1
  9. #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
  10. #define configUSE_TICKLESS_IDLE                 0
  11. #define configCPU_CLOCK_HZ                      60000000
  12. #define configTICK_RATE_HZ                      250
  13. #define configMAX_PRIORITIES                    5
  14. #define configMINIMAL_STACK_SIZE                128
  15. #define configMAX_TASK_NAME_LEN                 16
  16. #define configUSE_16_BIT_TICKS                  0
  17. #define configIDLE_SHOULD_YIELD                 1
  18. #define configUSE_TASK_NOTIFICATIONS            1
  19. #define configUSE_MUTEXES                       0
  20. #define configUSE_RECURSIVE_MUTEXES             0
  21. #define configUSE_COUNTING_SEMAPHORES           0
  22. #define configUSE_ALTERNATIVE_API               0 /* Deprecated! */
  23. #define configQUEUE_REGISTRY_SIZE               10
  24. #define configUSE_QUEUE_SETS                    0
  25. #define configUSE_TIME_SLICING                  0
  26. #define configUSE_NEWLIB_REENTRANT              0
  27. #define configENABLE_BACKWARD_COMPATIBILITY     0
  28. #define configNUM_THREAD_LOCAL_STORAGE_POINTERS 5
  29.  
  30. /* Memory allocation related definitions. */
  31. #define configSUPPORT_STATIC_ALLOCATION         1
  32. #define configSUPPORT_DYNAMIC_ALLOCATION        1
  33. #define configTOTAL_HEAP_SIZE                   10240
  34. #define configAPPLICATION_ALLOCATED_HEAP        1
  35.  
  36. /* Hook function related definitions. */
  37. #define configUSE_IDLE_HOOK                     0
  38. #define configUSE_TICK_HOOK                     0
  39. #define configCHECK_FOR_STACK_OVERFLOW          0
  40. #define configUSE_MALLOC_FAILED_HOOK            0
  41. #define configUSE_DAEMON_TASK_STARTUP_HOOK      0
  42.  
  43. /* Run time and task stats gathering related definitions. */
  44. #define configGENERATE_RUN_TIME_STATS           0
  45. #define configUSE_TRACE_FACILITY                0
  46. #define configUSE_STATS_FORMATTING_FUNCTIONS    0
  47.  
  48. /* Co-routine related definitions. */
  49. #define configUSE_CO_ROUTINES                   0
  50. #define configMAX_CO_ROUTINE_PRIORITIES         1
  51.  
  52. /* Software timer related definitions. */
  53. #define configUSE_TIMERS                        1
  54. #define configTIMER_TASK_PRIORITY               3
  55. #define configTIMER_QUEUE_LENGTH                10
  56. #define configTIMER_TASK_STACK_DEPTH            configMINIMAL_STACK_SIZE
  57.  
  58. /* Interrupt nesting behaviour configuration. */
  59. #define configKERNEL_INTERRUPT_PRIORITY         [dependent of processor]
  60. #define configMAX_SYSCALL_INTERRUPT_PRIORITY    [dependent on processor and application]
  61. #define configMAX_API_CALL_INTERRUPT_PRIORITY   [dependent on processor and application]
  62.  
  63. /* Define to trap errors during development. */
  64. #define configASSERT( ( x ) ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
  65.  
  66. /* FreeRTOS MPU specific definitions. */
  67. #define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS 0
  68.  
  69. /* Optional functions - most linkers will remove unused functions anyway. */
  70. #define INCLUDE_vTaskPrioritySet                1
  71. #define INCLUDE_uxTaskPriorityGet               1
  72. #define INCLUDE_vTaskDelete                     1
  73. #define INCLUDE_vTaskSuspend                    1
  74. #define INCLUDE_xResumeFromISR                  1
  75. #define INCLUDE_vTaskDelayUntil                 1
  76. #define INCLUDE_vTaskDelay                      1
  77. #define INCLUDE_xTaskGetSchedulerState          1
  78. #define INCLUDE_xTaskGetCurrentTaskHandle       1
  79. #define INCLUDE_uxTaskGetStackHighWaterMark     0
  80. #define INCLUDE_xTaskGetIdleTaskHandle          0
  81. #define INCLUDE_eTaskGetState                   0
  82. #define INCLUDE_xEventGroupSetBitFromISR        1
  83. #define INCLUDE_xTimerPendFunctionCall          0
  84. #define INCLUDE_xTaskAbortDelay                 0
  85. #define INCLUDE_xTaskGetHandle                  0
  86. #define INCLUDE_xTaskResumeFromISR              1
  87.  
  88. /* A header file that defines trace macro can be included here. */
  89.  
  90. #endif /* FREERTOS_CONFIG_H */


Esto de un ejemplo de TI

Código: C
  1. #define FREERTOS_CONFIG_H
  2.  
  3. /*-----------------------------------------------------------
  4.  * Application specific definitions.
  5.  *
  6.  * These definitions should be adjusted for your particular hardware and
  7.  * application requirements.
  8.  *
  9.  * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
  10.  * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
  11.  *
  12.  * See http://www.freertos.org/a00110.html.
  13.  *----------------------------------------------------------*/
  14.  
  15. #define configUSE_PREEMPTION                1
  16. #define configUSE_IDLE_HOOK                 0
  17. #define configUSE_TICK_HOOK                 0
  18. #define configCPU_CLOCK_HZ                  ( ( unsigned long ) 50000000 )
  19. #define configTICK_RATE_HZ                  ( ( portTickType ) 1000 )
  20. #define configMINIMAL_STACK_SIZE            ( ( unsigned short ) 200 )
  21. #define configTOTAL_HEAP_SIZE               ( ( size_t ) ( 30000 ) )
  22. #define configMAX_TASK_NAME_LEN             ( 12 )
  23. #define configUSE_TRACE_FACILITY            1
  24. #define configUSE_16_BIT_TICKS              0
  25. #define configIDLE_SHOULD_YIELD             0
  26. #define configUSE_CO_ROUTINES               0
  27. #define configUSE_MUTEXES                   1
  28. #define configUSE_RECURSIVE_MUTEXES         1
  29. #define configCHECK_FOR_STACK_OVERFLOW      2
  30.  
  31. #define configMAX_PRIORITIES                ( ( unsigned portBASE_TYPE ) 16 )
  32. #define configMAX_CO_ROUTINE_PRIORITIES     ( 2 )
  33. #define configQUEUE_REGISTRY_SIZE           10
  34.  
  35. /* Set the following definitions to 1 to include the API function, or zero
  36. to exclude the API function. */
  37.  
  38. #define INCLUDE_vTaskPrioritySet            1
  39. #define INCLUDE_uxTaskPriorityGet           1
  40. #define INCLUDE_vTaskDelete                 1
  41. #define INCLUDE_vTaskCleanUpResources       0
  42. #define INCLUDE_vTaskSuspend                1
  43. #define INCLUDE_vTaskDelayUntil             1
  44. #define INCLUDE_vTaskDelay                  1
  45. #define INCLUDE_uxTaskGetStackHighWaterMark 1
  46.  
  47. /* Be ENORMOUSLY careful if you want to modify these two values and make sure
  48.  * you read http://www.freertos.org/a00110.html#kernel_priority first!
  49.  */
  50. #define configKERNEL_INTERRUPT_PRIORITY         ( 7 << 5 )    /* Priority 7, or 0xE0 as only the top three bits are implemented.  This is the lowest priority. */
  51. #define configMAX_SYSCALL_INTERRUPT_PRIORITY     ( 5 << 5 )  /* Priority 5, or 0xA0 as only the top three bits are implemented. */
  52.  
  53. #endif /* FREERTOS_CONFIG_H */

O tomas un ejemplo y desarrollas de ahi quedandote con una version "vieja" de FreeRTOS, o te actualizas a la nueva y emepezas a buscar que es todo eso jeje.

PD:

Dejo 2 PDF explicando:

http://www.freertos.org/Documentation/161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf
http://www.freertos.org/Documentation/FreeRTOS_Reference_Manual_V9.0.0.pdf

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re:STM32H7, the Most Powerful Cortex-M7 MCU
« Respuesta #9 en: 07 de Mayo de 2017, 15:28:28 »
Para los M7 esta ucLinux.

Saludos!
-
Leonardo Garberoglio

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re:STM32H7, the Most Powerful Cortex-M7 MCU
« Respuesta #10 en: 07 de Mayo de 2017, 16:10:38 »
Puuuf! que de cosas! :D Como dice planeta: faltan horas para aprender tanto :(
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -