انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: مشکل در راه اندازی کامپایلر برای میکروهای ARM  (دفعات بازدید: 2945 بار)

0 کاربر و 3 مهمان درحال مشاهده موضوع.

آفلاین ح.م

  • High Hero Member
  • *
  • ارسال: 1274
  • جنسیت : پسر
  • دین بدون خرد مانند خرد بدون دین بی معناست
در تایپک زیر توضیح دادم که در نصب کامپایلر برای ARM مشکل دارم و هنوز نتوستم برنامه ای رو برای میکرو به درستی کامپایل کنم !
http://forum.ubuntu.ir/index.php/topic,76517.15.htmlمشکل من از این قراره که Ecpilse ورژن مخصوص c, c++ رو دانلود کردم و روش افزونه gnuarm هم نصب کردم و همچنین کامپایلر های مختلف ARM-Gcc و دیباگر openocd رو هم نصب کردم حالا در کامپایل مشکل دارم و نمی دونم چی رو باید تغییر بدم تا کار کنه !
یه نمونه پروژه

#include "AT91SAM7X256.h"
#include "delay.h"

int main(){
while(1){

delay_ms(100);

}
}


میکرو من AT91SAM7X256 هست ولی نمی دونم چرا جواب نمی ده !

خطا زیر رو ببینید.


08:19:26 **** Incremental Build of configuration Debug for project new ****
make all
Building file: ../main.c
Invoking: Cross ARM C Compiler
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections  -g3 -std=gnu11 -MMD -MP -MF"main.d" -MT"main.o" -c -o "main.o" "../main.c"
Finished building: ../main.c
 
Building target: new.elf
Invoking: Cross ARM C Linker
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections  -g3 -Xlinker --gc-sections -Wl,-Map,"new.map" -o "new.elf"  ./main.o   
/usr/lib/gcc/arm-none-eabi/4.8.2/../../../arm-none-eabi/lib/armv7-m/libg.a(lib_a-exit.o): In function `exit':
/build/buildd/newlib-2.1.0/build/arm-none-eabi/armv7-m/newlib/libc/stdlib/../../../../../../newlib/libc/stdlib/exit.c:70: undefined reference to `_exit'
collect2: error: ld returned 1 exit status
make: *** [new.elf] Error 1
عاقبت انحصار شکست و سرانجام کمونیسم گنویی دیکتاتوریست !
الگوی متن باز از هر جهت بر الگوی نرم افزار آزاد رجحان دارد
وَسَيَعْلَمُ الَّذِينَ ظَلَمُوا أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ

آفلاین pumper

  • Newbie
  • *
  • ارسال: 10
پاسخ : مشکل در راه اندازی کامپایلر برای میکروهای ARM
« پاسخ #1 : 27 اردیبهشت 1393، 11:09 ب‌ظ »
یدونه
return 0 ;آخر برنامت اضافه کنید ببینید حل میشه

آفلاین robotic

  • Full Member
  • *
  • ارسال: 176
  • جنسیت : پسر
پاسخ : مشکل در راه اندازی کامپایلر برای میکروهای ARM
« پاسخ #2 : 28 اردیبهشت 1393، 08:15 ق‌ظ »
من تو ویندوز از  GNU Tools for ARM Embedded Processors  استفاده می کردم

https://launchpad.net/gcc-arm-embedded
نسخه اوبونتو هم دارد

sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded
sudo apt-get update
sudo apt-get install gcc-arm-none-eabi

اولین اشکال به برنامه نویسی شما وارد است!

چطوری از تابع delay_ms اسفاده کردی؟ مگر جایی تعریف شده است

پیشنهاد می کنم که برش داری و جایش فعلا چیزی نگذاری

دومین اشکال  این است که دستور return را نگذاشتی

سومین اشکال شما بر می گردد به این که در انجمن اوبونتو سوال در مورد میکروکنترلر می پرسی!
سوال خود را بهتر است در آدرس زیر مطرح کنی

https://answers.launchpad.net/gcc-arm-embedded

آفلاین ح.م

  • High Hero Member
  • *
  • ارسال: 1274
  • جنسیت : پسر
  • دین بدون خرد مانند خرد بدون دین بی معناست
پاسخ : مشکل در راه اندازی کامپایلر برای میکروهای ARM
« پاسخ #3 : 28 اردیبهشت 1393، 09:38 ب‌ظ »
بله delay_ms تعریف شده اصلا مشکل این تابع نیست ! اصلا برای cortex می نویسه ! می شه یه پروژه نمونه ای بفرستید ببینم چی کار کردید ! بد جور گیر کردم ! دلیل اینکه اینجا مطرحش کردم این بود که توی ویندوز مشکلی در نصبش نیست ! اینجاس که اذیت می کنه ، مشکل اینه که یه سری تابع براش تعریف نشده مثل _exit  و انگار به یه فایل اسمبلی احتیاج داره کسی تا حالا تونسته توی لینوکس میکرو ARM راه بندازه ؟!
اینم خروجی
sudo apt-get install gcc-arm-none-eabi
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gcc-arm-none-eabi is already the newest version.
The following packages were automatically installed and are no longer required:
  libnemo-extension1 nemo-data
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 121 not upgraded.
« آخرین ویرایش: 28 اردیبهشت 1393، 09:42 ب‌ظ توسط H.m »
عاقبت انحصار شکست و سرانجام کمونیسم گنویی دیکتاتوریست !
الگوی متن باز از هر جهت بر الگوی نرم افزار آزاد رجحان دارد
وَسَيَعْلَمُ الَّذِينَ ظَلَمُوا أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ

آفلاین robotic

  • Full Member
  • *
  • ارسال: 176
  • جنسیت : پسر
پاسخ : مشکل در راه اندازی کامپایلر برای میکروهای ARM
« پاسخ #4 : 29 اردیبهشت 1393، 12:15 ق‌ظ »
یک فایل main.cpp بسازید و کد زیر را کپی کنید

#include "stm32f4xx.h"
#include "system_stm32f4xx.h"

int main (void)
{
while(1);
return 1;
}


سپس لازم است کتابخانه های زیر را دانلود کنید و در همان پوشه کپی کنید

stm32f4xx.h
system_stm32f4xx.h
system_stm32f4xx.c
core_cm4.h
core_cmFunc.h
core_cm4_simd.h
core_cmInstr.h

حالا تو ترمینال با دستور زیر آن را کامپایل کنید

arm-none-eabi-gcc main.cpp -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -lc -Os  -lrdimon -o main

آفلاین ح.م

  • High Hero Member
  • *
  • ارسال: 1274
  • جنسیت : پسر
  • دین بدون خرد مانند خرد بدون دین بی معناست
پاسخ : مشکل در راه اندازی کامپایلر برای میکروهای ARM
« پاسخ #5 : 29 اردیبهشت 1393، 11:38 ب‌ظ »
اولا باید بگم میکرو من AT91SAM7X256 هست و Cortex نیست ! آیا جواب می ده ؟!
ثانیا اگر جواب مثبته لطف کنید آدرس این فایل ها رو بگید واقعا خوشحال می شم.
ثالثا خروجی این دستورها چیه و آیا می شه مستقیم پرگرم کرد رو میکرو ؟!
رابعا چه جواب بگیرم چه نه از اینکه وقت گذاشتی جوابمو دادی دستت درد نکنه.
عاقبت انحصار شکست و سرانجام کمونیسم گنویی دیکتاتوریست !
الگوی متن باز از هر جهت بر الگوی نرم افزار آزاد رجحان دارد
وَسَيَعْلَمُ الَّذِينَ ظَلَمُوا أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ

آفلاین robotic

  • Full Member
  • *
  • ارسال: 176
  • جنسیت : پسر
پاسخ : مشکل در راه اندازی کامپایلر برای میکروهای ARM
« پاسخ #6 : 30 اردیبهشت 1393، 12:30 ق‌ظ »
اولا باید بگم میکرو من AT91SAM7X256 هست و Cortex نیست ! آیا جواب می ده ؟!
ثانیا اگر جواب مثبته لطف کنید آدرس این فایل ها رو بگید واقعا خوشحال می شم.
ثالثا خروجی این دستورها چیه و آیا می شه مستقیم پرگرم کرد رو میکرو ؟!
رابعا چه جواب بگیرم چه نه از اینکه وقت گذاشتی جوابمو دادی دستت درد نکنه.

1- خیر، این برنامه فقط مربوط به stm32f4xx است.

من این برنامه را قرار دادم چون با توجه به عنوان تاپیک فکر می کردم می خواهی ARM کار کنی و مدلش برایت اهمیت ندارد

لازم به ذکر است اگر کتابخانه های را تو پوشه نگذاری و دو خط سرآیند را حذف کنی تو کامپایل ارور می دهد!

علتش را نمی دانم. از این جا معلوم می شود که میکرو اتمل نیز به کتابخانه درست نیاز دارد

البته اروری که گرفتی مربوط به عدم وجود کتابخانه نیست

ارور شما مربوط به آرگومان های کامپایلر است

وقتی این ارور را رفع کردی تازه نوبت ارور کتابخانه می شود

تو نت سرچ کن ببین برای میکرو شما آرگومان های ورودی لازم برای کامپایلر چیست

۲- حالا که جواب منفی است.

اما اگر روزی به با stm32f4 کار کردی می توانی کتابخانه اش را از آدرس زیر دانلود کنی

http://www.st.com/st-web-ui/static/active/en/st_prod_software_internet/resource/technical/software/firmware/stm32f4_dsp_stdperiph_lib.zip

۳- خروجی فایل دودویی یعنی bin است. اما پسوند ندارد.

بستگی به پروگرامرت دارد. بعضی پروگرامر ها هم فایل بین و هم فایل هگز می گیرند. بعضی های دیگر فقط فایل هگز

بنابراین باید از پروگرامری استفاده کنی که فایل بین را نیز بگیرد

۴- متاسفانه با میکرو های دیگر کار نکردم که کمکت کنم
« آخرین ویرایش: 31 اردیبهشت 1393، 10:49 ق‌ظ توسط robotic »