תוכן עניינים:

התחל לפתח STM32 בלינוקס: 4 שלבים
התחל לפתח STM32 בלינוקס: 4 שלבים

וִידֵאוֹ: התחל לפתח STM32 בלינוקס: 4 שלבים

וִידֵאוֹ: התחל לפתח STM32 בלינוקס: 4 שלבים
וִידֵאוֹ: Fixing Marlin Firmware loading issues on 32-bit MCU(s) 2024, יולי
Anonim
Image
Image
הורד את כל מה שאתה צריך
הורד את כל מה שאתה צריך

במדריך זה אני הולך להראות לך כמה קל להתחיל לפתח תוכניות STM32 בלינוקס. התחלתי להשתמש בלינוקס כמכונה הראשית שלי לפני שנתיים ולא אכזבתי. הכל עובד מהר וטוב יותר מחלונות. כמובן שזה פחות נוח מדי פעם, אבל זה מאלץ אותך ללמוד דברים יותר לעומק כדי שתוכל להשתמש בו.

בכל אופן, בחלק ההוראה הזה, חלק מסדרה שאני מתחיל כאן וביוטיוב עוסק באיך להתחיל אותה. אנא הקפד לצפות גם בסרטון היוטיוב שלי שבו אני מסביר הכל כקטע אחד ותוכל לקוד לידי.

בסדרה זו אראה לך כיצד תוכל להתפתח באמצעות עורך טקסט בלבד כמו פנקס רשימות, SublimeText או Atom, כך שלא תזדקק לתוכנות קנייניות או IDE. זוהי עצמות חשופות ככל שזה נהיה וזה קל להפתיע.

שלב 1: הורד את כל מה שאתה צריך

עליך להוריד שלושה חלקים כדי שהכל יעבוד:

  • מהדר GCC עבור ARM
  • קבצי קושחה STM32
  • כלי קישור St
  • פרויקט לדוגמא

המהדר הוא התוכנה העיקרית שמרכזת את קוד ה- C שלנו עם כל קבצי הספרייה האחרים לשפת מכונה שבקר ה- stm32 שלנו יכול להבין. הורד את הגירסה העדכנית ביותר של המהדר הזה.

תיקייה המכילה קושחה STM32 היא זו המכילה את כל קבצי ההפעלה והליבה הדרושים להפעלת המעבד הראשי. אנו נשתמש בספרייה היקפית סטנדרטית שעלתה על ידי HAL. אני אוהב את StPeriphLibrary יותר מכיוון שחברות שעובדות על מעבדים אלה משתמשות בהן מכיוון שהיא חזקה ומבוגרת יותר ונתמכת. הוא גם מחוספס יותר. זה לא חותך את העבודה שאתה צריך לעשות כדי לאתחל ציוד היקפי או להדליק נורית, אבל זה מאלץ אותך ללמוד כיצד פועלים מעבדים אלה. עם זאת יש לך יותר ידע על פעולות פנימיות ובכך תורם לתכנת כל משימה.

התוכנה האחרונה להורדה היא כלי השירות st-link. הוא מתוחזק ב- github ומשמש להעברת קבצים בינאאריים מורכבים למעבד באמצעות stlink IC על הלוח המשמש כמתכנת / ניפוי SWD / JTAG.

כמו כן, סיפקתי תיקיית פרוייקט לדוגמה שאני מדברת עליה מאוחר יותר ותוכל להוריד אותה. הוא נמצא בתוך תיקיית VIDEO1 הראשונה.

שלב 2: התקנת תוכנה

התקנת תוכנה
התקנת תוכנה
התקנת תוכנה
התקנת תוכנה

לאחר הורדת כל הקבצים אני מציע שתשים אותם בתוך תיקיה משותפת מכיוון שכולם משמשים יחד לאותה מטרה. שמתי את כל התיקיות בתוך תיקיה בשם "Embedded" בספריית HOME שלי.

נתחיל בספריית STM32 הקלה ביותר. ניתן להשאיר שם את התיקייה שהורדת. רק הקפד לחפור ולראות היכן מאוחסנים הקבצים המתאימים. לכן אתה יכול לשנות ולערוך את MakeFile הראשי כך שהוא יעבוד עם הפלטפורמה שלך.

השני הכי קל הוא המהדר. אתה גם לא צריך לעשות שום דבר עם זה, אבל אנחנו נהפוך את המהדר לפונקציה נגישה בעולם כך שתוכל להתקשר למהדר מכל תיקיה ללא קשר לנתיב. ניתן לבצע את כל השלבים בטרמינל או ב- gui, אבל אני אוהב להשתמש בטרמינל כמו שכאשר אתה מתנסה זה נהיה מהיר וקל יותר ואני ממליץ לך להשתמש במסוף יותר, אם אתה מפחד מזה. להלן השלבים:

  1. היכנס לתיקיית הבית "/home/YOURUSERNAME/" או "~/" או הקלד תקליטור במסוף
  2. לפתוח את הקובץ ".bashrc" על ידי הקלדה: nano.bashrc
  3. גלול מטה לסוף הקובץ והוסף את השורה הזו: ייצא PATH = $ PATH: ~/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
  4. צא על ידי שמירה: CTRL+X, לחץ על Y, ENTER
  5. הפעל פקודה: source.bashrc לרענון מקורות מסוף
  6. בדוק אם הכל עובד על ידי הקלדה: arm-none-eabi-gcc-גרסה, היא אמורה להציג את הגירסה העדכנית ביותר של המהדר

כדי להתקין 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: ~/Embedded/stlink/

