Всем, привет!
Осваиваю AT91SAM7S256. Eclipse + GCC + SAM-ICE.
Запустил демо проект с сайта at91.com (getting-started-project-1.4-at91sam7s-ek)
В функции конфигурации DBGU модуля, установка (точнее расчет) скорости обмена занимает почти 3 секунды.
AT91C_BASE_DBGU->DBGU_BRGR = mck / (baudrate * 16); // mck = 48 000 000, baudrate = 9600
так как апаратного деления у ARM-а нет, то деление происходит программным способом.
Вопрос:
Насколько оптимально производит деление компилаятор gcc?
в сравнении с IAR-ом?
Планирую в проекте использовать цело численное деление.
CODE
void DBGU_Configure(unsigned int mode,
unsigned int baudrate,
unsigned int mck)
{
// Reset & disable receiver and transmitter, disable interrupts
AT91C_BASE_DBGU->DBGU_CR = AT91C_US_RSTRX | AT91C_US_RSTTX;
AT91C_BASE_DBGU->DBGU_IDR = 0xFFFFFFFF;
// Configure baud rate
AT91C_BASE_DBGU->DBGU_BRGR = mck / (baudrate * 16);
// Configure mode register
AT91C_BASE_DBGU->DBGU_MR = mode;
// Disable DMA channel
AT91C_BASE_DBGU->DBGU_PTCR = AT91C_PDC_RXTDIS | AT91C_PDC_TXTDIS;
// Enable receiver and transmitter
AT91C_BASE_DBGU->DBGU_CR = AT91C_US_RXEN | AT91C_US_TXEN;
}