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
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to