Divulgação Xmega

Software e Hardware para ATMEL

Moderadores: 51, guest2003, brasilma

Mensagempor vtrx » 18 Nov 2009 18:32

Gostaria de saber o seguinte.
Se alguem hoje receber um processador de arquitetura nova,sem comunicação I2C ou USB,e receber apenas o Assemblador ,que é a ferramenta padrão dos fabricantes,como implementaria isto em C?
Ficaria na espera de um 'Header' chegar ou programaria a sua propria rotina?
Se voce tambem é suficientemente bom programador,fará sua rotina em ASM...
Alguem conhece este esquema?:
http://www.flightsim.com/howto/mind/schematic.gif
USB implemetado via Software,via ports.
Editado pela última vez por vtrx em 18 Nov 2009 18:36, em um total de 1 vez.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor RobL » 18 Nov 2009 18:32

Djalma
ADA 18..
Ué, tá valendo.

Vtrx
Se não tiver compilador só em ASM.
Mas isso é em caso de guerra ou catástrofe, não?
Neste caso, sem pilha, só régua de cáculo.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor vtrx » 18 Nov 2009 18:37

Rob,como voce programaria um Dual Core?
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor Djalma Toledo Rodrigues » 18 Nov 2009 18:41

Marcelo quer retroceder então vou mais longe ainda

Porque não o 'Computador ' Ábaco ?


"C é uma linguagem de programação compilada de propósito geral, estruturada, imperativa, procedural, de alto nível, e padronizada, criada em 1972, por Dennis Ritchie, no AT&T Bell Labs, para desenvolver o sistema operacional UNIX (que foi originalmente escrito em Assembly)[b]"

Fonte: Wilkipedia
Editado pela última vez por Djalma Toledo Rodrigues em 18 Nov 2009 18:54, em um total de 3 vezes.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor RobL » 18 Nov 2009 18:41

Não sei.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor EvandroPic » 18 Nov 2009 20:12

Djalma Toledo Rodrigues escreveu:Marcelo quer retroceder então vou mais longe ainda

Porque não o 'Computador ' Ábaco ?


"C é uma linguagem de programação compilada de propósito geral, estruturada, imperativa, procedural, de alto nível, e padronizada, criada em 1972, por Dennis Ritchie, no AT&T Bell Labs, para desenvolver o sistema operacional UNIX (que foi originalmente escrito em Assembly)[b]"

Fonte: Wilkipedia


E antes do C veio a linguagem B... :roll:

B é uma linguagem de programação na qual pertence ao paradigma imperativo e que foi desenvolvida nos Bell Labs de 1969, apesar de que hoje já tenha se tornado obsoleta, foi a predecessora da linguagem de programação C, que até hoje é uma das mais populares. Foi maioritariamente um trabalho de Ken Thompson com contribuições de Dennis Ritchie, projetada e implementada em Murray Hill, New Jersey nos Estados Unidos.

http://pt.wikipedia.org/wiki/B_(linguag ... %A7%C3%A3o)
EvandroPic
Byte
 
Mensagens: 120
Registrado em: 28 Out 2008 15:28

Mensagempor msamsoniuk » 18 Nov 2009 20:38

mas tem que ver que o computador do babbage na verdade nunca ficou pronto (os do zuze sim)... e a linguagem ada eh de 1977... nao confunda a linguagem em si (baseada em pascal e algol) com a pessoa, seria o mesmo que confundir o edwin hubble com o telescopio espacial que leva o nome dele ;)

Djalma Toledo Rodrigues escreveu:Roberto

Porque não ADA de 1842 ?
.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor msamsoniuk » 18 Nov 2009 21:33

isso esta em um dos primeiros links q eu postei, nao eh?

EvandroPic escreveu:
Djalma Toledo Rodrigues escreveu:Marcelo quer retroceder então vou mais longe ainda

Porque não o 'Computador ' Ábaco ?


"C é uma linguagem de programação compilada de propósito geral, estruturada, imperativa, procedural, de alto nível, e padronizada, criada em 1972, por Dennis Ritchie, no AT&T Bell Labs, para desenvolver o sistema operacional UNIX (que foi originalmente escrito em Assembly)[b]"

Fonte: Wilkipedia


E antes do C veio a linguagem B... :roll:

B é uma linguagem de programação na qual pertence ao paradigma imperativo e que foi desenvolvida nos Bell Labs de 1969, apesar de que hoje já tenha se tornado obsoleta, foi a predecessora da linguagem de programação C, que até hoje é uma das mais populares. Foi maioritariamente um trabalho de Ken Thompson com contribuições de Dennis Ritchie, projetada e implementada em Murray Hill, New Jersey nos Estados Unidos.

