Mám velkou radost, že můžu představit dalšího autora, kterým je Dawe! Ukazuje se že Dawe se pokouší trápit Cortex M3 jádro přímo v assembleru. Navazuje tím na článek ARM assembler kód (autor Luke). Doufám, že ti, kteří potřebují buď maximální využití rychlosti mcu, nebo mají málo Flash paměti pro program, budou věnovat článku zaslouženou pozornost.
Bohužel jsem nikde nenašel návod jak programovat STM32 pomocí GNU nástrojů a v assembleru. Tak ať máme alespoň jeden tady na MCU. Protože já vlastním doma jen PC s WinXP bude se vše následující vztahovat jen na tuto platformu.
Vhodný assembler jsem docela dost dlouho hledal a nakonec jsem použil GNU program as. Binárku pro WIN32 najdete v Sourcery G++ Lite. Nainstalujte jí, do Programů vám sice přidá pouze dokumentaci - ale nevadí. Na disku si vytvořte nějaký adresář. Do něj rozbalte zip, který je součástí tohoto článku. Soubor prelozit.cmd přesuňte do složky "Program Files\CodeSourcery\Sourcery G++ Lite\bin". Pokud jste nikdy nepoužívali v průzkumníku zdrojový soubor assembleru ".s" tak k němu přiřaďte normální textový editor (nebo notepad, pokud nemáte nějaký rozumnější editor).
Jako další krok si přidejte do kontextového menu průzkumníka položku přeložit ke zdrojovému souboru assembleru ".s", pomocí postupu: Průzkumník -> Nástroje -> Možnosti složky -> Typy souborů -> Vyberte soubor .S -> Upřesnit
Klepněte na tlačítko "Nová" a pojmenujte akci, do příkazového řádku vložte: "C:\Program Files\CodeSourcery\Sourcery G++ Lite\bin\prelozit.cmd" "%1"
Vše potvrďte a můžete zkusit překlad jednoduchého prográmku v assembleru, což bylo naším cílem!
Pokud bude vše ok, pak bude v dosovském okně jen nápis done a ve složce přibudou soubory testLed.bin a testLed.lst
Teď potřebujeme program ST-link utility. Bohužel na serveru ST se mi jej nepodařilo vypátrat. Jen pomoci google jsem našel tuto stránku. Doufám, že jsem neporušil žádná autorská práva. Program nainstalujeme a spustíme. Nejprve přehodíme nastavení na SWD. Pozn Mard: jsem se usmíval a říkal si, že to najdu levou zadní, že kolega Dawe hledání odbyl. Prdlačku! Na novém webu ST.COM jsem hledal 45 minut a nenašel jsem ST-Link Utility. Já to raději nebudu ani komentovat.
Teď můžeme otevřít náš bin soubor.
Program se rovnou zeptá zda, chceme programovat. Nevím jak vy, ale já ano, takže dotaz potvrdím kladně.
Teď už stačí jen dát: Target -> MCU Core... -> System Reset -> Run
Tady taky můžete provádět ladění, teda ehm... chci říci snad jedině zjistit kde to asi spadlo.
Doufám že nebudete komentovat to, že ten cmd se podobá konfiguráku pro sendmail.
Délka programu je cca 0,5KB z čehož většina je prázdný skokový vektor přerušeni (ten již pak nenarůstá, takže při zvětšování složitosti assemblerovského zdrojového kódu není narůstání délky programu příliš významné).
Soubor *.lst vytvořený při překladu je "kontrolní zpětný překlad" do asm. Udělal jsem i cmd pro překlad bin->assembler.
Odkaz
Zdrojové soubory pro tento článek naleznete: testled.zip Další díl Na ARM s assemblerem 2. je zde.
gnat 24/05 14:28 btw mi to nevychází ani pro těch 75A nijak pěkně
gnat 24/05 14:27 pako: njn to je z toho, že člověk nečte poznámky. Vidím: "Continuous Drain Current, V GS @ 10V" a až na druhém konci datasheetu je poznámka pod čarou, že je to calculated pro maximální povolený trátový výkon a že package limitation is 75A
mojerena 24/05 11:39 Nová výbava do laboratoria aneb pohádka o jednom ESR metru - 3 měsíce trvalo, než došel balík...... odkaz
Gotrek 24/05 09:12 Netušíte někdo kde sehnat hliníkovou tenkostěnou uzavřenou trubičku na výrobu teplotního čidla. Něco jako je toto: odkaz
pako 24/05 00:19 Tech 150A je samozrejme jen spickove :), slusny vyrobci pisou "package limited" odkaz
gnat 23/05 22:45 Dospěl jsem k řádově stejnému výsledku. Nechápu tu drzost výrobců uvést to jako katalogový údaj.
jeso 23/05 16:46 gnat: mno mě to vychází 990K za 1s :-)
pako 23/05 16:42 Taky jsem se shanel po tlustsi Cu vrstve a nakonec se ukazalo, ze obycejne pocinovani tlustou vrstvou to vyresilo ...
krepa 23/05 13:28 No a neni tam "de-rating curve" ? Tedy ze podle teploty okoli se snizuje maximalni proud (vykonova ztrata)
gnat 23/05 12:44 sakra asi něco počítám blbě, podle mých výpočtů se nožičky TO220 při povolených 150A musejí prostě roztéct.
gnat 23/05 12:35 Aha propočítal jsem to pro jistotu ještě pro teplotu okolí 35 stupňů a 105um bude lepší. Nepotřebuju toho moc, cca. 2dm2
gnat 23/05 12:31 Nevíte kde rozumně sehnat 70um Cuprextit ?
maci 23/05 09:31 CNC: po roznych mailoch je cena 800 EUR bez PC, 1000 EUR s PC. Neposielajte vyssie ponuky, ten kto pvry zaplati toho bude. Dakujem za pochopenie, nechceli sme robit z toho drazbu.