Commit Graph

10855 Commits

Author SHA1 Message Date
Tomasz Wozniak
96d6bc9376 Build break fix: define PWM_TIM2_CH1CFG for channel 1 PWM 2017-09-26 20:55:23 +02:00
Miha Vrhovnik
b2ea300b6f STM32 L4: Add SDMMC driver 2017-09-26 06:22:39 -06:00
Gregory Nutt
b065b1f5df STM32 Serial: Fix some incorrect conditional compilation 2017-09-23 10:58:50 -06:00
David Sidrane
a3364b5bd9 Merged in david_s5/nuttx/master_stm32_f4_i2c (pull request #490)
stm32:stm32f40xxx I2C ensure proper isr handling

Injecting data errors that causes a STOP to be perceived by the
   driver, will continually re-enter the isr with SB not set and BTF
   and RxNE set.  This changes allows the interrupts to
   be cleared and  propagates a I2C_SR1_TIMEOUT to the waiting task.

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-09-21 20:02:05 +00:00
Juha Niskanen
abcaedb990 Merged in juniskane/nuttx_stm32l4/dfsdm_adc_work_pr (pull request #487)
STM32L4 ADC, DFSDM: add routing of ADC data to DFSDM filters

* configs/nucleo-l496zg: add DFSDM initialization

* STM32L4 ADC: add option for routing ADC data to DFSDM, fix DFSDM DMA

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-09-20 12:20:45 +00:00
Gregory Nutt
686129bb2e Cosmetic change from review of last PR. 2017-09-19 06:46:20 -06:00
Juha Niskanen
38f44a627b Merged in juniskane/nuttx_stm32l4/stm32l4_dfsdm_pr (pull request #486)
STM32L4 DFSDM: add peripheral, DAC, TIM: small changes

* STM32L4 DAC: do not configure output pin if it is not used

* STM32L4 TIM: fix compilation of timers with complementary outputs when not PWM_MULTICHAN

* STM32L4 DFSDM: peripheral for digital filters for sigma-delta ADCs

    Initial version. Timer trigger support is not completed and there is
    some issue with DMA.

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-09-19 12:36:19 +00:00
Gregory Nutt
882adb2c82 drivers/video/fb.c: Fix a typo introduced in previous commit. 2017-09-17 14:07:08 -06:00
Gregory Nutt
b90b4d40b6 Fix typos/spelling. SAMV71-XULT: Update README, add support for fb_driver. 2017-09-17 10:38:34 -06:00
Rajan Gill
fd9f67c647 STM32 Tickless: The attached patch removes the restriction to 16bit counts when a 32bit timer is used for the new tickless on the stm32. As it is now, the restriction is very limiting, especially if one wants high granularity and large achievable intervals and has the hardware (namely the 32bit timers) available. 2017-09-16 08:20:07 -06:00
Gregory Nutt
37a29cf3a3 LPC31xx: Change naming of some global variables to match coding standard. 2017-09-14 15:33:28 -06:00
Gregory Nutt
13006ecca9 STM32/STM32 F7: Fix some errors found by Coverity. 2017-09-13 13:05:13 -06:00
Rajan Gill
15784ca46f STM32 Tickless: Fixes compilation error when timer info/debug messages are enabled. 2017-09-13 07:14:13 -06:00
David Sidrane
2bbe389897 stm32:Fix coding standard error 2017-09-12 14:16:46 -10:00
David Sidrane
48f0209b84 stm32f7:I2C fixed typo in comment 2017-09-12 14:16:45 -10:00
David Sidrane
ef411578d5 stm32:stm32 alt I2C ensure proper error handling.
Injecting data errors would cause the driver to
  continually reenter the isr with BERR an RxNE.
  This fix allows the error to be cleared and
  propagated to the waiting task.
2017-09-12 14:16:45 -10:00
David Sidrane
617c91b373 stm32:stm32f40xxx I2C ensure proper error handling.
Injecting data errors would cause the driver to
  continually reenter the isr with BERR an RxNE.
  This fix allows the error to be cleared and
  propagated to the waiting task.
2017-09-12 14:16:45 -10:00
Jussi Kivilinna
61878848ad net/sock: recvfrom: Fix double leave_cancellation_point on error path 2017-09-12 07:17:53 -06:00
Gregory Nutt
d76a541a57 Trivial, cosmetic 2017-09-11 19:22:49 -06:00
Masayuki Ishikawa
d95153706a Merged in masayuki2009/nuttx.nuttx/lc823450 (pull request #481)
latest updates on lc823450

* arch/arm/src/lc823450: Conform to the NuttX coding style

    Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>

* arch/arm/src/lc823450: Merge the latest fix in lc823450_rtc.c

    Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>

* arch/arm/src/lc823450: Add ADC driver

    Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>

* arch/arm/src/lc823450: Add watchdog driver

    Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>

* configs/lc823450-xgevk: Enable ADC and watchdog driver

    Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-09-12 01:00:32 +00:00
Mateusz Szafoni
2ffc2ab875 Merged in raiden00/nuttx (pull request #480)
Master

* smps.c: fix error messages

* stm32f33xxx_hrtim.h: fix definition

* stm32_hrtim: fix pclk calculation

* stm32_hrtim.c: cosmetics

* smps.h: cosmetics

* add upper-half driver for high power LED driver (powerled)

* stm32f334-disco: beginning of lower half driver for high power LED (powerled)

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-09-10 17:43:20 +00:00
Gregory Nutt
435dd39d4c arch/arm/Kconfig: Add more classic ARM11 architecture selections. 2017-09-09 12:44:56 -06:00
Gregory Nutt
3ca3674cca Update/fix last commit: On some STM32's, the CSR regiser is 18 vs. 16 bits wide. Need to use 32-bit register accesses. 2017-09-08 14:21:24 -06:00
Oleg Evseev
3596c75d78 STM32: Add logic for enabling wakeup pins. 2017-09-08 13:23:08 -06:00
Juha Niskanen
3719d0a395 Merged in juniskane/nuttx_stm32l4/stm32l4_adc_kconfig_pr (pull request #478)
STM32L4: ADC, Kconfig small changes

* STM32L4 ADC: port analog watchdog ioctls from the Motorola MDK

* STM32L4: Kconfig: add some L486 and L496 chips, remove duplicates

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-09-06 22:05:44 +00:00
Jussi Kivilinna
449a891a8e stm32f7: add new configuration option for enabling flash ART Accelerator and flash prefetcher 2017-09-04 07:56:51 -06:00
Mateusz Szafoni
23edfe2557 Merged in raiden00/nuttx (pull request #477)
Master

* stm32f33xxx_hrtim.h: add some comments

* stm32_hrtim: add burst mode configuration, rename some definitions

* smps.h: add private data to the smps_s structure

* stm32_hrtim: cosmetics

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-09-03 18:46:41 +00:00
Gregory Nutt
860ff78d55 Kinetis: First cut implementation of the alarm read function. Pretty simple because the Kinetis RTC is just a 1Hz counter. 2017-09-03 12:44:45 -06:00
Gregory Nutt
5f67fc8f1b RTC alarms: getalarmdatetime functions are private and should be declared static. 2017-09-03 12:20:13 -06:00
Gregory Nutt
789e204141 Correct naming of fields in struct alm_rdalarm_s. Should not be the same as the corresponding fields of struct alm_setalarm_s. The whole purpose of that naming convention is to keep the field names unique. 2017-09-03 09:51:47 -06:00
Gregory Nutt
f42a8a38eb Add hooks for Boris Astardzhiev's RTC change for STM32L4 to Kinetis. Lower level logic not yet implemented. 2017-09-03 08:39:03 -06:00
Gregory Nutt
9021e1caeb Port Boris Astardzhiev RTC change for STM32L4 to STM32 2017-09-03 08:39:03 -06:00
Gregory Nutt
01fa856f9b Fix warning introduced with PR to STM32L4 RTC. 2017-09-03 08:39:03 -06:00
Gregory Nutt
92b3c9477a Port Boris Astardzhiev RTC change for STM32L4 to STM32F7 2017-09-03 08:39:02 -06:00
Boris Astardzhiev
b1eceb838b Extend the RTC framework with an alarm read ioctl (RTC_RD_ALARM). Through it consumer could get configuration settings about previously scheduled hardware alarms (active status, hours, minutes, seconds). 2017-09-03 08:39:02 -06:00
Mateusz Szafoni
daac3bd7f8 Merged in raiden00/nuttx (pull request #476)
Master

* stm32_dac.c: fix compilation when DMA disabled for channel

* smps.h: update some comments

* smps.c: more sanity checks

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-09-02 19:52:21 +00:00
Jussi Kivilinna
fe7d8c941c stm32f7: do not enable read-modify-write on DTCM. "AN 4667 - STM32F7 Series system architecture and performance" recommends to disable read-modify-write on DTCM: "If the DTCM-RAM is used as data location and the variables used are byte or/and halfword types, since there is no ECC management in this RAM on the STM32F7 Series, it is recommended to disable the read-modify-write of the DTCM-RAM in the DTCM interface (inthe DTCMCR register) to increase the performance." 2017-09-01 08:01:54 -06:00
Juha Niskanen
258fa08e69 STM32L4 DAC: Fix naming so that DAC1 and DAC2 always refer to channels 1 and 2
User should not be bothered by details like how many IP blocks there are. As no
current STM32L4 has second DAC block (channel 3), remove support for such
hypothetical hardware. DMA channels corrected.

Change-Id: I2cba7e55803871f1ff945538113f12cf5088f68d
Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2017-09-01 10:01:03 +03:00
Juha Niskanen
0003ad171d STM32L4 DAC: separate DMA buffer configuration for channels
Change-Id: Ibc6dc90b39b784b5534b8908eaf615bf1ddcb7ed
Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2017-09-01 10:00:55 +03:00
Juha Niskanen
4025205772 STM32L4 DAC: add option for routing DAC output to ADC
Actually write something to the DAC DMA buffer.

Change-Id: I1b2516ac26fb17f5242611b56be8926c5f40c2c7
Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2017-09-01 10:00:46 +03:00
Gregory Nutt
91d473b816 Revert "stm32 FLASH allow non blocking operation on constrained devices"
This reverts commit ad2ef95ddf.
2017-08-31 15:14:26 -06:00
David Sidrane
9fc283526a Merged in david_s5/nuttx/master_stm32_flash (pull request #474)
stm32 FLASH allow non blocking operation on constrained devices

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-08-31 18:04:07 +00:00
Sergey Ustinov
8c35b2ddca Add the set counter function for stm32 timers 2017-08-31 11:54:00 -06:00
David Sidrane
ad2ef95ddf stm32 FLASH allow non blocking operation on constrained devices
On a very memory constrained device with a single task. The
   sem_wait and sem_post operations can be disabled, to save space.
   The default is blocking enabled.
2017-08-31 07:47:37 -10:00
Sergei Ustinov
795650a2fb I'm worried about the stm32_tim_getcounter funtion. It returns always 32 bits. But major stm32 timers have 16 bits counters. I think, it's not a good idea to return the memory behind the TIMx_CNT register. This changes adds the register size checking. 2017-08-31 11:45:28 -06:00
Gregory Nutt
a7fd8eb203 Trivial removal of a blank line. 2017-08-31 11:36:18 -06:00
Gregory Nutt
27cfde9968 Protected/Kernel Builds: Review us of kmm_addregion vs. kumm_addregsion in other configurations. 2017-08-31 08:49:21 -06:00
Gregory Nutt
69f1399aa7 LPC43xx: Add external RAM to the user heap, not the kernel heap. 2017-08-31 08:12:42 -06:00
Alan Carvalho de Assis
ef3898c2dd LPC43xx: Modify up_allocate_(k)heap() to support PROTECTED mode 2017-08-31 07:58:16 -06:00
Gregory Nutt
9d3b1af1cd ARM syscall logic: Clear bit 0 in PC settings. Bit 0 is the thumb mode indication and should not be set in the PC. 2017-08-30 13:56:03 -06:00
raiden00pl
85c48de040 stm32_hrtim: add DMA configuration 2017-08-28 17:44:14 +02:00
Juha Niskanen
809569cda9 STM32L4 ADC: implement peripheral 2017-08-28 07:05:33 -06:00
Juha Niskanen
a2dc88e075 STM32, STM32L4, STM32F7 ADC: fix channel 18 sample time 2017-08-28 07:05:33 -06:00
Juha Niskanen
e8cd2f88b8 STM32L4 RCC: enable ADC clock source 2017-08-28 07:05:32 -06:00
Alan Carvalho de Assis
81d6cefd65 Add support to STM32F433RC 2017-08-28 07:05:32 -06:00
raiden00pl
5695a55569 stm32_dac.c: support external triggering for DMA transfer 2017-08-27 18:25:55 +02:00
Mateusz Szafoni
ea35f31f73 Merged in raiden00/nuttx (pull request #469)
Master

* stm32f0/Kconfig: remove references to HRTIM

* STM32F33: missing SYSCFG CFGR3 definitions

* stm32_hrtim.h: remove redundant definitions

* stm32_hrtim.c: fix DAC triggers configuration

* stm32_hritm.c: warning message when default value selected

* stm32_hrtim.c: missing master timer logic

* stm32_hrtim.c: add more assertions

* stm32_dac.c: fix conditional

* stm32_dac.c: conditional logic for timer triggering

* stm32_dac.c: fix TSEL configuration when HRTIM

* stm32_dac.c: unnecessary condition

* stm32_dac.c: DMA request remapping

* stm32_dac.c: fix commpilation errors

* stm32_dac.c: add DMA buffers initialization logic

* stm32_hrtim.c: enable DAC triggering

* analog/comp.c: fix compilation errors when poll disabled

* stm32_hrtim.c: remove doubled assertions

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-08-27 12:49:53 +00:00
Gregory Nutt
7858ed834b Minor, cosmetic changes from review of last comment. 2017-08-27 06:48:42 -06:00
Masayuki Ishikawa
cc9c8260f0 arch/arm/src/lc823450: Add eMMC/SD and USB support
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2017-08-27 19:11:07 +09:00
Masayuki Ishikawa
56bf5b2a98 arch/arm/src/lc823450: Conform to the NuttX coding style
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2017-08-27 19:11:03 +09:00
Juha Niskanen
1be5f0a3fc STM32L4 COMP: comparators share RCC enable bit with SYSCFG 2017-08-25 07:06:39 -06:00
Juha Niskanen
1152e4868b STM32L4 DAC: report transfer as completed in DMA callback. Without this even O_NONBLOCK writes block the calling task if DAC was using DMA. 2017-08-25 07:05:11 -06:00
Juha Niskanen
874947d7e5 STM32L4 TIM: TIM15,16,17 are always in APB2 2017-08-25 07:02:21 -06:00
Gregory Nutt
dc8f3778a9 drivers/sensors: Fix more naming of configurations to be compliant for two more drivers. Still a few more to go. 2017-08-24 10:26:53 -06:00
Jussi Kivilinna
310a29227a drivers/lcd: add DD-12864WO-4A/SSD1309 support to SSD1306 driver 2017-08-22 08:32:52 -06:00
Juha Niskanen
d7ae3d74c3 STM32L4 ADC: correct EXTSEL macros 2017-08-22 06:49:48 -06:00
Pekka Ervasti
6b1ccef2f9 STM32L4 COMP: bind to upper half comp driver 2017-08-22 06:47:57 -06:00
raiden00pl
a5997cb186 stm32_dac: add support for HRTIM triggering 2017-08-21 19:46:18 +02:00
raiden00pl
a5f3a5848d stm32_dac.c typo 2017-08-21 18:59:21 +02:00
raiden00pl
db7a94288f stm32f33xxx_dma.h: typos 2017-08-21 18:50:07 +02:00
raiden00pl
b460f2bca1 stm32f10xxx_dma.h: fix DAC names and remove STM32F33 section 2017-08-21 18:50:07 +02:00
raiden00pl
104ff2b5d8 stm32_dac: separate dma buffer configuration for channels 2017-08-21 18:50:07 +02:00
Juha Niskanen
37867ae3b9 chip.h edited online with Bitbucket: correct some STM32_NDAC 2017-08-21 07:30:58 +00:00
Mateusz Szafoni
ccd421b158 stm32_dac.c edited online with Bitbucket 2017-08-20 18:47:44 +00:00
raiden00pl
04743f3e77 stm32_dac: change name convention. Previous naming was confusing 2017-08-20 20:19:53 +02:00
raiden00pl
0bed6ac8b4 STM32F33: correct STM32_NDAC 2017-08-20 20:07:50 +02:00
raiden00pl
a8e8862ef9 stm32_dac.c: fix some configuration logic. When STM32_NDAC is greather than 1, then second channel is always DAC1OUT2. 2017-08-20 19:02:56 +02:00
raiden00pl
1479fd6075 stm32_comp: add default INM configuration and some missing COMP1,3,5,7 code 2017-08-20 10:45:55 +02:00
raiden00pl
30ebd32ab4 stm32f33xxx_pinmap.h: missing define 2017-08-20 10:45:55 +02:00
raiden00pl
241c42447f stm32f33xxx_comp.h: typos 2017-08-20 10:45:55 +02:00
raiden00pl
01c98df18c STM32F33: remove redundant DAC file 2017-08-20 10:45:55 +02:00
David Sidrane
b594d43d24 Merged in david_s5/nuttx/upstream_dma_dcache_fix (pull request #462)
STM32F7:SDMMC, DMA dcache check in stm32_dmacapable and  SDMMC stm32_dma{recv|send}setup

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-08-17 20:14:24 +00:00
David Sidrane
ef42c25140 stm32f7:SDMMC add dcache alignment check in dma{recv|send}setup
In the where CONFIG_SDIO_PREFLIGHT is not used and
   dcache write-buffed mode is used (not write-through)
   buffer alignment is required for DMA transfers because
   a) arch_invalidate_dcache could lose buffered writes data
   and b) arch_flush_dcache could corrupt adjacent memory if
   the buffer and the bufflen, are not on ARMV7M_DCACHE_LINESIZE
   boundaries.
2017-08-17 09:51:37 -10:00
David Sidrane
1e7ddfea8e stm32f7:SDMMC remove widebus limitation on DMA
There is no documantation for the STM32F7 that limits DMA on
   1 bit vrs 4 bit mode.
2017-08-17 09:48:46 -10:00
David Sidrane
dffab2f4dd stm32f7:DMA add dcache alignment check in stm32_dmacapable
In the case dcache write-buffed mode is used (not write-through)
   buffer alignment is required for DMA transfers because
   a) arch_invalidate_dcache could lose buffered writes data
   and b) arch_flush_dcache could corrupt adjacent memory if
   the maddr and the mend+1, the next next address are not on
   ARMV7M_DCACHE_LINESIZE boundaries.
2017-08-17 09:39:14 -10:00
David Sidrane
38cbf1f660 stm32f7:DMA correct comments and document stm32_dmacapable
Updated comment to proper refernce manual for STM32F7 not
   STM32F4.

   Added stm32_dmacapable input paramaters documentation.
2017-08-17 09:35:50 -10:00
Gregory Nutt
06a12bea6c STM32L476VG Discovery: Add a knsh configuration that may be used to test the PROTECTED build mode. 2017-08-17 09:15:12 -06:00
Gregory Nutt
06473e89de Update MRF24J40 starhub configuration for the SAME70 Xplained. 2017-08-16 09:39:25 -06:00
David Sidrane
5ef33f3e58 Merged in david_s5/nuttx/upstream_missing_semi (pull request #459)
stm32f7:rtc Missing semicolon

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-08-16 02:49:24 +00:00
David Sidrane
ab578bb338 stm32f7:rtc Missing semicolon 2017-08-15 16:17:55 -10:00
Gregory Nutt
dcb8df76d0 Fix argument to SPI initializatio function 2017-08-15 19:07:35 -06:00
Juha Niskanen
f383308a02 STM32L4 ADC: add ADC register definitions 2017-08-14 06:47:12 -06:00
Juha Niskanen
2fbd7d7b59 STM32L4 DAC: port from STM32. Note that this does not address the somewhat confusing relation between STM32L4_NDACS and DAC2 config macros that comes from original STM32 code. 2017-08-14 06:38:13 -06:00
Juha Niskanen
9ac80e45f5 STM32L4 COMP: input minus pin extended selection 2017-08-14 06:29:13 -06:00
Juha Niskanen
a9343ca12b stm32/stm32f0: Fix some funny shifts in DAC header files. 2017-08-14 06:28:09 -06:00
Gregory Nutt
e224d354b8 STM32F7: Remove unsupported configuration item the crept in when header file was cloned. 2017-08-13 12:37:59 -06:00
Gregory Nutt
f6f4856cc6 Eliminate some warnings found in build testing. 2017-08-13 12:24:48 -06:00
Gregory Nutt
873de7b480 configs/*/README.txt: Update to the new URL for obtaining the ARM toolchain. 2017-08-13 07:18:19 -06:00
Gregory Nutt
2ab8852b29 STM32F7: Some STM32F7 builds failed in build testing due to undefined STM32_SRAM1_BASE. I think that is because stm32_allocateheap.c was not including chip/stm32_memorymap.h 2017-08-13 06:50:48 -06:00
Gregory Nutt
03c26df04a STM32F7 builds broken. This is a work around to at least keep them building. 2017-08-13 06:44:04 -06:00
Gregory Nutt
4fa6106b57 Fix some compile problems found in build testing. 2017-08-12 14:28:27 -06:00
Gregory Nutt
1f989af845 Update TODO list; SAMv7 XDMAC: Remove and unused global array. 2017-08-12 12:26:13 -06:00
Gregory Nutt
4b6f0149ec Eliminate a warning found in build testing. 2017-08-12 11:14:11 -06:00
Gregory Nutt
6bae133e74 Fix two warnings found in build testing. 2017-08-12 11:09:48 -06:00
Gregory Nutt
bd7c84b23e Remove CONFIG_NETDEV_MULTINIC. This increases code size by a little, but greatly reduces the complexity of the network code. 2017-08-08 14:24:12 -06:00
Stefan Kolb
22dfa875fc I discovered while working on the SAMV7 mcan driver that the implementation of the CAN error handling is suboptimal. In the current implementation the following errors are implemented as pending errors:
* Receiving
  * MCAN_INT_STE (Stuff Error)
    More than 5 equal bits in a sequence occurred.
  * MCAN_INT_CRCE (CRC Error)
    Received CRC did not match the calculated CRC.
  * MCAN_INT_RF0L (Receive FIFO 0 Message Lost)
    Receive FIFO 0 message lost, also set after write attempt to Receive FIFO 0 of size zero.
  * MCAN_INT_RF1L (Receive FIFO 1 Message Lost)
    Receive FIFO 1 message lost, also set after write attempt to Receive FIFO 1 of size zero.

* Sending
  * MCAN_INT_BE (Bit Error)
    Device wanted to send a rec / dom level, but monitored bus level was dominant / recessive.
  * MCAN_INT_TEFL (Tx Event FIFO Element Lost)
    Tx Event FIFO element lost, also set after write attempt to Tx Event FIFO of size zero.

* General
  * MCAN_INT_MRAF (Message RAM Access Failure)
    The flag is set, when the Rx Handler
    * has not completed acceptance filtering or storage of an accepted message until the arbitration field of the following message has been received. In this case acceptance filtering or message storage is aborted and the Rx Handler starts processing of the following message.
    * was not able to write a message to the Message RAM. In this case message storage is aborted. In both cases the FIFO put index is not updated resp. the New Data flag for a dedicated Receive Buffer is not set, a partly stored message is overwritten when the next message is stored to this location. The flag is also set when the Tx Handler was not able to read a message from the Message RAM in time. In this case message transmission is aborted. In case of a Tx Handler access failure the MCAN is switched into Restricted Operation mode (see Section 47.5.1.5). To leave Restricted Operation mode, the processor has to reset MCAN_CCCR.ASM.
  * MCAN_INT_ELO (Error Logging Overflow)
    Overflow of CAN Error Logging Counter occurred.

The listed errors are not pending, the errors occurred and are gone directly afterwards. This commit changes the described behavior and simplifies the handling of CAN errors.
2017-08-07 10:31:04 -06:00
Jeff
4cbde22992 I'm working on bringing up USB full-speed support on STM32F405.  My board does not include a USB power switch, VBus sensing, over current detection, or ID pin.
This commit add a config STM32_OTGFS_VBUS_ CONTROL which lets us selectively disable VBus sensing and control.  I also sneaked in a change to disable the configgpio call for the ID pin, which is only used in OTG mode which isn't supported yet.  The only pins that need to be initialized should be OTGFS_DP and OTGFS_DM.

These changes let a USB mouse enumerate on my platform if it's plugged in on power-up.  Plugging, unplugging, clicking, or moving the mouse cause NSH to stop responding.  Because I'm using the ramlog, I don't have useful debug messaging yet, so there's a lot more work I have to do to troubleshoot it or get my JTAG debugging set up, but these patches shouldn't hurt anything.  I'm hoping my issue is something simple I overlooked in configuration.

I'm planning to add similar changes for the OTGHS peripheral (using integrated full speed phy) but I still need to test those changes before submitting patches.
2017-08-07 10:24:31 -06:00
Simon Piriou
b1f50490bd MTD: Add driver for Macronix QuadSPI flash memory 2017-08-06 10:51:17 -06:00
Gregory Nutt
42b3ee4cfc Fix a few errors that crept in with my review changes. 2017-08-02 09:19:29 -06:00
Gregory Nutt
5f2d4b8f84 Changes from review of commit e851a24329 2017-08-02 08:26:08 -06:00
Masayuki Ishikawa
e851a24329 arch/arm/src/lc823450: Initial support for ON Semiconductor LC823450
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2017-08-02 21:09:43 +09:00
Titus von Boxberg
55e9c8990c stm32_rcc: code style 2017-08-01 16:25:19 +02:00
Titus von Boxberg
a4e97d5daf Added functions for DSI clock source selection 2017-08-01 16:24:48 +02:00
Gregory Nutt
05ea22e9ab STM32F7: Fix for coding standard violations that came in with cd3ca1140e -- missed a file last time 2017-07-31 18:36:38 -06:00
Gregory Nutt
5f4fdb42be STM32F7: Fix for coding standard violations that came in with cd3ca1140e 2017-07-31 18:35:37 -06:00
Titus von Boxberg
604a6dc0fa improved help text 2017-08-01 01:23:28 +02:00
Titus von Boxberg
bdee01f492 added function for reset 2017-08-01 01:23:28 +02:00
Titus von Boxberg
0947b31fbb STM32_RCC_DCKCFGR2 has nothing to do with PLLI2S; PLLI2S is not dependent on LTDC, instead on SAICLK1/2 generated from PLLI2S 2017-08-01 01:23:28 +02:00
Titus von Boxberg
9d56dbb403 comment corrected 2017-08-01 01:23:28 +02:00
Titus von Boxberg
63bce1fc34 no board specific dithering values used; corrected comment; corrected dithering init 2017-08-01 01:23:28 +02:00
Titus von Boxberg
ec95720d13 corrected LIPOS/LIPCR calculation 2017-08-01 01:23:28 +02:00
Titus von Boxberg
28a53d8e25 change only polarity bits in LTDC_GCR 2017-08-01 01:23:28 +02:00
Titus von Boxberg
5de2468521 comments corrected 2017-08-01 01:23:28 +02:00
Titus von Boxberg
69aca28e87 commented 2017-08-01 01:23:28 +02:00
Titus von Boxberg
ec43001d91 HEAP2 depends on CONFIG_ARCH_HAVE_HEAP2, not on particular FMC RAM type 2017-08-01 01:23:28 +02:00
Titus von Boxberg
777b17928f corrected register debugging 2017-08-01 01:23:28 +02:00
Titus von Boxberg
1944ab6f9b added missing config option for register value debugging 2017-08-01 01:23:28 +02:00
Titus von Boxberg
dc392a6c68 enable APB2 DSI clock 2017-08-01 01:23:28 +02:00
Juha Niskanen (Haltian)
20dc5ad3b4 STM32L1: add base address for TIM11
STM32L4 PWR: correct PWR_SR2 REGLPS and REGLPF bits, add port I registers.  Also remove duplicate section from Kconfig
2017-07-31 07:32:43 -06:00
Jeff
a420c0f369 To use an external oscillator module (not just a crystal) with the STM32F4, one needs to enable the HSEBYP bit in the RCC_CR register. This change allows an integrator to define STM32_RCC_CR_HSEBYP in their board.h file if they want this configuration. 2017-07-30 06:22:30 -06:00
Gregory Nutt
47791442a0 Squashed commit of the following:
commit 3fcf84a9a2673e1e1466ce5b114d7b73c257e515
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 28 12:00:31 2017 -0600

    Spirit: Brings in the last of the PktCommon interfaces.

commit d26ebd901ba4ba84910e99b4e728b98c30fa4c0b
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 28 09:54:52 2017 -0600

    Spirit: Add a few more PktCommon interfaces.

commit b5cb8041d50233a4abb8fb4d1dcef5428ae2c2b2
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 28 09:33:31 2017 -0600

    libc/termios:  Remember block comments before empty file sections.

commit 0fcab2c1c8c74442d40bd5e8c6af50a34f8a5821
Author: Sebastien Lorquet <sebastien@lorquet.fr>
Date:   Fri Jul 28 09:31:00 2017 -0600

    tcdrain implementation based on a new term ioctl

commit 797d4adf7d41068c671f0217d369b797b269de1a
Author: Stefan Kolb <Stefan.Kolb@avat.de>
Date:   Fri Jul 28 09:19:04 2017 -0600

    We discovered a problem with the samv7 mcan driver which results, under some circumstances, in a very high CPU load.

    The problem occurs, and is easily reproducible, if the device is connected to a CAN network with a wrongly configured CAN speed (baud rate). In our tests we set the CAN speed of the device to 1000000 and the speed of the other CAN nodes to 500000. The device is restarted and sends a CANopen “bootup message” to the CAN network. This results in huge amount of errors messages on the CAN bus, probably because of the CAN feature for acknowledging error messages. The error messages can’t be read by the device because of the misconfigured CAN speed, instead the CAN chip reports lots of errors, which are reported to the application which uses the CAN driver (CONFIG_CAN_ERRORS is enabled).

    The CAN errors are reported from the CAN chip via interrupts and thus the interrupt load is very high in this scenario. To fix the problem the driver now disables each RX error interrupt after it is occurred. The RX error interrupts are turned back on if at least one CAN message is received successfully.

commit e298f48e96d9e34017dcab8e4d87032862ae9322
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 28 09:06:26 2017 -0600

    Spirit:  Bring in PktStack interfaces.

commit 4a0f00a7058312dcf6ac392689b9f69112f613ec
Merge: 855cf97130 b458934ac4
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Thu Jul 27 18:05:02 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 855cf9713052a851a1daeb3842db2edd6ff6f658
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Thu Jul 27 18:03:56 2017 -0600

    Spirit Network Driver:  Add some hooks that will eventually support address filtering.

commit 3b3fb24ea86cf8233b034871d5c550f47ab852e6
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Thu Jul 27 17:13:21 2017 -0600

    Spirit: Add a PktStack header file.

commit 705e8fff6a21264ab751fb34c107cb109430ac89
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Thu Jul 27 15:00:03 2017 -0600

    Spirit:  Bring in last of timer interfaces.

commit f8984b2f82e165f5bba132d6b099222d1beb1fbd
Merge: cb79778a30 f287cc25d6
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Thu Jul 27 11:57:01 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit cb79778a3044ae97a1cc615dfa24099144f04bd0
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Thu Jul 27 11:46:31 2017 -0600

    Spirit:  Bring in last of QI interfaces.

commit 0245b330a33aa73531b82ae261b1312be9922e0f
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Thu Jul 27 10:14:34 2017 -0600

    Spirit:  Add general interfaces.

commit 121845a8f229ec2c88e5721da5512135f6624ee5
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Thu Jul 27 09:41:23 2017 -0600

    Spirit:  Bring in last of GPIO interfaces.

commit 279bfcc92bcd0cfa48c0ed7862fa2b75fbee99b8
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Wed Jul 26 17:09:19 2017 -0600

    Spirit: Add some missing configuration options: Add register -level debug options.

commit 4be89324a5908e35afc70373c279f4d05f62b48f
Merge: 66e87f9bb3 598386ef90
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Wed Jul 26 15:36:20 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 66e87f9bb3ef75fddf25400bc08475c5e6ad4c30
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Wed Jul 26 15:19:56 2017 -0600

    Spirit:  Brings in last of PktBasic logic.

commit 8b4c89d6a103003fa04363e2c2ae7b9ee390bf49
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Wed Jul 26 11:55:50 2017 -0600

    Spirit:  Bring in AES and MBUS logic.

commit d00022d39ab0ce839de29386949481e5c24feff3
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Wed Jul 26 09:22:03 2017 -0600

    Spirit:  Bring in remainder of calibration interfaces.

commit 40b4b2f902e04293f8940551a97a9a24a48988dd
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Wed Jul 26 08:44:32 2017 -0600

    Spirit:  Bring in DirectRF interfaces.

commit 7c109608e1a2989f3edbc2fd939a2d225fff382a
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Wed Jul 26 07:46:19 2017 -0600

    Spirit: Add CSMA support.

commit 0f88896595d162c4ac6138e7b1af2fc35c865b3d
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Tue Jul 25 18:57:43 2017 -0600

    Spirit:  Add some initial TX logic to network driver.

commit 4dc7058dfcdcf40980578680b7e1a4206dea4ea2
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Tue Jul 25 17:02:11 2017 -0600

    Spirit: Completes ports of spirit_management.* files

commit c904eef51d929e041b87d0c8aff6fa3c2f895341
Merge: 91e985a877 c9ff8cbab9
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Tue Jul 25 15:15:04 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 91e985a87729017a66d19276c4d47681064f95ea
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Tue Jul 25 15:13:54 2017 -0600

    Spirit:  Add a few more functions that will soon be needed for packet transmission.

commit b5981d29983907c2194fbc26af4b72ad532bee78
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Tue Jul 25 13:30:07 2017 -0600

    Spirit:  Finish off some initialization issues; Started some interrupt handling logic.

commit c21073e0bc2870b3d9ba40bdfdfd5151ce4f5890
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Tue Jul 25 09:35:52 2017 -0600

    Spirit:  Completes very basic radio initialization for network driver

commit 1b544334361c54f46bcf0ba313c125932e8dafc6
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Tue Jul 25 07:58:30 2017 -0600

    Spirit: Add more radio initialization logic... getting closer.

commit 45d1047db60843c57d394ec910c63e7c127671e0
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 19:15:33 2017 -0600

    Spirit: add some CSMA initialization logic

commit bcf55c71336d48947fe19bb09a799169852301c2
Merge: 89e9d426e9 2fc0fbcf7e
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 16:47:11 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 89e9d426e91c056e659fccf5e5c4392618f8f777
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 16:44:19 2017 -0600

    Update some comments

commit 9c5d8a5833350006ed389e898b11c8c8a20e5f4f
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 16:15:54 2017 -0600

    Spirit:  Rename drivers/wireless/spirit/src to lib.  Move Spirit network driver out of IEEE802.15.4 into drivers/wireless/spirit/drivers

commit cabc0ec9e6eb558dcb715ab17264383aa0105e7a
Merge: 87b616414a 6bd744c4b3
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 15:38:40 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 87b616414a79c01a71acea78f8258e05325c1996
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 15:37:27 2017 -0600

    Spirit radio driver is mutating into a standalone network driver.

commit 507798233868a661ae8adad3e3aa117075a7a146
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 13:32:08 2017 -0600

    Spirit: More radio initialization logic

commit 33af25704ce9ca83d576300d153cfe31cc6d2576
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 12:19:14 2017 -0600

    Spirit:  Beginning of radio initialization logic

commit 97b20014c016e55952a8f9d8f4ae29e2cc555b23
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 09:42:06 2017 -0600

    Spirit: More initialization logic.

commit 295d8e27824c0417fccea2344b30bb5c93ffbabe
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sun Jul 23 15:39:53 2017 -0600

    Spirit:  Add header file containing enumeration of commands.

commit 8a2d9dd8eb9cc70cbcdd1b913fc9022b9c9ec8da
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sun Jul 23 11:33:50 2017 -0600

    Spirit:  Add GPIO initialization logic

commit 8b6d80c44f92024c45a6ba63ba1af3fdafe94dc3
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sun Jul 23 10:07:25 2017 -0600

    Spirit:  Add interrupt control logic.

commit 423f846fe5c914f92a4bfea4d9d1fa33de1c77a5
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 19:06:52 2017 -0600

    Spirit: Yet a little more radio initialization logic.

commit 5895b979823e51ddde5ad52e6de66a8ad662e883
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 15:36:05 2017 -0600

    Spirit: A little more radio initialization logic.

commit 86311ab30aad386203c181c792847dd1d37f9a02
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 13:02:32 2017 -0600

    Spirit: A miniscule amount of radio initialization logic.

commit ad55e89d5ee12ea1eeea95fcd38ff3da0db4416a
Merge: 90a7666655 f4e46b0da7
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 10:56:30 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 90a766665534b05da0157dbc383cb06a98c86a79
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 10:52:52 2017 -0600

    Spirit1:  A few fixes for a clean build of initial configuration (not much there yet)

commit bbbf04c223230a52a7705a2161128265cfbaa480
Merge: 623d54a7f7 2319ea53a9
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 09:53:57 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 623d54a7f719e9032099f88f38203efee4b80722
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 09:43:52 2017 -0600

    b-l475e-iot01a: Add a configuration for testing sprit radio.

commit d309d73d9f4665f9d870eb03531f450043d9389d
Merge: 52c3ddfae6 d88dc9b2e5
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 09:02:06 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 52c3ddfae6802e111c2b5cf1207baf21a61dd00b
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 08:33:04 2017 -0600

    Spirit:  Add register definition header file.

commit 8d842ab5e8f9ca653b42f9ee88dc279f06b4fa98
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 17:27:03 2017 -0600

    b-l475e-iot01a: Add initial, unverified support for the SPSRGF/Spirit1 module.

commit 73d902a1048616fb9c2dd2147cabcd8ee78e19ac
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 15:49:43 2017 -0600

    Spirit: Fixes to get skeleton IEEE 802.15.4 driver build.

commit ebc5a8387bb94f0cc3827533795f3e4a33207e67
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 15:16:29 2017 -0600

    Spirit1:  Add framework for IEEE 802.15.4 driver.  Does not yet build.

commit 52e195a7ae14ddb18bdd56258f4877381d2501ca
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 14:02:42 2017 -0600

    Spirit:  A little more SPI logic.

commit 90048d0c5b8a5af4d81a15d99535c84ed38d8ae9
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 11:19:06 2017 -0600

    Spirit: Build directories setup.  Some initial files added, mostly just to verify build.

commit 8273a381ac1f6bb081b292b5e73226185e9e634c
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 08:34:04 2017 -0600

    USB composite:  Remove references to CDC/ACM and USB MSC from composite logic.  They are no longer coupled.
2017-07-28 12:01:05 -06:00
Gregory Nutt
5f31999b75 Trivial fix to spacing 2017-07-27 11:50:59 -06:00
Titus von Boxberg
28eab902d0 No FSMC, only FMC for STM32F7 2017-07-27 18:27:01 +02:00
Gregory Nutt
2fc0fbcf7e Squashed commit of the following:
commit 89e9d426e91c056e659fccf5e5c4392618f8f777
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 16:44:19 2017 -0600

    Update some comments

commit 9c5d8a5833350006ed389e898b11c8c8a20e5f4f
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 16:15:54 2017 -0600

    Spirit:  Rename drivers/wireless/spirit/src to lib.  Move Spirit network driver out of IEEE802.15.4 into drivers/wireless/spirit/drivers

commit cabc0ec9e6eb558dcb715ab17264383aa0105e7a
Merge: 87b616414a 6bd744c4b3
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 15:38:40 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 87b616414a79c01a71acea78f8258e05325c1996
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 15:37:27 2017 -0600

    Spirit radio driver is mutating into a standalone network driver.

commit 507798233868a661ae8adad3e3aa117075a7a146
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 13:32:08 2017 -0600

    Spirit: More radio initialization logic

commit 33af25704ce9ca83d576300d153cfe31cc6d2576
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 12:19:14 2017 -0600

    Spirit:  Beginning of radio initialization logic

commit 97b20014c016e55952a8f9d8f4ae29e2cc555b23
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Mon Jul 24 09:42:06 2017 -0600

    Spirit: More initialization logic.

commit 295d8e27824c0417fccea2344b30bb5c93ffbabe
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sun Jul 23 15:39:53 2017 -0600

    Spirit:  Add header file containing enumeration of commands.

commit 8a2d9dd8eb9cc70cbcdd1b913fc9022b9c9ec8da
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sun Jul 23 11:33:50 2017 -0600

    Spirit:  Add GPIO initialization logic

commit 8b6d80c44f92024c45a6ba63ba1af3fdafe94dc3
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sun Jul 23 10:07:25 2017 -0600

    Spirit:  Add interrupt control logic.

commit 423f846fe5c914f92a4bfea4d9d1fa33de1c77a5
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 19:06:52 2017 -0600

    Spirit: Yet a little more radio initialization logic.

commit 5895b979823e51ddde5ad52e6de66a8ad662e883
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 15:36:05 2017 -0600

    Spirit: A little more radio initialization logic.

commit 86311ab30aad386203c181c792847dd1d37f9a02
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 13:02:32 2017 -0600

    Spirit: A miniscule amount of radio initialization logic.

commit ad55e89d5ee12ea1eeea95fcd38ff3da0db4416a
Merge: 90a7666655 f4e46b0da7
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 10:56:30 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 90a766665534b05da0157dbc383cb06a98c86a79
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 10:52:52 2017 -0600

    Spirit1:  A few fixes for a clean build of initial configuration (not much there yet)

commit bbbf04c223230a52a7705a2161128265cfbaa480
Merge: 623d54a7f7 2319ea53a9
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 09:53:57 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 623d54a7f719e9032099f88f38203efee4b80722
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 09:43:52 2017 -0600

    b-l475e-iot01a: Add a configuration for testing sprit radio.

commit d309d73d9f4665f9d870eb03531f450043d9389d
Merge: 52c3ddfae6 d88dc9b2e5
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 09:02:06 2017 -0600

    Merge remote-tracking branch 'origin/master' into spirit

commit 52c3ddfae6802e111c2b5cf1207baf21a61dd00b
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Sat Jul 22 08:33:04 2017 -0600

    Spirit:  Add register definition header file.

commit 8d842ab5e8f9ca653b42f9ee88dc279f06b4fa98
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 17:27:03 2017 -0600

    b-l475e-iot01a: Add initial, unverified support for the SPSRGF/Spirit1 module.

commit 73d902a1048616fb9c2dd2147cabcd8ee78e19ac
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 15:49:43 2017 -0600

    Spirit: Fixes to get skeleton IEEE 802.15.4 driver build.

commit ebc5a8387bb94f0cc3827533795f3e4a33207e67
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 15:16:29 2017 -0600

    Spirit1:  Add framework for IEEE 802.15.4 driver.  Does not yet build.

commit 52e195a7ae14ddb18bdd56258f4877381d2501ca
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 14:02:42 2017 -0600

    Spirit:  A little more SPI logic.

commit 90048d0c5b8a5af4d81a15d99535c84ed38d8ae9
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 11:19:06 2017 -0600

    Spirit: Build directories setup.  Some initial files added, mostly just to verify build.

commit 8273a381ac1f6bb081b292b5e73226185e9e634c
Author: Gregory Nutt <gnutt@nuttx.org>
Date:   Fri Jul 21 08:34:04 2017 -0600

    USB composite:  Remove references to CDC/ACM and USB MSC from composite logic.  They are no longer coupled.
2017-07-24 16:46:30 -06:00
Gregory Nutt
f4e46b0da7 Missed part of 2319ea53a9. Was still getting the warning. 2017-07-22 10:55:54 -06:00
Gregory Nutt
2319ea53a9 STM32L4: Eliminate a warning about implicit definition of function. While we are at it, let's improve the naming a little too. 2017-07-22 09:53:29 -06:00
raiden00pl
f6c1d59531 stm32_hrtim: add slave timers private data, fix some bad definitions, some asserions 2017-07-22 15:14:59 +02:00
Gregory Nutt
c3b552e072 Minor cosmetic updates from review of last PR. 2017-07-20 07:39:57 -06:00
Titus von Boxberg
a20c3b17ce warning message when using DSI (for debugging) 2017-07-19 20:39:27 +02:00
Titus von Boxberg
7b07471ece documentation update to f7 2017-07-19 19:14:50 +02:00
Titus von Boxberg
6d29a04752 naming errors/inconsitencies/typos 2017-07-19 19:14:49 +02:00
Titus von Boxberg
1241960d4a STM32F7: Switch from CCM to DTCM 2017-07-19 19:07:53 +02:00
Titus von Boxberg
071b2dda28 compileable with LTDC_INTERFACE and LTDC_USE_DSI 2017-07-19 19:07:53 +02:00
Titus von Boxberg
e67ba8c88d option for DSI output 2017-07-19 19:07:53 +02:00
Titus von Boxberg
d590ba7ab2 do not enforce CONFIG_STM32_CCMEXCLUDE for CONFIG_ARCH_CHIP_STM32F7, macro rename STM32 -> STM32F7, #include corrections 2017-07-19 19:07:53 +02:00
Titus von Boxberg
1826c1165a macro rename STM32 -> STM32F7, #include corrections 2017-07-19 19:07:53 +02:00
Titus von Boxberg
32e417c3ac renamed STM32_LCDTFT_BASE to STM32_LTDC_BASE for consistency 2017-07-19 19:07:53 +02:00
Titus von Boxberg
58053fef0f macro rename STM32 -> STM32F7 2017-07-19 19:07:53 +02:00
Titus von Boxberg
ec3e4cabab added config and make stuff for stm32f7 ltdc 2017-07-19 19:07:53 +02:00
Titus von Boxberg
ea703b832a copied from stm32 2017-07-19 19:07:53 +02:00
Titus von Boxberg
07531de2e4 Copied files from stm32 2017-07-19 19:07:53 +02:00
Matt Thompson
eff9ba514c SAMD21: Changes needed to get USB working. 2017-07-19 07:22:14 -06:00
Titus von Boxberg
f3267ddb71 I2C4_SDA can also be on GPIO PB7 2017-07-18 11:43:53 +02:00
savinz
1b27dd32af STM32 F7 Ethernet: Fix typo in header; Add memory sync barrier between writing to DMA TX descriptor and restarting DMA TX. Avoid calling work_queue on pollwork if it's already queued, just skip a poll cycle instead. Nucleo-144: Fix RMII TXD1 signal, connected to PB13 not to PG14. 2017-07-14 09:23:43 -06:00
Gregory Nutt
447785b264 SAMD/L21: Need to preserve errno value across syslog() call. 2017-07-12 16:22:23 -06:00
Gregory Nutt
10fbb2b089 SAMD/L21 USB: Remove all commented out logic. 2017-07-12 08:10:21 -06:00
Janne Rosberg
76ea6f09ec SAMD/L21: Add a USB driver. Developed for Filament Inc. by Offcode, LTD. 2017-07-12 07:46:46 -06:00
Matt Thompson
5448c99ff2 I was having issues with the bus freezing up .. slaves holding SDL low.. so I rewrote a good portion of the interrupt logic based on the application notes from Atmel. One major improvement is using the RXNACK flag in the STATUS register, which indicates that no device responded to an address packet. Assuming that the chip will always give an interrupt status, I believe it's possible to eliminate the timer as well. 2017-07-12 06:44:53 -06:00
Matt Thompson
1e0560b22f SAMD21: Fix some SPI-related issues. 2017-07-11 12:48:38 -06:00
Gregory Nutt
839019f305 SAMD/L21 I2C: Another update... needs to use enter/leave_critical_section vs. old irqsave/restore. 2017-07-11 07:01:05 -06:00
Alan Carvalho de Assis
5b9526b4c1 SAML21 I2C driver. Developed for and contributed with permissin from Filament company. 2017-07-11 06:58:58 -06:00
Gregory Nutt
79e5d2b7b6 STM32 TIM3/4 are always 16-bits; never 32-bits. Noted by Eetu Nevalainen. 2017-07-10 13:56:06 -06:00
Gregory Nutt
76587b2c6f STM32 Kconfig: 'unfold' some of the dependencies to provide better long term configuration support. This also effective reverts the recent 15b85738e7 2017-07-06 10:34:54 -06:00
Gregory Nutt
47be509d79 Rename CONFIG_STM32_STM32F40XX to CONFIG_STM32_STM32FXXXX since it is used by F4 parts other than F40x 2017-07-06 10:20:14 -06:00
gwenhael.goavec
15b85738e7 In arch/arm/src/stm32/Kconfig when the CPU is a STM32F4, some STM32_HAVE_xx with xx = {OTGFS, TIM3, TIM4, SPI3, I2S3, I2C3} are selected by default. But for F410 these peripherals are absent. This change add tests to check if the target CPU is an F410 or not and selects according to the situation. This also adds a select for STM32_HAVE_DAC1 present on this STM32 flavor. 2017-07-06 09:52:21 -06:00
Eetu Nevalainen
21dcc8cbc7 stm32f40xxx_rtcc ISR register and write protection fix 2017-07-03 11:06:07 -06:00
Gregory Nutt
68315b7444 Merged clang into master 2017-07-03 07:04:57 -06:00
Gregory Nutt
09ab651e02 samv71-xult: Add support for the MRF24J40 radio and create a mrf24j40-starhub configuration. A few fixes to IPv6 and 6LoWPAN were required to have 6LoWPAN and Ethernet coexisting. Untested and expect some complexity in the bring-up. 2017-07-02 11:04:57 -06:00
Gregory Nutt
cf44fd6ec0 Add CLANG definitions in Kconfig and Toolchain.defs 2017-07-02 06:42:48 -06:00
Gregory Nutt
1c5ec07414 arch/: Remove dangling space at the end of lines. 2017-06-28 13:16:48 -06:00
Gregory Nutt
aa1708e7c0 6LoWPAN: Update README; fix duplicate and bad memcpy in loopback driver. 2017-06-26 10:53:57 -06:00
raiden00pl
715d6fa9ff stm32f33xxx_rcc: cleanup + move hrtim clock source selection 2017-06-26 18:30:10 +02:00
raiden00pl
aead2b2afd stm32f33xxx_rcc.h: fix typo 2017-06-26 18:26:59 +02:00
Juha Niskanen
56eeb40958 STM32L4 serial: Allow configuring Rx DMA buffer size 2017-06-26 09:19:42 -06:00
Juha Niskanen
90ccdf287d STM32 L4 DMA: Correct USART3_RX bad channel definition 2017-06-21 08:40:33 -06:00
David Sidrane
345ea957cf Merged in david_s5/nuttx/upstream_kinetis (pull request #414)
Kinetis:I2C fixed mis-placed kinetis_i2c_endwait

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-06-20 20:22:17 +00:00
David Sidrane
839a6e09f4 Kinetis:I2C fixed mis-placed kinetis_i2c_endwait
Fixed accedently replaced post with wait.
2017-06-20 10:01:35 -10:00
Gregory Nutt
5de74441a6 Costmetic change from review of last PR 2017-06-20 13:33:14 -06:00
David Sidrane
1ee03d7500 Merged in david_s5/nuttx/upstream_kinetis (pull request #413)
Kinetis:I2C driver added I2C3, reference counting and reset

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-06-20 19:31:38 +00:00
David Sidrane
9e0f583774 Kinetis:I2C driver added I2C3, reference counting and reset
Refactored the driver to support reference counting and reset
   added I2C3
2017-06-20 08:34:12 -10:00
Sebastien Lorquet
0bf4893b2c STM32: Allow clock frequencies > 168 Mhz on stm32f427/429. We need to enable the power overdrive for this case. This patch allows the required bits to be set in proper sequence. It also modifies the local register access operations to allow more than 16-bit registers. 2017-06-20 11:56:54 -06:00
Juha Niskanen
326ab01a91 STM32 F7: Set I2C4 SDA and SCL pins to open drain mode 2017-06-20 08:06:30 -06:00
Juha Niskanen
2c548a4e58 STM32 L4: I2C4 was writing to wrong RCC registers 2017-06-20 08:04:09 -06:00
Gregory Nutt
47ad81b3e5 Trivial spelling fix 2017-06-20 08:02:42 -06:00
Pekka Ervasti
2eb782961f STM32 L4: Set I2C SDA and SCL pins to open drain mode. 2017-06-20 07:59:27 -06:00
Jussi Kivilinna
a1ee9547f3 stm32_adc: invalidate dma buffer before use. Missing invalidation caused old samples being fetched from cache. 2017-06-19 07:52:19 -06:00
raiden00pl
c29c4e2ec2 stm32_hrtim: remove unneeded definitions 2017-06-18 18:08:25 +02:00
raiden00pl
4e0f45f252 stm32_hrtim: fix initialization bug, minor changes 2017-06-18 18:06:37 +02:00
raiden00pl
cd30545cd9 stm32_hrtim: ADC triggering and DAC synch events 2017-06-18 15:26:39 +02:00
raiden00pl
96e639262a stm32_hrtim: add hrtim ops 2017-06-18 11:01:36 +02:00
raiden00pl
797e286cb0 stm32_hrtim: timers mode configuration 2017-06-18 09:28:05 +02:00
raiden00pl
dfeffefa69 stm32_hrtim: typo 2017-06-18 08:02:15 +02:00
Gregory Nutt
0024840f7d Trivial, cosmetic changes from review of last PR 2017-06-17 14:44:11 -06:00
raiden00pl
b48a86ee33 Merge remote-tracking branch 'upstream/master' 2017-06-17 22:18:03 +02:00
raiden00pl
4d9d3c4a9c stm32_hrtim: cosmetics 2017-06-17 22:12:56 +02:00
raiden00pl
5e3360b8b9 stm32_hrtim: faults and events configuration 2017-06-17 21:56:11 +02:00
David Sidrane
c79d4d1988 stm32:flash add CONFIG_STM32_STM32F469 to list defining OPTCR1 2017-06-16 14:16:32 -10:00
Gregory Nutt
5245cbc6f5 STM32 SPI/I2S: Back out a bad pin mapping change from 4ab2a3661e. Try to staighten out some I2C3 and SPI3 pin configuration stuff. 2017-06-16 09:34:22 -06:00
Sebastien Lorquet
4d9be9bc20 STM32 F4 FLASH: Enable/disable the flash write protection on any sector. I have verified it to work on the stm32f427. 2017-06-16 08:46:57 -06:00
raiden00pl
bd7bee5db0 stm32_hrtim: structures for deadtime and chopper, cosmetics 2017-06-16 11:36:23 +02:00
David Sidrane
64e3dc5e8b Merged in david_s5/nuttx/upstream_samv7_twi (pull request #399)
samv7:twihs driver add reference counting

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-06-15 21:45:07 +00:00
David Sidrane
d9d32ac808 samv7:twihs driver add reference counting 2017-06-15 11:16:28 -10:00
raiden00pl
268c6d0b7d stm32_hrtim: outputs enable, period and compare functions, cosmetics 2017-06-15 16:45:21 +02:00
Gregory Nutt
d958cec7a4 Cosmetic changes from review of last PR 2017-06-15 06:58:55 -06:00
Hidetaka
0f1d388248 Merged in TJ-Hidetaka-Takano/nuttx-pr/feature/fix-kconfig (pull request #394)
Fixed typo "CORTEXR5F" in arch/arm/Kconfig

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-06-15 12:12:31 +00:00
Hidetaka
9dfa8f7df9 Merged in TJ-Hidetaka-Takano/nuttx-pr/feature/fix-armv7m-toolchain-def (pull request #395)
Fixed ARMv7-M Toolchain definition for Cortex-M4.

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-06-15 12:12:01 +00:00
Hidetaka Takano
5591fc6b16 Fixed ARMv7-M Toolchain setting.
- Cortex-M4 only have Single Precision FPU.
2017-06-15 20:52:37 +09:00
Hidetaka Takano
d665392873 Fixed typo "CORTEXR5F" in arch/arm/Kconfig 2017-06-15 20:44:06 +09:00
raiden00pl
96d40dec40 stm32_hrtim: cosmetic 2017-06-15 11:20:40 +02:00
Leif Jakob
4a79547fb8 multiple fixes for stm32f1xx RTC clock
- compile issues because of missing RTC_MAGIC #defines
- missing functionality based on RTC_MAGIC in RTC based on stm32_rtcounter.c
- IRQ setup from up_rtc_initialize was later reset in up_irqinitialize
- write access to backup registers without enabling access to backup domain
- possible races in set/cancel alarm
tested with STM32F103C8 only
device now wakes up from forced STANDBY mode by alarm
2017-06-14 22:36:40 +02:00
David Sidrane
b2d929e40a Kinetis:SPI driver 2017-06-13 17:46:57 -10:00
David Sidrane
de3695d32b kinetis:lpserial fixed header inclusion 2017-06-13 17:46:56 -10:00
Gregory Nutt
e379491d13 STM32/STM32L4: Review of last commit -- Eliminate possible underflow 2017-06-13 07:05:46 -06:00
JM
7903a8a46c stm32/stm32l4 PWM: While attempting to output a 70 MHz square wave from the timer output of a STM32 clocked at 140 MHz (which works fine in baremetal C), I stumbled on what I believe to be an error in arch/arm/src/stm32/stm32_pwm.c. Line 1304 we are told that
reload = timclk / info->frequency;

which I belive to be incorrect, it should be

reload = timclk / info->frequency - 1;

since starting to count from 0, if I want to output half of the TIM clock, I must count to 1 and not to 2.

Surely enough, the original code did output 140/3=47 MHz, while this correction does allow the output up to 70 MHz.

I am not sure this affects most users generating slow PWM (e.g. PX4) but for frequencies
close to the PCLK, indeed the difference becomes significant.
2017-06-13 06:01:13 -06:00
raiden00pl
f6ba4642a3 stm32_hrtim: GPIOs configuration + EEV and FAULT strucutres 2017-06-12 18:45:58 +02:00
Gregory Nutt
f5f1c73b54 Based on the last PR, review all serial driver vector attachment. Found one additional error and updated all relevant drivers to current interrupt parameter passing. 2017-06-12 06:22:35 -06:00
Masayuki Ishikawa
93a2d52b56 i.MX6: Fix a wrong parameter passed when calling irq_attach() in imx_serial.c 2017-06-12 13:34:53 +09:00
raiden00pl
de8cd6c870 stm32_hrtim: add character driver 2017-06-11 20:51:23 +02:00
Gregory Nutt
fe813545e8 STM32F33: Forgot to add new files that were a part of the last patch before committing. 2017-06-11 11:00:29 -06:00
Mateusz Szafoni
437ad3ccb2 STM32F33: Fix hrtim definitions, Add beginning of HRTIM driver 2017-06-11 10:49:20 -06:00
Gregory Nutt
1e5125c5d5 STM32L4: Remove some C++ style comments. 2017-06-08 13:43:47 -06:00
Gregory Nutt
8b907c4c1f STM32L4: Fix a typo 2017-06-08 11:07:20 -06:00
Gregory Nutt
d99ceec58c STM32L4: Add STM32L475 pinmap. Initial cut is just the the L476 pinmap with unsupported devices removed. 2017-06-08 10:55:27 -06:00
Gregory Nutt
596fe68854 STM32L4: Add STM32L475 OTGFS header file. Not fully reviewed. 2017-06-08 10:34:26 -06:00
Gregory Nutt
95fcdff1fd STM32L4: Add STM32L475 RCC definitions/logic. 2017-06-08 10:04:28 -06:00
Gregory Nutt
1a405d2881 STM32L4: Add L475 syscfg register definitions. 2017-06-08 09:07:04 -06:00
Gregory Nutt
66e2247f30 STM32L4: Ad support for the STM32L475 family. Incomplete -- still needs pinmap, rcc, otgfs, syscfg 2017-06-08 08:52:09 -06:00
David Sidrane
4854eb1fd7 Kinetis:Fixed waning for kinetis_mpudisable
Missing header file added
2017-06-06 15:18:01 -10:00
David Sidrane
36da2b91c5 Kinetis:USB-FS driver
Removed the notion of attached. The khci_usbattach is call early in
   the init either in board_initalize or in board_app_initalize. In
   either case it is always done prior to the the class register.
   Therefore the khci_usbattach call only set a flag, and that
   flag is only tested in the class register. The class register will
   enable the soft connect pull up.
2017-06-06 14:39:00 -10:00
David Sidrane
cb62675b5e Kinetis:sim ensure isolation of clock dividers for 0 value case
This fixes a bug were a SoC does not have a clockdivN register
   and passes a 0 for the init value. This prevents overflow of
   the 0 decremented to -1 (0xffffffff) spilling over to other
   clockdivN feilds.
2017-06-06 14:38:59 -10:00
David Sidrane
60c552ae0f Kinetis:usbdev clean up ensuring proper use of HW.
Remove magic numbers from code, documented the use of
  undocumented bits.

  Remove comments and code that were not appropriate for this
  hardware.

  Removed ifdef that's that were always compiled and removed code
  blocks that were never compiled.

  Ensure proper access order to hardware.
  Per the reference manual: disable endpoints prior to configuring buffer
  descriptor, then enable endpoints
  Reorganize interrupt processing order to offload data after processing
  errors.

  Reorganize initialization so that there is a clear initialization phase,
  reset phase for both the hardware and software structures.

  By breaking the initialization into smaller pieces, the reset interrupt
  only resets the resources within the controller that should be reset.

  Rework suspend and resume logic so they perform properly

  Made attach and detach functions optional. As they do not make sense for
  a bus powered device.

  Ensured the calls to up_usbinitalize up_usbuninitalize do not violate the
  USB spec.
2017-06-06 14:38:59 -10:00
David Sidrane
c1a3208f83 Kinetis:Disable MPU when not in protected mode.
The hardware reset state of the the MPU precludes any bus
   masters other then DMA access to memory. Unfortunately
   USB and SDHC have there own DMA and will not have access to
   memory in the default reset state.

   This change disabled the MPU if present on system startup.
2017-06-06 14:38:58 -10:00
Gregory Nutt
4d46979a6f Tiva SSI: Resolves issue 52 'Copy-Paste error in tiva_ssibus_initialize()' submitted by Aleksandr Kazantsev. 2017-06-01 06:38:47 -06:00
Juha Niskanen
ad6515563b STM32L4 RTC: store RTC MAGIC to backup reg, not to address zero 2017-06-01 06:15:28 -06:00
Jussi Kivilinna
369b72f65a stm32f7: Add SPI DMA support 2017-05-31 09:13:20 -06:00
Juha Niskanen
14c233a2f5 STM32L4: gpio: put back EXTI line source selection 2017-05-31 06:34:14 -06:00
David Sidrane
a077d0285b Kinetis:Added ADC channel macro 2017-05-25 16:52:08 -10:00
David Sidrane
b407020968 Kinetis:Fixed typo in kinetis_adc.h 2017-05-25 16:51:25 -10:00
David Sidrane
488f42588b Kinetis:Removed base address from kinetis_adc.h 2017-05-25 16:50:42 -10:00
Juha Niskanen
0c9abbfe67 STM32L4: Add IWDG peripheral. This is the same as for STM32 except that prescale and reload can be
changed after watchdog has been started, as this seems to work on L4.
2017-05-23 07:02:36 -06:00
Gregory Nutt
32eb5ca99a Missed one change in the previous commit. 2017-05-21 15:02:00 -06:00
Gregory Nutt
7ffbb704d6 This is based on a patch by Taras Drozdovsky. Basically, the delay that was added during the integration of the CDC/ACM host driver was interfering with streaming audio. That delay was put there to prevent build endpoints from hogging the system bandwidth. So what do we do? Do we hog the bandwidth or do we insert arbitrarity delays. I think both ideas such. 2017-05-21 14:28:29 -06:00
Taras Drozdovsky
4ab2a3661e STM32F4: add cs43l22 audio driver and i2s driver 2017-05-21 14:14:09 -06:00
Juha Niskanen
819a6e049e stm32_i2c: make private symbols static 2017-05-19 07:16:01 -06:00
Gregory Nutt
989195cec8 STM32 Ethernet: Last patch breaks every board that does not use the KSZ80801 PHY. 2017-05-17 15:36:57 -06:00
Gregory Nutt
aac3a3df8e STM32 Ethernet: Should not stm32_phyintenable() return a failure if it could not enable the PHY interrupt? 2017-05-17 10:07:09 -06:00
Sebastien Lorquet
2c6ea23aee STM32 Ethernet: Add support for KSZ8081 PHY interrupts. 2017-05-17 10:04:49 -06:00
Juha Niskanen
8896f91f53 STM32L4: remove duplicate USART selects from Kconfig 2017-05-17 08:05:24 -06:00
Jussi Kivilinna
9169ff6a15 stm32_serial: fix freezing serial port. Serial interrupt enable/disable functions do not disable interrupts and can freeze device when serial interrupt is received while execution is at those functions.
Trivially triggered with two or more threads write to regular syslog stream and to emergency stream. In this case, freeze happens because of mismatch of priv->ie (TXEIE == 0) and actually enabled interrupts in USART registers (TXEIE == 1), which leads to unhandled TXE interrupt
and causes interrupt storm for USART.
2017-05-17 06:50:46 -06:00
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