Difference between revisions of "DevGuide/DesignOverview"
Jump to navigation
Jump to search
Line 19: | Line 19: | ||
=== Modularity === | === Modularity === | ||
[[Image:modularity.png]] | |||
-Separation of concerns | -Separation of concerns | ||
-Maintenability | -Maintenability | ||
-Interface | -Interface | ||
-C provide no dedicated mechanism for modularity | -C provide no dedicated mechanism for modularity | ||
-Main issues with modularity are | -Main issues with modularity are configuration and dependancies | ||
[[Image:dependancies_example.png]] | |||
=== Hardware abstraction === | |||
-Segregate hardware dependant modules | |||
[[Image:hardware_abstraction.png]] | |||
=== Runtime Efficiency === | |||
bad : | |||
<nowiki> | |||
switch(UART) { | |||
case UART0 : UARTO_write(...); break; | |||
case UART1 : UART1_write(...); break; | |||
} | |||
</nowiki> | |||
<nowiki> | |||
good : | |||
#define UartWrite(x) UART ## _write(x) | |||
UartWrite(...); | |||
</nowiki> |
Revision as of 05:21, 13 May 2008
Functional Diagram
Design Goals
-Static approach -Modularity -Hardware absraction -Runtime efficiency
Static Approach
-only "things that needs to be changed during flight are changeable -maximise compilation time resolutions
advantages Error checking Efficiency Safety/Robustness
Modularity
-Separation of concerns -Maintenability -Interface -C provide no dedicated mechanism for modularity -Main issues with modularity are configuration and dependancies
Hardware abstraction
-Segregate hardware dependant modules
Runtime Efficiency
bad :
switch(UART) { case UART0 : UARTO_write(...); break; case UART1 : UART1_write(...); break; } good : #define UartWrite(x) UART ## _write(x) UartWrite(...);