فهرست مطالب:

شروع توسعه STM32 در لینوکس: 4 مرحله
شروع توسعه STM32 در لینوکس: 4 مرحله

تصویری: شروع توسعه STM32 در لینوکس: 4 مرحله

تصویری: شروع توسعه STM32 در لینوکس: 4 مرحله
تصویری: BTT Octopus V1.1 - Klipper Configuration 2024, جولای
Anonim
Image
Image
هر آنچه را که نیاز دارید بارگیری کنید
هر آنچه را که نیاز دارید بارگیری کنید

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

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

در این مجموعه به شما نشان خواهم داد که چگونه می توانید با استفاده از یک ویرایشگر متن مانند دفترچه یادداشت ، SublimeText یا Atom توسعه دهید ، بنابراین نیازی به نرم افزار اختصاصی یا IDE ندارید. این به اندازه استخوان های برهنه است و به طرز شگفت انگیزی آسان است.

مرحله 1: هر آنچه را که نیاز دارید بارگیری کنید

برای کارکردن همه چیز باید سه قسمت را بارگیری کنید:

  • کامپایلر GCC برای ARM
  • فایل های سیستم عامل STM32
  • ابزار St-link
  • پروژه نمونه

کامپایلر اصلی ترین نرم افزاری است که کد C ما را با سایر فایل های کتابخانه به زبان ماشین که کنترلر stm32 ما می تواند درک کند ، کامپایل می کند. آخرین نسخه از پیش تنظیم شده این کامپایلر را بارگیری کنید.

پوشه حاوی سیستم عامل STM32 ، پوشه ای است که تمام فایل های راه اندازی و اصلی مورد نیاز برای عملکرد پردازنده اصلی را در خود نگه می دارد. ما از کتابخانه استاندارد جانبی که از HAL پیشی گرفته است استفاده خواهیم کرد. من StPeriphLibrary را بیشتر دوست دارم زیرا شرکت هایی که روی این پردازنده ها کار می کنند از آنها استفاده می کنند زیرا قوی و قدیمی است و پشتیبانی می شود. همچنین ناهموارتر است. این کار کارهایی را که باید برای راه اندازی یک دستگاه جانبی یا روشن کردن LED انجام دهید کاهش نمی دهد ، اما باعث می شود شما نحوه کار این پردازنده ها را بیاموزید. با این کار ، شما اطلاعات بیشتری در مورد عملکردهای داخلی دارید ، بنابراین برنامه ریزی برای هر کاری را حس می کنید.

آخرین قطعه نرم افزاری که بارگیری می شود ابزار st-link است. در github نگهداری می شود و برای انتقال فایل های باینری کامپایل شده به پردازنده با استفاده از IC stlink روی برد که به عنوان برنامه نویس / اشکال زدایی SWD / JTAG استفاده می شود ، استفاده می شود.

همچنین من یک نمونه پوشه پروژه ارائه کرده ام که بعداً در مورد آن صحبت می کنم و می توانید آن را بارگیری کنید. داخل اولین پوشه VIDEO1 است.

مرحله 2: نصب نرم افزار

نصب نرم افزار
نصب نرم افزار
نصب نرم افزار
نصب نرم افزار

پس از بارگیری همه پرونده ها ، پیشنهاد می کنم آنها را در یک پوشه مشترک قرار دهید زیرا همه آنها با هم برای یک منظور استفاده می شوند. همه پوشه ها را داخل پوشه ای به نام "Embedded" در فهرست اصلی خود قرار دادم.

ما با ساده ترین کتابخانه های STM32 شروع می کنیم. پوشه ای را که بارگیری کرده اید می توانید همانجا بگذارید. فقط مطمئن شوید که در اطراف گشت و گذار کنید تا ببینید فایل های مناسب در کجا ذخیره می شوند. بنابراین می توانید MakeFile اصلی را تغییر داده و ویرایش کنید تا با پلتفرم شما کار کند.

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

  1. به پوشه اصلی خود "/home/YOURUSERNAME/" یا "~/" بروید یا cd را در ترمینال تایپ کنید
  2. فایل ".bashrc" را با تایپ کردن: nano.bashrc باز کنید
  3. به انتهای فایل بروید و این خط را اضافه کنید: export PATH = $ PATH: ~/embbedded/gcc-arm-none-eabi-8-2018-q4/bin
  4. خروج با ذخیره: CTRL+X ، روی Y ، ENTER کلیک کنید
  5. دستور را اجرا کنید: source.bashrc برای بازخوانی منابع ترمینال
  6. بررسی کنید آیا همه چیز با تایپ کردن کار می کند: arm-none-eabi-gcc --version ، باید آخرین نسخه کامپایلر را نمایش دهد

برای نصب st-link ، بایگانی را که بارگیری کرده اید در پوشه جاسازی شده استخراج کنید. سپس این مراحل را دنبال کنید:

  1. اجرا کنید: بسازید
  2. به پوشه "build/Release" بروید: cd build/Release
  3. ls را تایپ کنید و دو فایل اجرایی با نام "st-flash" و "st-util" را مشاهده خواهید کرد.
  4. این دو را به پوشه اصلی stlink منتقل کنید: mv st-flash st-util../../
  5. اگر می خواهید از این دو عملکرد به صورت جهانی استفاده کنید ، می توانید مجدداً فایل ".bashrc" را با افزودن موارد زیر ویرایش کنید:

    PATH صادرات = $ PATH: ~/جاسازی شده/stlink/

فقط همین! شما هر آنچه را که نیاز دارید در اختیار دارید. حالا بروید ویرایشگر متن مورد علاقه خود را بگیرید. فقط از یک استاندارد استفاده کنید ، هوشمندتر مانند SublimeText یا Atom ، این چیزی است که من استفاده می کنم.

