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.

Problems using 5.41 BIOS

Hi there

 

I am using the SYS/BIOS 5.41, and when i try to create a new periodic task and i try to put an argument,

after building it gives an error every time.

I've a structure that is the argument but i don't know how to put it.

I am doing this:

New periodic ->The name-> Properties->arg0-> the name of the structure.

It delivers an error all the time. I've tried to put various types like: "Arg" or "Ptr" but it doesn't gets right.

Please help

 

Best regards

 

Antonio Gonçalves

 

 

 

  • Hi Antonio,

    ricardo gon���alves said:
    New periodic ->The name-> Properties->arg0-> the name of the structure.

    Are you using the Gconf graphical configuration tool to do the?  Or are you doing this in your C code?

    ricardo gon���alves said:
    It delivers an error all the time. I've tried to put various types like: "Arg" or "Ptr" but it doesn't gets right.

    Can you please reply with the full build output that shows the error you are seeing?

    Thanks,

    Steve

  • Hi Steve

     

    I am using the Gconf graphic configuration tool and the Error that CCS report's is:

     

    "prime_ec_f2806xcfg.s28", ERROR!   at EOF: [E0300] The following symbols are
                                                       undefined:
      .long

    Errors in Source - Assembler Aborted
    1 Assembly Error, No Assembly Warnings

    >> Compilation failure
    gmake: *** [c:/temp/f2806x/prime_llc_example_f2806x/Release/prime_ec_f2806xcfg.obj] Error 1
    'Building file: prime_ec_f2806xcfg_c.c'

     

    When i put the Arg or Ptr it gives an error like this. I can't work with pointers or other variables? I just can work with fixed values?

     

    Best regards

    Antonio

  • Hi Antonio,

    The argument to the PRD function is of type "Arg" but this is a generic type. You should be able to pass a pointer.

    Have you seen the BIOS example called 'bigtime"?  This example shows how to pass an object of type "Clock" to the PRD function.

    E.g. in bigtime.tcf:

    prdClock0 = bios.PRD.create("prdClock0");
    prdClock0.period = 1;
    prdClock0.mode = "continuous";
    prdClock0["fxn"] = prog.extern("clockPrd");
    prdClock0.arg0 = prog.extern("cl1");

    then in bigtime.cpp:

    void clockPrd(Clock clock)
    {
        clock.tick();
        return;
    }

    You should be able to pass a pointer in a similar manner.

    Steve