<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Mark,<br>
    <br>
    I also recommend merging the SPIRAM fix into master now and building
    the factory release on that base as well (see my post Re: [Ovmsdev]
    Time for 3.2.006?).<br>
    <br>
    I've been releasing all builds on my server including the fix since
    June, so there is no need for further tests.<br>
    <br>
    Regards,<br>
    Michael<br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 13.12.19 um 09:35 schrieb Michael
      Balzer:<br>
    </div>
    <blockquote type="cite"
      cite="mid:aeaf6673-e41d-6ddd-8b75-6f45babc756a@expeedo.de">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      Mark,<br>
      <br>
      having a look at Greg's new report now, which differs from the
      first. Please wait for my results.<br>
      <br>
      Regards,<br>
      Michael<br>
      <br>
      <br>
      <div class="moz-cite-prefix">Am 13.12.19 um 06:05 schrieb Mark
        Webb-Johnson:<br>
      </div>
      <blockquote type="cite"
        cite="mid:B47D4FF1-DFBB-4C8E-B22B-BAE54811EE28@webb-johnson.net">
        <meta http-equiv="Content-Type" content="text/html;
          charset=UTF-8">
        Michael,
        <div class=""><br class="">
        </div>
        <div class="">It all looks good.</div>
        <div class=""><br class="">
        </div>
        <div class="">I have tagged this as 3.2.008, and sent it to EAP.
          Plan is to send to MAIN this weekend.</div>
        <div class=""><br class="">
        </div>
        <div class="">The rush is to avoid another of the new 8MB PSRAM
          users updating OTA and messed up their module. Any objections?</div>
        <div class=""><br class="">
        </div>
        <div class="">Regards, Mark.<br class="">
          <div><br class="">
            <blockquote type="cite" class="">
              <div class="">On 12 Dec 2019, at 6:12 PM, Michael Balzer
                <<a href="mailto:dexter@expeedo.de" class=""
                  moz-do-not-send="true">dexter@expeedo.de</a>>
                wrote:</div>
              <br class="Apple-interchange-newline">
              <div class=""><span style="caret-color: rgb(0, 0, 0);
                  font-family: Helvetica; font-size: 18px; font-style:
                  normal; font-variant-caps: normal; font-weight:
                  normal; letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none; float: none; display:
                  inline !important;" class="">2) You're right, the bug
                  is tx_frame with null origin overwriting body.bus in
                  the union. I didn't notice that when checking Marko's
                  submission.</span><br style="caret-color: rgb(0, 0,
                  0); font-family: Helvetica; font-size: 18px;
                  font-style: normal; font-variant-caps: normal;
                  font-weight: normal; letter-spacing: normal;
                  text-align: start; text-indent: 0px; text-transform:
                  none; white-space: normal; word-spacing: 0px;
                  -webkit-text-stroke-width: 0px; text-decoration:
                  none;" class="">
                <br style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none;" class="">
                <span style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none; float: none; display:
                  inline !important;" class="">tx_frame is a copy of the
                  last frame given to the bus for transmission. The
                  queue msg is gone when the TX done IRQ comes in, and
                  Marko needed a copy of the frame the TX IRQ relates
                  to. I asked him (see PR discussion), he checked and
                  confirmed that all TX is done sequentially, so a
                  single buffer is sufficient.</span><br
                  style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none;" class="">
                <br style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none;" class="">
                <span style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none; float: none; display:
                  inline !important;" class="">Swapping the lines would
                  work. The frame.origin also shouldn't be null, but the
                  handler should tolerate that. …oops, tx_frame also
                  doesn't get initialized in the canbus constructor, so
                  there's also potentially garbage in tx_frame if due to
                  some bug a TX IRQ is generated or processed without a
                  previous tx.</span><br style="caret-color: rgb(0, 0,
                  0); font-family: Helvetica; font-size: 18px;
                  font-style: normal; font-variant-caps: normal;
                  font-weight: normal; letter-spacing: normal;
                  text-align: start; text-indent: 0px; text-transform:
                  none; white-space: normal; word-spacing: 0px;
                  -webkit-text-stroke-width: 0px; text-decoration:
                  none;" class="">
                <br style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none;" class="">
                <span style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none; float: none; display:
                  inline !important;" class="">I'll do the fixes… and
                  also rename tx_frame to m_tx_frame for consistency.</span><br
                  style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none;" class="">
                <br style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none;" class="">
                <span style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none; float: none; display:
                  inline !important;" class="">Regards,</span><br
                  style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none;" class="">
                <span style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none; float: none; display:
                  inline !important;" class="">Michael</span><br
                  style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none;" class="">
                <br style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none;" class="">
                <br style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none;" class="">
                <div class="moz-cite-prefix" style="caret-color: rgb(0,
                  0, 0); font-family: Helvetica; font-size: 18px;
                  font-style: normal; font-variant-caps: normal;
                  font-weight: normal; letter-spacing: normal;
                  text-align: start; text-indent: 0px; text-transform:
                  none; white-space: normal; word-spacing: 0px;
                  -webkit-text-stroke-width: 0px; text-decoration:
                  none;">Am 12.12.19 um 01:20 schrieb Mark Webb-Johnson:<br
                    class="">
                </div>
                <blockquote type="cite"
                  cite="mid:DDE51878-283B-45E6-8423-FF095EF621A6@webb-johnson.net"
                  style="font-family: Helvetica; font-size: 18px;
                  font-style: normal; font-variant-caps: normal;
                  font-weight: normal; letter-spacing: normal; orphans:
                  auto; text-align: start; text-indent: 0px;
                  text-transform: none; white-space: normal; widows:
                  auto; word-spacing: 0px; -webkit-text-size-adjust:
                  auto; -webkit-text-stroke-width: 0px; text-decoration:
                  none;" class="">
                  <div class="">Two issues:</div>
                  <div class=""><br class="">
                  </div>
                  <div class=""><u class=""><b class="">1] A2L</b></u></div>
                  <div class=""><br class="">
                  </div>
                  My a2l is this:
                  <div class=""><br class="">
                  </div>
                  <blockquote class="" style="margin: 0px 0px 0px 40px;
                    border: none; padding: 0px;">
                    <div class="">
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">#!/bin/bash</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">elf=3.2.007.ovms3.elf</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">for adr in $* ; do</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;"> <span
                              class="Apple-converted-space"> </span>if
                            [[ "$adr" =~ "elf" ]] ; then</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">   <span
                              class="Apple-converted-space"> </span>elf="$adr"</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;"> <span
                              class="Apple-converted-space"> </span>else</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">   <span
                              class="Apple-converted-space"> </span>cmd+="
                            -ex 'l *$adr'"</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;"> <span
                              class="Apple-converted-space"> </span>fi</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">done</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">cmd+=" -ex 'q'"</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">echo "Using elf file:
                            $elf"</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">echo "xtensa-esp32-elf-gdb
                            -batch $elf $cmd"</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">eval xtensa-esp32-elf-gdb
                            -batch $elf $cmd 2>/dev/null #| grep
                            "^0x.* is in "</span></font></div>
                    </div>
                  </blockquote>
                  <div class="">
                    <div class=""><br class="">
                    </div>
                    <div class="">When I run it, I get:</div>
                    <div class=""><br class="">
                    </div>
                  </div>
                  <blockquote class="" style="margin: 0px 0px 0px 40px;
                    border: none; padding: 0px;">
                    <div class=""><font class="" face="Andale Mono"><span
                          class="" style="font-style: normal; font-size:
                          14px;">$ a2l 3.2.007.ovms3.elf
                          0x400d5e4c:0x3ffc5c40 0x7ffffffd:0x3ffc5c90</span></font></div>
                    <div class=""><font class="" face="Andale Mono"><span
                          class="" style="font-style: normal; font-size:
                          14px;">Using elf file: 3.2.007.ovms3.elf</span></font></div>
                    <div class=""><font class="" face="Andale Mono"><span
                          class="" style="font-size: 14px;">xtensa-esp32-elf-gdb
                          -batch 3.2.007.ovms3.elf  -ex 'l
                          *0x400d5e4c:0x3ffc5c40' -ex 'l
                          *0x7ffffffd:0x3ffc5c90' -ex ‘q'</span></font></div>
                  </blockquote>
                  <div class="">
                    <div class=""><br class="">
                    </div>
                    <div class="">And a manual run gives:</div>
                    <div class=""><br class="">
                    </div>
                  </div>
                  <blockquote class="" style="margin: 0px 0px 0px 40px;
                    border: none; padding: 0px;">
                    <div class="">
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">$ xtensa-esp32-elf-gdb
                            -batch 3.2.007.ovms3.elf  -ex 'l
                            *0x400d5e4c:0x3ffc5c40' -ex 'l
                            *0x7ffffffd:0x3ffc5c90' -ex 'q'</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">Junk at end of line
                            specification.</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;"><br class="">
                          </span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">$ </span><span class=""
                            style="font-size: 14px;">xtensa-esp32-elf-gdb
                            3.2.007.ovms3.elf</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-size: 14px;">GNU gdb
                            (crosstool-NG
                            crosstool-ng-1.22.0-80-g6c4433a) 7.10</span></font></div>
                      <div class=""><span class="" style="font-size:
                          14px;">(gdb) l *0x400d5e4c:0x3ffc5c40</span></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-size: 14px;">
                            <div class="">Junk at end of line
                              specification.</div>
                            <div class="">(gdb) l *0x7ffffffd:0x3ffc5c90</div>
                            <div class="">(gdb) quit</div>
                          </span></font></div>
                    </div>
                  </blockquote>
                  <div class="">
                    <div class=""><br class="">
                    </div>
                    <div class=""><u class=""><b class="">2] Frame
                          origin</b></u></div>
                    <div class=""><br class="">
                    </div>
                    <div class="">Regarding the CAN_txcallback, I think
                      you are correct. And both generators of that
                      message set the frame correctly. So my initial
                      thought was that it is either a memory corruption,
                      or somewhere else sending a frame with garbage
                      data.</div>
                    <div class=""><br class="">
                    </div>
                    <div class="">I do see this technique used in both
                      the mcp2515 and esp32can drivers:</div>
                    <div class=""><br class="">
                    </div>
                  </div>
                  <blockquote class="" style="margin: 0px 0px 0px 40px;
                    border: none; padding: 0px;">
                    <div class="">
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">msg.body.bus = me;</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">msg.body.frame =
                            me->tx_frame;</span></font></div>
                    </div>
                  </blockquote>
                  <div class="">
                    <div class=""><br class="">
                    </div>
                    <div class="">I don’t normally just copy structures
                      over like that. I memcpy() them, but I guess it
                      must work. However, as our CAN_queue_msg_t is a
                      union of CAN_frame_t (frame, with first member of
                      the structure a canbus*) and 'canbus* bus’, that
                      is a little worrying. It seems that the
                      msg.body.bus will get overwritten with whatever is
                      in msg.body.frame.origin. I can’t see anywhere
                      that tx_frame.origin is set - which is scary
                      because that would mean it is always random junk.</div>
                    <div class=""><br class="">
                    </div>
                    <div class="">Maybe it works if tx_frame.origin is
                      set to the bus before anything else, but not in
                      Greg’s circumstances where something else arrives
                      first. Perhaps related to obd2ecu? I only see
                      tx_frame set in can.cpp canbus::Write. I don’t
                      really understand the tx_frame approach at all,
                      and why the frame is just not passed on the queue.</div>
                    <div class=""><br class="">
                    </div>
                  </div>
                  <blockquote class="" style="margin: 0px 0px 0px 40px;
                    border: none; padding: 0px;">
                    <div class="">
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">// CAN Frame</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">// Note: Take care
                            changing this structure, as it is a union
                            with</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">// CAN_log_message_t and
                            position of 'origin' is fixed.</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">struct CAN_frame_t</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;"> <span
                              class="Apple-converted-space"> </span>{</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;"> <span
                              class="Apple-converted-space"> </span>canbus*
                                origin;                   // Origin of
                            the frame</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;"> <span
                              class="Apple-converted-space"> </span>CanFrameCallback
                            * callback;          // Frame-specific
                            callback. Is called when this frame is
                            successfully sent (or sending failed)</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;"> <span
                              class="Apple-converted-space"> </span>CAN_FIR_t
                              FIR;                      // Frame
                            information record</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;"> <span
                              class="Apple-converted-space"> </span>uint32_t
                               MsgID;                    // Message ID</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;"> <span
                              class="Apple-converted-space"> </span>union</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">   <span
                              class="Apple-converted-space"> </span>{</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">   <span
                              class="Apple-converted-space"> </span>uint8_t
                              u8[8];                    // Payload byte
                            access</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">   <span
                              class="Apple-converted-space"> </span>uint32_t
                             u32[2];                   // Payload u32
                            access (Att: little endian!)</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">   <span
                              class="Apple-converted-space"> </span>uint64_t
                             u64;                      // Payload u64
                            access (Att: little endian!)</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;">   <span
                              class="Apple-converted-space"> </span>}
                            data;</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;"><br class="">
                          </span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;"> <span
                              class="Apple-converted-space"> </span>esp_err_t
                            Write(canbus* bus=NULL, TickType_t
                            maxqueuewait=0);  // bus: NULL=origin</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;"> <span
                              class="Apple-converted-space"> </span>};</span></font></div>
                      <div class=""><font class="" face="Andale Mono"><span
                            class="" style="font-style: normal;
                            font-size: 14px;"><br class="">
                          </span></font></div>
                      <div class="">
                        <div class=""><font class="" face="Andale Mono"><span
                              class="" style="font-size: 14px;">// CAN
                              message<br class="">
                              typedef struct<br class="">
                               <span class="Apple-converted-space"> </span>{<br
                                class="">
                               <span class="Apple-converted-space"> </span>CAN_queue_type_t
                              type;<br class="">
                               <span class="Apple-converted-space"> </span>union<br
                                class="">
                                 <span class="Apple-converted-space"> </span>{<br
                                class="">
                                 <span class="Apple-converted-space"> </span>CAN_frame_t
                              frame;  // CAN_frame<br class="">
                                 <span class="Apple-converted-space"> </span>canbus*
                              bus;<br class="">
                                 <span class="Apple-converted-space"> </span>}
                              body;<br class="">
                               <span class="Apple-converted-space"> </span>}
                              CAN_queue_msg_t;</span></font></div>
                      </div>
                    </div>
                  </blockquote>
                  <div class="">
                    <div class=""><br class="">
                    </div>
                    <div class="">This approach seems to date back to
                      the swcan support merge (f94ae5a1b).</div>
                    <div class=""><br class="">
                    </div>
                    <div class="">Should we swap around, and set the
                      msg.body.bus after msg.body.frame? Or am I missing
                      something…</div>
                    <div class=""><br class="">
                    </div>
                    <div class="">Regards, Mark.</div>
                    <div class=""><br class="">
                      <blockquote type="cite" class="">
                        <div class="">On 12 Dec 2019, at 2:29 AM,
                          Michael Balzer <<a
                            href="mailto:dexter@expeedo.de" class=""
                            moz-do-not-send="true">dexter@expeedo.de</a>>
                          wrote:</div>
                        <br class="Apple-interchange-newline">
                        <div class="">
                          <div class="">Mark,<br class="">
                            <br class="">
                            good example why not to use addr2line: I
                            think that result is wrong. a2l uses gdb
                            which gives:<br class="">
                            <br class="">
                            <tt class=""><a
                                class="moz-txt-link-abbreviated"
