hi everyone, I'm trying to implement broadcast writes through multiprocessor memory on a Hammerhead Quad ADSP-21160 board. When you are using MP memory between 2 DSPs, it's sufficient to allocate the symbol on DSP 1 (".var Buf[8]; global Buf;"), declare the symbol as "extern" on DSP 2 (".extern Buf;"), and the linker automatically adds the correct address offset to all "Buf" references on DSP 2. However, suppose I have a reflective semaphore on each DSP and I want to use the broadcast write feature (in which only writes generate bus traffic). In order to use the semaphore, I need to: 1. allocate "Semaphore" on each DSP at the same address (e.g. addr = 0x0000 5000). 2. check the DSP's local copy of the semaphore (check addr = 0x0000 5000). 3. update the value of semaphore on each DSP by writing to addr = 0x0000 5000 + 0x0070 0000). My question is: in my code, do I need to explicitly state the broadcast address when I write to "Semaphore," or can I convince the linker to automatically add the offset? thanks -Robert |
auto resolution of addresses for broadcast writes?
Started by ●May 4, 2001