۰۹-دى-۱۳۹۲, ۱۹:۲۳:۰۷
آموزش CooCox CoIDE جهت برنامه نویسی میکروکنترلر های Cortex-M4
این تاپیک برای مبتدی ها می باشد. در صورتی که چیزی می دانید لطفا ادامه ندهید چون فقط وقت شمار را تلف می کند
میکروکنترلر های سری Cortex-M4
همان طور که می دانید میکروکنترلر های 8051 - AVR - PIC - ... دیگر منسوخ شده اند و امروزه از Cortex-M4 استفاده می شود.
Cortex-M4 توسط شرکت های مختلفی تولید می شود از جمله شرکت های زیر
Atmel - Energy Micro - Freescale - Holtek - NXP - Nuvoton - ST - TI - Toshiba
تو ایران شرکت Atmel پر فروش ترین شرکت سازنده میکرو هست که تمام چیز هایی که تو انبار دارد و مشتری ندارد را به ایران می فرستد
تو جهان Freescale پرفروش ترین شرکت میکرو ساز است
NXP بعد از تحریم ها تو ایران جا باز کرد و بعد از Atmel پرفروش ترین شرکت در بازار ایران است
شرکت ST هم چون اروپایی است تحت تاثیر تحریم کمتر واقع شده است
چون تمام این شرکت ها میکروکنترلر Cortex-M4 می سازند برنامه نویسی مشابه داند. اما برنامه نویسی آن ها یکیان نیست. تقریبا 90 کد ها یکسان است. آن اختلاف کم هم می شود با جند روز کار کردن جبران نمود.
با توجه به امکانات در این تاپیک میکروکنترلر های شرکت ST خانواده ی STM32F4 برنامه نوشته می شود و قابل تعمیم به سایر شرکت ها است.
چون این تاپیک برای مبتدی ها می باشد لازم است سخت افزاری معرفی کنیم تا ابتدا با خیال راحت کدنویسی آن را یاد بگیرند و سپس وارد مدارات جانبی آن شوند. سخت افزار های زیاد در بازار وجود دارد اما ما در این جا سخت افزاری معرفی می کنیم که در بازار ایران در دسترس باشد. اگر شما تا به حال با میکرو های دیگر کار کردید و می دانید سخت افزار را چگونه ببنید لازم نیست این برد را تهیه نماید. بنابراین به عنوان یک مبتدی و برای شروع برد زیر را تهیه نمایید:
Discovery kit for STM32 F4 series
کافی است به بازار مراجعه کنید یا در گوگل متن فوق را جست و جو کنید و آن را به صورت اینترنتی خریداری نمایید. چندین شرکت در ایران این برد را می فروشند و چون قصد تبلیغت نداریم از آن ها اسمی به میان نمی آوریم.
IDE & compiler & debugger
IDE مخفف Integrated Development Environment به معنی «محیط یکپارچه توسعه نرمافزار» است. در واقع محیطی است که کاربر در آن برنامه می نوسید. در بین مبتدی ها اشتباها به کامپایلر معرف است !
چهار IDE معروف به شرح زیرند:
Keil
IAR
MikroC
CooCox CoIDE
البته نرم افزار های دیگری نیز وجود دارد که کمتر مورد استفاده قرار می گیرند. در بین چهار نمر افزار فوق، سه تای اول پولی هستند و برای آن یا باید پول زیادی بدهید و یا آن ها را کرک نمایید. نرم افزار Keil در بین ایرانی ها محبوبیت بیشتری دارد. نرم افزار IAR در بین ایرانی هایی که با میکروکنترلر های 8051 برنامه می نوشتند محبوبیت دارد. نرم افزار MikroC بین ایرانی هایی که با میکروکنترلر های PIC کار می کردند طرفدار دارد. اما در این تاپیک ما راه دیگر، یعنی نرم افزار رایگان را انتخاب می کنیم.
کامپایلر نمر افزار است که کد شما را از یک زبان به زبان دیگری تبدیل می کند. در این جا کد شما از زبان سی یا سی پلاس پلاس یا هر زبان دیگری به زبان ماشین (هگز) تبدیل می شود. محیط یکپارچه توسعه نرمافزار CooCox CoIDE به شما این اجازه را می دهد که از کامپایلر های متفاوتی استفاده نمیاید. ما در این جا از کامپایلر رایگان GCC استفاده می کنیم.
ادامه در پست های آتی
زبان برنامه نویسی این کامپایلر، سی پلاس پلاس است
آموزش سریع از سی پلاس پلاس برای برنامه نویسی کامپیوتر در فایل زیر موجود است. می توانید آن را دانلود نمایید و مرور نمایید.
سی پلاس پلاس در واقع تعمیم یافته زبان سی هست.
ابتدا در سی پلاس پلاس باید با موارد زیر آشنا باشید
پس از موارد فوق به مبحث کلاس می رسیم که تفاوت اساسی زبان سی پلاس پلاس با زبان سی است. در مورد کلاس ها باید با موارد زیر آشنا باشید.
در انتها می توانید مباحث زیر را یاد بگیرید. اما ضروری نیست. معمولا کسانی که رشته ی شان نرم افزار است از دستورات زیر را به کار می برند. اگر خودتان از صفر برنامه می نویسید لازم نیست یاد بگیرید اما اگر در قسمتی از برنامه هایتان می خواهید از کد های دیگران استفاده نمایید ممکن است با موارد زیر برخورد نمایید.
پیشفرض را این می گذاریم که شما سی پلاس پلاس بلدید ( یا اگر بلد نیستید از فایل بالا استفاده می کنید و یا هر منبع دیگر) و مستقیم می رویم سراغ میکروکنترلر.
اولین تجربه کار با میکروکنترلر!
ممکن است شما تا پیش از این میکروکنترلر ندیده باشید و نمی دانید چه شکلی است. در این صورت نگران نباشید و به این پست را بخوانید
بردی که تهیه کردید یعنی را Discovery kit for STM32 F4 series در جهتی که در تصویر زیر می بینید قرار دهید
مربعی سیاه رنگ در وسط برد هست. در شکل فوق دور آن با دایره زرد رنگ مشخص شده است. این همان میکروکنترلر است! اگر رویش را بخوانید (بر عکس کنید) موارد زیر را نوشته است
یعنی مدل میکروکنترلر STM32F407 است
قسمتی که با رنگ قرمز مشخص شده، پروگرامر و دیباگر است. شما در مداراتی که بعدا خود طراحی می کنید، این قسمت را نخواهید داشت. در واقع با این مدار برنامه را از رایانه به میکروکنترلر منتقل می کنند تا بعد از این برنامه بدون نیاز به اتصال به رایانه مستقیما اجرا شود.
اگر سمت چپ پروگرامر (بالا سمت چپ تصویر) را نگاه کنید یک پین هدر 6 تایی می بینید. این خروجی پروگرامر برای میکروکنترلر های دیگر است. یعنی اگر شما خودتان بعدا مداری طراحی کردید با این پین هدر می توانید میکروی آن را پروگرام کنید.
دکمه سیاه همان دکمه ریست است است که با نحوه عملکرد آن در کامپیوتر کاملا آشنا هستید
بقیه موارد روی شکل کاملا واضح اند و نیاز به توضیح ندارند. نارنجی شتاب سنج ؛ سبز مبدل دیجیتال به آنالوگ ؛ فیروزه ای میکروفون ؛ آبی خروجی صدا (نیازمند اتصال به هدفون یا اسپیکر) ؛ بنفش پورت usb میکروکنترلر هست
هنگامی که برد را می خرید برنامه ای پیشفرض روی آن نصب است. جهت دیدن آن شما از طرق پورت بالا (پورت پروگرامر) بورد را به کامپیوتر متصل کنید. می بینید چراغ های روشن شدند یعنی برد شما سالم است. سپس دکمه آبی رنگ را فشار داده و رها نمایید. اکنون سنسور شتاب سنج فعال شده و برنامه بر اساس شتاب led ها را روشن و خاموش می کند. برد را در دست گرفته و تکان دهید. می بینید که LED ها تغییر وضعیت می دهند. اگر هم اکنون بورد را از USB پاین نیز به کامپیوتر وصل کنید کار موس را انجام می دهد.
وقتی شما برنامه ی جدیدی پروگرام می کنید برنامه قبلی از کار می افتد و برنامه جدید فعال می شود. بنابراین وقتی اولین برنامه را نوشتید و ریختید دیگر شتاب سنج و موس از کار می افتد.
نصب نرم افزار های مورد نیاز
موارد زیر را به ترتیب نصب کنید.
۱- کامپایلر
سایت زیر بروید
اگر از ویندوز استفاده می کنید فایل زیر را دانلود و نصب نمایید. چون نصبش راحت است توضیح نمی دهم
توجه کنید که حتما فایل exe رادانلود نمایید. فایل zip نصب دستی است که کار راحتی نیست.
بعد از نصب فایل زیر را اجرا نمایید
اگر از لینوکس استفاده می کنید فایل زیر را دانلود نمایید
جهت راهنمای نصب (لینوکس) فایل readme.txt را مطالعه نمایید
۲- محیط یکپارچه توسعه نرمافزار
به سایت زیر بروید
در پایین صفحه روی
کلیک کنید و دانلود نمایید. در صورت نیاز حساب کاربری بسازید. سپس آن را نصب کنید.
۳- نصب درایور STM32 ST-LINK
به سایت www.st.com بروید و مسیر زیر را دنبال نمایید
فعلا معادل آدرس زیر است. با توجه به بروزرسانی های زیاد ممکن است لینک زیر از کار بیافتد. در صورتی که لینک زیر کار نکرد از همان روش بالا استفاده کنید
http://www.st.com/web/catalog/tools/FM14...7/PF251168
در این سایت فایل زیر را دانلود نمایید و آن را از حالت فشرده خارج نمایید
كد:
در صورتی که برد به رایانه وصل است آن را قطع نمایید و تا آخر این قسمت و قسمت آتی به رایانه متصل نکنید.
فایل زیر را با حالت administrator اجرا کنید.
سپس یکی از دو فایل زیر را بر اساس ۲۳ یا ۶۴ بیتی یودن ویندوزتان اجرا نمایید و مراحل آن را بروید (این قسمت ساده است و توضیح نمی خواهد)
۴- نصب واسط کاربری STM32 ST-LINK
از همان صفحه ای که در بخش قبل گفته شد فایل زیر را دانلود نمایید
این فایل را اجرا کرده و آن را نصب کنید. (این قسمت ساده است و توضیح نمی خواهد)
سپس کامپیوترتان را ریستارت نمایید. از این به بعد می توانید بردتان را به کامپیوتر متصل نمایید.
چند فایل ضروری
با توجه به این که سرعت بروزرسانی سایت ST بالا است لینک مستقیم نمی دهم. فقط صفحه را معرفی میکنم و می گویم چه فایلی را دانلود کنید
نام صفجه : Discovery kit for STM32F407/417 lines - with STM32F407VG MCU
آدرس صفحه: http://www.st.com/web/en/catalog/tools/PF252419
نام فایل اول: Programming Manual
نام فایل دوم: User Manual Discovery kit for STM32F407/417 lines
نام صفجه : STM32F407VG
آدرس صفحه: http://www.st.com/web/en/catalog/mmc/FM1...1/PF252140
نام فایل اول: Datasheet
نام فایل دوم: Reference Manual
مرجع اصلی Reference Manual است.
فایل Programming Manual مرجع اصلی و کامل زبان اسمبلی است. این جا چون ما با سی پلاس پلاس برنامه می نویسیم لازم به دانستن آن نداریم.
اولین برنامه
برنامه CoIDE را اجرا نمایید.
اگر اولین بار است که نرم افزار را اجرا کی کنید ، ابتدا از منوی Project گزینه ی "Select Toolchain path" را انتخاب نمایید. سپس آدرس محلی را که کامپیلر را در آن نصب کردید وارید نمایید. مثلا من از آدرس زیر استفاده کردم.
اکنون از منوی Project گزینه ی "New Project" را انتخاب نمایید. در پنجره باز شده نام برنامه خود را وارد کنید. به عنوان مثال first را وارد می کنیم. در صورت تمایل محل پوشه برنامه را تغییر می دهید. سپس Next می زنید. در صفحه بعدی روی Chip کلیک کنید تا سبز شود. سپس Next می زنید. در سمت چپ پنجره جدید شرکت سازنده میکروکنترلر را انتخاب می کنید. برد خریداری شده محصول ST است پس روی آن کلیک کنید تا باز شود. حال باید سری میکروکنترلر را باید انتخاب کنید که در این جا STM32F4x را انتخاب می کنیم. در نهایت مدل میکروکنترلر (در اینجا STM32F407VG) انتخاب کرده و روی Finish کلیک کنید.
اکنون پروژه ساخته شده است. برای راحتی کار می توانید از مخزن (Repository) کتابخانه ها (امکانات داخلی میکرو و درایور وسایل خارجی) را تیک بزنید تا به پروژه تان اضافه شود.
چون برنامه اول است و نمی خواهیم پیچیده باشد فقط GPIO را تیک بزنید. چون این کتابخانه وابسته به کتابخانه های دیگر نیز هست با تیک زدن آن به طور خودکار بعضی از کتابخانه های دیگر نیز تیک می خورد. تیک هایی که به طور خودکار اضافه می شوند را تغییر ندهید.
در گوشه سمت چپ روی main.c کلیک کنید تا باز شود. برنامه به صورت زیر مشاهده می کنید.
برنامه نوشته شده را به صورت زیر تغییر دهید و ذخیره کنید
دکمه F7 را بزنید تا برنامه یتان کامپایل شود.
اگر در پایین عبارت "BUILD SUCCESSFUL" را مشاهد کرده اید یعنی برنامه شما به صورت صحیح کامپایل شده است.
اکنون برد را به رایانه متصل کنید (ارتباط USB از سمت پروگرامر). توجه کنید که دو جامپر ST-LINK وصل باشد. این جامپر زمانی متصل کنید که می خواهید برنامه را روی میکرو بریزید. وقتی که برنامه را ریختید این جامپر را قطع کنید تا برنامه بدون اتصال به پروگرامر اجرا شود (مانند این که برد درگر پروگرامر ندارد)
سپس در نوار ابزار (پایین منو) روی "Download Code to Flash" کلیک کنید و منتظر بمانید تا پیام زیر را مشاهده نمایید.
اکنون می توانید جامپر پروگرامر را در بیارید و از برنامه یتان لذت ببرید!
تبریک می گویم شما یک برنامه خالی نوشتید که هیچ کار نمی کند و فقط میکروکنترلر را روشن نگه می دارد. سپس آن را کامپایل کردید و در نهایت آن را روی میکرو پروگرام کردید و اجرا کردید.
از این به بعد هر بار که خواستیم برنامه ای بنویسیم این مراحل را تکرار می کنید ( قسمت Select Toolchain path لازم نیست). تنها تفاوت این است که برنامه main.c دارای خطوط و دستورات بیشتری خواهد بود.
این تاپیک برای مبتدی ها می باشد. در صورتی که چیزی می دانید لطفا ادامه ندهید چون فقط وقت شمار را تلف می کند
میکروکنترلر های سری Cortex-M4
همان طور که می دانید میکروکنترلر های 8051 - AVR - PIC - ... دیگر منسوخ شده اند و امروزه از Cortex-M4 استفاده می شود.
Cortex-M4 توسط شرکت های مختلفی تولید می شود از جمله شرکت های زیر
Atmel - Energy Micro - Freescale - Holtek - NXP - Nuvoton - ST - TI - Toshiba
تو ایران شرکت Atmel پر فروش ترین شرکت سازنده میکرو هست که تمام چیز هایی که تو انبار دارد و مشتری ندارد را به ایران می فرستد
تو جهان Freescale پرفروش ترین شرکت میکرو ساز است
NXP بعد از تحریم ها تو ایران جا باز کرد و بعد از Atmel پرفروش ترین شرکت در بازار ایران است
شرکت ST هم چون اروپایی است تحت تاثیر تحریم کمتر واقع شده است
چون تمام این شرکت ها میکروکنترلر Cortex-M4 می سازند برنامه نویسی مشابه داند. اما برنامه نویسی آن ها یکیان نیست. تقریبا 90 کد ها یکسان است. آن اختلاف کم هم می شود با جند روز کار کردن جبران نمود.
با توجه به امکانات در این تاپیک میکروکنترلر های شرکت ST خانواده ی STM32F4 برنامه نوشته می شود و قابل تعمیم به سایر شرکت ها است.
چون این تاپیک برای مبتدی ها می باشد لازم است سخت افزاری معرفی کنیم تا ابتدا با خیال راحت کدنویسی آن را یاد بگیرند و سپس وارد مدارات جانبی آن شوند. سخت افزار های زیاد در بازار وجود دارد اما ما در این جا سخت افزاری معرفی می کنیم که در بازار ایران در دسترس باشد. اگر شما تا به حال با میکرو های دیگر کار کردید و می دانید سخت افزار را چگونه ببنید لازم نیست این برد را تهیه نماید. بنابراین به عنوان یک مبتدی و برای شروع برد زیر را تهیه نمایید:
Discovery kit for STM32 F4 series
کافی است به بازار مراجعه کنید یا در گوگل متن فوق را جست و جو کنید و آن را به صورت اینترنتی خریداری نمایید. چندین شرکت در ایران این برد را می فروشند و چون قصد تبلیغت نداریم از آن ها اسمی به میان نمی آوریم.
IDE & compiler & debugger
IDE مخفف Integrated Development Environment به معنی «محیط یکپارچه توسعه نرمافزار» است. در واقع محیطی است که کاربر در آن برنامه می نوسید. در بین مبتدی ها اشتباها به کامپایلر معرف است !
چهار IDE معروف به شرح زیرند:
Keil
IAR
MikroC
CooCox CoIDE
البته نرم افزار های دیگری نیز وجود دارد که کمتر مورد استفاده قرار می گیرند. در بین چهار نمر افزار فوق، سه تای اول پولی هستند و برای آن یا باید پول زیادی بدهید و یا آن ها را کرک نمایید. نرم افزار Keil در بین ایرانی ها محبوبیت بیشتری دارد. نرم افزار IAR در بین ایرانی هایی که با میکروکنترلر های 8051 برنامه می نوشتند محبوبیت دارد. نرم افزار MikroC بین ایرانی هایی که با میکروکنترلر های PIC کار می کردند طرفدار دارد. اما در این تاپیک ما راه دیگر، یعنی نرم افزار رایگان را انتخاب می کنیم.
کامپایلر نمر افزار است که کد شما را از یک زبان به زبان دیگری تبدیل می کند. در این جا کد شما از زبان سی یا سی پلاس پلاس یا هر زبان دیگری به زبان ماشین (هگز) تبدیل می شود. محیط یکپارچه توسعه نرمافزار CooCox CoIDE به شما این اجازه را می دهد که از کامپایلر های متفاوتی استفاده نمیاید. ما در این جا از کامپایلر رایگان GCC استفاده می کنیم.
ادامه در پست های آتی
زبان برنامه نویسی این کامپایلر، سی پلاس پلاس است
کد:
C++
آموزش سریع از سی پلاس پلاس برای برنامه نویسی کامپیوتر در فایل زیر موجود است. می توانید آن را دانلود نمایید و مرور نمایید.
کد:
http://www.cplusplus.com/files/tutorial.pdf
سی پلاس پلاس در واقع تعمیم یافته زبان سی هست.
ابتدا در سی پلاس پلاس باید با موارد زیر آشنا باشید
کد:
Variables and types
strings
Constants
Preprocessor (#include, #pragma, #define, #undef, #ifdef, #ifndef, #if, #endif, #else, #elif, #line, #error)
Operators
Basic Input/Output (cout, cin)
if and else
switch
goto
while loop
do-while loop
for loop
Jump statements (break, continue)
Functions
Overloaded functions
Arrays
Pointers
Dynamic memory (new, delete, malloc, calloc, realloc, free)
structures
typedef
Unions
enum
پس از موارد فوق به مبحث کلاس می رسیم که تفاوت اساسی زبان سی پلاس پلاس با زبان سی است. در مورد کلاس ها باید با موارد زیر آشنا باشید.
کد:
Structure of a Class
Constructors
Overloading constructors
Uniform initialization
Member initialization in constructors
Pointers to classes
Overloading operators
The keyword this
Static members
Const member functions
Class templates
Template specialization
Special members
Default constructor
Destructor
Copy constructor
Copy assignment
Move constructor and assignment
Implicit members
Friend functions
Friend classes
Inheritance between classes
Multiple inheritance
Base class
Polymorphism
Pointers to base class
Virtual members
Abstract base classes
در انتها می توانید مباحث زیر را یاد بگیرید. اما ضروری نیست. معمولا کسانی که رشته ی شان نرم افزار است از دستورات زیر را به کار می برند. اگر خودتان از صفر برنامه می نویسید لازم نیست یاد بگیرید اما اگر در قسمتی از برنامه هایتان می خواهید از کد های دیگران استفاده نمایید ممکن است با موارد زیر برخورد نمایید.
کد:
Exceptions (throw, try, catch)
Implicit conversion
explicit
Type casting (dynamic_cast, static_cast, reinterpret_cast, const_cast)
typeid
پیشفرض را این می گذاریم که شما سی پلاس پلاس بلدید ( یا اگر بلد نیستید از فایل بالا استفاده می کنید و یا هر منبع دیگر) و مستقیم می رویم سراغ میکروکنترلر.
اولین تجربه کار با میکروکنترلر!
ممکن است شما تا پیش از این میکروکنترلر ندیده باشید و نمی دانید چه شکلی است. در این صورت نگران نباشید و به این پست را بخوانید
بردی که تهیه کردید یعنی را Discovery kit for STM32 F4 series در جهتی که در تصویر زیر می بینید قرار دهید
مربعی سیاه رنگ در وسط برد هست. در شکل فوق دور آن با دایره زرد رنگ مشخص شده است. این همان میکروکنترلر است! اگر رویش را بخوانید (بر عکس کنید) موارد زیر را نوشته است
کد:
STM32F407
VGT6 Z
...
یعنی مدل میکروکنترلر STM32F407 است
قسمتی که با رنگ قرمز مشخص شده، پروگرامر و دیباگر است. شما در مداراتی که بعدا خود طراحی می کنید، این قسمت را نخواهید داشت. در واقع با این مدار برنامه را از رایانه به میکروکنترلر منتقل می کنند تا بعد از این برنامه بدون نیاز به اتصال به رایانه مستقیما اجرا شود.
اگر سمت چپ پروگرامر (بالا سمت چپ تصویر) را نگاه کنید یک پین هدر 6 تایی می بینید. این خروجی پروگرامر برای میکروکنترلر های دیگر است. یعنی اگر شما خودتان بعدا مداری طراحی کردید با این پین هدر می توانید میکروی آن را پروگرام کنید.
دکمه سیاه همان دکمه ریست است است که با نحوه عملکرد آن در کامپیوتر کاملا آشنا هستید
بقیه موارد روی شکل کاملا واضح اند و نیاز به توضیح ندارند. نارنجی شتاب سنج ؛ سبز مبدل دیجیتال به آنالوگ ؛ فیروزه ای میکروفون ؛ آبی خروجی صدا (نیازمند اتصال به هدفون یا اسپیکر) ؛ بنفش پورت usb میکروکنترلر هست
هنگامی که برد را می خرید برنامه ای پیشفرض روی آن نصب است. جهت دیدن آن شما از طرق پورت بالا (پورت پروگرامر) بورد را به کامپیوتر متصل کنید. می بینید چراغ های روشن شدند یعنی برد شما سالم است. سپس دکمه آبی رنگ را فشار داده و رها نمایید. اکنون سنسور شتاب سنج فعال شده و برنامه بر اساس شتاب led ها را روشن و خاموش می کند. برد را در دست گرفته و تکان دهید. می بینید که LED ها تغییر وضعیت می دهند. اگر هم اکنون بورد را از USB پاین نیز به کامپیوتر وصل کنید کار موس را انجام می دهد.
وقتی شما برنامه ی جدیدی پروگرام می کنید برنامه قبلی از کار می افتد و برنامه جدید فعال می شود. بنابراین وقتی اولین برنامه را نوشتید و ریختید دیگر شتاب سنج و موس از کار می افتد.
نصب نرم افزار های مورد نیاز
موارد زیر را به ترتیب نصب کنید.
۱- کامپایلر
سایت زیر بروید
کد:
https://launchpad.net/gcc-arm-embedded
اگر از ویندوز استفاده می کنید فایل زیر را دانلود و نصب نمایید. چون نصبش راحت است توضیح نمی دهم
کد:
gcc-arm-none-eabi-...-win32.exe
توجه کنید که حتما فایل exe رادانلود نمایید. فایل zip نصب دستی است که کار راحتی نیست.
بعد از نصب فایل زیر را اجرا نمایید
کد:
INSTALL_DIR\bin\gccvar.bat
اگر از لینوکس استفاده می کنید فایل زیر را دانلود نمایید
کد:
gcc-arm-none-eabi-...-linux.tar.bz2
جهت راهنمای نصب (لینوکس) فایل readme.txt را مطالعه نمایید
۲- محیط یکپارچه توسعه نرمافزار
به سایت زیر بروید
کد:
http://www.coocox.org/CooCox_CoIDE.htm
در پایین صفحه روی
کد:
Download the latest CoIDE directly
کلیک کنید و دانلود نمایید. در صورت نیاز حساب کاربری بسازید. سپس آن را نصب کنید.
۳- نصب درایور STM32 ST-LINK
به سایت www.st.com بروید و مسیر زیر را دنبال نمایید
کد:
Home > Tools and Software > Development Tool Hardware > Development Tool Hardware for MCUs > Development Tool Hardware for STM8 MCUs > Debug Hardware for STM8 MCUs > ST-LINK/V2
فعلا معادل آدرس زیر است. با توجه به بروزرسانی های زیاد ممکن است لینک زیر از کار بیافتد. در صورتی که لینک زیر کار نکرد از همان روش بالا استفاده کنید
http://www.st.com/web/catalog/tools/FM14...7/PF251168
در این سایت فایل زیر را دانلود نمایید و آن را از حالت فشرده خارج نمایید
كد:
کد:
ST-LINK/V2 USB driver for Windows ...
در صورتی که برد به رایانه وصل است آن را قطع نمایید و تا آخر این قسمت و قسمت آتی به رایانه متصل نکنید.
فایل زیر را با حالت administrator اجرا کنید.
کد:
stlink_winusb_install.bat
سپس یکی از دو فایل زیر را بر اساس ۲۳ یا ۶۴ بیتی یودن ویندوزتان اجرا نمایید و مراحل آن را بروید (این قسمت ساده است و توضیح نمی خواهد)
کد:
dpinst_amd64.exe // windows 64 bit
dpinst_x86.exe // windows 32 bit
۴- نصب واسط کاربری STM32 ST-LINK
از همان صفحه ای که در بخش قبل گفته شد فایل زیر را دانلود نمایید
کد:
STM32 ST-LINK utility
این فایل را اجرا کرده و آن را نصب کنید. (این قسمت ساده است و توضیح نمی خواهد)
سپس کامپیوترتان را ریستارت نمایید. از این به بعد می توانید بردتان را به کامپیوتر متصل نمایید.
چند فایل ضروری
با توجه به این که سرعت بروزرسانی سایت ST بالا است لینک مستقیم نمی دهم. فقط صفحه را معرفی میکنم و می گویم چه فایلی را دانلود کنید
نام صفجه : Discovery kit for STM32F407/417 lines - with STM32F407VG MCU
آدرس صفحه: http://www.st.com/web/en/catalog/tools/PF252419
نام فایل اول: Programming Manual
نام فایل دوم: User Manual Discovery kit for STM32F407/417 lines
نام صفجه : STM32F407VG
آدرس صفحه: http://www.st.com/web/en/catalog/mmc/FM1...1/PF252140
نام فایل اول: Datasheet
نام فایل دوم: Reference Manual
مرجع اصلی Reference Manual است.
فایل Programming Manual مرجع اصلی و کامل زبان اسمبلی است. این جا چون ما با سی پلاس پلاس برنامه می نویسیم لازم به دانستن آن نداریم.
اولین برنامه
برنامه CoIDE را اجرا نمایید.
اگر اولین بار است که نرم افزار را اجرا کی کنید ، ابتدا از منوی Project گزینه ی "Select Toolchain path" را انتخاب نمایید. سپس آدرس محلی را که کامپیلر را در آن نصب کردید وارید نمایید. مثلا من از آدرس زیر استفاده کردم.
کد:
C:\Program Files (x86)\GNU Tools ARM Embedded\4.8 2013q4\bin
اکنون از منوی Project گزینه ی "New Project" را انتخاب نمایید. در پنجره باز شده نام برنامه خود را وارد کنید. به عنوان مثال first را وارد می کنیم. در صورت تمایل محل پوشه برنامه را تغییر می دهید. سپس Next می زنید. در صفحه بعدی روی Chip کلیک کنید تا سبز شود. سپس Next می زنید. در سمت چپ پنجره جدید شرکت سازنده میکروکنترلر را انتخاب می کنید. برد خریداری شده محصول ST است پس روی آن کلیک کنید تا باز شود. حال باید سری میکروکنترلر را باید انتخاب کنید که در این جا STM32F4x را انتخاب می کنیم. در نهایت مدل میکروکنترلر (در اینجا STM32F407VG) انتخاب کرده و روی Finish کلیک کنید.
اکنون پروژه ساخته شده است. برای راحتی کار می توانید از مخزن (Repository) کتابخانه ها (امکانات داخلی میکرو و درایور وسایل خارجی) را تیک بزنید تا به پروژه تان اضافه شود.
چون برنامه اول است و نمی خواهیم پیچیده باشد فقط GPIO را تیک بزنید. چون این کتابخانه وابسته به کتابخانه های دیگر نیز هست با تیک زدن آن به طور خودکار بعضی از کتابخانه های دیگر نیز تیک می خورد. تیک هایی که به طور خودکار اضافه می شوند را تغییر ندهید.
در گوشه سمت چپ روی main.c کلیک کنید تا باز شود. برنامه به صورت زیر مشاهده می کنید.
کد:
int main(void)
{
while(1)
{
}
}
برنامه نوشته شده را به صورت زیر تغییر دهید و ذخیره کنید
کد:
#include "stm32f4xx.h"
#include "stm32f4xx_rcc.h"
#include "stm32f4xx_gpio.h"
int main(void)
{
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
while(1)
{
}
return 0;
}
دکمه F7 را بزنید تا برنامه یتان کامپایل شود.
اگر در پایین عبارت "BUILD SUCCESSFUL" را مشاهد کرده اید یعنی برنامه شما به صورت صحیح کامپایل شده است.
اکنون برد را به رایانه متصل کنید (ارتباط USB از سمت پروگرامر). توجه کنید که دو جامپر ST-LINK وصل باشد. این جامپر زمانی متصل کنید که می خواهید برنامه را روی میکرو بریزید. وقتی که برنامه را ریختید این جامپر را قطع کنید تا برنامه بدون اتصال به پروگرامر اجرا شود (مانند این که برد درگر پروگرامر ندارد)
سپس در نوار ابزار (پایین منو) روی "Download Code to Flash" کلیک کنید و منتظر بمانید تا پیام زیر را مشاهده نمایید.
کد:
Erase: Done
Program: Done
Verify: Done
اکنون می توانید جامپر پروگرامر را در بیارید و از برنامه یتان لذت ببرید!
تبریک می گویم شما یک برنامه خالی نوشتید که هیچ کار نمی کند و فقط میکروکنترلر را روشن نگه می دارد. سپس آن را کامپایل کردید و در نهایت آن را روی میکرو پروگرام کردید و اجرا کردید.
از این به بعد هر بار که خواستیم برنامه ای بنویسیم این مراحل را تکرار می کنید ( قسمت Select Toolchain path لازم نیست). تنها تفاوت این است که برنامه main.c دارای خطوط و دستورات بیشتری خواهد بود.