¿Todos los núcleos Cortex M0 / M3 pueden hacer esto?
LDRH r0, [0x8001]
Esto sugeriría que sí, pero No veo nada específico sobre los núcleos Cortex-M.
¿Todos los núcleos Cortex M0 / M3 pueden hacer esto?
LDRH r0, [0x8001]
Esto sugeriría que sí, pero No veo nada específico sobre los núcleos Cortex-M.
1) Como Cortex-M conjunto de instrucciones doc sugiere, la construcción en su ejemplo no cumple con la sintaxis. El segundo operando debe ser un registro con compensación inmediata opcional.
2) Como restricciones de instrucción En este estado, la dirección calculada debe ser divisible por el número de bytes en la transacción. En tu caso es una media palabra, por lo tanto, divisible por dos.
3) Generalmente (para Cortex-M0), esta página indica que:
Un acceso alineado es una operación donde se usa una dirección alineada con palabras para una palabra, o acceso a múltiples palabras, o donde una media palabra alineada La dirección se utiliza para un acceso de media palabra. Los accesos byte son siempre. alineado. No hay soporte para accesos no alineados en el Cortex-M0 procesador. Cualquier intento de realizar una operación de acceso a la memoria no alineada da como resultado una excepción HardFault.