http://pt.wikipedia.org/wiki/B_(linguag ... %A7%C3%A3o)
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor msamsoniuk » 18 Nov 2009 21:51

cara, vc sabe que nao eh por aih... vc tem na cabeca todas as combinacoes de pares de instrucoes para pelo menos 100 processadores em 10 diferentes arquiteturas? se vc nao sabe isso, vc nao pode dizer nem que chega perto de um compilador meia boca como gcc. eh soh dar uma estudadinha em processadores risc que vc vai ver que a promessa de performance soh se materializa se vc deixar o compilador trabalhar e parar de insistir em querer programar em asm (os programadores tipicos sao muito ruins, enquanto os melhores sao apenas ruins).

nao sei pq essa insistencia de voces em perder tempo... dah uma olhada no que eh o futuro da eletronica:

http://www.c-to-verilog.com/

vc escreve o algoritmo em C, ele vai converter para verilog e entao vc pode rodar direto em uma FPGA ou fabricar um ASIC... acho que isso dah uma nocao da influencia de C na industria e mostra como vamos eliminar totalmente a existencia do asm no futuro! :D

vtrx escreveu:Gostaria de saber o seguinte.
Se alguem hoje receber um processador de arquitetura nova,sem comunicação I2C ou USB,e receber apenas o Assemblador ,que é a ferramenta padrão dos fabricantes,como implementaria isto em C?
Ficaria na espera de um 'Header' chegar ou programaria a sua propria rotina?
Se voce tambem é suficientemente bom programador,fará sua rotina em ASM...
Alguem conhece este esquema?:
http://www.flightsim.com/howto/mind/schematic.gif
USB implemetado via Software,via ports.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor Djalma Toledo Rodrigues » 18 Nov 2009 21:57

Me referi a Ada King

Lady Lovelace, ... é reconhecida como a primeira programadora de toda a história.

Durante o período que esteve envolvida com o projeto de Babbage, ela desenvolveu os algoritmos que permitiriam à máquina computar os valores de funções matemáticas, além de publicar uma coleção de notas sobre a máquina analítica.

Fonte: Wikipedia
.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor msamsoniuk » 18 Nov 2009 22:02

pode ateh ser, mas ela tb nao programava em asm! de qq forma, nao sei se eh valido, visto que as maquinas do babbage nunca sairam do papel :)

Djalma Toledo Rodrigues escreveu:Me referi a Ada King

Lady Lovelace, ... é reconhecida como a primeira programadora de toda a história.

Durante o período que esteve envolvida com o projeto de Babbage, ela desenvolveu os algoritmos que permitiriam à máquina computar os valores de funções matemáticas, além de publicar uma coleção de notas sobre a máquina analítica.

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

Mensagempor RobL » 19 Nov 2009 08:19

vc escreve o algoritmo em C, ele vai converter para verilog e entao vc pode rodar direto em uma FPGA ou fabricar um ASIC... acho que isso dah uma nocao da influencia de C na industria e mostra como vamos eliminar totalmente a existencia do asm no futuro! Very Happy


Opa! Curvou a vara para dar o recado. Tá tudo certo mas veja a crítica:

Calma aí, nenhuma linguagem no momento pode cobrir toda a necessidade de solução de um problema, por isso C e todas as outras deixam a brecha para o assembly. Não vejo como ser possível acabar com o asm no futuro, nos micros como estão hoje.
O que daria sim, seria estender o C para micro, o "Cmicro", fazendo com que todo fabricante criasse um head posto em um banco de dados no qual todo compilador "Cmicro"fosse atualizado pela net de forma a dispor de todos os periféricos existentes e outras.
Cmicro seria uma linguagem C estendida para tudo que não foi previsto no C aplicada em microcontroladores.

Aliás C é tão esperto que até permite isso, através das funções do usuário, mas faltam alguns detalhes.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor brasilma » 19 Nov 2009 08:41

Já que é para "retroceder", não sei quanto a vocês, mas eu vim da eletrônica para a programação, e um dos meus primeiros livros sobre o assunto, foi o "Microcontroladores e Microprocessadores" editado pela Mac Grall Hill.

Livro muito bom, nele é estudada toda a arquitetura de um processador, partido (como sempre) dos sistemas de numeração binária, passando por algebra booleana, e destrinchando pedaço por pedaço dos componentes básicos (registradores, ULA, matriz de controle, memórias, I/Os).

