ایجاد یک پروژه نرم افزاری

                                                                                                                                                                                                     

                                                                                 

ایجاد یک پروژه نرم افزاری (پروژه کاربردی)

ایجاد یک پروژه جدید

ساخت یک workspace

ساخت یک پروژه جدید

اضافه کردن فایل ها به پروژه

تنظیم آپشن های (گزینه های) پروژه

کامپایل و لینک کردن برنامه

کامپایل کردن فایل های سورس

دیدن لیست فایل

لینک کردن برنامه

مشاهده فایل نقشه

 

·      این آموزش مقدمه ای برای شروع کار با نرم افزار IAR Embedded workbench محیط توسعه یافته مجتمع(مدارات مجتمع) IDE(integrated development environment) است. این آموزش یک نمونه از چرخه ای

توسعه یافته (پیشرفته )‌ را به شما نشان می دهد و همچنین نشان می دهد که چگونه از کامپایلر و لینکر برای درست کردن یک برنامه کوچک برای قطعه خود ( منظور همان میکروکنترلر شماست) استفاده کنید. برای مثال ، درست کردن یک

workspace ، تنظیم پروژه ی شما با یک فایل سورس   ‌،‌ و کامپایل و لینک کردن برنامه تان .

 

ایجاد یک پروژه جدید

شما می توانید مدل های پیشرفته ی پروژه ای را با استفاده از IDE  طراحی کنید. شما یک workspace  می سازید در حالی که می توانید یک یا چندین پروژه به آن اضافه کنید. در این آموزش  قالب پروژه آماده برای دو برنامه و همچنین

کتابخانه پروژه وجود دارد. 

(فایل ها در پوشه همراه فایل pdf   موجود است.)

هر پروژه ای می تواند شامل یک سری از سلسه گروه ها (سلسله مراتب )‌ شود  که در آن فایل های سورس تان جمع شده است که در  ادامه در قسمت  workspce   خود خواهید دید . برای هر پروژه شما می تونید یک یا چندین پیکربندی

(build configurations) تعیین کنید. برای جزییات بیشتر درباره طراحی مدل های پروژه ، مدیریت پروژه IDE  ( IDE Project Management) و  Building Guide for ARM را می توانید ببینید.

به دلیل اینکه در این برنامه آموزشی یک برنامه ساده با چندین فایل توضیح داده شده است و این آموزش نیازی به مدل پروژ پیشرفته ندارد.

قبل از این که شما بتوانید یک پروژه بسازید ،‌ شما باید اول یک workspace   بسازید.

 

ساخت یک workspace

اولین مرحله ساختن یک workspace  جدید برای برنامه آموزشی است. وقتی که شما برای اولین بار برنامه (IDE) را اجرا می کنید، یک workspace  آماده وجود دارد که شما می توانید برای این پروژه آموزشی استفاده کنید. اگر در

حال حاضر این workspace برای شما وجود داشته باشد شما می توانید از مرحله اول چشم پوشی کنید.

خوب حالا برای ایجاد File>New>Workspace انتخاب کنید. حالا شما آماده ساختن یک پروژه هستید و می توانید پروژه خود را  به workspce    اضافه کنید.

 

ساخت یک پروژه جدید

شما می توانید تمام فایل های که در این آموزش نیاز دارید در پوشه arm\tutor    پیدا کنید.(البته فایل ها در پوشه zip   ضمیمه شده است.)  یک کپی از پوشه tutor   را در پوشه پروژه خود بگیرید.

توجه : اگر از قبل تمام فایل های پوشه arm\tutor را کپی کرده اید شما با آموزش ها شروع کنید ، یک فایل پروژه از قبل در پوشه تان در دسترس است . شما می توانید از فایلی که آماده است استفاده کنید ، یا فایل خودتان را درست کنید.

1.      یک پروژه جدید ایجاد کنید با انتخاب مسیر  Project> Create New Project  . در پنچره (دیالوگ گفتگو) ظاهر شده (Create New Project  ) ، که به شما اجازه می دهد پروژه جدیدتان را بر روی یک قالب پروژه پایه ریزی کنید.

