Me pregunto si hay alguien que defina una variable en la región de banda de bits en el lenguaje de programación c para cortex-M3, particularmente LPC17XX.
He seguido el atributo del compilador para Keil ( __attribute __ ((bitband)) ) basado en el enlace pero cuando compruebo el rango de direcciones en el depurador, se ha definido fuera del alcance de la región de banda de bits y parece que el atributo no afecta al código, incluso cuando establecer la dirección de región más específica con este atributo __attribute __ ((at ())) ?
Por lo que sé, al hacer que un byte represente un bit directamente en el controlador de memoria, el procesador no necesita ejecutar un comando de secuencia de lectura + modificación + escritura para configurar / borrar o alternar un poco como en el centro de información ARM dice:
Esto permite que cada bit individual en la región de banda de bits sea directamente accesible desde una dirección alineada con palabras usando un solo LDR instrucción. También permite que los bits individuales se alternen desde C sin realizar una secuencia de instrucciones de lectura-modificación-escritura.
Mi otra pregunta es para establecer un poco lo que deberíamos escribir en el byte que representa un bit. Cualquier valor excepto cero o solo 1 es aceptado?
¿Qué hay de alternar el bit (sin la secuencia de tres pasos)?