I2C - Arduino STM32 Nucleo L476RG

Tomas Urbanek turbyho na me.com
Středa Prosinec 12 09:01:43 CET 2018


promena ma defaultne vice mene nahodnou hodnotu. ale to ty jiste vis moc dobre :)

Jira MWN muze doplnit toto a bude mu to fungovat take. Samozrejme bude treba pripadne osetrit i dalsi typy resetu dle potreby.

  if (LL_RCC_IsActiveFlag_SFTRST() != RESET) {
    test = 0;
  }
  __HAL_RCC_CLEAR_RESET_FLAGS();


T

> 12. 12. 2018 v 8:45, Jan Waclawek <konfera na efton.sk>:
> 
> No ved prave.
> 
> A teraz aky je postup, aby ste pomohli panovi kolegovi Jirkovi MWW zistit,
> preco to jemu takto krasne nefunguje?
> 
> wek
> 
> 
> 
> ----- Original Message ---------------
> 
>> Kde ti zakerni arduinisti udelali chybu ze jim to funguje? :-)
>> 
>> #include "stm32l4xx_ll_rcc.h"
>> 
>> extern "C" {
>> int test __attribute__ ((section (".noinit")));
>> }
>> 
>> void setup() {
>> if (LL_RCC_IsActiveFlag_SFTRST() != RESET) {
>>   test = 0;
>> }
>> __HAL_RCC_CLEAR_RESET_FLAGS();
>> 
>> Serial.begin(9600);
>> Serial.print("RESET FIRE: ");
>> Serial.println(test++);
>> }
>> 
>> void loop() {
>> }
>> 
>> 
>> vystup:
>> RESET FIRE: 0
>> RESET FIRE: 1
>> RESET FIRE: 2
>> RESET FIRE: 3
>> RESET FIRE: 4
>> RESET FIRE: 5
>> RESET FIRE: 6
>> RESET FIRE: 7
>> RESET FIRE: 8
>> RESET FIRE: 9
>> RESET FIRE: 10
>> RESET FIRE: 11
>> RESET FIRE: 12
>> 
>> Napsano a kompilovano v Arduino IDE v1.8.7., pouzito https://github.com/stm32duino/Arduino_Core_STM32 <https://github.com/stm32duino/Arduino_Core_STM32> (Nucleo L476RG)
>> 
>> T
>> 
>> 
>>> 12. 12. 2018 v 7:07, Jan Waclawek <konfera na efton.sk>:
>>> 
>>>> to fakt netusim, ale mohu to zitra zkusit. 
>>> 
>>> Super. Doporucujem zacat s preskumanim mapfile - prosim, postnite ho tu.
>>> 
>>> Mozno na reprodukciu problemu budeme musiet vyziadat zdrojak od pana kolegu
>>> Jirku MWW, ale mozno na uvod bude stacit nieco jednoduche len s tou
>>> premennou s atributom umiestnujucim ho do .noinit. Mozno treba aj dat
>>> nejake premenne do .data a do .bss aby sa ten efekt prejavil; a mozno ten
>>> efekt suvisi s nejakou konkretnou arduino kniznicou (alebo cube/hal
>>> kniznicou).
>>> 
>>> Ten .noinit v linker skripte - ak je to tento
>>> https://github.com/stm32duino/Arduino_Core_STM32/blob/master/variants/NUCLEO_L476RG/ldscript.ld
>>> - nie je. Ak nie je ta section priradena nejakym inym sposobom - priamo
>>> niektorym prikazom v command line napr --section-start, pouzitim ineho
>>> alebo doplnkoveho linker scriptu (*) - tak je ta section pokladana za
>>> orphan, . V tom pripade nastupuje "cierna magia", t.j. nie prilis
>>> zdokumentovane pravidla, ktorymi ld odhadne, akeho charakteru ta section
>>> je, a umiestni ju podla toho do prislusnej output section/memory area.
>>> Znova, "cierna magia" je ovplyvnena aj command line, napr. - dost
>>> rukolapne - --orphan-handling. No a na command line samozrejme vplyvaju
>>> specs, ktore tiez netusim ze ako su nastavene pre prekladac, ktory sa s
>>> tym stm32duinom pouziva. 
>>> 
>>> Skusmo, bez celeho toho arudina/stm32duina ktore si nemienim instalovat, s
>>> nejaky relativne starsim gcc-based prekladacom z launchpadu (t.j. binarnym
>>> balikom vyrobenym ARMom) mi tu .noinit section umiestnilo medzi .data a
>>> .bss a to tak, ze symboly konca .data a zaciatku .bss, ktore pouziva bezny
>>> startup code, boli pred a za tym .noinit, t.j. startup code by sa toho
> _______________________________________________
> 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