Hi,
I'm trying to get a data acquisition & processing code to run on a 542 DSP. I thought I had my memory sanely set up, but I've hit the oddest issue...
Here is my linker command MEMORY and SECTIONS, filling all of the onchip RAM:
MEMORY {
INTR_TABLE (RIX) : origin = 0x0080, length = 0x0080
DATA (RW) : origin = 0x0100, length = 0x0800, fill = 0x0000
SBUFFER (RW) : origin = 0x0900, length = 0x0400, fill = 0x00AA
PROG (RIX) : origin = 0x0D00, length = 0x1B00
}
SECTIONS {
.text : > (X)
_smon_p : > (X)
.vectors : > (X)
_cfft_p : > (X)
_cbrev_p : > (X)
.sintab : > (X)
log10_p : > (X)
}
The .text section contains the core code which acquires data with PORTR, and it operates fine on its own. The other sections are functions (most from the DSPLIB) which are preassembled in .obj files. lnk500 pieces these together, and as I said the .text code runs fine on its own, until I add in a call to any of the functions in other sections. Then the processor behaves strangely, either rebooting incessantly, or just freezing. Whaaa?
The plot thickens: I tried having the functions all assemble into .text instead. The first to go in on the memory map is the main function from what was the "_smon_p" function (a serial monitor using the XT and BIO pins). Now, despite having the entry point (-e) specified as start of the core acq code, the 542 refuses to boot to anything but the serial monitor.
What am I doing wrong?
Thanks.