diff options
| author | Bernhard Guillon <Bernhard.Guillon@begu.org> | 2024-12-25 00:34:42 +0100 |
|---|---|---|
| committer | Bernhard Guillon <Bernhard.Guillon@begu.org> | 2024-12-29 19:54:53 +0100 |
| commit | 1762c56956bafd6fc0636516b494dfa935ff8aec (patch) | |
| tree | 5b693c0c70400b71c982401fd9693a48991d3c23 /usr/space_light/src/diagnostic.c | |
| parent | 40404fb81dfad3f5c5cf567bb053796a9135165e (diff) | |
| download | wb3s-ble-nebula-galaxy-1762c56956bafd6fc0636516b494dfa935ff8aec.tar.gz wb3s-ble-nebula-galaxy-1762c56956bafd6fc0636516b494dfa935ff8aec.zip | |
space_light: first version
TODO: pwm initialization is currently best guess
could be wrong active low|high
TODO: implement pairing
TODO: implement timer
TODO: use the button for something
TODO: implement a better client
Diffstat (limited to 'usr/space_light/src/diagnostic.c')
| -rw-r--r-- | usr/space_light/src/diagnostic.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/usr/space_light/src/diagnostic.c b/usr/space_light/src/diagnostic.c new file mode 100644 index 0000000..d1afb25 --- /dev/null +++ b/usr/space_light/src/diagnostic.c @@ -0,0 +1,68 @@ + +#include "generic.h" + +#include "RomCallFlash.h" +#include "ble_reg_access.h" +#include "common_hci.h" +#include "common_llcp.h" +#include "common_utils.h" +#include "ea.h" +#include "ecc_p256.h" +#include "em_buf.h" +#include "em_map_ble.h" +#include "lld.h" +#include "lld_evt.h" +#include "lld_pdu.h" +#include "lld_util.h" +#include "llm.h" +#include "llm_util.h" +#include "reg_ble_em_cs.h" +#include "reg_ble_em_rx_buffer.h" +#include "reg_ble_em_rx_desc.h" +#include "reg_ble_em_tx_buffer_cntl.h" +#include "reg_ble_em_tx_buffer_data.h" +#include "reg_ble_em_tx_desc.h" +#include "reg_blecore.h" +#include "rwip.h" +#include "rwip_config.h" + +void output_ble_registers(void); + +uint32_t assembly_test0(uint32_t input); + +void output_ble_registers(void) { + + uint8_t rxpwrup0 = 0; + uint8_t txpwrdn0 = 0; + uint8_t txpwrup0 = 0; + + bk_printf("BLE control[8]: 0x%x\n", ble_cntl_get(8)); + + ble_radiopwrupdn0_unpack(&rxpwrup0, &txpwrdn0, &txpwrup0); + bk_printf( + "Power down control 0: rxpwrup0::0x%x, txpwrdn0::0x%x, txpwrup0::0x%x\n", + rxpwrup0, txpwrdn0, txpwrup0); + bk_printf("Power down control 0: 0x%x\n", ble_radiopwrupdn0_get()); + bk_printf("Interrupt control: 0x%x\n", ble_intcntl_get()); + bk_printf("Upper BDADDR: 0x%x\n", ble_bdaddru_getf()); + bk_printf("Lower BDADDR: 0x%x\n", ble_bdaddrl_getf()); +} + +uint32_t assembly_test0(uint32_t input) { + uint32_t output = 0xABCDEFEF; + __asm__ __volatile__(" sub r3, %0, #1\n" + " sbc %0, r3\n" + : "=r"(output) + : "0"(input) + : "cc", "r3"); + return output; +} + +void output_diagnostics(void) { + + output_ble_registers(); + + bk_printf("Assembly test 0, input=0, output=0x%x\n", assembly_test0(0)); + bk_printf("Assembly test 0, input=0x800, output=0x%x\n", + assembly_test0(0x800)); +} |