href="mailto:balzer@leela:~/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3"
                                moz-do-not-send="true">balzer@leela:~/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3</a>>
                              a2l tmp/3.2.007.ovms3.elf
                              0x400d5e4c:0x3ffc5c40
                              0x7ffffffd:0x3ffc5c90<br class="">
                              Using elf file: tmp/3.2.007.ovms3.elf<br
                                class="">
                              0x400d5e4c is in CAN_rxtask(void*)
(/home/openvehicles/build/Open-Vehicle-Monitoring-System-3.1/vehicle/OVMS.V3/components/can/src/can.cpp:730).<br
                                class="">
                              725                 
                              me->IncomingFrame(&msg.body.frame);<br
                                class="">
                              726                } while (loop);<br
                                class="">
                              727              break;<br class="">
                              728              }<br class="">
                              729            case CAN_txcallback:<br
                                class="">
                              730             
                              msg.body.bus->TxCallback(&msg.body.frame,
                              true);<br class="">
                              731              break;<br class="">
                              732            case CAN_txfailedcallback:<br
                                class="">
                              733             
                              msg.body.bus->TxCallback(&msg.body.frame,
                              false);<br class="">
                              734             
                              msg.body.bus->LogStatus(CAN_LogStatus_Error);<br
                                class="">
                            </tt><tt class=""><br class="">
                            </tt>…and that actually makes sense and
                            matches the register dump.<br class="">
                            <br class="">
                            If I read the gdb disassembly correctly, A10
                            = msg.body.bus, so Greg's got a
                            CAN_txcallback msg without a bus.<br
                              class="">
                            <br class="">
                            Hardening the rxtask against null here would
                            probably avoid the crash, but I don't see
                            yet how that could be possible.<br class="">
                            Both esp32can and mcp2515 set the bus field
                            to their object addresses, which cannot be
                            null.<br class="">
                            <br class="">
                            Regards,<br class="">
                            Michael<br class="">
                            <br class="">
                            <br class="">
                            <div class="moz-cite-prefix">Am 11.12.19 um
                              13:45 schrieb Mark Webb-Johnson:<br
                                class="">
                            </div>
                            <blockquote type="cite"
                              cite="mid:1BF79214-A026-4AD0-97D4-5C845FBB0328@webb-johnson.net"
                              class="">Can’t get a2l working at the
                              moment. The addr2line gives:
                              <div class=""><br class="">
                              </div>
                              <blockquote class="" style="margin: 0px
                                0px 0px 40px; border: none; padding:
                                0px;">
                                <div class="">
                                  <div class="">addr2line -e
                                    3.2.007.ovms3.elf
                                    0x400d5e4c:0x3ffc5c40
                                    0x7ffffffd:0x3ffc5c90</div>
                                  <div class="">/home/openvehicles/build/Open-Vehicle-Monitoring-System-3.1/vehicle/OVMS.V3/components/can/src/can.cpp:551</div>
                                </div>
                              </blockquote>
                              <div class="">
                                <div class="">
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">That is:</div>
                                  <div class=""><br class="">
                                  </div>
                                </div>
                              </div>
                              <blockquote class="" style="margin: 0px
                                0px 0px 40px; border: none; padding:
                                0px;">
                                <div class="">
                                  <div class="">
                                    <div class="">
                                      <div class="">void
                                        canbus::LogInfo(CAN_log_type_t
                                        type, const char* text)</div>
                                      <div class=""> <span
                                          class="Apple-converted-space"> </span>{</div>
                                      <div class=""> <span
                                          class="Apple-converted-space"> </span>MyCan.LogInfo(this,
                                        type, text);    <—— HERE</div>
                                      <div class=""> <span
                                          class="Apple-converted-space"> </span>}</div>
                                    </div>
                                  </div>
                                </div>
                              </blockquote>
                              <div class="">
                                <div class="">
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">ELF is at:</div>
                                  <div class=""><br class="">
                                  </div>
                                </div>
                              </div>
                              <blockquote class="" style="margin: 0px
                                0px 0px 40px; border: none; padding:
                                0px;">
                                <div class="">
                                  <div class="">
                                    <div class=""><a
