Bir STM32 keşif kartım var ve onu Linux'ta programlamak istiyorum.
Bunu yapmanın en kolay yolu nedir?
Bir STM32 keşif kartım var ve onu Linux'ta programlamak istiyorum.
Bunu yapmanın en kolay yolu nedir?
Yanıtlar:
STM32 Keşif kartını (veya bir ST-Link programcısı kullanarak herhangi bir STM32'yi) programlamanın ve hata ayıklamanın kolay bir yolu 'stlink' projesini https://github.com/texane/stlink kullanmaktır (ancak OpenOCD de popüler görünüyor)
ST Nucleo board'ları ayrıca bir USB flaş aygıtı olarak da görünür, bu yüzden gerek yok stlink
- dosyayı kopyalayın.
Linux'ta STM32 keşfi için nasıl geliştirileceği hakkında http://gpio.kaltpost.de/?page_id=131 ve http://torrentula.to.funpic.de/2012/03/22/ gibi bazı iyi sayfalar var ayarlama-stm32f4-arm-geliştirme-alet zinciri / ve http://jethomson.wordpress.com/2011/11/17/getting-started-with-the-stm32f4discovery-in-linux/
Ancak son bağlantıyı en yararlı buldum. ST'nin STM32 projelerini olduğu gibi yapmayı gösterir - Tek değişiklik mükemmel bir çözüm gibi görünen Makefile'ını eklemektir.
Ubuntu'nun son sürümlerinde, bir ARM derleyicisi içeren yükleyebileceğiniz bir paket var:
sudo apt-get install gcc-arm-none-eabi
İşlemcilerin hepsinin biraz farklı olduğunu unutmayın. STM32F0..4'ün hepsinin farklı derleyici bayraklarına ihtiyacı olacak ve linker betiği her biri için biraz farklı olacaktır (gerçekte sadece RAM ve Flash boyutlarının değişmesine rağmen).
Düzenleme: çok hızlı bir şekilde başlamak istiyorsanız, http://www.espruino.com adresine de bakabilirsiniz . STM32 üzerinde çalışan bir JavaScript tercümanıdır, bu yüzden 'stlink' kurulduktan sonra panoya yanıp sönebilir, o siteden bir görüntü indirebilir, onu çalıştırabilir ve ardından bir terminal uygulamasına bağlanabilirsiniz. programlamaya başla.
Bir GUI kullanmak yerine metin düzenleyicileri ve Makefiles hakkında daha fazlaysanız, şunları yapabilirsiniz:
Projenizi tahtaya taşıyın. Ya kullanın
Bir metin editöründe kodlayın ve komut satırı araçlarını kullanın. Bu eğitimde pek çok ipucu verilecek.
Keyfini çıkarın
Eclipse , GCC ve OpenOCD bir alet zinciridir . Bu tarafından önerilir EMCU-IT ve başka bilgiler de burada . Bu sayfalar ayrıca FreeRTOS.org gibi bir RTOS kullanmanızı da tavsiye eder , ancak bu size bağlıdır.
Linux'taki STM32 örneklerini derlemede yardım için buraya gidin . Bu bağlantı, çağrılabilecek örnekler için bir makefile işaret eder.
git clone git://github.com/snowcap-electronics/stm32-examples.git
cd stm32-examples
wget http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32_f105-07_f2xx_usb-host-device_lib.zip
unzip stm32_f105-07_f2xx_usb-host-device_lib.zip
Birkaç küçük kod düzeltmesi de belgelenmiştir ancak projenin çoğu birlikte çalışmalıdır.
make CROSS_COMPILE=/path/to/arm-2011.03/bin/arm-none-eabi-
Https://github.com/JorgeAparicio/bareCortexM ile başarılı oldum (ayrıca bağlantılı blog yazılarına bakın). Kodumda hata ayıklama ifadeleri eklemek veya çipin içinde neler olup bittiğini tahmin etmek yerine kodda tek bir adım atabilir veya cihaz hafızasına göz atabilirim.
BareCortexM projesi, Cortex M serisi ile, özellikle STM32 ile bir işletim sistemi olmadan C ++ ile geliştirme için bir Eclipse şablonudur. Openocd, gcc kullanmak üzere yapılandırılmıştır ve bazı keşif kartlarını içeren birkaç hedefe flaş ve hata ayıklamak için komut dosyaları vardır. Talimatları izleyerek ve önerilen Eclipse eklentilerini yükleyerek Ubuntu'da STM32VLDISCOVERY cihazımı kullanabildim.
Önerildiği gibi eclipse şablonunu, aynı yazarın STM32 donanımı için libstm32pp C ++ şablon kütüphanesiyle birleştirdim. libstm32pp CMSIS için şaşırtıcı derecede tamamen değiştirilmesi ve benzeri şeyler söylüyorlar sağlayan bir programlama modeli ile sık sık eleştirilen STM32 sürücülerini sağlar PB10::setMode(gpio::cr::GP_OPEN_DRAIN_2MHZ)
ve PINB::setLow()
ya PINB::setHigh()
dolayı C ++ şablonlara tüm çoğunlukla derlenmiş satır içi. Kurulum çok güzel.
Belki birisi için faydalı olur: kısa makalem (rusça) ve basit bir proje . Hepsi linux ve tutulması gibi gereksiz şeyler olmadan.
ST internet sitesinden makefile adlı kütüphaneler alınmıştır - internetteki birçok GPL örneğinden.
İşte Linux veya başka bir işletim sistemi altındaki STM32F0 Discovery anakartını kullanarak hızlı başlangıç için küçük ama yenilikçi bir şablon projesi:
https://github.com/dobromyslov/stm32f0-chibios-template
Projenin ücretsiz ve açık kaynaklı bir gerçek zamanlı işletim sistemi olan ChibiOS'u kullandığına dikkat edin, bu nedenle sıfırdan tam bir kemik uygulaması değildir.
Platformio düşünün . Komut satırı ile tamamen rahatsanız, platformio'nun geliştirme sürecini oldukça kolaylaştırdığını göreceksiniz. pio init
Bir proje oluşturmak için kullanılabilir. pio run
derlemek için alet zincirini kullanır. pio run --target upload
kodu cihaza gönderir. Platformio, takım zinciri bileşenlerini, kütüphaneleri vb. Gerekliyse indirmeye özen gösterir.