I have encountered two situations that result in unstable behavior with System ACE:
The boot loader mounts the CF as a file system, copies the VxWorks image into memory, then jumps to the entry point for VxWorks. I receive an error and then System ACE hangs.
The boot loader outlined above continues as the reset vector after VxWorks starts up. I receive an error, and System ACE does not access the CF card correctly when the reset button is pressed.
Resolution to situation one
This is most likely due to the original boot loader mounting the CF, then leaving it in an unusual state when VxWorks starts up.
To keep the System ACE from hanging when VxWorks starts up, set the "FORCELOCKREQ" bit in the Control Register of the System ACE in the boot loader just before it starts up VxWorks. This keeps the System ACE in a fixed state as VxWorks starts up.
Resolution to situation two
This is due to VxWorks mounting the CF and keeping it locked as a mounted file system. When the reset button is pressed, the boot loader starts up and tries to mount the CF as a file system, causing an error since VxWorks did not release the lock from when it was running.
To keep the System ACE from hanging when boot loader mounts the CF as a file system again, have the boot loader lock the System ACE, set the command register to "Abort Command" 0x06, then release the lock on the System ACE. This forces the System ACE to abort all pending commands and to return to the start up state, allowing the boot loader to mount the CF as expected.