This is the mail archive of the
ecos-patches@sourceware.org
mailing list for the eCos project.
Re: LPC2xxx CAN bugfixes
- From: cetoni GmbH - Uwe Kindler <uwe dot kindler at cetoni dot de>
- To: ecos-patches at sourceware dot org
- Cc: rosenfeld at grumpf dot hope-2000 dot org
- Date: Fri, 17 Aug 2007 09:42:15 +0200
- Subject: Re: LPC2xxx CAN bugfixes
- Organization: cetoni GmbH
Hello,
the following LPC2xxx CAN patch fixes the issues mentioned by Hans
Rosenfeld.
Dipl. Inf. (FH)
Uwe Kindler
Software Engineering
--
cetoni GmbH
Am Wiesenring 6
D-07554 Korbussen
Tel.: +49 (0) 36602 338 28
Fax: +49 (0) 36602 338 11
uwe.kindler@cetoni.de
http://www.cetoni.de
diff -ruN ecos_web_cvs/ecos/packages/devs/can/arm/lpc2xxx/current/ChangeLog ecos/ecos/packages/devs/can/arm/lpc2xxx/current/ChangeLog
--- ecos_web_cvs/ecos/packages/devs/can/arm/lpc2xxx/current/ChangeLog 2007-08-02 10:48:00.000000000 +0200
+++ ecos/ecos/packages/devs/can/arm/lpc2xxx/current/ChangeLog 2007-08-17 08:12:30.000000000 +0200
@@ -1,3 +1,13 @@
+2007-08-17 Uwe Kindler <uwe_kindler@web.de>
+
+ * include/can_lpc2xxx_baudrates.h: Removed all prefixed zeros from
+ baudrate table entries (they aren't intended to be interpreted as
+ octal)
+
+ * tests/can_baudrates.c
+ tests/can_busload.c
+ tests/can_rx_tx.c: removed #include pkgconf/devs_can_loop.h
+
2007-08-02 Alexey Shusharin <mrfinch@mail.ru>
* src/can_lpc2xxx.c: Added acknowledging call in rx interrupt
diff -ruN ecos_web_cvs/ecos/packages/devs/can/arm/lpc2xxx/current/include/can_lpc2xxx_baudrates.h ecos/ecos/packages/devs/can/arm/lpc2xxx/current/include/can_lpc2xxx_baudrates.h
--- ecos_web_cvs/ecos/packages/devs/can/arm/lpc2xxx/current/include/can_lpc2xxx_baudrates.h 2007-07-31 09:53:36.000000000 +0200
+++ ecos/ecos/packages/devs/can/arm/lpc2xxx/current/include/can_lpc2xxx_baudrates.h 2007-08-17 07:57:01.000000000 +0200
@@ -75,16 +75,16 @@
//
static const cyg_uint32 lpc2xxx_br_tbl[] =
{
- CAN_BR_TBL_ENTRY(300, 15, 02, 0, 1), // 10 kbaud
- CAN_BR_TBL_ENTRY(150, 15, 02, 0, 1), // 20 kbaud
- CAN_BR_TBL_ENTRY(59, 15, 02, 0, 1), // 50 kbaud
- CAN_BR_TBL_ENTRY(39, 11, 01, 0, 1), // 100 kbaud
- CAN_BR_TBL_ENTRY(29, 12, 01, 0, 1), // 125 kbaud
- CAN_BR_TBL_ENTRY(14, 12, 01, 0, 1), // 250 kbaud
- CAN_BR_TBL_ENTRY(07, 11, 01, 0, 0), // 500 kbaud
- CAN_BR_TBL_ENTRY(04, 11, 01, 0, 0), // 800 kbaud
- CAN_BR_TBL_ENTRY(03, 11, 01, 0, 0), // 1000 kbaud
- CAN_BR_TBL_ENTRY(00, 00, 00, 0, 0), // Autobaud - not supported
+ CAN_BR_TBL_ENTRY(300, 15, 2, 0, 1), // 10 kbaud
+ CAN_BR_TBL_ENTRY(150, 15, 2, 0, 1), // 20 kbaud
+ CAN_BR_TBL_ENTRY(59, 15, 2, 0, 1), // 50 kbaud
+ CAN_BR_TBL_ENTRY(39, 11, 1, 0, 1), // 100 kbaud
+ CAN_BR_TBL_ENTRY(29, 12, 1, 0, 1), // 125 kbaud
+ CAN_BR_TBL_ENTRY(14, 12, 1, 0, 1), // 250 kbaud
+ CAN_BR_TBL_ENTRY( 7, 11, 1, 0, 0), // 500 kbaud
+ CAN_BR_TBL_ENTRY( 4, 11, 1, 0, 0), // 800 kbaud
+ CAN_BR_TBL_ENTRY( 3, 11, 1, 0, 0), // 1000 kbaud
+ CAN_BR_TBL_ENTRY( 0, 0, 0, 0, 0), // Autobaud - not supported
};
#define HAL_LPC2XXX_BAUD_TBL_DEFINED 1
#endif // CYGNUM_CAN_LPC2XXX_VPB_CLK == 60000000
@@ -95,16 +95,16 @@
//
static const cyg_uint32 lpc2xxx_br_tbl[] =
{
- CAN_BR_TBL_ENTRY(00, 00, 00, 0, 0), // 10 kbaud - not supported
- CAN_BR_TBL_ENTRY(00, 00, 00, 0, 0), // 20 kbaud - not supported
- CAN_BR_TBL_ENTRY(59, 15, 02, 0, 1), // 50 kbaud
- CAN_BR_TBL_ENTRY(39, 11, 01, 0, 1), // 100 kbaud
- CAN_BR_TBL_ENTRY(29, 12, 01, 0, 1), // 125 kbaud
- CAN_BR_TBL_ENTRY(14, 12, 01, 0, 1), // 250 kbaud
- CAN_BR_TBL_ENTRY(07, 11, 01, 0, 0), // 500 kbaud
- CAN_BR_TBL_ENTRY(04, 11, 01, 0, 0), // 800 kbaud
- CAN_BR_TBL_ENTRY(03, 11, 01, 0, 0), // 1000 kbaud
- CAN_BR_TBL_ENTRY(00, 00, 00, 0, 0), // Autobaud - not supported
+ CAN_BR_TBL_ENTRY( 0, 0, 0, 0, 0), // 10 kbaud - not supported
+ CAN_BR_TBL_ENTRY( 0, 0, 0, 0, 0), // 20 kbaud - not supported
+ CAN_BR_TBL_ENTRY(59, 15, 2, 0, 1), // 50 kbaud
+ CAN_BR_TBL_ENTRY(39, 11, 1, 0, 1), // 100 kbaud
+ CAN_BR_TBL_ENTRY(29, 12, 1, 0, 1), // 125 kbaud
+ CAN_BR_TBL_ENTRY(14, 12, 1, 0, 1), // 250 kbaud
+ CAN_BR_TBL_ENTRY( 7, 11, 1, 0, 0), // 500 kbaud
+ CAN_BR_TBL_ENTRY( 4, 11, 1, 0, 0), // 800 kbaud
+ CAN_BR_TBL_ENTRY( 3, 11, 1, 0, 0), // 1000 kbaud
+ CAN_BR_TBL_ENTRY( 0, 0, 0, 0, 0), // Autobaud - not supported
};
#define HAL_LPC2XXX_BAUD_TBL_DEFINED 1
#endif // CYGNUM_CAN_LPC2XXX_VPB_CLK == 30000000
@@ -115,16 +115,16 @@
//
static const cyg_uint32 lpc2xxx_br_tbl[] =
{
- CAN_BR_TBL_ENTRY(59, 15, 07, 0, 1), // 10 kbaud
- CAN_BR_TBL_ENTRY(49, 11, 01, 0, 1), // 20 kbaud
- CAN_BR_TBL_ENTRY(19, 11, 01, 0, 1), // 50 kbaud
- CAN_BR_TBL_ENTRY(09, 11, 01, 0, 1), // 100 kbaud
- CAN_BR_TBL_ENTRY(07, 11, 01, 0, 1), // 125 kbaud
- CAN_BR_TBL_ENTRY(03, 11, 01, 0, 1), // 250 kbaud
- CAN_BR_TBL_ENTRY(01, 11, 01, 0, 0), // 500 kbaud
- CAN_BR_TBL_ENTRY(00, 00, 00, 0, 0), // 800 kbaud - not supported
- CAN_BR_TBL_ENTRY(00, 11, 01, 0, 0), // 1000 kbaud
- CAN_BR_TBL_ENTRY(00, 00, 00, 0, 0), // Autobaud - not supported
+ CAN_BR_TBL_ENTRY(59, 15, 7, 0, 1), // 10 kbaud
+ CAN_BR_TBL_ENTRY(49, 11, 1, 0, 1), // 20 kbaud
+ CAN_BR_TBL_ENTRY(19, 11, 1, 0, 1), // 50 kbaud
+ CAN_BR_TBL_ENTRY( 9, 11, 1, 0, 1), // 100 kbaud
+ CAN_BR_TBL_ENTRY( 7, 11, 1, 0, 1), // 125 kbaud
+ CAN_BR_TBL_ENTRY( 3, 11, 1, 0, 1), // 250 kbaud
+ CAN_BR_TBL_ENTRY( 1, 11, 1, 0, 0), // 500 kbaud
+ CAN_BR_TBL_ENTRY( 0, 0, 0, 0, 0), // 800 kbaud - not supported
+ CAN_BR_TBL_ENTRY( 0, 11, 1, 0, 0), // 1000 kbaud
+ CAN_BR_TBL_ENTRY( 0, 0, 0, 0, 0), // Autobaud - not supported
};
#define HAL_LPC2XXX_BAUD_TBL_DEFINED 1
#endif // CYGNUM_CAN_LPC2XXX_VPB_CLK == 15000000
@@ -135,16 +135,16 @@
//
static const cyg_uint32 lpc2xxx_br_tbl[] =
{
- CAN_BR_TBL_ENTRY(00, 00, 00, 0, 0), // 10 kbaud - not supported
- CAN_BR_TBL_ENTRY(00, 00, 00, 0, 0), // 20 kbaud - not supported
- CAN_BR_TBL_ENTRY(59, 12, 01, 0, 1), // 50 kbaud
- CAN_BR_TBL_ENTRY(29, 12, 01, 0, 1), // 100 kbaud
- CAN_BR_TBL_ENTRY(23, 12, 01, 0, 1), // 125 kbaud
- CAN_BR_TBL_ENTRY(11, 12, 01, 0, 1), // 250 kbaud
- CAN_BR_TBL_ENTRY(05, 12, 01, 0, 0), // 500 kbaud
- CAN_BR_TBL_ENTRY(03, 11, 01, 0, 0), // 800 kbaud
- CAN_BR_TBL_ENTRY(02, 12, 01, 0, 0), // 1000 kbaud
- CAN_BR_TBL_ENTRY(00, 00, 00, 0, 0), // Autobaud - not supported
+ CAN_BR_TBL_ENTRY( 0, 0, 0, 0, 0), // 10 kbaud - not supported
+ CAN_BR_TBL_ENTRY( 0, 0, 0, 0, 0), // 20 kbaud - not supported
+ CAN_BR_TBL_ENTRY(59, 12, 1, 0, 1), // 50 kbaud
+ CAN_BR_TBL_ENTRY(29, 12, 1, 0, 1), // 100 kbaud
+ CAN_BR_TBL_ENTRY(23, 12, 1, 0, 1), // 125 kbaud
+ CAN_BR_TBL_ENTRY(11, 12, 1, 0, 1), // 250 kbaud
+ CAN_BR_TBL_ENTRY( 5, 12, 1, 0, 0), // 500 kbaud
+ CAN_BR_TBL_ENTRY( 3, 11, 1, 0, 0), // 800 kbaud
+ CAN_BR_TBL_ENTRY( 2, 12, 1, 0, 0), // 1000 kbaud
+ CAN_BR_TBL_ENTRY( 0, 0, 0, 0, 0), // Autobaud - not supported
};
#define HAL_LPC2XXX_BAUD_TBL_DEFINED 1
#endif // CYGNUM_CAN_LPC2XXX_VPB_CLK == 48000000
@@ -155,16 +155,16 @@
//
static const cyg_uint32 lpc2xxx_br_tbl[] =
{
- CAN_BR_TBL_ENTRY(00, 00, 00, 0, 0), // 10 kbaud - not supported
- CAN_BR_TBL_ENTRY(59, 15, 02, 0, 1), // 20 kbaud
- CAN_BR_TBL_ENTRY(29, 12, 01, 0, 1), // 50 kbaud
- CAN_BR_TBL_ENTRY(14, 12, 01, 0, 1), // 100 kbaud
- CAN_BR_TBL_ENTRY(11, 12, 01, 0, 1), // 125 kbaud
- CAN_BR_TBL_ENTRY(05, 12, 01, 0, 1), // 250 kbaud
- CAN_BR_TBL_ENTRY(02, 12, 01, 0, 0), // 500 kbaud
- CAN_BR_TBL_ENTRY(01, 11, 01, 0, 0), // 800 kbaud
- CAN_BR_TBL_ENTRY(01, 05, 00, 0, 0), // 1000 kbaud
- CAN_BR_TBL_ENTRY(00, 00, 00, 0, 0), // Autobaud - not supported
+ CAN_BR_TBL_ENTRY( 0, 0, 0, 0, 0), // 10 kbaud - not supported
+ CAN_BR_TBL_ENTRY(59, 15, 2, 0, 1), // 20 kbaud
+ CAN_BR_TBL_ENTRY(29, 12, 1, 0, 1), // 50 kbaud
+ CAN_BR_TBL_ENTRY(14, 12, 1, 0, 1), // 100 kbaud
+ CAN_BR_TBL_ENTRY(11, 12, 1, 0, 1), // 125 kbaud
+ CAN_BR_TBL_ENTRY( 5, 12, 1, 0, 1), // 250 kbaud
+ CAN_BR_TBL_ENTRY( 2, 12, 1, 0, 0), // 500 kbaud
+ CAN_BR_TBL_ENTRY( 1, 11, 1, 0, 0), // 800 kbaud
+ CAN_BR_TBL_ENTRY( 1, 5, 0, 0, 0), // 1000 kbaud
+ CAN_BR_TBL_ENTRY( 0, 0, 0, 0, 0), // Autobaud - not supported
};
#define HAL_LPC2XXX_BAUD_TBL_DEFINED 1
#endif // CYGNUM_CAN_LPC2XXX_VPB_CLK == 24000000
@@ -175,16 +175,16 @@
//
static const cyg_uint32 lpc2xxx_br_tbl[] =
{
- CAN_BR_TBL_ENTRY(59, 15, 02, 0, 1), // 10 kbaud - not supported
- CAN_BR_TBL_ENTRY(39, 11, 01, 0, 1), // 20 kbaud
- CAN_BR_TBL_ENTRY(14, 12, 01, 0, 1), // 50 kbaud
- CAN_BR_TBL_ENTRY(07, 11, 01, 0, 1), // 100 kbaud
- CAN_BR_TBL_ENTRY(05, 12, 01, 0, 1), // 125 kbaud
- CAN_BR_TBL_ENTRY(02, 12, 01, 0, 1), // 250 kbaud
- CAN_BR_TBL_ENTRY(02, 05, 00, 0, 0), // 500 kbaud
- CAN_BR_TBL_ENTRY(00, 11, 01, 0, 0), // 800 kbaud
- CAN_BR_TBL_ENTRY(00, 09, 00, 0, 0), // 1000 kbaud
- CAN_BR_TBL_ENTRY(00, 00, 00, 0, 0), // Autobaud - not supported
+ CAN_BR_TBL_ENTRY(59, 15, 2, 0, 1), // 10 kbaud - not supported
+ CAN_BR_TBL_ENTRY(39, 11, 1, 0, 1), // 20 kbaud
+ CAN_BR_TBL_ENTRY(14, 12, 1, 0, 1), // 50 kbaud
+ CAN_BR_TBL_ENTRY( 7, 11, 1, 0, 1), // 100 kbaud
+ CAN_BR_TBL_ENTRY( 5, 12, 1, 0, 1), // 125 kbaud
+ CAN_BR_TBL_ENTRY( 2, 12, 1, 0, 1), // 250 kbaud
+ CAN_BR_TBL_ENTRY( 2, 05, 0, 0, 0), // 500 kbaud
+ CAN_BR_TBL_ENTRY( 0, 11, 1, 0, 0), // 800 kbaud
+ CAN_BR_TBL_ENTRY( 0, 9, 0, 0, 0), // 1000 kbaud
+ CAN_BR_TBL_ENTRY( 0, 0, 0, 0, 0), // Autobaud - not supported
};
#define HAL_LPC2XXX_BAUD_TBL_DEFINED 1
#endif // CYGNUM_CAN_LPC2XXX_VPB_CLK == 12000000
diff -ruN ecos_web_cvs/ecos/packages/devs/can/arm/lpc2xxx/current/tests/can_baudrates.c ecos/ecos/packages/devs/can/arm/lpc2xxx/current/tests/can_baudrates.c
--- ecos_web_cvs/ecos/packages/devs/can/arm/lpc2xxx/current/tests/can_baudrates.c 2007-07-03 16:49:05.000000000 +0200
+++ ecos/ecos/packages/devs/can/arm/lpc2xxx/current/tests/can_baudrates.c 2007-08-17 07:57:22.000000000 +0200
@@ -62,7 +62,6 @@
#include <pkgconf/kernel.h>
#include <cyg/io/io.h>
#include <cyg/io/canio.h>
-#include <pkgconf/devs_can_loop.h>
// Package option requirements
diff -ruN ecos_web_cvs/ecos/packages/devs/can/arm/lpc2xxx/current/tests/can_busload.c ecos/ecos/packages/devs/can/arm/lpc2xxx/current/tests/can_busload.c
--- ecos_web_cvs/ecos/packages/devs/can/arm/lpc2xxx/current/tests/can_busload.c 2007-07-03 16:49:05.000000000 +0200
+++ ecos/ecos/packages/devs/can/arm/lpc2xxx/current/tests/can_busload.c 2007-08-17 07:57:31.000000000 +0200
@@ -62,7 +62,6 @@
#include <pkgconf/kernel.h>
#include <cyg/io/io.h>
#include <cyg/io/canio.h>
-#include <pkgconf/devs_can_loop.h>
// Package option requirements
diff -ruN ecos_web_cvs/ecos/packages/devs/can/arm/lpc2xxx/current/tests/can_rx_tx.c ecos/ecos/packages/devs/can/arm/lpc2xxx/current/tests/can_rx_tx.c
--- ecos_web_cvs/ecos/packages/devs/can/arm/lpc2xxx/current/tests/can_rx_tx.c 2007-07-03 16:49:05.000000000 +0200
+++ ecos/ecos/packages/devs/can/arm/lpc2xxx/current/tests/can_rx_tx.c 2007-08-17 07:57:45.000000000 +0200
@@ -62,7 +62,6 @@
#include <pkgconf/kernel.h>
#include <cyg/io/io.h>
#include <cyg/io/canio.h>
-#include <pkgconf/devs_can_loop.h>
// Package option requirements