Kysymys:
Kuinka voin kehittyä STM32-hakua varten Linuxissa?
Gordon Williams
2012-05-31 18:15:38 UTC
view on stackexchange narkive permalink

Minulla on STM32-hakukortti ja haluaisin pystyä ohjelmoimaan sen Linuxille.

Mikä on helpoin tapa tehdä tämä?

Asensin Codesourceryn LinuxhUbuntuun ja hieman pinottu: PATH on kunnossa, mutta ohjelmaa ei näy kojelaudassa tai ohjelmistokeskuksessa. Ehkä se on Ubuntu, jota muuttaisin jotenkin, mutta en tiedä miten. Jos sinulla on idea, kirjoita. Kiitos Tom
@TomRitzmann PeterJ on oikeassa, älä käytä vastauksia kysymysten esittämiseen. Lisäksi ohjelmisto-ongelmat ovat täällä aiheen ulkopuolella, SuperUser on oikea paikka.
Kahdeksan vastused:
Gordon Williams
2012-05-31 20:41:45 UTC
view on stackexchange narkive permalink

Helppo tapa ohjelmoida ja virittää STM32 Discovery -taulu (tai mikä tahansa STM32 käyttämällä ST-Link-ohjelmoijaa) on käyttää 'stlink' -projektia https://github.com/texane/stlink (vaikka OpenOCD näyttää myös suositulta)

ST Nucleo -taulut näkyvät myös USB-flash-laitteena, joten älä edes tarvitse stlink -toimintoa - kopioi tiedosto vain niihin.

On joitain hyviä sivuja STM32-haun kehittämiseen Linuxissa, kuten http://gpio.kaltpost.de/?page_id=131 ja http: //torrentula.to.funpic.de/2012/03/22/setting-up-the-stm32f4-arm-development-toolchain/ ja http://jethomson.wordpress.com/2011/ 11/17 / aloittaminen-stm32f4discovery-in-linuxilla /

Viimeinen linkki oli kuitenkin mielestäni hyödyllisin. Se näyttää, miten ST: n STM32-projektit rakennetaan sellaisenaan - Ainoa muutos on lisätä Makefile, joka näyttää täydelliseltä ratkaisulta.

Ubuntun uusimmissa versioissa on asennettava paketti, joka sisältää ARM-kääntäjä:

  sudo apt-get install gcc-arm-none-eabi  

Huomaa, että kaikki prosessorit ovat hieman erilaisia. STM32F0..4 tarvitsee kaikki erilaisia ​​kääntäjän lippuja, ja linkkikomentosarja on kullekin hieman erilainen (tosin vain muutetun RAM- ja Flash-koon takia).

Muokkaa: jos haluat aloittaa todella nopeasti voit myös katsoa http://www.espruino.com. Se on JavaScripti-tulkki, joka toimii itse STM32: lla, joten kun olet asentanut 'stlink'in, jotta voit vilkkua taululle, voit ladata kuvan tältä sivustolta, salata sen ja muodostaa yhteyden sitten päätelaitteeseen ja aloita ohjelmointi.

Tässä on luettelo OpenOCD: n tuetuista STM32x Discovery -tauluista: https://github.com/openrisc/openOCD/tree/master/tcl/board (etsi "löytö" selaimellasi)
mox
2015-11-05 04:51:23 UTC
view on stackexchange narkive permalink

