Cortex M3 programozás

 ( kovacsj | 2012. május 14., hétfő - 6:12 )

Sziasztok!

Az AVR-ek után ellenállhatatlan késztetést érzek a 32-bites ARM-ek programozására. Az ehhez szükséges fejlesztőpanelt és JTAG programozót megrendeltem, Cortex M3 lesz a target hardware. Sokat gondolkodtam az Atmel termékei és Philips NXP-i közötti választáson is, de végül az ár-érték arány felülkerekedett az eddigi atmeles elkötelezettségemen.

Azt szeretném kérdezni most a témában járatosaktól, hogy hol és hogyan lenne érdemes elkezdeni? Vannak valahol példaprogramok? Létezik jó leírás, ami bemutatja a library-ket?
A The definitive guide to the ARM Cortex M3 című könyvet megszereztem, éppen azt olvasgatom, de szeretném ismerni a header fájlok függvényeit is, valamiképpen rendezett formában, ha van erre lehetőség. Egy-két példaprogram, és az alap inicializálások bemutatása is nagyon jól jönne - már ha itt vannak ilyenek. Olyasmire gondolok, mint az AVR-ek adatlapján az Assembly és C-függvények.

Szerintetek merre induljak?

Köszönöm előre is!

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Ha választottál gyártót, azt döntsd el, hogy milyen környezetben akarsz dolgozni. Van egy rakás lehetőség. Az Atmel-t csak 8 bitesben használom, tehát nem tudom mit adnak a procihoz, de általában adnak valamilyen könyvtárat és többé - kevésbé korrekt leírást a függvényekhez.

A következő lépés, hogy keresel egy fórumot, amely ezzel az eszközzel foglakozik. Ha szerencséd van van ilyen.

Még egy fontos megjegyzés. Eleinte ne piszkáld az órajel PPL-t, mert könnyen lehetetlen helyzetbe hozod a kütyüt.

FM

Tanár Úr? :-) Most látom csak, hogy fuzzyman válaszolt a kollégának.

A PLL-es résszel maximálisan egyetértek, sajnos fel lehet úgy programozni az eszközt, hogy a processzor gyorsabban kérje az utasításokat a FLASH-ből, mint ahogy az ki tudja szolgálni a kérést (láttam már 8-bites mikrovezérlőknél is érdekes dolgokat: egyik eszköznél be lehetett úgy állítani a BOR-t, hogy az magasabb legyen, mint a tápfeszültség maximális értéke). Egyik kolléga belefutott ebbe, és javasoltam neki, hogy mielőtt a PLL-t bekapcsolja, várjon egy gombnyomásra, különben nagyon nehéz lesz elkapni a debuggerrel ezt a kis időintervallumot, amikor a processzor már nincsen RESET állapotban, de még nem is programozta fel a PLL-t.

Fuszenecker_Róbert

