Um “guia” para portar o U-Boot
- por Sergio Prado
Já passou pelo processo de portar o U-Boot para uma plataforma de hardware?
O código abaixo deve ajudar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
int main(int argc, char *argv[]) { sighandler_t no_more_time; signal(SIGALRM, no_more_time); alarm(PROJECT_DEADLINE - toSec (3 * WEEK)); if (available_money > available_manpower) { Pay consultant to port U-Boot; return 0; } Download latest U-Boot source; Subscribe to u-boot mailing list; if (clueless) email("Hi, I am new to U-Boot, how do I get started?"); while (learning) { Read the README file in the top level directory; Read http://www.denx.de/twiki/bin/view/DULG/Manual; Read applicable *.README; Read the source, Luke; /* find . -name "*.[chS]" | xargs grep -i <keyword> */ } if (available_money > toLocalCurrency ($2500)) Buy a BDI3000; else Add a lot of aggravation and time; if (a similar board exists) { /* hopefully... */ cp -a board/<similar> board/<myboard> cp include/configs/<similar>.h include/configs/<myboard>.h } else { Create your own board support subdirectory; Create your own board include/configs/<myboard>.h file; } Edit new board/<myboard> files Edit new include/configs/<myboard>.h while (!accepted) { while (!running) { do { Add / modify source code; } until (compiles); Debug; if (clueless) email("Hi, I am having problems..."); } Send patch file to the U-Boot email list; if (reasonable critiques) Incorporate improvements from email list code review; else Defend code as written; } return 0; } void no_more_time (int sig) { hire_a_guru(); } |
Esta brincadeira, que ficou bem bacana e descreve de certa forma o processo de porte do U-Boot, foi o resultado de algumas mensagens enviadas por Jerry Van Barenna na lista de discussão do U-Boot em outubro/2002.
Ficou tão legal que acabou indo para o arquivo README do projeto.
Bacana, não? :)
Sergio Prado.