Digamos que tengo un programa muy simple que funciona perfectamente bien en un procesador ARM Cortex M0+. ¿Cuánto tendré que cambiar para que funcione en un procesador ARM Cortex M4, suponiendo que ambos estén fabricados por la misma empresa y que haya importado el nuevo encabezado de núcleos?
Simplemente no puedo pensar en ninguna razón por la que no funcionaría. Utilizan un conjunto de instrucciones similar. Quiero decir que el M4 tiene un conjunto de instrucciones Thumb-2 mucho más ampliado que el M0+. Según mi experiencia, las empresas mantienen el mismo esquema de nombres cuando crean los encabezados de sus dispositivos ARM.
La CPU no debería darte ningún problema, ya que dices que el conjunto de instrucciones de un M4 es un superconjunto del conjunto de instrucciones M0/M0+. Tenga en cuenta que el tiempo puede ser diferente, por lo que el tiempo basado en espera ocupada podría no funcionar igual.
Los periféricos pueden ser un PITA, no asumiría que son iguales a menos que las hojas de datos digan lo mismo.
Si su software está en formato ASM/compilado, funcionará (ya que Cortex M4 es un superconjunto de Cortex M0), pero no será óptimo.
Si su software está en C/C++ (esencialmente se puede volver a compilar), tendrá que elegir:
Sin embargo, tenga en cuenta que los periféricos pueden no ser totalmente compatibles, especialmente si el proveedor no se preocupa por dicha compatibilidad. Si el proveedor se preocupa y su software cambia los bits reservados de los valores de reinicio, es posible que los periféricos no funcionen como se esperaba.
Majenko
chico funky
estrella azul
chris stratton