misc NRF52 fixes

1.2-legacy
geeksville 2020-04-23 12:47:41 -07:00
rodzic 2061706c11
commit fe3cbeed3a
7 zmienionych plików z 37 dodań i 7 usunięć

10
.vscode/launch.json vendored
Wyświetl plik

@ -12,8 +12,9 @@
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug",
"executable": "/home/kevinh/development/meshtastic/meshtastic-esp32/.pio/build/tbeam/firmware.elf",
"toolchainBinDir": "/home/kevinh/.platformio/packages/toolchain-xtensa32/bin",
"executable": "/home/kevinh/development/meshtastic/meshtastic-esp32/.pio/build/bare/firmware.elf",
"toolchainBinDir": "/home/kevinh/.platformio/packages/toolchain-gccarmnoneeabi/bin",
"svdPath": "/home/kevinh/.platformio/platforms/nordicnrf52/misc/svd/nrf52840.svd",
"preLaunchTask": {
"type": "PlatformIO",
"task": "Pre-Debug"
@ -24,8 +25,9 @@
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug (skip Pre-Debug)",
"executable": "/home/kevinh/development/meshtastic/meshtastic-esp32/.pio/build/tbeam/firmware.elf",
"toolchainBinDir": "/home/kevinh/.platformio/packages/toolchain-xtensa32/bin",
"executable": "/home/kevinh/development/meshtastic/meshtastic-esp32/.pio/build/bare/firmware.elf",
"toolchainBinDir": "/home/kevinh/.platformio/packages/toolchain-gccarmnoneeabi/bin",
"svdPath": "/home/kevinh/.platformio/platforms/nordicnrf52/misc/svd/nrf52840.svd",
"internalConsoleOptions": "openOnSessionStart"
}
]

Wyświetl plik

@ -9,7 +9,7 @@
; https://docs.platformio.org/page/projectconf.html
[platformio]
default_envs = tbeam
default_envs = bare
[common]
; common is not currently used

Wyświetl plik

@ -11,6 +11,7 @@ typedef uint8_t PacketId; // A packet sequence number
#define NODENUM_BROADCAST 255
#define ERRNO_OK 0
#define ERRNO_NO_INTERFACES 33
#define ERRNO_UNKNOWN 32 // pick something that doesn't conflict with RH_ROUTER_ERROR_UNABLE_TO_DELIVER
typedef int ErrorCode;

Wyświetl plik

@ -1,7 +1,7 @@
#pragma once
#include <Arduino.h>
#include <assert.h>
#include <list>
template <class T> class Observable;
@ -14,7 +14,6 @@ template <class T> class Observer
Observable<T> *observed = NULL;
public:
virtual ~Observer();
void observe(Observable<T> *o);

Wyświetl plik

@ -0,0 +1,13 @@
#include <assert.h>
static inline void debugger_break(void)
{
__asm volatile("bkpt #0x01\n\t"
"mov pc, lr\n\t");
}
// handle standard gcc assert failures
void __attribute__((noreturn)) __assert_func(const char *file, int line, const char *func, const char *failedexpr)
{
debugger_break();
}

Wyświetl plik

@ -114,6 +114,11 @@ bool RH_RF95::init()
return enableInterrupt();
}
// If on a platform without level trigger definitions, just use RISING and suck it up.
#ifndef ONHIGH
#define ONHIGH RISING
#endif
bool RH_RF95::enableInterrupt()
{
// Determine the interrupt number that corresponds to the interruptPin

Wyświetl plik

@ -39,6 +39,16 @@ class RadioInterface
virtual void loop() {} // Idle processing
/**
* Return true if we think the board can go to sleep (i.e. our tx queue is empty, we are not sending or receiving)
*
* This method must be used before putting the CPU into deep or light sleep.
*/
bool canSleep() { return true; }
/// Prepare hardware for sleep. Call this _only_ for deep sleep, not needed for light sleep.
virtual bool sleep() { return true; }
/**
* Send a packet (possibly by enquing in a private fifo). This routine will
* later free() the packet to pool. This routine is not allowed to stall.