ARM, STM, STM8, آموزش, توصیه شده, مقاله

قسمت پنجم: آماده سازی ابزارهای نرم‌افزاری برای STM8

Stm8 Start Programming

در قسمت قبلی سیسوگ نحوه کار با نرم‌افزار کاربردی STM8CubeMX را آموزش داد. حال، قبل از شروع برنامه نویسی برای میکروکنترلر STM8 به یک سری اطلاعات نیاز داریم که با همراهی سیسوگ این اطلاعات را می‌توانید بدست آورید. هم‌چنین با کتابخانه استاندارد SPL و محیط نرم‌افزاری STVD آشنا می‌شوید:

STM8 Reference Manual

دیتاشیت (MCU (STM8S003 که از آن استفاده می‌کنیم.

راهنمای کاربر STM8SVLDiscovery Board.

این‌ها اطلاعاتی هستند که در طول دوره یادگیری به آن‌ها نیاز داریم. Reference Manual ها همه جا مورد استفاده هستند و جزئیات بلوک‌های سخت افزاری را در اختیار قرار می‌دهند، که شامل توضیحات رجیستری، نام‌گذاری، حالت عملکرد سخت‌افزار و غیره است. که این مرجع برای تمام میکروهای STM8S و STM8AF تهیه شده است و تنها  یک STM8 مشخص را بیان نمی‌کند. همانطور که می‌دانید در خانواده‌ای از میکروها، هر MCU با MCU های دیگر متفاوت است. بیشتر این اختلاف‌ها به ظرفیت حافظه و تعداد پین‌ها برمی‌گردد. گاهی اوقات مشخصات الکتریکی نیز متفاوت است و برای بدست آوردن مشحصات کلی MCU مورد نظر باید به دیتاشیت آن مراجعه کنیم. در نهایت راهنمای کاربر Discovery board برای تخصیص پین‌ها و طرح‌های سخت‌افزاری مناسب است که پیشنهاد می‌کنم از این الگو استفاده کنید.

حال، با نصب برنامه‌های Cosmic، STVD و STVP ابزارهای نرم‌افزاری ما آماده هستند. دو روش برای پروگرام کردن STM8 وجود دارد. اولین روش استفاده از روش‌های سنتی برای برنامه‌نویسی است. روش دوم، استفاده از روش‌های متداول برنامه‌نویسی با استفاده از کتابخانه‌های استاندارد توسعه یافته توسط STM است که همگانی هستند. بدین معنی که کد نوشته به زبان C برای هر کامپایلری که از این کتابخانه‌ها استفاده می‌کند بدون اینکه نیازی به تغییر ،مورد استفاده است. این کتابخانه‌ها ” کتابخانه‌های استاندارد محیطی”(Standard Peripheral Libraries (SPL” نامیده می‌شوند. با استفاده از این کتابخانه‌ها دیگر نیازی به تعریف سطوح اولیه برنامه‌نویسی نیست. کتابخانه‌ها به گونه‌ای برنامه‌نویسی شده‌اند که تنها لازم است برنامه‌نویس مشخصات سخت‌افزاری تراشه‌ها و برخی از اصول این سخت‌افزارها را بداند. در قسمت برنامه‌نویسی تنها کافی است برنامه‌نویس خواص و مقادیر مورد نظر را تنظیم نماید. SPL بقیه موارد را مدیریت می‌کند. به عنوان مثال، هنگام تنظیم UART ، تنها نیاز به تنظیم وقفه‌ها، ویژگی‌های I/O و ویژگی‌های UART مانند سرعت بوت (baud rate)، توازن و … است. همه این تنظیمات با اعداد و متون معنی‌دار انجام می شود.

کتابخانه‌های استاندارد محیطی  (SPL) را برای میکروکنترلرهای STM می‌توانید از اینجا دانلود کنید.

در این مقاله از SPL استفاده شده است زیرا برای STM8s استفاده از روش‌های قدیمی برای پیکربندی به صورت دستی چندان مناسب نیست. بنابراین، دانلود فایل بالا الزامی است. باید فایل زیپ SPL دانلود شده را نگهداری کنید تا در زمانی که همه چیز خراب شد بتوانید از آن استفاده کنید.

دو پوشه به نام‌های  “inc” و “src” ایجاد کنید. پوشه “inc” با تمام فایل‌های هدر (فایل های با پسوند “.h”) که از فایل زیپ استخراج می‌شوند پر می‌شود. بطور مشابه، گوشه “src” با فایل‌های سورس (فایل‌هایی با پسوند “.c”) پر می‌شود. برای راحتی بیشتر، بهتر است این پوشه‌ها را به صورت فایل زیپ نگهداری کنید زیرا هربار که پروژه جدیدی ایجاد کنیم به فایل‌های این پوشه‌ها نیاز دارید. شما می‌توانید این فایل‌ها را در پوشه پروژه خود کپی کنید و یا می‌توانید آن را بطور مرکزی در جایی نگهداری کنید. من ترجیح می‌دهم از روش اول استفاده کنم و هیچ مشکلی برای سایر پروژه‌هایی که نیازی به تغییر ندارند پیش نمی‌آید. تنها بخشی از فضای هارد دیسک را هزینه می‌کنید ولی این روش برای مبتدیان کمتر گیج کننده و بدون دردسر است. تمامی فایل‌ها را به صورت زیر استخراج نمایید:

فایل‌های هدر و سورس کتابخانه SPL

 

همانطور که میبینید تعداد فایل‌های هدر از فایل‌های سورس بیشتر است. به این دلیل که دوتا فایل هدر stm8s.h  و stm8s_conf.h که نوع پردازنده  وخواص پردازنده را مشخص می‌کند اضافه شده‌اند. برای راه‌اندازی  stm8s_conf.h باید خط زیر را در فایل آن کامنت و یا غیر فعال نمایید، در غیر این صورت کامپایلر برای شما پیغام خطا نمایش می‌دهد. همیشه در ابتدای پروژه‌ها این را خط را چک کنید.

 

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

با فرض اینکه STVD، STVP و Cosmic به درستی نصب شده باشند، خواهیم دید که چگونه یک پروژه جدید ایجاد کنیم.

  • در ابتدا برنامه STVD را اجرا کنید.
  • File >> New Workspace را انتخاب کنید.

محیط برنامه STVD

 

  • Create workspace and project را انتخاب نمایید.

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

  • پوشه workspace و نام workspace را انتخاب نمایید.

 

 

WorkSpace جدید در نرم‌افزار STVD

 

  • نام پروژه را وارد نمایید و در قسمت  toolchain ،گزینه  STM8 Cosmic را انتخاب نمایید. نیاز هست که مسیری که کامپایلر در آن نصب شده را مشخص نمایید. این مسیر در کامپیوتر من به صورت زیر است:

C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8

 

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

 

  • نوع میکروکنترلر STM8 مورد استفاده خود را انتخاب نمایید.

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

 

  • حال فایل‌های هدر و سورس را از پوشه SPL به برنامه ساخته شده در محیط نرم‌افزاری STVD اضافه نمایید.

 

 اضافه کردن فایل های هدر و سورس از پوشه SPL به برنامه

 

  • بعد از اضافه شدن فایل ها زبانه workspace به صورت زیر تغییر می کند:

 

زبانه WorkSpace در محیط نرم‌افزار STVD

 

نکته: وارد کردن کتابخانه‌های مشخص شده در اینجا برای شما کافی است و اگر در فایل دانلود کتابخانه‌های دیگری وجود دارد لزومی به اضافه کردن آن‌ها نیست.

  • محل فایل C را از برگه source در نرم‌افزار STVD انتخاب کنید و سپس در قسمت بالا “include “stm8s.h# را بنویسید:

 

فایل main برنامه در نرم‌افزار STVD

 

  • باید فایل هدر h را ویرایش نمایید و همان‌طور که در زیر نشان داده شده است، نام میکروکنترلر مورد استفاده تان را از حالت کامنت خارج نمایید.

 

ویرایش فایل هدر

 

کد را یک‌بار با استفاده از کلیدهای  CTRL + F7  یا با فشار دادن دکمه “compile” کامپایل کنید. اگر همه چیز درست باشد، هیچ خطایی یا پیام هشدار وجود ندارد. دلیل این کامپایل کردن این است که از ویژگی قدرتمند کد کننده کامپایلر استفاده کنید. با استفاده از این ویژگی، می‌توانید فقط با نوشتن چند حرف اول و سپس با استفاده از فشردن همزمان کلید‌های CTRL + SPACE  کد را پیش‌بینی یا تکمیل کنید.

 

پیش‌بینی کد با فشردن همزمان کلید‌های CTRL + SPACE

 

در طول نوشتن برنامه در محیط نرم‌افزاری STVD، شما ممکن است تعداد زیادی خطا برای فایل‌های سخت‌افزاری که در میکروکنترلر  STM8S مورد نظر شما در دسترس نیستند، دریافت کنید. به عنوان مثال، سخت‌افزار CAN در STM8S003F3 در دسترس نیست و بنابراین اگر شما فایل های CAN سورس و هدر اضافه کرده باشید خطایی برای آن دریافت خواهید کرد. پس از شناسایی پیام‌های خطا، فایل‌های هدر و فایل سورس مربوطه برای آن سخت‌افزار خاص باید حذف شوند.

یک رویکرد عاقلانه برای جلوگیری از این مسئله این است که دیتا شیت میکروکنترلر مورد نظر خود را مطالعه نمایید  و در مورد سخت افزارهای درون آن اطلاعات کسب کنید. همان‌طور که در زیر دیده می‌شود، بخش محتوای داد‌های درون دیتا شیت این موضوع را نشان می دهد:

 

دیتاشیت میکروکنترلر STM8

 

از STM8CubeMX هم می توان برای بدست آوردن اطلاعات سخت‌افزاری میکروکنترلر استفاده کرد، اما همانطور که قبلاً هم مطرح شد برخی از لوازم جانبی سخت‌افزاری که ورودی-خروجی ندارند در آن دیده نمی شوند.

 

STM8 CubeMX

 

به طور مشابه،اگر کد شما از  وقفه استفاده نمی‌کند، فایل‌های سورس و هدر وقفه (stm8s_it.h و stm8s_it.c) باید از محیط STVD حذف شوند. گاهی بهتر است فقط آن فایل‌هایی را که برای تکمیل یک پروژه نیاز دارید اضافه کنید. به عنوان مثال، اگر پروژه شما فقط از GPIO ها استفاده می‌کند، بهتر است تنها فایل‌های GPIO سورس و هدر ( stm8s.h و stm8s_conf.h) اضافه شوند. البته من این روش را تنها برای کسانی که با برنامه نویسی STM8 به خوبی آشنایی دارند توصیه می‌کنم زیرا در اکثر موارد شما به سخت‌افزارهایی نیاز دارید که به یکدیگر وابسته هستند. به عنوان مثال، هنگامی که از SPI استفاده می‌کنید، به هر دو ماژول GPIO و SPI نیاز دارید. اگر شما این وابستگی‌ها را درک می‌کنید، می‌توانید تنها فایل‌های مورد نیاز را اضافه کنید. شما می‌توانید ماژول‌های سخت‌افزاری غیرضروری را در فایل هدر stm8s.h کامنت کنید تا فرآیند کامپایلر را سرعت ببخشید. پس از نوشتن برنامه، همیشه باید با کلیک بر روی دکمه build/rebuild، پروژه خود را بسازید و یا بازسازی کنید. با این کار فایل خروجی نهایی S19 در هر دو پوشه Debug یا Release با توجه به حالت انتخاب شده تولید می‌شود. اگر همه چیز مرتب باشد، هیچ خطایی یا پیام هشداری وجود ندارد.

 

Build کردن پروژه در محیط نرم‌افزاری STVD

 

 

در نهایت، من هیچ نرم افزار شبیه‌سازی مفیدی مانند Proteus VSM یا Electronic Workbench که از خانواده میکروکنترلر STM8 پشتیبانی کند پیدا نکرده‌ام. بنابراین، ما باید کد خود را با سخت‌افزار واقعی امتحان کنیم. این ممکن است دشوار باشد اما در واقع این‌طور نیست.ما می‌توانیم از چنین نرم‌افزارهایی برای ساخت مدل های STM8 استفاده کنیم و PCB ها را تولید کنیم. از آنجا که شبیه‌سازی‌ها چندان دقیق و واقعی نیستند، شخصاً آن‌ها را دوست ندارم.

یک توصیه دیگر که مایلم به خوانندگان سیسوگ بدهم. لطفاً فایل راهنما SPL را مطالعه کنید این فایل در فایل زیپ شده  SPL تحت نام stm8s-a_stdperiph_lib_um.chm قرار دارد. در آن هر تابع، تعریف، ساختار داده، تمام ماژول‌های سخت‌افزاری داخلی و نحوه استفاده از آن‌ها به درستی توضیح داده شده است. این یک فایل اطلاعاتی بسیار مهم و بهترین دوست شما در برنامه نویسی میکروکنترلر  STM8 است. کتاب مرجع نیز به اندازه همین فایل مهم است و قابلیت‌های تمام سخت‌افزار داخلی را مشخص می‌کند.

در قسمت ششم آموزش‌های سیسوگ قصد داریم نحوه آپلود کردن برنامه روی STM8 را آموزش دهیم. با سیسوگ همراه باشید.

منبع



انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.  همکاری با سیسوگ

 

نوشته های مشابه

4 دیدگاه در “قسمت پنجم: آماده سازی ابزارهای نرم‌افزاری برای STM8

  1. Avatar محسن گفت:

    سلام. دستتون درد نکنه…
    من نمیتونم فایل stm8s.h رو ویرایش کنم…اصلا امکان ویرایش وجود نداره……

    1. N H N H گفت:

      سلام دوست عزیز
      فایل stm8s.h رو با NotePad باز کنین و آنجا ویرایش را انجام بدید بعد فایل ویرایش شده را فراخوانی کنین.

  2. Aghil ... Aghil ... گفت:

    سلام وتشکر از شما
    من STM8 را با سایت شما شروع کردم و این آموزش را دنبال می کنم.
    در حال انجام یک پروژه هستم که نیاز به تعریف متغیر در حافظه EEPROM و همچنین متغیر نوع const در حافظه فلش هست. لطفا در این مورد هم آموزش ارائه دهید.
    سپاس

    1. زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز ، فکر میکنم برای تعریف متغیر توی حافظه فلش فقط کافی باشه که واژه const رو به ابتدای اون اضافه کنید.
      احتمالا در قسمت های اینده به موضوع eeprom نیز پرداخته بشه.

دیدگاهتان را بنویسید

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