href="http://api.openvehicles.com/firmware/ota/v3.2/main/3.2.007.ovms3.elf"
                                        class="" moz-do-not-send="true">http://api.openvehicles.com/firmware/ota/v3.2/main/3.2.007.ovms3.elf</a></div>
                                  </div>
                                </div>
                              </blockquote>
                              <div class="">
                                <div class="">
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">Regards, Mark.</div>
                                  <div class=""><br class="">
                                    <blockquote type="cite" class="">
                                      <div class="">On 11 Dec 2019, at
                                        5:20 PM, Michael Balzer <<a
                                          href="mailto:dexter@expeedo.de"
                                          class=""
                                          moz-do-not-send="true">dexter@expeedo.de</a>>
                                        wrote:</div>
                                      <br
                                        class="Apple-interchange-newline">
                                      <div class="">
                                        <div class="">
                                          <div class="moz-cite-prefix">Mark,<br
                                              class="">
                                            <br class="">
                                            Greg uses your build, the
                                            crash point seems to be
                                            consistent, can you post the
                                            a2l on this?<br class="">
                                            <br class="">
                                            Regards,<br class="">
                                            Michael<br class="">
                                            <br class="">
                                            PS: Greg, would you mind
                                            switching to EAP to beta
                                            test future releases?<br
                                              class="">
                                            <br class="">
                                            <br class="">
                                            Am 11.12.19 um 04:33 schrieb
                                            Greg D.:<br class="">
                                          </div>
                                          <blockquote type="cite"
                                            cite="mid:48cd3f20-409f-d201-640a-31b6e7788e92@gmail.com"
                                            class="">
                                            <pre class="moz-quote-pre" wrap="">Hi folks,

