Thanks for the help! I wasn't aware of the legacy component folder in the SOPC builder. One I used it, the application works perfectly! I was using the Nios2 on chip memory. When you select ROM, a note at the bottom appears (<device name> will be loaded using <device name.hex>). I confirmed this looking at the VHDL generated for my on chip memory device. Does Nios2 support the s part?
I have not used the HAL/IDE yet because of various reasons. The first one is I don't have JTAG on my dev board. I would have to lift/cut/jumper the 100 pin TSOP to have this. Second, I just became familiar with the SDK and don't want to mess up my evaluation with learning something new. I wanted to compare apples with apples (Nios1, Nios2). Third, after reading APP350, I didn't like some of the changes. The SDK code looked much more object oriented. For example:
SDK:
pio->np_piodata = bits;
bits = pio->np_piodata;
HAL:
IOWR_ALTERA_AVALON_PIO_DATA(address, bits);
bits = IOWR_ALTERA_AVALON_PIO_DATA(address);
I prefere to write my code that looks like the SDK, instead of calling an obnoxiously named function/macro.
Dispite my preferences, I do however plan to evaluate the HAL/IDE, and will probably use it in future designs. I see the need for it, because in my own experience I had to write an abstraction layer for some of the devices that we interface to. You can quickly paint yourself in a corner by making the code too object oriented. One hardware change and your toast! Sometimes it's best to make things generic. My bias probably came from my impressions of the Nios1 sdk. I thought it was the best thing since sliced bread.
http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/smile.gif
Rick