مرحله 3: راه اندازی یک پروژه نمونه

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

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

می توانید آن را در MEGA من بارگیری کنید ، پیوند در اولین قدم این دستورالعمل آموزشی و در زیر هر ویدیوی یوتیوب من قرار دارد. داخل فایل خالی main.c به همراه چند فایل راه اندازی برای این پردازنده و Makefile است. Makefile یکی از مواردی است که به کامپایلر C می گوید که کامپایلر arm را در کجا پیدا کند ، چگونه کامپایل شود و همه کتابخانه ها کجا هستند. برای دریافت این فایل های مناسب برای پروژه خود ، می توانید به پوشه کتابخانه STM32 بروید و پوشه های "پروژه" یا "نمونه" را بررسی کنید. در داخل این فایلها را مشاهده و کپی می کنید: main.c ، Makefile و XXX_conf.h ، system_XXX.c. همچنین به فایل پیوند stm32_flash.ld نیاز دارید که در پوشه یافت می شود:

"/FLASH_Program/TrueSTUDIO/FLASH_Program/" که داخل پوشه نمونه است یا فقط فایل را جستجو کنید.

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

# مسیر برای پوشاندن پوشه برای بارگذاری کد روی برد

STLINK = ~/Embedded/stlink # فایلهای منبع خود را در اینجا قرار دهید (*.c) SRCS = main.c system_stm32f4xx.c # فایلهای منبع کتابخانه #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c این نام (.elf،.bin،.hex) PROJ_NAME = test # دایرکتوری کد کتابخانه STM32F4 خود را در اینجا قرار دهید ، نام خود را به نام خود تغییر دهید STM_COMMON =/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # تنظیمات کامپایلر. فقط CFLAGS را ویرایش کنید تا شامل سایر فایلهای سرصفحه نیز باشد. CC = arm -none -eabi -gcc OBJCOPY = arm -none -eabi -objcopy # کامپایل پرچم CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS += -DUSE_STDPERIPH_DRIVER CFLAGS += -mittle -endian -p = cortex-m4 -mthumb-interwork CFLAGS += -mfloat-abi = سخت -mfpu = fpv4-sp-d16 CFLAGS += -I. # شامل فایلهای کتابخانه های STM CFLAGS += -I $ (STM_COMMON)/کتابخانه ها/CMSIS/شامل CFLAGS += -I $ (STM_COMMON)/کتابخانه ها/CMSIS/ST/STM32F4xx/شامل CFLAGS += -I $ (STM_COMMON) کتابخانه ها/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I $ (STM_COMMON)/Utilities/STM32F4 -Discovery # افزودن فایل راه اندازی برای ساخت SRCS += $ (STM_COMMON)/کتابخانه ها/CMSIS/ST/STM32p4mx/start/STx32x4xx/منبع/ s OBJS = $ (SRCS:.c =.o) vpath٪.c $ (STM_COMMON)/Libraries/STM32F4xx_StdPeriph_Driver/src \. PHONY: proj all: proj proj: $ (PROJ_NAME).elf $ (PROJ_NAME).elf: $ (SRCS) $ (CC) $ (CFLAGS) $^ -o $@ $ (OBJCOPY) -O ihex $ (PROJ_NAME).elf $ (PROJ_NAME). hex $ (OBJCOPY) -O باینری $ (PROJ_NAME) خود $ (PROJ_NAME).bin clean: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME). hex $ (PROJ_NAME).bin # فلش STM32F4 رایت: proj $ (STLINK)/st -flash $ بنویسید PROJ_NAME).bin 0x80000000

  • شما می توانید خط اول را برای تغییر مسیر به پوشه ابزار stlink خود ویرایش کنید
  • با کتابخانه ها و YOURUSERNAME می توانید خط مقصد پوشه خود را تغییر دهید

    STM_COMMON =/home/YOURUSERNAME/Embedded/STM32F4-Discovery_FW_V1.1.0

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

بعد از اینکه همه این موارد را در Makefile ویرایش کردید ، می توانید با باز کردن یک ترمینال در فهرست خود و تایپ کردن: make ، بررسی کنید که آیا کار می کند یا خیر. اگر همه چیز را بدون مشکل کامپایل می کند ، شما تنظیم شده اید. در غیر این صورت ، خطاهای کامپایلر را بررسی کرده و Makefile را ویرایش کنید.

همچنین ، وقتی از Atom استفاده می کنم ، دو قطعه کد را در کنار هم قرار می دهم. معمولاً main.c و Makefile در سمت چپ ، زیرا فقط یکبار Makefile و کتابخانه های سمت راست را ویرایش کنید. در تصویر می بینید که من پوشه حاوی فایل های.c و.h را برای هر کتابخانه باز کرده ام. همه اینها را می توانید در فیلم ها مشاهده کنید.

مرحله 4: تمام شد

تمام شده!
تمام شده!

اکنون که Makefile را پیکربندی کرده اید و کامپایلر در حال کار است ، می توانید از این پوشه برای همه پروژه ها به عنوان یک الگو استفاده کنید ، بنابراین مطمئن شوید که یک کپی از این پوشه را ذخیره کرده اید.

همچنین می توانید برنامه های st-flash و st-info را با وصل کردن برد توسعه و تایپ کردن در ترمینال آزمایش کنید:

st-info --probe

می توانید پلتفرمی را که نرم افزار stlink تشخیص می دهد و خانواده IC را همراه با حافظه پنهان و سایر موارد مشاهده کنید. می توانید تایپ کنید:

st-info

برای مشاهده همه پارامترهای موجود

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

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

توصیه شده: