Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
c374969
Update FatFS to use R0.16
networkfusion Apr 3, 2026
d581d10
Update git-pull-repos.sh
networkfusion Apr 3, 2026
eb0f6de
Update git-pull-repos.sh
networkfusion Apr 3, 2026
05c972e
Update orgpal3 ffconfig
networkfusion Apr 3, 2026
bcbaa60
ffconf fixes for PAL_X and F769I disco
networkfusion Apr 3, 2026
dab804b
Code style fixes for nanoframework/nf-interpreter PR#3281 (#3283)
nfbot Apr 3, 2026
24074d9
ffconf for orgpal3 threadx
networkfusion Apr 3, 2026
9151e34
Merge branch 'update-fatfs-r16' of https://github.com/nanoframework/n…
networkfusion Apr 3, 2026
fdc77d8
Code style fixes for nanoframework/nf-interpreter PR#3281 (#3284)
nfbot Apr 3, 2026
e9900e2
ffconf for freertos NXP
networkfusion Apr 3, 2026
c996973
Test switch to python image
networkfusion Apr 3, 2026
2c6e938
Code style fixes for nanoframework/nf-interpreter PR#3281 (#3285)
nfbot Apr 3, 2026
2287c61
Update Dockerfile.ChibiOS.SRC
networkfusion Apr 3, 2026
c9c74e7
Merge branch 'update-fatfs-r16' of https://github.com/nanoframework/n…
networkfusion Apr 3, 2026
193f335
Test kconfig for chibios devcontainer
networkfusion Apr 3, 2026
65b1960
retry
networkfusion Apr 3, 2026
781361e
Update Dockerfile.ChibiOS.SRC
networkfusion Apr 3, 2026
d0c5f78
Use python:3.11.20-slim AS devcontainer
networkfusion Apr 3, 2026
be6835d
remove slim
networkfusion Apr 3, 2026
e502a0c
forgot one!
networkfusion Apr 3, 2026
1fcc0fc
revert to python:3.11
networkfusion Apr 3, 2026
73daf09
Workaround for kconfiglib install
networkfusion Apr 3, 2026
e3f3e20
Ensure similar commands across containers.
networkfusion Apr 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions .devcontainer/All/Dockerfile.All.SRC
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ RUN git clone --branch v6.5.0.202601_rel --recursive https://github.com/eclipse-
&& git clone --branch v6.5.0.202601_rel --recursive https://github.com/eclipse-threadx/netxduo.git --depth 1 ./sources/NetxDuo

# Clone dependent repos (mbedtls, fatfs and littlefs)
RUN git clone --branch R0.15a https://github.com/abbrev/fatfs.git --depth 1 ./sources/fatfs \
RUN git clone --branch R0.16 https://github.com/abbrev/fatfs.git --depth 1 ./sources/fatfs \
&& git clone --branch v2.11.2 https://github.com/littlefs-project/littlefs --depth 1 ./sources/littlefs \
&& git clone --branch mbedtls-3.6.5 https://github.com/ARMmbed/mbedtls.git --depth 1 ./sources/mbedtls \
&& cd ./sources/mbedtls \
Expand Down Expand Up @@ -147,8 +147,11 @@ RUN mkdir -p $HEX2DFU_PATH \
&& chmod +x $HEX2DFU_PATH/hex2dfu

# Creating static link python for pyhton3
RUN ln -fs /usr/bin/python3 /usr/bin/python \
&& pip3 install pyserial
RUN ln -fs /usr/bin/python3 /usr/bin/python

# Installing python dependencies for the container
RUN pip3 install pyserial \
&& pip3 install --quiet "kconfiglib>=14.1.0"

# Install ESP-IDF
ENV IDF_PATH=/sources/esp-idf
Expand Down
3 changes: 2 additions & 1 deletion .devcontainer/All/scripts/git-pull-repos.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ git fetch --depth=1 origin tag mbedtls-3.6.5
git checkout tags/mbedtls-3.6.5
git submodule update --init
cd /sources/fatfs
git pull origin R0.15a
git fetch --depth=1 origin tag R0.16
git checkout tags/R0.16
cd /sources/FreeRTOS
git pull origin V10.4.1-kernel-only
cd /sources/CMSIS_5
Expand Down
11 changes: 9 additions & 2 deletions .devcontainer/ChibiOS/Dockerfile.ChibiOS.SRC
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ RUN wget $CMAKE_SCRIPT \
&& /tmp/dc-downloads/cmake-install.sh --skip-license --prefix=/tmp/dc-extracted/cmake \
&& rm /tmp/dc-downloads/cmake-install.sh

