İçindekiler:

Linux'ta STM32 Geliştirmeye Başlayın: 4 Adım
Linux'ta STM32 Geliştirmeye Başlayın: 4 Adım

Video: Linux'ta STM32 Geliştirmeye Başlayın: 4 Adım

Video: Linux'ta STM32 Geliştirmeye Başlayın: 4 Adım
Video: Linuxa Geçme Rehberi - Sıfırdan Adım Adım Linux Kurulumu 2024, Temmuz
Anonim
Image
Image
İhtiyacınız Olan Her Şeyi İndirin
İhtiyacınız Olan Her Şeyi İndirin

Bu Eğitilebilir Kitapta, size Linux'ta STM32 programları geliştirmeye başlamanın ne kadar kolay olduğunu göstereceğim. Linux'u 2 yıl önce ana makinem olarak kullanmaya başladım ve hayal kırıklığına uğramadım. Her şey pencerelerden daha hızlı ve daha iyi çalışır. Tabii ki zaman zaman daha az kullanışlıdır, ancak kullanabilmeniz için sizi daha derin şeyler öğrenmeye zorlar.

Her neyse, bu talimatta, burada VE youtube'da başladığım bir dizinin parçası, nasıl başlayacağınızla ilgili. Lütfen her şeyi tek bir bölüm olarak anlattığım ve yanımda kod yazabileceğiniz youtube videomu da izlemeyi unutmayın.

Bu seride size sadece notepad, SublimeText veya Atom gibi bir metin düzenleyici kullanarak nasıl geliştirebileceğinizi göstereceğim, böylece herhangi bir tescilli yazılıma veya IDE'ye ihtiyacınız olmaz. Bu, elde ettiği kadar çıplak kemiktir ve şaşırtıcı derecede kolaydır.

Adım 1: İhtiyacınız Olan Her Şeyi İndirin

Her şeyin çalışması için üç parça indirmeniz gerekiyor:

  • ARM için GCC derleyicisi
  • STM32 üretici yazılımı dosyaları
  • St-link yardımcı programı
  • Örnek Proje

Derleyici, C kodumuzu diğer tüm kitaplık dosyalarıyla birlikte stm32 denetleyicimizin anlayabileceği makine diline derleyen ana yazılım parçasıdır. Bu derleyicinin en son derlenmiş sürümünü indirin.

STM32 ürün yazılımını içeren klasör, ana işlemcinin çalışması için gereken tüm başlangıç ve çekirdek dosyalarının bulunduğu klasördür. HAL tarafından aşılmış olan Standart Çevre Birimi Kitaplığını kullanacağız. StPeriphLibrary'yi daha çok seviyorum çünkü bu işlemciler üzerinde çalışan şirketler sağlam, daha eski ve desteklendiği için bunları kullanıyor. Ayrıca daha sağlamdır. Bir çevre birimi başlatmak veya bir LED'i açmak için yapmanız gereken işi kesmez, bu nedenle sizi bu işlemcilerin nasıl çalıştığını öğrenmeye zorlar. Bununla, daha fazla iç işleyiş bilgisine sahip olursunuz, böylece herhangi bir görevi programlamayı anlamlı kılarsınız.

İndirilecek son yazılım parçası st-link yardımcı programıdır. Github'da tutulur ve SWD/JTAG programcısı/hata ayıklayıcısı olarak görev yapan kartta stlink IC kullanarak derlenmiş ikili dosyaları işlemciye aktarmak için kullanılır.

Ayrıca daha sonra bahsedeceğim örnek bir proje klasörü sağladım ve indirebilirsiniz. İlk VIDEO1 klasörünün içindedir.

2. Adım: Yazılımı Yükleme

Yazılım Yükleme
Yazılım Yükleme
Yazılım Yükleme
Yazılım Yükleme

Tüm dosyaları indirdikten sonra, hepsi aynı amaç için kullanıldığı için ortak bir klasöre koymanızı öneririm. Tüm klasörleri HOME dizinimde "Gömülü" adlı bir klasörün içine koydum.

En kolay olan STM32 kitaplıkları ile başlayacağız. İndirdiğiniz klasör orada bırakılabilir. Uygun dosyaların nerede saklandığını görmek için etrafı araştırdığınızdan emin olun. Bu nedenle, ana MakeFile'ı platformunuzla çalışacak şekilde değiştirebilir ve düzenleyebilirsiniz.

