What Am I Missing?
OK, I know this should be really simple, but I just can't seem to
figure it out.
I'm using Workbench 3.0 and vxWorks 6.6 to develop an application for
a PowerPC target (a Wind River wrSbc8349 board). I built a standard
bootloader project based on the Wind-River-supplied BSP for this
board. I program the resulting bootrom.bin into the flash at the reset
vector address (0xfff00100) and it boots up just fine. Using this
bootloader I can load my vxWorks kernel (built frmo a standard
Workbench vxWorks image project based on the same BSP) over the
network via TFTP and everything works as expected. AFAICT there is no
problem with either the bootloader or the kernel image.
Now I want to boot entirely from flash as opposed to over the network.
Using the same vxWorks image project that works fine in the scenario
above, I changed the active build spec to "default_rom", added a new
build target called "vxWorks_rom.bin," and rebuilt everything. My
understanding is that this should generate a vxWorks kernel image that
will boot itself from flash, copy itself to RAM, and continue
execution from there just as if it had been copied into RAM from a
network server by a bootloader. However, when I program this new .bin
file into the flash, it generates an exception almost immediately
after reset; at most a couple of dozen instructions get executed
before the crash. Using the OCD debugger I looked at the instructions
at the reset vector, and they look the same as those used by the
(working) bootloader. I have yet to perform an exhaustive analysis to
see if/where the generated code differs, but that's next on my list if
no other answer presents itself first.
Anyway, to those of you who have gotten this to work, am I doing
something wrong? Did I miss any steps? I'm sure it's something
forehead-slapping simple, and probably right under my nose, but I need
a little nudge to see it.
Thanks for your help!
Re: What Am I Missing?
I have more or less the same problem. Did you manage to solve it?