rtems with matlab autocode problems
Jiri Gaisler
jiri at gaisler.com
Wed Jun 16 19:22:47 UTC 2010
.rodata is typically part of .text - you can look in the linkcmds file
to see how the different sections are grouped.
João Rasta wrote:
> 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
> <mailto: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>
> > <mailto: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>>
> > > <mailto: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>>>
> > > > <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 <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>>>>
> > > > <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: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>>>>>
> > > > > <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
> <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>>>
> > > <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 <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>>
> > <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