Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
7b69115
ext: fatfs-0.14b
andyp1per Feb 1, 2023
149bc88
ext: littlefs-2.4.1
andyp1per Feb 1, 2023
2412325
STM32F4xx: bit definitions for I2C_FLTR register
andyp1per Feb 2, 2023
969f04c
ports: support PORT_IRQ_ATTRIBUTES and CH_CFG_STACK_OVERFLOW_HOOK
andyp1per Feb 2, 2023
715ddc8
startup: support RAMFUNCS initialization
andyp1per Feb 2, 2023
e48526a
hal: support eicu driver
andyp1per Feb 2, 2023
c69d336
hal_i2c: support I2C_ISR_LIMIT and i2cSoftStop
andyp1per Feb 2, 2023
d2ce7a7
osal: allow osalDbgAssert to be redefined
andyp1per Feb 2, 2023
a98b5bc
ADCv2: remove hardcoded ADC DMA streams
andyp1per Feb 2, 2023
aafa5bf
ADCv4: correct ADC clocks and BDMA usage
andyp1per Feb 2, 2023
1d07611
BDMAv1: initialize streamids correctly
andyp1per Feb 2, 2023
e4d4b3d
DMAv2: initialize streamids correctly
andyp1per Feb 2, 2023
c695f01
I2Cv1: support I2C_FLTR_ANOFF, STM32_I2C_ISR_LIMIT and i2c_lld_soft_stop
andyp1per Feb 2, 2023
432d362
I2Cv2: support STM32_I2C_ISR_LIMIT and i2c_lld_soft_stop
andyp1per Feb 2, 2023
0d759fe
I2Cv3: support STM32_I2C_ISR_LIMIT and i2c_lld_soft_stop
andyp1per Feb 2, 2023
9c7cfa5
QUADSPIv2: clear tx flags
andyp1per Feb 2, 2023
132bc3e
SPIv1: reset clocks before enabling peripheral
andyp1per Feb 2, 2023
746ff82
SPIv2: reset clocks before enabling peripheral
andyp1per Feb 2, 2023
4724af8
SPIv3: reset clocks before enabling peripheral
andyp1per Feb 2, 2023
8d9c009
TIMv1: add support for EICU
andyp1per Feb 2, 2023
c5c72b9
USARTv1: support IRQ callbacks
andyp1per Feb 2, 2023
1563423
USARTv2: support IRQ callbacks
andyp1per Feb 2, 2023
12bae89
USARTv3: support IRQ callbacks
andyp1per Feb 2, 2023
f75ed8b
STM32F1xx: allow PLLs to be disabled
andyp1per Feb 2, 2023
dcb24f9
STM32F4xx: check HAL_USE_I2S for PLLI2S
andyp1per Feb 2, 2023
b05e89e
STM32F7xx: add support for TIM8 and I2C4
andyp1per Feb 2, 2023
1320a0c
STM32H7xx: correct SDMMC, PLL2 and PLL3 clock checks
andyp1per Feb 2, 2023
930843e
STM32L4xx: add support for STM32L431xx
andyp1per Feb 2, 2023
13df4c5
hal_mmc: correct MMC driver, add support for SPI hooks and read/write…
andyp1per Feb 2, 2023
428b1f1
hal_i2c: add support for i2cSoftStop
andyp1per Feb 2, 2023
8ade4b7
rt: fix compilation warnings in kernel
andyp1per Feb 2, 2023
c5d01fd
chtime: optimize time intervals for 1Mhz CH_CFG_ST_FREQUENCY
andyp1per Feb 2, 2023
03f8729
fatfs_bindings: add support for op retries
andyp1per Feb 2, 2023
3e3b281
various: conditonally remove redefined syscalls on ardupilot
andyp1per Feb 2, 2023
70c470a
OTGv1: enable USB with WFI
andyp1per Feb 2, 2023
bb83f3f
boards: add ArduPilot_H743
andyp1per Feb 2, 2023
7278a17
STM32/LLD/TIMv1: we don't always go for whole number prescalers
bugobliterator Feb 7, 2023
f392c9b
STM32H7xx: add option to enable knowledge of M4 CPU core
bugobliterator Feb 7, 2023
c9191d4
hal_sdc: always set some kind of clock in SDC driver
andyp1per Feb 2, 2023
582fd0d
wait longer before checking mmc large capacity
bugobliterator Feb 17, 2023
12494d4
hal_usb_msd: add support for USB MSD
andyp1per Feb 21, 2023
aad8529
OTGv1: increase OTG_HS FIFO memory size
andyp1per Feb 21, 2023
47bb308
SDMMCv2: add support for bouncebuffers
andyp1per Feb 2, 2023
a42685d
SDIOv1: add support for bouncebuffers
andyp1per Feb 2, 2023
f879f6e
SDMMCv1: add support for bouncebuffers
andyp1per Feb 2, 2023
9e1f723
STM32: avoid initialising top bit of AHB1 RCC on H7
tridge Mar 18, 2023
e681ec5
SPIv1/SPIv2/SPIv3: use driver model v1
andyp1per Mar 30, 2023
4253f6d
TIMv1: missing EICU ISRs
andyp1per Mar 30, 2023
75de0f2
TIMv1: enable timers when using EICU
andyp1per Apr 5, 2023
ad0a258
ADCv4: add support to select ADC12 DUAL operation mode
bugobliterator Apr 7, 2023
046f587
git-svn-id: https://svn.code.sf.net/p/chibios/code/trunk@16215 085d63…
Apr 12, 2023
b93470a
ARMCMx: flush data and memory cache after updating ram init areas
andyp1per Apr 20, 2023
fb3f520
Fixed bug #1258.
Apr 2, 2023
6ac1089
Added settings for STM32 OCTOSPIv1 and OCTOSPIv2 TCR bits SSHIFT and …
Apr 3, 2023
3ac71ae
Added settings for STM32 OCTOSPIv1 and OCTOSPIv2 TCR bits SSHIFT and …
Apr 3, 2023
897748d
Fixed bug #1259.
Apr 3, 2023
acaa683
ARMCMx: remove instram startup code
andyp1per Apr 20, 2023
18c3da2
Fixed OSPI reset handling.
Apr 9, 2023
76aa711
Revert "ARMCMx: flush data and memory cache after updating ram init a…
andyp1per Apr 25, 2023
3cf2cf2
Completed the no-reset feature for OSPI.
Apr 25, 2023
26e3904
Fixed bug #1261.
Apr 25, 2023
2696de2
git-svn-id: https://svn.code.sf.net/p/chibios/code/branches/stable_21…
Apr 9, 2023
a287e67
mmc_spi: added bus acquire hooks
tridge May 13, 2023
a3f3e01
FATFS: disable ff_memalloc function for ArduPilot
tridge Jun 3, 2023
1aabf3b
added chMtxForceReleaseS
tridge Jun 15, 2023
7fd248e
SYSTICKv1: add support for TIM1 and TIM8
andyp1per Jun 22, 2023
15d37be
lwip: update to lwip stable 2.1.3
tridge May 30, 2023
ddb16b0
lwip_bindings: don't use old Sleep api
magicrub Jul 3, 2023
d6d028a
lwip_bindings: add IPV6 functions as well
bugobliterator Feb 3, 2022
d47099f
add lwipthread.c accessors lwipGetIp(), lwipGetNetmask(), lwipGetGate…
magicrub Mar 24, 2023
7d29214
use thread_create_alloc instead of chThdCreateFromHeap
bugobliterator Mar 25, 2023
b295302
lwip_bindings: use millis32 method impelmented in ardupilot
magicrub Jul 3, 2023
e26e996
Enable LwIP Apps
magicrub Mar 26, 2023
faf7b36
use malloc and free for lwip when in ardupilot
bugobliterator Mar 29, 2023
061bf90
mac: allow macInit() to fail
tridge May 29, 2023
349ad50
mac: for ArduPilot don't do macInit() on startup
tridge May 29, 2023
7c9a38d
STM32/LLD/MACv2: add support for external mac buffers
bugobliterator Jul 15, 2023
3ef1657
lwip_bindings: fix get ip netmask and gateway to use the values from …
bugobliterator Jul 28, 2023
44c171d
Bump requests from 2.26.0 to 2.31.0 in /tools/workflows
dependabot[bot] May 23, 2023
87cfd11
build(deps): bump certifi in /tools/workflows
dependabot[bot] Mar 29, 2023
df5866d
build(deps): bump urllib3 from 1.26.6 to 1.26.18 in /tools/workflows
dependabot[bot] Oct 18, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "ext/lwip"]
path = ext/lwip
url = https://github.com/ArduPilot/lwip.git
Original file line number Diff line number Diff line change
Expand Up @@ -496,6 +496,10 @@
#define STM32_WSPI_USE_OCTOSPI2 FALSE
#define STM32_WSPI_OCTOSPI1_PRESCALER_VALUE 1
#define STM32_WSPI_OCTOSPI2_PRESCALER_VALUE 1
#define STM32_WSPI_OCTOSPI1_SSHIFT FALSE
#define STM32_WSPI_OCTOSPI2_SSHIFT FALSE
#define STM32_WSPI_OCTOSPI1_DHQC FALSE
#define STM32_WSPI_OCTOSPI2_DHQC FALSE
#define STM32_WSPI_OCTOSPI1_MDMA_CHANNEL STM32_MDMA_CHANNEL_ID_ANY
#define STM32_WSPI_OCTOSPI2_MDMA_CHANNEL STM32_MDMA_CHANNEL_ID_ANY
#define STM32_WSPI_OCTOSPI1_MDMA_PRIORITY 1
Expand Down
4 changes: 4 additions & 0 deletions demos/STM32/RT-STM32H723ZG-NUCLEO144/cfg/mcuconf.h
Original file line number Diff line number Diff line change
Expand Up @@ -496,6 +496,10 @@
#define STM32_WSPI_USE_OCTOSPI2 FALSE
#define STM32_WSPI_OCTOSPI1_PRESCALER_VALUE 1
#define STM32_WSPI_OCTOSPI2_PRESCALER_VALUE 1
#define STM32_WSPI_OCTOSPI1_SSHIFT FALSE
#define STM32_WSPI_OCTOSPI2_SSHIFT FALSE
#define STM32_WSPI_OCTOSPI1_DHQC FALSE
#define STM32_WSPI_OCTOSPI2_DHQC FALSE
#define STM32_WSPI_OCTOSPI1_MDMA_CHANNEL STM32_MDMA_CHANNEL_ID_ANY
#define STM32_WSPI_OCTOSPI2_MDMA_CHANNEL STM32_MDMA_CHANNEL_ID_ANY
#define STM32_WSPI_OCTOSPI1_MDMA_PRIORITY 1
Expand Down
4 changes: 4 additions & 0 deletions demos/STM32/RT-STM32H735IG-DISCOVERY/cfg/mcuconf.h
Original file line number Diff line number Diff line change
Expand Up @@ -496,6 +496,10 @@
#define STM32_WSPI_USE_OCTOSPI2 FALSE
#define STM32_WSPI_OCTOSPI1_PRESCALER_VALUE 1
#define STM32_WSPI_OCTOSPI2_PRESCALER_VALUE 1
#define STM32_WSPI_OCTOSPI1_SSHIFT FALSE
#define STM32_WSPI_OCTOSPI2_SSHIFT FALSE
#define STM32_WSPI_OCTOSPI1_DHQC FALSE
#define STM32_WSPI_OCTOSPI2_DHQC FALSE
#define STM32_WSPI_OCTOSPI1_MDMA_CHANNEL STM32_MDMA_CHANNEL_ID_ANY
#define STM32_WSPI_OCTOSPI2_MDMA_CHANNEL STM32_MDMA_CHANNEL_ID_ANY
#define STM32_WSPI_OCTOSPI1_MDMA_PRIORITY 1
Expand Down
4 changes: 4 additions & 0 deletions demos/STM32/RT-STM32H7A3ZI_Q-NUCLEO144/cfg/mcuconf.h
Original file line number Diff line number Diff line change
Expand Up @@ -497,6 +497,10 @@
#define STM32_WSPI_USE_OCTOSPI2 FALSE
#define STM32_WSPI_OCTOSPI1_PRESCALER_VALUE 1
#define STM32_WSPI_OCTOSPI2_PRESCALER_VALUE 1
#define STM32_WSPI_OCTOSPI1_SSHIFT FALSE
#define STM32_WSPI_OCTOSPI2_SSHIFT FALSE
#define STM32_WSPI_OCTOSPI1_DHQC FALSE
#define STM32_WSPI_OCTOSPI2_DHQC FALSE
#define STM32_WSPI_OCTOSPI1_MDMA_CHANNEL STM32_MDMA_CHANNEL_ID_ANY
#define STM32_WSPI_OCTOSPI2_MDMA_CHANNEL STM32_MDMA_CHANNEL_ID_ANY
#define STM32_WSPI_OCTOSPI1_MDMA_PRIORITY 1
Expand Down
4 changes: 4 additions & 0 deletions demos/STM32/RT-STM32L4P5ZG-NUCLEO144/cfg/mcuconf.h
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,10 @@
#define STM32_WSPI_USE_OCTOSPI2 TRUE
#define STM32_WSPI_OCTOSPI1_PRESCALER_VALUE 1
#define STM32_WSPI_OCTOSPI2_PRESCALER_VALUE 1
#define STM32_WSPI_OCTOSPI1_SSHIFT FALSE
#define STM32_WSPI_OCTOSPI2_SSHIFT FALSE
#define STM32_WSPI_OCTOSPI1_DHQC FALSE
#define STM32_WSPI_OCTOSPI2_DHQC FALSE
#define STM32_WSPI_OCTOSPI1_IRQ_PRIORITY 10
#define STM32_WSPI_OCTOSPI2_IRQ_PRIORITY 10
#define STM32_WSPI_OCTOSPI1_DMA_STREAM STM32_DMA_STREAM_ID_ANY
Expand Down
4 changes: 4 additions & 0 deletions demos/STM32/RT-STM32L4R5ZI-NUCLEO144/cfg/mcuconf.h
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,10 @@
#define STM32_WSPI_USE_OCTOSPI2 TRUE
#define STM32_WSPI_OCTOSPI1_PRESCALER_VALUE 1
#define STM32_WSPI_OCTOSPI2_PRESCALER_VALUE 1
#define STM32_WSPI_OCTOSPI1_SSHIFT FALSE
#define STM32_WSPI_OCTOSPI2_SSHIFT FALSE
#define STM32_WSPI_OCTOSPI1_DHQC FALSE
#define STM32_WSPI_OCTOSPI2_DHQC FALSE
#define STM32_WSPI_OCTOSPI1_IRQ_PRIORITY 10
#define STM32_WSPI_OCTOSPI2_IRQ_PRIORITY 10
#define STM32_WSPI_OCTOSPI1_DMA_STREAM STM32_DMA_STREAM_ID_ANY
Expand Down
4 changes: 4 additions & 0 deletions demos/STM32/RT-STM32L4R9-DISCOVERY/cfg/mcuconf.h
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,10 @@
#define STM32_WSPI_USE_OCTOSPI2 TRUE
#define STM32_WSPI_OCTOSPI1_PRESCALER_VALUE 1
#define STM32_WSPI_OCTOSPI2_PRESCALER_VALUE 1
#define STM32_WSPI_OCTOSPI1_SSHIFT FALSE
#define STM32_WSPI_OCTOSPI2_SSHIFT FALSE
#define STM32_WSPI_OCTOSPI1_DHQC FALSE
#define STM32_WSPI_OCTOSPI2_DHQC FALSE
#define STM32_WSPI_OCTOSPI1_IRQ_PRIORITY 10
#define STM32_WSPI_OCTOSPI2_IRQ_PRIORITY 10
#define STM32_WSPI_OCTOSPI1_DMA_STREAM STM32_DMA_STREAM_ID_ANY
Expand Down
24 changes: 24 additions & 0 deletions ext/fatfs/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
FatFs License

