mirror of
https://github.com/ThrowTheSwitch/CMock
synced 2025-02-02 10:08:41 -05:00
85 lines
2.3 KiB
C
85 lines
2.3 KiB
C
/* =========================================================================
|
|
CMock - Automatic Mock Generation for C
|
|
ThrowTheSwitch.org
|
|
Copyright (c) 2007-25 Mike Karlesky, Mark VanderVoord, & Greg Williams
|
|
SPDX-License-Identifier: MIT
|
|
========================================================================= */
|
|
|
|
#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);
|
|
}
|