Fråga om GPR som pekar mellan banker

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: Fråga om GPR som pekar mellan banker

Inlägg av Erik M »

Vilket påminner mig...

Det finns en massa luft i segmenten för SFR - kan man använda dessa adresser för sina GPR?
Antagligen inte, trots att de står oanvända, men värt dubbelkolla ändå.... :mrgreen:


Och, som sagt, lite tillägg i inlägget på förra sidan.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Fråga om GPR som pekar mellan banker

Inlägg av sodjan »

Angående macron... En skip före ett macro fungerar inte som det ser ur. Tänk på den expanderade koden, skippen kommer att köra hela macrot utom första instruktionen.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: Fråga om GPR som pekar mellan banker

Inlägg av Erik M »

Ah - du menar så.
Bra påminnelse, som jag lärt mig av dig tidigare. :tumupp:
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46967
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Fråga om GPR som pekar mellan banker

Inlägg av TomasL »

Erik M skrev:Vilket påminner mig...

Det finns en massa luft i segmenten för SFR - kan man använda dessa adresser för sina GPR?
Antagligen inte, trots att de står oanvända, men värt dubbelkolla ändå.... :mrgreen:


Och, som sagt, lite tillägg i inlägget på förra sidan.
Nej, det är helt o-implementerat och försöker du läsa dessa adresser, så får du antingen 0xFF eller 0x00, det existerar helt enkelt inget kisel på dessa adresser.

Resultatet, dvs 0x00 eller 0xFF, står med största sannolikhet i databladet, samma gäller o-implementerade bitar i SFR.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: Fråga om GPR som pekar mellan banker

Inlägg av Erik M »

Tja, jag kan använda dem till att hämta värdet 0x00... Eller möjligen då, men mindre troligt, 0xFF. :vissla:
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: Fråga om GPR som pekar mellan banker

Inlägg av Erik M »

.
..
...
PIC12F1572
...
..
.

Hur fungerar det nu då mellan BSR och FSR?

Normalt har vi:
BANKSEL TRISIO
BSF TRISIO, TRISIO5

Där "BANKSEL" är b'00001', tror jag...
...dvs:
MOVLW 0x01
MOVWF BSR

Allt detta ger BSR + OPCODE:
00001 - BSR
0101 - BSF
101 - TRISIO5
(00001)0001100 - TRISIO

Vad händer om jag helt sonika skriver BSR + OPCODE...
0000101011010001100b
...eller...
0568Ch
...som en programrad?

Eller ska den skrivas annorlunda?

Hur ser det ut om man nyttjar FSR?

(Ja, jag blir mer och mer irriterad på detta att vi tvingas snubbla runt i en labyrint av saker att hålla koll på - saker som redan är exakt, rakt och, framförallt, enkelt både definierade, namngivna, tillgängliga och adresserade.)
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Fråga om GPR som pekar mellan banker

Inlägg av lillahuset »

Ärligt talat Erik, vad jiddrar du om? Vad vill du veta? Vad vill du uppnå?
(Ja, jag blir mer och mer irriterad på detta att vi tvingas snubbla runt i en labyrint av saker att hålla koll på - saker som redan är exakt, rakt och, framförallt, enkelt både definierade, namngivna, tillgängliga och adresserade.)
Livet är sådant, massor av saker att hålla reda på. Eller så får man nöja sig med att konsumera smartfånappar.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: Fråga om GPR som pekar mellan banker

Inlägg av Erik M »

Vad jag är irriterad över?

Att PIC inte håller reda på var registren är på egen hand.

När du skriver en instruktion måste du tala om i vilken bank du tror registret återfinns.
Detta trots att den slutliga raden innehåller den informationen på egen hand...
...under förutsättning att du inte har skrivit fel eller missar var du står i för bank och skriver att du står i banken bredvid.

De färdiga varianterna på koden följer detta mönster:
BSR + OPCODE + ALT + REGISTER (-BSR)
Från exemplet ovan:
BSR [00001] OPCODE [0101] BIT [101] REGISTER [000010001100]

