Re: I2C zavaděč pro PIC18 (prosba o pomoc)

Ondřej Janovský ondrej.janovsky na alarex.cz
Pátek Duben 28 20:33:26 CEST 2017


Hrabu se s tím a nakonec jsem zjistil, že to dělá ukládání proměnných 
(definovaných ve funkcích) na zásobník.
Právě tam se hodnoty zblázní. Ostatní proměnné jsou ve svých prostorech 
a nepřekrývají se.

Oja

On 04/28/2017 17:40, Michal Gregor wrote:
> To je nejake divne. Ted uz moc s PIC18 nedelam a nemam ani u sebe MPLAB.
> Obecne:
> bootloader musi mit svoji rezervovanou pamet ve FLASH a v RAM.
> Stejne tak nova aplikace nesmi tyto oblasti vyuzivat. Oblasti pameti 
> se definuji v nejakem souboru. Jak se jmenuje s..., vypada nejak takhle:
> DATABANK NAME=sfr0 START=0x10 END=0x17 PROTECTED //Special Function 
> Registers in Bank0
> DATABANK NAME=sfr1 START=0x110 END=0x117 PROTECTED //Special Function 
> Registers in Bank1
> DATABANK NAME=sfr2 START=0x210 END=0x217 PROTECTED //Special Function 
> Registers in Bank2
> DATABANK NAME=sfr3 START=0x310 END=0x317 PROTECTED //Special Function 
> Registers in Bank3
> DATABANK NAME=gpr0 START=0x20 END=0xFF //General Purpose RAM in Bank0
> DATABANK NAME=gpr1 START=0x120 END=0x1FF //General Purpose RAM in Bank1
>
> V tomto souboru si staci vyvorit rezervovane oblasti pro bootloader.
> (Ted se nedostanu k PC se starym projektama, abych si to mohl 
> nastudovat vice)
>
> Michal Gregor
>
> Dne 28.4.2017 v 17:20 Ondřej Janovský napsal(a):
>> Zdravím,
>>
>> Už více jak týden se snažím napsat zavaděč pro PIC18, abych mohl nahrát
>> přes I2C program a pak ho spustit a provozovat.
>>
>> Povedlo se mi napsat zavaděč, který nahraje do flash program a pak se
>> restartuje a po startu je předáno řízení už tomuto programu.
>>
>> Přerušovací rutina však zůstává ta ze zavaděče a pokud je přerušení
>> jiného původu než I2C, předá se volání programu.
>>
>> A zde jsem narazil, protože nedokáži oddělit RAM pro zavaděč a obsluhu
>> I2C od zbytku aplikace a dějí se mi hrozná zvěrstva jako přepis obsahu
>> dočasných proměnných, nevysvětlitelné vytuhnutí obsluhy periferií, které
>> ve stejném kódu bez bootloaderu se nevyskytují.
>>
>> Zkoušel jsem nastavovat oblasti paměti v linkeru (k ničemu), vytvářet
>> bloky dat v kódu (funguje, ale jen pro jednodušší úlohy). Teď už jsem s
>> rozumem v koncích a z dokumentace k XC8 jsem nic nevyčetl :(
>>
>> A tak volám o pomoc, klidně i placenou :(
>>
>> Oja
>>
>> _______________________________________________
>> 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