kopia lustrzana https://github.com/micropython/micropython
extmod/modopenamp: Set a default log handler for ports.
Use the existing metal log handling mechanism instead of overriding the metal_log, which causes build issues when logging is enabled. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>pull/14120/head
rodzic
b829450359
commit
aa0f3ebe93
|
@ -57,13 +57,6 @@
|
|||
#define METAL_MAX_DEVICE_REGIONS 1
|
||||
#endif
|
||||
|
||||
// generic/log.h
|
||||
#if METAL_LOG_HANDLER_ENABLE
|
||||
#include "py/mphal.h"
|
||||
#undef metal_log
|
||||
#define metal_log(level, ...) mp_printf(&mp_plat_print, __VA_ARGS__)
|
||||
#endif
|
||||
|
||||
static inline void *__metal_allocate_memory(unsigned int size) {
|
||||
return m_tracked_calloc(1, size);
|
||||
}
|
||||
|
|
|
@ -28,9 +28,11 @@
|
|||
|
||||
#if MICROPY_PY_OPENAMP
|
||||
|
||||
#include <stdarg.h>
|
||||
#include "py/obj.h"
|
||||
#include "py/nlr.h"
|
||||
#include "py/runtime.h"
|
||||
#include "py/mpprint.h"
|
||||
|
||||
#include "metal/sys.h"
|
||||
#include "metal/alloc.h"
|
||||
|
@ -315,6 +317,13 @@ static mp_obj_t openamp_new_service_callback(mp_obj_t ns_callback) {
|
|||
}
|
||||
static MP_DEFINE_CONST_FUN_OBJ_1(openamp_new_service_callback_obj, openamp_new_service_callback);
|
||||
|
||||
void openamp_metal_log_handler(enum metal_log_level level, const char *fmt, ...) {
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
mp_vprintf(&mp_plat_print, fmt, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void openamp_init(void) {
|
||||
if (MP_STATE_PORT(virtio_device) != NULL) {
|
||||
// Already initialized.
|
||||
|
@ -322,7 +331,14 @@ void openamp_init(void) {
|
|||
}
|
||||
|
||||
struct metal_device *device;
|
||||
struct metal_init_params metal_params = METAL_INIT_DEFAULTS;
|
||||
struct metal_init_params metal_params = { 0 };
|
||||
|
||||
#if METAL_LOG_HANDLER_ENABLE
|
||||
// If logging is enabled, set the default log level and handler before
|
||||
// calling metal_init, to allow ports to override them in metal_sys_init.
|
||||
metal_params.log_level = METAL_LOG_DEBUG;
|
||||
metal_params.log_handler = openamp_metal_log_handler;
|
||||
#endif
|
||||
|
||||
// Initialize libmetal.
|
||||
metal_init(&metal_params);
|
||||
|
|
Ładowanie…
Reference in New Issue