FROM ubuntu:latest AS devcontainer
FROM python:3.11 AS devcontainer

# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
Expand Down Expand Up @@ -65,7 +65,7 @@ RUN git clone --branch nf-build https://github.com/nanoframework/STM32CubeL4.git
&& git clone --branch chibios-21.11.x https://github.com/ChibiOS/ChibiOS-Contrib.git --depth 1 ./sources/ChibiOs-Contrib

# Clone dependent repos (mbedtls, fatfs and littlefs etc.)
RUN git clone --branch R0.15a https://github.com/abbrev/fatfs.git --depth 1 ./sources/fatfs \
RUN git clone --branch R0.16 https://github.com/abbrev/fatfs.git --depth 1 ./sources/fatfs \
&& git clone --branch v2.11.2 https://github.com/littlefs-project/littlefs --depth 1 ./sources/littlefs \
&& git clone --branch STABLE-2_1_3_RELEASE https://github.com/lwip-tcpip/lwip.git --depth 1 ./sources/lwip \
&& git clone --branch mbedtls-3.6.5 https://github.com/ARMmbed/mbedtls.git --depth 1 ./sources/mbedtls \
Expand All @@ -90,6 +90,13 @@ RUN mkdir -p $HEX2DFU_PATH \
&& curl -o $HEX2DFU_PATH/hex2dfu $HEX2DFU -L \
&& chmod +x $HEX2DFU_PATH/hex2dfu

# Creating static link python for pyhton3
RUN ln -fs /usr/bin/python3 /usr/bin/python

# Installing python dependencies for the container
RUN pip3 install pyserial \
&& pip3 install --quiet "kconfiglib>=14.1.0"

# Clean up downloaded files
RUN apt-get autoremove -y \
&& apt-get clean -y \
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/ESP32/Dockerfile.ESP32.SRC
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ RUN apt-get update \
RUN mkdir -p /usr/local/bin/gcc

# Clone fatfs
RUN git clone --branch R0.15a https://github.com/abbrev/fatfs.git --depth 1 ./sources/fatfs
RUN git clone --branch R0.16 https://github.com/abbrev/fatfs.git --depth 1 ./sources/fatfs

# Clone ESP-IDF
# >>> IDF MIGRATION: update the branch tag to the new IDF version <<<
Expand Down
11 changes: 7 additions & 4 deletions .devcontainer/FreeRTOS-NXP/Dockerfile.FreeRTOS-NXP.SRC
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ RUN wget $CMAKE_SCRIPT \
&& /tmp/dc-downloads/cmake-install.sh --skip-license --prefix=/tmp/dc-extracted/cmake \
&& rm /tmp/dc-downloads/cmake-install.sh

FROM python:3.10 AS devcontainer
FROM python:3.11 AS devcontainer

# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
Expand Down Expand Up @@ -55,7 +55,7 @@ RUN apt-get update \
RUN mkdir -p /usr/local/bin/gcc

# Clone libs mbedtls and fatfs etc.
RUN git clone --branch R0.15a https://github.com/abbrev/fatfs.git --depth 1 ./sources/fatfs \
RUN git clone --branch R0.16 https://github.com/abbrev/fatfs.git --depth 1 ./sources/fatfs \
&& git clone --branch STABLE-2_1_3_RELEASE https://github.com/lwip-tcpip/lwip.git --depth 1 ./sources/lwip \
&& git clone --branch mbedtls-3.6.5 https://github.com/ARMmbed/mbedtls.git --depth 1 ./sources/mbedtls \
&& cd ./sources/mbedtls \
Expand All @@ -76,8 +76,11 @@ COPY --from=downloader /tmp/dc-extracted/cmake /usr/bin/cmake
ENV PATH=/usr/bin/cmake/bin:${PATH}

# Creating static link python for pyhton3
RUN ln -fs /usr/bin/python3 /usr/bin/python \
&& pip3 install pyserial
RUN ln -fs /usr/bin/python3 /usr/bin/python

# Installing python dependencies for the container
RUN pip3 install pyserial \
&& pip3 install --quiet "kconfiglib>=14.1.0"

