Svetelektro.com

Svetelektro.com

Meno:
Heslo:
SVETELEKTRO • Varování v programu (optimalizace smyčky)

Varování v programu (optimalizace smyčky)

C,C++,C#

Moderátori: psichac, Moderátori

Varování v programu (optimalizace smyčky)

Odoslaťod jirka.jirka. » 06 Mar 2018, 10:09

Zdravím pánové a dámy,

Tak nějak jsem psaním kódu narazil na zajímavé varování, teda pro mě zajímavé a rozhodl jsem se zjistit více.

Takže, mám tuto funkci:
Kód: Vybrať všetko
FLASH_write_n_data_32

Která zapisuje data do interní FLASH u STM32.
- data - pole dat, které chci zapsat
- adresa odkud chci zapisovat
- nybytes - kolik 32bit hodnot chci zapsat.

Funkce funguje pěkně, ale.....

Překladač mě nenechá na pokoji.
cannot optimize loop, the loop counter may overflow [-Wunsafe-loop-optimizations]


Překlad jsem si vyložil takto:
Nemohu optimalizovat smyčku, smyčka může přetéct.

A teď přijde to zajímaví. Jak to udělat tak, aby to nastat nemohlo? Díky moc za rady.

Kód: Vybrať všetko
uint8_t FLASH_write_n_data_32(uint32_t *data, uint32_t start_address, uint32_t nbytest)
{
    uint32_t address = start_address;
    uint32_t stop_addr = nbytest*4 + address;
    while(address < stop_addr )
    {
       FLASH_ProgramWord(address, *data++);
       address = address + 4;
    }
    return 0;
}


PS: Pro všechny rýpaly, to že to funguje neznamená, že se varováním nemusím zabývat. A ano zkoušel jsem mnoho věcí, ale nic mi nepomohlo. A cesta na google byla moje první, ale nepomohlo mi to.
jirka.jirka.
Obrázok používateľa
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1095
Založený: 17.10.2008
Bydlisko: Zlín
Karma: 9

Re: Varování v programu (optimalizace smyčky)

Odoslaťod stefanSK » 06 Mar 2018, 11:14

?napr :

Kód: Vybrať všetko
void  FLASH_write_n_data_32(uint32_t *data, uint32_t start_address, uint32_t nbytest)
{
    uint32_t address = start_address;
    while(nbytest-- )
    {
       FLASH_ProgramWord(address, *data++);
       address +=  4;
    }
}
S.K.
stefanSK
Obrázok používateľa
Pokročilý člen
Pokročilý člen
Príspevky: 523
Vek: 62.98
Založený: 24.06.2010
Bydlisko: Trnava
Karma: 12

Re: Varování v programu (optimalizace smyčky)

Odoslaťod jirka.jirka. » 06 Mar 2018, 13:35

kurňa, že mě to taky nenapadlo. Vyzkouším a dám vědět. :thumbup: Zatím děkuji
jirka.jirka.
Obrázok používateľa
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1095
Založený: 17.10.2008
Bydlisko: Zlín
Karma: 9


Naspäť na C,C++,C#

Kto je prítomný

Užívatelia prezerajúci si toto fórum: Žiadny registrovaný používateľ a 0 hostí.

Forums ©
Autor stránky je Ondrej Závodský(zawin), o graficky design sa stará Ľuboš Fabo(BUFU).

TOPlist

Powered by Copyright © UNITED-NUKE CMS. All Rights Reserved.
Čas potrebný k spracovaniu stránky 0.22 sekúnd