Estoy escribiendo firmware para un PIC32MX, usando HiTech PICC32. Uno de los problemas que quiero evitar es que, dado que la mayoría de los pines tienen varios nombres (por ejemplo, AN0 = RB0 = CN2 = PGED1), yo u otra persona podría usar accidentalmente RB0 sin darme cuenta de que ya se utilizó AN0. (Esto en realidad puede ser catastrófico, ya que la configuración incorrecta de un pin analógico/digital puede ocasionar un consumo excesivo de corriente y liberación de humo esencial.)Macro que indica las clavijas de E/S utilizadas
Además de documentar exhaustivamente cada pin utilizado, me preguntaba si había una manera rápida de hacerlo. para resolver este problema al nivel de la codificación. Quiero una macro que las personas (principalmente yo mismo) puedan usar, digamos CLAIM_PIN(58)
, que emitirá una advertencia o un error si se ejecuta dos veces.
(No quiero esto a toda costa, si la única solución posible es demasiado horrible o imposible de mantener, entonces me olvidaré de eso y solo desarrollaré una reputación de romper a llorar o prenderme fuego o algo así. también vi esta pregunta sobre macro producing macros, que descarta eso.)
Debo aclarar: el código está escrito en varias unidades de compilación (al menos, creo que esto es lo que significa la frase). Tengo un archivo .h/.c para mi código A2D, similarmente para SPI, y de manera similar para varios periféricos que solo usan ciertos puertos de E/S. El espacio no es realmente un problema, mi código deja mucho espacio en el PIC32MX; también puedo usar otra bandera __DEBUG para eliminar el código de comprobación de PIN para el uso final.
sin respuesta, pero es una buena pregunta. (Supongo que podría ser más fácil si la gente de Microchip se saliera de sus culos y admitiera C++). –
Bueno, no tienen un compilador Linux de todos modos, entonces es HiTech para mí (prefiero sus macros de todos modos). – detly