Jos pidät tekstieditorista ja Makefileistä mieluummin kuin käyttöliittymää, voit tehdä seuraavaa:

  • Asenna työkaluketju, joka tarjoaa arm-none-eabi-gcc. Archlinuxissa tarvitset kaikki yhteisö / arm-none-eabi-binutils, arm-none-eabi-gcc ja arm-none-eabi-newlib (ja arm-none-eabi-gdb, jos haluat debugata). repo tai https://launchpad.net/gcc-arm-embedded (joka löytyy Archlinux'n AUR-tiedostosta nimellä gcc-arm-none-eabi-bin).
  • Päätä, haluatko käyttää kirjastoa ja mitä laitetta käyttää. Pääni päältä on kolme yleistä vaihtoehtoa:
    1. Ei mitään. Kirjoitat kaiken tyhjästä. Ei suositella aloittelijoille.
    2. STM32Cube: ST: n itse tarjoama AC lib.
    3. Libopencm3: Avoimen lähdekoodin lib, joka tukee melko monet aivokuori-m-ytimet eri toimittajilta.
    4. STM32PLUS: A C ++ lib. En kuitenkaan voi sanoa siitä paljon enemmän, koska en ole testannut sitä.
  • Luo tai kopioi ensimmäinen projekti.
    1. Ilman lib-kirjainta kirjoita oma makefile, linkkikomentosarja, käynnistyskoodi ja saat yksinkertaisen makefile-ohjelman. Onnea;)
    2. STM32Cube: Lataa ja asenna STM32CubeMX. Pakattu * .exe-tiedosto on oikeastaan ​​vain java-tiedosto, ja voit suorittaa sen käyttämällä "java -jar filename.exe" -ohjelmaa. Asennus vaatii sudon. Kun olet valmis, luo projekti ja luo koodi "Truestudio": lle. Sen pitäisi antaa sinulle lähtökohta linkkikirjoituksella, käynnistyskoodilla, pienellä tärkeällä pääfunktiolla (ja makefileellä, jos muistan oikein). Itse asiassa, vaikka et käyttäisikään STM32Cube libia, STM32CubeMX soveltuu erinomaisesti kellopuun arvojen laskemiseen ja vahvistamiseen, jos pystyt määrittämään sirun mieltäsi.
    3. libopencm3: n avulla libopencm3-esimerkkejä, etsi esimerkki taululle ja käytä tätä lähtökohtana. Esimerkkien tulisi olla valmiita toimimaan. Kirjoita vain "make". Käytä sitten tätä esimerkkiä lähtökohtana omalle kehityksellesi.
    4. STM32Plus: en tiedä. Anteeksi.
  • Hanki projekti taululle. Joko käytä

    1. Sarjakäynnistysohjelma: stm32flash toimii hyvin.
    2. Virheenkorjausportti: Voit käyttää openocd keskustele taululla olevan virheenkorjaussovittimen kanssa. Openocd on hieno, mutta dokumentaatio ei ole aina parasta. Jos olet epävarma, liity openocd irc -kanavalle. Ihmiset ovat todella mukavia.
  • Koodaa tekstieditorissa ja käytä komentorivityökaluja. Tämä opetusohjelma tarjoaa paljon vinkkejä.

Nauti

embedded.kyle
2012-05-31 18:25:26 UTC
view on stackexchange narkive permalink

Eclipse, GCC ja OpenOCD on yksi työkaluketju. EMCU-IT suosittelee sitä, ja täällä on lisätietoja. Nämä sivut suosittelevat myös sellaisen RTOS: n käyttöä kuin FreeRTOS.org, mutta se on sinun tehtäväsi.

Ja apua STM32-esimerkkien kokoamiseen Linuxissa siirry tänne. Tämä linkki viittaa esimerkkitiedostoon, joka voidaan kutsua

  git-kloonilla git: //github.com/snowcap-electronics/stm32-examples.gitcd stm32-esimerkitwget http: // www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32_f105-07_f2xx_usb-host-device_lib.zipunzip stm32_f105-07_f2xx_usb-host-device_lib.zip  koodi  ovat myös dokumentoituja, mutta suurimman osan projektista pitäisi toimia seuraavien kanssa: 
  make CROSS_COMPILE = / path / to / arm-2011.03 / bin / arm-none-eabi-  
Kiitos! En ollut nähnyt näitä linkkejä aikaisemmin. Olen hämmästynyt siitä, ettei missään ole tarkempaa opasta, koska erilaisilla löytölevyillä on hienovaraisesti erilaiset rakennusliput.
Joo, ST teki erittäin halvan levyn ja antoi heille tuhansia, ja itse STM32 on mahtava siru aina F4: ään asti, mutta niiden ohjelmointi on valtava kipu takapuolelle. Heidän ajurit on uskomattoman huonosti dokumentoitu, eikä niitä ole nimetty hyvin, eikä IDE: n ja työkaluketjun löytäminen, jotka pelaavat hyvin yhdessä, ei ole liian helppoa.
joeforker
2013-09-04 07:26:26 UTC
view on stackexchange narkive permalink

