From 75f8523f3a70558788186f8f2d7ca5a6f9f71194 Mon Sep 17 00:00:00 2001 From: Josh Rahm Date: Wed, 18 Nov 2020 22:46:11 -0700 Subject: Change dma.h over to a regset() strategy. Apparently people really don't like bitfields in practice, so I have devised a compromise to retain some readability while using bitmasks instead by writing a regset() macro. --- 02-usart/tests/test_dma.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to '02-usart/tests/test_dma.c') diff --git a/02-usart/tests/test_dma.c b/02-usart/tests/test_dma.c index ae34a69..27ec022 100644 --- a/02-usart/tests/test_dma.c +++ b/02-usart/tests/test_dma.c @@ -10,13 +10,24 @@ TEST(dma, smoke) dma_t* dma = &DMA1; memset(dma, sizeof(dma), 0); - dma->is_bf.tcif1 = 1; + regset(dma->is_r, dma_tcif1, 1); ASSERT_EQ(dma->is_r, 2); - dma->is_bf.htif7 = 1; + regset(dma->is_r, dma_htif7, 1); ASSERT_EQ(dma->is_r, 67108866); } +TEST(dma, cc_regset) +{ + dma_t* dma = &DMA1; + memset(dma, sizeof(dma), 0); + + dma_channel_config_t* channel_config = &dma->channel_config[2]; + regset(channel_config->cc_r, dma_cc_msize, DMA_SIZE_32_BITS); + + ASSERT_EQ(channel_config->cc_r, 1 << 11); +} + TEST(dma, correct_align) { dma_t dma; -- cgit