This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TAS3204's PCADDR instruction problem

Other Parts Discussed in Thread: TAS3204, TAS3108, TAS3208, TAS3202, TAS3308

hello,

   i am developing a new audio product with TAS3204, now i have a question:  (purepath is version 1.74)
  
   from datasheet of TAS3204, it has 3K Words of 55-Bit Program RAM, when i write component,
  
   i have below instruction:
JMP     | NOP   | NOP  | NOP | PCADDR(%%prop(InstanceId)_GAIN_PROC_END)
NOP     | NOP   | NOP  | NOP | NOP
NOP     | NOP   | NOP  | NOP | NOP
NOP     | NOP   | NOP  | NOP | NOP

%%prop(InstanceId)_GAIN_PROC_END:
NOP     | CLRACC | LD(%%prop(InstanceId)_Gyn_1,MC) | NOP  | NOP 
 .............
 .............
 
   I debug this component in IDE, it is OK.  my program is bigger, before i drag it in my program in GDE,
   building, GDE's right tab display DSP Code (words): 2052  (66.28% used), and build is successful.
   after i drag component in GDE, build, output window display:
   ------------------------------------------------------------
   Error: DSP_flow.asm(6688): Address out of range in PCADDR: 2098
   Error: DSP_flow.asm(6705): Address out of range in PCADDR: 2095
   Error: DSP_flow.asm(6825): Address out of range in PCADDR: 2142
   Error: DSP_flow.asm(6836): Address out of range in PCADDR: 2119
   Error: DSP_flow.asm(6843): Address out of range in PCADDR: 2161
   Error: DSP_flow.asm(6869): Address out of range in PCADDR: 2161
   Error: DSP_flow.asm(6882): Address out of range in PCADDR: 2161
   Error: DSP_flow.asm(6909): Address out of range in PCADDR: 2161
   Error: DSP_flow.asm(6996): Address out of range in PCADDR: 2187
   Error: DSP_flow.asm(7007): Address out of range in PCADDR: 2195
   Error: DSP_main.asm(6688): Invalid Instruction : Stage 5 must specify PCAddr
   Error: DSP_main.asm(6705): Invalid Instruction : Stage 5 must specify PCAddr
   Error: DSP_main.asm(6825): Invalid Instruction : Stage 5 must specify PCAddr
   Error: DSP_main.asm(6836): Invalid Instruction : Stage 5 must specify PCAddr
   Error: DSP_main.asm(6843): Invalid Instruction : Stage 5 must specify PCAddr
   Error: DSP_main.asm(6869): Invalid Instruction : Stage 5 must specify PCAddr
   Error: DSP_main.asm(6882): Invalid Instruction : Stage 5 must specify PCAddr
   Error: DSP_main.asm(6909): Invalid Instruction : Stage 5 must specify PCAddr
   Error: DSP_main.asm(6996): Invalid Instruction : Stage 5 must specify PCAddr
   Error: DSP_main.asm(7007): Invalid Instruction : Stage 5 must specify PCAddr
   20 errors detected
   Assembler was terminated.
   ------------------------------------------------------------
   
   my code don't over 3k words, why PCADDR cann't point to that label ??????
  
   Later, i repeat to read the sleu067(TAS3108/TAS3108IA Audio DSP Instruction Set),
   i found there is a note,please see below:
   Note: The branch label can be anywhere in the code outside the four lines of code
   specified for the JMP instruction.
  
   in that case, why i can't assemble successfully ???
  
   looking forword to your reply. thanks.
  

  • Jing Sun

    jing sun said:
    in that case, why i can't assemble successfully ???

     

    The Program Counter is the following size of the respective TAS3x parts

    TAS3108: 10 bits

    TAS3202, TAS3204, TAS3208, TAS3308: 11 bits

     

    The addressable range of the jump instruction is limited to the range of the Program Counter. This is why you are seeing the assembly failure.