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