Quick
index
main
eev
eepitch
maths
angg
blogme
dednat6
littlelangs
PURO
(C2,C3,C4,
 λ,ES,
 GA,MD,
 Caepro,
 textos,
 Chapa 1)

emacs
lua
(la)tex
maxima
git
agda
forth
squeak
icon
tcl
tikz
fvwm
debian
irc
contact

J2tech

http://en.wikipedia.org/wiki/Gcj
http://en.wikipedia.org/wiki/X_protocol
http://lists.freedesktop.org/archives/xorg/2007-September/028306.html
http://www.freedesktop.org/wiki/
http://www.microcross.com/
http://www.protech-ipc.com/ipc/product_imd_EF-21LF.asp
http://www.t2-project.org/
http://www.arm.linux.org.uk/docs/kerncomp.php

# (find-fline "~/LOGS/2007oct31.j2tech")
# (find-fline "~/LOGS/2007nov05.j2tech3")
# (find-available "qt3-dev-tools-embedded")
qtopia
qt-embedded

http://en.wikipedia.org/wiki/Cross-compilation
http://www.scratchbox.org/
http://buildroot.uclibc.org/
http://buildroot.uclibc.org/lists/buildroot/
http://www.eclipse.org/swt/faq.php
http://doc.trolltech.com/qtopia4.2/syscust-java.html
http://doc.trolltech.com/qtopia2.0/html/javaintegration.html
http://www.agr.feis.unesp.br/defers/noticias/index.php?idnoticia=1182685451
http://www.planalto.gov.br/CCIVIL/_Ato2007-2010/2007/Lei/L11487.htm
http://www.planalto.gov.br/ccivil/_Ato2004-2006/2005/Lei/L11196.htm
http://www.planalto.gov.br/ccivil/_Ato2004-2006/2006/Decreto/D5798.htm
# (find-es "qemu" "qemu-arm")
# (find-es "java")
# http://lists.debian.org/debian-arm/2007/11/msg00001.html
O ambiente de desenvolvimento
=============================
Hardware (real e emulado): 

 __Máquina Windows__       __Máquina linux: "big"__________________________                         
|                   |     | Debian com muitas ferramentas,                 |                        
|                   |     | pacotes-fonte (incluindo kernel),              |                        
|                   |     | cross-compilers, etc.                          |                        
|                   |     | Roda quatro máquinas virtuais                  |                        
|                   |     | emuladas com QEmu                              |                        
|                   |     |                                                |                        
|                   |     |    __QEmu: big86_____     __QEmu: small86__    |                        
|                   |     |   | Debian "normal"  |   | Debian reduzido |   |                        
|                   |     |   | Kernel padrão    |   | kernel mínimo   |   |                        
|                   |     |   | glibc            |   | uclibc          |   |                        
|                   |     |   | X "normal"       |   | X reduzido      |   |                        
|                   |     |   | gcc/gcj/gdb      |   | gdbserver       |   |                        
|                   |     |   | Ferramentas para |   |                 |   |                        
|                   |     |   | construir .debs  |   |                 |   |                        
|                   |     |   |__________________|   |_________________|   |                        
|                   |     |                                                |                        
|                   |     |    __QEmu: bigarm____     __QEmu: smallarm_    |      __imx21arm_______ 
|                   |     |   | Debian "normal"  |   | Debian reduzido |   |     | Debian reduzido |
|                   |     |   | Kernel padrão    |   | kernel mínimo   |   |     | kernel mínimo   |
|                   |     |   | glibc            |   | uclibc          |   |     | uclibc          |
|                   |     |   | X "normal"       |   | X reduzido      |   |     | X reduzido      |
|                   |     |   | gcc/gcj/gdb      |   | gdbserver       |   |     |                 |
|                   |     |   | Ferramentas para |   |                 |   |     |                 |
|                   |     |   | construir .debs  |   |                 |   |     |                 |
|                   |     |   |__________________|   |_________________|   |     |_________________|
|                   |     |                                                |                        
|___________________|     |________________________________________________|                        

A comunicação entre as partes não está sendo mostrada no diagrama.

O "big" é acessível por ftp/scp, por telnet/ssh e pelos protocolos de
debugamento remoto do gdb e do eclipse; todas as máquinas exceto a
máquina Windows têm servidores de ftp, ssh e telnet. A máquina "big"
tem um firewall que só permite conexões a partir de certos IPs
autorizados.

As quatro máquinas emuladas funcionam como se fossem máquinas
separadas, acessíveis pela rede; elas também têm servidores de ftp,
ssh, telnet, gdbserver e (qual é o nome disso?) jdebugserver; a
"big86" e a "bigarm" têm também um gdb "normal", que pode ser rodado a
partir de um shell local por telnet ou ssh.

O "imx21arm" se conecta com o "big" por um cabo USB.

Em algumas versões do sistema que vai rodar no imx21arm ele vai ter um
servidor de telnet e um de ftp, acessíveis só através de conexões de
rede vindas pelo cabo USB; em outras versões o software dele só vai
poder ser alterado reescrevendo-se a sua memória Flash.

O imx21arm vai poder se conectar com um servidor externo - por
exemplo, um servidor de banco de dados - através da sua outra
interface de rede (Wi-Fi).

Os scripts
==========

Cross-compilação
----------------

Compilação de um kernel mínimo
------------------------------

Atualização de kernel
---------------------

Atualização de bibliotecas
--------------------------

Atualização do programa em Java
-------------------------------

Debugamento
===========

Interfaces para todos estes scripts
===================================
Vamos fazer uma interface gráfica para rodar todos estes scripts; esta
interface vai ter, entre outras coisas, umas caixas de texto com
listas de arquivos - por exemplo, a lista dos arquivos-fonte em Java
para o programa que vai rodar nos imx21s - e um monte de botões; cada
botão tem um _nome_ e uma _ação_; a ação é sempre um script (ou vários
em seqüência), e cada script é para ser executado num "lugar"
diferente. Por exemplo: um script de cópia de arquivos é uma série de
comandos de ftp, e é para ser executado "dentro de um programa de
ftp"; um script de compilação na máquina bigarm é para ser executado
"dentro de um telnet para a bigarm".

Essa interface gráfica - que vai ser feita em Tcl/Tk - é na verdade um
disfarce para uma outra interface, que é a que eu uso para
desenvolvimento, e que é baseada em Emacs. Na interface em Emacs todos
os scripts estão num arquivo só, e ao invés de cada um ter um "nome"
(como se fosse o nome de um botão), ele é precedido por algumas linhas
de comentários e uma linha com uma sintaxe especial, que diz onde
aquele script deve rodar.

Dentro do Emacs quando batemos F8 numa linha normal essa linha é
mandada para o "destino default"; quando batemos F8 numa linha com a
sintaxe especial ela é executada de uma certa forma (mais
precisamente: executada como um programa em Lisp), e isso em geral
muda o destino default.

Esse Emacs funciona como um editor de texto em uma das suas janelas -
a que está editando o texto com os scripts - e nas outras janelas ele
roda programas externos, como shells, telnets, e ftps, e "edita o log
destes programas".

  [incluir um screenshot aqui.
  Um exemplo só com duas janelas (script e shell):
  <http://angg.twu.net/eev-current/doc/shot-f8.png>]

Como este texto contendo todos os scripts é uma série de scripts de
shell e de ftp - e mais algumas linhas de controle - ele é
compreensível com bem pouco esforço por pessoas com fluência em *NIX.
Vou anunciar este sistema nas listas de discussão de Debian-ARM (o
primeiro dos links abaixo) e acho que vários dos desenvolvedores
principais do Debian-ARM vão ver estes scripts como "How-Tos
executáveis" sobre como fazer várias tarefas no Debian-ARM a partir de
uma máquina de desenvolvimento x86; estes scripts são uma espécie de
ferramenta de comunicação entre nós e os desenvolvedores principais.

  http://lists.debian.org/debian-arm/
  http://lists.debian.org/debian-arm/2007/01/msg00034.html
  http://lists.debian.org/debian-arm/2007/11/msg00001.html
  http://lists.debian.org/debian-arm/2007/11/msg00025.html
  http://wiki.debian.org/ArmEabiHowto
  http://wiki.debian.org/ArmEabiTodo
  http://wiki.debian.org/Crosstool
  http://wiki.debian.org/EmDebian/CrossDebootstrap
  http://www.aurel32.net/info/debian_arm_qemu.php