זה הכל! יש לך כל מה שאתה צריך. עכשיו לך תפס לעצמך את עורך הטקסט האהוב עליך. השתמש רק באחד רגיל, חכם יותר כמו SublimeText או Atom, זה מה שאני משתמש בו.

שלב 3: הקמת פרויקט לדוגמא

הקמת פרויקט לדוגמא
הקמת פרויקט לדוגמא

כעת ניצור פרוייקט לדוגמה שבו תוכל להשתמש כדי להפעיל כל פרויקט. זה כמו תבנית עם כל ההגדרות העיקריות כבר מטופלות.

אתה יכול להוריד אותו ב- MEGA שלי, הקישור הוא בשלב הראשון של ההנחיה הזו ותחת כל סרטון יוטיוב שלי. בפנים נמצא קובץ main.c הריק יחד עם כמה קבצי הפעלה למעבד זה ול- Makefile. Makefile היא זו שאומרת למהדר C היכן למצוא את מהדר הזרועות, כיצד לאסוף והיכן כל הספריות. כדי לקבל את הקבצים המתאימים לפרויקט שלך, תוכל להיכנס לתיקיית הספרייה STM32 ולבדוק אם יש תיקיות "פרוייקט" או "דוגמאות". בפנים תראה ותעתיק את הקבצים הבאים: main.c, Makefile ו- XXX_conf.h, system_XXX.c. כמו כן תזדקק לקובץ המקשר stm32_flash.ld שניתן למצוא בתיקייה:

"/FLASH_Program/TrueSTUDIO/FLASH_Program/" שנמצא בתוך התיקייה לדוגמה או פשוט חפש את הקובץ.

ניתן למצוא Makefile באינטרנט או להעתיק אותה מהתיקייה שלי, אך יהיה עליך לשנות מספר דברים. בואו נסתכל על קובץ ה- make שלי ומה אתם יכולים לשנות.

# נתיב לתיקיית stlink להעלאת קוד ללוח

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 += -mlittle -endian -mthumb -m = קליפת המוח-m4 -umbumb-interwork CFLAGS += -mfloat-abi = hard -mfpu = fpv4-sp-d16 CFLAGS += -I. # כלול קבצים מספריות STM CFLAGS += -I $ (STM_COMMON)/ספריות/CMSIS/כלול CFLAGS += -I $ (STM_COMMON)/ספריות/CMSIS/ST/STM32F4xx/כלול CFLAGS += -I $ (STM_COMMON)/ Libraries/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I $ (STM_COMMON)/Utilities/STM32F4 -Discovery # הוסף קובץ הפעלה לבניית SRCS += $ (STM_COMMON)/ספריות/CMSIS/ST/STM32F4xx/Source/Templates. s OBJS = $ (SRCS:.c =.o) vpath %.c $ (STM_COMMON)/Libraries/STM32F4xx_StdPeriph_Driver/src \. PHONY: proj all: proj proj: $ (PROJ_NAME).elf $ (PROJ_NAME). $ (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: proj $ (STLINK)/st -flash כתוב $ (PROJ_NAME).bin 0x80000000

  • תוכל לערוך את השורה הראשונה כדי לשנות את הנתיב לתיקיית השירות stlink שלך
  • אתה יכול לשנות קו ליעד של התיקיה שלך עם ספריות ו- YOURUSERNAME שלך

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

  • בדוק גם את הסעיף שבו כל הספריות מקושרות. זה יכול להשתנות בהתאם לפלטפורמה שבה אתה משתמש אז בדוק אם קיימים שינויים בעץ הקבצים. ניתן לשנות עוד דברים הכוללים נתיבים לקבצים מסוימים, כמו בשורה הבאה עם קובץ אתחול.

לאחר שתערוך את כל הדברים האלה בתוך Makefile תוכל לבדוק אם הוא פועל על ידי פתיחת מסוף בתוך הספרייה שלך והקלדה: make. אם הוא אוסף כל דבר בלי בעיה, אתה מוכן. אם לא, עיין בשגיאות המהדר וערוך את קובץ Makefile.

כמו כן, כשאני משתמש באטום, הנחתי שתי פיסות קוד זו לצד זו. בדרך כלל main.c ו- Makefile בצד שמאל מכיוון שאתה רק צריך לערוך Makefile פעם אחת וספריות מימין. אתה יכול לראות בתמונה שפתחתי את התיקייה המכילה את קבצי.c ו-.h עבור כל ספרייה. אתה יכול לראות את כל זה בסרטונים.

שלב רביעי: סיים

גָמוּר!
גָמוּר!

כעת לאחר שהגדרת את Makefile והמהדר עובד, תוכל להשתמש בתיקייה זו עבור כל הפרויקטים כתבנית, לכן הקפד לשמור עותק של תיקיה זו.

כמו כן, תוכל לבדוק את תוכניות st-flash ו- st-info על ידי חיבור לוח הפיתוח שלך והקלדת מסוף:

st-info --probe

אתה יכול לראות את הפלטפורמה שתוכנת stlink מזהה ואת משפחת IC יחד עם מטמון ודברים אחרים. אתה יכול להקליד:

st-info

כדי לראות את כל הפרמטרים הזמינים.

עכשיו אתה יכול להתחיל לתכנת. במדריך ובסרטון הבא אראה לך את היסודות של GPIO ושעונים. שני אלה הם היסודות לכל השאר מכיוון שכמעט כל מה שהלוח מתקשר איתו הוא מעל GPIO והכל עובד בשעון ותראה את התבנית לתכנות מעבדים אלה.

עד אז, תודה שבדקת את סרטון ההוראה שלי ויוטיוב שלי, אם עדיין לא עשית זאת.

מוּמלָץ: