XC8 a data ver Flash

Jan Smrz jan.smrz na email.cz
Čtvrtek Červen 20 13:26:54 CEST 2013


On 06/20/2013 12:23 PM, Andrej Jancura wrote:
>
>
> 2013/6/19 Jan Smrz <jan.smrz na email.cz <mailto:jan.smrz na email.cz>>
>
>     Ano, pdata1 je konstanta, jen mám podezření, že ji asi ne vždy přiřadí
>     správnou hodnotu. V kódu mám dvoje čtení hned za sebou
>     mem_read((uint32_t)pdata1,sizeof(format_version),&format_version);
>     mem_read((uint32_t)pdata1 + 2,sizeof(length),(uint8_t*)&length);
>
>
> Este ma napada, ked preleziete vsetky include, najdete aj doplnkove funkcie 
> copy memory blok a move blok. Ked pozriem na tu Vasu mem_read a matne si 
> spomeniem na copy memory blok, tak su velmi az moc podobne. Pozrite si aj tie, 
> myslim, ze to vyriesi Vas problem.
>
Dekuji, podivam se na to.

mem_read vypada takto:

void mem_read(uint32_t address, uint8_t size, uint8_t *dst)
{
    uint8_t gie_l;

    if (GIE)
       gie_l = 1;
    else
       gie_l = 0;
    GIE = 0;
    for (uint8_t i = 0; i < size; i++)
    {
       LoadFlashAddr(address + i);
       TableRead(*dst++);
    }
    if (gie_l)
       GIE = 1;                         // restore interrupts
}


J.S.


------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20130620/e871eae9/attachment.htm>


Další informace o konferenci Hw-list