Sida 1 av 5

Fråga om GPR som pekar mellan banker

Postat: 19 maj 2016, 14:27:24
av Erik M
PIC12F683
3.2 Data Memory Organization The data memory (see Figure 3-2) is partitioned into two banks, which contain the General Purpose Registers (GPR) and the Special Function Registers (SFR). The Special Function Registers are located in the first 32 locations of each bank. Register locations 20h-7Fh in Bank 0 and A0h-BFh in Bank 1 are General Purpose Registers, implemented as static RAM. Register locations F0h-FFh in Bank 1 point to addresses 70h-7Fh in Bank 0. All other RAM is unimplemented and returns ‘0’ when read. RP0 of the STATUS register is the bank select bit.
Dvs GFR GPR med adress 70h-7Hh är åtkomliga från vilkendera bank man än står i, korrekt?


Edit: rubrik förtydligad - hcb

Re: GFR som pekar mellan banker... Q

Postat: 19 maj 2016, 14:31:40
av sodjan
Ja, som bilden under "FIGURE 2-2: DATA MEMORY MAP OF THE PIC12F683"
på sidan "DS41211D-page 8" också visar...

Re: GFR som pekar mellan banker... Q

Postat: 19 maj 2016, 14:57:18
av Erik M
...på vilket följer att det är lämpligt starta från 70h, inte från första adress, exempelvis 20h för PIC12F683, korrekt?

Sedan får man, givetvis, hålla reda på mängderna GFR GPR lite mer än annars.

Re: GFR som pekar mellan banker... Q

Postat: 19 maj 2016, 15:09:08
av sodjan
Ja, vad som är "lämpligt" varierar ju, men för enklare applikationer där det räcker med 16 byte, så kan ju allt ligga i "unbanked memory".

Re: GFR som pekar mellan banker... Q

Postat: 19 maj 2016, 17:30:29
av Erik M
Var fick du 16 byte ifrån?

Vad jag kan se är GFR GPR 96 och 32 byte, varav 16 av de 96 återfinns i båda banker.

Re: GFR som pekar mellan banker... Q

Postat: 19 maj 2016, 17:31:14
av sodjan
Exakt.

Re: GFR som pekar mellan banker... Q

Postat: 19 maj 2016, 18:23:44
av Icecap
Grejen med detta "överlapp" är att man t.ex. kan ha den lagring av status osv. som behövs vid interrupt att det alltid fungerar utan att man behöver växla bank eller liknande.

Re: GFR som pekar mellan banker... Q

Postat: 19 maj 2016, 21:16:25
av Erik M
Hur menar du då icecap?

Vad skulle kräva multibanksstatus under ISR?

Re: GFR som pekar mellan banker... Q

Postat: 19 maj 2016, 21:56:12
av sodjan
"Context save". Man måste kunna spara vissa register på kända
platser i minnet utan föregående bank-byte. Därför har alla PIC12
och PIC16 med flera banken alltid lite minne som "unbanked memory".

Re: GFR som pekar mellan banker... Q

Postat: 19 maj 2016, 22:27:07
av Erik M
Givetvis, men frågan var vad det har med GFR GPR att göra...

Re: GFR som pekar mellan banker... Q

Postat: 19 maj 2016, 22:34:11
av TomasL
Vad är GFR för något?
70h-7Hh är åtkomliga från vilkendera bank man än står i, korrekt?
Nej det är inte korrekt, adresserna 0x70 till 0x7f finns bara i bank0, däremot så kan man komma åt samma registerinnehåll i bank 1 på adresserna 0xf0 till 0xff.

Hur man sedan adresserar det hela är en annan sak.

Re: GFR som pekar mellan banker... Q

Postat: 19 maj 2016, 22:48:47
av sodjan
GFR ska nog vara GRP "General Purpose Registers".
"GFR" är inget som nämns i databladet.

Re: GFR som pekar mellan banker... Q

Postat: 19 maj 2016, 22:51:36
av Erik M
Jag tänkte någon behövde något att haka upp sig på... :twisted:

Frågan kvarstår, vad har det med GFR GPR att göra...?

Re: GFR som pekar mellan banker... Q

Postat: 19 maj 2016, 22:53:29
av sodjan
Ja, jag förstod vad du menade, men eftersom någon frågade, så...

Re: GFR som pekar mellan banker... Q

Postat: 19 maj 2016, 22:54:47
av TomasL
Erik, du har en förkärlek att hitta på egna benämningar på saker, det vore fasiken så mycket bättre om du använde de vedertagna och korrekta benämningarna.