EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

Problem with watchdog

Started by Ake Hedman, eurosource December 6, 2005
Dan Beadle wrote:

> Are you "tickling" the watchdog? Once enabled, you must reset the
> timer regularly - to tell the WDT that life is good. Otherwise it
> will bite you by resetting (in a loop)
>
Hej Dan,

yes I feed the dog. I have also just tried to write a loop where I do
nothing else then feeding the watchdog but I'm still seem to have the
problem. Initialized with the largest watchdog timeout value (about 5
minutes) I should have no problem with this for the first time. But in
my case nothing works after the initialization.

As no one seem not to have problems with this I must do something
stupid. I must be missing something.

The program works perfect until I initialize the watchdog BTW.

/Ake

--
---
Ake Hedman (YAP - Yet Another Programmer)
eurosource, Brattbergavägen 17, 820 50 LOS, Sweden
Phone: (46) 657 413430 Cellular: (46) 73 84 84 102
Company home: http://www.eurosource.se
Kryddor/Te/Kaffe: http://www.brattberg.com
Personal homepage: http://www.eurosource.se/akhe
Automated home: http://www.vscp.org


An Engineer's Guide to the LPC2100 Series

I am still trying to solve my problems with the watchdog.

I have now scaled away most stuff of my application and can see that the
problem occurs when either of three interrupts occur (UART0/UART1/I2C0)
in the system. Without the watchdog everything works fine but if I
enable the watchdog everything crashes. I have tried to just enable and
trig one of the interrupts in turn but the situation is the same.

I'm totally out of clues at the moment so any (also things that might be
considered dumb) are very welcome.

Regards
/Ake

Ake Hedman, eurosource wrote:

> Dan Beadle wrote:
>
> > Are you "tickling" the watchdog? Once enabled, you must reset the
> > timer regularly - to tell the WDT that life is good. Otherwise it
> > will bite you by resetting (in a loop)
> >
> Hej Dan,
>
> yes I feed the dog. I have also just tried to write a loop where I do
> nothing else then feeding the watchdog but I'm still seem to have the
> problem. Initialized with the largest watchdog timeout value (about 5
> minutes) I should have no problem with this for the first time. But in
> my case nothing works after the initialization.
>
> As no one seem not to have problems with this I must do something
> stupid. I must be missing something.
>
> The program works perfect until I initialize the watchdog BTW.
>
> /Ake
>
> --
> ---
> Ake Hedman (YAP - Yet Another Programmer)
> eurosource, Brattbergavägen 17, 820 50 LOS, Sweden
> Phone: (46) 657 413430 Cellular: (46) 73 84 84 102
> Company home: http://www.eurosource.se
> Kryddor/Te/Kaffe: http://www.brattberg.com
> Personal homepage: http://www.eurosource.se/akhe
> Automated home: http://www.vscp.org >
>
> SPONSORED LINKS
> Microprocessor
> <http://groups.yahoo.com/gads?t=ms&k=Microprocessor&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=tsVC-J9hJ5qyXg0WPR0l6g>
> Microcontrollers
> <http://groups.yahoo.com/gads?t=ms&k=Microcontrollers&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=DvJVNqC_pqRTm8Xq01nxwg>
> Pic microcontrollers
> <http://groups.yahoo.com/gads?t=ms&k=Pic+microcontrollers&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=TpkoX4KofDJ7c6LyBvUqVQ>
>
> 8051 microprocessor
> <http://groups.yahoo.com/gads?t=ms&k51+microprocessor&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=1Ipf1Fjfbd_HVIlekkDP-A >
>
> >. >
>


--
---
Ake Hedman (YAP - Yet Another Programmer)
eurosource, Brattbergavägen 17, 820 50 LOS, Sweden
Phone: (46) 657 413430 Cellular: (46) 73 84 84 102
Company home: http://www.eurosource.se
Kryddor/Te/Kaffe: http://www.brattberg.com
Personal homepage: http://www.eurosource.se/akhe
Automated home: http://www.vscp.org


