<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Don't worry too much about *vp for now. The fault actually occurs
      in m_class.c:506.</p>
    <p>Do you use PDINSTANCE?<br>
    </p>
    <p>Also, you can check stm32f4xx_it.c:90 to see what kind of error
      you're getting.</p>
    <p>How much memory do you have available?<br>
    </p>
    <p>Christof<br>
    </p>
    <div class="moz-cite-prefix">On 22.03.2020 17:15, Boštjan Jerko
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:944E473B-6963-40F1-847A-1369A682E80C@gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      I’m attaching images from debugger. The strange thing is that
      type1 is A_DEFFLOAT, but *vp is still A_NULL. Guess I need to work
      (at least) on that.
      <div class="">That way the loop doesn’t even get started.</div>
      <div class="">So one image shows values of type1 and *vp and the
        other is stack.</div>
      <div class=""><br class="">
      </div>
      <div class="">I’m using stm32f429 and Segger programmer with their
        Ozone debugger.</div>
      <div class=""><br class="">
      </div>
      <div class="">B.</div>
      <div class=""><br class="">
      </div>
      <div class=""><img apple-inline="yes"
          id="0FD9ED5D-36D1-44CD-8F45-93A0F9C165AA"
          src="cid:part1.BAF0769F.1B088BF4@christofressi.com" class=""
          width="1047" height="281"><img apple-inline="yes"
          id="6204EC01-ACD9-42BF-827A-3247E7A9F41E"
          src="cid:part2.A43806B0.0807CC49@christofressi.com" class=""
          width="939" height="475"></div>
      <div class="">
        <div class=""><br class="">
          <div><br class="">
            <blockquote type="cite" class="">
              <div class="">On 22 Mar 2020, at 11:52, Christof Ressi
                <<a href="mailto:info@christofressi.com" class=""
                  moz-do-not-send="true">info@christofressi.com</a>>
                wrote:</div>
              <br class="Apple-interchange-newline">
              <div class="">
                <div class="">
                  <blockquote type="cite" class="">and then in function
                    class_new vp is empty so while (*vp) doesn’t go
                    through it<br class="">
                  </blockquote>
                  What do you mean by "empty", when exactly is "vp"
                  empty and how did you test?<br class="">
                  <br class="">
                  "vp" is initially set to "type1", which in the case of
                  pdint_setup() is "A_DEFFLOAT". So it would be very
                  strange if "vp" was initially empty in the case
                  pdint_setup(). The while loop sets "vp" to the next
                  vararg and increments the pointer until it encounters
                  "A_NULL" (= 0). So finally, "*vp" will always be 0, if
                  that is what you mean by empty.<br class="">
                  <br class="">
                  Or did you mean "vp" itself is NULL? This would be
                  even stranger, because it points to the stack.<br
                    class="">
                  <br class="">
                  Do your run the code in a debugger? If yes, post the
                  stack trace. If not, well, use a debugger :-)<br
                    class="">
                  <br class="">
                  BTW, which device are you using?<br class="">
                  <br class="">
                  Christof<br class="">
                  <br class="">
                  On 22.03.2020 09:13, Boštjan Jerko wrote:<br class="">
                  <blockquote type="cite" class="">Hi Christof,<br
                      class="">
                    <br class="">
                    the problem is that I don’t really know what happens
                    but it goes something like that:<br class="">
                    <br class="">
                    calling pd_init -> pd_init_systems ->
                    conf_init -> x_connective_setup -> pdint_setup<br
                      class="">
                    <br class="">
                    and then in function class_new vp is empty so while
                    (*vp) doesn’t go through it and after exiting
                    class_new the microcontroller stops with a hard
                    error.<br class="">
                    So maybe the question is really - should the vp be
                    empty and if not - why is that happening?<br
                      class="">
                    <br class="">
                    B.<br class="">
                    <br class="">
                    <blockquote type="cite" class="">On 21 Mar 2020, at
                      13:58, Christof Ressi <<a
                        href="mailto:info@christofressi.com" class=""
                        moz-do-not-send="true">info@christofressi.com</a>>
                      wrote:<br class="">
                      <br class="">
                      Hi,<br class="">
                      <br class="">
                      <blockquote type="cite" class="">The code compiles
                        but I get the error when running in the
                        pdint_setup where pdint_new in class_new breaks
                        with an error.<br class="">
                        My idea is to first try to understand the code
                        hence my question:<br class="">
                      </blockquote>
                      I think first you should post the error you get
                      ;-) Maybe the problem is trivially solved without
                      having to look at  code for class_new() at all.<br
                        class="">
                      <blockquote type="cite" class="">What does
                        class_new do?<br class="">
                      </blockquote>
                      It creates a new Pd class (t_pd). The class
                      contains all the methods and some metadata. It
                      also registers a creator function in
                      pd_objectmaker, which is the factory object for
                      all classes.<br class="">
                      <br class="">
                      When you type "[foo 0]" you really send a message
                      "obj <x> <y> foo 0" to the canvas,
                      which in turn sends a message "foo 0" to
                      pd_objectmaker, which finally returns a newly
                      created instance (given that it can find a creator
                      method for "foo").<br class="">
                      <br class="">
                      But again, I think the problem is likely trivial
                      and those implementation details shouldn't concern
                      you, unless you want to learn about Pd internals,
                      of course :-)<br class="">
                      <br class="">
                      Christof<br class="">
                      <br class="">
                      On 21.03.2020 13:20, Boštjan Jerko wrote:<br
                        class="">
                      <blockquote type="cite" class="">Hi,<br class="">
                        <br class="">
                        I’m trying to port libpd to stm32. I don’t need
                        gui so working only on connecting pd script to
                        the output (which is DAC from stm32 in my case).<br
                          class="">
                        The code compiles but I get the error when
                        running in the pdint_setup where pdint_new in
                        class_new breaks with an error.<br class="">
                        My idea is to first try to understand the code
                        hence my question:<br class="">
                        What does class_new do?<br class="">
                        <br class="">
                        My guess is connecting puredata command with a
                        function in C. Am I correct or completely
                        missing the point?<br class="">
                        <br class="">
                        Thanks.<br class="">
                        <br class="">
                        B.<br class="">
                        <br class="">
                        <br class="">
                        _______________________________________________<br
                          class="">
                        Pd-dev mailing list<br class="">
                        <a href="mailto:Pd-dev@lists.iem.at" class=""
                          moz-do-not-send="true">Pd-dev@lists.iem.at</a><br
                          class="">
                        <a class="moz-txt-link-freetext" href="https://lists.puredata.info/listinfo/pd-dev">https://lists.puredata.info/listinfo/pd-dev</a><br
                          class="">
                      </blockquote>
                      <br class="">
                      <br class="">
                      _______________________________________________<br
                        class="">
                      Pd-dev mailing list<br class="">
                      <a href="mailto:Pd-dev@lists.iem.at" class=""
                        moz-do-not-send="true">Pd-dev@lists.iem.at</a><br
                        class="">
                      <a class="moz-txt-link-freetext" href="https://lists.puredata.info/listinfo/pd-dev">https://lists.puredata.info/listinfo/pd-dev</a><br
                        class="">
                    </blockquote>
                  </blockquote>
                  <br class="">
                  <br class="">
                  <br class="">
                  _______________________________________________<br
                    class="">
                  Pd-dev mailing list<br class="">
                  <a href="mailto:Pd-dev@lists.iem.at" class=""
                    moz-do-not-send="true">Pd-dev@lists.iem.at</a><br
                    class="">
                  <a class="moz-txt-link-freetext" href="https://lists.puredata.info/listinfo/pd-dev">https://lists.puredata.info/listinfo/pd-dev</a><br
                    class="">
                </div>
              </div>
            </blockquote>
          </div>
          <br class="">
        </div>
      </div>
    </blockquote>
  </body>
</html>