image005

2.      از قسمت tool chain لیست کشویی ، toolchain  خود را که استفاده می کنید انتخاب کنید و Ok  کنید . (البته شما یک انتخاب بیشتر ندارید . به علت اینکه فقط در این نرم افزار میکروکنترلر های ARM  را برنامه ریزی خواهید کرد.)

3.      برای این آموزش ، یک قالب Empty project  را انتخاب کنید ، که به سادگی یک پروژه خالی با استفاده از تنظیمات پیش فرض ایجاد می شود.

4.      وقتی ok  را کلیک می کنید یک پنجره ( جعبه دیالوگ)‌ برای ذخیره کردن (Save As ) به صورت استاندارد ظاهر می شود،‌ مکانی را که می خواهید فایل پروژه جدید خود را در پوشه پروژه ها (projects‌) ایجاد کنید مشخص کنید. عبارت  porject1 را در قسمت File name   وارد کرده ،‌ و بر روی Save   کلیک کنید تا پروژه جدید ساخته شود.

 

پروژه جدید در قسمت پنچره Workspace  ظاهر می شود.

image007

به صورت پیش فرض ،‌ دو نوع پیکربندی (تنظیمات ) ایجاد شده است: اشکال زدایی (Debug   ) و انتشار که نسخه نهایی پروژه خودتان خواهد بود (Release   ) . در این آموزش فقط دیباگ (Debug    ) استفاده خواهد شد . شما می

توانید با انتخاب پیکربندی ساخت (build configuration   )‌ از منوی کشوی بالای پنجره workspace   نوع کار خود را مشخص کنید. ستاره ی که در قسمت اسم پروژه شما (project1 – Debug * ) مشخص شده ، نشان دهنده

این است که تغییرات اعمالی در پروژه شما ذخیره نشده است .

توجه :‌ آموزش فراخوانی تابع کتابخانه printf   ، که فراخوانی تابع نوشته شده در سطح پایین تر برای کار با شبیه ساز C-SPY  است . ( این شبیه ساز برای اشکال زدایی برنامه نوشته شده ی شماست که در آموزش های بعدی بررسی خواهد

شد.) که اگر شما بخواهید برنامه خودتان را در محیط واقعی ( بر روی یک سخت افزار) پایه ریزی کنید که همان طور که در تصویر بالا مشخص شده است از قسمت منوی کشویی ، Release  را انتخاب خواهید کرد که البته قبل آن شما باید

بتوانید تابع نوشته شده خودتان را برای تطبق با سخت افزارتان ایجاد کنید . (در آموزش های قسمت چگونگی تطبیق دادن بررسی خواهد شد.)

در فایل پروژه (جایی که پروژه خود را ذخیره کرده اید) فایلی با پسوند ewp  در پوشه پروژه تان ایجاد می شود ، البته نه در همان لحظه، اما وقتی که workspce  خود را ذخیره می کنید آن فایل هم ایجاد می شود.( ستاره در هنگام ذخیره

پاک می شود) . این فایل شامل اطلاعاتی درباره تنظیمات خاص پروژه تان که برای مثال گزینه های ساخت است می باشد.

5.      قبل از این که هرگونه فایلی به پروژه خودتان اضافه کنید ، شما باید workspace  را ذخیره کنید. با انتخاب

File>Save Workspace و مشخص کردن مکانی که شما می خواهید فایل workspace    در آن جا ذخیره شود . در این آموزش شما باید در پوشه پروژه ی که جدیدا ساخته اید ذخیره کنید . در قسمت  File name  عبارت 

tutorials  را تایپ کنید و برای ایجاد workspace   جدید بر روی  save  کلیک کنید.

image009

 یک فایل workspace    فایلی با پسوند  eww در پوشه پروژه تان ساخته شده است. این فایل لیست تمام پروژه های که به workspace  خود اضافه خواهید کرد را نشان می دهد. ( که در این جا تنها یک پروژه موجود است و فقط

آن را نشان می دهد. وقتی شما این فایل را از طریق   notepad  باز کنید متن موجود را مشاهده خواهید کرد.)

 

 

اضافه کردن فایل ها به پروژه

 

·         در این آموزش از فایل های سورس tutor.c   ، tutor.h ،  Utilities.c  و Utilities.h  استفاده شده است. برنامه tutor.c   یک برنامه ساده است که تنها از مشخصات استاندارد زبان c  استفاده کرده . مقدار دهی اولیه یک آرایه با 10 عدد اول ، اعداد فیبوناجی و پرینت گرفتن نتیجه و یا همان خروجی به صورت  stdout .

·         برنامه utilties.c  شامل ابزار روتین برای محاسبات فیبوناجی است.

ایجاد چندین گروه این امکان را به شما می دهد که فایل های سورس تان را بر طبق نیاز پروژه تان بررسی کنید. اما ، بخاطر این که این پروژه فقط شامل دو فایل است ، شما نیازی به ایجاد کردن گروه نیستید. برای اطلاعات بیشتر درباره ی

چگونگی درست کردن ساختار پروژه های پیچیده ، راهنمای قسمت  IDE Project Management and Building Guide  که برای میکروکنترلر ARM  است را ببینید.(البته قصد این آموزش ها به صورتی پایریزی شده است که 

آموزش ها را به صورت یک برنامه مشخص شده ترجمه کند)

1.      در پنچره Workspace  ، مقصدی که می خواهید فایل سورس را اضافه کنید انتخاب کنید(با راست کلیک بر روی project1 در قسمت ADD بر روی  Add File کلیک کرده و فایل های که در پوشه گذاشته شده است را اضافه کنید و یا مستقیما از مسیر گفته شده این کار را صورت دهید. )؛ در قسمت  ADD  دو گزینه وجود دارد group   و دیگری  File   که در این مورد شما File را انتخاب کرده و مستقیما به پروژه اضافه کنید.

2.      با انتخاب  Project>Add Files  کادر محاوره ای استاندارد باز می شود.(که روشی دیگری برای اضافه کردن فایل ها است). فایل های tutor.c   ، tutor.h ،  Utilities.c  و Utilities.h  را در قسمت لیست انتخاب ها ، انتخاب کنید و بر روی open   کلیک کنید تا اضافه شوند به پروژه  project1   .

image011

 

 

تنظیم آپشن های (گزینه های) پروژه

حالا شما آپشن های پروژه تان را تنظیم خواهید کرد. برای این برنامه تان ، آپشن ها می تواند در تمام سطوح ( node ) ند ها تنظیم شود. در اولین مرحله شما تنظیمات کلی که در این آموزش صورت می دهید ، پیکربندی مناسب برای

پردازش خواهد بود. زیرا این تنظیمات باید برای کل ساختمان پیکربندی یکسان باشد، آن ها باید بر روی پروژه نود تنظیم شود.

1.      آیکن project1 – Debug در قسمت فولدر پروژه در پنچره Workspace   را انتخاب کنید و سپس  Project>Options را انتخاب کنید.

image012

 بررسی کنید که این تنظیمات استفاده شود.    

 

Page Setting
Target Core: Cortex-M3
Output Output file: Executable
Library Configuration Library: Normal
Library Configuration Library low-level interface implementation: Semihosted

 

2.       C/C++ Compiler را در قسمت لیست    Category انتخاب کنید . همانند تصویر زیر.

image014

3.       بررسی کنید که این تنظیمات استفاده شود.

 

Page

Setting

Optimizations

Level: None (Best debug support)

Output

Generate debug information

List

Output list file
Assembler mnemonics

 

 

 

 

 

 

 

 

 

 

4.       بر روی ok کلیک کنید تا تنظیمات صورت گرفته تعیین شود. (ذخیره شود).

 