Well, the module updated to 3.2.007 last night.  I just checked on it,
and it appears that it didn't exactly survive.  Crashed while running
the autoconfig script.  Log with two cycles attached.

I tried renaming the /store/events directory to /store/was_events since
it seems like Duktape was getting in the way, but that didn't resolve
the crash.  I manually enabled wifi so I could manage the module, and
moved it back to 3.2.005 from the other partition.  Seems stable again.

The car is going into the Service Center tomorrow (the perennial issue
with 1146 alerts), so I need to have the module stable so that I can
keep an eye on it.  Going to leave it on 3.2.005 for now, unless someone
has a quick fix in the next few hours...

Otherwise, any ideas for troubleshooting after I get the car back back
(hopefully end of day)?

Greg

</pre>
                                            <br class="">
                                            <fieldset
                                              class="mimeAttachmentHeader"></fieldset>
                                            <pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
                                          </blockquote>
                                          <br class="">
                                          <br class="">
                                          <pre class="moz-signature" cols="144">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
</pre>
                                        </div>
_______________________________________________<br class="">
                                        OvmsDev mailing list<br class="">
                                        <a
                                          href="mailto:OvmsDev@lists.openvehicles.com"
                                          class=""
                                          moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a><br
                                          class="">
                                        <a class="moz-txt-link-freetext"
