Текст заголовка сообщения полностью:
ну так от исходников зависит, гляньте на исходники ОС, Linux / WinCE, вот они легко переносятся на разные процессоры.а если писать как всегда, то писать всегда придется с нуля :)
я это понял и ща строчу "драйвер" для UART-а в AVR :)
вот например обработчик прерывания
#pragma vector = USART0_RXC_vect
static __interrupt void USART0_RXC_F(void)
{
if(hal_uart[0].prx) ((BYTE(*)(BYTE))hal_uart[0].prx)(UDR0);
}
#define TXCIE0 (6)
#pragma vector = USART0_TXC_vect
static __interrupt void USART0_TXC_F(void)
{
BYTE dat;
if((hal_uart[0].ptx) && ( ((BYTE(*)(BYTE*))hal_uart[0].ptx)(&dat) ) ) { UDR0=dat; }else{ UCSR0B &= (~(1<<TXCIE)); }
}
во время инициализации передается указатель на пользовательские CallBack функции обработки прерываний, т.е. получить байт, передать байт. Если надо будет другое железо, то перепишу только hal.c / hal.h