Hi,
I have the same problems, when I try to insert WD function it doesn't
work anything, the compiler expands code in the same manner as you
explains. register are defined as volatile. But PLL_FEED doesn't work
in the same mode?

Alberto


What device are you using?
Have you tried just a loop where you feed the watchdog just after you
enable it? This works for me as long as I don't have any interrupts
enabled.

As it only happens when interrupts are enabled for me and therefore my
working theory at the moment is that something is wrong happens in the
interrupt routines after all. Have no clue why this should manifest
itself when the watchdog is enabled. With the lack of responses on my
cry for help on this issue from other list members no one else does
either. ;-( or? ;-)

/Ake alberto wrote:

> Hi,
> I have the same problems, when I try to insert WD function it doesn't
> work anything, the compiler expands code in the same manner as you
> explains. register are defined as volatile. But PLL_FEED doesn't work
> in the same mode?
>
> Alberto >
> SPONSORED LINKS
> Microprocessor
> <http://groups.yahoo.com/gads?t=ms&k=Microprocessor&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=tsVC-J9hJ5qyXg0WPR0l6g>
> Microcontrollers
> <http://groups.yahoo.com/gads?t=ms&k=Microcontrollers&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=DvJVNqC_pqRTm8Xq01nxwg>
> Pic microcontrollers
> <http://groups.yahoo.com/gads?t=ms&k=Pic+microcontrollers&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=TpkoX4KofDJ7c6LyBvUqVQ>
>
> 8051 microprocessor
> <http://groups.yahoo.com/gads?t=ms&k51+microprocessor&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=1Ipf1Fjfbd_HVIlekkDP-A >
>
> >. >
>


--
---
Ake Hedman (YAP - Yet Another Programmer)
eurosource, Brattbergavägen 17, 820 50 LOS, Sweden
Phone: (46) 657 413430 Cellular: (46) 73 84 84 102
Company home: http://www.eurosource.se
Kryddor/Te/Kaffe: http://www.brattberg.com
Personal homepage: http://www.eurosource.se/akhe
Automated home: http://www.vscp.org


Ok Ake, here's my dumb suggestion:

Try enabling the watchdog, but just to interrupt not reset?
You'll need an interrupt handler / VIC channel to do it - can you spare one?
That ISR need just raise a flag for now.

Once the watchdog is fed and running happily, you might then be able to enable resets on
it.

Hope this helps,
Danish

--- In lpc2000@lpc2..., "Ake Hedman, eurosource" <akhe@b...> wrote:
>
> I am still trying to solve my problems with the watchdog.
>
> I have now scaled away most stuff of my application and can see that the
> problem occurs when either of three interrupts occur (UART0/UART1/I2C0)
> in the system. Without the watchdog everything works fine but if I
> enable the watchdog everything crashes. I have tried to just enable and
> trig one of the interrupts in turn but the situation is the same.
>
> I'm totally out of clues at the moment so any (also things that might be
> considered dumb) are very welcome.
>
> Regards
> /Ake



Hi there,
there is a note in the UM about the feeding sequence
of the PLL which says that the writing of 0xAA and
then 0x55 must be two consecutive VPB cycles. No
interrupts between them. For the WDT the text is
different it says that after feeding 0xAA "...the next
operation in the Watchdog register space should be a
WRITE (0x55) to the WDFEED register otherwise the
Watchdog is triggered."

May be the dog doesn't like to be interrupted when
feeding.

Regards

--- "Ake Hedman, eurosource" <akhe@akhe...>
wrote:

> Hi all.
>
> I am trying to enable the watchdog but the result is
> a total hang of the
> board. Not even the bootloader is possible to reach
> after the crash and
> I have to reapply power with P0.14 low to get access
> to the botloader
> again. Reset is not enough.
>
> The code to initialize the watchdog is
>
> // initialize the watchdog timer
> WDTC = 0xffffffff; // 15000000;
> // One second
> = 15000000
> WDMOD = WDEN | WDRESET; //
> Activate watchdog
> WDFEED = 0xAA; WDFEED = 0x55;
>
> I must have misunderstood the WD functionality. What
> am I doing wrong?
> In the above code the watchdog should not trigger
> until 5 minutes
> elapsed so even if a vector should be wrong the code
> that follow should
> run for a while but as soon as I write to the WDMOD
> register I get a hang.
>
> /Ake
>
> --
> ---
> Ake Hedman (YAP - Yet Another Programmer)
> eurosource, Brattbergavägen 17, 820 50 LOS, Sweden
> Phone: (46) 657 413430 Cellular: (46) 73 84 84 102
> Company home: http://www.eurosource.se
> Kryddor/Te/Kaffe: http://www.brattberg.com
> Personal homepage: http://www.eurosource.se/akhe
> Automated home: http://www.vscp.org >

__________________________________________
Yahoo! DSL Something to write home about.
Just $16.99/mo. or less.
dsl.yahoo.com


Hi Danish,

Not dumb a *very good* suggestion. Not dumb or not matters now. I will
try every suggestion at this stage... Everyone who have done some
projects know the feeling. Everything in place. The product ready to be
sent to the customer.... Just have to enable that tiny little thing
also..... ;-)

Back to work!
/Ake

dr_danish_ali wrote:

> Ok Ake, here's my dumb suggestion:
>
> Try enabling the watchdog, but just to interrupt not reset?
> You'll need an interrupt handler / VIC channel to do it - can you
> spare one?
> That ISR need just raise a flag for now.
>
> Once the watchdog is fed and running happily, you might then be able
> to enable resets on
> it.
>
> Hope this helps,
> Danish
>
> --- In lpc2000@lpc2..., "Ake Hedman, eurosource" <akhe@b...>
> wrote:
> >
> > I am still trying to solve my problems with the watchdog.
> >
> > I have now scaled away most stuff of my application and can see that
> the
> > problem occurs when either of three interrupts occur (UART0/UART1/I2C0)
> > in the system. Without the watchdog everything works fine but if I
> > enable the watchdog everything crashes. I have tried to just enable and
> > trig one of the interrupts in turn but the situation is the same.
> >
> > I'm totally out of clues at the moment so any (also things that
> might be
> > considered dumb) are very welcome.
> >
> > Regards
> > /Ake > SPONSORED LINKS
> Microprocessor
> <http://groups.yahoo.com/gads?t=ms&k=Microprocessor&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=tsVC-J9hJ5qyXg0WPR0l6g>
> Microcontrollers
> <http://groups.yahoo.com/gads?t=ms&k=Microcontrollers&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=DvJVNqC_pqRTm8Xq01nxwg>
> Pic microcontrollers
> <http://groups.yahoo.com/gads?t=ms&k=Pic+microcontrollers&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=TpkoX4KofDJ7c6LyBvUqVQ>
>
> 8051 microprocessor
> <http://groups.yahoo.com/gads?t=ms&k51+microprocessor&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=1Ipf1Fjfbd_HVIlekkDP-A >
>
> >. >
>


--
---
Ake Hedman (YAP - Yet Another Programmer)
eurosource, Brattbergavägen 17, 820 50 LOS, Sweden
Phone: (46) 657 413430 Cellular: (46) 73 84 84 102
Company home: http://www.eurosource.se
Kryddor/Te/Kaffe: http://www.brattberg.com
Personal homepage: http://www.eurosource.se/akhe
Automated home: http://www.vscp.org


Hi,

thanks for the suggestions. Also well worth a try. I will report my
findings back.

I would like to thank you and everyone else who have responded to this
problem. Your suggestions, questions are very valuable and I hope I can
give something back in the future.

/Ake

3gpabko wrote:

> Hi there,
> there is a note in the UM about the feeding sequence
> of the PLL which says that the writing of 0xAA and
> then 0x55 must be two consecutive VPB cycles. No
> interrupts between them. For the WDT the text is
> different it says that after feeding 0xAA "...the next
> operation in the Watchdog register space should be a
> WRITE (0x55) to the WDFEED register otherwise the
> Watchdog is triggered."
>
> May be the dog doesn't like to be interrupted when
> feeding.
>
> Regards
>
> --- "Ake Hedman, eurosource" <akhe@akhe...>
> wrote:
>
> > Hi all.
> >
> > I am trying to enable the watchdog but the result is
> > a total hang of the
> > board. Not even the bootloader is possible to reach
> > after the crash and
> > I have to reapply power with P0.14 low to get access
> > to the botloader
> > again. Reset is not enough.
> >
> > The code to initialize the watchdog is
> >
> > // initialize the watchdog timer
> > WDTC = 0xffffffff; // 15000000;
> > // One second
> > = 15000000
> > WDMOD = WDEN | WDRESET; //
> > Activate watchdog
> > WDFEED = 0xAA; WDFEED = 0x55;
> >
> > I must have misunderstood the WD functionality. What
> > am I doing wrong?
> > In the above code the watchdog should not trigger
> > until 5 minutes
> > elapsed so even if a vector should be wrong the code
> > that follow should
> > run for a while but as soon as I write to the WDMOD
> > register I get a hang.
> >
> > /Ake
> >
> > --
> > ---
> > Ake Hedman (YAP - Yet Another Programmer)
> > eurosource, Brattbergavägen 17, 820 50 LOS, Sweden
> > Phone: (46) 657 413430 Cellular: (46) 73 84 84 102
> > Company home: http://www.eurosource.se
> > Kryddor/Te/Kaffe: http://www.brattberg.com
> > Personal homepage: http://www.eurosource.se/akhe
> > Automated home: http://www.vscp.org
> >
> >
> >
>
> __________________________________________
> Yahoo! DSL - Something to write home about.
> Just $16.99/mo. or less.
> dsl.yahoo.com >
> SPONSORED LINKS
> Microprocessor
> <http://groups.yahoo.com/gads?t=ms&k=Microprocessor&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=tsVC-J9hJ5qyXg0WPR0l6g>
> Microcontrollers
> <http://groups.yahoo.com/gads?t=ms&k=Microcontrollers&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=DvJVNqC_pqRTm8Xq01nxwg>
> Pic microcontrollers
> <http://groups.yahoo.com/gads?t=ms&k=Pic+microcontrollers&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=TpkoX4KofDJ7c6LyBvUqVQ>
>
> 8051 microprocessor
> <http://groups.yahoo.com/gads?t=ms&k51+microprocessor&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=1Ipf1Fjfbd_HVIlekkDP-A >
>
> >. >
>


--
---
Ake Hedman (YAP - Yet Another Programmer)
eurosource, Brattbergavägen 17, 820 50 LOS, Sweden
Phone: (46) 657 413430 Cellular: (46) 73 84 84 102
Company home: http://www.eurosource.se
Kryddor/Te/Kaffe: http://www.brattberg.com
Personal homepage: http://www.eurosource.se/akhe
Automated home: http://www.vscp.org


WD story update

I changed the code to have the watchdog raising an IRQ instead of a
RESET. I initialize stuff and then go in in a while loop.

1.) With interrupts enabled but no interrupt channel active this will
not trigger the watchdog. Why?

2.) With one of the interrupt channels active ( UART0 writing some
characters ) the watchdog works. Without a dog feed the watchdog is
triggered and with a feed it runs fine. However what I initialize WDTC
with does to seem to matter. I always get about 4 ms period when I
toggle a pin in the WD interrupt (60MHz clock).

Is this behaviour recognized by anyone? Please!

BTW the chip is LPC2138

/Ake dr_danish_ali wrote:

