STM32 bootloader

Michal Grunt michal.grunt na gmail.com
Neděle Červenec 10 00:01:41 CEST 2016


Po nějaké době co testuji to DFU a VCP na STM32F103 s Maple
bootloaderem to asi udělám jinak. Prostě hotového řešení (do krabičky)
namontuji i CP2102 s micro USB konektorem za 30Kč a bude se to
programovat přes sériovou linku a bude to. Navíc se ten micro USB
spolu s nabíjecím modulem použije i pro nabíjení baterie pokud bude
potřeba - nabíječku na telefon s micro USB má snad skoro každý...
Myslím, že to bude čistší řešení než nějaké ty emulace co můžou
ovlivnit i běh samotného programu a zabírá zbytečně to jak FLASH tak i
RAM. CP2102 má ovladače i pro Windows 10 (je i na destičce nové revize
ESP8266) takže by to snad neměl být žádný problém i do budoucna. Snad
nebude nutný při programování přes sériovou linku něco propojovat a po
programování to zase odpojovat. Ještě jsem to nezkoušel resp. jenom
při programování bootloaderu Arduino, ale program jako takový ne např.
blikání LEDkou, ale stačí snad u SMT32F103 vhodně propojit boot0 a
boot1 (Boot0 HIGH, Boot1 LOW), nechat to tak propojený a naládovat
procesor přes sériovou linku, ne? Propojky zůstanou (aby se dovnitř
nemuselo sahat) a po restartu se rozeběhne program... Nebo to je
trochu jinak?

MG

