Enhanced mid-range PIC (PIC16F15323)

Jindrich Fucik fulda na seznam.cz
Středa Březen 21 08:13:44 CET 2018


Tohle není to issue, ale když už se ptáš, tak PICy mají několik typů 
pamětí. To co zrovna tady používám je "High Endurance Flash", tedy maže 
se po řádce a zapisuje se celá řádka (32B). Tady je uložená na konci 
programové paměti a já se mohu rozhodnout, jestli jí budu používat pro 
data a nebo pro program. Pokud jí označím za data, tak pro ní platí 
separátní zámek pro čtení (code protect / data ptotect). Mohu se 
rozhodnout, že zamknu kód a přitom nechám modifikovat data.
Ale zároveň v ní nemohu nechat běžet program (končí s chybou). To je 
celkem logické, ale nedošlo mi to hned. Přece by tam mohl uživatel dát 
nějaký škodlivý kus kódu, který by ovlivnil něco v zamčeném programu.

Jinak existují i PICy, které mají EEPROM a tu pak mohu mazat/přepisovat 
po buňkách.

Dne 20.3.2018 v 20:01 Vláďa Anděl napsal(a):
> Nevím, jak tohle funguje u piců, ale u silabsů, tedy ta lepší 8051 :-) 
> musím už z principu pro data použít některou prázdnou stránku flash 
> paměti. Můžu tam cokoliv přepsat, ale smazat jedině celou stránku 
> najednou. U piců se snad dá mazat každá buňka zvlášť? Protože jedině pak 
> bych chápal, že se to dá kombinovat s programem.
> Anděl
> 
> Dne 20.3.2018 v 19:23 Jindrich Fucik napsal(a):
>> OK, tak už to vím, nedal jsem si pozor na větu v dokumentaci:
>>
>> 4.2.3 STORAGE AREA FLASH
>> ...
>> If the Storage Area Flash (SAF) is enabled, the SAF area is not 
>> available for program execution.
>>
>> - to dřív nebejvalo, normálně jsem používal retlw pro čtení.
>>
>> Dne 20.3.2018 v 18:14 Jindrich Fucik napsal(a):
>>> Ahoj,
>>>
>>> zase jsem narazil na něco, čemu nerozumím. A tady se zdá, že tomu 
>>> nerozumí ani simulátor.
>>> Mám takovýto kód (dole). A jako náhodou se červená led v pohodě 
>>> rozsvítí a zelená už nikdy
>>> Pochopitelně hra s PCLATH nemá žádný vliv, protože procesor má jen 
>>> 2KB paměti a adresa 0x781 se v pohodě obslouží příkazem call.
>>>
>>> Blbé je, že v simulátoru to chodí bez zaváhání :(
>>>
>>>
>>> [code]
>>>   __CONFIG _CONFIG4, _BBSIZE_BB512 & _BBEN_OFF & _SAFEN_ON & 
>>> _WRTAPP_OFF & _WRTB_OFF & _WRTC_OFF & _WRTSAF_OFF & _LVP_ON
>>>
>>> ...
>>>
>>> SetMyAddress:
>>>      ;movlp    HIGH(Get_ADR_MEM_L)
>>>      bsf    CrvenaLED
>>>      call    Get_ADR_MEM_L
>>>      bsf    ZelenaLED
>>> ...
>>> ; ----- EEPROM default values
>>> ;  (in SAF area)
>>>
>>>      org    0x00780
>>> SAF_ADR:
>>>      BRW
>>> Get_ADR_MEM_L:
>>>      RETLW    0x04        ; ADR_MEM_L    ; Turnout addres Lo part
>>> Get_ADR_MEM_H:
>>>      RETLW    0x00        ; ADR_MEM_H    ; Turnout addres Hi part
>>> [/code]
>>>
>>>
>>> _______________________________________________
>>> 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
> 
> 
> 
> ---
> Tato zpráva byla zkontrolována na viry programem Avast Antivirus.
> https://www.avast.com/antivirus
> 
> _______________________________________________
> 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