Commit Graph

10920 Commits

Author SHA1 Message Date
Masayuki Ishikawa
c8a372702a sched/sched: SMP: Fix this_task() to be an atomic operation. In the previous implementation, this_task() was defined in sched.h by using just a macro current_task(this_cpu()). However, I found that this is not atomic and actually sometimes switching CPU happened in executing the macro when we tested audio steaming plus executing commands via telnet. This change resolves this issue by implementing atomic this_task()in sched_thistask.c which is newly introduced. 2018-02-04 16:59:09 -06:00
Gregory Nutt
5beab6fbf0 spin_lock_irqsave() and spin_unlock_irqrestore() are only valid if the CPU supports global disabling of interrupts. 2018-02-04 15:41:22 -06:00
Gregory Nutt
5c5d19f1c8 Some ommissions from previous commit. 2018-02-04 12:36:51 -06:00
Gregory Nutt
1e59d9dd14 armv7-a, armv7-r, armv7-m: Add atomic read-add-write and read-subtract-write functions. 2018-02-04 12:22:03 -06:00
Gregory Nutt
2683f713ab Make sure that labeling is used consistently in all function headers (part 3). 2018-02-01 12:17:03 -06:00
Gregory Nutt
1567b82429 Make sure that labeling is used consistently in all function headers (part 2). 2018-02-01 12:03:55 -06:00
Gregory Nutt
7cf88d7dbd Make sure that labeling is used consistently in all function headers. 2018-02-01 10:00:02 -06:00
Stewart
be81893b55 arm/src/kinetis: Correct some Ethernet PHY register bit tests for the KSZ8081 PHY. 2018-02-01 07:24:36 -06:00
Gregory Nutt
1550ef2f54 arch/arm/src/lpc43xx: Correct a typo introduced in last large set of changes 2018-01-31 11:32:43 -06:00
Gregory Nutt
da50646bcf sched/wdog: wd_start() is an internal OS function and should not set the errno value. Reviewed and updated every call to wd_start() to verify if return value is used and if so if the errno value is accessed. 2018-01-31 10:09:14 -06:00
Matt Thompson
1f10a9c576 Merged in extent3d/nuttx/i2c (pull request #588)
SAMDL: Added I2S register definitions

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-01-31 13:29:23 +00:00
Gregory Nutt
3521aaf944 Squashed commit of the following:
binfmt/, configs/, grahics/, libc/, mm/, net/, sched/:  OS references to the errno variable should always use the set_errno(), get_errno() macros
    arch/arm/src/stm32 and stm32f7:  Architecture-specific code is not permitted to modify the errno variable.  drivers/ and libc/:  OS references to the errno variable should always use the set_errno(), get_errno() macros
2018-01-30 17:57:36 -06:00
Gregory Nutt
82982f7972 sched/: Fix several inappropriate accesses to get_errno() that were missed in previous changes (some going back to nuttx-.23). Add new nxsched_setscheduler() and nxsched_getaffinity() which are equivalent to their counterparts without the nx on front. These versions do not modify the errno value. Changed all calls within the OS to use these newer versions of the functions. 2018-01-30 16:16:41 -06:00
Gregory Nutt
170a50c690 Squashed commit of the following:
sched/sched:  Correct some build issues introduced by last set of changes.
    sched/sched:  Add new internal OS function nxsched_setaffinity() that is identical to sched_isetaffinity() except that it does not modify the errno value.  All usage of sched_setaffinity() within the OS is replaced with nxsched_setaffinity().
    sched/sched:  Internal functions sched_reprioritize() and sched_setpriority() no longer movidify the errno value.  Also renamed to nxsched_reprioritize() and sched_setpriority().
    sched/sched:  Add new internal OS function nxsched_getscheduler() that is identical to sched_getscheduler() except that it does not modify the errno value.  All usage of sched_getscheduler() within the OS is replaced with nxsched_getscheduler().
    sched/sched:  Add new internal OS function nxsched_setparam() that is identical to sched_setparam() except that it does not modify the errno value.  All usage of sched_setparam() within the OS is replaced with nxsched_setparam().
    sched/sched:  Add new internal OS function nxsched_getparam() that is identical to sched_getparam() except that it does not modify the errno value (actually, the previous value erroneously neglected to set the errno value to begin with, but this fixes both issues).  All usage of sched_getparam() within the OS is replaced with nxsched_getparam().
2018-01-30 11:08:18 -06:00
Matt Thompson
20016b841a Merged in extent3d/nuttx (pull request #587)
SAMDL: Added Timer Compare for Control registers header

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-01-29 19:20:00 +00:00
Bob Feretich
a0cd711334 I have a SPI bus with both Mode 0 and Mode 3 devices on it. After performing SPI I/O to a Mode 0 device, switching to a Mode 3 device locked up the SPI interface. Only zeroes would be read. I traced the reason for the lock-up to arm/arm/src/stm32f7/stm32_spi.c function spi_setmode(). Changing the mode causes a spurious SPI clock transmission that confuses the stm32f7 SPI input hardware. This problem is solved by (1) changing the SPI mode with SPI (and perhaps DMA) disabled, and (2) flushing the receive FIFO if the mode change results in garbage in the FIFO. 2018-01-29 07:23:52 -06:00
Matt Thompson
c5e231bedd SAMDL: Added Analog Comparator headers and basic initialization 2018-01-28 21:11:37 -08:00
Mateusz Szafoni
0afbcb0bab Merged in raiden00/nuttx (pull request #585)
Master

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-01-28 13:46:17 +00:00
raiden00pl
cec8709ec1 stm32/Kconfig: fix COMP7 dependency
stm32_hrtim: add HRTIM push-pull mode configuration

stm32f334-disco: add buck-boost converter mode
2018-01-28 11:06:08 +01:00
Gregory Nutt
67d09e831b Fix recurring typo: *tino->*tion 2018-01-27 13:34:58 -06:00
Gregory Nutt
12e3e47d3c Update comments, mostly spelling errors. 2018-01-27 09:37:46 -06:00
Gregory Nutt
49d07162bf arch/arm/src/stm32: stm32_rtcc.h should be used to access BKP registers on F2, F3, and F4. 2018-01-26 11:34:48 -06:00
Gregory Nutt
bffa425233 arch/arm/src/stm32: stm32_bkp.h should only be used for STM32 F1 2018-01-26 11:26:40 -06:00
Gregory Nutt
fc387b9aa0 arch/arm/src/stm32: Remove bogus definitions of STM32_BKP_BASE from the F2, F3, and F4 memory maps. Unlike the F1, these parts do not have a separate BKP address region. The BKP registers are with the RTCC address regions. 2018-01-26 11:18:46 -06:00
Gregory Nutt
9e60dffc5a arch/srm/src/stm32f7: Remove confusing, redundant, and misleading STM32_BKP_BASE definitions. 2018-01-26 08:50:21 -06:00
Frank Benkert
e15fc0b65a arch/arm/src/samv7/sam_lowputc.c: Fix undefined variable when using USART1 for other purposes than UART (e.g. SPI). 2018-01-26 07:52:45 -06:00
Matt Thompson
2bc4967c0f Merged in extent3d/nuttx (pull request #583)
SAMDL: Added DMAC header for SAMD, fixed up sam_dmac to compile with debugging enabled
2018-01-25 20:15:58 +00:00
Matt Thompson
d314feab82 Merged in extent3d/nuttx (pull request #582)
SAMDL: Added SAMD DAC header file. Fixed SAMD EVSYS header. Added SAMD TC header file. Fixed some minor typos

* SAMD External Interrupt Controller (EIC) support

* removed comment

* SAMDL: SPI must be disabled before changing the mode bits in CTRLA register

* arch/arm/src/lc823450: Assign I2S IRQ handling to CPU0

    Previous commit assumed that the caller is running on CPU0.
    However, the caller sometimes runs at CPU1.  This patch will
    assign the caller to CPU0 explicitly.

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

* arch/arm/src/lc823450: Change irqwarn() to ASSERT() in up_ack_irq()

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

* configs/lc823450-xgevk: Update README.txt and defconfigs

    Update comments on SMP in README.txt
    Enable SYSTEM_TIME64 in defconfigs.
    Enable INSTRUMENTATION in rndis configuration.

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

* configst/stm3240g-eval:  Remove only bogus logic to start the NX server.  That was there only to support the knxwm configuration and was implemented priorit to boardctl(BOARCIOC_NX_START).

* drivers/input/ft5x06.c:  Remove cool logic to disable polling when there there is no client waiting for read data.  That was a great idea to save CPU cycles when there is nothing reading from the touchscrren but, unfortunately, does not work with readers that open the driver in non-blocking mode.  So I think we just have to eat the CPUs even when there is nothing waiting for touchscreen input.

* configs/lpcxpresso-lpc54628/lvgl:  Add LittlevGL graphics demo configuration.

*  configs/lpcxpresso-lpc54628: Update README

* include/termios.h:  Update comments; fix long lines.

* sched/semaphore: Add ASSERT(false) in nxsem_post() if no waiting task is found.

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

* sched/sched/sched_sporadic.c: fix compiler error when priority inheritance is enabled.  Noted by eunb.song@samsung.com

* Change ASSERT(false) to DEBUGPANIC().

* Documentation: Fix copy/paste error in NX graphics document.  Noted by Henjiu Kang.

* sched/sched:  Fix some priority inheritance related issues noted during review of logic.  Also add some REVISIT comments for some issues noted in the design.

* Update README and some comments

* Issue #85: /dev/userleds is not working for nucleo-l432kc fixed

* configs/nucleo-l432kc: Fix numerous cloning errors/typos.

* Update TODO list

* NUCLEO F432KC typo fixed, correct name is L432KC

    Just README.txt and comments affected, no changes in the code

* Merged in raiden00/nuttx (pull request #579)

    Master

    * stm32_hritm: add interface to get timer clock frequency

        stm32_hrtim: fix timer freq calculation

        stm32_hrtim: add compar/capture registers significant bits checking

        stm32_hrtim: minor changes

    * stm32f334-disco: add buck converter and boost converter logic

    Approved-by: Gregory Nutt <gnutt@nuttx.org>

* fs/userfs: use correct req type in userfs_truncate, remove use of undeclared buf

* Merged in david_alessio/nuttx/refactor-pll-setup (pull request #581)

    Refactor pll setup

    * fix typo in #def

    * refactor PLL setup code...

    * refactored PLL/CLK config, easier, checks for correctness

    * call go_os_start if STACK_COLORIZED

    * smarter config of EXTCLK output freq

    * cosmetic

    Approved-by: Gregory Nutt <gnutt@nuttx.org>

* The existence of the network driver ioctl() method should depend on CONFIG_NETDEV_IOCTL rather than CONFIG_NETDEV_PHY_IOCTL.  The former enables the method, the later enables a subset of possible driver IOCTLs.  This change should be basically a no-operation.  The affected ioctl methods only support those subset of driver IOCTLs selected by CONFIG_NETDEV_PHY_IOCTL and the network logic will tolerate a nul ioctl method.

* net/tcp:  Write buffering logic should not wait for a free buffer if the socket was opened non-blocking.  Also, rename the TCP write buffering macros from WRB_* to TCPWB_* to make room in the namespace for write buffering with other protocols.

* net/udp:  Remove some conditional logic that was true if there is only a single network device, but not true in the multi-device context.

* This commit adds an as-of-yet untested implemented of UDP write buffering.

    Squashed commit of the following:

        net/udp:  Address most of the issues with UDP write buffering.  There is a remaining issue with handling one network going down in a multi-network environment.  None of this has been test but it is certainly ready for test.  Hence, the feature is marked EXPERIMENTAL.
        net/udp:  Some baby steps toward a corrected write buffering design.
        net/udp:  Remove pesky write buffer macros.
        Eliminate trailing space at the end of lines.
        net/udp:  A little more UDP write buffering logic.  Still at least on big gaping hole in the design.
        net/udp:  Undefined CONFIG_NET_SENDTO_TIMEOUT.
        net/udp:  Crude, naive port of the TCP write buffering logic into UDP.  This commit is certainly non-functional and is simply a starting point for the implementatin of UDP write buffering.
        net/udp:  Rename udp/udp_psock_sendto.c udp/udp_psock_sendto_unbuffered.c.

* net/udp:  In sendto(), return EHOSTUNREACH if if the network is down.

* net/udp:  Resolves final design issues with UDP write buffering.  100% code complete but also 100% untested.

* net/udp and tcp:  Yet another (cosmetic) change to UDP and TCP write buffer macro naming.

* net/udp:  UDP write buffering is basically functional but needs a lot more verification.

* net/udp:  Fix memory leak with UDP + write buffer is closed.  Also update TODO and comments and refresh a configuration.

* Update some comments.

* drivers/mtd/at24xx.c: Correct page size for AT24C02 part.

* arch/arm/src/stm32:  Make STM32 usable with an external RTC.   drivers/timers/ds3231.c:  Correct some debug statments.

* arch/arm/src/stm32/stm32_spi.c: Removed unnecessary (and incorrect) speed limitation

* arch/arm/src/stm32/stm32f40xxx_i2c.c:  Correct some recent changes to STM32F4 I2C that broke poll mode of operation.

* configs/flipnclick-sam3x:  Using JTAG (vs. Bossac) I was finally able to load code and verify the basic NSH configuration.  Updated READMEs.  Also switched to USART0 (vs UART0) for the serial console because I was not getting bi-directional communication on the VCOM.

* SAMDL: Added SAMD DAC header file. Fixed SAMD EVSYS header. Added SAMD TC header file. Fixed some minor typos

* fix typo

* added missing EVCTRL register bits in TC

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-01-25 11:55:40 +00:00
Alexander Oryshchenko
d1cfcabb1f arch/arm/src/stm32/stm32f40xxx_i2c.c: Correct some recent changes to STM32F4 I2C that broke poll mode of operation. 2018-01-24 06:58:47 -06:00
Alexander Oryshchenko
a7e56359a4 arch/arm/src/stm32/stm32_spi.c: Removed unnecessary (and incorrect) speed limitation 2018-01-24 06:57:17 -06:00
Alexander Oryshchenko
dd4fc9f5c3 arch/arm/src/stm32: Make STM32 usable with an external RTC. drivers/timers/ds3231.c: Correct some debug statments. 2018-01-24 06:55:14 -06:00
Gregory Nutt
a8b6be4aaf The existence of the network driver ioctl() method should depend on CONFIG_NETDEV_IOCTL rather than CONFIG_NETDEV_PHY_IOCTL. The former enables the method, the later enables a subset of possible driver IOCTLs. This change should be basically a no-operation. The affected ioctl methods only support those subset of driver IOCTLs selected by CONFIG_NETDEV_PHY_IOCTL and the network logic will tolerate a nul ioctl method. 2018-01-22 08:17:45 -06:00
David Alessio
6ae6ecc958 Merged in david_alessio/nuttx/refactor-pll-setup (pull request #581)
Refactor pll setup

* fix typo in #def

* refactor PLL setup code...

* refactored PLL/CLK config, easier, checks for correctness

* call go_os_start if STACK_COLORIZED

* smarter config of EXTCLK output freq

* cosmetic

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-01-22 13:20:35 +00:00
Mateusz Szafoni
5af7e3de2a Merged in raiden00/nuttx (pull request #579)
Master

* stm32_hritm: add interface to get timer clock frequency

    stm32_hrtim: fix timer freq calculation

    stm32_hrtim: add compar/capture registers significant bits checking

    stm32_hrtim: minor changes

* stm32f334-disco: add buck converter and boost converter logic

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-01-21 18:28:09 +00:00
Matt Thompson
1ec8a6f34c Merged in extent3d/nuttx (pull request #575)
SAMDL: SPI must be disabled before changing the mode bits in CTRLA register

* SAMD External Interrupt Controller (EIC) support

* removed comment

* SAMDL: SPI must be disabled before changing the mode bits in CTRLA register

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-01-18 12:33:41 +00:00
Masayuki Ishikawa
0184f8818a Merged in masayuki2009/nuttx.nuttx/lc823450_fixes (pull request #576)
lc823450 fixes

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-01-18 12:32:41 +00:00
Masayuki Ishikawa
a3ed16dd30 arch/arm/src/lc823450: Change irqwarn() to ASSERT() in up_ack_irq()
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2018-01-18 14:02:24 +09:00
Masayuki Ishikawa
d43c52cf03 arch/arm/src/lc823450: Assign I2S IRQ handling to CPU0
Previous commit assumed that the caller is running on CPU0.
However, the caller sometimes runs at CPU1.  This patch will
assign the caller to CPU0 explicitly.

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2018-01-18 13:55:12 +09:00
Gregory Nutt
3ff30608ef arch/arm/src/samdl: Mostly cosmetic improvements to previous commit. 2018-01-17 11:39:43 -06:00
Gregory Nutt
2d95fa6d2a arch/arm/src/samdl: Correct a link time error if CONFIG_SAMDL_EIC is not enabled. 2018-01-17 11:16:21 -06:00
Evgeniy Bobkov
7d36a81806 Fixes two bugs in multi-block SD-card operations on the STM32F7 platform. arch/arm/src/stm32f7: DBLOCKSIZE must be the size of SD-card block, not the total amount of transferred bytes. drivers/mmcsd: respect SDIO_CAPS_DMABEFOREWRITE on CMD25. 2018-01-16 12:41:02 -06:00
Mateusz Szafoni
fd5d811b0a Merged in raiden00/nuttx (pull request #569)
Master

* stm32f33xxx_hrtim.h: fix some definitions

* stm32_hrtim: fix some bugs

    stm32_hrtim: fix deadtime configuration

    stm32_hrtim: add interface to change outputs SET/RST configuration

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-01-14 19:00:18 +00:00
Gregory Nutt
8f94ce46f9 arch/arm/src/lpc54xx: The basic SPI driver is code complete but still untested. This driver is 'basic' in that in only supports polled mode operations. 2018-01-14 12:09:26 -06:00
Gregory Nutt
134bac3810 arch/arm/src/lpc54xx: Add configuration logic to the empty SPI driver. Still missing all data tranfer logic. 2018-01-13 15:38:55 -06:00
Matt Thompson
48355b32dc Merged in extent3d/nuttx (pull request #568)
SAMD External Interrupt Controller (EIC) support

* SAMD External Interrupt Controller (EIC) support

* removed comment

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-01-12 13:11:58 +00:00
Matt Thompson
f5cac7c45a SAMDL fix g_spi2ops and g_spi2dev using incorrect values 2018-01-11 13:00:08 -08:00
Matt Thompson
537c9a27d1 arch/arm/src/samdl: In sam_spibus_initialize(), the pinmux configuration was smashing the previous CTRLA register configuration. There are also some typos in samd_spi.h 2018-01-11 07:34:56 -06:00
Masayuki Ishikawa
7460773d7b arch/arm/src/lc823450: Introduce DVFS
This version only supports manual mode and Vdd1 is fixed to 1.2V.

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2018-01-10 16:13:00 +09:00
raiden00pl
01dc86da3d stm32/chip.h: minor fixes for STM32F334 2018-01-03 19:07:51 +01:00
Gregory Nutt
e7db11fc55 arch/arm/src/lpc54xx: LPC54xx Ethernet driver no long depends on EXPERIMENTAL. 2018-01-02 11:17:25 -06:00