İkinci en kolay derleyicidir. Ayrıca herhangi bir şey yapmanıza gerek yoktur, ancak derleyiciyi global olarak erişilebilir bir işlev haline getireceğiz, böylece derleyiciyi yoldan bağımsız olarak herhangi bir klasörden çağırabilirsiniz. Tüm adımlar terminalde veya gui'de yapılabilir, ancak deneyim kazandıkça daha hızlı ve kolaylaştığı için terminal kullanmayı seviyorum ve korkuyorsanız terminali daha fazla kullanmanızı tavsiye ederim. İşte adımlar:

  1. "/home/YOURUSERNAME/" veya "~/" ana klasörünüze gidin veya terminale cd yazın
  2. ".bashrc" dosyasını şunu yazarak açın: nano.bashrc
  3. dosyanın sonuna gidin ve şu satırı ekleyin: export PATH=$PATH:~/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
  4. kaydederek çıkın: CTRL+X, Y'ye tıklayın, ENTER
  5. komutu çalıştırın: terminal kaynaklarını yenilemek için source.bashrc
  6. şunu yazarak her şeyin çalışıp çalışmadığını kontrol edin: arm-none-eabi-gcc --version, derleyicinin en son sürümünü göstermelidir

St-link'i kurmak için indirdiğiniz arşivi Embedded klasörüne çıkarın. Ardından şu adımları izleyin:

  1. Çalıştır: yap
  2. "build/Release" klasörüne gidin: cd build/Release
  3. ls yazın ve "st-flash" ve "st-util" adlı iki yürütülebilir dosya göreceksiniz.
  4. Bu ikisini stlink üst dizinine taşıyın: mv st-flash st-util../../
  5. Bu iki işlevi global olarak kullanmak isterseniz, ".bashrc" dosyasını aşağıdakileri ekleyerek tekrar düzenleyebilirsiniz:

    dışa aktar YOL=$YOL:~/Gömülü/stlink/

Bu kadar! İhtiyacınız olan her şeye sahipsiniz. Şimdi git kendine en sevdiğin metin düzenleyiciyi al. Sadece standart bir tane kullanın, SublimeText veya Atom gibi daha akıllı bir tane kullanın, kullandığım şey bu.

Adım 3: Örnek Bir Proje Oluşturma

Örnek Proje Oluşturma
Örnek Proje Oluşturma

Şimdi her projeye başlamak için kullanabileceğiniz örnek bir proje oluşturacağız. Tüm ana ayarların halihazırda işlendiği bir şablon gibidir.

MEGA'mdan indirebilirsiniz, bağlantı bu talimatın ilk adımında ve her youtube videomun altında. İçeride, bu işlemci ve Makefile için bazı başlangıç dosyalarıyla birlikte boş main.c dosyası bulunur. Makefile, C derleyicisine kol derleyicisini nerede bulacağını, nasıl derleneceğini ve tüm kitaplıkların nerede olduğunu söyleyendir. Projeniz için bu uygun dosyaları almak için STM32 kitaplık klasörüne gidebilir ve bir "proje" veya "örnek" klasörlerini kontrol edebilirsiniz. İçeride şu dosyaları görecek ve kopyalayacaksınız: main.c, Makefile ve XXX_conf.h, system_XXX.c. Ayrıca klasörde bulunabilecek stm32_flash.ld linker dosyasına ihtiyacınız olacak:

Örnek klasörün içindeki "/FLASH_Program/TrueSTUDIO/FLASH_Program/" veya sadece dosyayı arayın.

Makefile çevrimiçi olarak bulunabilir veya klasörümden kopyalanabilir, ancak birkaç şeyi değiştirmeniz gerekecek. Make dosyama ve neleri değiştirebileceğinize bir göz atalım.

# Panoya kod yüklemek için stlink klasörüne giden yol