Köszönöm szépen!
A 8-bites Atmeleket én is ismerem, azok programozásával nincs semmi gondom.
Amit most választottam, az az ST Microelectronics STM32F103XX sorozata.
Az órajelekkel kapcsolatban már van némi tapasztalatom egy korábbi fuse bit elállítása kapcsán. :(

Szia!

Én is AVR-ről álltam át az ST STM32Fxxx sorozatára.
Szerintem érdemesebb lenne nem a STM32F1xx sorozattal hanem inkább a STM32F2xx vagy STM32F4xx sorzattal kezdened. Sok mindent javítottak bennük, gyorsabbak, a GPIO és az Alternate GPIO function rész is sokkal átgondoltabb a chipen belül.

Én a következő toolchaint használom: Mentor Codesourcery Lite gcc compiler, Code::Blocks IDE, saját makefile, Atlollic Studio linker file, STM32F4-Discovery board-ot használom programozásra.
AVR-re mivel fordítottál? Ha WinAVR-rel akkor nem lesz nehéz ez a makefile-os világ.
Ha debuggolásra van szükség, akkor pedig Eclipse + Atollic gdb server + STM32F4-Discovery board.

Ha a függvényeket akarod megnézni ajánlom az ST saját dokumentációját (http://www.st.com/internet/mcu/product/164487.jsp). Mindegyik STM32F sorozathoz tartozik egy úgfynevezett "STM32Fxxx standard peripheral library" ebben a gyártó nagyjából leimplementált mindent. A csomagban rengeteg példa is található a különböző perifériákhoz. Ha nem szereted a kész dolgokat, akkor ezt megírhatod magad is. :)
Az órajelekhez: az ST ujabb sorozatainál már van egy excel táblázat(letölthető ST design support oldaláról), amiben beállíthatod a kért órajelbeállításokat, és ő legenerálja neked a beállításokhoz tartó .c file-t.

AVR után kicsit szokni kell: Arra figyelj, hogy minden perifériának külön órajele van, és azokat mindíg engedélyezned kell(és magukat a perifériákat is). Arra készülj, ha van I2C perifériád, akkor azt egy kicsit bonyolultabb lesz lekezelni, legalábbis nekem az volt.
Szerintem megéri áttérni. Én most terveztem amgamnak egy saját dicovery boardot a F2 és F4-es szériához, ha kell, akkor a HW-ben is tudok segíteni.

Illetve ehhez a családoz, illetve a Cortex-M3/M4 szériához ajánlom a FreeRTOS(www.freertos.org) oprendszert, sokat tud segíteni a programszervezésben.

Kérdezz bátran, ha tudok segítek.

Köszönöm szépen neked is!
AVR-re Linux alatt Eclipse-t használtam.
Fejlesztőpanelnek ezt rendeltem meg:
http://www.tme.eu/html/HU/starter-kit-stm32-mikrokontrollerekhez/ramka_6840_HU_pelny.html
(Remélem, látszik!)
Arra a standard peripherial library-re lennék a legkíváncsibb, úgy szeretnék elindulni, mint ahogyan az AVR-el tettem anno.
Vannak kétségeim, hogy tudom-e majd használni a megrendelt programozót:
http://www.tme.eu/html/HU/programozo-jtagswim-interfesszel-stm32-es-stm8-mikrovezerlokhoz/ramka_8159_HU_pelny.html
Ez Keil és IAR kompatibilis, meg az STVP-hez is jó, de vajon be tudom-e üzemelni Linux alatt? Ha nem, majd legfeljebb veszek egy másikat is, nem olyan nagyon drága.
A standard JTAG-programozó jó a Cortex M3-hoz is?

Nem tudom milyen alternatívák vannak erre a speciális célra, de Eclipse -nél bármire bármi jobb...
Hogy vagytok képesek elviselni azt a talicskát?

+1

De ez így nem jó, mert elretten a végén a kolléga :-)
Mondjatok olyan IDE-t, amit jól, ügyesen és kényelmesen tud használni.
Egyébként engem is érdekel a dolog, mert régóta keresek egy normális C++ IDE-t, de nem találok (Linuxra legalábbis). De a stackoverflow-n se bíztattak sok jóval.
Szerencsére már pénzért sem értek a C++-hoz, de a javaslatokat azért megjegyezném.

Fuszenecker_Róbert

Rowley CrossWorks. GCC alapú, saját STD -lib van hozzá (azaz megúszod a newlib -et), a licence emberre, nem gépre szól (több gépeden is használhatod), a támogatott MCU -kra saját fejlesztésű csomagjaik vannak. Eddig bármin próbáltam plug & play jelleggel mentek. 150 USD a personal licence. Eclipse alapú, de úgy átgyúrták, hogy nem ismersz rá.
Ha nem ez akkor IAR (ez mondjuk winfos only, kolléga vmWare -rel használja), ha ez sem akkor Keil.
GCC és yagarto iszonyat szenvedés tud lenni az elején. Ez persze elhanyagolható lehet egy hosszútávú project -nél. GCC -t általában a SEGGER fele GDB szerverrel használom, de ez fizetős és windoz only.
A CodeSourcery fele Eclips -es cucc rémálom. Olyan 50% -os arányban mentek az MCU -k vele. Mondjuk úgy 6-8 hónapja nem volt a kezeim között. Érzésre mintha törekednének rá, hogy 3rd party GDB szerverrel ne menjen, csak a saját fizetős "debug sprite" -jukkal.

Nem Rowley -s GCC -t akkor, ha választhatod az MCU -t az eszközhöz, vagy ha van időd megjavítani ha nem megy, illetve ha egy-két elb... hét után meg tudod venni a Rowleyt vagy IAR -t.
A GCC akkor is oké, ha JTAG nélkül boldogulsz. Ilyenkor vagy ROM debuggert fordítasz magadnak (ha találsz), vagy soros porton printf -fekkel debuggolsz, esetleg GPIO pöcögtetés meg szkóp. Már csak a letöltés kérdéses. Néhány MCU -nak (pl LPC2000) van ROM -ban soros portos bootloader -e ami a letöltést megoldja, vagy nagyobb ARM -ok tudnak SD kártyáról boot -olni.

Igazad van a Codesourcery gcc változat az elején tud nagy szívás lenni(én is szívtam vele), és késöbb is, de ha összelegózol egy jó rendszert, akkor már rendesen tud működni. Én eddig STM32F1xx, STM32F2xx, STM32F4xx(FPU-val) kontrollerekkel használtam és nálam most csont nélkül működik.

Sajnos az ingyenességnek is megvan az ára, és néha nem is kicsi.
De egyébként a szerintem nem olyan horror a debug, ha kell, legalábbis most már. :)

