enigmabox escreveu:Na epoca, desisti da seria 683xx para aprendizado, pois acho que a cpu 68030 é mais versatil, apesar de ter que ligar varios perifericos externamente, o resultado no final acho que fica melhor.
Na linha 683xx nem dá pra ligar uma FPU como a 68882.
acho que depende muito da aplicacao... vc pode focar em sistemas menos expansiveis e mais expansiveis. no caso de sistemas menos expansiveis, os 683xx, coldfires e ateh mesmo algumas montagens mais restritas com os 680x0 acabam resolvendo.
no caso de montagens mais expansiveis, uma coisa que eu achei muito interessante no 68302 e 68360 eh o fato de ser possivel desligar o core deles e pendurar eles como perifericos avancados em qq 680x0. no caso do 68302, que jah tem um core 68000 capaz de ir ateh os 33MHz, faz sentido usar como periferico avancado para o 68020 ou 68030, em funcao do bus assincrono de 16 bits. no caso do 68360, que tem um core cpu32+ (quase um 68030) e roda ateh os 40MHz, vc pode usar como "chipset" periferico de um 68040 ou 68060, suportando inclusive acessos sincronos de 32 bits em burst!

infelizmente, este potencial para montagens mais expansiveis foi perdido na familia coldfire. outra perda importante eh que os blocos de perifericos inteligentes dos 68302 e 68360 foram movidos para os powerquicc.
Outro nucleo que começei a brincar mas parei no momento foi o DSP mc56F8013, que tem um nucleo hibrido de 3 cpus 32bits. Acho que esta seria uma boa opção de mcu/dsp, mas o nucleo é muito mais simples que um core 68k.
eu acho mais interessante aquela familia starcore deles, mas sao DSPs mais cavalos para mim! hehehe estes dias eles lancaram um six-core de 1GHz que atinge 48 mil MMACs... bem que eu gostaria de ter alguma aplicacao que usasse tudo isso

Usar um mcu , como o coldfire, com tudo imbutido dependendo do projeto, fica dificil, falo em relação da ampliação do hardware. Pois vc tem que analisar os perifericos que o nucleo tem e ver se serve para a aplicação. Se o fabricante nao dispor de uma mcu com os perifericos que vc quer utilizar, tem que optar por uma cpu. Ou fazer um barramento externo, ligando os perifericos via usb, ou I2C.
Para celulares, tv de plasma,lcd, cameras digitais,etc é uma ótima opção, mas para o ramo industrial, como plc, hardwares expecificos, como inversores de motor, acho que tem que ser uma cpu ou um mcu da linha 683xx
eu diria que vc tem menos flexibilidade de expansao, pq obviamente vc nao pode trocar o chip inteiro, mas ateh certo limite nao eh tao restritivo assim. por exemplo, o MCF5270 possui uma fast-ethernet on-chip e 4 canais de DMA que podem transferir dados muito rapidamente entre perifericos e a memoria SDRAM. quer dizer, nada impede que vc conecte os perifericos diretamente no bus dele e aproveite os canais de DMA.
por outro lado, tem as limitacoes que a gente conhece. por exemplo, para usar duas ethernets, vc pode plugar um periferico extra, mas dae nao tem os infinitos ring-buffers que aumentam cavalarmente a performance. ou vc muda de coldfire e pega um com duas fast-ethernets ou monta dois coldfires em sistemas independentes interconectados via DMA.
uma solucao que eu acho que se encaixa melhor ao coldfire (ao menos no MCF5270 e similares) eh pensar nele como um gateway de rede para interfaces paralelas hi-speed, onde a funcao dele eh simplesmente rodar um uclinux fazendo toda a interface entre o mundo externo da fast-ethernet e as paralelas hi-speed ativadas via DMA.
daih nesta paralela hi-speed vc coloca sua aplicacao especifica: uma FPGA, um DSP ou mesmo outro mcu mais especializado (683xx) para a interface com a aplicacao final. essa ideia da interface hi-speed pode ser modelada na interface IDE por exemplo.
Outra coisa que vi alguns dizerem é que a linha coldfire, nao é muito boa para se trabalhar com sinais de video. Nao sei se é verdade.
comparado com um blackfin sim!

mas se for analisar a complexidade de um BF537 com suporte a video e fast-ethernet (BGA) em comparacao com um MCF5270 trabalhando com um BF531 (ambos QFP e considerando que podemos ligar 4x BF531 via DMA ao MCF5270), talvez a ultima solucao fique mais simples e acessivel.
No monitor do sistema, estou fazendo varias subrotinas para calculo de cursor, calculo de pixel, conversores de base numerica, etc.
Reservei um espaço na ram para as variaveis, tais como, linha, coluna, x1, y1, x2, y2, resultados, etc
Assim, carrego as variaveis com os valores, chamo a subrotina que deixa tb o resultado na area de variaveis. Assim nao preciso ficar pensando onde usei o registro A0, D1, A5, etc....
Estou fazendo "alla antica", como a apple fazia. Não é tão rapido como usar modo direto com os registros da cpu, mas fica mais eficiente e organizado.
Para a parte grafica estou me baseando em um livro antigo da micro$ofre "Programmers guide to PC & PS2 - Video Systems de 1987". É direcionado a programação do 8088/8086 e 6845, mas a parte matematica e logica se aplica a qualquer cpu. Isso vai me ajudar quando eu fizer uma nova placa de video com resolução mais alta.
naquele codigo do microkernel q te passei estes dias tem um suporte a fb do 68328 no meio dos drivers... ele eh bem simples, um conjunto de rotinas justamente para printar caracteres no frame buffer e algumas funcionalidades para scroll, pixels e linhas

Porque nao usa um mc68hc11 na placa, junto com o par de mc68EC000?
Mais pra frente eu vou usar C para o 68030, por enquanto quero aprender bem este novo assembler.
eh que eu soh tenho ferramentas para os HC908 aqui!
