This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

PC-Lint and RTX166

Hello,

has anyone already succesfully configured the wonderful PC-Lint tool for RTX166? I mean, configured so that it does recognize the RTX166 specific sintax for task functions declaration...
Thanks- Stefano Costa

  • Hi Stefano,

    I did a port from existing LNT file to
    that for XC16x.
    But for Tasks may be you can use as I did
    for interrupts.

    //lint -e20 -e745 -e10
    void NMI_Trap(void)interrupt NMIIRQ=NMI_TRAP
    		{
      		NMI_SWITCH_PRESSED=1;
      		TFR=0;
    		}
    //lint +e20 +e745 +e10
    
    This causes lint to supress some error messages, which are definitely
    wrong at these functions, since the IDE requires such a syntax.

    Stefan

  • Thanks Stefan!!!

    Today I did some tests and found that adding a couple of PC-Lint configuration comments at the beginning of each module using RTX166 tasks does the trick:

    /*lint -d_task_=_gobble */
    /*lint -d_priority_=_gobble */

    This makes both _task_ and _priority_ errors suppressed.
    I also added to CO-KC166.LNT the error mask for the new registers of the XC family (with a series of -esym tokens) as you already did I suppose.
    By doing so, I discovered that a few XC registers have been erroneously declared twice in the Keil XC header.
    Thanks again.

  • Might as well add the keyword gobbling commands to your CO-KC166.LNT file, and save the trouble of adding the comments to each module.

  • Hi Stefano,

    thanks for your hint.
    And really for laying XC161 / XC167 together with the XC164 in one header,
    some registers are defined twice.

    ( Header - delivered with µVision2 V2.38a
    C166 V4.27 )

    These ared defined twice:
    ALTSEL0P1H,ALTSEL0P1H_P0,ALTSEL0P1H_P1,
    ALTSEL0P1H_P2,ALTSEL0P1H_P3,ALTSEL0P1H_P4,
    ALTSEL0P1H_P5,ALTSEL0P1H_P6,ALTSEL0P1H_P7

    I simply supressed these with
    -esym(31,.....)

    Stefan