Documentos de Académico
Documentos de Profesional
Documentos de Cultura
T = 1,000 * x / 16,000,000
T -> ms
x -> ciclos de reloj
T = 1,000 * x / 16,000,000
Ejemplo en CoMic T -> ms
Código Fuente Instrucció Operador Operando Operando x -> ciclos
Resultado de reloj
# Ciclos Bytes
n 1 2
Entero a = 10;
Si( a < 50 ) { 1 = 10 a 2 2
Ciclo( Entero b=1; Salir 2 < a 50 R1 3
b==100 ) {
3 Si -> (==) R1 Falso JMP (11) 3
a = a + 1;
} 4 = 1 b 2 2
} 5 == B 100 R2 3
Sino { a = 7 * a; } 6 Ciclo R2 True JMP (10) 3
7 + A 1 R3 1
Tiempo aproximado 8 = R3 A 2
X=2+3+3+2+ 9 } -> (ciclo) JMP (5) 3
( (3+3+1+2+3) * 100 ) + 3
X = 1,213 ciclos 10 } -> (if) JMP (13) 3
11 * 7 a R4 2
T = 1,000 * (1,213) / 12 = R4 a 2
16,000,000
13 …
T = 0.075 ms
Consideraciones
Un microcontrolador
puede ejecutar una o
más instrucciones por
ciclo de reloj
Si un Arduino se queda
sin memoria SRAM, el
sketch compilará bien y
se cargará en el Arduino
Incluir librerías, sin problema, pero se
aumentará el uso de producirán efectos
memoria SRAM y flash inesperados
Criterios para mejorar el código
Hacer ver a los programadores que
optimicen su código desde el inicio.
Los criterios de optimización siempre
están definidos por el compilador.
Sugerir al programador
El primer ejemplo no está mal.
El compilador probablemente
considera que hacer su transformación
es mejor para el resultado final.
Ejemplo en CoMic
Permitir el Folding.
Recortar tiempos a largo plazo.
Dependiendo de la salida podría ser
beneficioso.
Algunas otras consideraciones
Evitar el código muerto.
Revisar los tiempos de evaluación de
cada bloque.
Tomar en cuenta la salida final de
código.
Herramientas para el
análisis del flujo de
datos.
• Depuradores
• Desensamblador
• Diagramas de flujo
• Diccionario de Datos
Depurador
• Permite correr otros programas, permitiendo al usuario ejercer cierto control
sobre los mismos a medida que los estos se ejecutan, y examinar el estado del
sistema (variables, registros, banderas, etc.) en el momento en que se presente
algún problema.
• El depurador permite detener el programa en:
• Punto de ruptura.
datos
Ayuda a mantener sincronizado el trabajo de
Diseñadores.