#include "unity.h" #include "Types.h" #include "UsartConfigurator.h" AT91S_PIO PioAPeripheral; AT91S_PMC PmcPeripheral; AT91S_USART Usart0Peripheral; void setUp(void) { } void tearDown(void) { } void testConfigureUsartIOShouldConfigureUsartTxPinfForPeripheralIO(void) { AT91C_BASE_PIOA->PIO_ASR = 0; AT91C_BASE_PIOA->PIO_BSR = 0xffffffff; AT91C_BASE_PIOA->PIO_PDR = 0; Usart_ConfigureUsartIO(); TEST_ASSERT_EQUAL(USART0_TX_PIN, AT91C_BASE_PIOA->PIO_ASR); TEST_ASSERT_EQUAL(0, AT91C_BASE_PIOA->PIO_BSR); TEST_ASSERT_EQUAL(USART0_TX_PIN, AT91C_BASE_PIOA->PIO_PDR); } void testEnablePeripheralClockShouldEnableClockToUsartPeripheral(void) { AT91C_BASE_PMC->PMC_PCER = 0; Usart_EnablePeripheralClock(); TEST_ASSERT_EQUAL(((uint32)1) << USART0_CLOCK_ENABLE, AT91C_BASE_PMC->PMC_PCER); } void testResetShouldDisableAllUsartInterrupts(void) { AT91C_BASE_US0->US_IDR = 0; Usart_Reset(); TEST_ASSERT_EQUAL(0xffffffff, AT91C_BASE_US0->US_IDR); } void testResetShouldResetUsartTransmitterAndReceiver(void) { AT91C_BASE_US0->US_CR = 0; Usart_Reset(); TEST_ASSERT_EQUAL(AT91C_US_RSTRX | AT91C_US_RSTTX | AT91C_US_RXDIS | AT91C_US_TXDIS, AT91C_BASE_US0->US_CR); } void testConfigureModeShouldSetUsartModeToAsynchronous(void) { uint32 asyncMode = (AT91C_US_USMODE_NORMAL | AT91C_US_NBSTOP_1_BIT | AT91C_US_PAR_NONE | AT91C_US_CHRL_8_BITS | AT91C_US_CLKS_CLOCK); AT91C_BASE_US0->US_MR = ~asyncMode; Usart_ConfigureMode(); TEST_ASSERT_EQUAL(asyncMode, AT91C_BASE_US0->US_MR); } void testSetBaudRateRegisterShouldSetUsartBaudRateRegisterToValuePassedAsParameter(void) { AT91C_BASE_US0->US_BRGR = 0; Usart_SetBaudRateRegister(3); TEST_ASSERT_EQUAL(3, AT91C_BASE_US0->US_BRGR); Usart_SetBaudRateRegister(251); TEST_ASSERT_EQUAL(251, AT91C_BASE_US0->US_BRGR); } void testEnableShouldEnableUsart0Transmitter(void) { AT91C_BASE_US0->US_CR = 0; Usart_Enable(); TEST_ASSERT_EQUAL(AT91C_US_TXEN, AT91C_BASE_US0->US_CR); }