[ECOS] Purpose of CYGACC_CALL_IF_RESET?
Stuart Longland
redhatter@gentoo.org
Thu Aug 19 01:17:00 GMT 2010
Hi Gary,
On Wed, Aug 18, 2010 at 05:54:43AM -0600, Gary Thomas wrote:
> On 08/18/2010 12:54 AM, Stuart Longland wrote:
> > Hi,
> >
> > Does anyone happen to know what CYGACC_CALL_IF_RESET _actually_ does?
> > Please don't say "reset the device", because in my case, it doesn't...
> > and I'm looking to find out why.
> Look at .../packages/hal/arm/mdbmx1/var/current/include/hal_var_ints.h
>
> #define HAL_PLATFORM_RESET() \
> CYG_MACRO_START \
> ((void(*)(void))0)(); /* hang here forever if reset fails */ \
> CYG_MACRO_END
>
> This says that to reset the board, simply jump to location 0, which may or
> may not really do what you want. You'll have to figure out what magic can
> actually reset the board.
>
> Note: the code for this platform is not in the public repository, so you
> really should ask whomever delivered it to you for help as the eCos community
> in general will have no clue. I just happen to also have access to it.
Much appreciated. I found the bit of code in question for the i.MX27
(it does something with the watchdog to reset the device). What I'm not
sure of is what happens in CYGACC_CALL_IF_RESET? It seems that this
function gets called, and after a number of unknown steps, it eventually
calls HAL_PLATFORM_RESET, which does the actual reset of the device.
I'm suspicious that it's one of these intermediate steps that's causing
problems. Is there any documentation on what happens in between?
Regards,
--
Stuart Longland (aka Redhatter, VK4MSL) .'''.
Gentoo Linux/MIPS Cobalt and Docs Developer '.'` :
. . . . . . . . . . . . . . . . . . . . . . .'.'
http://dev.gentoo.org/~redhatter :.'
I haven't lost my mind...
...it's backed up on a tape somewhere.
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
More information about the Ecos-discuss
mailing list