ساخت پروژه در Keil و نصب آن

توسط | 25 دی, 1398 | lpc, STM32, میکروکنترلر | 19 دیدگاه ها

ساخت-پروژه-keil

آموزش STM32 یوبرد

شروع بازی ST

آموزش های رایگان STM32

فیلم های آموزش STM32

آموزش خصوصی STM32

ساخت پروژه در 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 مقدماتی

فیلم آموزش ARM STM32 مقدماتی

فیلم آموزش آردوینو مقدماتی

ویدئوی 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). اگر این برنامه را کامپایل کنیم، کامپایلر خطا می گیرد. چون فایلی را که ایجاد کرده ایم به پروژه اضافه نکرده ایم.

ساخت پروژه در STM32CubeIDE

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

تصویر 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 و بوت لودر

ساخت-خروجی-hex

تصویر 6 – تنظیمات مربوط به ایجاد فایل HEX بعد از کامپایل در Keil

نتایج ساخت پروژه در Keil و نصب آن

  1. نرم افزار Keil یک نرم افزار شناخته شده برای برنامه نویسی میکروکنترلرهایی با پردازندۀ ARM Cortex-M است. اما این نرم افزار از میکروکنترلرهای دیگری نیز پشتیبانی می کند.
  2. پس از نصب Keil، برای ایجاد پروژه در آن باید ابتدا از Pack installer، پک های مربوط به میکروکنترلر مورد نظر را به نرم افزار اضافه کرد.
  3. در پنجرۀ Pack installer امکام نصب پک ها و آپدیت آنها وجود دارد.
  4. برای ساخت پروژه در کیل وجود دو فایل ضروری است. یکی فایل Core و دیگری فایل Startup. که این دو فایل از پنجرۀ Manage Run-Time Environment به پروژه اضافه می شوند.
  5. برای اضافه کردن فایل های سورس کد به پروژه، باید با کلیک روی آیکون File Extensions، پنجرۀ Manage Project Items را باز کرد.
  6. برای مشخص کردن مسیر پوشۀ کتابخانه ها در پروژه دو راه وجود دارد. یکی با استفاده از تنظیمات نرم افزار و از طریق پنجرۀ Options for Target و دیگری، آوردن مسیر در دستور پیش پردازندۀ include.
  7. در نرم افزار Keil، فایل HEX به صورت پیش فرض ساخته نمی شود. باید از پنجرۀ Options for Target، تنظیمات مربوط به آن را انجام داد. تا پس از کامپایل، فایل HEX ساخته شود.

 

رضا اسدی

رضا اسدی

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

سفارش پروژه میکروکنترلر یوبرد

زیرساخت مطمئن صنعت

جدیدترین تاپیک های STM32

راه-اندازی-dac-stm32

راه اندازی DAC در STM32

راه اندازی DAC در STM32، ویژگی های DAC در میکروکنترلرهای STM32F1، بلوک دیاگرام DAC در STM32، اتصالات راه اندازی DAC در میکروکنترلر STM32F107VC، نمونه کد رجیستری راه اندازی واحد DAC در میکروکنترلرهای STM32F1، ساخت موج سینوسی با STM32، راه اندازی مبدل دیجیتال به آنالوگ STM32 با توابع HAL

راه-اندازی-usart-stm32

راه اندازی UART در STM32، رجیستری و HAL

راه اندازی UART در STM32، اتصالات و نرم افزار مورد نیاز، نمونه کد USART در STM32 به صورت رجیستری، نمونه کد رجیستری USART با وقفۀ دریافت، نمونه کد HAL برای راه اندازی USART در STM32، نمونه کد HAL با وقفۀ دریافت، نحوه محاسبه Baud rate در USART میکروکنترلرهای STM32F1

برنامه-نویسی-میکروکنترلر-ویژوال-استودیو

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

نصب VisualGDB روی ویژوال استودیو، ساخت پروژه برای برنامه نویسی میکروکنترلرها با ویژوال استودیو، ساخت پروژه برای STM32 در ویژوال استودیو، کدنویسی STM32 در ویژوال استودیو، ساخت پروژه برای AVR در ویژوال استودیو، ساخت پروژه برای LPC در ویژوال استودیو، ساخت پروژۀ آردوینو در ویژوال استودیو

راه-اندازی-adc-stm32

راه اندازی ADC در STM32، رجیستری و HAL

راه اندازی ADC در STM32، استفاده از پیکربندی Independent، کانال تکی، تبدیل Discontinuous و کانال Regular، اتصالات لازم برای راه اندازی واحد ADC در STM32، نمونه کد رجیستری، نمونه کد ADC میکروکنترلر STM32 با HAL، خواندن از چند کانال ADC با توابع HAL، توابع HAL راه اندازی ADC

