Sida 2 av 2

Re: Hjälp med förklara 4 rader kod i ARM7 applikation

Postat: 4 februari 2011, 19:03:31
av sneaky
Läste du överhuvudtaget sodjans inlägg?

Re: Hjälp med förklara 4 rader kod i ARM7 applikation

Postat: 4 februari 2011, 23:16:13
av sodjan
> Ska registrena nollställas vid reset? Samma värde står kvar i R9 o R13 efter en reset!

Det är nog ganska normalt att man lämnar *generella* register "as-is"
vid en mjukvarureset (efter power-on är de "undefined"). Tanken är
normalt att man ska ha möjlighet till en recover efter att någointing
har fått processorn att reseta, det kan vara brown-out, watch-dog
eller något liknande. Då vill man att de data man hade ska vara kvar
och något status register brukar tala om vilken "typ" av reset det var.

Ner det gäller specifika register för olika enheter så beror det på,
en del har specifika värden som de intar oberoende på vilken typ
av reset det var, andra är "as-is".

När det gäller hur just en ARM7 uppför sig så är absolut enklast att RTFM.

> Läste du överhuvudtaget sodjans inlägg?

Kanske, men verkar inte bry sig i alla fall...

Re: Hjälp med förklara 4 rader kod i ARM7 applikation

Postat: 6 februari 2011, 18:04:05
av imac
Läste du överhuvudtaget sodjans inlägg?
Jag har läst Sodjans föregående inlägg men eftersom dom inte tillförde något vettigt (enligt mig), snarare tvärt om, o då lägger jag ingen tid på de..

Men det sista inlägget om registren av sodjan är matnyttig info så det tar jag till mig :wink:

Raden ovanför är det som sätter carryflaggan, beroende på vad som är i registrena r9 och r13.
0x0000047C E1DD90A9 BICS R9,R13,R9,LSR #1
0x00000480 2A000001 BCS 0x0000048C
0x00000484 E2888004 ADD R8,R8,#0x00000004
0x00000488 EAFFFFFB B 0x0000047C
Hur sätts värdena i registrena som i detta fall R9 o R13? För i dom kodraderna som jag har bifogat så sätts väl inga värden?
Kan det vara så att det är en I/O pinne på processorn som sätter en carryflagga?


För att ännu mer förvirra så har den hoppat vidare efter jag monterade uP (AT89C2051) för uppstart o avstängning, stannat på ett nytt ställe, 10->1C0->1C4->10.
0x00000000 EA000120 B 0x00000488
0x00000004 EA000061 B 0x00000190
0x00000008 EA000066 B 0x000001A8
0x0000000C EA000071 B 0x000001D8
0x00000010 EA00006A B 0x000001C0
....
0x000001C0 E24DD004 SUB R13,R13,#0x00000004
0x000001C4 E92D0001 STMDB R13!,{R0}
0x000001C8 E59F044C LDR R0,[PC,#0x044C]

Det som jag har hittat är att B är som GOTO.
SUB = lägga till 4 på värdet i R13?
STMDB, har något att göra med stacken!? Här behöver jag hjälp.

O ja har RTFM men det är F-mycke som man ska försöka förstå när man aldrig har hackat förut.. Jag är en "hårdis" o inte en "mukis". Så jag hoppas att någon kan förklara några (enkla?) kodrader så gör jag grovjobbet med att felsöka!



Sedan är det en sak som jag inte riktigt förstår, är det något exklusivt för EF att man måste motivera varför man gör en viss sak på ett visst sätt? Har iallafall inte stött på detta på något annat forum!

Re: Hjälp med förklara 4 rader kod i ARM7 applikation

Postat: 6 februari 2011, 18:26:35
av sodjan
> Jag har läst Sodjans föregående inlägg men eftersom dom inte tillförde något vettigt (enligt mig), snarare tvärt om,...

Och det kan *du* bedöma ? :-)

> Det som jag har hittat är att B är som GOTO.

Gissningsvis "Branch", men det visar ju en enkel Google sökning.
Är det inte enklare att ha en instruktionslista tillgänglig istället
för att fråga om varje enskild instruktion ?

> SUB = lägga till 4 på värdet i R13?

