XC8 a data ver Flash

Andrej Jancura aj.hwlist na gmail.com
Čtvrtek Červen 20 14:49:03 CEST 2013


Dobry den,

2013/6/20 Jan Smrz <jan.smrz na email.cz>

>  On 06/20/2013 12:23 PM, Andrej Jancura wrote:
>
>
>
> 2013/6/19 Jan Smrz <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.
>
>
Pozrite si vsetky tie include az do konca. Treba preliezt xc.h a string.h.
Funkcia sa vola memcpy a ostatne su podobne. Ale neviem, ci mate v lite
verzii aj zdrojaky jednotlivych funkcii. V kazdom pripade pre pic18 je tam
pouzity pointer far void *. Takze je to tak, ze si myslim, ze ten uint32_t
by ste mal prepisat na far pointer a prislusne si upravit aj Vasu definiciu
funkcie. Potom by nemal byt problem.

A.

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.
>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20130620/01faaba0/attachment.htm>


Další informace o konferenci Hw-list