Update such that tests pass for v1.2

This includes minor updates for the th different MCU variant, and bugfixes.

Resolves #7
This commit is contained in:
2020-06-03 04:51:19 +00:00
parent 0f0cb73fa5
commit cdf0f4ffc9
22 changed files with 649 additions and 57 deletions

View File

@@ -36,12 +36,13 @@ using BSP::ReturnCode;
using BSP::SystemTimer;
static BSP::Schedule::LowPowerTaskScheduler<1> g_sched;
static BSP::GpioDriver g_gpioa(GPIOA);
#if defined(BOARD_WATCH)
static BSP::UsartDriver g_test_uart(USART2, g_sched);
static BSP::GpioPin g_tx_pin(g_gpioa, 9);
#elif defined(BOARD_DEVBOARD)
static BSP::UsartDriver g_test_uart(USART1, g_sched);
#endif
static BSP::GpioDriver g_gpioa(GPIOA);
static BSP::time_t get_time() {
BSP::time_t time;
@@ -54,10 +55,14 @@ static BSP::time_t get_time() {
return time;
}
[[noreturn]] void main() {
g_gpioa.enable();
#if defined(BOARD_WATCH)
g_tx_pin.configure_alternate_function(4);
#endif
g_test_uart.init();
g_test_uart.tx_blocking(test_start_text);
@@ -77,7 +82,6 @@ static BSP::time_t get_time() {
g_test_uart.tx_blocking(buffer);
now = get_time();
}
g_test_uart.tx_blocking("STOP\r\n");
g_test_uart.tx_blocking(test_pass_text);

View File

@@ -33,16 +33,22 @@
using BSP::Time;
static BSP::Schedule::LowPowerTaskScheduler<1> g_sched;
static BSP::GpioDriver g_gpioa(GPIOA);
#if defined(BOARD_WATCH)
static BSP::UsartDriver g_test_uart(USART2, g_sched);
static BSP::GpioPin g_tx_pin(g_gpioa, 9);
#elif defined(BOARD_DEVBOARD)
static BSP::UsartDriver g_test_uart(USART1, g_sched);
#endif
static BSP::GpioDriver g_gpioa(GPIOA);
[[noreturn]] void main() {
g_gpioa.enable();
#if defined(BOARD_WATCH)
g_tx_pin.configure_alternate_function(4);
#endif
g_test_uart.init();
g_test_uart.tx_blocking(test_start_text);

View File

@@ -37,16 +37,19 @@ using BSP::ReturnCode;
using BSP::SystemTimer;
static BSP::Schedule::LowPowerTaskScheduler<1> g_sched;
static BSP::GpioDriver g_gpioa(GPIOA);
static BSP::GpioDriver g_gpiob(GPIOB);
#if defined(BOARD_WATCH)
static BSP::UsartDriver g_test_uart(USART2, g_sched);
static BSP::GpioPin g_tx_pin(g_gpioa, 9);
static BSP::LptimPwm g_test_lptim(LPTIM1);
static BSP::GpioPin g_lptim_pin(g_gpioa, 7);
#elif defined(BOARD_DEVBOARD)
static BSP::UsartDriver g_test_uart(USART1, g_sched);
static BSP::LptimPwm g_test_lptim(LPTIM2);
#endif
static BSP::GpioDriver g_gpioa(GPIOA);
static BSP::GpioDriver g_gpiob(GPIOB);
static BSP::GpioPin g_lptim_pin(g_gpiob, 2);
#endif
static BSP::time_t get_time() {
BSP::time_t time;
@@ -63,6 +66,15 @@ static BSP::time_t get_time() {
g_gpioa.enable();
g_gpiob.enable();
#if defined(BOARD_WATCH)
g_tx_pin.configure_alternate_function(4);
g_lptim_pin.configure_alternate_function(1);
#elif defined(BOARD_DEVBOARD)
g_lptim_pin.configure_alternate_function(1);
#endif
// TODO: Fix LPTIM pin init for the L030 model
g_lptim_pin.configure_alternate_function(1);
g_test_uart.init();

View File

@@ -33,16 +33,22 @@
using BSP::Time;
static BSP::Schedule::LowPowerTaskScheduler<1> g_sched;
static BSP::GpioDriver g_gpioa(GPIOA);
#if defined(BOARD_WATCH)
static BSP::UsartDriver g_test_uart(USART2, g_sched);
static BSP::GpioPin g_tx_pin(g_gpioa, 9);
#elif defined(BOARD_DEVBOARD)
static BSP::UsartDriver g_test_uart(USART1, g_sched);
#endif
static BSP::GpioDriver g_gpioa(GPIOA);
[[noreturn]] void main() {
g_gpioa.enable();
#if defined(BOARD_WATCH)
g_tx_pin.configure_alternate_function(4);
#endif
g_test_uart.init();
g_test_uart.tx_blocking(test_start_text);

View File

@@ -39,13 +39,13 @@ using BSP::SystemTimer;
using BSP::time_t;
static BSP::Schedule::LowPowerTaskScheduler<1> g_sched;
static BSP::GpioDriver g_gpioa(GPIOA);
#if defined(BOARD_WATCH)
static BSP::UsartDriver g_test_uart(USART2, g_sched);
static BSP::GpioPin g_tx_pin(g_gpioa, 9);
#elif defined(BOARD_DEVBOARD)
static BSP::UsartDriver g_test_uart(USART1, g_sched);
#endif
static BSP::GpioDriver g_gpioa(GPIOA);
static BSP::GpioPin g_test_pin(g_gpioa, 6);
static time_t get_time() {
time_t time;
@@ -66,9 +66,12 @@ static time_t get_time() {
BSP::LowPower::init();
g_gpioa.enable();
g_test_pin.configure_alternate_function(1);
g_test_uart.init();
#if defined(BOARD_WATCH)
g_tx_pin.configure_alternate_function(4);
#endif
g_test_uart.init();
g_test_uart.tx_blocking(test_start_text);
const time_t end = get_time() + Time::millis(5100);

View File

@@ -39,13 +39,13 @@ using BSP::WallClockTime;
using BSP::RtcDriver;
static BSP::Schedule::LowPowerTaskScheduler<1> g_sched;
static BSP::GpioDriver g_gpioa(GPIOA);
#if defined(BOARD_WATCH)
static BSP::UsartDriver g_test_uart(USART2, g_sched);
static BSP::GpioPin g_tx_pin(g_gpioa, 9);
#elif defined(BOARD_DEVBOARD)
static BSP::UsartDriver g_test_uart(USART1, g_sched);
#endif
static BSP::GpioDriver g_gpioa(GPIOA);
static BSP::GpioPin g_test_pin(g_gpioa, 6);
static char buffer[128] = {0};
void run_case(unsigned int hours, unsigned int minutes, unsigned int seconds) {
@@ -90,7 +90,11 @@ void run_case(unsigned int hours, unsigned int minutes, unsigned int seconds) {
BSP::LowPower::init();
g_gpioa.enable();
g_test_pin.configure_alternate_function(1);
#if defined(BOARD_WATCH)
g_tx_pin.configure_alternate_function(4);
#endif
g_test_uart.init();
g_test_uart.tx_blocking(test_start_text);

View File

@@ -39,13 +39,13 @@ using BSP::SystemTimer;
using BSP::time_t;
static BSP::Schedule::LowPowerTaskScheduler<1> g_sched;
static BSP::GpioDriver g_gpioa(GPIOA);
#if defined(BOARD_WATCH)
static BSP::UsartDriver g_test_uart(USART2, g_sched);
static BSP::GpioPin g_tx_pin(g_gpioa, 9);
#elif defined(BOARD_DEVBOARD)
static BSP::UsartDriver g_test_uart(USART1, g_sched);
#endif
static BSP::GpioDriver g_gpioa(GPIOA);
static BSP::GpioPin g_test_pin(g_gpioa, 6);
static time_t get_time() {
time_t time;
@@ -99,7 +99,9 @@ static void stop_for(time_t delay) {
BSP::LowPower::init();
g_gpioa.enable();
g_test_pin.configure_alternate_function(1);
#if defined(BOARD_WATCH)
g_tx_pin.configure_alternate_function(4);
#endif
g_test_uart.init();
g_test_uart.tx_blocking(test_start_text);

View File

@@ -33,16 +33,22 @@
using BSP::Time;
static BSP::Schedule::LowPowerTaskScheduler<1> g_sched;
static BSP::GpioDriver g_gpioa(GPIOA);
#if defined(BOARD_WATCH)
static BSP::UsartDriver g_test_uart(USART2, g_sched);
static BSP::GpioPin g_tx_pin(g_gpioa, 9);
#elif defined(BOARD_DEVBOARD)
static BSP::UsartDriver g_test_uart(USART1, g_sched);
#endif
static BSP::GpioDriver g_gpioa(GPIOA);
[[noreturn]] void main() {
g_gpioa.enable();
#if defined(BOARD_WATCH)
g_tx_pin.configure_alternate_function(4);
#endif
g_test_uart.init();
g_test_uart.tx_blocking(test_start_text);

View File

@@ -38,13 +38,13 @@ using BSP::SystemTimer;
using BSP::time_t;
static BSP::Schedule::LowPowerTaskScheduler<1> g_sched;
static BSP::GpioDriver g_gpioa(GPIOA);
#if defined(BOARD_WATCH)
static BSP::UsartDriver g_test_uart(USART2, g_sched);
static BSP::GpioPin g_tx_pin(g_gpioa, 9);
#elif defined(BOARD_DEVBOARD)
static BSP::UsartDriver g_test_uart(USART1, g_sched);
#endif
static BSP::GpioDriver g_gpioa(GPIOA);
static BSP::GpioPin g_test_pin(g_gpioa, 6);
static time_t get_time() {
time_t time;
@@ -87,10 +87,10 @@ static void stop_for(time_t delay) {
static void fail_if_wakeup(time_t delay) {
uint32_t pre_wakeups = BSP::RtcDriver::get_wakeup_count();
time_t before = get_time();
while (before + delay > get_time() || BSP::RtcDriver::get_wakeup_count() != pre_wakeups) {}
while (before + delay > get_time() && BSP::RtcDriver::get_wakeup_count() == pre_wakeups) {}
if (BSP::RtcDriver::get_wakeup_count() != pre_wakeups) {
g_test_uart.tx_blocking("Got unexpected wakeup IRQ");
g_test_uart.tx_blocking("Got unexpected wakeup IRQ\r\n");
g_test_uart.tx_blocking(test_fail_text);
TEST_SPIN();
}
@@ -102,9 +102,12 @@ static void fail_if_wakeup(time_t delay) {
SystemTimer::set_timer(BSP::RtcDriver::get_system_timer());
g_gpioa.enable();
g_test_pin.configure_alternate_function(1);
g_test_uart.init();
#if defined(BOARD_WATCH)
g_tx_pin.configure_alternate_function(4);
#endif
g_test_uart.init();
g_test_uart.tx_blocking(test_start_text);
for (uint32_t i = 0; i <= 100; i++) {