FatFs has being developped as a personal project of the author, ChaN. It is free from the code anyone else wrote at current release. Following code block shows a copy of the FatFs license document that heading the source files.

/*----------------------------------------------------------------------------/
/ FatFs - Generic FAT Filesystem Module Rx.xx /
/-----------------------------------------------------------------------------/
/
/ Copyright (C) 20xx, ChaN, all right reserved.
/
/ FatFs module is an open source software. Redistribution and use of FatFs in
/ source and binary forms, with or without modification, are permitted provided
/ that the following condition is met:
/
/ 1. Redistributions of source code must retain the above copyright notice,
/ this condition and the following disclaimer.
/
/ This software is provided by the copyright holder and contributors "AS IS"
/ and any warranties related to this software are DISCLAIMED.
/ The copyright owner or contributors be NOT LIABLE for any damages caused
/ by use of this software.
/----------------------------------------------------------------------------*/

Therefore FatFs license is one of the BSD-style licenses, but there is a significant feature. FatFs is mainly intended for embedded systems. In order to extend the usability for commercial products, the redistributions of FatFs in binary form, such as embedded code, binary library and any forms without source code, do not need to include about FatFs in the documentations. This is equivalent to the 1-clause BSD license. Of course FatFs is compatible with the most of open source software licenses include GNU GPL. When you redistribute the FatFs source code with changes or create a fork, the license can also be changed to GNU GPL, BSD-style license or any open source software license that not conflict with FatFs license.
149 changes: 149 additions & 0 deletions ext/fatfs/documents/00index_e.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="cache-control" content="no-cache">
<meta name="description" content="Open source FAT filesystem for embedded projects">
<link rel="start" title="Site Top" href="../../">
<link rel="up" title="Freewares" href="../../fsw_e.html">
<link rel="stylesheet" href="css_e.css" type="text/css" media="screen" title="ELM Default">
<title>FatFs - Generic FAT Filesystem Module</title>
</head>

<body>
<h1>FatFs - Generic FAT Filesystem Module</h1>
<hr>

<div class="abst">
<img src="res/layers.png" class="rset" width="245" height="255" alt="layer">
<p>FatFs is a generic FAT/exFAT filesystem module for small embedded systems. The FatFs module is written in compliance with ANSI C (C89) and completely separated from the disk I/O layer. Therefore it is independent of the platform. It can be incorporated into small microcontrollers with limited resource, such as 8051, PIC, AVR, ARM, Z80, RX and etc. Also Petit FatFs module for tiny microcontrollers is available <a href="http://elm-chan.org/fsw/ff/00index_p.html">here</a>.</p>

<h4>Features</h4>
<ul>
<li>DOS/Windows Compatible FAT/exFAT Filesystem.</li>
<li>Platform Independent. <a href="doc/appnote.html#port">Easy to port</a>.</li>
<li>Very Small <a href="doc/appnote.html#memory">Footprint</a> for Program Code and Work Area.</li>
<li>Various <a href="doc/config.html">Configuration Options</a> to Support for:
<ul>
<li>Long File Name in ANSI/OEM or Unicode.</li>
<li>exFAT Filesystem, 64-bit LBA and GPT for Huge Storages.</li>
<li>Thread Safe for RTOS.</li>
<li>Multiple Volumes. (Physical Drives and Partitions)</li>
<li>Variable Sector Size.</li>
<li>Multiple Code Pages Including DBCS.</li>
<li>Read-only, Optional APIs, I/O Buffer and etc...</li>
</ul>
</li>
</ul>
</div>


<div class="para">
<h3>Application Interface</h3>
<img src="res/layers1.png" class="rset" width="245" height="220" alt="layer">
<p>FatFs provides various filesystem functions for the applications as shown below.</p>
<ul>
<li>File Access
<ul>
<li><a href="doc/open.html">f_open</a> - Open/Create a file</li>
<li><a href="doc/close.html">f_close</a> - Close an open file</li>
<li><a href="doc/read.html">f_read</a> - Read data from the file</li>
<li><a href="doc/write.html">f_write</a> - Write data to the file</li>
<li><a href="doc/lseek.html">f_lseek</a> - Move read/write pointer, Expand size</li>
<li><a href="doc/truncate.html">f_truncate</a> - Truncate file size</li>
<li><a href="doc/sync.html">f_sync</a> - Flush cached data</li>
<li><a href="doc/forward.html">f_forward</a> - Forward data to the stream</li>
<li><a href="doc/expand.html">f_expand</a> - Allocate a contiguous block to the file</li>
<li><a href="doc/gets.html">f_gets</a> - Read a string</li>
<li><a href="doc/putc.html">f_putc</a> - Write a character</li>
<li><a href="doc/puts.html">f_puts</a> - Write a string</li>
<li><a href="doc/printf.html">f_printf</a> - Write a formatted string</li>
<li><a href="doc/tell.html">f_tell</a> - Get current read/write pointer</li>
<li><a href="doc/eof.html">f_eof</a> - Test for end-of-file</li>
<li><a href="doc/size.html">f_size</a> - Get size</li>
<li><a href="doc/error.html">f_error</a> - Test for an error</li>
</ul>
</li>
<li>Directory Access
<ul>
<li><a href="doc/opendir.html">f_opendir</a> - Open a directory</li>
<li><a href="doc/closedir.html">f_closedir</a> - Close an open directory</li>
<li><a href="doc/readdir.html">f_readdir</a> - Read a directory item</li>
<li><a href="doc/findfirst.html">f_findfirst</a> - Open a directory and read the first item matched</li>
<li><a href="doc/findnext.html">f_findnext</a> - Read a next item matched</li>
</ul>
</li>
<li>File and Directory Management
<ul>
<li><a href="doc/stat.html">f_stat</a> - Check existance of a file or sub-directory</li>
<li><a href="doc/unlink.html">f_unlink</a> - Remove a file or sub-directory</li>
<li><a href="doc/rename.html">f_rename</a> - Rename/Move a file or sub-directory</li>
<li><a href="doc/chmod.html">f_chmod</a> - Change attribute of a file or sub-directory</li>
<li><a href="doc/utime.html">f_utime</a> - Change timestamp of a file or sub-directory</li>
<li><a href="doc/mkdir.html">f_mkdir</a> - Create a sub-directory</li>
<li><a href="doc/chdir.html">f_chdir</a> - Change current directory</li>
<li><a href="doc/chdrive.html">f_chdrive</a> - Change current drive</li>
<li><a href="doc/getcwd.html">f_getcwd</a> - Retrieve the current directory and drive</li>
</ul>
</li>
<li>Volume Management and System Configuration
<ul>
<li><a href="doc/mount.html">f_mount</a> - Register/Unregister the work area of the volume</li>
<li><a href="doc/mkfs.html">f_mkfs</a> - Create an FAT volume on the logical drive</li>
<li><a href="doc/fdisk.html">f_fdisk</a> - Create partitions on the physical drive</li>
<li><a href="doc/getfree.html">f_getfree</a> - Get free space on the volume</li>
<li><a href="doc/getlabel.html">f_getlabel</a> - Get volume label</li>
<li><a href="doc/setlabel.html">f_setlabel</a> - Set volume label</li>
<li><a href="doc/setcp.html">f_setcp</a> - Set active code page</li>
</ul>
</li>
</ul>
</div>


<div class="para">
<h3>Media Access Interface</h3>
<img src="res/layers2.png" class="rset" width="245" height="220" alt="layer">
<p>Since FatFs module is the <em>Filesystem Layer</em> independent of platforms and storage media, it is completely separated from the physical devices, such as memory card, harddisk and any type of storage device. The storage device control module is <em>not any part of FatFs module</em> and it needs to be provided by implementer. FatFs controls the storage devices via a simple media access interface shown below. Also sample implementations for some platforms are available in the downloads. A function checker for storage device control module is available <a href="res/app4.c">here</a>.</p>
<ul>
<li>Storage Device Controls
<ul>
<li><a href="doc/dstat.html">disk_status</a> - Get device status</li>
<li><a href="doc/dinit.html">disk_initialize</a> - Initialize device</li>
<li><a href="doc/dread.html">disk_read</a> - Read data</li>
<li><a href="doc/dwrite.html">disk_write</a> - Write data</li>
<li><a href="doc/dioctl.html">disk_ioctl</a> - Control device dependent functions</li>
</ul>
</li>
<li>Real Time Clock
<ul>
<li><a href="doc/fattime.html">get_fattime</a> - Get current time</li>
</ul>
</li>
</ul>
</div>


<div class="para">
<h3>Resources</h3>
<p>The FatFs module is a free software opened for education, research and development. You can use, modify and/or redistribute it for any purpose without any restriction under your responsibility. For further information, refer to the application note.</p>
<ul>
<li><em>Getting Started: <a href="doc/appnote.html">FatFs Application Node</a></em></li>
<li>Community: <a href="http://elm-chan.org/fsw/ff/bd/">FatFs User Forum</a></li>
<li><a href="https://msdn.microsoft.com/en-us/windows/hardware/gg463080.aspx">FAT32 Specification by Microsoft</a>↗ (The authorized document on FAT filesystem)</li>
<li><a href="http://elm-chan.org/docs/fat_e.html">The basics of FAT filesystem</a> (FatFs is written based on this documentation)</li>
<li><a href="http://elm-chan.org/docs/exfat_e.html">The basics of exFAT filesystem</a> (FatFs is written based on this documentation)</li>
<li><a href="http://elm-chan.org/docs/mmc/mmc_e.html">How to use MMC/SDC</a></li>
<li><a href="http://elm-chan.org/junk/fa/faff.html">Playing with FlashAir and FatFs</a></li>
<li><a href="http://nemuisan.blog.bai.ne.jp/">Nemuisan's Blog</a>↗ (Well written implementations for STM32F/SPI &amp; SDIO and LPC4088/SDMMC)</li>
<li><a href="http://stm32f4-discovery.net/2014/07/library-21-read-sd-card-fatfs-stm32f4xx-devices/">Read SD card with FatFs on STM32F4xx devices by Tilen Majerle</a>↗ (Quick and easy implementation for STM32F4-Discovery)</li>
<li><a href="res/rwtest1.png">Benchmark 1</a> (ATmega1284/20MHz with MMC via USART in SPI, CFC via GPIO)</li>
<li><a href="res/rwtest2.png">Benchmark 2</a> (LPC2368/72MHz with MMC via MCI)</li>
</div>

