Linux Startup

Discussão sobre linux para plataformas Intel x86 ou x64 (PC)

Moderadores: 51, guest2003, Renie, gpenga

Mensagempor chipselect » 19 Jan 2011 22:28

Ler pino no Linux embarcado deve ser específico para cada plataforma, mas no caso do Gumstix, olha só os docs:

http://docwiki.gumstix.org/GPIO_event

http://www.gumstix.net/wiki/index.php?t ... ent_Driver

http://www.gumstix.net/wiki/index.php?title=GPIO

Geralmente a maioria das coisas ficam debaixo do /proc no OpenEmbedded

Você pode acessar os pinos tanto via shell script como em c/c++.
chipselect
Word
 
Mensagens: 744
Registrado em: 16 Out 2006 18:50

Mensagempor fabim » 20 Jan 2011 19:38

certo. CS.
Imagina o seguinte.
Pensa num cara que esta começando do inicio..
Shell é Shell, linux é linux. Se eu bem entendi.
Sempre vai obrigatoriamente existir os dois.

Eu li muita coisa sobre, mais ainda não consegui aprender os conceitos da arquitetura. Quem faz o que, quem le o que, se existe um task para o que...
O que se acha na net é para usuarios que vão usar o linux no desktop ou num note. Quando entra no nosso conceito o negocio muda de figura...
Eu sinceramente, acho que se houvesse um forum aqui aberto do zero dando conceitos e discuções acerca do linux embarcado, seria algo estupidamente proveitozo.!!!!!!

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor msamsoniuk » 20 Jan 2011 20:21

Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor enigmabox » 20 Jan 2011 21:11

Este link gia postei unas trocentas veis!

É sobre device driver para linux, pra entender bem a extrutura tem que estudar o Kernel e ver por exemplo como o kernel do linux incorpora os modulos ou drives no kernel, tipo kernel modular e linear:

http://lwn.net/Kernel/LDD3/



:wink:
enigmabox
 

Mensagempor chrdcv » 20 Jan 2011 23:02

fabim escreveu:certo. CS.
Imagina o seguinte.
Pensa num cara que esta começando do inicio..
Shell é Shell, linux é linux. Se eu bem entendi.
Sempre vai obrigatoriamente existir os dois.

Eu li muita coisa sobre, mais ainda não consegui aprender os conceitos da arquitetura. Quem faz o que, quem le o que, se existe um task para o que...
O que se acha na net é para usuarios que vão usar o linux no desktop ou num note. Quando entra no nosso conceito o negocio muda de figura...
Eu sinceramente, acho que se houvesse um forum aqui aberto do zero dando conceitos e discuções acerca do linux embarcado, seria algo estupidamente proveitozo.!!!!!!

Fabim


Muito simples: "o que não é arquivo é processo"!
Avatar do usuário
chrdcv
Dword
 
Mensagens: 1580
Registrado em: 13 Out 2006 14:13

Mensagempor chipselect » 20 Jan 2011 23:36

chrdcv escreveu:Muito simples: o que não é arquivo é processo!


é bem simples mesmo, acho legal você acessar o pino de IO no /proc como um "arquivo um pouco diferente".

bom fabim, o Linux te "abre" o seu hardware, fica tudo em uma estrutura de diretórios que geralmente você vê como raiz: é o tal do diretório root que é representado por "/". Nada de unidade A, B, C, D e etc.

ao contrário do bom e velho MSDOS (e por herança, o windows também, mesmo que de forma apenas superficial), no linux você acessa a portinha serial diretamente fazendo e/s no /dev/ttySXX...

quer coisa mais simples? nada de API WIN32 abrindo um arquivo que não dá pra listar normalmente mas que você torce pra existir, como o "COM1", a não ser que você abra o registro e procure as portinhas. Ah, tem as permissões pra acessar essas coisas, mas daí vc resolve fácil no Linux tb.

agora, o tal /proc é interessante, você tem lá muita coisa que está rodando no sistema operacional, configurações, módulos carregados, quantidade de memória, etc. É um diretório virtual mantido pelo kernel, mas você acessa como se fosse no disco.

Por exemplo, dá pra ver o uso de memória lendo o "arquivo" /proc/self/stat na linha de comando, mas se é arquivo, dentro do C++ você abre como arquivo e lê o conteúdo. Pode ser um exemplo idiota, e talvez não seja o mais correto mas dá pra fazer.

eu utilizo o bluetooth, serial e conversor usb serial no linux embarcado fazendo e/s direto no /dev/ttyS0, /dev/ttyS1, ttyUSB0, já que no Gumstix o bluetooth tá ligado numa serial.

O GPIO7 do Gumstix está ligado no sinal de reset do módulo de bluetooth dele. Para colocar o módulo de bluetooth em reset, eu posso escrever "clear" no GPIO7, dessa forma na linha de comando do shell:

echo clear > /proc/gpio/GPIO7

Dentro do C++ eu abro esse "arquivo" para escrita e escrevo isso. Obviamente fazendo dessa forma, eu desrespeitei todo o mecanismo de segurança do Linux e rodo tudo com permissão de "root", eheheh.

Não conheço outras plataformas com Linux embarcado, só o Gumstix, mas deve ter bastante coisa parecida.
chipselect
Word
 
Mensagens: 744
Registrado em: 16 Out 2006 18:50

Mensagempor msamsoniuk » 21 Jan 2011 00:34

