Quick
index
main
eev
maths
blogme
dednat4
littlelangs
PURO
(GAC2,
λ, etc)
(Chapa 1)

emacs
lua
(la)tex
fvwm
tcl
forth
icon
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