Normalt brukar "SUB" ha något med "Subtract" att göra.
Och "subtract" brukar inte ha med att "lägga till" att göra.
Varför gissar du på just "lagga till" ?

> STMDB, har något att göra med stacken!? Här behöver jag hjälp.

"Store Multiple". Om det har något med stacken att göra vet jag inte.
Vad använder du för dokumentation ?

> Sedan är det en sak som jag inte riktigt förstår, är det något exklusivt för EF att man
> måste motivera varför man gör en viss sak på ett visst sätt?

Hur så ? Berätta istället vad det är du håller på med.
Det gör det mycket enklare att förstå det hela. Eftersom
du verkar vara helt ut och segla så är det ju väldigt intressant
att försöka förstå hela bilden.

Re: Hjälp med förklara 4 rader kod i ARM7 applikation

Postat: 6 februari 2011, 18:52:00
av imac
Hur så ?
Okidok, har inte läst detta i EF regler. Men det är väl något fintstilt..

Får väl försöka men något annat forum där man inte behöver motivera varför man gör som man gör + bli kallad för seglare!

Skepp o hoj eller over and out :wacko:

Re: Hjälp med förklara 4 rader kod i ARM7 applikation

Postat: 6 februari 2011, 19:34:47
av TomasL
Snacka om att vara lättstött

Re: Hjälp med förklara 4 rader kod i ARM7 applikation

Postat: 6 februari 2011, 20:16:02
av imac
Snacka om att vara lättstött
Kanske de, på något sätt så tappade jag bara lusten att chabbla vidare om detta..

Men du kanske vill göra ett försök :wink:

Re: Hjälp med förklara 4 rader kod i ARM7 applikation

Postat: 6 februari 2011, 21:48:47
av mri
imac: ta inte på näsan så där snabbt. Ärligt talat tror jag inte du inser komplexiteten av det du försöker göra. Tro mig, det du försöker göra är extremt svårt, även för en erfaren programmerare som "kan" ARM7 assembler. Försök istället ta till dig av vad folk säger som försöker leda dig i vettig riktning...

Re: Hjälp med förklara 4 rader kod i ARM7 applikation

Postat: 6 februari 2011, 22:55:46
av bearing
sodjan skrev: > Den har fastnat i dessa fyra rader med kod...

Vad är "den". Hammabioförstärkaren ?
Hur vet du att den "fastnar" just på de där raderna (alltså *i* apparaten) ?
Kör du det hela i någon simulator ? Och är det i så fall ens troligt
att en simulator kan (utan en hel del jobb) simulera den miljö där
koden normalt förväntas köra ? Om det körs in-curcuit, vad har du
för instrument, någon in-curcuit emulator ? Eller finns det någon
inbyggd debug/emulering i själva processorn ?

Slutligen, *varför* gör du detta ?
Jag förstår inte hur det här kan tas som negativt?
Det är ju bra frågor som jag tycker behöver besvaras för att förstå av du gör och vad du behöver hjälp med.

Re: Hjälp med förklara 4 rader kod i ARM7 applikation

Postat: 6 februari 2011, 23:03:17
av sodjan
Ja, alltså... Rätta mig om jag har fel, men är det inte *du* som
sitter med ett problem ? Och som ber om (gratis) hjälp ? Vem är
det igentligen som har behov av att visa lite ödmjukhet här ?

> Okidok, har inte läst detta i EF regler.

Det har varken med EF eller några "regler" att göra !
Det är enbart ett försök att hjälpa. Men du är inte
lätt att hjälpa direkt... :-)

Hittils har du i princip enbart frågat rena "upplagsfrågor", d.v.s sådant
som man enkelt slår upp i första bästa ARM7 dokumentation. Och snabbare
än vad det tar att skriva en fråga här. Om du ändå tror att det du håller
på med är en framkommlig väg så bör du börja med att läsa sådant
som "ARM7 Architekture Guide", "ARM7 Instruction Manual", eller vad de
manualerna som jag använda för att svara på dina frågor nu hette.
Jag har aldrig före denna tråd haft det minsta intresse för ARM7 eller
tidigare läst någon dokumentation kring ARM7.

Du skulle också kunna hyra in någon som faktiskt kan detta.

Lycka till i alla fall.

> + bli kallad för seglare!

http://sv.wiktionary.org/wiki/vara_ute_och_segla