Minulla on ollut menestystä https://github.com/JorgeAparicio/bareCortexM -palvelussa (katso myös linkitetyt blogiviestit). Minulla on kerrottu, että voin yksinkertaisesti selata koodia yhden kerran tai selata laitteen muistia sen sijaan, että kirjoittaisin koodiin virheenkorjauslausekkeita tai arvaaisin, mitä sirun sisällä tapahtuu.

bareCortexM-projekti on Eclipse malli kehitettäväksi Cortex M -sarjan, erityisesti STM32: n kanssa C ++: ssa ilman käyttöjärjestelmää. Se on määritetty käyttämään openocd: tä, gcc: tä, ja sillä on komentosarjoja, jotka välähtävät ja virheenkorjaavat useita kohteita, mukaan lukien jotkut löytötaulut. Noudattamalla ohjeita ja asentamalla suositellut Eclipse-laajennukset pystyin käyttämään STM32VLDISCOVERY -laitettani Ubuntussa.

Suosituksen mukaan olen yhdistänyt eclipse-mallin saman kirjoittajan libstm32pp C ++ -mallikirjastoon STM32-laitteistolle. libstm32pp tarjoaa yllättävän täydellisen korvauksen CMSIS: lle ja usein kritisoiduille STM32-ohjaimille ohjelmointimallilla, jonka avulla voit sanoa esimerkiksi PB10 :: setMode (gpio :: cr :: GP_OPEN_DRAIN_2MHZ) ja PINB: : setLow () tai PINB :: setHigh () kaikki koottu enimmäkseen inline C ++ -mallien ansiosta. Asennus on erittäin mukava.

En enää suosittele ylläpitämätöntä bareCortexM: ää;Katso stm32plus osoitteessa http://andybrown.me.uk/wk/
Tällaisten laiteajurien ongelmana on, että ne ovat tehottomia.Oikeaan nopeaan laiteohjaimeen, joka ei tuhlaa prosessorisykliä, tarvitset alla olevan RTOS: n, jotta voit tehdä oikean ajoituksen.
Eddy_Em
2013-01-12 03:47:54 UTC
view on stackexchange narkive permalink

Ehkä siitä olisi hyötyä jollekulle: lyhyt artikkeli (venäjäksi) ja yksinkertainen projekti. Kaikki Linuxissa ja ilman tarpeettomia asioita, kuten pimennystä.

Kirjastot otettiin ST-verkkosivustolta, makefile - yhdestä monista GPL-esimerkkeistä Internetissä.

Viacheslav Dobromyslov
2014-08-12 18:57:36 UTC
view on stackexchange narkive permalink

Tässä on pieni mutta innovatiivinen malliprojekti nopeaan käyttöönottoon STM32F0 Discovery -levyn käytöstä Linuxissa tai muussa käyttöjärjestelmässä:

https://github.com/dobromyslov/stm32f0-chibios- malli

Huomaa, että projekti käyttää ChibiOSia - ilmaista ja avointa lähdekoodia olevaa reaaliaikaista käyttöjärjestelmää, joten se ei ole pelkkä luuton toteutus tyhjästä.

Martin
2018-08-14 22:04:03 UTC
view on stackexchange narkive permalink

Käytän vimiä ja arm-none-eabi-gcc: tä yhdessä kaikkien tavallisten linux dev -työkalujen kanssa.Linux on mielestäni ylivoimainen dev-ympäristö sulautetulle työlle.Virheenkorjaukseen käytän stlink ja arm-none-eabi-gdb.

dat
2018-09-03 23:40:28 UTC
view on stackexchange narkive permalink

Harkitse platformio.Jos olet lainkaan tyytyväinen komentoriviin, huomaat, että platformio helpottaa kehitystyötä huomattavasti. pio init -sovellusta voidaan käyttää projektin luomiseen. pio run hyödyntää työkaluketjua kääntämisessä. pio run - target upload lähettää koodin laitteelle.Platformio huolehtii työkaluketjun komponenttien, kirjastojen jne. Lataamisesta tarpeen mukaan.



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...