Én vagy 5-6 helyről szedegettem össze a saját toolchainemet, és még lenne mit javítani rajta.
Egyébként a codesourcery gcc-s saját toolchain-nél még extrán kell figyelni arra, hogy az egyes komponensekből mindíg a legfrisebb legyen.

De egy új projekt indítása STM32 kontrollerre FreeRTOS-szal, ledvillogtatással, soros porttal most már megvan kevesebb mint 1 óra alatt. Tudom ez sok a Rowley varázslójához képest.
Egyébként én alapból uarton keresztül debuggolok, csak extra helyzetben használom a JTAG/SWD debugot.

Az STM32 kontrollerekben is van soros bootloader, iletve a fejletebbekben van még alapból CAN és USB bootloader is.

"A standard JTAG-programozó jó a Cortex M3-hoz is?" -- olyat érdemes keresni, amit támogat az openocd. Nekem Olimex ARM-USB-OCD-m és Amontec JTAGkey-Tiny-m van, mindkettő kiválóan működik.

Fuszenecker_Róbert

És mit gondolsz, tudok olyat építeni? Elég sok kapcsolási rajzot láttam, igaz, azok párhuzamos portra valók voltak.
Vagy érdemesebb rendelni egyet?

Én kezdetben építettem párhuzamos portosat (ez benne is van a szakdolgozatomban), de csak akkor éri meg, ha kevesebb mint nulla forint a költségvetésed, és nincsen határidős projekted.
A vett interfésszel százszor kevesebb a probléma: például nagy előnye, hogy elsőre működik, mert valaki azt már kipróbálta és letesztelte.

Ha sok időd van, akkor viszont érdemes építeni egyet, mert abból nagyon sokat lehet tanulni.
Ebben az esetben persze igaz a zen mondás: a cél az út maga.

P.S. Nem egy ökrösszekér ára egyik programozó sem, amikor vettem az Olimexet, akkor bruttó 18.000 Ft volt, az Amontek pedig szállítási kölstéggel együtt sem volt ennyi, igaz, ez utóbbi csak 3,3 V-os csipeket támogat (úgy értem: < 3,3 V-osakat nem -- ez FPGA programozásnál jött elő, ahol 1,8 V volt a core feszültsége, 2,5 V a V_AUX, és mennyi legyen a lábak meghajtójáé: 1,8 vagy 2,5, mert a tápomnak csak 2 kimenete volt: így lett 2,5 V, de ezt csak az Olimex vitte).

Fuszenecker_Róbert

Végül is már megrendeltem a ZL30PROG-ot. Ez USB-s. És gyári. :) Windows alatt biztosan menni fog, de én nem ott szerettem volna használni. :)

Szia!

