o add fat filesystem test for arm lpc2148
This commit is contained in:
223
poc/lpc2148_efsl/docs/readme_arm7.txt
Normal file
223
poc/lpc2148_efsl/docs/readme_arm7.txt
Normal file
@@ -0,0 +1,223 @@
|
||||
*
|
||||
* efsl SD-Card SPI-Interface for
|
||||
* - Philips LPC2000 ARM7TDMI-S
|
||||
* - Atmel AT91SAM7S ARM7TDMI
|
||||
*
|
||||
* The LPC2000 and AT91SAM7 interfaces are
|
||||
* Copyright (c) 2005, 2006
|
||||
* by Martin Thomas, Kaiserslautern, Germany
|
||||
* <mthomas@rhrk.uni-kl.de>
|
||||
* http://www.siwawi.arubi.uni-kl.de/avr_projects
|
||||
*
|
||||
|
||||
All interfaces inherit the license from the
|
||||
main efsl-source.
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
Changelog:
|
||||
|
||||
20060910 mthomas
|
||||
* bug-fix in AT91SAM7-interface (for CS with GPIO during init)
|
||||
* variable Chip-Select in AT91SAM7-interface
|
||||
* applied more patches, sync with efsl 0.2.8
|
||||
(just one instruction)
|
||||
* modified AT91SAM7 example
|
||||
|
||||
20060531 mthomas
|
||||
* applied patches found in the efsl sf.net project-pages.
|
||||
The patches are marked with #warning in the source since
|
||||
they are not part of the "official" efsl source-code
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
Common "ARM7" Interface Information:
|
||||
|
||||
- A GNU arm-elf toolchain/cross-compiler
|
||||
must be available to build the examples
|
||||
and the library.
|
||||
Ready-made toolchains: i.e. WinARM or
|
||||
GNUARM
|
||||
Other ARM-compilers may work too but
|
||||
have not been tested.
|
||||
|
||||
- #define BYTE_ALIGNMENT is disabled
|
||||
for the ARM-interfaces in config*.h
|
||||
It didn't work with alignment enabled.
|
||||
|
||||
- The hardware connection is similar
|
||||
to the connection described
|
||||
in the efsl-manual for Atmel AVRs.
|
||||
Pullup-Resistors should be optional.
|
||||
Tests did work without pullups.
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
For each interface an example application
|
||||
is provided in the examples-directory. The
|
||||
examples can be build with the library
|
||||
libefsl.a or with the efsl source-code.
|
||||
|
||||
(1) To use the efsl-source "directly"
|
||||
|
||||
- Verfiy that conf/config.h is present
|
||||
and the settings match the used
|
||||
interfaces (see templates).
|
||||
- Modify the line in the example's
|
||||
Makefile to: EFSL_AS_LIB = 0
|
||||
- "make all" in the example's directory.
|
||||
|
||||
(2) To use the efsl-library (libefsl.a)
|
||||
|
||||
- Verfiy that conf/config.h is present
|
||||
and the settings match the used
|
||||
interfaces (see templates).
|
||||
- Build the library libefsl.a with
|
||||
the Makefile from the efsl root-
|
||||
directory for the used interface.
|
||||
(i.e. "make --makefile=Makefile-AT91 lib"
|
||||
or "make --makefile=Makefile-LPC2000 lib" )
|
||||
- Modify the line in the example's
|
||||
Makefile to: EFSL_AS_LIB = 1
|
||||
- "make all" in the example's directory
|
||||
|
||||
|
||||
The example-applications demonstrate:
|
||||
|
||||
- Init of the efsl ARM debug-system
|
||||
- Init of the efsl
|
||||
- List contents of the SD-Card's
|
||||
root directory
|
||||
- Open a file and type the content
|
||||
- Append a line of text to a file
|
||||
- "cat/type" the file's content again
|
||||
|
||||
The applications print status- and
|
||||
debug-messages to the UART1 on
|
||||
LPC2000 or DBGU on AT91SAM7
|
||||
(115200,8,N,1,no FC).
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
Additional Information for the LPC2000 Interface
|
||||
|
||||
- The efsl-interface supports SD-Cards
|
||||
connected to the LPC2000 SPI ("SPI0")
|
||||
and SSP ("SPI1") interface. The used
|
||||
SPI-interface is hardcoded by the value
|
||||
defined in config.h and can not be
|
||||
changed during runtime.
|
||||
|
||||
- Only some parts of the LPC2000-family
|
||||
have the fast SSP-Interface (i.e. LPC213x,
|
||||
LPC214x) others only provide the slower
|
||||
SPI interface.
|
||||
|
||||
- To build the library create the file
|
||||
conf/config.h based on the template
|
||||
config-sample-lpc2000.h and use the
|
||||
makefile Makefile-LPC2000 in the
|
||||
efsl-root-directory for LPC2000s
|
||||
(ARM7TDMI-S).
|
||||
|
||||
- I have tested the interface with a
|
||||
LPC2138-controller and the SPI(0)
|
||||
and SSP/SPI1-Interface. Other
|
||||
LPC2000-ARM7 controllers should be
|
||||
supported too. (I have got positive
|
||||
feedback from LPC2148-users).
|
||||
Verify that the register-adresses in
|
||||
inc/interfaces/LPC2000_regs.h
|
||||
match the used controller and the
|
||||
maximum speed defined in lpc2000_spi.c
|
||||
is available for the part. Verify the
|
||||
pin-connections in lpc2000_spi.c.
|
||||
Adjust the memory-setting in the linker-script.
|
||||
|
||||
- LPC2000 TODO: 16bit, FIFO (patches available at sf.net)
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
Additional Information for the AT91 Interface
|
||||
|
||||
- The interface supports SD-Cards connected
|
||||
to the AT91SAM7 SPI interface.
|
||||
|
||||
- To build the library create a file
|
||||
conf/config.h based on the template
|
||||
config-sample-at91.h and use the
|
||||
makefile Makefile-AT91 in the
|
||||
efsl-root-directory for AT91 (ARM7TDMI).
|
||||
|
||||
- The AT91SAM7 offers 4 chip-select
|
||||
signals which can be mapped to
|
||||
different pins. Chip-select is done
|
||||
by the hardware. See at91_spi.c
|
||||
for configuration options.
|
||||
Chip-Select can be fixed or variable
|
||||
(Fixed or variable peripheral select - see
|
||||
option in AT91_spi.c, further information
|
||||
in the datasheet).
|
||||
|
||||
- I have tested the interface with AT91SAM7S256
|
||||
and SAM7S64 controllers. Other AT91-ARM7 controllers
|
||||
should be supported too.
|
||||
To adapt the code for another AT91 with SPI:
|
||||
- check if the register-defintions in AT91SAM7S_regs.h
|
||||
are valid for the target. The file can be replaced
|
||||
by header file provided by Atmel for the used part
|
||||
(see at91.com)
|
||||
- verify the maximum speed in at91_spi.c
|
||||
- verfiy the pin-connections in at91_spi.c
|
||||
- Check the memory-settings in the linker-script of
|
||||
the example.
|
||||
|
||||
- AT91 TODO: PDC/"DMA", 16bit-transfer, SSC-support,
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
Test Hard- and Software:
|
||||
|
||||
- Keil (keil.com) MCB2130 board with LPC2138
|
||||
with additional SD/MMC-connector (from Buerklin.de)
|
||||
- Atmel AT91SAM7S-EK board with AT91SAM7S64
|
||||
with additional SD/MMC-connector
|
||||
- SAM7-P board with AT91SAM7S256
|
||||
with on-board SD/MMC-connector
|
||||
|
||||
- SanDisk "standard" SD-Card 256MB
|
||||
(not the "highspeed"-version)
|
||||
|
||||
- WinARM (arm-elf GNU toolchain)
|
||||
- Bray++ Terminal
|
||||
|
||||
WinARM is available at:
|
||||
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
Credits:
|
||||
|
||||
- The code in efsl_debug_printf_arm.c is based
|
||||
on code from Holger Klabunde and has been
|
||||
modified to support a "fdevopen"-function
|
||||
(efsl_debug_devopen_arm).
|
||||
The original code has no copyright-notice and
|
||||
is derived from an free code by Volker Oth.
|
||||
|
||||
- Register-definitions for LPC213x are
|
||||
based on a header-file from Keil GmbH
|
||||
(supplied with the DKARM trial-version).
|
||||
|
||||
- Register-definitions for AT91SAM7 are from
|
||||
at91.com (provided by Atmel).
|
||||
|
||||
- The basic method to handle the SPI interface
|
||||
on AT91 has been found in a free example from
|
||||
Olimex.com.
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
|
||||
I hope the ARM-interfaces are useful for you.
|
||||
Martin Thomas 9/2006
|
||||
Reference in New Issue
Block a user