diff options
Diffstat (limited to 'fw')
-rw-r--r-- | fw/src/main.c | 11 | ||||
-rw-r--r-- | fw/tools/linkmem.py | 14 |
2 files changed, 17 insertions, 8 deletions
diff --git a/fw/src/main.c b/fw/src/main.c index b84e24b..982b1c2 100644 --- a/fw/src/main.c +++ b/fw/src/main.c @@ -4,6 +4,7 @@ #include "main.h"
#include "usb_device.h"
#include "usbd_hid.h"
+#include "assert.h"
#define HID_MEDIA_REPORT 2
#define HYSTERESIS 200
@@ -103,10 +104,9 @@ int main(void) }
}
-void * _sbrk(ptrdiff_t __incr);
-void * _sbrk(ptrdiff_t __incr) {
+void __libc_init_array(void);
+void __libc_init_array() {
/* FIXME Do we even need this? */
- return NULL;
}
void _init(void);
@@ -114,6 +114,11 @@ void _init() { /* FIXME Do we even need this? */
}
+void __assert_func (const char *file, int line, const char * func, const char * exp) {
+ asm volatile ("bkpt");
+ while (1);
+}
+
static uint32_t poll_encoders() {
static bool tx_vol_reset = 0;
static uint16_t tim1_last = 0, tim3_last = 0; /* timers init to 0 */
diff --git a/fw/tools/linkmem.py b/fw/tools/linkmem.py index 934a571..bdacc0d 100644 --- a/fw/tools/linkmem.py +++ b/fw/tools/linkmem.py @@ -66,7 +66,8 @@ def trace_source_files(linker, cmdline, trace_sections=[], total_sections=['.tex continue # first part of continuation line - if m := re.match('^(\.[0-9a-zA-Z-_.]+)$', line): + m = re.match('^(\.[0-9a-zA-Z-_.]+)$', line) + if m: line_cont = line sec_name = None continue @@ -76,7 +77,8 @@ def trace_source_files(linker, cmdline, trace_sections=[], total_sections=['.tex line_cont = None # -ffunction-sections/-fdata-sections section - if m := re.match('^(\.[0-9a-zA-Z-_.]+)\.([0-9a-zA-Z-_.]+)\s+(0x[0-9a-f]+)\s+(0x[0-9a-f]+)\s+(\S+)$', line): + m = re.match('^(\.[0-9a-zA-Z-_.]+)\.([0-9a-zA-Z-_.]+)\s+(0x[0-9a-f]+)\s+(0x[0-9a-f]+)\s+(\S+)$', line) + if m: sec, sym, loc, size, obj = m.groups() *_, sym = sym.rpartition('.') sym = cxxfilt.demangle(sym) @@ -93,7 +95,8 @@ def trace_source_files(linker, cmdline, trace_sections=[], total_sections=['.tex continue # regular (no -ffunction-sections/-fdata-sections) section - if m := re.match('^(\.[0-9a-zA-Z-_]+)\s+(0x[0-9a-f]+)\s+(0x[0-9a-f]+)\s+(\S+)$', line): + m = re.match('^(\.[0-9a-zA-Z-_]+)\s+(0x[0-9a-f]+)\s+(0x[0-9a-f]+)\s+(\S+)$', line) + if m: sec, _loc, size, obj = m.groups() size = int(size, 16) obj = path.abspath(obj) @@ -106,7 +109,8 @@ def trace_source_files(linker, cmdline, trace_sections=[], total_sections=['.tex continue # symbol def - if m := re.match('^(0x[0-9a-f]+)\s+(\S+)$', line): + m = re.match('^(0x[0-9a-f]+)\s+(\S+)$', line) + if m: loc, sym = m.groups() sym = cxxfilt.demangle(sym) loc = int(loc, 16) @@ -129,7 +133,7 @@ def trace_source_files(linker, cmdline, trace_sections=[], total_sections=['.tex fn = path.abspath(fn) if member: - subprocess.check_call(['ar', 'x', '--output', tempdir, fn, member]) + subprocess.check_call(['ar', 'x', fn, member], cwd=tempdir) fn = path.join(tempdir, member) with open(fn, 'rb') as f: |