<hr>
<div><a href="http://elm-chan.org/fsw/ff/00index_e.html">FatFs Home Page</a></div>

</body>
</html>
70 changes: 70 additions & 0 deletions ext/fatfs/documents/css_e.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
* {margin: 0; padding: 0; border-width: 0;}
body {margin: 8px; background-color: #e0ffff; font-color: black; font-family: serif; line-height: 133%; max-width: 1024px;}
a:link {color: blue;}
a:visited {color: darkmagenta;}
a:hover {background-color: #a0ffff;}
a:active {color: darkmagenta; overflow: hidden; outline:none; position: relative; top: 1px; left: 1px;}
abbr {border-width: 1px;}

p {margin: 0 0 0.3em 1em;}
i {margin: 0 0.3em 0 0;}
b {margin: 0 0.1em;}
em {font-style: normal; font-weight: bold; margin: 0 0.1em;}
strong {}
pre {border: 1px dashed gray; margin: 0.5em 1em; padding: 0.5em; line-height: 1.2em; font-size: 85%; font-family: "Consolas", "Courier New", monospace; background-color: white;}
pre span.c {color: green;}
pre span.k {color: blue;}
pre span.e {color: red;}
pre span.b {font-weight: bold;}
pre span.arg {font-style: italic;}
tt {margin: 0 0.2em; font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; }
tt.arg {font-style: italic;}
ol {margin: 0.5em 2.5em;}
ul {margin: 0.5em 2em;}
ul ul {margin: 0 2em 0.5em 1em;}
dl {margin: 0.5em 1em;}
dd {margin: 0 2em;}
dt {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace;}
dl.par dt {margin: 0.5em 0 0 0 ; font-style: italic; }
dl.ret dt {margin: 0.5em 0 0 0 ; font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; font-weight: bold; }
hr {border-width: 1px; margin: 1em;}
div.abst {font-family: sans-serif;}
div.para {clear: both; font-family: serif;}
div.ret a {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; }
.equ {text-indent: 0; margin: 1em 2em 1em;}
.indent {margin-left: 2em;}
.rset {float: right; margin: 0.3em 0 0.5em 0.5em;}
.lset {float: left; margin: 0.3em 0.5em 0.5em 0.5em;}
ul.flat li {list-style-type: none; margin: 0;}
a.imglnk img {border: 1px solid;}
.iequ {white-space: nowrap; font-weight: bold;}
.clr {clear: both;}
.it {font-style: italic;}
.mfd {font-size: 0.7em; padding: 0 1px; border: 1px solid; white-space : nowrap}
.ral {text-align: right; }
.lal {text-align: left; }
.cal {text-align: center; }

h1 {line-height: 1em; font-size: 2em; font-family: sans-serif; padding: 0.3em 0 0.3em;}
h2 {font-size: 2em; font-family: sans-serif; background-color: #d8d8FF; padding: 0.5em 0.5em; margin: 0 0 0.5em;}
h3 {font-size: 1.5em; font-family: sans-serif; margin: 1.5em 0 0.5em;}
div.doc h3 {border-color: #b0d8d8; border-style: solid; border-width: 0px 0px 4px 12px; padding: 4px; margin-top: 3em;}
h4 {font-size: 1.2em; font-family: sans-serif; margin: 2em 0 0.2em;}
h5 {font-size: 1em; font-family: sans-serif; margin: 1em 0 0em;}
p.hdd {float: right; text-align: right; margin-top: 0.5em;}
hr.hds {clear: both; margin-bottom: 1em;}
kbd {letter-spacing: 0;}
small {font-size: 80%;}
.indent {margin-left: 2em;}

/* Tables */
table {margin: 0.5em 1em; border-collapse: collapse; border: 2px solid gray; }
th {background-color: white; border-style: solid; border-width: 1px 1px 2px; border-color: gray; padding: 0 3px; vertical-align: top; white-space: nowrap;}
td {background-color: white; border: 1px solid gray; padding: 0 3px; vertical-align: top; line-height: 1.3em;}
table.lst td:first-child {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; white-space: nowrap;}
table.lst2 td {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; white-space: nowrap;}
table.lst3 td {font-family: "Consolas", "Courier New", monospace; white-space: nowrap;}
table caption {font-family: sans-serif; font-weight: bold;}
tr.lst3 td { border-width: 2px 1px 1px; }

p.foot {clear: both; text-indent: 0; margin: 1em 0.5em 1em;}
Loading