19 دیدگاه ها

  1. سلام استاد
    واقعا عالی بود. ممنون

    پاسخ
    • سلام. خیلی ممنون. خواهش میکنم.

      پاسخ
  2. سلام. اینکه از نرم افزار 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 پیشنهاد اول هست.

      پاسخ
  3. سلام
    دست مریزاد
    خیلی خوب بود

    پاسخ
    • سلام. خواهش میکنم.

      پاسخ
  4. سلام. استاد امکانش هست بعد از ایجاد پروژه پنجره پک اینستالرو باز کنیم؟ و سوال دیگه این که اصلا نیازی هست که بعد از ساخته شدن پروژه بخوایم پکی رو به برنامه اضافه کنیم؟ ممنون

    پاسخ
    • سلام. بله امکانش هست بعد از ساخت پروژه این کار رو بکنید. اما اگر که این کار انجام نشه، میکروکنترلر برای نرم افزار تعریف نمیشه و کتابخونه های استارت آپ و سیستم و … هم به برنامه اضافه نمیشن.

      پاسخ
  5. سلام استاد. من خیلی وقت نیست که میکروکنترلرهای stm32 رو شروع کردم. خواستم ببینم از کجا باید بدونم توی پک اینستالر چه پک و چه فایلی رو آپدیت کنم؟ خیلی ممنون

    پاسخ
    • سلام. در نرم افزار کیل مثل هر نرم افزار دیگه ای باید کامپایلر موردنظرتون به پروژه اضافه شده باشه و میکروکنترلر موردنظر به نرم افزار معرفی بشه. این موارد در نرم افزارهای نسل قبل کاملا آفلاین بودند و با نصب نرم افزار، همۀ موارد لازم به پروژه اضافه می شدند. اما الان باتوجه به اینکه نرم افزار کیل، تعداد میکروکنترلرهایی که ساپورت میشه بسیار زیاد هست، اگر قرار باشه کل متعلقات برای تمام میکروکنترلرهایی که این نرم افزار ساپورت میکنه، در همون ابتدا به پروژه اضافه بشن، حجم نرم افزار زیاد میشه. توی نرم افزار کیل توی پک اینستالر، میتونید برای میکروکنترلر موردنظر، کامپایلر موردنظر، کتابخونه های cmsis، کتابخانه های rtos و … را به پروژه اضافه کنید.

      پاسخ
  6. سلام مهندس من یکی از بردهای شما رو خریدم ولی نمیتونم بدون پروگرومر جدا باهاش کار کنم چون توی توضیحاتتون نوشتید میشه بدون پروگرامر خارجی کار کرد ولی هیچ توضیحی از این بابت پیدا نکردم و اون لینک سایت یوبرد هم خالیه و باز نمیشه ممنون میشم راهنمایی بفرمایید

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

      پاسخ
  7. سلام مهندس
    با چه پروگرامری میشه برنامه ی ای سی های آرم رو خوند و برشون داشت ؟
    اصلا راهی وجود داره ؟
    من خیلی سرچ کردم به نتیجه ای نرسیدم شما میتونید کمکم کنید ؟

    پاسخ
    • سلام. حافظۀ Flash میکروکنترلرهای STM32 رو میشه با پروگرامر ST-Link و J-Link خوند. به نوشته های پروگرامر J-Link و نرم افزار ST-Link Utility و پروگرام کردن STM32 مراجعه کنید. البته این در صورتی امکان داره که حافظه رو قفل نکرده باشن. در غیر این صورت به روش های ذکر شده توی این نوشته ها نمیشه حافظه رو خوند. پروگرامر J-Link قابلیت خوندن از میکروکنترلرهایی رو که پشتیبانی میکنه، داره. بنده STM32F103VE و LPC1768 رو تست کردم و جواب گرفتم. موفق باشید.

      پاسخ
  8. سلام، توضیحات بسیار خوبی بود. ممنونم

    پاسخ
    • سلام. خیلی لطف دارید. خواهش میکنم

      پاسخ
  9. خیلی خوب بود مهندس ممنون از لطفا شما

    پاسخ
    • سلام. خیلی ممنون لطف دارید. خواهش میکنم

      پاسخ
  10. سلام ببخشید این نرم افزار keil برای برنامه نویسی stm8هم قابل استفاده است.

    پاسخ

یک دیدگاه بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دیگر آموزش های یوبرد

آموزش FreeRTOS یوبرد

زمان واقعی در میکروکنترلر و پردازنده های کوچک با FreeRTOS

آموزش طراحی PCB و نویز یوبرد

تجسم دنیای الکترونیک

آموزش زبان C و MISRA-C یوبرد

گام نخست دنیای میکروکنترلر

آموزش لحیم کاری و IPC-A-610 یوبرد

ساخت دنیای الکترونیک

آموزش آردوینو یوبرد

جادۀ آسفالت میکروکنترلر

آموزش ماژول های SIM800 یوبرد

تلفن همراه صنعت

آموزش زبان ++C و ++MISRA-C یوبرد

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

آموزش میکروکنترلرهای AVR یوبرد

شاهکار 8 بیتی Atmel

آموزش میکروکنترلرهای LPC یوبرد

یادگار فیلیپس

آموزش های شاخص

ضبط پیام صوتی

زمان هر پیام صوتی 4 دقیقه است