# Clean up downloaded files
RUN apt-get autoremove -y \
Expand Down
9 changes: 8 additions & 1 deletion .devcontainer/TI/Dockerfile.TI.SRC
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ RUN mkdir -p /tmp/dc-extracted/titools \
&& curl -o /tmp/dc-downloads/titools.zip $TI_TOOL_URL -L \
&& unzip -d /tmp/dc-extracted/titools /tmp/dc-downloads/titools.zip

FROM ubuntu:latest AS devcontainer
FROM python:3.11 AS devcontainer

# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
Expand Down Expand Up @@ -76,6 +76,13 @@ COPY --from=downloader /tmp/dc-extracted/cmake /usr/bin/cmake

ENV PATH=/usr/bin/cmake/bin:${PATH}

# Creating static link python for pyhton3
RUN ln -fs /usr/bin/python3 /usr/bin/python

# Installing python dependencies for the container
RUN pip3 install pyserial \
&& pip3 install --quiet "kconfiglib>=14.1.0"

# Clean up downloaded files
RUN apt-get autoremove -y \
&& apt-get clean -y \
Expand Down
11 changes: 9 additions & 2 deletions .devcontainer/ThreadX/Dockerfile.ThreadX.SRC
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ RUN wget $CMAKE_SCRIPT \
&& /tmp/dc-downloads/cmake-install.sh --skip-license --prefix=/tmp/dc-extracted/cmake \
&& rm /tmp/dc-downloads/cmake-install.sh

FROM ubuntu:latest AS devcontainer
FROM python:3.11 AS devcontainer

# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
Expand Down Expand Up @@ -67,7 +67,7 @@ RUN git clone --branch v6.5.0.202601_rel --recursive https://github.com/eclipse-
&& git clone --branch v6.5.0.202601_rel --recursive https://github.com/eclipse-threadx/netxduo.git --depth 1 ./sources/NetxDuo

# Clone dependent repos (mbedtls, fatfs and littlefs)
RUN git clone --branch R0.15a https://github.com/abbrev/fatfs.git --depth 1 ./sources/fatfs \
RUN git clone --branch R0.16 https://github.com/abbrev/fatfs.git --depth 1 ./sources/fatfs \
&& git clone --branch v2.11.2 https://github.com/littlefs-project/littlefs --depth 1 ./sources/littlefs \
&& git clone --branch mbedtls-3.6.5 https://github.com/ARMmbed/mbedtls.git --depth 1 ./sources/mbedtls \
&& cd ./sources/mbedtls \
Expand All @@ -91,6 +91,13 @@ RUN mkdir -p $HEX2DFU_PATH \
&& curl -o $HEX2DFU_PATH/hex2dfu $HEX2DFU -L \
&& chmod +x $HEX2DFU_PATH/hex2dfu

# Creating static link python for pyhton3
RUN ln -fs /usr/bin/python3 /usr/bin/python

# Installing python dependencies for the container
RUN pip3 install pyserial \
&& pip3 install --quiet "kconfiglib>=14.1.0"

# Clean up downloaded files
RUN apt-get autoremove -y \
&& apt-get clean -y \
Expand Down
2 changes: 1 addition & 1 deletion targets/ChibiOS/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ if(NF_FEATURE_HAS_SDCARD OR NF_FEATURE_HAS_USB_MSD)
if(FATFS_VERSION_EMPTY)
# no FatFS version actualy specified, must be empty which is fine, we'll default to a known good version
# WHEN CHANGING THIS MAKE SURE TO UPDATE THE DEV CONTAINERS
set(FATFS_VERSION_TAG "R0.15a")
set(FATFS_VERSION_TAG "R0.16")
else()
# set version
set(FATFS_VERSION_TAG ${FATFS_VERSION})
Expand Down
84 changes: 49 additions & 35 deletions targets/ChibiOS/ORGPAL_PALTHREE/ffconf.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
/ Configurations of FatFs Module
/---------------------------------------------------------------------------*/

#define FFCONF_DEF 5380 /* Revision ID */
#define FFCONF_DEF 80386 /* Revision ID */

/*---------------------------------------------------------------------------/
/ Function Configurations
Expand All @@ -35,30 +35,30 @@
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */

#define FF_USE_MKFS 0
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
/* This option switches f_mkfs(). (0:Disable or 1:Enable) */

#define FF_USE_FASTSEEK 0
/* This option switches fast seek function. (0:Disable or 1:Enable) */
/* This option switches fast seek feature. (0:Disable or 1:Enable) */