href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev"
                                          moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br
                                          class="">
                                      </div>
                                    </blockquote>
                                  </div>
                                  <br class="">
                                </div>
                              </div>
                              <br class="">
                              <fieldset class="mimeAttachmentHeader"></fieldset>
                              <pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
                            </blockquote>
                            <br class="">
                            <pre class="moz-signature" cols="160">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
</pre>
                          </div>
_______________________________________________<br class="">
                          OvmsDev mailing list<br class="">
                          <a
                            href="mailto:OvmsDev@lists.openvehicles.com"
                            class="" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a><br
                            class="">
                          <a class="moz-txt-link-freetext"
                            href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev"
                            moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br
                            class="">
                        </div>
                      </blockquote>
                    </div>
                    <br class="">
                  </div>
                  <br class="">
                  <fieldset class="mimeAttachmentHeader"></fieldset>
                  <pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
                </blockquote>
                <br style="caret-color: rgb(0, 0, 0); font-family:
                  Helvetica; font-size: 18px; font-style: normal;
                  font-variant-caps: normal; font-weight: normal;
                  letter-spacing: normal; text-align: start;
                  text-indent: 0px; text-transform: none; white-space:
                  normal; word-spacing: 0px; -webkit-text-stroke-width:
                  0px; text-decoration: none;" class="">
                <pre class="moz-signature" cols="160" style="caret-color: rgb(0, 0, 0); font-size: 18px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
              </div>
            </blockquote>
          </div>
          <br class="">
        </div>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
      </blockquote>
      <br>
      <pre class="moz-signature" cols="160">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="160">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
</pre>
  </body>
</html>