Month: August 2007

Implementação Open Source do OSEK

Para quem nunca ouviu falar, OSEK é uma especificação para sistemas operacionais automotivos.
As principais características de um OS OSEK são:
* suportar uma grande gama de microcontroladores (deste uC de 8 bits a uC de 32 bits);
* suporte a tempo real e tarefas com diferentes níveis de prioridades;
* tamanho reduzido, um dos requisistos é que o OS funcionem em uC sem a necessidade de componentes externos.

Mas será que existe uma versão open source que implemente a especificação OSEK? A resposta é sim, e não estou falando do openOSEK (que ainda está em estágio embrionário). Existe uma versão open source (GPL) chamada toppers-osek liberada pela empresa japonesa Witz-INC, que foi criado em parceria com a universidade de Nagoya. A implementação foi feita pelo professor Hiroaki Takada.

O desenvolvimento do Toppers-OSEK é fruto de 20 anos de pesquisa e desenvolvimento do ITRON (Ken Sakamura). O ITRON é nada menos que o sistema operacional mais usado no mundo, de CD Player a carros de luxo, mais informações: http://www.linuxinsider.com/story/31855.html

Estou dando uma olhada no código fonte, infelizmente os comentários estão todos escritos em kanji (ideograma japonês) e não existe nada em inglês, seria isto um bairrismo japonês? Acho que não.

Descrição em inglês:
http://www.toppers.jp/en/index.html

Para download do Toppers-OSEK:
http://www.toppers.jp/osek-download.html

Está compactado no formato lzh, então instale um descompactador (apt-get install lha).

Atualização: Hiroaki Takada trabalha junto com o professor Ken, e foi ele quem traduziu os manuais do ITRON e uITRON para o inglês: http://www.assoc.tron.org/

GCC disponível para o PIC16F877

Quem tem a sorte de usar os microcontroladores Texas MSP430 e Atmel Atmega8 pode contar com as funcionalidades do compilador GCC. Mas quem usa o PIC tem que se contentar com compilador proprietários ou contentar-se com o suporte limitado do SDCC.

Mas o estudante espanhol Pedro José Ramírez Gutiérrez desenvolveu como tema de seu trabalho de conclusão de curso o porte do GCC para o PIC16F877:

https://forja.rediris.es/frs/?group_id=101

Pena que ninguém levou a idéia a diante para adicionar suporte aos demais modelos.

Atualização: o blog do desenvolvedor é https://pjmicrocontroladores.wordpress.com

Script para o installjammer matar programa do Windows

Este script TCL usa a função get_process_ids e end_process da API TWAPI do Windows para verificar se um determinado programa está em execução e mata o(s) processo(s) deste programa.

set pids [twapi::get_process_ids -name application.exe]
foreach pid $pids {
catch { twapi::end_process $pid -force }
}

P.S.: Não esqueça de ativar a opção “Include Windows API Extension”.

Continuando…

Continuando a série “Mergulhando no Windows by Alan”, ôh vidinha mediocre, fim de carreira, tsc tsc tsc.

Esta eu achei hoje sem querer no Lifehacker, você está logado no Windows com seu usuário e precisa copiar algum arquivo que está na conta de outro usuário, você não precisa efetuar log-off para ir lá copiá-los, basta fazer assim:

Entre no prompt de comando do Windows;
Vá até C:\Windows\system32
Execute o comando:

runas /user:computador\usuario explorer.exe

Substitua computador e usuário pelo nome do computador e usuário correspondentes. Detalhe, será pedido a senha do usuário.

Comando Uptime no Windows

Como seu obrigado a usar o Windows no trabalho estou me interessando por qualquer coisa idiota que diga respeito a este sistema operacional ao qual o adjetivo anterior se aplica.

Eu assino o “google alerta” para saber das novidades sobre Linux. A novidade de hoje era mais relacionada ao Windows do que propriamente ao Linux, mas vamos lá.

Entre no prompt do DOS e execute:

systeminfo | find “Tempo”

Será retornada a mensagem: Tempo de ativação do sistema: X dias, Y horas, Z minutos, K segundos.

Se seu Windows está em inglês substitua “Tempo” por “Up Time”.

Nota mental: fazer vídeo bug bug bye bye

Fazer uma apresentação do Windows travando com várias telas azuis do Windows.
“Talvez tenha que mexer, talvez tenha. Bug bug bye bye”
E aparecerá um pinguim simpático fazendo a “Xô Xô” com as patas (asas) no Windows.

No final o pinguim abraçando o computador e a música tocando:
“Vou chegar de mansinho, vou te conquistar com uma dose de carinho”

LinuxBIOSv3

O LinuxBIOSv3 já está no svn, mas ainda está longe de entrar em produção.

Quem quiser testar:

svn co svn://linuxbios.org/repository/LinuxBIOSv3

Marie Curie: uma vida

Estou lendo o livro sobre Marie Curie (a polonesa Marya Sklodowska) cujo título é o mesmo deste post.

Minha admiração por Marie começou quando eu ainda era criança, lendo os livros de médicina que meu tio (médico) deu para meu pai. Não há como não admirá-la, uma mulher que desde pequena enfrentou grandes tragédias e sempre manteve a alegria de viver e um certo ar de superioridade. Foi este mesmo ar de superioridade que deixou uma de suas professoras extremamente irritada quando ela tinha apenas 10 anos de idade.

Mas, o que mais me chamou a atenção em relação a ela foi a forma como se dedicava às coisas que fazia. Ela sempre estudava muito e desde cedo mostrava muito interesse por matemática e física.

E apesar de toda sua força e inteligência, Marie era uma pessoa extremamente simples e humilde. No livro cita que ela e o marido (Pierre Curie) iam ao teatro vestindo roupas simples e que naquela época (final do século XIX) os franceses colocavam roupas de gala para ir ao teatro. E quando ela e o marido isolaram 1 grama de rádio preferiram doar ao hospital ao invés de vendê-lo por milhões de doláres.

Não vou contar o livro aqui, mas recomendo-o a todos que queiram conhecer um pouco mais da vida dessa pequena notável. A mulher que cunhou o termo radioatividade; a primeira mulher a receber um premio Nóbel; a mulher que dedicou sua vida a ciência.

P.S.: Infelizmente neste país, livros interessantes como estes não chamam a atenção do público. Felizmente, por outro lado, isto faz com que as livrarias liquidem o livro a R$ 5,00, uma ofensa para um livro de 525 páginas, mas que colaborou para que eu pudesse comprá-lo.

Como resolver a falta do ldd para crosscompiling

Então você conseguiu compilar seu software para a plataforma alvo, mas descobriu que não tem o ldd no seu toolchain.

Fique calmo, existe uma forma de saber quais são as dependências de um binário, basta executar:

arm-linux-objdump -x your-file.elf | grep NEEDED

O mesmo se aplica às outras plataformas.

Ovo de páscoa no sudo

Tenho Debian e Ubuntu instalado na mesma máquina, então quando entro no Ubuntu ele acerta a hora segundo o padrão GMT e quando reinicio no Debian, que não usa este padrão, a hora fica adiantada em 3 horas.

Então, após reiniciar no Debian e acertar a hora, fui usar o comando sudo para mover um diretório e veja a mensagem que recebi:

$ sudo mv dl ..
sudo: timestamp too far in the future: Aug 4 13:11:54 2007

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

Password:

Eu gostei muito da #3:
With great power comes great responsibility.