No final do livro ocorre a junção de todas as partes que foram estudadas separadamente e você tem um processador montado com componentes discretos.

O interessante - para mim - é que tudo é feito em cima dos op codes do 8085 (Z80) e nos ultimos capítulos você entra em programação e começa a escrever programas até razoalvelmente complexos para o sistema.

Não cheguei a montar esta CPU discreta, pois nesta época já tinha muitos Z80 a disposição, porem foi uma "viagem" muito interessante.

Alguém daqui possue este nível de compreenção didática?
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor msamsoniuk » 19 Nov 2009 09:21

esse livro que vc comentou eh bem interessante e detalhado. outros livros bons sao os de arquitetura de computadores do patterson e uma excelente referencia que eu sempre uso eh a 3.a edicao do livro do tanenbaum, cuja edicao especifica cobre justamente a arquitetura do 386 e 68000 (nos novos eles cobrem processadores novos, mas dae perde uma serie de truques interessantes).

brasilma escreveu:Já que é para "retroceder", não sei quanto a vocês, mas eu vim da eletrônica para a programação, e um dos meus primeiros livros sobre o assunto, foi o "Microcontroladores e Microprocessadores" editado pela Mac Grall Hill.

Livro muito bom, nele é estudada toda a arquitetura de um processador, partido (como sempre) dos sistemas de numeração binária, passando por algebra booleana, e destrinchando pedaço por pedaço dos componentes básicos (registradores, ULA, matriz de controle, memórias, I/Os).

No final do livro ocorre a junção de todas as partes que foram estudadas separadamente e você tem um processador montado com componentes discretos.

O interessante - para mim - é que tudo é feito em cima dos op codes do 8085 (Z80) e nos ultimos capítulos você entra em programação e começa a escrever programas até razoalvelmente complexos para o sistema.

Não cheguei a montar esta CPU discreta, pois nesta época já tinha muitos Z80 a disposição, porem foi uma "viagem" muito interessante.

Alguém daqui possue este nível de compreenção didática?
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor msamsoniuk » 19 Nov 2009 09:30

tem que ver que assembler eh tipo uma muleta para o humano saber o que significa um stream de instrucoes codificadas... na pratica qq compilador poderia gerar o stream de instrucoes diretamente, sem precisar gerar um simbolico legivel ao humano.

e se vc pensa no assembler de processadores mais modernos, como o 68000, vc comeca a perceber que eh tudo balela, pq vc escreve de 10 formas diferentes algo que gera um unico simbolo no stream de instrucoes. na pratica, o assembler perde o proposito e tenta virar uma linguagem de programacao, fazendo as pessoas imaginarem que deveriam programar diretamente nela, o que nao eh verdade.

jah na decada de 80 os processadores comecaram a ser pensados de forma a serem programados por maquina, ou seja, vc escreve um codigo de alto nivel em C e um compilador sintetiza a melhor sequencia de instrucoes, justamente pq um humano nao tem como fazer isso com eficiencia. o compilador pode fazer isso sem precisar de assembler simbolico, pq ele nao tem dificuldades em lembrar que 0x4e75 eh um nop, entao ele pode lidar com streams de instrucoes codificadas.

quanto a eficiencia, pega o datasheet de um processador simples de 1990, como o 68040 e vai ver as tabelas de pares de instrucoes para ver se vc consegue otimizar manualmente facil um programa...eu acho bastante dificil, pq o numero de combinacoes eh imenso! :)

RobL escreveu:
vc escreve o algoritmo em C, ele vai converter para verilog e entao vc pode rodar direto em uma FPGA ou fabricar um ASIC... acho que isso dah uma nocao da influencia de C na industria e mostra como vamos eliminar totalmente a existencia do asm no futuro! Very Happy


Opa! Curvou a vara para dar o recado. Tá tudo certo mas veja a crítica:

Calma aí, nenhuma linguagem no momento pode cobrir toda a necessidade de solução de um problema, por isso C e todas as outras deixam a brecha para o assembly. Não vejo como ser possível acabar com o asm no futuro, nos micros como estão hoje.
O que daria sim, seria estender o C para micro, o "Cmicro", fazendo com que todo fabricante criasse um head posto em um banco de dados no qual todo compilador "Cmicro"fosse atualizado pela net de forma a dispor de todos os periféricos existentes e outras.
Cmicro seria uma linguagem C estendida para tudo que não foi previsto no C aplicada em microcontroladores.

Aliás C é tão esperto que até permite isso, através das funções do usuário, mas faltam alguns detalhes.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

AnteriorPróximo

Voltar para AVR

Quem está online

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

x