diff options
author | bryan newbold <bnewbold@robocracy.org> | 2014-10-16 20:20:20 -0700 |
---|---|---|
committer | bryan newbold <bnewbold@robocracy.org> | 2014-10-16 20:20:20 -0700 |
commit | dba5a9fe68ebb996eeee69fa9b573fe5a1561ce2 (patch) | |
tree | 6d9c249686b81b2b70da9b9a3dd1e246c221b4b3 /tests/test-bkp.cpp | |
parent | 160d861ba3fe50c30891d1abcb2c520be84aaa85 (diff) | |
download | librambutan-dba5a9fe68ebb996eeee69fa9b573fe5a1561ce2.tar.gz librambutan-dba5a9fe68ebb996eeee69fa9b573fe5a1561ce2.zip |
refactor: move test-style examples to ./tests
Diffstat (limited to 'tests/test-bkp.cpp')
-rw-r--r-- | tests/test-bkp.cpp | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/tests/test-bkp.cpp b/tests/test-bkp.cpp new file mode 100644 index 0000000..719cac7 --- /dev/null +++ b/tests/test-bkp.cpp @@ -0,0 +1,80 @@ +#include <stdio.h> // for snprintf() + +#include <wirish/wirish.h> +#include <libmaple/bkp.h> +#include <libmaple/iwdg.h> + +void print_bkp_contents(); +void write_to_bkp(uint16 val); + +#define comm Serial2 + +void setup() { + pinMode(BOARD_BUTTON_PIN, INPUT); + + comm.begin(9600); + comm.println("*** Beginning BKP test"); + + comm.println("Init..."); + bkp_init(); + comm.println("Done."); + + print_bkp_contents(); + write_to_bkp(10); + print_bkp_contents(); + + comm.println("Enabling backup writes."); + bkp_enable_writes(); + write_to_bkp(20); + print_bkp_contents(); + + comm.println("Disabling backup writes."); + bkp_disable_writes(); + write_to_bkp(30); + print_bkp_contents(); + + comm.println("Done testing backup registers; press button to enable " + "independent watchdog (in order to cause a reset)."); + waitForButtonPress(0); + iwdg_init(IWDG_PRE_4, 1); + comm.println(); +} + +void loop() { +} + +void print_bkp_contents() { + comm.println("Backup data register contents:"); + char buf[100]; + for (int i = 1; i <= BKP_NR_DATA_REGS; i++) { + snprintf(buf, sizeof buf, "DR%d: %d ", i, bkp_read(i)); + comm.print(buf); + if (i % 5 == 0) comm.println(); + } + comm.println(); +} + +void write_to_bkp(uint16 val) { + comm.print("Attempting to write "); + comm.print(val); + comm.println(" to backup registers..."); + for (int i = 1; i <= BKP_NR_DATA_REGS; i++) { + bkp_write(i, val); + } + comm.println("Done."); +} + +__attribute__((constructor)) void premain() { + init(); +} + +int main(void) { + init(); + setup(); + + while (1) { + loop(); + } + return 0; +} + |