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
Senast redigerad av Erik M 19 maj 2016, 22:56:27, redigerad totalt 1 gång.
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.
"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".
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.
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.