جدول المحتويات:

ابدأ في تطوير STM32 على نظام Linux: 4 خطوات
ابدأ في تطوير STM32 على نظام Linux: 4 خطوات

فيديو: ابدأ في تطوير STM32 على نظام Linux: 4 خطوات

فيديو: ابدأ في تطوير STM32 على نظام Linux: 4 خطوات
فيديو: كورس تعلم لينكس في فيديو واحد | Linux Crash Course 2024, شهر نوفمبر
Anonim
Image
Image
قم بتنزيل كل ما تحتاجه
قم بتنزيل كل ما تحتاجه

في Instructable ، سأوضح لك مدى سهولة البدء في تطوير برامج STM32 على Linux. لقد بدأت في استخدام Linux كجهاز رئيسي منذ عامين ولم يخذل ذلك. كل شيء يعمل بشكل أسرع وأفضل من النوافذ. بالطبع هو أقل ملاءمة من وقت لآخر ، لكنه يجبرك على تعلم الأشياء بشكل أعمق حتى تتمكن من استخدامها.

على أي حال ، في هذه التعليمات ، جزء من سلسلة أبدأها هنا وعلى موقع youtube يدور حول كيفية بدء تشغيله. يرجى التأكد من مشاهدة مقطع فيديو youtube الخاص بي وكذلك حيث أشرح كل شيء كقطعة واحدة ويمكنك الترميز بجانبي.

سأوضح لك في هذه السلسلة كيف يمكنك التطوير باستخدام محرر نصوص فقط مثل المفكرة أو SublimeText أو Atom ، لذلك لن تحتاج إلى أي برنامج احتكاري أو IDE. هذه عظام عارية كما هي وسهلة بشكل مدهش.

الخطوة 1: قم بتنزيل كل ما تحتاجه

تحتاج إلى تنزيل ثلاثة أجزاء لكي يعمل كل شيء:

  • مترجم دول مجلس التعاون الخليجي ل ARM
  • ملفات البرامج الثابتة STM32
  • الأداة المساعدة St-Link
  • مشروع عينة

المترجم هو الجزء الرئيسي من البرنامج الذي يجمع كود C الخاص بنا مع جميع ملفات المكتبة الأخرى إلى لغة الآلة التي يمكن أن يفهمها متحكم stm32. قم بتنزيل أحدث إصدار تم تجميعه مسبقًا من هذا المترجم.

المجلد الذي يحتوي على البرنامج الثابت STM32 هو الذي يحتفظ بجميع ملفات بدء التشغيل والأساسية اللازمة لتشغيل المعالج الرئيسي. سنستخدم المكتبة الطرفية القياسية التي تجاوزها HAL. أنا أحب StPeriphLibrary أكثر لأن الشركات التي تعمل على هذه المعالجات تستخدمها لأنها قوية وقديمة ومدعومة. كما أنها أكثر وعورة. لا يقطع العمل الذي يتعين عليك القيام به لتهيئة جهاز طرفي أو تشغيل مصباح LED ، ولكنه يجبرك على معرفة كيفية عمل هذه المعالجات. مع ذلك لديك المزيد من المعرفة بالأعمال الداخلية مما يجعل برمجة أي مهمة منطقية.

آخر قطعة من البرنامج يتم تنزيلها هي أداة st-link. يتم الاحتفاظ بها على جيثب ويتم استخدامها لنقل الملفات الثنائية المترجمة إلى المعالج باستخدام stlink IC على اللوحة التي تعمل كمبرمج / مصحح أخطاء SWD / JTAG.

كما قدمت نموذجًا لمجلد مشروع أتحدث عنه لاحقًا ويمكنك تنزيله. إنه داخل مجلد VIDEO1 الأول.

الخطوة الثانية: تثبيت البرنامج

تثبيت البرنامج
تثبيت البرنامج
تثبيت البرنامج
تثبيت البرنامج