پروژه برای ساختن حالا آماده است.

 

کامپایل و لینک کردن برنامه

شما حالا می توانید برنامه تان را کامپایل و لینک کنید. شما همچنین لیست فایل کامپایل و نقشه فایل لینکر را خواهید دید.

 

کامپایل کردن فایل های سورس

1. کامپایل فایل utilities.c ، با انتخاب آن در پنجره Workspace .

2. انتخاب Project>Compile

روش دیگر ، انتخاب (کلیک) image015  دکمه Compile   در نوار ابزار و یا انتخاب فرمان کامپایل وقتی که شما در پنجره Workspace  بر روی Utilities.c راست کلیک می کنید در محتویات منوی ظاهر شده دستور  Compile  را انتخاب کنید.

پردازش در پنجره پیام Build نشان داده شده است.

image016

3.      فایل Tutor.c را به همان روش کامپایل کنید.

در IDE پوشه های جدیدی در پوشه پروژه تان حالا درست شده است. به خاطر این که شما در حال استفاده از ساختمان پیکربندی Debug هستید ، یک پوشه دیباگ که زیر پوشه های List ،  obj و Exe  را هم شامل می شود ساخته شده است.

·         پوشه list که پوشه مقصد، برای فایل های لیست است. فایل های لیست دارای پیشوند lst هستند.

·         پوشه obj که پوشه مقصد برای فایل های شی (object ) از کامپایلر و اسمبلر است. این فایل ها دارای پیشوند o و در ورودی ILINK  لینکر استفاده می شوند.

·         پوشه Exe که پوشه مقصد برای فایل های اجرایی است. و پیشوند آن out  است و در وروردی دیباگر IAR C-SPY  استفاده می شود. توجه کنید که این پوشه خالی است تا زمانی که شما فایل شی (object ) را لینک کرده باشید.

بر روی علامت + در پنچره Workspace کلیک کنید تا قسمت های باز شده را مشاهده کنید. همان طور که شما می بینید، IDE  همچنین ایکن پوشه  خروجی output را در داخل پنجره workspace   که شامل تمام فایل های

تولیدی خروجی است ساخته است. که به خوبی شامل تمام فایل های  header  هستند را نشان داده است ، و نمایش وابستگی بین فایل ها هم نمایان است.

image017

 

دیدن لیست فایل

حالا به بررسی فایل لیست کامپایلر و نظر به اینکه چگونه این فایل به صورت اتوماتیک به روز رسانی (آپدیت) می شود . وقتی که شما در این مورد به چگونگی اثرات سطوح بهینه مختلف در سایز کدهای تولید شده بررسی خواهید کرد. (که

منظور همان تغییراتی که در حین کار بر روی پروژه خود بارها انجام می دهید و یا به عبارتی کد های خود را تغییر می دهید این تغییرات چگونه به روز رسانی می شود.) 

1.      فایل لیست utilities.lst را در پنجره Workspace  دابل کلیک کنید تا باز شود. فایل لیست را بررسی کنید ، که شامل اطلاعات زیر است:

·         قسمت اول این متن ورژن محصول ، اطلاعات درباره زمانی که فایل را ایجاد کرده اید ، و تشریح خط فرمان (command line  ) تنظیمات کامپایلری که شما استفاده کرده اید را نشان می دهد.

·         در قسمت بدنه فایل لیست کدهای اسمبلی و باینری که برای هر قسمتی از موضوع تولید شده را نشان می دهد، همچنین در هر بخش (section  ) نشان داده شده است که چگونه متغییر ها ارجاع شده اند.

·         و در آخر فایل لیست مقدار استک، کد، و حافظه داده ای مورد نیاز، نشان داده شده است ، و اطلاعاتی در مورد پیام های خطا و اخطاری (error and warning   ) که ممکن است تولید شده باشد  را هم شامل می شود.

توجه داشته باشید به مقدار کدهای تولید شده در آخر فایل و همچنین فایل را فعلا باز نگه دارید .

2.      از قسمت منوها Tools>Options را انتخاب کنید تا جعبه دیالوگ IDE Options باز شود و تب Editor  را کلیک کنید. گزینه scan for changed files را انتخاب کنید . (البته ممکن است که به صورت پیش فرض برای شما فعال باشد.) این گزینه را روشن کنید تا به روز رسانی به صورت اتوماتیک برای هر فایلی که در پنچره ویرایشگر (editor  ) است صورت بگیرد همانند فایل لیستی که درحال حاضر در این پنجره باز است.

image018

بر روی گزینه  ok   کلیک کنید تا تغییرات ذخیره شود.

3.      در پنجرهWorkspace  فایل  Utilities.c  را انتخاب و راست کلیک کنید و Opotions  را انتخاب کنید، از منوی محتویات C/C++ Compiler   را انتخاب تا پنجره دیالوگ باز شود. گزینه Override inherited settings   را فعال کنید و بر روی زبانه Optimizations  کلیک کنید و از قسمت level  گزینه  High  را انتخاب و Ok  کنید.

توجه کنید که گزینه override روی فایل node با یک نقطه قرمز در پنجره Workspace نشان داده شده است.(با نگه داشتن موس بر روی علامت تیکت در قسمت Utilities.c توضیحات آن قسمت نمایان می شود و موضوع تا حدودی برایتان روشن می شود.)

4.فایل  Utilities.c  را مجدد کامپایل کنید . حالا شما متوجه دو چیز خواهید شد. اول ، توجه به فایل لیست داشته باشید که به صورت اتوماتیک به روز رسانی شده است و به سبب انتخاب گزینه scan for changed files  است. دوم ، نگاه کنید به آخر فایل لیست و توجه کنید به تاثیرات سایز کد ها که به سبب افزایش بهینه سازی صورت گرفته است.

5. برای این آموزش ، سطح بهینه سازی باید به صورت پیش فرض استفاده شود (optmization level None  ) ، پس قبل از این که به لینک کردن برنامه بپردازیم ، سطح بهینه سازی را به حالت پیشفرض برگردانید. با راست کلیک کردن بر روی فایل لیست (Utilities.c )در پنجره  Workspace  و انتخاب Options   و    C/C++ Compiler   گزینه Override inherited settings   را غیر فعال کنید و بر روی Ok   کلیک کنید و مجددا فایل Utilities.c  را کامپایل کنید.

 

لینک کردن برنامه

حالا شما باید گزینه های لینکر را تنظیم کنید.

1.      آیکن پوشه پروژهproject1 - Debug   در پنجره  workspace را انتخاب کنید و سپس  Project>Options را انتخاب کنید و یا ، بر روی آیکن راست کلیک و Options را از محتویات منو انتخاب کنید. سپس  Linker  را از قسمت Category   انتخاب کنید تا صفحه تنظیمات لینکر نمایش داده شود.

image019

برای این آموزش ، تنظیمات پیش فرض نرم افزار استفاده می شود. به هر حال به انتخاب فایل پیکربندی لینکر توجه می کنیم ، تا با نحوه کار آن آشنا شویم.

 

فرمت خروجی

لینکر یک  فایل خروجی در فرمت ELF تولید می کند که شامل DWARF  است که اطلاعاتی در جهت اشکال زدایی یا همان دیباگ دارد. اگر شما به جای آن نیاز به یک فایل با فرمت استاندارد متورولا یا اینتل داشته باشید ، برای مثال بار

گذاری فایل بر روی یک حافظه  PROM  ، شما باید فایل را تبدیل کنید. شما می توانید از مبدلی که توسط  IAR Embedded Workbench  ارائه شده استفاده کنید.

 

پیکربندی فایل لینکر

کد و داده برنامه در حافظه بر طبقه پیکربندی مشخص شده در فایل پیکربندی لینکر قرار می گیرد.( پیشوند اسم فایل icf  ). آشنا شدن با حالت نوشتاری کدها یا در اصطلاح syntax  برای بخش های مختلف که به چه صورت در حافظه قرار

می گیرند بسیار مهم است.

برای مطالعه بیشتر در مورد این مسئله قسمت  IAR C/C++ Development Guide for ARM   را بخوانید.

تعاریف عرضه شده در فایل پیکربندی لینکر مربوط به هیچ نوع از سخت افزار خاصی نیست. قالب فایل پیکربندی لینکر عرضه شده با این محصول می تواند در یک شبیه ساز استفاده شود ، اما وقتی که می خواهید آن فایل را در سیستم مورد

نظر خود استفاده کنید شما باید آن را  به طرح حافظه سخت افزاری واقعی خود تبدیل کنید. شما می توانید فایل های پیکربندی لینکر را برای بعضی از بردهای ارزیابی در پوشه  src\examples پیدا کنید.

در این آموزش شما تنظیمات پیش فرض فایل پیکربندی لینکر را استفاده خواهید کرد ، همان طور که در صفحه Config  می توانید ببینید.

اگر شما می خواهید فایل پیکربندی لینکر را بررسی کنید ، از یک ویرایشگر متن مناسب استفاده کنید، برای مثال ویرایشگر خود نرم افزار ویا notepad  هم خوب است،  یا یک کپی از فایل بگیرید ، و بررسی کنید که تعاریف با نیازهای شما

مطابقت داشته باشد. روش دیگر ، این که بر روی دکمه Edit کلیک کنید تا ورایشگر فایل پیکربندی لینکر باز شود . ( البته بعد از این که گزینه  override default  را فعال کردید فایل Edit هم فعال خواهد شد.)

 

فایل نقشه لینکر

با تنظیمات پیشفرض ، فایل نقشه لینکر تولید نمی شود. برای تولید این فایل کلیک کنید در قسمت زبانه یا همان تب List  و گزینه Generate linker map file  را در صورت غیر فعال بودن انتخاب کنید.

2.      بر روی OK کلیک کنید با گزینه لینکر ذخیره شود.

حالا شما فایل شی را لینک کنید تا کد تولید شده را بتوانید اشکال زدایی کنید یا همان debug  کنید.

3.با انتخاب Project>Make . پردازش صورت خواهد گرفت و معمولا در پنچره پیغام Build نمایش داده خواهد شد. نتیجه ای لینک کردن یک کد فایل project1.out با اطلاعات اشکال زدایی که در پوشه Debug\Exe قرار

گرفته است و یک نقشه فایل که در پوشه Debug\List قرار گرفته است.

 

مشاهده فایل نقشه

فایل project1.map را بررسی کنید و چگونگی قرار گرفتن بخش ها یا همان sections ها را در حافظه  ببینید.

اطلاعات بیشتر در مورد نقشه فایل در IAR C/C++ Development Guide for ARM  .

برنامه project1.out  حالا آماده است برای اجرا شدن در C-SPY  . (به کمک این برنامه شما می توانید پروژه خودتان را پردازش کنید و با جزئیات بیشتری بررسی و اشکال زدایی کنید.)

   

 

مترجم این قسمت از آموزش توسط مدیریت سایت مهندس محمد الباشی صورت گرفته است امیدواریم که این آموزش مورد پسند شما واقع شده باشد.  با نظرات خود ما را در ادامه این کار یاری دهید .

 

 {jcomments on}

 

 

 

 

 

 

 

 

 

 

 

 

نظرات (1)

  1. محمد

دوستان در صورت استفاده کردن از این آموزش لینک فایل ها روهم خواهم گذاشت

  پیوست ها
 
نظر ارسال شده‌ی جدیدی وجود ندارد

دیدگاه خود را بیان کنید

ارسال دیدگاه بعنوان یک مهمان - ثبت نام کنید و یا وارد حساب خود شوید.
پیوست ها (0 / 3)
اشتراک‌گذاری موقعیت مکانی شما