أوبونتو: ما هي دول مجلس التعاون الخليجي لاستخدامها عند cross.compiling ل STM32 (Cortex-M3)؟

StackOverflow https://stackoverflow.com/questions/1502623

سؤال

أحاول البدء في STM32 (Cortex-M3) وخطتي تحصل على هذا العمل من Ubuntu (9.04 / AMD64).

لتبدأ حصلت على OLIMEX STM32-H103 لوحة رأس و OLIMEX ARM-USB-OCD JTAG، وعلى ذلك، ربما أستخدم OpenOCD و GCC و Eclipse.

ولكن الآن أنا أبحث في إصدار الخليج من دول مجلس التعاون الخليجي لاستخدامه وكيفية الإعداد أنه قادر على التعرج في الرمز.

يبدو أن هناك بعض مشاريع الذراع هناك ولكني لا أعرف ما الذي يجب أن أبدأ به، هل يمكن لشخص ما يدفعني في الاتجاه الصحيح؟

شكرا يوهان


تحديث: يبدو أن هناك تقريبا ما أريد من Codesourrcery., ، ولكن يبدو أنهم يركزون على IA32 وليس AMD64.

ولكن في الأجهزة المدعومة أجد Cortex-M3

  • ARM EABI، ARM M-Profile Simulator -MCPU = Cortex-M3 -Thumb

تحديث: هناك إمكانية تثبيت IA32 على AMD64، لذلك ربما الإجابة المميزة قديمة بالفعل.

تحديث: وجدت هذا الرابط حول crosscompile ل cortex-m3.

هل كانت مفيدة؟

المحلول

نظرا لأن هذه الإجابة أصبحت قليلا "غير قابل للقراءة"، قمت بإنشاء صفحة بهذه المعلومات.



هذا تفسير مجاني يستند إلى هذين المرشدين، لكن علي تغيير الإصدارات وتطبيق بعض التصحيحات للحصول عليها للعمل.

أول بعض الاشياء الأساسية

sudo apt-get install flex bison libgmp3-dev libmpfr-dev autoconf texinfo build-essential

ثم أنشأت مكانا لتخزين مجموعة الأدوات (تغيير CJ.Users إلى كل ما هو جيد بالنسبة لك).

export TOOLPATH=/usr/local/cross-cortex-m3
sudo mkdir /usr/local/cross-cortex-m3
sudo chown cj.users /usr/local/cross-cortex-m3

Binutils.

wget http://ftp.gnu.org/gnu/binutils/binutils-2.19.tar.bz2
tar -xvjf binutils-2.19.tar.bz2
cd binutils-2.19
mkdir build
cd build
../configure --target=arm-none-eabi --prefix=$TOOLPATH --enable-interwork --enable-multilib --with-gnu-as --with-gnu-ld --disable-nls

تطبيق التصحيح إلى TC-ARM.C وفقا لهذه المعلومات http://sourceware.org/bugzilla/show_bug.cgi؟id=7026. / http://sourceware.org/bugzilla/attachment.cgi؟id=3058&action=View.

vi ../gas/config/tc-arm.c


make 
make install
export PATH=${TOOLPATH}/bin:$PATH
cd ../..

مجلس التعاون الخليجي

wget ftp://ftp.sunet.se/pub/gnu/gcc/releases/gcc-4.3.4/gcc-4.3.4.tar.bz2
tar -xvjf gcc-4.3.4.tar.bz2
cd gcc-4.3.4
mkdir build
cd build
../configure --target=arm-none-eabi --prefix=$TOOLPATH --enable-interwork --enable-multilib --enable-languages="c,c++" --with-newlib --without-headers --disable-shared --with-gnu-as --with-gnu-ld
make all-gcc
make install-gcc
cd ../..

newlib.

wget ftp://sources.redhat.com/pub/newlib/newlib-1.17.0.tar.gz
wget http://www.esden.net/content/embedded/newlib-1.14.0-missing-makeinfo.patch
tar -xvzf newlib-1.17.0.tar.gz
cd newlib-1.17.0

ثم أرغب في تطبيق التصحيح بشيء مثل هذا (لكنه لم يعمل)

patch -p1 -i ../newlib-1.14.0-missing-makeinfo.patch

لذلك فتحتها يدويا وتحريرها خط 6651 وفقا للرقعة.

vi configure

mkdir build
cd build
../configure --target=arm-none-eabi --prefix=$TOOLPATH --enable-interwork --disable-newlib-supplied-syscalls --with-gnu-ld --with-gnu-as --disable-shared
make CFLAGS_FOR_TARGET="-ffunction-sections -fdata-sections -DPREFER_SIZE_OVER_SPEED -D__OPTIMIZE_SIZE__ -Os -fomit-frame-pointer -mcpu=cortex-m3 -mthumb -D__thumb2__ -D__BUFSIZ__=256" CCASFLAGS="-mcpu=cortex-m3 -mthumb -D__thumb2__"
make install
cd ../..

المزيد من دول مجلس التعاون الخليجي

cd gcc-4.3.4/build
make CFLAGS="-mcpu=cortex-m3 -mthumb" CXXFLAGS="-mcpu=cortex-m3 -mthumb" LIBCXXFLAGS="-mcpu=cortex-m3 -mthumb" all
make install

تلخيص

الآن أضفت بعض المسارات إلى بلدي ~ /bashrc

#STM32 gcc...
export TOOLPATH=/usr/local/cross-cortex-m3
export PATH=${TOOLPATH}/bin:$PATH

ويجب أن أكون جاهزا للخطوة التالية ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top