mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-29 19:08:12 +00:00
chore(core): more systematic systemview function definitions
This commit is contained in:
parent
869cfbbd1c
commit
550216354b
@ -358,6 +358,7 @@ if SYSTEM_VIEW:
|
|||||||
'embed/segger/SEGGER/SEGGER_SYSVIEW.c',
|
'embed/segger/SEGGER/SEGGER_SYSVIEW.c',
|
||||||
'embed/segger/SEGGER/SEGGER_RTT.c',
|
'embed/segger/SEGGER/SEGGER_RTT.c',
|
||||||
'embed/segger/SEGGER/SEGGER_RTT_ASM_ARMv7M.S',
|
'embed/segger/SEGGER/SEGGER_RTT_ASM_ARMv7M.S',
|
||||||
|
'embed/segger/SEGGER/Syscalls/SEGGER_RTT_Syscalls_GCC.c',
|
||||||
'embed/firmware/systemview.c',
|
'embed/firmware/systemview.c',
|
||||||
]
|
]
|
||||||
CPPPATH_MOD += [
|
CPPPATH_MOD += [
|
||||||
@ -365,6 +366,7 @@ if SYSTEM_VIEW:
|
|||||||
'embed/segger/Config/',
|
'embed/segger/Config/',
|
||||||
]
|
]
|
||||||
CPPDEFINES_MOD += ['SYSTEM_VIEW']
|
CPPDEFINES_MOD += ['SYSTEM_VIEW']
|
||||||
|
CCFLAGS_MOD += '-DSYSTEM_VIEW '
|
||||||
|
|
||||||
SOURCE_QSTR = SOURCE_MOD + SOURCE_MICROPYTHON + SOURCE_MICROPYTHON_SPEED
|
SOURCE_QSTR = SOURCE_MOD + SOURCE_MICROPYTHON + SOURCE_MICROPYTHON_SPEED
|
||||||
|
|
||||||
|
@ -156,6 +156,13 @@
|
|||||||
#define MICROPY_PY_TREZORUI (1)
|
#define MICROPY_PY_TREZORUI (1)
|
||||||
#define MICROPY_PY_TREZORUTILS (1)
|
#define MICROPY_PY_TREZORUTILS (1)
|
||||||
|
|
||||||
|
#ifdef SYSTEM_VIEW
|
||||||
|
#define MP_PLAT_PRINT_STRN(str, len) segger_print(str, len)
|
||||||
|
// set following to 0 if you want to print to RTT instead of SystemView
|
||||||
|
// openocd supports only the RTT output method
|
||||||
|
#define SYSTEMVIEW_DEST_SYSTEMVIEW (1)
|
||||||
|
#endif
|
||||||
|
|
||||||
#define MP_STATE_PORT MP_STATE_VM
|
#define MP_STATE_PORT MP_STATE_VM
|
||||||
|
|
||||||
// ============= this ends common config section ===================
|
// ============= this ends common config section ===================
|
||||||
|
@ -19,9 +19,8 @@
|
|||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "py/mphal.h"
|
#include "py/mphal.h"
|
||||||
#include "usb.h"
|
|
||||||
#include "systemview.h"
|
|
||||||
#include "string.h"
|
#include "string.h"
|
||||||
|
#include "usb.h"
|
||||||
|
|
||||||
static int vcp_iface_num = -1;
|
static int vcp_iface_num = -1;
|
||||||
|
|
||||||
@ -43,15 +42,3 @@ void mp_hal_stdout_tx_strn(const char *str, size_t len) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void mp_hal_set_vcp_iface(int iface_num) { vcp_iface_num = iface_num; }
|
void mp_hal_set_vcp_iface(int iface_num) { vcp_iface_num = iface_num; }
|
||||||
|
|
||||||
#ifdef SYSTEM_VIEW
|
|
||||||
int segger_print(const char* str, size_t len) {
|
|
||||||
static char str_copy[1024];
|
|
||||||
size_t copylen = len > 1023 ? 1023 : len;
|
|
||||||
memcpy(str_copy, str, copylen);
|
|
||||||
str_copy[copylen] = 0;
|
|
||||||
SEGGER_SYSVIEW_Print(str_copy);
|
|
||||||
return len;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
#include "systemview.h"
|
#include "systemview.h"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include "mpconfigport.h"
|
||||||
|
|
||||||
#include "SEGGER_SYSVIEW.h"
|
#include "SEGGER_SYSVIEW.h"
|
||||||
#include "SEGGER_SYSVIEW_Conf.h"
|
#include "SEGGER_SYSVIEW_Conf.h"
|
||||||
@ -94,4 +97,19 @@ void enable_systemview() {
|
|||||||
SYSTICK->CSR = 0x07; // enable systick
|
SYSTICK->CSR = 0x07; // enable systick
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t _write(int file, const void *ptr, size_t len);
|
||||||
|
|
||||||
|
size_t segger_print(const char *str, size_t len) {
|
||||||
|
#if SYSTEMVIEW_DEST_SYSTEMVIEW
|
||||||
|
static char str_copy[1024];
|
||||||
|
size_t copylen = len > 1023 ? 1023 : len;
|
||||||
|
memcpy(str_copy, str, copylen);
|
||||||
|
str_copy[copylen] = 0;
|
||||||
|
SEGGER_SYSVIEW_Print(str_copy);
|
||||||
|
return len;
|
||||||
|
#else
|
||||||
|
_write(0, str, len);
|
||||||
|
return len;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user