Szerintem érdemes beruházni egy STM32F4-Discovery board-ra (http://hu.farnell.com/stmicroelectronics/stm32f4discovery/board-eval-stm32f4-discovery/dp/2009276?ref=lookahead) nem drága és van rajta programozó/debugger is, amit önálóan is lehet használni, és ez már Cortex-M4 magos, FPU-val, és 168MHz max. freqivel.

Ha gyorsan és egyszerűen akarsz kezdeni, akkor ajánlom az Atollic TrueSTUDIO® for ARM® Lite v3.1.0, itt mindent megtalálsz, könnyű projektet indítani, automatikusan megcsinálja a makefile-t, a linker file-t, hozztáadja az std. library-ket, ez is gcc-t használ, egy a gond vele a free verzióval csak max. 32kByte kódméretig hajlandó fordítani. :( Az előző verziókban még nem volt meg ez a megkötés, keresd a Atollic TrueSTUDIO® for STMicroelectronics® STM32™ 2.3 változatát, itt még unlimited volt a kódméret.

De ilyen demo létezik többi cégnél is, ami vagy időlimites, vagy kódlimites. A többi alternatíva: IAR, Keil, Menor Codesourcery, Rowley.
Ha sok időd van és elszánt vagy akkor ajánlom a Mentor Codesourcery lite gcc-t (http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/) + makefile + kedvenc IDE kombót, megéri a tanulási időt.
Ennek a felállásnak megvan az az előnye is, hogy kb. oprendszer függelen. A codesourcerynek van linux-os változata is.

HW:
Ha van időd, pénzed és volt már tapasztalatod többrétegű(4) SMD PCB tervezésben, akkor ahogy hg8lhs kolléga is írta érdemes belevágni.
Érdemes a gyári dev. boardok kapcsolását megnézni sokat lehet belőle tanulni. Van ehhez is doksi az ST oldalán, hogy mire kell figyelni HW tervezéskor. Az ST 4 rétegű PCB ajánl a tervezéshez.

Ha igény van rá, akkor egy ilyen kezdő STM32F4-Discocery projektet kidobok valami nyilvános repoba. De ez nem holnap lesz, mert most elég sok dolgom van.
A csomag paraméterek a következők:
STM32F4-Discocery board
Sourcery CodeBench Lite Edition fordító
makefile
linker file
Code::Blocks 8.04 IDE project file
FreeRTOS 7.1.1.
Ledvillogtatás
És valmi UART-os dolog lite printf-fel.

Modjuk, ilyne példa projekt sok van a neten, keresni kell, de ha igény van rá, akkor megcsinálom.

Igény az van. És gondolom, mások is örülnének ennek.
Ezeknek a kontrollereknek a népszerűsége egyre növekszik. Mostanában olvastam, hogy a HP ARM-es szerverekkel is elő fog állni.
Én az alacsony fogyasztás és a nagy sebesség, valamint a köréjük építhető perifériák miatt szeretném megtanulni, de azt hiszem, nem nagyon fogom túllépni a kétrétegű NYÁK-ot és a 48 lábú kontrollert a gyártási nehézségek miatt. Ám nekem ez is elég lesz. :)

Ez tényleg nagyon olcsó. És mennyi a szállítási díj? Érdemes még ezenkívül rendelni valamit onnan?

Van másnál is ilyen kit, én az FDH kft.-től (http://www.fdh.hu) szoktam rendelni, ők az egyik hivatalos magyarországi diszribútora a farnellnek. A hjonlapjukon minden fennvan. Budapestre 10000 felett ingyé szállítnak. Nem a legolcsóbb alkarész kereskedő az biztos. De keress rá más kereskedőnél is, ez egy elég népszerű board.

És amit én nagyon szeretek bennük: 24 órán belül kopog a futár az ajtómon :-)

Fuszenecker_Róbert

Abból a 24 órából éppen most lett 168 óra. Hétfőre ígérték. :(

Akkor az Amerikai szállítás lesz. Az szokott 7 nap lenni.

Nagyon köszönöm! Egyrészt örülök az oldalnak, másrészt pedig egy kicsit elhamarkodottnak érzem a korábban ~30.000 Ft-ért leadott rendelésemet a másik cégnél. :(
Valószínűleg még keresni foglak, ha nem baj.
Amit ajánlottál, már be is tettem a kosárba. :) Még nézelődöm. :)

Rendeltem kettőt is.
STM24F4-Discovery
STM32L-Discovery
Most már csak meg kellene tanulni a programozását. :)

Már egy kicsit elavult, de hátha találsz benne hasznos részeket: Diplomamunka 2009.

Fuszenecker_Róbert

Köszönöm szépen, mindenképpen megnézem!

