rtems with matlab autocode problems

Jiri Gaisler jiri at gaisler.com
Wed Jun 16 19:04:54 UTC 2010


printf() takes a pointer to a string as first parameter. A string
like "B\n" will be stored in the .rodata segment and a pointer
will be passed to printf. If the pointer is created with immediate
operands (sethi() etc.) then it cannot be corrupted. If it is passed
from a register or stack location, then it can be overwritten.
The string itself in .rodata can always be overwritten, that is
why a watchpoint should be placed in it.

Jiri.

João Rasta wrote:
> Sorry but what do you mean by "check what the string parameter points
> to"? I can insert the breakpoint but i don't understand what is the
> string parameter.
> 
> 
> Best,
> JM
> 
> On Wed, Jun 16, 2010 at 7:15 PM, Jiri Gaisler <jiri at gaisler.com
> <mailto:jiri at gaisler.com>> wrote:
> 
> 
>     Everything in RTEMS is a task, either the init task or created
>     'secondary'
>     tasks. You might want to set CONFIGURE_INIT_TASK_STACK_SIZE to some
>     higher
>     value if your auto-code uses a lot of stack space ...
> 
>     But the proper way to debug this is to put a breakpoint on the offending
>     printf, and check what the string parameter points to. If it is not your
>     intended string ("B\n"), it might have been overwritten in memory. Put a
>     watch point on the address and check when it is written. Alternatively,
>     the pointer to the string might have been overwritten, which can be
>     tracked by similar means ...
> 
>     Jiri.
> 
>     João Rasta wrote:
>     > It is not a task, just a simple function call. I passed this call
>     to the
>     > first thing in the void POSIX_Init() and the same happens. No matter
>     > what i pass to printf or puts it allways writes the same if this
>     > function is implemented on the autocode *.c files..
>     >
>     >
>     > Best,
>     > JM
>     >
>     > On Wed, Jun 16, 2010 at 6:31 PM, Jiri Gaisler <jiri at gaisler.com
>     <mailto:jiri at gaisler.com>
>     > <mailto:jiri at gaisler.com <mailto:jiri at gaisler.com>>> wrote:
>     >
>     >
>     >     Each task is allocated a certain amount of stack space - how much
>     >     have you allocated to your auto-code one? You might try the RTEMS
>     >     stack checker to detect a stack overflow ...
>     >
>     >     Jiri.
>     >
>     >     João Rasta wrote:
>     >     > How can i be sure?
>     >     >
>     >     > The fact is that if i read the contents of all the memory
>     space with
>     >     > grmon, they are not zero.. And i have "washed" prior to load the
>     >     > application.
>     >     >
>     >     >
>     >     > Best,
>     >     > JM
>     >     >
>     >     > On Wed, Jun 16, 2010 at 6:11 PM, Jiri Gaisler
>     <jiri at gaisler.com <mailto:jiri at gaisler.com>
>     >     <mailto:jiri at gaisler.com <mailto:jiri at gaisler.com>>
>     >     > <mailto:jiri at gaisler.com <mailto:jiri at gaisler.com>
>     <mailto:jiri at gaisler.com <mailto:jiri at gaisler.com>>>> wrote:
>     >     >
>     >     >
>     >     >
>     >     >     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..
>     >     >
>     >     >     Sounds to me like you have blown the stack or run out of
>     >     memory ...
>     >     >
>     >     >     Jiri.
>     >     >
>     >     >     >
>     >     >     >
>     >     >     > Best,
>     >     >     > JM
>     >     >     >
>     >     >     > On Wed, Jun 16, 2010 at 4:56 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>>
>     <mailto:joel.sherrill at oarcorp.com <mailto:joel.sherrill at oarcorp.com>
>     >     <mailto:joel.sherrill at oarcorp.com
>     <mailto:joel.sherrill at oarcorp.com>>>
>     >     >     <mailto:joel.sherrill at oarcorp.com
>     <mailto:joel.sherrill at oarcorp.com>
>     >     <mailto:joel.sherrill at oarcorp.com
>     <mailto:joel.sherrill at oarcorp.com>>
>     >     >     <mailto: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: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>>
>     >     >     <mailto:joel.sherrill at oarcorp.com
>     <mailto:joel.sherrill at oarcorp.com>
>     >     <mailto:joel.sherrill at oarcorp.com
>     <mailto:joel.sherrill at oarcorp.com>>>
>     >     <mailto:joel.sherrill at oarcorp.com
>     <mailto:joel.sherrill at oarcorp.com> <mailto:joel.sherrill at oarcorp.com
>     <mailto:joel.sherrill at oarcorp.com>>
>     >     >     <mailto:joel.sherrill at oarcorp.com
>     <mailto:joel.sherrill at oarcorp.com>
>     >     <mailto:joel.sherrill at oarcorp.com
>     <mailto:joel.sherrill at oarcorp.com>>>>
>     >     >     >         <mailto:joel.sherrill at oarcorp.com
>     <mailto:joel.sherrill at oarcorp.com>
>     >     <mailto:joel.sherrill at oarcorp.com
>     <mailto:joel.sherrill at oarcorp.com>>
>     >     >     <mailto:joel.sherrill at oarcorp.com
>     <mailto:joel.sherrill at oarcorp.com>
>     >     <mailto:joel.sherrill at oarcorp.com
>     <mailto:joel.sherrill at oarcorp.com>>>
>     >     >     >         <mailto:joel.sherrill at oarcorp.com
>     <mailto:joel.sherrill at oarcorp.com>
>     >     <mailto:joel.sherrill at oarcorp.com
>     <mailto:joel.sherrill at oarcorp.com>>
>     >     >     <mailto: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        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        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>
>     <mailto:rtems-users at rtems.org <mailto:rtems-users at rtems.org>>
>     >     <mailto:rtems-users at rtems.org <mailto:rtems-users at rtems.org>
>     <mailto: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>
>     <mailto: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
> 
> 



More information about the users mailing list