Offset | Size | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0 | 0x100 | RSA Signature over bytes 0x100-0x300 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x100 | 4 | Magic ('DSP1') | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x104 | 4 | DSP binary size | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x108 | 2 | Memory layout (bits 0-7: Program ram, 8-15: Data ram). Each bit represents a memory region. The region is always 0x8000 bytes in size (the first region starts at 0x1FF00000; the next is a 0x1FF08000 and so on). The HW registers for DSP memory configuration are CFG11_SHAREDWRAM_32K_DATA and CFG11_SHAREDWRAM_32K_CODE, located at physical address 0x10140000 (mapped to 0x1EC40000). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x10C | 1 | ? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x10D | 1 | Special segment memory type (0=1=0x1FF00000(Program ram)+,2=0x1FF40000(Data ram)+) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x10E | 1 | Num segments (must be 1-10) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x10F | 1 | Flags:DSP Memory RegionNote that everything below may vary depending on the exact DSP firmware used and different variants have slightly different behaviours. The DSP communicates with the application through two shared memory areas 0x8000 bytes long each (at 0x1FF50000 and 0x1FF70000 respectively). The DSP alternates between the use of these two areas (much like a double-buffer). Each area has 15 structures within it. The location of these structures can be obtained by reading channel 2 of the DSP pipe. A list of structures in the order the DSP addresses are read from the pipe follows: DSP ServicesDSP service “dsp::DSP” #
This is the main service for playing audio. The CSND service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously. |