Remek kis anyag, koszi, hogy megosztottad!

Sziasztok!

Ahogyan korábban ígértem létrehoztam egy kezdő gcc-s, makefile-os, projectet a STM32F4- Discovery board-hoz.

A project az assembla-n található free community SVN repository formájában.
A SVN repository címe:
http://subversion.assembla.com/svn/cd334_free_stm32_repo/

Elvileg mindent megtaláltok a read_me.txt és a license.txt-ben.
(Toolchain elemei, letöltési linkjei, rövid leírás a project-ről)

A program egy LED-et villogtat és bekapcsoláskor kiküld egykét adatot az egyik UART-ján keresztül, ezután pedig vissza echo-za a feléje küldött karaktereket.
Az UART-hoz szükség lesz egy UART <-> RS232 vagy UART <-> USB átalakítóra.
Az UART-ról az infókat szintén a read_me.txt-ben találjátok.
Az angolom kritikán aluli. :) Ahogy a magyar helyesírásom is. :)
Előre szólok: a kód nem, illetve alig kommentezett, erre most nem volt energiám, de próbáltam értelmesen tagolni.

Ha hibát találtok szóljatok, javítom, ha javaslatotok van ne rejtsétek véka alá. :)

UI: Kovacsj remélem megkaptad a játékszereidet! HAJRÁ!

Ez éppen jókor jött. Nagyon szépen köszönöm!
Atollic 2.3-ad nincs véletlenül? :)

Atollic 2.2-nél elakadtam, plussz én nem szeretem annyira az eclips-es környezetet, meg az új 32kbyte-os limit is korlátoz, nem is kicsit. Az én saját alapprogramom 40kbyte-nál indul, mert ott sokminden van még azon kívül, amit felraktam nektek.
Az atollicból egy dolgot használok a GDB szerverüket, de azt install nélkül is elő lehet hívogatni a package-ből.
Itt vanhozzá egy jó leírás:
http://www.chibios.org/dokuwiki/doku.php?id=chibios:guides:stlink_eclipse
Itt pedig jó leírásokat találsz az Generic Articles részben:
http://www.chibios.org/dokuwiki/doku.php?id=chibios:documents

Azért az alapokat 32 kbyte limittel is el lehet sajátítani, vagy nem?
Felraktam Windows 7-re az STVP-t, szándékozom még az IAR és a Keil, valamint az Atollic szabadon letölthető változatát, és amelyikkel hamarabb tudok ledet villogtatni, valamint soros portra írni, a jövőben az lesz a nyerő. :)
Jobb lenne mindezt Linux alatt, de nem vagyok telhetetlen. Majd eljön annak is az ideje.

Egy LED villogtatás + UART bele kell, hogy férjen 32kbyte-ba. :)
Próbáld ki magad és amelyik legjobban tetszik, azt használd.
Ezekhez akkor még talán érdekes lenne Codesourcery IDE-s verzióját, ha jól tudom létezik belőle 30 napos próbaverzió.
Én csak a Atollicot ismerem egy nagyon picit, mert én is azt próbáltam elsőre, de én onnan a gcc világba dobatottam.
Remélem villog már az a LED. :)

Majd fog. :) Előtte alapos tájékozódás lesz. :)
Vannak olyan megkövetelt inicializálások ezeknél a kontrollereknél, melyek nélkül esetleg károsodnak?

Szoftver oldalról szerintem ilyen nincs nagyon, max. nem indul el(szoftveresen nem sikerült még kinyirnom egyet sem), ilyen követemények inkább haver oldalról vannak, de ez egy discovery board-nál, nem lesz gond, révén referencia design-nak tekinthető.

Linux alá nehéz beüzemelni a fejlesztéshez szükséges környezetet?
A standard C library-t is használod?


#include < time.h >
#include < string.h >
#include < sys/stat.h >
#include "stm32f4xx.h"
#include "stm32f4xx_it.h"
#include "stm32f4xx_conf.h"

Szerintem nem túlzottan, a gcc és a Code::Blocks vagy a Eclipse fut natívan, a makefile-nak mindegy, egyedül a letöltés nem tudom hogyan megy, de úgy emlékszem, hogy erre is létezik valami open source dolog.
Itt egy jó leírás linux+STM32F4-Discovery, de németül van, remélem nem probléma:
http://www.mikrocontroller.net/articles/STM32F4-Discovery
Ahogy nézem ebben benne van minden, még a letöltés is. :)