Dne 29. června 2016 10:48 Michal Grunt <michal.grunt na gmail.com> napsal(a):
> Podívám se na to. Třeba opravdu bude stačit jenom write() jako to je v
> print.cpp a o ostatní se už postará bootloader. Vyzkouším to. V
> podstatě to celé potřebuji jenom kvůli jedné věci. Když vytvořím
> nějakou blbůstku a někdo z okolí to bude chtít tak nebude problém
> jednoduše aktualizovat firmware a kromě kabelu k tomu nepotřebuje nic.
> Printf (USB VCP) se bude používat jenom pro ladění a v ostrém programu
> se printf řádky zakomentují. Takže by to pak nemělo nic narušovat, ne?
> Navíc USB kabel bude v ostrém provozu odpojený... Maximálně by byl
> použit jenom pro nabíjení (pokud to bude zařízení na baterii).
>
> Dne 29. června 2016 9:51 Jaroslav Buchta <jaroslav.buchta na hascomp.cz> napsal(a):
>> To bude zalezet na tom, jakou verzi USB stacku pouzivaji. STM knihovna (spis
>> priklad) na to ma jednoduche funkce ale je lepsi to jeste osetrit nejakym
>> bufferem. Asi bych se podival do zdrojaku tech ar...no knihoven, jak to
>> pouzivaji.
>> To STM USB je ale integrovano dost agresivne a v podstate veskera cinnost
>> probiha v ISR, nerad to pouzivam, dost to narusuje ostatni funkce.
>>
>> Dne 29.06.2016 v 9:46 Michal Grunt napsal(a):
>>
>>> Takhle, já vím jak přesměrovat printf na hw UART to není problém, ale
>>> nevím jak se zachází s tím "USB sériovým portem" - VCP? Jestli je
>>> nutné celé USB inicializovat a kdo ví co na něm nastavovat (nedělá to
>>> bootloader?) nebo stačí použít pouze pár příkazů, aby šel znak na ten
>>> VCP (bez printf, printf je nyní bezpředmětné).
>>>
>>> Dne 29. června 2016 9:38 Peter janiš <peto.janis na gmail.com> napsal(a):
>>>>
>>>> Možno pomôže: http://www.keil.com/forum/56766/
>>>> Alebo potom google: "printf redirect to UART"
>>>>
>>>> p.j.
>>>>
>>>> 2016-06-29 9:32 GMT+02:00 Michal Grunt <michal.grunt na gmail.com>:
>>>>>
>>>>> No mě by právě zajímalo co se skrývá pod funkcí write. Printf jako
>>>>> takové (z stdlib) není problém. Pokud použiji klasické systémové
>>>>> printf a ne Arduino (žádný bootloader, atd. jenom gcc a SPL) tak
>>>>> prostě inicializuji UART a upravím jednu funkci (asi putchar teď z
>>>>> hlavy nevím), která nasměruje znaky na UART. A mě by zajímalo jak
>>>>> nasměrovat znaky (nebo třeba jenom jeden znak) na ten virtuální
>>>>> sériový port. Když budu toto vědět už nebude problém ani printf.
>>>>>
>>>>> Dne 29. června 2016 7:03 Jaroslav Buchta <jaroslav.buchta na hascomp.cz>
>>>>> napsal(a):
>>>>>>
>>>>>> Krome modulu Print.cpp (a .h) budete jeste potrebovat WString.cpp, h a
>>>>>> to by
>>>>>> IMHO melo stacit. Funkci write musite udelat sam a ta by mela jednoduse
>>>>>> poslat znak kam je potreba. Vzal jsem to z verze pro Atmel.
>>>>>> Ty arduino knihovny se pro inspiraci pouzivaji docela snadno.
>>>>>> Mohu vam poslat cely projekt pro ARM, kde to je pouzito, ale neni pro
>>>>>> eclipse, tusim je pro EM Block a je docela rozsahly - rozpracovany port
>>>>>> SW
>>>>>> pro 3D tisk.
>>>>>> Taky pozor na startup kod a spolupraci s prekladacem pro obsluhu
>>>>>> statickych
>>>>>> konstruktoru, kdyz uz cpp.
>>>>>>
>>>>>> Dne 28.06.2016 v 23:49 Michal Grunt napsal(a):
>>>>>>
>>>>>>> Tak jsem nainstaloval Arduino IDE, nastavil ho pro STM32, nahrál maple
>>>>>>> mini bootloader, zkompiloval projekt atd. Celý tento řetězec funguje.
>>>>>>> Program se nahraje pomocí dfu-util. Virtuální sériový port funguje
>>>>>>> (funkce serial.print v Arduinu). Takže nyní stačí jenom připojit STM
>>>>>>> přes USB bez STlink nebo serial/USB převodníku a může se nalít program
>>>>>>> a rovnou provádět jednoduchý debug (přes sériový port) což byl cíl.
>>>>>>> Ostatně takto asi funguje originální Arduino (nedělám s ním). Teď už
>>>>>>> jenom vypreparovat serial.print, abych toto mohl nastavit např. v
>>>>>>> Eclipse bez Arduino knihoven a Arduino prostředí...
>>>>>>>
>>>>>>> Našel jsem soubor
>>>>>>> Documents\Arduino\hardware\Arduino_STM32\STM32F1\cores\maple\Print.cpp
>>>>>>> Ale z toho není vůbec zřejmé co to dále dělá. Akorát se to odkazuje na
>>>>>>> funkci write...
>>>>>>>
>>>>>>> Nemám raději googlit stm32f1 vcp printf? Je to to samé co dělá
>>>>>>> serial.print?
>>>>>>>
>>>>>>> Dne 20. června 2016 19:15 Jaromir Sukuba <jarin.hw na gmail.com>
>>>>>>> napsal(a):
>>>>>>>>
>>>>>>>> presne toto robi (bootloader + seriovy port) maple mini, co je
>>>>>>>> inkarnacia Arduina do STM32, dnes udrziavana v projekte STM32duino.
>>>>>>>> Je mozne, ze bude netrivialne to najst/ocistit/vykostit/upravit, ja
>>>>>>>> som to velmi neskumal.
>>>>>>>>
>>>>>>>> http://www.stm32duino.com/
>>>>>>>> https://github.com/rogerclarkmelbourne/STM32duino-bootloader
>>>>>>>> https://github.com/rogerclarkmelbourne/Arduino_STM32
>>>>>>>>
>>>>>>>> Vela zdaru.
>>>>>>>>
>>>>>>>>
>>>>>>>> 2016-06-20 19:09 GMT+02:00 Michal Grunt <michal.grunt na gmail.com>:
>>>>>>>>>
>>>>>>>>> Zdravím, nezkoušel někdo nahrát do SMT32 (konkrétně F103) nějaký
>>>>>>>>> bootloader, který by na USB portu emuloval sériový port (pro
>>>>>>>>> jednoduchý debug) a zároveň by přes něj šlo programovat abych
>>>>>>>>> nemusel
>>>>>>>>> používat STlink a USB RS232 převodník? Jeden čas jsem zkoušel
>>>>>>>>> bootloader z Arduina. Fungovalo to (Arduinu prostředí), ale nevím
>>>>>>>>> jak
>>>>>>>>> po té nastavit printf, aby šel výstup přes ten USB emulovaný sériový
>>>>>>>>> port a pak nevím jestli není nutné nastavit nějaký startup atd., aby
>>>>>>>>> to při programování nepřepsalo bootloader... Chci to používat v
>>>>>>>>> Eclipse+SPL.
>>>>>>>>>
>>>>>>>>> Děkuji, MG
>>>>>>>>> _______________________________________________
>>>>>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>>>>>> Hw-list na list.hw.cz
>>>>>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>>>>> Hw-list na list.hw.cz
>>>>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>>>> Hw-list na list.hw.cz
>>>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>>> Hw-list na list.hw.cz
>>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>>
>>>>> _______________________________________________
>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>> Hw-list na list.hw.cz
>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>> Hw-list na list.hw.cz
>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list