[PATCH] Add lvgl_hello: Sample Hello world app using littleVGL and libbsd
Vijay Kumar Banerjee
vijaykumar9597 at gmail.com
Tue Sep 17 19:04:26 UTC 2019
On Tue, Sep 17, 2019 at 2:21 PM Christian Mauderer <list at c-mauderer.de>
wrote:
> On 17/09/2019 08:46, Vijay Kumar Banerjee wrote:
> >
> >
> > On Thu, Sep 12, 2019 at 2:37 PM Christian Mauderer
> > <christian.mauderer at embedded-brains.de
> > <mailto:christian.mauderer at embedded-brains.de>> wrote:
> >
> >
> >
> > On 12/09/2019 10:28, Vijay Kumar Banerjee wrote:
> > >
> > >
> > >
> > > On Wed, Sep 11, 2019 at 4:38 PM Christian Mauderer
> > > <christian.mauderer at embedded-brains.de
> > <mailto:christian.mauderer at embedded-brains.de>
> > > <mailto:christian.mauderer at embedded-brains.de
> > <mailto:christian.mauderer at embedded-brains.de>>> wrote:
> > >
> > > On 11/09/2019 10:48, Vijay Kumar Banerjee wrote:
> > > >
> > > > Hi,
> > > >
> > > > Since adding I2C in BBB initialization seems like the right
> > solution,
> > > > should we ask
> > > > in devel and user lists in a separate thread, to know if
> > anyone is
> > > > opposed to this change?
> > >
> > > Hello Vijay,
> > >
> > > just send a patch. That will start the discussion if someone
> > objects
> > > to it.
> > >
> > > >
> > > > Where should I be looking for to add i2c in BBB
> initialization?
> > >
> > > Please take a look at the dependencies. If there are any (like
> > clocks or
> > > similar) you have to add it afterwards.
> > >
> > > Take a look at some other BSPs where similar hardware (like
> > I2C, SPI,
> > > some external chips, ...) is initialized. For example the
> > mvme3100 uses
> > > a RTEMS_SYSINIT_ITEM to pick a random sample. But I think most
> > BSPs use
> > > a special init function similar to the one in BBB.
> > >
> > > Hi,
> > >
> > > I tried a very similar approach and added RTEMS_SYSINIT_ITEM
> > > :
> > > ```
> > > diff --git a/bsps/arm/beagle/start/bspstart.c
> > > b/bsps/arm/beagle/start/bspstart.c
> > > index 224f9ecf3b..35839e774b 100644
> > > --- a/bsps/arm/beagle/start/bspstart.c
> > > +++ b/bsps/arm/beagle/start/bspstart.c
> > > @@ -17,6 +17,8 @@
> > > #include <bsp/irq-generic.h>
> > > #include <bsp/fdt.h>
> > > #include <bsp/linker-symbols.h>
> > > +#include <bsp/i2c.h>
> > > +#include <rtems/sysinit.h>
> > >
> > > #include "bspdebug.h"
> > >
> > > @@ -41,3 +43,15 @@ uint32_t bsp_fdt_map_intr(const uint32_t *intr,
> > > size_t icells)
> > > {
> > > return intr[0];
> > > }
> > > +
> > > +static void bbb_i2c_0_initialize(void)
> > > +{
> > > + bbb_register_i2c_0();
> > > +}
> > > +
> > > +RTEMS_SYSINIT_ITEM(
> > > + bbb_i2c_0_initialize,
> > > + RTEMS_SYSINIT_BSP_PRE_DRIVERS,
> > > + RTEMS_SYSINIT_ORDER_MIDDLE
> > > +);
> > > ```
> > > This is successfully calling the `am335x_i2c_bus_register` but
> > > the issue with this approach is that it's returning the following
> > > internal error after `am335x_i2c_reset` call.
> > > ```
> > > _Terminate (the_source=the_source at entry=INTERNAL_ERROR_CORE,
> > > the_error=the_error at entry=30)
> > > ```
> > >
> > > Any hint on what might be the cause of the error?
> >
> > Just a guess: Are you sure that "BSP_PRE_DRIVERS" is the right order?
> > It's a driver so maybe somewhen during the drivers?
> >
> > I tried RTEMS_SYSINIT_DEVICE_DRIVERS, and eve RTEMS_SYSINIT_LAST,
> > but it doesn't seem to work. Maybe it needs to be called in a further
> > later stage.
>
> I think you have a debugger? Could you set a breakpoint to _Terminate
> and take a look at the back trace what caused the error?
>
> Hi,
I followed the error and figured out that the reason for the error was a
call to
`rtems_task_wake_after` which was coming from the `udelay()` call in bbb-i2c
in function `am335x_i2c_reset`. For now, commenting out the udelay calls
work
without error and I can also see the lvgl example working.
What is the use of udelay there? Can it be removed? if not, what's the
better way
to make a delay at system initialization than `rtems_task_wake_after`?
>
> > Does bbb_i2c_0_initialize has a type that is compatible with the
> sysinit
> > items?
> >
> > yes, I checked this. the function is called and it's reaching
> > am335x_i2c_* calls
> > but it's getting stuck somewhere between i2c_reset and pinmux. Am I
> possibly
> > missing some other drivers that it depends on?
> > Can you please point me to the doc/note where the init sequence is
> properly
> > described. Also, if there's some other bsp that has initialized a driver
> > at init, please
> > point me to that for reference.
> >
> > >
> > > Best regards
> > >
> > > Christian
> > >
> >
> > --
> > --------------------------------------------
> > embedded brains GmbH
> > Herr Christian Mauderer
> > Dornierstr. 4
> > D-82178 Puchheim
> > Germany
> > email: christian.mauderer at embedded-brains.de
> > <mailto:christian.mauderer at embedded-brains.de>
> > Phone: +49-89-18 94 741 - 18
> > Fax: +49-89-18 94 741 - 08
> > PGP: Public key available on request.
> >
> > Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
> >
> >
> > _______________________________________________
> > devel mailing list
> > devel at rtems.org
> > http://lists.rtems.org/mailman/listinfo/devel
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20190918/ebb35494/attachment-0002.html>
More information about the devel
mailing list