#define FF_USE_EXPAND 0
/* This option switches f_expand function. (0:Disable or 1:Enable) */
/* This option switches f_expand(). (0:Disable or 1:Enable) */

#define FF_USE_CHMOD 1
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
/* This option switches attribute control API functions, f_chmod() and f_utime().
/ (0:Disable or 1:Enable) Also FF_FS_READONLY needs to be 0 to enable this option. */

#define FF_USE_LABEL 1
/* This option switches volume label functions, f_getlabel() and f_setlabel().
/* This option switches volume label API functions, f_getlabel() and f_setlabel().
/ (0:Disable or 1:Enable) */

#define FF_USE_FORWARD 0
/* This option switches f_forward() function. (0:Disable or 1:Enable) */
/* This option switches f_forward(). (0:Disable or 1:Enable) */

#define FF_USE_STRFUNC 1
#define FF_PRINT_LLI 0
#define FF_PRINT_FLOAT 0
#define FF_STRF_ENCODE 0
/* FF_USE_STRFUNC switches string functions, f_gets(), f_putc(), f_puts() and
/* FF_USE_STRFUNC switches string API functions, f_gets(), f_putc(), f_puts() and
/ f_printf().
/
/ 0: Disable. FF_PRINT_LLI, FF_PRINT_FLOAT and FF_STRF_ENCODE have no effect.
Expand All @@ -67,7 +67,7 @@
/
/ FF_PRINT_LLI = 1 makes f_printf() support long long argument and FF_PRINT_FLOAT = 1/2
/ makes f_printf() support floating point argument. These features want C99 or later.
/ When FF_LFN_UNICODE >= 1 with LFN enabled, string functions convert the character
/ When FF_LFN_UNICODE >= 1 with LFN enabled, string API functions convert the character
/ encoding in it. FF_STRF_ENCODE selects assumption of character encoding ON THE FILE
/ to be read/written via those functions.
/
Expand Down Expand Up @@ -114,15 +114,15 @@
/* The FF_USE_LFN switches the support for LFN (long file name).
/
/ 0: Disable LFN. FF_MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
/ To enable the LFN, ffunicode.c needs to be added to the project. The LFN function
/ To enable the LFN, ffunicode.c needs to be added to the project. The LFN feature
/ requiers certain internal working buffer occupies (FF_MAX_LFN + 1) * 2 bytes and
/ additional (FF_MAX_LFN + 44) / 15 * 32 bytes when exFAT is enabled.
/ The FF_MAX_LFN defines size of the working buffer in UTF-16 code unit and it can
/ be in range of 12 to 255. It is recommended to be set it 255 to fully support LFN
/ be in range of 12 to 255. It is recommended to be set 255 to fully support the LFN
/ specification.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
Expand All @@ -147,11 +147,21 @@
/ on character encoding. When LFN is not enabled, these options have no effect. */

#define FF_FS_RPATH 2
/* This option configures support for relative path.
/* This option configures support for relative path feature.
/
/ 0: Disable relative path and remove related functions.
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
/ 0: Disable relative path and remove related API functions.
/ 1: Enable relative path and dot names. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() is available in addition to 1.
*/

#define FF_PATH_DEPTH 10
/* This option defines maximum depth of directory in the exFAT volume. It is NOT
/ relevant to FAT/FAT32 volume.
/ For example, FF_PATH_DEPTH = 3 will able to follow a path "/dir1/dir2/dir3/file"
/ but a sub-directory in the dir3 will not able to be followed and set current
/ directory.
/ The size of filesystem object (FATFS) increases FF_PATH_DEPTH * 24 bytes.
/ When FF_FS_EXFAT == 0 or FF_FS_RPATH == 0, this option has no effect.
*/

/*---------------------------------------------------------------------------/
Expand All @@ -174,7 +184,7 @@
/* FF_STR_VOLUME_ID switches support for volume ID in arbitrary strings.
/ When FF_STR_VOLUME_ID is set to 1 or 2, arbitrary strings can be used as drive
/ number in the path name. FF_VOLUME_STRS defines the volume ID strings for each
/ logical drives. Number of items must not be less than FF_VOLUMES. Valid
/ logical drive. Number of items must not be less than FF_VOLUMES. Valid
/ characters for the volume ID strings are A-Z, a-z and 0-9, however, they are
/ compared in case-insensitive. If FF_STR_VOLUME_ID >= 1 and FF_VOLUME_STRS is
/ not defined, a user defined volume string table is needed as:
Expand All @@ -195,39 +205,39 @@
/* This option switches support for multiple volumes on the physical drive.
/ By default (0), each logical drive number is bound to the same physical drive
/ number and only an FAT volume found on the physical drive will be mounted.
/ When this function is enabled (1), each logical drive number can be bound to
/ When this feature is enabled (1), each logical drive number can be bound to
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
/ function will be available. */
/ will be available. */