Igen gasználom a standard C library-t.
Semmi gond nincs vele se Codesourcery Lite, se ARM Embedded Toolchain esetén.

A német elég nagy gond. :( Csak néhány szót tudok németül. Angolul viszont elég jól olvasok. :)
Mondjuk, ennek alapján még így is meg tudnám csinálni. :)
Megvárom a programozót (ZL30PRG) és ha az openocd-nek jó, akkor megpróbálkozom Linux alatt vele :)

Találtam egy érdekes package-t, ami a korábban ismertetett
http://www.mikrocontroller.net/articles/STM32F4-Discovery
leirás után a ST STM32F4-Discovery példákhoz makefile-kat tartalmaz, hogy Linux alatt is jól futtathatóak legyenek:
http://www.mikrocontroller.net/attachment/144830/stm32f4-discovery.tar.gz

Hasznos infó köszi, én is a héten rendeltem egy STM32F4-Discovery-t. Eddig vártam a SAM4S-Xplained-re de csak nem akar jönni. Az Atmel idei évre kb. 200 féle Cortex-M4 chipet ígért, de a fasorban sincs semmi...

Pont tegnap volt ilyen jellegű tanfolyam az EBV Elektronik és az Atmel közös szervezésében.
Ha atmel platformon maradsz, akkor van egy jó hírem: az Atmel Studio 6 -al összevonták az AVR sé ARM architektúrájukat egy közös API platformra, így kód hordozható a különböző Atmel termékek között (az AVR <--> ARM migrálást is bele értve). A studio 6 ingyen letölthető (regisztráció kell hozzá): http://www.atmel.com/tools/atmelstudio.aspx . Egyébként ez a studio kiadás kb 1000 különböző példa projektet tartalmaz, amely különböző tipizált problémákra kínál megoldást/referencia implementációt, ezért érdemes átnézni.

Zavard össze a világot: mosolyogj hétfőn.

Azt hiszem, egyelőre ST platformon kisérletezgetek. Ilyen paneleket rendeltem.

Atmel..., én korábban aktív AVR-s voltam(gyk. hívő :). De ez a AVRStudio5-6 verzió nem az igazi. Only Windows az egész a MIcrosoft Visual Studiójára épül, nagy és lassú, nekem nem tetszett.
A másik dolog az Atmeles Cortex mikrokontrollerek. Én mikor átálltam (kb. 1.5 éve)AVR-ről Cortex-re akkor azt gondoltam, hogy csak váltok az atmelen belül, de ez nem működött, akkoriban csak Sample állapotban volt a Cortex-M3 széria, és nagyon lasúnak tünt a kiadási ütemterv, szerintem jelenleg masszívan legalább 1.5 éves késésben vannak az Cortex-M-es élgyártókhoz(NXP, ST) képest. Mostanra már kaható a SAM3N, SAM3S, SAM3U sorozatból pédányok, de ezekben nincsen sem CAN sem Ethernet. SAM3A és SAM3X nem elérhatő, amiben már megvannak ezek a perifériák.
A pédaprojetes dolog is azután indult meg, hogy a többi gyártó is alapból adta ezt a mikrokontrollereihez, most már működik, de amíg megindult...
A M4-est bejelentették(de az eddig bejelentett 1 uC-ben nincs ethernet vagy CAN), de mikor lesz mass production-ben kapható az nagy kérdés.
Sajnálom, hogy az Atmel nem figyelt annyira erre a szegmensre.

Az AVR-eket én is szeretem. Szerintem a PIC-ektől sokkal jobbak. Ami most elég nagy gondot okoz nekem, az az Ablax-nak a használata. Egyszerűen nem bírom. :(
Olvasgatok még egy kicsit. Aztán veszek egy mély levegőt, és ...

Máris lenne egy-két kérdésem.
FreeRTOS-t akkor használok, ha multitask-es megoldást szeretnék, ugye? (Erre később visszatérek.) Nélküle is lehet programozni a kontrollert, ha csak egy folyamatot szeretnék futtatni rajta?
Az AHB regiszterben az SRAM-ot engedélyezni kell mindenképpen, ha jól értem.

Az APB1 és APB2 regiszerekben pedig azt a perifériát, amit éppen használni akarok.
Az APB1 és APB2-nek ha nem választok ki órajelet, van alapértelmezett órajele?

Ha GPIOA-t (vagy bármelyik másik GPIO-t) engedélyezem, akkor már majdnem villog a LED? :)
Természetesen a megfelelő adatok kiküldése és időzítése mellett.
Ha nem választok ki rendszer órajelet, akkor automatikusan a HSI lesz kiválasztva?

