http://lwip.wikia.com/wiki/LwIP_Wiki
http://www.contiki-os.org/
http://www.stf12.org/developers/ODeV.html

////
http://www.mikrocontroller.net/topic/141711

Der STM32 braucht nur:
- VCC 3,3V
- GND
- Reset-Pin auf Hi
- Boot-Pin(s) entsprechend beschaltet

ansonsten nur ein paar einzelne C's 100nF an VCC/GND.

Kein Takt, der hat einen internen 8MHZ Takt.


Am Controller brauchst du (in Klammern bei meinem STM32F103ZET6):
RxD     (RxD1, Pin 102)
TxD     (TxD1, Pin 101)
/Reset  (Pin 25)
/BOOT   (BOOT0, Pin 138)

Für den Normalbetrieb wird /Reset mit ca. 10k auf +3.3V gezogen, und
/BOOT ebenso. Zum Programmieren zieht der Adapter /BOOT auf low und gibt
dem Controller dann kurz ein Reset. Der sieht /BOOT auf low und geht
damit in den Programmiermodus.

An meinem Adapter hab ich 2 Open Drain Transistoren (BSS138) für /Reset
und /BOOT, die ich über je ein XOR-Einzelgatter (NC7SZ86) und ein paar
Patchbrücken an den FTDI geschaltet habe. So spare ich mir das
Umprogrammieren des FTDI und der Adapter geht bei entsprechender
Beschaltung auch für die ARM's von NXP. Dort benutze ich "Flashmagic"
und auf den Namen des Tools für die STM32 komme ich gerade nicht.

www.mikrocontroller.net/attachment/53224/STM32prog.png

//////

Compiling the ARM Cortex M4 Toolchain Yourself

Nabil has a great blog post for compiling the ARM Cortex M3 toolchain yourself.

It appears that using his method for compiling the ARM toolchain allows you to make use of the FPU.

Nabil’s directions were great, but they only directly apply to Mac OS X. The German site UbuntuUsers also had a great article in their wiki that helped me get through some sticky places. Here are some directions for getting the ARM Cortex M4 toolchain built on Ubuntu:

First, we’ll need to get download some source packages:

You can do this by hand via the links below, either click on the project name to locate the latest releases yourself, or click on the package (.tar.gz) name to directly download the package I used:

binutils – binutils-2.21.1a.tar.bz2
newlib – newlib-1.19.0.tar.gz
GCC – gcc-4.6.2.tar.bz2
GDB – gdb-7.3.1.tar.bz2

Or here is a quick set of wgets you could use:

mkdir src
cd src
wget http://ftp.gnu.org/gnu/binutils/binutils-2.21.1a.tar.bz2
tar jxvf binutils-2.21.1a.tar.bz2
wget ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz
tar zxvf newlib-1.19.0.tar.gz
wget ftp://mirrors.kernel.org/gnu/gcc/gcc-4.6.2/gcc-4.6.2.tar.bz2
tar jxvf gcc-4.6.2.tar.bz2
wget http://ftp.gnu.org/gnu/gdb/gdb-7.3.1.tar.bz2
tar jxvf gdb-7.3.1.tar.bz2

Second, let’s get some dependancies:

$ sudo apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev
libmpc-dev autoconf texinfo build-essential libftdi-dev libexpat1 libexpat1-dev

Now, we’ll compile our toolchain:

Be sure to change /home/csamuelson/mat to the directory you would like to have the toolchain installed to.

Compile binutils

cd binutils-2.21.1/
./configure  --target=arm-none-eabi --prefix=/home/csamuelson/mat --enable-interwork --enable-multilib --disable-nls --disable-libssp
make all
make install
cd ..

Now start to compile GCC

We just get gcc bootstrapped (make all-gcc). Make sure –with-headers is set to the correct directory.

cd gcc-4.6.2/
mkdir objdir
cd objdir/
../configure --target=arm-none-eabi --prefix=/home/csamuelson/mat/ --enable-interwork --enable-multilib --enable-languages="c" --with-newlib --with-headers=../../newlib-1.19.0/newlib/libc/include/ --disable-libssp --disable-nls --with-system-zlib
make all-gcc
make install-gcc
cd ../..

Compile newlib:

cd newlib-1.19.0/
./configure --target=arm-none-eabi --prefix=/home/csamuelson/mat --enable-interwork --enable-multilib --disable-libssp --disable-nls
make all
make install
cd ..

Finish compiling GCC:

cd gcc-4.6.2/objdir/
make all
sudo make install
cd ../..

Now make GDB:

cd gdb-7.3.1/
./configure --target=arm-none-eabi --prefix=/home/csamuelson/mat/ --enable-interwork --enable-multilib --disable-libssp --disable-nls
make all
sudo make install

Some options explanations:
–prefix=/home/csamuelson/mat/: Set the install directory. I put it in a directory call /home/csamuelson/mat/ You will probably want to change this to a directory you want it installed in!
–enable-interwork: Allows ARM and Thumb code to be used
–enable-multilib: Build multible versions of some libs. E.g. one with soft float and one with hard
–disable-nls: Tells gcc to only support American English output messages
–disable-libssp: Don’t include stack smashing protection
–with-system-zlib: Fixes the error: configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES

Hardware Floating Point
Now, when you run arm-none-eabi-gcc -print-multi-lib you will see support for the FPU:

$ arm-none-eabi-gcc -print-multi-lib
.;
thumb;@mthumb
fpu;@mfloat-abi=hard

Tags: Linux, STM32

