Actualmente estoy explorando la programación integrada con procesadores ARM. Mi clase de sistemas incorporados nos tiene programando en un Atmel SAMD20 (Cortex M0 +). Nuestro manual de laboratorio explica en detalle cómo utilizar una biblioteca Atmel para acceder a los registros en el procesador para controlar los pines GPIO.
Lo que he estado tratando de aprender en mi tiempo libre es cómo ponerme en marcha con un microcontrolador diferente, sabiendo que el código será algo diferente. Leí sobre CMSIS, que parece ser una forma conveniente de comenzar a programar en nuevos microcontroladores utilizando el mismo núcleo ARM. Sin embargo, diferentes proveedores de silicio tendrán un número diferente de puertos / periféricos GPIO conectados al microcontrolador. ¿Cómo puede CMSIS mantener la coherencia entre estos puertos GPIO cuando son diferentes entre diferentes chips? ¿O es que CMSIS no maneja los puertos GPIO y solo las cosas relacionadas con ARM Core?
Si este último es el caso, ¿significa esto que debo consultar las hojas de datos del proveedor para saber cómo codificar un microcontrolador específico? Estoy viendo los microcontroladores STM32 en este momento y tengo problemas para localizar cualquier cosa que documente sus archivos de encabezado. Estoy un poco perdido y abrumado en este momento, por lo que cualquier consejo y dirección sería apreciado.