> Ok Ake, here's my dumb suggestion:
>
> Try enabling the watchdog, but just to interrupt not reset?
> You'll need an interrupt handler / VIC channel to do it - can you
> spare one?
> That ISR need just raise a flag for now.
>
> Once the watchdog is fed and running happily, you might then be able
> to enable resets on
> it.
>
> Hope this helps,
> Danish
>
> --- In lpc2000@lpc2..., "Ake Hedman, eurosource" <akhe@b...>
> wrote:
> >
> > I am still trying to solve my problems with the watchdog.
> >
> > I have now scaled away most stuff of my application and can see that
> the
> > problem occurs when either of three interrupts occur (UART0/UART1/I2C0)
> > in the system. Without the watchdog everything works fine but if I
> > enable the watchdog everything crashes. I have tried to just enable and
> > trig one of the interrupts in turn but the situation is the same.
> >
> > I'm totally out of clues at the moment so any (also things that
> might be
> > considered dumb) are very welcome.
> >
> > Regards
> > /Ake > SPONSORED LINKS
> Microprocessor
> <http://groups.yahoo.com/gads?t=ms&k=Microprocessor&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=tsVC-J9hJ5qyXg0WPR0l6g>
> Microcontrollers
> <http://groups.yahoo.com/gads?t=ms&k=Microcontrollers&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=DvJVNqC_pqRTm8Xq01nxwg>
> Pic microcontrollers
> <http://groups.yahoo.com/gads?t=ms&k=Pic+microcontrollers&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=TpkoX4KofDJ7c6LyBvUqVQ>
>
> 8051 microprocessor
> <http://groups.yahoo.com/gads?t=ms&k51+microprocessor&w1=Microprocessor&w2=Microcontrollers&w3=Pic+microcontrollers&w451+microprocessor&c=4&s&.sig=1Ipf1Fjfbd_HVIlekkDP-A >
>
> >. >
>


--
---
Ake Hedman (YAP - Yet Another Programmer)
eurosource, Brattbergavägen 17, 820 50 LOS, Sweden
Phone: (46) 657 413430 Cellular: (46) 73 84 84 102
Company home: http://www.eurosource.se
Kryddor/Te/Kaffe: http://www.brattberg.com
Personal homepage: http://www.eurosource.se/akhe
Automated home: http://www.vscp.org



Ake,

I can almost feel your frustration: we've all been there!

I'm very interested in the outcome of this, as our own task for next
week is to get the watchdog working on our own LPC2134-based system.

I'm a bit surprised that no one has volunteered some working code.
Surely someone out there is using this?

Unfortunately, as we haven't got there yet, I've nothing specific to
suggest, other than a general strategy of getting something simple
working first, and then building up to where you are. For example:

1. As simple as possible startup, initialisation (all peripherals
disabled, all interrupts off etc.) and an application that
initialises the watchdog and uses GPIO to signal what it's doing (and
maybe reads to indicate whether or not the watchdog should be fed).
In other words, the simplest possible program with a working
watchdog.

2. Same program, but with your normal initialisation and setup code,
added incrementally. Still working?

3. Compare and contrast with your real application, particularly in
how peripherals, interrupts etc. are managed.

In other words, get something simple working first, and build up from
there. It'll take time, but maybe less time then starting from a
larger system that doesn't work.

Hopefully, somewhere along the line, all will become obvious.

By the way, are you running your code using an emulator connected?
I've seen strange behaviour in the past with watchdogs enabled. Try
running stand-alone, if you haven't done so already.

As a final suggestion, based on what you say below, I'd look very
carefully at every location interrupts are enabled/disabled (at the
peripheral level, at the VIC and at the CPSR). Also at your startup
and IRQ dispatch code. Maybe the processor is resetting and re-
initialising stuff without you realising? maybe throwing an exception
you haven't noticed?

As a final comment: 'though no doubt it feels like it, it's not time
wasted: you'll know way more about the watchdog and processor at the
end of all this then when you started.

Good luck!