tem varias formas diferentes, o que varia eh a performance e complexidade. do menos complexo para o mais complexo e da pior performance para a melhor performance:

- /proc: requer muito parse de texto ascii, mas eh o mais simples e direto!

- ioctl(): eh sincrono e fica lockando tudo a cada chamada

- /dev/char_device: eh assincrono, mas byte a byte

- /dev/block_device: eh assincrono, bloco por bloco, mas requer muito memcpy entre user space e kernel space

- mmap(): se o device for mapeavel, eh um canhao de rapido! mas normalmente isso soh acontece com frame buffer.

- network: se o device jah tiver ethernet, eh soh ligar mii-to-mii e fechou. se nao tiver, vc precisa criar uma ethernet virtual e daih o bicho pega. mas eh a interface mais canhao que existe e jah fica tudo network centric!

soh para contrastar a performance, pegando o melhor e pior caso:

echo "teste" > /proc/gpio/porta

eh simples como fazer um getchar() byte a byte e copiar para a porta. mas obviamente nao eh muito eficiente para transferir dados. mas para comecar eh realmente o mais indicado!

agora, o forte do linux eh network!

digamos que vc quer comandar um DSP conectado via RGMII com seu processador para que ele envie um stream de dados diretamente para um ip qualquer da rede, indicando duas portas UDP. vc poderia fazer isso facilmente via http:

wget http://192.168.0.1/rtp/192.168.10.10/23456/23457

no fundo vc usaria http apenas para interface de comando e a url seria enviada ao DSP. fazendo o parse justamente do comando, que seria "rtp/192.168.10.10/23456/23457", o DSP simplesmente pode comecar a gerar trafego direto. e se for uma RGMII, entao ele tranquilamente sustenta 125MB/s de bandwidth.

e vale uma dica interessante: http://goo.gl/LqykJ

ou seja, a tendencia eh a interface se tornar cada vez mais network centric! isso jah eh realidade em processadores maiores: perifericos sao conexoes de rede (pci-express, rapidio, sgmii, etc), arbitragem de barramento eh um fabric switch e os processadores sao como computadores pendurados em uma rede.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor chrdcv » 21 Jan 2011 09:52

Marcelo Samsoniuk escreveu:ou seja, a tendencia eh a interface se tornar cada vez mais network centric! isso jah eh realidade em processadores maiores: perifericos sao conexoes de rede (pci-express, rapidio, sgmii, etc), arbitragem de barramento eh um fabric switch e os processadores sao como computadores pendurados em uma rede.


Seria a profecia de um dos nerds da Sun de que computadores são redes ?
Avatar do usuário
chrdcv
Dword
 
Mensagens: 1580
Registrado em: 13 Out 2006 14:13

Mensagempor chipselect » 21 Jan 2011 10:03

quanto ao tal do shell, se você quer deixar os linuxeiros xiitas com dor de barriga, é só comparar o shell do linux como algo parecido com o command prompt do windows/dos... eheheh.
chipselect
Word
 
Mensagens: 744
Registrado em: 16 Out 2006 18:50

Mensagempor Sergio38br » 21 Jan 2011 13:12

chip , qual dos shell??Acho que nenhum deles merece tal desrespeito!!!

[ ]'s
Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor polesapart » 21 Jan 2011 14:06

Podem falar mal do C shell por exemplo, ele tem limitações quando comparado com um bourne shell da vida. Mas ... comparar com ms dos ... é sacanagem :P
Warning: time of day goes back (-163479us), taking countermeasures. :)
Avatar do usuário
polesapart
Byte
 
Mensagens: 477
Registrado em: 19 Nov 2007 12:56
Localização: Curitiba

Mensagempor fabim » 22 Jan 2011 16:21

Cara, sei lá. Quanto mais eu tento aprender sobre o linux. Menos eu estou conseguindo aprender....
Eu gostava da epoca em que as coisas eram explicadas com hominhos...

Que saudades eu tenho do estilo Beakman de ensinar.... Eu ensino as coisas para os gafanhotos que me pedem ajuda no estilo Beakman.... E todos aprendem.. Froid...
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor chrdcv » 23 Jan 2011 20:20

Pois é fabim... mas antes de finalmente dizer "Zaloom!", terá que ler muito, praticar bastante e perder muitas, mas muitas noites de sono!

É o que ultimamente tenho feito! rs

chrdcv
Avatar do usuário
chrdcv
Dword
 
Mensagens: 1580
Registrado em: 13 Out 2006 14:13

Mensagempor fabim » 23 Jan 2011 20:31

chrdcv escreveu:Pois é fabim... mas antes de finalmente dizer "Zaloom!", terá que ler muito, praticar bastante e perder muitas, mas muitas noites de sono!

É o que ultimamente tenho feito! rs

chrdcv


ta louco perder noite de sono com 31 anos de idade ? Cebesta !!!

eu tenho memoria fotografica... eu so preciso descobrir por onde fotografar.. E é no literal.
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor chipselect » 24 Jan 2011 21:53

fabim escreveu: eu tenho memoria fotografica... eu so preciso descobrir por onde fotografar.. E é no literal.


Começa "fotografando" esse livro aqui que é baratinho:

[url]
http://www.linuxmall.com.br/produto/liv ... cados.html[/url]

pelo menos vai te dar uma introdução no linux embarcado.
chipselect
Word
 
Mensagens: 744
Registrado em: 16 Out 2006 18:50

AnteriorPróximo

Voltar para Linux ( x86 ou x64 )

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x