STLINK=~/Embedded/stlink # Kaynak dosyalarınızı buraya koyun (*.c) SRCS=main.c system_stm32f4xx.c # Kitaplıklar kaynak dosyaları #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # İkili dosyalar oluşturulacak bu isim (.elf,.bin,.hex) PROJ_NAME=test # STM32F4 kitaplık kod dizininizi buraya koyun, YOURUSERNAME'inizi kendinize göre değiştirin STM_COMMON=/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # Derleyici ayarları. Yalnızca diğer başlık dosyalarını dahil etmek için CFLAGS'ı düzenleyin. CC=arm-none-eabi-gcc OBJCOPY=arm-none-eabi-objcopy # Derleyici bayrakları CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS += -DUSE_STDPERIPH_DRIVER CFLAGS += -mlittle-endian -mthumb -mthumb - cortex-m4 -mthumb-interwork CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16 CFLAGS += -I. # STM kitaplıklarından dosyaları dahil et CFLAGS += -I$(STM_COMMON)/Libraries/CMSIS/Include CFLAGS += -I$(STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Include CFLAGS += -I$(STM_COMMON)/ Libraries/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I$(STM_COMMON)/Utilities/STM32F4-Discovery # SRCS oluşturmak için başlangıç dosyası ekle += $(STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Source/Tru_Emplates s OBJS = $(SRCS:.c=.o) vpath %.c $(STM_COMMON)/Libraries/STM32F4xx_StdPeriph_Driver/src \. PHONY: tüm proje: proje proje: $(PROJ_NAME).elf $(PROJ_NAME).elf: $(SRCS) $(CC) $(CFLAGS) $^ -o $@ $(OBJCOPY) -O ihex $(PROJ_NAME).elf $(PROJ_NAME).hex $(OBJCOPY) -O ikili $(PROJ_NAME).elf $(PROJ_NAME).bin temiz: rm -f *.o $(PROJ_NAME).elf $(PROJ_NAME).hex $(PROJ_NAME).bin # STM32F4 yakma işlemini Flash: proj $(STLINK)/st-flash write $(PROJ_NAME).bin 0x80000000

  • Stlink yardımcı program klasörünüzün yolunu değiştirmek için ilk satırı düzenleyebilirsiniz.
  • Kitaplıklar ve YOURUSERNAME ile klasörünüzün hedefindeki satırı değiştirebilirsiniz.

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

  • Ayrıca tüm kitaplıkların bağlantılı olduğu bölüme bakın. Bu, kullandığınız platforma bağlı olarak değişebilir, bu nedenle lütfen dosya ağacındaki değişiklikleri kontrol edin. Başlangıç dosyası ile bir sonraki satırda olduğu gibi, belirli dosyalara giden yolları içeren her şey değiştirilebilir.

Tüm bunları Makefile içinde düzenledikten sonra, dizinin içinde bir terminal açıp şunu yazarak çalışıp çalışmadığını kontrol edebilirsiniz: make. Her şeyi sorunsuz bir şekilde derlerse, hazırsınız demektir. Değilse, derleyici hatalarına bakın ve Makefile'ı düzenleyin.

Ayrıca Atom kullandığımda iki adet kodu yan yana koyuyorum. Genellikle main.c ve Makefile soldadır, çünkü Makefile'ı yalnızca bir kez düzenlemeniz ve sağdaki kitaplıkları da düzenlemeniz gerekir. Her kitaplık için.c ve.h dosyalarını içeren klasörü açtığımı resimde görebilirsiniz. Bunların hepsini videolarda görebilirsiniz.

Adım 4: Tamamlandı

Bitti!
Bitti!

Artık Makefile yapılandırdınız ve derleyici çalışıyor, bu klasörü tüm projeler için şablon olarak kullanabilirsiniz, bu yüzden bu klasörün bir kopyasını kaydettiğinizden emin olun.

Ayrıca geliştirme kartınızı takıp terminale yazarak st-flash ve st-info programlarını test edebilirsiniz:

st-info --probe

Stlink yazılımının tanıdığı platformu ve IC ailesini önbellek ve diğer şeylerle birlikte görebilirsiniz. Şunları yazabilirsiniz:

st-bilgi

Mevcut tüm parametreleri görmek için

Artık programlamaya başlayabilirsiniz. Bir sonraki talimatta ve videoda size GPIO ve saatlerin temellerini göstereceğim. Bu ikisi, anakartın etkileşime girdiği hemen hemen her şey GPIO üzerinden olduğundan ve her şey saatinde çalıştığından ve bu işlemcileri programlama modelini göreceksiniz.

O zamana kadar, henüz yapmadıysanız, talimatlarımı ve youtube videomu kontrol ettiğiniz için teşekkür ederim.

Önerilen: