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.

[E9999] Illegal directive or mnemonic ERROR

Other Parts Discussed in Thread: TMS320VC5505

Hello,

I'm trying to make a real-time system which will record a new audio block and process the previous one simultaneously. This is the first time I'm working with Hardware interrupts, so I made this test code which would print something everytime a HWI occurs.

4314.New Text Document.txt

 

But when I compile the Project, I get the errors:

[E9999] Illegal directive or mnemonic

[E9999] Invalid mnemonic specified

[E9999] Syntax Error

I managed to run the project twice (I don't know how exactly), but it stops inside the vectors.asm file. I tried to select algebraic or mnemonic in Runtime Model Options, but I still get errors.

Is there something wrong with my code? I'm using TMS320VC5505 eZdsp USB Stick, and i downloaded C55 Low Power Chip Support Library v2.50.00.

  • Have you made the defination changes for VC5505 in csl_general.h file to use CSL v2.50.00 for VC5505?

    Regards. 

  • Hi Mymoon,

    What file is the source file that is causing these mnemonic assembly errors?

    I see you are using the HWAFFT - are you including the hwafft.asm file - this is algebraic assembly.

    You can choose either mnemonic or algebraic assembly from the project configuration menu (affects all files in project).

    And you can also set the assembly for each file individually - able to mix algebraic and mnemonic.

    See this post: http://e2e.ti.com/support/dsp/tms320c5000_power-efficient_dsps/f/109/p/56696/201930.aspx#201930

    Hope this helps,
    Mark

  • I got rid of the errors, thank you Mark. Now I can run the program in Debug, but just after defining the interrupt, at the beginning of the infinite loop (while(1)), the program just freezes. Could the problem be in the way I defined the interrupt?

    CSL_Handle hgpt;
    CSL_Instance instance;
    CSL_GptObj gptObj;
    CSL_Status status;

    CSL_Config hwConfig;

    CSL_IRQ_Dispatch dispatchTable;
    Bool oldMask;
    Uint16 eventId = 4;
    extern void VECSTART(void);
    CSL_IRQ_Config config;


    interrupt void ISR_routine(void)
    {
        printf("Prekid\n");
    }

    ......................................................................

        //Inicijalizacija i pokretanje timera i interrupta

        hgpt=GPT_open(GPT_0, &gptObj, &status);
        status=GPT_reset(hgpt);//valjda je potrebno resetirati, iako on tamo nije imao poseban korak za to, većje usput sa OPEN
                                //upute kaž da bi ovo trebalo doć iza config
        //konfiguriranje timera
        hwConfig.autoLoad = GPT_AUTO_ENABLE;
        hwConfig.ctrlTim = GPT_TIMER_ENABLE;
        hwConfig.preScaleDiv = GPT_PRE_SC_DIV_8;
        hwConfig.prdLow = 0xFFFF;
        hwConfig.prdHigh = 0x000;
        status=GPT_config(hgpt, &hwConfig);
       
        oldMask=IRQ_globalDisable();
        IRQ_clear(eventId);
        status = IRQ_init(&dispatchTable,0);
        //IRQ_setVecs((Uint32)&VECSTART);
           
        config.funcAddr = &ISR_routine;
    //    status = IRQ_config(eventId,&config);
        IRQ_plug(eventId, &ISR_routine);
        IRQ_enable(eventId);
        IRQ_globalRestore(oldMask);
        oldMask=IRQ_globalEnable();
       
        status=GPT_start(hgpt);
       
        while(1)
        {

    ............................