Commit Graph

52 Commits

Author SHA1 Message Date
Lederhilger Martin
b8e7d5c455 I had the problem that the transmit FIFO size (= actual elements in FIFO) was slowly increasing over time, and was full after a few hours.
The reason was that the code hit the line "canerr("ERROR: No available mailbox\n");" in stm32_cansend, so can_xmit thinks it has sent the packet to the hardware, but actually has not. Therefore the transmit interrupt never happens which would call can_txdone, and so the size of the FIFO size does not decrease.

The reason why the code actually hit the mentioned line above, is because stm32can_txready uses a different (incomplete) condition than stm32can_send to determine if the mailbox can be used for sending, and thus can_xmit forwards the packet to stm32can_send. stm32can_txready considered mailboxes OK for sending if the mailbox was empty, but did not consider that mailboxes may not yet be used if the request completed bit is set - stm32can_txinterrupt has to process these mailboxes first.

Note that I have also modified stm32can_txinterrupt - I removed the if condition, because the CAN controller retries to send the packet until it succeeds. Also if the condition would not evaluate to true, can_txdone would not be called and the FIFO size would not decrease also.
2017-05-16 07:47:18 -06:00
Alan Carvalho de Assis
853d332b6c Move CAN subsystem to its own directory and put device drivers there
Signed-off-by: Alan Carvalho de Assis <acassis@gmail.com>
2017-05-12 11:48:47 -03:00
Gregory Nutt
dc93340a01 Convert more drivers to use new interrupt argument structure. 2017-02-28 09:29:09 -06:00
Mark Schulte
b3222bbc8a irq_dispatch: Add argument pointer to irq_dispatch
Provide a user defined callback context for irq's, such that when
registering a callback users can provide a pointer that will get
passed back when the isr is called.
2017-02-27 06:27:56 -06:00
Gregory Nutt
ddcaa3d425 can.h moved from include/nuttx/ to include/nuttx/drivers. 2016-07-20 13:38:36 -06:00
Paul A. Patience
52a4a20efb STM32L4 CAN: Port support for both RX FIFOs from STM32 CAN 2016-06-29 13:59:29 -04:00
Gregory Nutt
a43da4d107 STM32 CAN: Clone missing stm32_enterinitmode() and _exitinitmode() from STM32L4. Don't know if this is write but is needed to compile. 2016-06-28 14:35:49 -06:00
Gregory Nutt
8e26d4c8e0 STM32 CAN: More fixes for compilation errors due to blind leverage of STM32L4 CAN filter IOCTLs to STM32 2016-06-27 15:16:13 -06:00
Gregory Nutt
1b5bef5325 STM32 CAN: Fix an error when filter methods were ported from STM32L4 2016-06-27 11:15:37 -06:00
Gregory Nutt
ea8760eb19 Cosmetic changes from review of last PR 2016-06-24 07:20:04 -06:00
Sebastien Lorquet
d3441668ee Port STM32L4 CAN IOCTLs to STM32 2016-06-24 11:53:17 +02:00
Sebastien Lorquet
6de8dba383 Preliminary rename of stm32 can driver functions 2016-06-24 11:29:31 +02:00
Gregory Nutt
43eb04bb8f Without lowsyslog() *llinfo() is not useful. Eliminate and replace with *info(). 2016-06-20 11:59:15 -06:00
Gregory Nutt
63b1eb09e6 Centralize definitions associated with CONFIG_DEBUG_CAN 2016-06-15 15:45:27 -06:00
Gregory Nutt
a1469a3e95 Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err() 2016-06-11 15:50:49 -06:00
Gregory Nutt
e99301d7c2 Rename *lldbg to *llerr 2016-06-11 14:55:27 -06:00
Gregory Nutt
1cdc746726 Rename CONFIG_DEBUG to CONFIG_DEBUG_FEATURES 2016-06-11 14:14:08 -06:00
Gregory Nutt
fc3540cffe Replace all occurrences of vdbg with vinfo 2016-06-11 11:59:51 -06:00
Paul A. Patience
d31aefe4ef STM32 CAN: Add support for both RX FIFOs 2016-05-25 16:11:18 -04:00
Gregory Nutt
70e502adb0 Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section() 2016-02-13 19:11:09 -06:00
Frank Benkert
dd13fcde44 CAN: Add more extensive error reporting information 2016-01-18 12:21:20 -06:00
Gregory Nutt
d90f597a05 More spacing/alignment issues 2015-10-08 19:31:58 -06:00
Gregory Nutt
53f6fd6e66 STM32: Correct some spacing issues 2015-10-07 13:45:15 -06:00
Gregory Nutt
6fc6d17760 Fix some spacing problems 2015-10-04 14:59:08 -06:00
Gregory Nutt
b7d6720a23 All CAN drivers: Set the new error indication to zero in the CAN message report 2015-08-18 07:24:12 -06:00
Gregory Nutt
1f5e16dc95 Fix some warnings/errors detected by nuttx/tools/testbuilds.sh 2015-07-10 18:41:26 -06:00
Gregory Nutt
2cdc5f99b9 STM32 CAN: More places where FR instead FIR used 2015-04-09 19:30:19 -06:00
Gregory Nutt
7e9c8b5926 STM32 CAN correction suggested by Max Holtzberg 2014-09-24 08:23:05 -06:00
Gregory Nutt
52a1f19023 Fixes to avoid some hang conditions using STM32 CAN 2014-09-17 08:35:03 -06:00
Gregory Nutt
6455f60c60 Remove os_internal.h it has been replace by several new header files under sched/. There have been some sneak inclusion paths via os_internal.h, so expect a few compilation errors for some architectures 2014-08-08 18:39:28 -06:00
Gregory Nutt
eee82879cb Make sure that there is one space between if and condition 2014-04-12 12:53:19 -06:00
Gregory Nutt
1b17b8fbea Make filter register accessible for CAN1 and CAN2. Provided by Lorenz Meier 2013-09-13 11:20:10 -06:00
Gregory Nutt
56f9092a87 Fix all occurrences of "the the" in documentation and comments 2013-08-27 09:40:19 -06:00
Gregory Nutt
3aa94411be Remove up_assert_code 2013-04-25 15:19:59 -06:00
patacongo
896e32f73d Removed stm32_internal.h; Changes for clean compile of STM32F3Discovery configuration with SPI and USB
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5630 42af7a65-404d-4744-a932-0658087f49c3
2013-02-09 15:03:49 +00:00
patacongo
2440416bdc More updates for the STM32F3Discovery
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5617 42af7a65-404d-4744-a932-0658087f49c3
2013-02-06 23:09:09 +00:00
patacongo
3c92ffa2f9 Add missing file needed for stm32f100xx port
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4957 42af7a65-404d-4744-a932-0658087f49c3
2012-07-20 01:42:40 +00:00
patacongo
7d4f4de7bc STM32: Add logic to attach the RTC alarm EXTI interrupt
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4947 42af7a65-404d-4744-a932-0658087f49c3
2012-07-17 00:22:48 +00:00
patacongo
22ffe347bc CAN ISO-11783 support contributed by Gary Teravskis
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4400 42af7a65-404d-4744-a932-0658087f49c3
2012-02-18 14:02:34 +00:00
patacongo
400935a2af Add support for extended (29-bit) CAN IDs
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4319 42af7a65-404d-4744-a932-0658087f49c3
2012-01-20 21:52:35 +00:00
patacongo
a6d160ea4b Leverage some bit timing logic from LPC17xx to the STM32 CAN driver
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4317 42af7a65-404d-4744-a932-0658087f49c3
2012-01-20 03:37:29 +00:00
patacongo
707ce459b5 Fix bug in STM32 CAN: It must be interrupt driven
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4295 42af7a65-404d-4744-a932-0658087f49c3
2012-01-11 14:56:56 +00:00
patacongo
25f46d94e2 CAN request order priority
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4292 42af7a65-404d-4744-a932-0658087f49c3
2012-01-11 01:01:44 +00:00
patacongo
a82b55b37f Implement the new CAN txready method for STM32
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4291 42af7a65-404d-4744-a932-0658087f49c3
2012-01-11 00:13:45 +00:00
patacongo
e28c348db0 LPC17xx CAN driver now supports all 3 transmit buffers and loopback mode; LCP1766-STK NSH configuration will support the CAN loopback test
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4253 42af7a65-404d-4744-a932-0658087f49c3
2012-01-03 01:03:56 +00:00
patacongo
9e608fb472 The STM32 F4 CAN driver has been verified in loopback mode
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4251 42af7a65-404d-4744-a932-0658087f49c3
2012-01-02 16:33:05 +00:00
patacongo
fcf22d5db5 Update to the STM32 ADC and CAN drivers
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4215 42af7a65-404d-4744-a932-0658087f49c3
2011-12-22 21:55:54 +00:00
patacongo
e14a62c463 STM32 CAN debug fixes
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4214 42af7a65-404d-4744-a932-0658087f49c3
2011-12-22 18:28:13 +00:00
patacongo
07a2d59fbc Add loopback support to STM32 CAN driver; Add apps/examples/can loopback test
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4213 42af7a65-404d-4744-a932-0658087f49c3
2011-12-22 15:59:50 +00:00
patacongo
4613a3b7b0 STM32 ADC driver update
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4211 42af7a65-404d-4744-a932-0658087f49c3
2011-12-22 00:31:47 +00:00