Az egyik kérdésre itt is a válasz:
Bit 2 SRAMEN: SRAM interface clock enable
Set and cleared by software to disable/enable SRAM interface clock during Sleep mode.
0: SRAM interface clock disabled during Sleep mode
1: SRAM interface clock enabled during Sleep mode

Azt hiszem, szeretni fogom. :)
A Cortex M3-ast olvasom, de úgy látom, az M4 is hasonlóképpen működik, csak a perifériák másabbak. Vagy tévedek?

"A Cortex M3-ast olvasom, de úgy látom, az M4 is hasonlóképpen működik, csak a perifériák másabbak. Vagy tévedek?" -- van benne {lebegőpontos aritmetika}támogatás. Nagyon jól hangzik, de még sosem próbáltam (és valószínűleg már nem is fogom).

Fuszenecker_Róbert

Robi!

Tudok egy M4-et adni.
FM

Köszönöm, Tanár Úr, a probléma nem a hardver, azt megrendelném az F betűs disztribútortól.
A szűk keresztmetszet inkább az, hogy most éppen nősülni készülök, és -- horribile diktu -- két MCTS vizsgát kell letennem aug. 31-ig (nagy k.rva lettem, windowsra programozok, de hát valamiből el kell tartanom a családomat, és ráadásul tetszik is a C# :-)).
Szoktam is mondani: egyetlen olyan erőforrás van, amit nem tudunk előállítani: az pedig az idő. Minden más egyszerűen szaporítható, de ez a 24 óra/nap elég szigorú megkötés :-)

De biztosan akad pár jó képességű kandós (vagy bárhogy hívják is most az iskolát) a modulon, esetleg próbálják ki ők is, és írjanak róla szép dokumentációkat. Természetesen segítek, ha tudok.

Fuszenecker_Róbert

De programozni hasonlóképpen kell, nem igaz? Vagy okoz valami eltérést a programozás terén a lebegőpontos támogatás megléte?
Azért néhány kört még futnom kell, mielőtt az első fények kigyúlnak. :)

Teljesen ugyanúgy kell programozni, nagy altérés nincs a két mag között, ezt az is mutatja, hogy amíg nem volt Cortex-M4-es port a FreeRTOS oprendszerben, addig a M3-as porttal simán elfutott(természetesen FPU nélkül).
Ha egy gyártón belül mozogsz, akkor a perifériák akár ugyanazok is lehetnek(gyártófüggő). Pl. STM32F2 sorozata és az STM32F4 csak a magban és az FPU meglétében különbözik a periféria szett ugyanaz.
A programozás a felszínen tök ugyanaz, nem kell különbségre számítani, hacsak nem a speciális matematikai képességeket akarod kihasználni.

Alapesetben úgy kell programozni, ahogy más mikrokontrollert, ugyanúgy elfut egy végtelenített for(;;) ciklusban (ahogy az AVR-ben is).
FreeRTOS az egy segítség, hogy a prociban a különböző programrészeket és köztük levő kommunikációt tehetjük vele egyszerűbbé, átláthatóbbá.
Az RTOS vagy bármiféle oprendszer használata nagyban függ a feladattól, amit meg akarsz valósítani. Mindig a feladathoz választunk programstruktúrát, és nagyon sok olyan feladat lehet ahol overkill az RTOS, valahol meg nélküle bonyolódik el a program.

Nem csak az adott perifériát, hanem annak az órajelét is engedélyezned kell.
APB1, APB2, periféria órajelét a SystemInit() funkció állítja be. Ezt a funkciót automatikusan hívja meg a startup assemby fájl. Tehát ezeket nem kell bögyörgetni.

