Toolchain for MSP430. Краткое изложение

Выкладываю здесь краткое руководство по установке тулчейна для MSP430 для тех, кто разбирается в вопросе. Для непосвященных этот материал более подробно разжеван тут:

https://zhevak.wordpress.com/2012/05/27/toolchain-for-msp430/

Для установки тулчейна для MSP430 я создал несколько текстовых файлов (они приведены ниже) и откатал их нескольких компах. Все можно было бы оформить в один файл, но это будет не очень удобно. Файл представляют собой логические шаги, которые можно пропускать, если в них нет надобности.

В имени файлов присутствует цифра. Эта цифра помогает упорядочить ручной запуск файлов.

Файл 1.pre-install

#!/bin/bash

# Установка дополнительных пакетов
sudo apt-get install gcc-4.4 texinfo patch libncurses5-dev zlibc zlib1g-dev libx11-dev libusb-dev libreadline6-dev

Файл 2.download

#!/bin/bash
# Закачка компонет для сборки тулчейна для MSP430

wget -c http://ftpmirror.gnu.org/gcc/gcc-4.6.3/gcc-core-4.6.3.tar.bz2
wget -c http://sourceforge.net/projects/mspgcc/files/mspgcc/mspgcc-20120406.tar.bz2
wget -c http://sourceforge.net/projects/mspgcc/files/msp430mcu/msp430mcu-20120407.tar.bz2
wget -c http://sourceforge.net/projects/mspgcc/files/msp430-libc/msp430-libc-20120224.tar.bz2
wget -c http://ftpmirror.gnu.org/binutils/binutils-2.21.1a.tar.bz2
wget -c http://ftpmirror.gnu.org/gdb/gdb-7.2a.tar.bz2
wget -c http://sourceforge.net/projects/mspdebug/files/mspdebug-0.19.tar.gz

wget -c ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
wget -c ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
wget -c ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz

Файл 3.extract

#!/bin/bash

# Разжатие и разархивирование

tar xvfj binutils-2.21.1a.tar.bz2
tar xvfj gcc-core-4.6.3.tar.bz2
tar xvfj gdb-7.2a.tar.bz2
tar xvfj mspgcc-20120406.tar.bz2
tar xvfj msp430mcu-20120407.tar.bz2
tar xvfj msp430-libc-20120224.tar.bz2
tar xvfz mspdebug-0.19.tar.gz

# Зайдем в директорий gcc и сразу в него разархивируем некоторые
# компоненты и создадим ссылки
cd gcc-4.6.3

tar xjf ../mpfr-2.4.2.tar.bz2
tar xjf ../gmp-4.3.2.tar.bz2
tar xzf ../mpc-0.8.1.tar.gz

ln -sf mpfr-2.4.2 mpfr
ln -sf gmp-4.3.2 gmp
ln -sf mpc-0.8.1 mpc

cd ..

Файл 4.patches

#!/bin/bash

# patch binutils (using the files provided in the Release Files, and repeat for any additional patches or LTS files)
cd binutils-2.21.1
# Patch binutils to bring it to Release 20120406 (still at 20120406)
patch -p1<../mspgcc-20120406/msp430-binutils-2.21.1a-20120406.patch || exit 1

# patch GCC to bring it up to Release 20120406
cd ../gcc-4.6.3
patch -p1<../mspgcc-20120406/msp430-gcc-4.6.3-20120406.patch || exit 1

# Patch GDB to bring it to release 20120311
cd ../gdb-7.2

# Этого патча не было:
# patch -p1<../mspgcc-20120406/msp430-gdb-7.2a-20120406.patch
# Пришлось накладывать вот этот патч:
patch -p1<../mspgcc-20120406/msp430-gdb-7.2a-20111205.patch || exit 1

# Return to the build directory
cd ..

Файл 5.make

#! /bin/bash

export NPROCS=`getconf _NPROCESSORS_ONLN`
#export NPROCS=`cat /proc/cpuinfo | grep processor | wc -l'

#Create a sub-set of Build Directories
mkdir binutils-2.21.1-msp430 gcc-4.6.3-msp430 gdb-7.2-msp430

# Configure Binutils
cd binutils-2.21.1-msp430
# We need to build binutils for the msp430
../binutils-2.21.1/configure --target=msp430 --program-prefix="msp430-"
make -j ${NPROCS}
# Do the install as root (e.g., sudo)
sudo make install
cd ..

# I have seen issues where the msp430-ranlib doesn't get detected correctly causing build issues later.
# if that happens uncomment the following:
# cd /usr/bin
# sudo ln -s /usr/local/bin/msp430-ranlib

#Configure GCC
cd gcc-4.6.3-msp430
../gcc-4.6.3/configure --target=msp430 --enable-languages=c --program-prefix="msp430-"
make -j ${NPROCS}
# Do the install as root (e.g., sudo)
sudo make install
cd ..

#Configure GDB
cd gdb-7.2-msp430
../gdb-7.2/configure --target=msp430 --program-prefix="msp430-"
make -j ${NPROCS}
# Do the install as root (e.g., sudo)
sudo make install
cd ..

#Install the mspgcc-mcu files
cd msp430mcu-20120407
sudo MSP430MCU_ROOT=`pwd` ./scripts/install.sh /usr/local/
cd ..

# Install the mspgcc-libc
cd msp430-libc-20120224/src
make -j ${NPROCS}
# Do the install as root (e.g., sudo)
sudo PATH=$PATH make PREFIX=/usr/local install
cd ../..

# Now let's build the debugger
cd mspdebug-0.19
make -j ${NPROCS}
# Do the install as root (e.g., sudo)
sudo make install
cd ..

echo ALL DONE

Файл 6.post-install

#!/bin/bash

if [ -f /etc/udev/rules.d/46-TI.rules ] ; then
echo File yet exists!
else
sudo cp 46-TI.rules /etc/udev/rules.d/
fi

Файл 46-TI.rules

ATTRS{idVendor}=="0451",ATTRS{idProduct}=="f430",MODE="0660",GROUP="plugdev"
ATTRS{idVendor}=="0451",ATTRS{idProduct}=="f432",MODE="0660",GROUP="plugdev"

Создайте у себя на компе эти файлы и запустите их руками последовательно. В результате у вас развернется тулчейн для работы с MSP430.

Я понимаю, что это не совсем правильно — вот так выкладывать файлы. Я понимаю, что их надо бы выложить куда-нибудь типа на github, но… но… не все сразу! Ребята, я просто зашиваюсь. Я не успеваю. Со временем я, конечно, это сделаю и прямо здесь же отпишусь. Но сейчас пока так.

Advertisements

One response to “Toolchain for MSP430. Краткое изложение

  1. спасибо за первую строчку 46-TI.rules у всех только вторая => недостаточно

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s