#define FF_MIN_SS 512
#define FF_MAX_SS 512
/* This set of options configures the range of sector size to be supported. (512,
/ 1024, 2048 or 4096) Always set both 512 for most systems, generic memory card and
/ harddisk, but a larger value may be required for on-board flash memory and some
/ type of optical media. When FF_MAX_SS is larger than FF_MIN_SS, FatFs is configured
/ for variable sector size mode and disk_ioctl() function needs to implement
/ type of optical media. When FF_MAX_SS is larger than FF_MIN_SS, FatFs is
/ configured for variable sector size mode and disk_ioctl() needs to implement
/ GET_SECTOR_SIZE command. */

#define FF_LBA64 0
/* This option switches support for 64-bit LBA. (0:Disable or 1:Enable)
/ To enable the 64-bit LBA, also exFAT needs to be enabled. (FF_FS_EXFAT == 1) */

#define FF_MIN_GPT 0x100000000
/* Minimum number of sectors to switch GPT as partitioning format in f_mkfs and
/ f_fdisk function. 0x100000000 max. This option has no effect when FF_LBA64 == 0. */
#define FF_MIN_GPT 0x10000000
/* Minimum number of sectors to switch GPT as partitioning format in f_mkfs() and
/ f_fdisk(). 2^32 sectors maximum. This option has no effect when FF_LBA64 == 0. */

#define FF_USE_TRIM 0
/* This option switches support for ATA-TRIM. (0:Disable or 1:Enable)
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
/ disk_ioctl() function. */
/ To enable this feature, also CTRL_TRIM command should be implemented to
/ the disk_ioctl(). */

/*---------------------------------------------------------------------------/
/ System Configurations
/---------------------------------------------------------------------------*/

#define FF_FS_TINY 0
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ At the tiny configuration, size of file object (FIL) is shrinked FF_MAX_SS bytes.
/ At the tiny configuration, size of file object (FIL) is reduced FF_MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the filesystem object (FATFS) is used for the file data transfer. */

Expand All @@ -244,14 +254,18 @@
/ an RTC or valid timestamp is not needed, set FF_FS_NORTC = 1 to disable the
/ timestamp feature. Every object modified by FatFs will have a fixed timestamp
/ defined by FF_NORTC_MON, FF_NORTC_MDAY and FF_NORTC_YEAR in local time.
/ To enable timestamp function (FF_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to read current time form real-time clock. FF_NORTC_MON,
/ To enable timestamp function (FF_FS_NORTC = 0), get_fattime() need to be added
/ to the project to read current time form real-time clock. FF_NORTC_MON,
/ FF_NORTC_MDAY and FF_NORTC_YEAR have no effect.
/ These options have no effect in read-only configuration (FF_FS_READONLY = 1). */

#define FF_FS_CRTIME 1
/* This option enables(1)/disables(0) the timestamp of the file created. When
/ set 1, the file created time is available in FILINFO structure. */

#define FF_FS_NOFSINFO 0
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at the first time after volume mount will force
/* If you need to know the correct free space on the FAT32 volume, set bit 0 of
/ this option, and f_getfree() on the first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
/
/ bit0=0: Use free cluster count in the FSINFO if available.
Expand All @@ -276,13 +290,13 @@
/* The option FF_FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
/ to the same volume is under control of this feature.
/ and f_fdisk(), are always not re-entrant. Only file/directory access to
/ the same volume is under control of this feature.
/
/ 0: Disable re-entrancy. FF_FS_TIMEOUT have no effect.
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
/ ff_mutex_create(), ff_mutex_delete(), ff_mutex_take() and ff_mutex_give()
/ function, must be added to the project. Samples are available in ffsystem.c.
/ ff_mutex_create(), ff_mutex_delete(), ff_mutex_take() and ff_mutex_give(),
/ must be added to the project. Samples are available in ffsystem.c.
/
/ The FF_FS_TIMEOUT defines timeout period in unit of O/S time tick. */

Expand Down
Loading
Loading