بعد تنزيل جميع الملفات ، أقترح عليك وضعها داخل مجلد مشترك حيث يتم استخدامها جميعًا معًا لنفس الغرض. لقد وضعت جميع المجلدات داخل مجلد يسمى "Embedded" في دليل HOME الخاص بي.

سنبدأ بأسهل مكتبات STM32. يمكن ترك المجلد الذي قمت بتنزيله هناك. فقط تأكد من البحث لمعرفة مكان تخزين الملفات المناسبة. لذلك يمكنك تغيير وتحرير MakeFile الرئيسي حتى يعمل مع النظام الأساسي الخاص بك.

الثاني الأسهل هو المترجم. لا تحتاج أيضًا إلى فعل أي شيء حيال ذلك ، لكننا سنجعل من المترجم وظيفة يمكن الوصول إليها عالميًا حتى تتمكن من استدعاء المترجم من أي مجلد بغض النظر عن المسار. يمكن تنفيذ جميع الخطوات في الجهاز الطرفي أو في واجهة المستخدم الرسومية ، لكني أحب استخدام Terminal لأنه عندما تحصل على الخبرة يصبح الأمر أسرع وأسهل وأشجعك على استخدام الجهاز أكثر ، إذا كنت تخشى ذلك. فيما يلي الخطوات:

  1. انتقل إلى مجلد منزلك "/ home / YOURUSERNAME /" أو "~ /" أو اكتب cd في Terminal
  2. افتح ملف ".bashrc" بكتابة: nano.bashrc
  3. مرر لأسفل حتى نهاية الملف وأضف هذا السطر: export PATH = $ PATH: ~ / Embedded / gcc-arm-none-eabi-8-2018-q4 / bin
  4. الخروج عن طريق الحفظ: CTRL + X ، انقر فوق Y ، ENTER
  5. قم بتشغيل الأمر: source.bashrc لتحديث مصادر المحطة الطرفية
  6. تحقق مما إذا كان كل شيء يعمل عن طريق كتابة: arm-none-eabi-gcc --version ، يجب أن يعرض أحدث إصدار من المترجم

لتثبيت st-link ، قم باستخراج الأرشيف الذي قمت بتنزيله في المجلد Embedded. ثم اتبع هذه الخطوات:

  1. تشغيل: جعل
  2. انتقل إلى المجلد "build / Release": cd build / Release
  3. اكتب ls وسترى ملفين قابلين للتنفيذ يسمى "st-flash" و "st-util"
  4. انقل هذين إلى الدليل الأصلي stlink: mv st-flash st-util../../
  5. يمكنك ، إذا كنت ترغب في استخدام هاتين الوظيفتين بشكل عام ، تحرير ملف ".bashrc" مرة أخرى عن طريق إضافة:

    تصدير PATH = $ PATH: ~ / Embedded / stlink /

هذا كل شئ! لديك كل ما تحتاجه. اذهب الآن لتحصل على محرر النصوص المفضل لديك. استخدم فقط معيارًا واحدًا أكثر ذكاءً مثل SublimeText أو Atom ، وهو ما أستخدمه.

الخطوة 3: إعداد مشروع نموذجي

إعداد مشروع نموذجي
إعداد مشروع نموذجي

سنقوم الآن بإنشاء نموذج مشروع يمكنك استخدامه لبدء كل مشروع. إنه مثل قالب مع كل الإعدادات الرئيسية التي تم التعامل معها بالفعل.

يمكنك تنزيله على MEGA الخاص بي ، يكون الرابط في الخطوة الأولى من هذا التوجيه وتحت كل مقطع فيديو على youtube خاص بي. يوجد بالداخل ملف 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 لتحميل الكود على اللوحة

STLINK = ~ / Embedded / stlink # ضع ملفات المصدر هنا (*.c) SRCS = main.c system_stm32f4xx.c # Libraries source files #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 + = -ml-endian -mthumb -mcpu = cortex-m4 -mthumb-interwork CFLAGS + = -mfloat-abi = hard -mfpu = fpv4-sp-d16 CFLAGS + = -I. # تضمين ملفات من مكتبات STM CFLAGS + = -I $ (STM_COMMON) / Libraries / CMSIS / تضمين CFLAGS + = -I $ (STM_COMMON) / Libraries / CMSIS / ST / STM32F4xx / تضمين CFLAGS + = -I $ (STM_COMMON) / المكتبات / STM32F4xx_StdPeriph_Driver / inc CFLAGS + = -I $ (STM_COMMON) / Utilities / STM32F4-Discovery # تضيف ملف بدء التشغيل لإنشاء SRCS + = $ (STM_COMMON) / Libraries / CMSIS / ST / STM32F4xx / Source /iof4-start / TrueSTUD. 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).elf $ (PROJ_NAME).bin clean: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (PROJ_NAME).bin # فلاش STM32F4 burn: proj $ (STLINK) / st-flash write $ (PROJ_NAME).bin 0x80000000

  • يمكنك تحرير السطر الأول لتغيير المسار إلى مجلد الأداة المساعدة stlink
  • يمكنك تغيير الخط إلى وجهة المجلد الخاص بك مع المكتبات و YOURUSERNAME

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

  • تحقق أيضًا من القسم حيث ترتبط جميع المكتبات. يمكن أن يتغير هذا اعتمادًا على النظام الأساسي الذي تستخدمه ، لذا يرجى التحقق من التغييرات في شجرة الملفات. يمكن تغيير أي شيء آخر يتضمن أي مسارات لملفات معينة ، مثل السطر التالي مع ملف بدء التشغيل.

بعد قيامك بتحرير كل هذه الأشياء داخل Makefile ، يمكنك التحقق مما إذا كان يعمل عن طريق فتح Terminal داخل دليلك وكتابة: make. إذا كان يجمع كل شيء دون مشكلة ، فأنت جاهز. إذا لم يكن الأمر كذلك ، فابحث عن أخطاء المترجم وقم بتحرير ملف Makefile.

أيضًا ، عندما أستخدم Atom ، أضع قطعتين من التعليمات البرمجية جنبًا إلى جنب. عادةً ما يكون main.c و Makefile على اليسار لأنك تحتاج فقط إلى تعديل Makefile مرة واحدة والمكتبات على اليمين. يمكنك أن ترى في الصورة أنني فتحت المجلد الذي يحتوي على ملفات.c و. h لكل مكتبة. تستطيع أن ترى كل هذا في أشرطة الفيديو.

الخطوة 4: انتهى

تم الانتهاء من!
تم الانتهاء من!

الآن بعد أن قمت بتكوين Makefile وعمل المترجم ، يمكنك استخدام هذا المجلد لجميع المشاريع كقالب ، لذا تأكد من حفظ نسخة من هذا المجلد.

كما يمكنك اختبار برامج st-flash و st-info عن طريق توصيل لوحة التطوير الخاصة بك والكتابة في Terminal:

st-info --probe

يمكنك رؤية النظام الأساسي الذي يتعرف عليه برنامج stlink وعائلة IC جنبًا إلى جنب مع ذاكرة التخزين المؤقت وأشياء أخرى. يمكنك كتابة:

ش المعلومات

لرؤية جميع المعلمات المتاحة.

الآن يمكنك البدء في البرمجة. في الفيديو التالي القابل للتعليمات والفيديو ، سأوضح لك أساسيات GPIO والساعات. هذان هما الأساسيات لكل شيء آخر حيث أن كل شيء تقريبًا تتفاعل معه اللوحة قد تجاوز GPIO وكل شيء يعمل على مدار الساعة وسترى نمط برمجة هذه المعالجات.

حتى ذلك الحين ، شكرًا لك على التحقق من إرشاداتي ومقطع فيديو youtube الخاص بي ، إذا لم تكن قد فعلت ذلك بعد.

موصى به: