master, o CPU e um slave a memória externa. Para o barramento de dados, o arbiter Dbus faz a ligação como dois slaves, a memória externa e o arbiter ByteBus. No primeiro caso, é quando o CPU quer escrever ou receber um dado da memória. O segundo caso, quando passa pelo arbiter bytebus, trata-se de uma comunicação especial para periféricos como a UART, que enviam dados com tamanhos inferior a 32-bit. Estes enviam ou recebem os dados byte a byte, logo o dado devolvido pelo arbiter Dbus é dividido em 4 bytes e só é passado 1 byte de cada vez.
Esta terá que ter um tamanho mínimo de 65 Kbytes para poder guardar a aplicação com as bibliotecas do eCos
barramento Wishbone possui um módulo de compatibilidade com este barramento, sendo que o primeiro master a pedir o barramento (instrução ou dados) será o primeiro servido.
O módulo de porta série UART16550 é um IP core desenvolvido pela comunidade OpenCores e integrado no projeto ORPSoC para acrescentar mais um periférico ao OR1200, visto que possui compatibilidade com o barramento Wishbone. Este módulo possui suporte para interrupções, registos de controlo para configurar interrupções, buffer de receção de dados e buffer de
Este capítulo apresenta o projeto das migrações a realizar e as técnicas usadas para a implementação do projeto. Assim, irão ser descritos os novos módulos de hardware adicionados e como estes estão ligados ao processador, assim como as alterações necessárias ao software para que as funcionalidades dos novos módulos possam ser usadas por este. No final deste capítulo é apresentado o esquema físico da implementação efetuada.
A migração de funções de um RTOS comercial para hardware possui algumas limitações de implementação. Para conseguir ter um RTOS híbrido, com funções em software e outras em hardware, é necessário manter a estrutura funcional do RTOS, pois caso contrário a coordenação/coerência entre funções operadas por software e funções operadas por hardware, não é verificada.
Sendo assim para efetuar a migração de uma função em software para hardware com sucesso é necessário ter em mente três conceitos de implementação das funções:
Uma função em software que recebe argumentos, deverá, quando implementada em hardware, passa-los através da instrução ou caso seja mais simples, o módulo de hardware deverá saber a sua localização para poder opera-los.