Commit Graph

11023 Commits

Author SHA1 Message Date
Gregory Nutt
ec498d2660 This commit brings in an inital port of the SPIFFS flash file system into NuttX. The file system is still untested at this point (and subject to some additional review). It is, however, marked EXPERIMENTAL should this should not cause a problem for anyone.
Squashed commit of the following:

    fs/spiffs:  Fix last compilation issue.  Now compiles without error.  It is still not quite ready for testing as there is additional code review that must be be performed.  It is now marked as EXPERIMENTAL so that it can be brought onto the master branch with little risk.

    fs/spiffs:  Remove some dead code.

    fs/spiffs:  Weak start of analysis of spiffs_nucleus.c.  Renamed to spiffs_core.c

    fs/spiffs:  Rename spiffs_nucleus.c to spiffs_core.c

    fs/spiffs:  Remove spiffs_config.h.  All configuration settings are now available in the SPIFFS Kconfig options.

    fs/spiffs:  Finished review, update, and repartitioning of spiffs_check.c.  Added spiffs_check.h.

    fs/spiffs:  Finished review, update, and repartitioning of spiffs_cache.c.  Added spiffs_cache.h.

    fs/spiffs:  Clean up some defines used in debug output statements.

    fs/spiffs:  Finished review, update, and repartitioning of spiffs_gc.c.  Added spiffs_gc.h.

    fs/spiffs:  Now that VFS interface is completed, I have begun the long march of repartitioning the remaining functionality, reviewing logic, identifying dead code, and cleaning up loose ends.

    fs/spiffs:  Initial integration of MTD interface, replacing the SPIFFS native flash interface.  Lots of open issues such as the use of pages vs. blocks vs. erase blocks and units of addresses, offsets, and lengths that are passed in function calls.  Remove SPIFFS_USE_MAGIC support.  That option (which default to OFF anyway), wrote a magic value at the beginning of every sector and support verifiable identification of the file system.  It was not being and used and removing it makes life simpler.

    fs/spiffs:  Remove semaphore lock on the file object structure.  Ultimately, the file access must modify the volume and access the volume structue which also has a exclusivity lock.  So use of the volume lock alone should be sufficient.

    Integrated the SPIFFS rename logic into the NuttX VFS.  Removed non-standard application calls or convert them to IOCTL commands.  These were converted to IOCTL commands:  (1) integrity check, (2) garbage collection, and (3) format flash.  These were removed:  (1) Integrity check callback.  These provided a lot of good information about the state of the file system, but such callbacks are not compatible with a POSIX compliant file system.  (2) Index maps.  The index maps were a performance improvement feature.  The user could provide the memory and request that a region of a a file use that memory for improved lookup performance when accessing parts of the file.  The fallback is the less performance lookup by traversing the FLASH memory.  (3) Removed the quick garbage collection interface (the code is still used internally).  Only the full garbage collection is available to the user application via IOCTL.

    configs/sim/spiffs:  A simulator configuration to use for testing SPIFFS.

    fs/spiffs:  Integrate SPIFFS logic into NuttX VFS bind() and unbind() methods.

    fs/mount/fs_mount.c:  Add SPIFFS to the list of drivers that require MTD vs block drivers.

    fs/spiffs:  Trivial changes, mostly from analysis of how to integrate the rename() VFS method.

    fs/spiffs:  Connect NuttX VFS unlink method to the SPIFFS_remove() function.  Lots of name-changing.

    fs/spiffs:  Remove non-standard errno support.  Remove bogus SPIFFS_LOCK() and SPIFFS_UNLOCK() macros.

    fs/spiffs:  Add NuttX VFS implementation for statfs() method.  Clean up some of the accumulating compilation problems.

    fs/spiffs:  Add stat(), truncate() methods.  Dummy out unsupport mkdir() and rmdir() methods.

    fs/spiffs:  Replace some of the custom error numbers with standard error numbers.

    fs/spiffs:  Hooks read(), write(), fstat(), ioctl(), opendir(), closedir(), rewindif(), and readdir() into the NuttX VFS.

    fs/spiffs:  Beginning the organization to work with the NuttX VFS.  Lots of things are get broken!

    fs/spiffs:  Add spiffs.c which will be the interface between SPIFFS and NuttX.  No very close at present, however.

    fs/spiffs:  Clean up some compile problems introduced by coding standard changes.

    fs/spiffs:  A little closer to NuttX coding standard.

    fs/spiffs:  Ran tools/indent.sh against all files.  Closer to NuttX coding standard, but needs a lot more effort to be fully compliant.

    fs/spiffs:  This commit brings in version 0.3.7 of Peter Anderson's SPIFFS.  The initial commit includes the core FS files (with some definitions destributed to their correct header files) and hooks into the build system.
