This is an automated email from the ASF dual-hosted git repository.

jiuzhudong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new dea1bc11217 note: add NOTE_DUMP_BINARY support for binary log dumping
dea1bc11217 is described below

commit dea1bc112170d7ae1515ec73341267475c020917
Author: yukangzhi <[email protected]>
AuthorDate: Wed Apr 23 09:23:25 2025 +0800

    note: add NOTE_DUMP_BINARY support for binary log dumping
    
    Add NOTE_DUMP_BINARY to the note_type_e enum and implement its handling
    in noteram_dump_one. This enables the recording and dumping of binary
    logs in hexadecimal format, improving traceability for binary event data.
    
    Signed-off-by: yukangzhi <[email protected]>
---
 drivers/note/noteram_driver.c | 21 ++++++++++++++++++++-
 include/nuttx/sched_note.h    |  1 +
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/drivers/note/noteram_driver.c b/drivers/note/noteram_driver.c
index 22823bb6b42..6aa8371de89 100644
--- a/drivers/note/noteram_driver.c
+++ b/drivers/note/noteram_driver.c
@@ -1212,13 +1212,32 @@ static int noteram_dump_one(FAR uint8_t *p, FAR struct 
lib_outstream_s *s,
       break;
     case NOTE_DUMP_MARK:
       {
-        int len = note->nc_length - sizeof(struct note_event_s);
         FAR struct note_event_s *nbi = (FAR struct note_event_s *)p;
+        int len = note->nc_length - SIZEOF_NOTE_EVENT(0);
+
         ret += noteram_dump_header(s, &nbi->nev_cmn, ctx);
         ret += lib_sprintf(s, "tracing_mark_write: I|%d|%.*s\n",
                            pid, len, (FAR const char *)nbi->nev_data);
       }
       break;
+      case NOTE_DUMP_BINARY:
+      {
+        FAR struct note_event_s *nbi = (FAR struct note_event_s *)p;
+        int len = note->nc_length - SIZEOF_NOTE_EVENT(0);
+        int i;
+
+        ret += noteram_dump_header(s, &nbi->nev_cmn, ctx);
+        ret += lib_sprintf(s, "tracing_mark_write: I|%d|", pid);
+
+        for (i = 0; i < len; i++)
+          {
+            ret += lib_sprintf(s, "%02x ", nbi->nev_data[i]);
+          }
+
+        lib_stream_putc(s, '\n');
+        ret++;
+      }
+      break;
     case NOTE_DUMP_COUNTER:
       {
         FAR struct note_event_s *nbi = (FAR struct note_event_s *)p;
diff --git a/include/nuttx/sched_note.h b/include/nuttx/sched_note.h
index f6e64943b63..c87a1579206 100644
--- a/include/nuttx/sched_note.h
+++ b/include/nuttx/sched_note.h
@@ -271,6 +271,7 @@ enum note_type_e
   NOTE_DUMP_BEGIN,
   NOTE_DUMP_END,
   NOTE_DUMP_MARK,
+  NOTE_DUMP_BINARY,
   NOTE_DUMP_COUNTER,
 
   /* Always last */

Reply via email to