rtems with matlab autocode problems

Joel Sherrill joel.sherrill at OARcorp.com
Wed Jun 16 18:25:56 UTC 2010


On 06/16/2010 01:17 PM, José Marinho isep wrote:
> -D defines a macro it is the same as having #define XX in the source code
>
> On 16 June 2010 18:48, João Rasta <freakforever at gmail.com 
> <mailto:freakforever at gmail.com>> wrote:
>
>     Yes, here goes
>
Is this the entire body of a C file?

Did it include any .h files?

>     // dummy printf test code
>     int upa(void)
>     {
>         int i = 0;
>
>         for (i=0; i < 20; i++)
>             printf("B\n");
>
>         exit(0);
>
>     }
>
>     And the result is:
>
>
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>         ¬ÖUf
>
>     Program exited normally. This same code works correctly if i put
>     the function in the main code instead of the library code. I still
>     have no idea of what can be causing this, any hints would be
>     apreciated. Mabe a compiler flag is messing up the library code?
>
>     The matlab autocode makefile generates some flags i don't
>     recognize such as the DXXX:
>
>     sparc-rtems-gcc -c -O3 -g3 -ffloat-store -fPIC   -DUSE_RTMODEL
>     -DMODEL=gnc -DRT -DNUMST=1 -DTID01EQ=0 -DNCSTATES=0 -DUNIX -DMT=0
>     -DHAVESTDI
>     O   -I. -I../../rtwlt/matlab/simulink/include
>     -I../../rtwlt/matlab/extern/include -I../../rtwlt/matlab/rtw/c/src
>     -I../../rtwlt/matlab/rtw/c/
>     src/ext_mode/common -I. -I.. -I../../rtwlt/matlab/rtw/c/libsrc  
>     ../../rtwlt/matlab/rtw/c/src/rt_sim.c
>
>
>     These flags are not used in the "main" code, for instance
>
>     sparc-rtems-gcc  -DLOGGING=1 -DLOGNOTORIETY=10 -I"../src"
>     -I"../src/comms/packet_lib" -I"../src/shell" -I"../src/comms"
>     -I"../model/gnc_linu
>     x" -I../rtwlt/matlab/simulink/include
>     -I../rtwlt/matlab/extern/include -I../rtwlt/matlab/rtw/c/src
>     -I../rtwlt/matlab/rtw/c/src/ext_mode/comm
>     on -I../rtwlt/matlab/rtw/c/libsrc   -O2 -g -Wall -c
>     -fmessage-length=0 -DRT -MMD -MP -MF"src/common.d"
>     -MT"src/common.d" -o"src/common.o" ".
>     ./src/common.c"
>
>     Has anyone seen the DXX flags?
>
>     Best,
>     JM
>
>
>
>     On Wed, Jun 16, 2010 at 6:31 PM, Till Straumann
>     <strauman at slac.stanford.edu <mailto:strauman at slac.stanford.edu>>
>     wrote:
>
>         Can you post the offending code?
>
>         T.
>
>
>         On 06/16/2010 12:02 PM, João Rasta wrote:
>>         Just an update:
>>
>>         If i do fflush(stdout) inside the test function, the
>>         application crashes. Also, no matter what i put in printf, it
>>         allways prints the same characters, but it detects the \n
>>         correctly.. I don't see if this can be related to the compiler..
>>
>>
>>         Best,
>>         JM
>>
>>         On Wed, Jun 16, 2010 at 4:56 PM, Joel Sherrill
>>         <joel.sherrill at oarcorp.com
>>         <mailto:joel.sherrill at oarcorp.com>> wrote:
>>
>>             On 06/16/2010 10:52 AM, João Rasta wrote:
>>
>>                 Hi,
>>
>>                 No, autocode requires the real-time workbench only,
>>                 it is quite straightforward to generate the code.
>>
>>                 I didn't fully understood your question. Anyway, i
>>                 have tried to compile the application with gcc and
>>                 runs fine on linux so it should run on rtems with the
>>                 apropriate modifications. However, when i
>>                 printf("test\n") within the library finction, it
>>                 returns strange characters, which doesn't happen in
>>                 the function that calls the library function..
>>
>>             Is it including stdio.h?  I have seen some targets where
>>             if you don't the variable
>>             arguments stuff gets confused.
>>
>>             Is the generated code warning free?
>>
>>
>>                 I suspect of a compilation flag/option i may be
>>                 missing on the library. Do you have any idea?
>>
>>             As long as it is compiled the same as the rest of the
>>             app, it should be ok.
>>
>>                 Also, i don't need any rtems
>>                 primitives/configurations on the library functions
>>                 right? I'm assuimng It is enough to have the rtems
>>                 configuration on the "main" file.
>>
>>             Right.
>>
>>             Can you print from other tasks?
>>
>>             --joel
>>
>>
>>                 Best,
>>                 JM
>>
>>
>>
>>
>>                 On Wed, Jun 16, 2010 at 4:42 PM, Joel Sherrill
>>                 <joel.sherrill at oarcorp.com
>>                 <mailto:joel.sherrill at oarcorp.com>
>>                 <mailto:joel.sherrill at oarcorp.com
>>                 <mailto:joel.sherrill at oarcorp.com>>> wrote:
>>
>>                    On 06/16/2010 10:38 AM, João Rasta wrote:
>>
>>                        Hi,
>>
>>                        I'm having trouble running an rtems
>>                 application that uses code
>>                        generated from matlab using autocode. It all
>>                 goes well until a
>>                        function of this library is called: printfs
>>                 return awkward
>>                        characters and then the application crashes.
>>
>>                    I have seen references to this before.  Is this
>>                 hard to do?  Are
>>                    there instructions?
>>                    Standard glue code, etc.
>>
>>                        1) Is there any obvious reason to why printfs
>>                 of the autocode
>>                        generated functions are not working properly?
>>                 They are
>>                        compiled with sparc-rtems-gcc, as the main code.
>>
>>                        2) Are there any special flags needed to be
>>                 passed to the
>>                        compiler in order to link other libraries? Or
>>                 some rtems
>>                        configuration..
>>
>>                    Is there any chance it is printing floating point
>>                 numbers from a
>>                    non-FP task?
>>
>>
>>                        Best,
>>                        JM
>>
>>
>>
>>                    --     Joel Sherrill, Ph.D.             Director
>>                 of Research&  Development
>>                 joel.sherrill at OARcorp.com
>>                 <mailto:joel.sherrill at OARcorp.com>        On-Line
>>                 Applications Research
>>                    Ask me about RTEMS: a free RTOS  Huntsville AL 35805
>>                      Support Available             (256) 722-9985
>>
>>
>>
>>
>>
>>             -- 
>>             Joel Sherrill, Ph.D.             Director of Research&
>>              Development
>>             joel.sherrill at OARcorp.com
>>             <mailto:joel.sherrill at OARcorp.com>        On-Line
>>             Applications Research
>>             Ask me about RTEMS: a free RTOS  Huntsville AL 35805
>>               Support Available             (256) 722-9985
>>
>>
>>
>>
>>         _______________________________________________
>>         rtems-users mailing list
>>         rtems-users at rtems.org <mailto:rtems-users at rtems.org>
>>         http://www.rtems.org/mailman/listinfo/rtems-users
>
>
>
>     _______________________________________________
>     rtems-users mailing list
>     rtems-users at rtems.org <mailto:rtems-users at rtems.org>
>     http://www.rtems.org/mailman/listinfo/rtems-users
>
>
>
>
> -- 
> José Marinho


-- 
Joel Sherrill, Ph.D.             Director of Research&  Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
    Support Available             (256) 722-9985





More information about the users mailing list