rtems with matlab autocode problems

João Rasta freakforever at gmail.com
Wed Jun 16 19:17:15 UTC 2010


When loading the application, GRMON only shows me .text, .data, .jcr and
.got sections. Should it give me the address of .rodata as well?


Best,
JM

On Wed, Jun 16, 2010 at 8:04 PM, Jiri Gaisler <jiri at gaisler.com> wrote:

>
> 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
> >
> >
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20100616/8dde7d75/attachment.html>


More information about the users mailing list