cs:arm_programming
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
| cs:arm_programming [2013/07/05 00:35] – [Programování procesorů ARM STM32] jacho | cs:arm_programming [Neznámé datum] (aktuální) – upraveno mimo DokuWiki (Neznámé datum) 127.0.0.1 | ||
|---|---|---|---|
| Řádek 4: | Řádek 4: | ||
| Pro používání procesorů ARM je nejlepší pracovat v operačním systému Linux, proto následující návod popisuje instalaci a využití nástrojů pro práci s ARM v tomto systému. | Pro používání procesorů ARM je nejlepší pracovat v operačním systému Linux, proto následující návod popisuje instalaci a využití nástrojů pro práci s ARM v tomto systému. | ||
| - | Veškeré zde užité programové vybavení je dostupní | + | Veškeré zde užité programové vybavení je dostupné |
| + | |||
| ===== Kompilátor ===== | ===== Kompilátor ===== | ||
| Řádek 10: | Řádek 12: | ||
| Jako volně dostupný kompilátor se může použít GNU C Compiler, dostupný v git repositáři [[https:// | Jako volně dostupný kompilátor se může použít GNU C Compiler, dostupný v git repositáři [[https:// | ||
| - | Pro instalaci do Ubuntu je možné využít před připravené [[https:// | + | == Rychlá instalace pomocí |
| - | + | ||
| - | == Rychlá instalace pomocí | + | |
| sudo add-apt-repository ppa: | sudo add-apt-repository ppa: | ||
| sudo apt-get update | sudo apt-get update | ||
| - | sudo apt-get install gcc-arm-none-eabisudo | + | sudo apt-get install gcc-arm-none-eabi libnewlib-arm-none-eabi |
| | | ||
| - | == Postup kompilace == | + | Pokud si nechcete do systému přidávat nový PPA repozitář, tak můžete použít rovnou |
| - | V terminálu je potřeba se nacházet ve složce, kde se nachází soubory potřebné pro kompilaci a následně stačí zadat příkaz MAKE | + | |
| | | ||
| - | ===== Programovací GUI ===== | + | |
| + | == Postup kompilace | ||
| - | ==== Sublime text ==== | + | V terminálu je potřeba se nacházet ve složce, kde se nachází soubory potřebné pro kompilaci a následně stačí zadat příkaz make. |
| + | |||
| + | ===== Knihovny periférií ===== | ||
| - | [[http:// | + | Protože nastavení a obsluha |
| - | + | ||
| - | + | ||
| - | ==== Code:: | + | |
| - | + | ||
| - | [[http:// | + | |
| - | + | ||
| - | sudo apt-get install codeblocks | + | |
| - | ===== Knihovna ===== | + | |
| ==== STM32F10X standard peripheral library ==== | ==== STM32F10X standard peripheral library ==== | ||
| Řádek 47: | Řádek 40: | ||
| [[http:// | [[http:// | ||
| - | ===== Nahrávání ===== | ||
| - | ==== Bootloader | + | ===== Zápis přeloženého kódu ===== |
| - | Užití bootloaderu je výhodné v případech, | + | Po přeložení zdrojového kódu je potřeba výsledný binární program zapsat do FLASH paměti mikroprocesoru. To lze udělat několika způsoby. Podle toho, jaký konkrétní procesor ARM máme a jak je konstruovaná elektronika ve které je procesor osazený. |
| - | === Modul STM32F10xRxT01A === | + | |
| + | ==== Modul STM32F10xRxT01A ==== | ||
| + | |||
| + | === Sériový bootloader === | ||
| + | |||
| + | Booloader může být použit na rozhraních USART1, USART2, CAN2 nebo USB. Všechny typy ARM ale nepodporují všechny typy. Dále může být bootloader použit pouze v případě užití konkrétních frekvencí krystalů. | ||
| + | |||
| + | * USART pracuje s interním 8 MHz oscilátorem | ||
| + | * CAN a USB OTG FS funguje pouze s externími oscilátory 8 MHz, 14.7456 MHz nebo 25 MHz | ||
| + | |||
| + | |||
| + | Užití bootloaderu je výhodné v případech, | ||
| Pro aktivaci bootloaderu držte tlačítko BOOT, zmáčkněte tlačítka RESET a poté hned pusťte tlačítko BOOT. | Pro aktivaci bootloaderu držte tlačítko BOOT, zmáčkněte tlačítka RESET a poté hned pusťte tlačítko BOOT. | ||
| Řádek 59: | Řádek 62: | ||
| == Připojení modulu == | == Připojení modulu == | ||
| - | Pro použití bootloaderu je třeba modul připojit na seriovou linku. V případě použití modulu [[cs: | + | Pro použití |
| Řádek 115: | Řádek 118: | ||
| Starting execution at address 0x08000000... done. | Starting execution at address 0x08000000... done. | ||
| | | ||
| - | === dfu-util | + | === USB bootloader |
| - | Přeložené bináry této utility pro jednotlivé platformy naleznete zde: [[http://www.mlab.cz/ | + | [[https://gitorious.org/dfu-util|dfu-util]] |
| - | Pro aktivaci bootloaderu přes USB musíte připojit +3,3 V na nožičku PA9. Spuštění bootloaderu se provádí tlačítky: stiskni RESET, stiskni BOOT, pusť RESET, pusť BOOT. | + | == Zapojení == |
| - | Dávka pro volání dfu-util pro platformu Windows a přeložená verze dfu-util bez potřeby dalších knihoven je zde: [[http:// | + | Pro aktivaci bootloaderu |
| - | Nahrání firmware si můžete vyzkoušet pomocí tohoto vzorového bináru, který z procesoru STM32F107 udělá USB HID myš, která opisuje kolečko: [[http:// | + | $ lsusb |
| - | + | Bus 003 Device 007: ID 0483:df11 STMicroelectronics STM Device in DFU Mode | |
| - | ==== J-TAG ==== | + | |
| - | K programování přes JTAG se potřebuje externí programátor. Na modulu [[cs: | + | Dále je dobré si zkontrolovat, |
| - | Programovat lze např. otevřeným programem [[http:// | ||
| - | OpenOCD má v Ubuntu sice nativně podporované balíčky, ale jejich | + | Dávka pro volání dfu-util pro platformu Windows a přeložená |
| - | sudo apt-get install libtool git gcc automake libftdi-dev texinfo | + | Příklad volání dfu-util: |
| - | | + | |
| - | cd openocd-code/ | + | |
| - | | + | |
| - | | + | |
| - | make | + | |
| - | sudo make install | + | |
| | | ||
| - | Tím máme v systému naistalováno OpenOCD. Pokud jej budeme chtít odinstalovat, | + | Popis parametrů |
| - | sudo make uninstall | + | - // |
| + | - // | ||
| - | Pokud máme k počítači připojený modul [[cs:jtagft2232v|JTAGFT2232V02A]] s nahraným schématem v FPGA, tak se můžeme | + | Nahrání firmware si můžete vyzkoušet pomocí tohoto vzorového bináru, který z procesoru STM32F107 udělá USB HID myš, která opisuje kolečko: [[http:// |
| + | |||
| + | Přímo z klonu MLAB svn repozitáře | ||
| - | sudo openocd -f " | + | |
| | | ||
| - | Open On-Chip Debugger 0.7.0-rc1-dev-00011-gd9ba56c (2013-04-28-11: | + | je však potřeba v terminálu být na správné cestě. tj. například |
| - | Licensed under GNU GPL v2 | + | |
| - | For bug reports, read | + | ==== J-TAG ==== |
| - | http://openocd.sourceforge.net/doc/doxygen/bugs.html | + | |
| - | Info : only one transport option; autoselect ' | + | |
| - | adapter speed: 1000 kHz | + | |
| - | adapter_nsrst_delay: | + | |
| - | jtag_ntrst_delay: | + | |
| - | cortex_m3 reset_config sysresetreq | + | |
| - | Info : max TCK change to: 30000 kHz | + | |
| - | Info : clock speed 1000 kHz | + | |
| - | Info : JTAG tap: stm32f1x.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3) | + | |
| - | | + | |
| - | Info : stm32f1x.cpu: | + | |
| - | OpenOCD teď vytvořilo server ke kterému se můžeme přípojit přes telnet | + | Jtag lze použít téměř s libovolným ARM mikroprocesorem. |
| + | |||
| + | K programování přes JTAG je potřeba externí programátor. Na modulu [[cs: | ||
| + | |||
| + | Modul JTAGFT2232V02A lze ovládat například programem [[http:// | ||
| - | telnet localhost 4444 | ||
| - | | ||
| - | Trying 127.0.0.1... | ||
| - | Connected to localhost. | ||
| - | Escape character is ' | ||
| - | Open On-Chip Debugger | ||
| - | > | ||
| - | ===== RTOS ===== | + | ===== RTOS |
| ==== Chibios ==== | ==== Chibios ==== | ||
cs/arm_programming.1372984508.txt.gz · Poslední úprava: 2013/07/05 00:35 (upraveno mimo DokuWiki)
