On Mon, Jan 24, 2011 at 11:02 PM, Gilles Chanteperdrix <
[email protected]> wrote:

> at91_enthus wrote:
> > On Mon, Jan 24, 2011 at 10:54 PM, Gilles Chanteperdrix <
> > [email protected]> wrote:
> >
> >> at91_enthus wrote:
> >>> On Mon, Jan 24, 2011 at 10:28 PM, Gilles Chanteperdrix <
> >>> [email protected]> wrote:
> >>>
> >>>> at91_enthus wrote:
> >>>>> On Mon, Jan 24, 2011 at 10:16 PM, Gilles Chanteperdrix <
> >>>>> [email protected]> wrote:
> >>>>>
> >>>>>> at91_enthus wrote:
> >>>>>>> On Mon, Jan 24, 2011 at 9:25 PM, Gilles Chanteperdrix <
> >>>>>>> [email protected]> wrote:
> >>>>>>>
> >>>>>>>> at91_enthus wrote:
> >>>>>>>>> On Mon, Jan 24, 2011 at 8:41 PM, Gilles Chanteperdrix <
> >>>>>>>>> [email protected]> wrote:
> >>>>>>>>>
> >>>>>>>>>> at91_enthus wrote:
> >>>>>>>>>>> Hi.
> >>>>>>>>>>>
> >>>>>>>>>>> I  was testing Xenomai on my AT91SAM9G20-based board and tried
> to
> >>>>>> adapt
> >>>>>>>>>> the
> >>>>>>>>>>> code found here:
> >>>>>>>>>>>
> >> http://www.armadeus.com/wiki/index.php?title=Xenomai:Blinking_LEDs.
> >>>>>>>>>> By the way, this code is ridiculous. It creates a real-time task
> >> to
> >>>>>>>>>> write to some non real-time device, which makes the real-time
> task
> >>>>>>>> useless.
> >>>>>>>>> I know.
> >>>>>>>> Yes, but this example is bad in many ways:
> >>>>>>>> - first it uses xenomai api to create a real-time task, and uses
> >> write
> >>>>>>>> which causes the real-time task to switch to secondary domain;
> >>>>>>>> - the Makefile does not use xeno-config, which have been the
> >>>> recommended
> >>>>>>>> way of getting the compiler flags since day 1;
> >>>>>>>> - it nullifies SIGTERM and SIGINT, which is a dubious decision,
> and
> >>>>>>>> could lead people to believe that they should do the same when
> using
> >>>>>>>> Xenomai, whereas there is no such requirement.
> >>>>>>>> - the pointers point to outdated version of the documentation.
> >>>>>>>> - it uses runinfo/xeno-load, which are kind of outdated too, make
> >>>> things
> >>>>>>>> uselessly complicated, and in any case, tell you to type Ctrl-C to
> >>>>>>>> interrupt the program, which is bound to fail if anything goes
> >> wrong,
> >>>>>>>> since SIGINT is neutralized in the program.
> >>>>>>>>
> >>>>>>>>> That's why I went to mmap().
> >>>>>>>> That is not really the right solution either. I admit that for
> >> driving
> >>>>>>>> leds, it may be a bit overkill, but anyway, what you should do is
> >>>> write
> >>>>>>>> an RTDM driver for driving the leds. Keeping the driver separated
> >> from
> >>>>>>>> the application will allow the same program to run on other
> >> platforms
> >>>>>>>> where driving the LEDS is done differently without changing much
> of
> >>>> the
> >>>>>>>> application code. In other word, the application/driver separation
> >> is
> >>>> a
> >>>>>>>> sane one.
> >>>>>>>>
> >>>>>>>> Anyway, mmap should work.
> >>>>>>>>
> >>>>>>>>  (I chose that sample code because, for
> >>>>>>>>> now, I am only learning to use basic functions)
> >>>>>>>>>> Wrong test here. Should be "if (aic_base == MAP_FAILED)"
> >>>>>>>>> Indeed, my program fails miserably when I check the mapping of
> AIC,
> >>>> not
> >>>>>>>>> PIOB's. And yet, I just can't figure why in the non-Xenomai code,
> >> AIC
> >>>>>>>>> mmap-ing works  fine.
> >>>>>>>> Well errno might give you a clue. Do you have FCSE enabled?
> >>>>>>>>
> >>>>>>>> Regards.
> >>>>>>>>
> >>>>>>>> --
> >>>>>>>>
> >>>> Gilles.
> >>>>>>> FCSE is enabled. errno returns  22 (invalid argument).
> >>>>>> best effort or guaranteed?
> >>>>> Best effort
> >>>>>
> >>>>>
> >>>>>> Please activate FCSE messages.
> >>>>> ... compiling new kernel
> >>>>>
> >>>>>
> >>>>>> How big is
> >>>>>> MAP_SIZE?
> >>>>>>
> >>>>>>
> >>>>> 4096
> >>>> Ok. Could you post your full kernel configuration, as well as the full
> >>>> program?
> >>>>
> >>> I put the .config and the code in the attachments.
> >>
> >
> >> If you remove all the native skin stuff, only keep main and
> >> open_controller, do not link with the native library, you can confirm
> >> that this same program runs without trouble?
> >>
> >
> >  Without  Xenomai related stuff, it runs  OK.
>
> You sure of that?  The exact same code, with the same kernel, with the
> mlockall?
>
> --
>                                                                 Gilles.
>

Oh. I assumed without mlockall (it wasn't part of my original code).
Now, I placed mlockall in my original code (right before open_controller())
and the pin gets toggled according to my scope.
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to