ساخت پروژه در Keil در نسخه های جدید این نرم افزار، لازمه اش نصب پک های مربوط به میکروکنترلرهاست. در نسخه های قدیمی تر، فایل های مربوط به میکروکنترلرها را پس از نصب، اضافه می کردیم. و در این صورت فضایی که نرم افزار اشغال می کرد، بیشتر می شد. اما در نسخه های جدیدتر، با اتصال به اینترنت، تنها پک های میکروکنترلرهای مورد نیاز را نصب می کنیم. در این صورت فضایی که نرم افزار از حافظۀ کامپیوتر اشغال می کند، کمتر می شود. همچنین می توان در صورت نیاز، با اتصال به اینترنت، پک ها را نصب و آپدیت کرد. در این نوشته ابتدا به طور خلاصه، نرم افزار Keil را معرفی می کنیم و می بینیم که نرم افزار Keil چیست. سپس به نصب نرم افزار Keil می پردازیم و در نهایت با نحوۀ ایجاد پروژه در نرم افزار Keil آشنا می شویم.
نرم افزار Keil یا Keil MDK یا MDK (مخفف Microcontroller Development Kit) که ساخت شرکت Keil است، برای توسعۀ طیف وسیعی از میکروکنترلرهای ARM Cortex-M و میکروکنترلرهای دیگر است. این نرم افزار شامل یک IDE است که µVision IDE نام دارد. همچنین شامل محیط ویرایشگر کد، پروگرامر و دیباگر، شبیه ساز، کامپایلر و … است. و این امکان را به کاربر می دهد که به راحتی بتواند برای میکروکنترلرها برنامه نویسی کند. نرم افزار Keil از بیش از 9000 قطعه پشتیبانی می کند. این نرم افزار را بیشتر برای برنامه نویسی میکروکنترلرهای ARM به کار می گیریم. اما علاوه بر میکروکنترلرهای ARM Cortex-M، از همۀ میکروکنترلرهای 8051 و 80251 و میکروکنترلرهای C166 و XC166 و XC2000 پشتیبانی می کند. ویدئوی زیر، نحوۀ نصب نرم افزار Keil و فعال سازی آن است.
نکته: قبل از شروع به نصب نرم افزار، آنتی ویروس را غیر فعال کنید.
فیلم آموزش میکروکنترلرهای AVR مقدماتی
ویدئوی 1 – نحوۀ نصب نرم افزار Keil
اضافه کردن میکروکنترلر به Keil در پنجرۀ Pack Installer
برای ساخت پروژه در Keil، باید از پنجرۀ Pack installer، پک های مربوط به میکروکنترلر مورد نظر را نصب کنیم. برای این کار ابتدا از اتصال به اینترنت اطمینان حاصل می کنیم. سپس روی آیکون Pack installer کلیک می کنیم (1). در پنجرۀ باز شده صبر می کنیم تا لیست آپدیت شود (2). سپس از تب Devices در قسمت Search میکروکنترلر مورد نظر را جست و جو می کنیم (3). در نتایج به دست آمده، روی آن کلیک می کنیم (4). در سمت راست از تب Packs، پک های مورد نیاز را در صورتی که نصب نیستند، نصب می کنیم (5). در صورتی هم که نصب هستند و آپدیت نیستند، می توانیم آنها را آپدیت کنیم (5). پس از آپدیت وضعیت آنها در ستون Action به صورت Up to date در می آید. در نهایت می توانیم پنجرۀ Pack installer را ببندیم (6). پس از آن ممکن است پنجرۀ دیگری باز شود، مبنی بر این که آیا پک جدید اضافه یا آپدیت شود یا خیر. که آن را تأیید می کنیم.
نکته: پک های مورد نیاز ساخت پروژه در نرم افزار Keil برای کدنویسی میکروکنترلرهای STM32 به صورت تصویر زیر است. برای میکروکنترلرهای LPC17xx هم به صورت تصویر زیر است. اما برای این میکروکنترلرها، پک با انتهای نام BSP وجود ندارد و تنها پک با انتهای نام DFP وجود دارد.
تصویر 1 – پنجرۀ Pack installer و اضافه کردن میکروکنترلر به Keil پیش از ساخت پروژه در Keil
ساخت پروژه در Keil
در این قسمت برای توضیح ایجاد پروژه در Keil، به ساخت پروژه STM32 در Keil می پردازیم. ساخت پروژه LPC در Keil و در کل، بقیۀ میکروکنترلرها هم به همین صورت است که در ادامه می بینیم. از منوی Project روی New uVision Project کلیک می کنیم (1). در پنجره ای که باز می شود، نام و محل ذخیرۀ پروژه را تعیین و پروژه را ذخیره می کنیم (2 و 3). سپس پنجرۀ انتخاب میکروکنترلر باز می شود. در بخش جست و جوی آن، میکروکنترلر مورد نظر خود را جست و جو می کنیم (4). آن را انتخاب و سپس روی OK کلیک می کنیم (5 و 6). در پنجرۀ Manage Run-Time Environment بخش های CMSIS و Device را باز می کنیم. و در این بخش ها Core و Startup را تیک می زنیم (7 و 8). در نهایت روی Ok کلیک می کنیم (9).
تصویر 2 – ساخت پروژه در Keil، انتخاب فایل های مورد نیاز
پس از ساخته شدن پروژه، فایل هایی را که تیک زده بودیم، به پروژه اضافه می شوند (1). حال می خواهیم یک فایل به پروژه اضافه کنیم. برای مثال فایل main که برنامۀ اصلی را در آن بنویسیم. از منوی File روی New کلیک می کنیم (2). در پنجرۀ Sava as، نام فایل و پسوند و محل ذخیرۀ آن را مشخص می کنیم (3). ما فایل main را در همان پوشۀ پروژه ذخیره می کنیم. اگر بخواهیم به زبان C++ برنامه نویسی کنیم، باید پسوند فایل، cpp باشد. ما پسوند فایل main را c قرار می دهیم. بنابراین برنامه ای که می توانیم بنویسیم، به زبان C است. برنامۀ مورد نظر را در فایلی که ایجاد کرده ایم، می نویسیم (4). اگر این برنامه را کامپایل کنیم، کامپایلر خطا می گیرد. چون فایلی را که ایجاد کرده ایم به پروژه اضافه نکرده ایم.
تصویر 3 – ساخت پروژه در Keil، ایجاد فایل برای برنامه نویسی
اضافه کردن فایل به پروژه
برای اضافه کردن فایل های سورس کد به پروژه، چه فایل با پسوند c باشد، چه با پسوند cpp، باید روی آیکون File Extensions کلیک کنیم (1). در تب Project Items (شمارۀ 2) در بخش Groups، نام پوشۀ موجود را تغییر می دهیم و یا پوشه ای را ایجاد می کنیم. با دابل کلیک کردن روی پوشه، می توان نام آن را تغییر داد (3 و 4). وقتی پوشۀ مورد نظر انتخاب شده است، روی دکمۀ Add Files کلیک می کنیم (5). فایل های سورس کد را جست و جو و انتخاب و آنها را به پوشه اضافه می کنیم (6 و 7). در بخش فایل ها در سمت راست پنجره، فایل های اضافه شده، قابل مشاهده هستند (8). پس از افزودن همۀ فایل های مربوط به پوشه، روی دکمۀ Close کلیک می کنیم (9). می توانیم پوشه های دیگری اضافه و برای آنها نامی انتخاب (3 و 4) و مراحل قبلی را برای آنها تکرار کنیم. سپس روی دکمۀ OK کلیک می کنیم (10). بعد از آن می بینیم پوشه هایی که ایجاد و فایل هایی که به پروژه اضافه کرده ایم، در پنل Project نمایش داده می شوند (11). در این صورت اگر برنامه را کامپایل کنیم، بدون خطا کامپایل می شود.
تصویر 4 – ساخت پروژه در Keil، اضافه کردن فایل های سورس کد به پروژه
برخی تنظیمات لازم در نرم افزار Keil
تا این لحظه به ساخت پروژه در Keil پرداختیم. اما برای اضافه کردن فایل های هدر (فایل هایی با پسوند h)به پروژه، دو روش وجود دارد. روش اول این است که مسیر آن در دستور پیش پردازندۀ include آورده شود. مثلاً کتابخانۀ delay.h درون پوشۀ Libs قرار گرفته است و پوشۀ Libs هم در کنار فایل main.c. در این صورت می توانیم بنویسیم:
#include "Libs/delay.h"
یا این که می توانیم مسیر پوشۀ Libs را به نرم افزار بدهیم. در این صورت می توانیم بنویسیم:
#include "delay.h"
برای این کار روی آیکون Options for Target کلیک می کنیم (1). در پنجرۀ باز شده، در تب C/C++ (شمارۀ 2) در بخش Include Paths، روی آیکون Browse کلیک می کنیم (3). پنجره ای باز می شود. برای افزودن مسیر پوشه، روی دکمۀ مربوط کلیک می کنیم (4). سپس روی Browse کلیک و پوشۀ حاوی فایل هدر را جست و جو و اضافه می کنیم (5 و 6). در نهایت روی OK کلیک می کنیم (7 و 8).
تصویر 5 – افزودن مسیر پوشۀ فایل های هدر به پروژه در نرم افزار Keil
نکته: مسیر کتابخانه های محل نصب نرم افزار، به صورت پیش فرض به پروژه اضافه می شوند. و نیازی نیست که آنها را به این صورت که توضیح دادیم، به پروژه اضافه کنیم.
نکته: اگر کتابخانه، فایل با پسوند c یا cpp داشته باشد، باید آن را مشابه فایل main.c که بیان کردیم، به پروژه اضافه کنیم.
برای این که فایل HEX موقع کامپایل ساخته شود، پنجرۀ Options for Target را باز می کنیم (1). از تب Outputs (شمارۀ 2) تیک Create HEX File را می زنیم (3) و روی OK کلیک می کنیم (4). در این صورت بعد از کامپایل، یک فایل HEX هم ایجاد می شود. که برای پروگرام کردن میکروکنترلر توسط نرم افزارهای پروگرامر، مورد استفاده قرار می گیرد.
پروگرام کردن STM32 با JTAG و SWD و بوت لودر
تصویر 6 – تنظیمات مربوط به ایجاد فایل HEX بعد از کامپایل در Keil
نتایج ساخت پروژه در Keil و نصب آن
- نرم افزار Keil یک نرم افزار شناخته شده برای برنامه نویسی میکروکنترلرهایی با پردازندۀ ARM Cortex-M است. اما این نرم افزار از میکروکنترلرهای دیگری نیز پشتیبانی می کند.
- پس از نصب Keil، برای ایجاد پروژه در آن باید ابتدا از Pack installer، پک های مربوط به میکروکنترلر مورد نظر را به نرم افزار اضافه کرد.
- در پنجرۀ Pack installer امکام نصب پک ها و آپدیت آنها وجود دارد.
- برای ساخت پروژه در کیل وجود دو فایل ضروری است. یکی فایل Core و دیگری فایل Startup. که این دو فایل از پنجرۀ Manage Run-Time Environment به پروژه اضافه می شوند.
- برای اضافه کردن فایل های سورس کد به پروژه، باید با کلیک روی آیکون File Extensions، پنجرۀ Manage Project Items را باز کرد.
- برای مشخص کردن مسیر پوشۀ کتابخانه ها در پروژه دو راه وجود دارد. یکی با استفاده از تنظیمات نرم افزار و از طریق پنجرۀ Options for Target و دیگری، آوردن مسیر در دستور پیش پردازندۀ include.
- در نرم افزار Keil، فایل HEX به صورت پیش فرض ساخته نمی شود. باید از پنجرۀ Options for Target، تنظیمات مربوط به آن را انجام داد. تا پس از کامپایل، فایل HEX ساخته شود.
سلام استاد
واقعا عالی بود. ممنون
سلام. خیلی ممنون. خواهش میکنم.
سلام. اینکه از نرم افزار Keil استفاده کنیم یا نه یه سوال خیلی مهمه. خواستم نظر شما رو در این رابطه بدونم.
سلام. این پاسخ رو توی چند جمله میدم چون قراره که توی نوشته های آینده در موردش خیلی صحبت کنیم. در مورد KEIL اگه کسی میگه فایده ای نداره، باید بررسی کنیم ببینیم چرا این نظر رو داره. کیل حدوداً 40 ساله ساخته شده (1982) و 15 سالی هست (2005) که شرکت ARM اونو خریده. توی تمام سایت های سازندگان میکروکنترلرها اگر برید میبینید که خود شرکت های سازندگان میکروکنترلرها هم IDE های خودشون رو دارن. مثلاً شرکت ST جدیداً STM32CubeIDE رو داره، شرکت TI نرم افزار Code Composer Studio رو داره، شرکت NXP نرم افزار جدید LPCXpresso رو داره. اما همۀ اونها هم قبل از اینکه نرم افزارهای خودشون رو داشته باشن، نرم افزار Keil همیشه یکی از دو پیشنهاد اولشون بوده. و الان که نرم افزارهای جدیدی دارن هم به جز نرم افزار خودشون، نرم افزار Keil معمولاً جزء دو پیشنهاد اولشون در کنار IAR هست. از طرفی نرم افزار Keil رو الان شرکت ARM داره توسعه میده. شرکت ARM خودش سازندۀ پردازنده هایی هست که شرکت هایی که میکروکنترلر میسازن از پردازنده های اون استفاده می کنن و میکروکنترلر می سازن و برای اون میکروکنترلر میان نرم افزار IDE می سازن. پس Keil رو اصلاً دست کم نگیرید. ما الان برای میکروکنترلرهای ARM حدوداً 30 تا نرم افزار IDE داریم که Keil همیشه یکی از 3 پیشنهاد اول هست.
سلام
دست مریزاد
خیلی خوب بود
سلام. خواهش میکنم.
علاوه براین اکنون STM در سایت رسمی Keil را همکار معرفی کرده است و لینک آن را در سایت STM قرار داده
سلام. استاد امکانش هست بعد از ایجاد پروژه پنجره پک اینستالرو باز کنیم؟ و سوال دیگه این که اصلا نیازی هست که بعد از ساخته شدن پروژه بخوایم پکی رو به برنامه اضافه کنیم؟ ممنون
سلام. بله امکانش هست بعد از ساخت پروژه این کار رو بکنید. اما اگر که این کار انجام نشه، میکروکنترلر برای نرم افزار تعریف نمیشه و کتابخونه های استارت آپ و سیستم و … هم به برنامه اضافه نمیشن.
سلام استاد. من خیلی وقت نیست که میکروکنترلرهای stm32 رو شروع کردم. خواستم ببینم از کجا باید بدونم توی پک اینستالر چه پک و چه فایلی رو آپدیت کنم؟ خیلی ممنون
سلام. در نرم افزار کیل مثل هر نرم افزار دیگه ای باید کامپایلر موردنظرتون به پروژه اضافه شده باشه و میکروکنترلر موردنظر به نرم افزار معرفی بشه. این موارد در نرم افزارهای نسل قبل کاملا آفلاین بودند و با نصب نرم افزار، همۀ موارد لازم به پروژه اضافه می شدند. اما الان باتوجه به اینکه نرم افزار کیل، تعداد میکروکنترلرهایی که ساپورت میشه بسیار زیاد هست، اگر قرار باشه کل متعلقات برای تمام میکروکنترلرهایی که این نرم افزار ساپورت میکنه، در همون ابتدا به پروژه اضافه بشن، حجم نرم افزار زیاد میشه. توی نرم افزار کیل توی پک اینستالر، میتونید برای میکروکنترلر موردنظر، کامپایلر موردنظر، کتابخونه های cmsis، کتابخانه های rtos و … را به پروژه اضافه کنید.
سلام مهندس من یکی از بردهای شما رو خریدم ولی نمیتونم بدون پروگرومر جدا باهاش کار کنم چون توی توضیحاتتون نوشتید میشه بدون پروگرامر خارجی کار کرد ولی هیچ توضیحی از این بابت پیدا نکردم و اون لینک سایت یوبرد هم خالیه و باز نمیشه ممنون میشم راهنمایی بفرمایید
سلام دوست عزیز. لینک دانلود تصحیح شد. میتونید راهنمای برد رو دانلود کنید. برای دانلود اینجا کلیک کنید. اگه قبلا از طریق حساب کاربریتون خرید کردید، تو حساب کاربریتون بخش دانلودها میتونید این فایل رو دانلود کنید.
سلام مهندس
با چه پروگرامری میشه برنامه ی ای سی های آرم رو خوند و برشون داشت ؟
اصلا راهی وجود داره ؟
من خیلی سرچ کردم به نتیجه ای نرسیدم شما میتونید کمکم کنید ؟
سلام. حافظۀ Flash میکروکنترلرهای STM32 رو میشه با پروگرامر ST-Link و J-Link خوند. به نوشته های پروگرامر J-Link و نرم افزار ST-Link Utility و پروگرام کردن STM32 مراجعه کنید. البته این در صورتی امکان داره که حافظه رو قفل نکرده باشن. در غیر این صورت به روش های ذکر شده توی این نوشته ها نمیشه حافظه رو خوند. پروگرامر J-Link قابلیت خوندن از میکروکنترلرهایی رو که پشتیبانی میکنه، داره. بنده STM32F103VE و LPC1768 رو تست کردم و جواب گرفتم. موفق باشید.
سلام، توضیحات بسیار خوبی بود. ممنونم
سلام. خیلی لطف دارید. خواهش میکنم
خیلی خوب بود مهندس ممنون از لطفا شما
سلام. خیلی ممنون لطف دارید. خواهش میکنم
سلام ببخشید این نرم افزار keil برای برنامه نویسی stm8هم قابل استفاده است.