A SystemInit() a system_stm32f4xx.c van.
STM32-nél van egy exel-es toolja a ST-nek, ahol be lehet állítani az órajeleket és ez automatikusan legenerálja a system_stm32f4xx.c fájlt és csak be kell másolni a megfelelő helyre.
STM32F4-hez ez a tool a következő címen érhető el:
http://www.st.com/internet/com/SOFTWARE_RESOURCES/TOOL/CONFIGURATION_UTILITY/stm32f4_clockconfig.zip

Nagyon köszönöm az eddigieket! Megjött minden amit rendeltem, lassan nekiláthatok a programozásnak is. :)
Érdekességképpen megemlítem, hogy letöltöttem az IAR próbaidős változatát, erre egy hét múlva felhívtak Angliából és ~1.000.000 Ft-ért kínáltak teljes változatot. Ha nekem ennyi pénzem lenne ...
Azt hiszem, az Eclipse sokkal szimpatikusabb. Csak nem tudom, a most érkezett ZL30PRGv2 mennyire használható Linux alatt.
http://www.arm.com/community/partners/display_product/rw/ProductId/6598/

Összevetettem az IAR és az Eclipse árait. :)
Már csak azt kellene kitalálni, hogy ez:
http://linux.softpedia.com/get/Utilities/GNU-ARM-Eclipse-Plugin-31599.shtml
vagy ez
http://www.yagarto.de/
lenne alkalmasabb számomra.
Mi a véleményetek erről?
(Bár a ZL30PRGv2 Linux alatti használata még mindig kérdéses. ST-Link kompatibilis.)

Villog már, aminek villognia kell?

Igen az IAR híres az áráról, de ezért professzionális szupportot is kapsz. Magánszemélynek hobbyból nem éri meg, de cégként megérheti, főleg ha ez a fő pénztermelő tevékenység.

Sajnos sem az ARM-Eclipse plugint, sem a yagartot sem ismerem, ugyhogy ebben nem tudok tanácsot adni.

Jó bitvadászatot!

Még nem jutottam el odáig, ma szeretném megnézni az Atollic, Keil és ST nyújtotta kínálatot.
Linux alatt ráérek akkor is beüzemelni, ha Windows alatt már értem az alapokat. Az AVR-ekkel is így kezdtem. :)
Elég sok application note, technical note és reference manual vár még rám, úgy látom.
Azt hiszem, előbb FreeRTOS nélkül fogom megpróbálni, nem akarom nagyon bonyolítani a kezdeteket. :)
Az fw libraryket már nézegettem, érteni fogom, de még nem tudok sok mindent.
Azt hiszem, hamarosan kérni fogom a segítségedet, ha nem baj.

Villog már, nagyon szépen köszönöm a segítséget! :)
Azt a négyet ami a panelen van, nem olyan nehéz villogtatni a példaprogram alapján. Ma megpróbálok más perifériákat is beüzemelni, szerintem menni fog. Ha nem, akkor majd úgyis kiabálok. :)
Köszönöm ismét, elévülhetetlen érdemeid lesznek abban, ha megtanulom normálisan programozni az ARM-eket. :)

Megy már a multitask is. :) Jó választás volt az ST, köszönöm, cd334!

sub

sub

Itt van ez a cox-os cucc:
http://coocox.org/CooCox_CoIDE.htm
Szerintem elég jó a CooCox.
Tudom nem M3-as, hanem M0 de azér a Nuvoton sem rossz:
http://www.nuvoton.com/NuvotonMOSS/Community/ProductInfo.aspx?tp_GUID=5dbf7d7a-b6df-4fe1-91c9-063449500ce7
Főleg az ára "meggyőző":
http://www.chipcadextra.com/nuvoton/32-bites-mikrokontrollerek
Ez a próbapanel:
http://www.chipcadextra.com/nuvoton/32-bites-fejlesztoeszkoezoek/nutiny-sdk-nuc120
Debuggerrel együtt is csak ~7500Ft (bruttó) és működik.

Ennek a coocox-nak vannak korlátai a kód méretét illetően?

Hátha valaki még nem ismeri
http://sourceforge.net/projects/chibios/files/ChibiStudio/

Még fejlesztés alatt áll, de minden benne van ami kell, nem kell külön összekukázni.