This is the mail archive of the ecos-bugs@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug 1001439] New: can_lpc2xxx.c:CYGOPT_DEVS_CAN_CAN_LPC2XXX_LUT_ERR_SUPP problems


Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001439

           Summary: can_lpc2xxx.c:
                    CYGOPT_DEVS_CAN_CAN_LPC2XXX_LUT_ERR_SUPP problems
           Product: eCos
           Version: CVS
          Platform: Other (please specify)
        OS/Version: Cortex-M
            Status: UNCONFIRMED
          Severity: minor
          Priority: low
         Component: CAN
        AssignedTo: unassigned@bugs.ecos.sourceware.org
        ReportedBy: bernard.fouche@kuantic.com
                CC: ecos-bugs@ecos.sourceware.org
             Class: Advice Request


In function lpc2xxx_can_DSR():

...
#if CYGINT_IO_CAN_CHANNELS > 1
    cyg_uint8 i = 0;
    while (lpc2xxx_global_can_info.active_channels[i])
#endif // CYGINT_IO_CAN_CHANNELS > 1
    {
        cyg_uint32   icr;
        can_channel *chan = LPC2XXX_GET_CAN_CHANNEL(lpc2xxx_global_can_info,
i++);
        CAN_DECLARE_INFO(chan);

        HAL_READ_UINT32(CAN_CTRL_ICR(info), icr);      // this read clears ICR
#ifdef CYGOPT_DEVS_CAN_LPC2XXX_LUT_ERR_SUPP
        // Set ICR_LUT_ERR flag only for controller which cause LUT error
        if ((luterr_chan0 == i) || (luterr_chan1 == i))
...

1) 'i' is declared only if more than one CAN channel. 'i' is referenced always
if CYGOPT_DEVS_CAN_LPC2XXX_LUT_ERR_SUPP is defined.

2) On MCU counting CAN channels from 0: 'i++' is performed at beginning of
while(...), and if CYGOPT_DEVS_CAN_LPC2XXX_LUT_ERR_SUPP is defined,
luterr_chan[0/1] are compared to 'i': the LUT fault won't be reported to the
correct CAN channel for such MCUs (luterr_chan[0/1] have values directly
provided by the hardware). can_accfilt_lpc2xxx.c has macro
LPC2XXX_CAN_FIRST_IN_LUT that could be moved to can_lpc2xxx.h to help solve
this.

-- 
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]