Om registret fick behålla hela sin adress skulle vi slippa hålla på med banker etc.
Hela adressen måste ju ändå vara med, annars vet inte koden var den är.
Nej, det vet den inte. Den måste gå å kolla vart den är precis hela tiden, eftersom den inte får med sig vilken bank den ska agera i... Medans den information finns mitt framför näsan på den...

Och ett register vet inget annat än i vilken bank och i vilket fack det befinner sig.
Dvs det finns inget som håller reda på i vilket fack i vilken bank ett register finns.
Utan det finns i en bank och i ett fack.

Problemet uppstår inte riktigt ordentligt förrän BSR blir större än en bit.
Det är irriterande redan då, men inte oöverstigligt. Dvs det är enkelt hålla reda på rätt bank.

Det blir värre när man har 32 banker, BSR på fem bitar, och än värre då det är gott om luft i den och ingen direkt logik att följa.
Det finns ju en smula logik i att GPIO och TRISIO ligger å samma rad i sina respektive banker. Inte mycket, men visst. Dessvärre hjälper detta inte något speciellt.

Nå, tillbaka till ovan...

Istället för...
BSR [00001] OPCODE [0101] BIT [101] REGISTER [000010001100]
...dvs...

MOVLW 00001b
MOVWF BSR
(dvs BANKSEL)
BSF TRISIO, TRISIO5
MOVLW xxxxxb
MOVWF BSR
...nästa instruktion...
MOVLW xxxxxb
MOVWF BSR
...nästa instruktion...
MOVLW xxxxxb
MOVWF BSR
...nästa instruktion...

Så kunde det se ut såhär...
BSF TRISIO5
...för all information finns redan.
För vad det står på den raden - egentligen - är...
OPCODE REGISTER BIT
Det står inte...
BSR (från MSB av REGISTER) OPCODE BIT REGISTER (utan MSB för BSR)
...men det är så strukturen MicroChip ser ut och som vi tvingas anpassa vår tid och energi till.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Fråga om GPR som pekar mellan banker

Inlägg av Swech »

Informationen om bank får inte plats i instuktionen.
Därför behövs bank på pic för att hålla reda på detta.

Det finns andra Picfamiljer som detta är fixat på, alternativt andra processorfamiljer som inte heller dras med
detta.... de har naturligtvis andra egenheter.

Swech
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46967
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Fråga om GPR som pekar mellan banker

Inlägg av TomasL »

Nej, du skriver BANKSEL och registret ifråga, assemblatorn och dess preprosessor fixar så att BSR per automatik får rätt värde.

Processorn har naturligtvis inte en aning om vad ett register är för något.
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Fråga om GPR som pekar mellan banker

Inlägg av Icecap »

Erik M: Istället för att vara magsur kan du ju byta till en annan processortyp.

Du verkar ju ha enorma problem med något väldigt många andra klarar utan problem så det är kanske inte den rätta µC för dig helt enkelt.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Fråga om GPR som pekar mellan banker

Inlägg av lillahuset »

Icecap kommer som vanligt med konstruktiva förslag. Själv är jag betydligt sämre.
Men det finns ju massor av olika processorarkitekturer och Icecap gillar (har jag för mig) Renesas.
Själv föredrar jag ARM Cortex-Mx som finns från nästan gratis till betydligt häftigare än ur-PCn. Och fortfarande billiga.

Edit: Därmed inte sagt att du skulle trivas bättre med något annat än PIC.
Edit 2: Du kanske skulle programmera i C?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46967
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Fråga om GPR som pekar mellan banker

Inlägg av TomasL »

Det handlar naturligtvis om att inte grotta ned sig, utan acceptera att saker är som de är, och leva med det.
Finns överhuvudtaget ingen anledning att fundera på varför man gör si eller så.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: Fråga om GPR som pekar mellan banker

Inlägg av Erik M »

Jag har inget problem med detta - mitt problem är hur jädra dåligt det är gjort.

Jag föredrar MicroChip's assembler framför exempelvis ATMEL's.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46967
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Fråga om GPR som pekar mellan banker

Inlägg av TomasL »

Vilket är dåligt gjort?
Skriv svar