Brendan --- In lpc2000@lpc2..., "Ake Hedman, eurosource" <akhe@b...>
wrote:
>
> WD story update
>
> I changed the code to have the watchdog raising an IRQ instead of a
> RESET. I initialize stuff and then go in in a while loop.
>
> 1.) With interrupts enabled but no interrupt channel active this
will
> not trigger the watchdog. Why?
>
> 2.) With one of the interrupt channels active ( UART0 writing some
> characters ) the watchdog works. Without a dog feed the watchdog is
> triggered and with a feed it runs fine. However what I initialize
WDTC
> with does to seem to matter. I always get about 4 ms period when I
> toggle a pin in the WD interrupt (60MHz clock).
>
> Is this behaviour recognized by anyone? Please!
>
> BTW the chip is LPC2138
>
> /Ake > dr_danish_ali wrote:
>
> > Ok Ake, here's my dumb suggestion:
> >
> > Try enabling the watchdog, but just to interrupt not reset?
> > You'll need an interrupt handler / VIC channel to do it - can you
> > spare one?
> > That ISR need just raise a flag for now.
> >
> > Once the watchdog is fed and running happily, you might then be
able
> > to enable resets on
> > it.
> >
> > Hope this helps,
> > Danish
> >
> > --- In lpc2000@lpc2..., "Ake Hedman, eurosource"
<akhe@b...>
> > wrote:
> > >
> > > I am still trying to solve my problems with the watchdog.
> > >
> > > I have now scaled away most stuff of my application and can see
that
> > the
> > > problem occurs when either of three interrupts occur
(UART0/UART1/I2C0)
> > > in the system. Without the watchdog everything works fine but
if I
> > > enable the watchdog everything crashes. I have tried to just
enable and
> > > trig one of the interrupts in turn but the situation is the
same.
> > >
> > > I'm totally out of clues at the moment so any (also things that
> > might be
> > > considered dumb) are very welcome.
> > >
> > > Regards
> > > /Ake
> >
> >
> >
> >
> >
> > SPONSORED LINKS
> > Microprocessor
> > <http://groups.yahoo.com/gads?
t=ms&k=Microprocessor&w1=Microprocessor&w2=Microcontrollers&w3=Pic+mic
rocontrollers&w451+microprocessor&c=4&s&.sig=tsVC-
J9hJ5qyXg0WPR0l6g>
> > Microcontrollers
> > <http://groups.yahoo.com/gads?
t=ms&k=Microcontrollers&w1=Microprocessor&w2=Microcontrollers&w3=Pic+m
icrocontrollers&w451+microprocessor&c=4&s&.sig=DvJVNqC_pqRTm8Xq0
1nxwg>
> > Pic microcontrollers
> > <http://groups.yahoo.com/gads?
t=ms&k=Pic+microcontrollers&w1=Microprocessor&w2=Microcontrollers&w3=P
ic+microcontrollers&w451+microprocessor&c=4&s&.sig=TpkoX4KofDJ7c
6LyBvUqVQ>
> >
> > 8051 microprocessor
> > <http://groups.yahoo.com/gads?
t=ms&k51+microprocessor&w1=Microprocessor&w2=Microcontrollers&w3=Pi
c+microcontrollers&w451+microprocessor&c=4&s&.sig=1Ipf1Fjfbd_HVI
lekkDP-A>
> >
> >
> >
> > ------------------------------
------
> > >.
> >
> >
> > ------------------------------
------
> > --
> ---
> Ake Hedman (YAP - Yet Another Programmer)
> eurosource, Brattbergavägen 17, 820 50 LOS, Sweden
> Phone: (46) 657 413430 Cellular: (46) 73 84 84 102
> Company home: http://www.eurosource.se
> Kryddor/Te/Kaffe: http://www.brattberg.com
> Personal homepage: http://www.eurosource.se/akhe
> Automated home: http://www.vscp.org





The 2024 Embedded Online Conference