Cómo utilizar el lenguaje C para escribir código de alta calidad para MSP430
Los microprocesadores se utilizan generalmente en entornos específicos y propósitos específicos. Debido a consideraciones de costo, consumo de energía y volumen, generalmente se requiere ahorrar recursos tanto como sea posible y porque el hardware del microprocesador generalmente no admite las operaciones. Los números simbólicos y los números de punto flotante tienen bits operativos limitados, por lo que se debe tener cuidado al asignar variables. Otra cosa a tener en cuenta es que la velocidad y el consumo de memoria son a menudo dos objetivos irreconciliables. En la mayoría de los casos, los programadores deben hacer concesiones y compensaciones en función de la situación real.
Las cosas a tener en cuenta son las siguientes:
1) Generalmente, bajo la premisa de cumplir con los requisitos de operación, intente elegir un tipo de datos con menos bytes para la definición de variables.
Por ejemplo, los int y char más utilizados, int es de 16 bits y char es de 8 bits. Si no es necesario, no use int, y es mejor usar char sin signo cuando use. carbonizarse. Cuando se ejecuta, puede ver en la ventana de variables que las variables que usan el tipo unsigned char están en formato hexadecimal, mientras que las que usan int están en formato decimal. Si char no está definido como unsigned, aparecerá un signo negativo. Si no es necesario, allí. no hay necesidad de números negativos en 430.
2) Intente no utilizar tipos de datos demasiado largos, como long, long long y double.
3) El compilador C de MSP430 no admite direccionamiento de bits, así que intente reducir el número de bits en la operación, para variables con solo "sí" y "no", si la capacidad de la RAM lo permite, se pueden asignar como tipo char sin signo, lo que puede mejorar la velocidad de operación. Si se asigna como un determinado bit de un determinado byte, el consumo de memoria se puede reducir, pero la velocidad de operación se reducirá
4) Evite el uso de números de punto flotante e intente usar números de punto fijo para operaciones decimales. Si debe utilizar números de punto flotante, intente utilizar números flotantes de 32 bits en lugar de números dobles de 64 bits
5) Intente asignar variables como tipos de datos sin signo
6) Para variables de puntero , si su valor no cambia después de la declaración, declararlo como tipo constante, para que el compilador pueda optimizar mejor el código generado al compilar
7) Utilice variables locales en lugar de variables globales o variables estáticas tanto como sea posible posible Variable (estática). Esto ayudará al compilador a optimizar mejor el código generado al compilar
8) Evite usar el carácter de dirección & para variables locales. Debido a que esto evitará que el compilador coloque esta variable en el registro de la CPU, sino en la RAM, perdiendo así la oportunidad de optimización
9) Las variables utilizadas solo dentro del módulo se declaran estáticas. Es útil optimizar el. código
10) Si el espacio de la pila es limitado, intente reducir el nivel de llamadas a funciones y llamadas recursivas
11) Si hay demasiados parámetros para transmitir, los parámetros pueden formarse en una matriz o cuerpo de estructura y luego pasarlo por puntero
12) Algunas variables se usarán en programas de interrupción y programas de nivel ordinario, por lo que deben estar protegidas.
Declarar una variable como tipo volátil no la moverá cuando el compilador la optimice y el acceso a ella no se retrasará.
Para garantizar que las variables volátiles no se interrumpan, puede agregar la declaración de __moniter delante de la parte que accede a ella (es decir, la función que accede a ella)