2018-09-24 18:05:09 -06:00
Gregory Nutt
1802145604 Trivial fixes to spelling errors. 2018-09-20 06:53:13 -06:00
Gregory Nutt
ba04f6d4cb Revert "configs/mikroe-stm32f4/fulldemo: Remove CONFIG_NXWM_TOUCHSCREEN_CONFIGDATA from configuration"
This reverts commit fb5152a40a.
2018-09-16 10:26:36 -06:00
Gregory Nutt
fb5152a40a configs/mikroe-stm32f4/fulldemo: Remove CONFIG_NXWM_TOUCHSCREEN_CONFIGDATA from configuration 2018-09-16 10:21:25 -06:00
raiden00pl
af8a002a10 Merged in raiden00/nuttx_h7 (pull request #720)
I2C support for STM32H7

* stm32h7/chip.h: update peripherals

* stm32h7x3xx_rcc.h: update definitions

* stm32h7x3xx_rcc.c: remove some unused code and configure I2C clocks

* stm32h7: add lower half I2C driver (based on F7 I2C driver)

* configs/nucleo-h743zi: add LSM303AGR and LSM6DSL configuration

* Remove whitespace

* sensors/lsm303agr.c, sensors/lsm6dsl.c: add mising include, remove whitespace

Approved-by: GregoryN <gnutt@nuttx.org>
2018-09-16 15:58:25 +00:00
Gregory Nutt
2a325135f5 configs/*/README.txt: Remove obsoleted references to installing NxWidgets. 2018-09-16 09:39:20 -06:00
Freemans Goden
b3d0574c98 configs/b-l475e-iot01a/include/b-l475e-iot01a_clock.h: Correct timer source clock frequencies. 2018-09-16 05:50:35 -06:00
Gregory Nutt
3a4984a40b Rename file_close_detached() to juse file_close() for better consistency in naming. 2018-09-15 13:04:56 -06:00
Gregory Nutt
b48f46f1c8 Correct some errors found in build testing using recent commits. 2018-09-15 12:47:54 -06:00
Gregory Nutt
53b7b41f90 configs/stm32l4r9ai-disco/src/stm32_adc.c: Replace calls to ioctl() in the OS to file_ioctl() 2018-09-15 12:26:31 -06:00
Gregory Nutt
a83b6d990b Replace callse to ioctl() in the OS to file_ioctl() 2018-09-15 11:47:24 -06:00
Gregory Nutt
a7fd58c4db Squashed commit of the following:
many locations:  Change occurences of open() followed by file_detach() to file_open().  Change most non-controversion calls to open() to nx_open().

    fs/inode/fs_fileopen.c:  Flesh out file_open() with some interim, placeholder logic.

    fs/inode/fs_fileopen.c:  Add a framework for a file_open() implementation (no real logic in place yet).

    fs/vfs/fs_open.c:  Add nx_open() which is the same as open() except that it does not create a cancellation point nor does it modify the errno variable.
2018-09-15 10:49:41 -06:00
Gregory Nutt
9546481054 Fix some typographical errors. 2018-09-14 06:55:45 -06:00
Xiang Xiao
c24fdb3ada configs: Fix build error caused by commit 459d9f2851 2018-09-11 07:24:29 -06:00
Gregory Nutt
39df7ed0c0 mm/iob and sched/semaphore: Work around some issues with the IOB throttle semaphore. It has some odd behaviors that can cause assertions in sem_post(). Also, it seems to get outside of its range occasionally. Need to REVISIT this. 2018-09-10 11:32:09 -06:00
Jakob Haufe
fe4790ec18 Merged in sur5r/nuttx-nuttx/lpc43_eth_pins (pull request #717)
arch/arm/src/lpc43xx: Fix ethernet TX_EN pin definitions

TX_EN on LPC43xx can be routed via P0.1 and PC.4 in both
MII and RMII mode.

Before, P0.1 was hardcoded for MII and PC.4 was hardcoded for RMII.

Also, the definitions used inconsistent naming (TXEN vs. TX_EN).

Approved-by: GregoryN <gnutt@nuttx.org>
2018-09-10 11:56:52 +00:00
Gregory Nutt
891b2646da configs/: apps/netutils/ping has been removed. Ping support is now provided by apps/system/ping. Remove references to -CONFIG_NETUTILS_PING or change them to CONFIG_SYSTEM_PING with CONFIG_NET_ICMP_SOCKET=y 2018-09-05 14:56:09 -06:00
Gregory Nutt
33e3fb7a70 Correct mispellings of pseudo. Update some comments in signal.h. 2018-09-05 11:56:14 -06:00
Gregory Nutt
e88759e53d Update a README. 2018-09-04 16:48:34 -06:00
Gregory Nutt
b7726df9f7 tools/Makefile.unix: Was not cleaning up export directory if it was left from a failed export. configs/sama5d4-ek/README.txt: Update. 2018-09-04 13:19:17 -06:00
Goden Freemans
b7bec7f064 configs/b-l475e-iot01a/src: Add timer driver support. 2018-09-04 07:13:03 -06:00
Gregory Nutt
820a6c4e39 configs/b-l475e-iot01a/src: Fix copy paste errors in names: stm32_bringup->stm32l4_bringup. Noted by Freemans Goden. 2018-09-04 06:54:58 -06:00
Gregory Nutt
152ccbd447 configs/olimex-stm32-p407/dhtxx: Fix defconfig file. It was based on an older, incompatible version of NuttX. 2018-09-03 09:42:04 -06:00
Gregory Nutt
a6f9c6215d Update some comments 2018-09-02 12:34:45 -06:00
Gregory Nutt
ff1e6a66e9 configs/metro-m4: Fix problem with SysTick timer running too fast. This turned out to be a dumb typo in board.h that was providing the wrong CPU frequency to the SysTick setup logic. 2018-09-02 07:31:16 -06:00
Gregory Nutt
9f6383e5fd configs/metro-m4: Verify the CMCC and enable it by default in the NSH configuration. 2018-09-01 17:03:31 -06:00
Gregory Nutt
f66869b793 configs/metro-m4: Update the NSH configuration. 2018-09-01 15:58:24 -06:00
Gregory Nutt
aee1c39eab configs/metro-m4: Fix RxD interrupt pin selection. The number SERCOM interrupts do not refer to PAD numbers, but to bit positions in the INFLAG register (very tiny footnote in the data sheet). With with final fix, the basic NSH configuration appears fully functional. 2018-09-01 15:29:22 -06:00
Gregory Nutt
6ada0e10ba configs/metro-m4: Fix RxD PAD selection. Add a configuration option to use OSCULP32K instead of XOSC32K. 2018-09-01 14:38:19 -06:00
Gregory Nutt
1e4272a046 arch/arm/src/samd5e5: Correct some bad addresses in the memory map. 2018-09-01 11:15:16 -06:00
Gregory Nutt
d88415083f Update a README. 2018-09-01 09:47:15 -06:00
Gregory Nutt
cecff14e34 Cosmetic updates to some comments 2018-09-01 07:50:10 -06:00
Ouss4
93c23a2c03 configs/olimex-stm32-p407: Add board support for the DHTxx sensor. 2018-09-01 07:36:01 -06:00
Gregory Nutt
438f6a866b arch/arm/src/samd5e5/: Some failed attempts to get the USART SERCOM initialized. Still worthy changes although they do not solve the problem. 2018-08-31 16:18:10 -06:00
Gregory Nutt
25dce66483 arch/arm/src/samd5e5/: Combine some duplicated GCLK configuration logic 2018-08-31 13:34:34 -06:00
Gregory Nutt
ff906b0bef arch/arm/src/samd5e5: Updates to clock configuration from initial testing. With these changes the boot up gets through clock configuration but hangs in the low-level USART configuration before completing the boot. 2018-08-31 09:58:53 -06:00
Gregory Nutt
345d088661 arch/arm/src/samd5e5: Updates to clock configuration from initial testing. Still does not boot correctly. 2018-08-31 07:38:52 -06:00
Gregory Nutt
ccab18f4b0 configs/metro-m4/nsh/defconfig: Correct RAM size 2018-08-28 17:52:19 -06:00
ligd
289af9a0fb configs/boardctl.c: Add support for board_app_finalinitialize() 2018-08-28 15:34:31 -06:00
anchao
5f28be71e5 Kconfig: Move 'option modules' from NSH_FILE_APPS to BUILD_LOADABLE 2018-08-27 07:06:57 -06:00
Xiang Xiao
46e47c8dcf Squashed commit of the following:
drivers/serial/uart_16550.c:  Add a configuration, analogous to the STM32 configuration option, to suppress the NuttX standard re-ordering for /dev/ttySN for special case of the 16550 UART.

    config/serial: UART 16550: Add CONFIG_SERIAL_UART_ARCH_MMIO option so the a memory mapped device doesn't need to provide uart_getreg() and uart_putreg() implementations.

    u16550_txempty() should check UART_LSR_TEMT to avoid some data left in the transmit FIFO
2018-08-26 11:17:33 -06:00
Gregory Nutt
4ca538c4c7 Eliminate a warning found in build testing. 2018-08-25 15:02:21 -06:00
xuanlin
7e63b0b288 sched/wqueue, libs/libc/wqueue, configs: Remove work queue polling delay to simplify the code logic and save the power. 2018-08-25 14:58:07 -06:00
DisruptiveNL
cd2ced4d9a drivers/sensors and configs/nucleo-l476g: Add support for LSM303AGR and LSM6DSL sensors 2018-08-25 08:19:31 -06:00
Xiang Xiao
e1202d2ed3 Replace all ASSERT with DEBUGASSERT to save the code space 2018-08-24 06:58:30 -06:00
Gregory Nutt
e90f0403a6 binfmt/: Mostly cosmetic changes from review of a previous commit. 2018-08-24 06:10:50 -06:00
anchao
95163b2c59 Squashed commit of the following:
Author: Xiang Xiao <xiaoxiang@xiaomi.com>

     arch/arm/src/armv7-m:  Implement SYSTICK timer driver

   Author: anchao <anchao@pinecone.net>

     configs/sim/loadable:  Add loadable demo for arch sim
     sched/init: Restore previously reverted option to mount block device for INIT_FILEPATH case
     configs/stm3240g-eval/knxwm: Fix build breakage.

   Author: Gregory Nutt <gnutt@nuttx.org>
     configs:  With recent changes to apps/ all configurations that build applications as modules must now also select CONFIG_APPS_LOADABLE.

   Author: anchao <anchao@pinecone.net>
      configs/sim/loadable:  Add loadable demo for arch sim
       Kconfig and tools/Makefile.unix and : add dynamic application loadable support
2018-08-23 11:08:22 -06:00
Xiang Xiao
377eb30129 binfmt: Add binfmt_initialize(). All binary formats are now registered centrally vs. in board-specific logic. This simplifies the usage of the binfmt subsystem. 2018-08-23 09:09:39 -06:00
Xiang Xiao
a465b6f0d4 configs/: Change CONFIG_BOARD_RESET_ON_CRASH to CONFIG_BOARD_RESET_ON_ASSERT, arch/: Implement call to board_reset() if in all implementations of up_assert() when CONFIG_BOARD_RESET_ON_ASSERT=y. 2018-08-22 17:04:39 -06:00
Gregory Nutt
d4e2c7a8f1 Revert "configs/sim/loadable: Add loadable demo for arch sim"
This reverts commit 2295a3c4d8.
2018-08-22 12:26:48 -06:00