 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
ciko Član

Pridružen-a: Čet 27 Mar 2008 11:41 Prispevkov: 126 Aktiv.: 0.60 Kraj: Novo mesto
|
Objavljeno: Tor Jan 20, 2009 11:44 am Naslov sporočila: Error handle in assembler |
|
|
Živjo!
Iščem in iščem, pa ne najdem. Nekoč sem videl en zelo lep primer, kako manipulirati oz imeti detekcijo glede napake jedra - kdaj se sistem zruši.
Sedaj pa to iščem in ne najdem. Zato sem se lotil kar sam pisanja.
Zanima me, kako funkcijo, ki je napisana v c datoteki kličeš is *.s datoteke.
Zaenrkat sem poizkusil:
Del LPC2300.s kode
Koda: |
; Area Definition and Entry Point
; Startup Code must be linked first at Address at which it expects to run.
AREA RESET, CODE, READONLY
ARM
; Exception Vectors
; Mapped to Address 0.
; Absolute addressing mode must be used.
; Dummy Handlers are implemented as infinite loops which can be modified.
Vectors LDR PC, Reset_Addr
LDR PC, Undef_Addr
LDR PC, SWI_Addr
LDR PC, PAbt_Addr
LDR PC, DAbt_Addr
NOP ; Reserved Vector
; LDR PC, IRQ_Addr
LDR PC, [PC, #-0x0120] ; Vector from VicVectAddr
LDR PC, FIQ_Addr
Reset_Addr DCD Reset_Handler
Undef_Addr DCD Undef_Handler
SWI_Addr DCD SWI_Handler
PAbt_Addr DCD PAbt_Handler
DAbt_Addr DCD DAbt_Handler
DCD 0 ; Reserved Address
IRQ_Addr DCD IRQ_Handler
FIQ_Addr DCD FIQ_Handler
; moje
IMPORT __Undef_Handler_my
IMPORT __SWI_Handler_my
IMPORT __PAbt_Handler_my
IMPORT __DAbt_Handler_my
IMPORT __IRQ_Handler_my
IMPORT __FIQ_Handler_my
Undef_Handler B __Undef_Handler_my ; Undef_Handler
SWI_Handler B __SWI_Handler_my ; SWI_Handler
PAbt_Handler B __PAbt_Handler_my ; PAbt_Handler
DAbt_Handler B __DAbt_Handler_my ; DAbt_Handler
IRQ_Handler B __IRQ_Handler_my ; IRQ_Handler
FIQ_Handler B __FIQ_Handler_my ; FIQ_Handler
|
in še funkicje v main.c datoteki:
Koda: |
int Undef_Handler_my (void)
{
SEND_TEXT("Undef_Handler_my\n\r");
while(1);
}
void SWI_Handler_my (void)
{
SEND_TEXT("SWI_Handler_my\n\r");
while(1);
}
void PAbt_Handler_my (void)
{
SEND_TEXT("PAbt_Handler_my\n\r");
while(1);
}
void DAbt_Handler_my (void)
{
SEND_TEXT("DAbt_Handler_my\n\r");
while(1);
}
void IRQ_Handler_my (void)
{
SEND_TEXT("IRQ_Handler_my\n\r");
while(1);
}
void FIQ_Handler_my (void)
{
SEND_TEXT("FIQ_Handler_my\n\r");
while(1);
}
|
Kako povezati, da se bo lahko iz s datoteke klicalo funkcijo v c datoteki?
Hvala za odgovore
Lep pozdrav
Peter |
|
Nazaj na vrh |
|
 |
ciko Član

Pridružen-a: Čet 27 Mar 2008 11:41 Prispevkov: 126 Aktiv.: 0.60 Kraj: Novo mesto
|
Objavljeno: Tor Jan 20, 2009 3:33 pm Naslov sporočila: |
|
|
Težava je bila:
http://www.arm.com/support/faqdev/1242.html
in
vnese se točno taka imena funkcij, kot so definirane, ne pa s "__", kot sem jaz dal.
Pravilno:
Koda: |
; Area Definition and Entry Point
; Startup Code must be linked first at Address at which it expects to run.
PRESERVE8
AREA RESET, CODE, READONLY
ARM
; Exception Vectors
; Mapped to Address 0.
; Absolute addressing mode must be used.
; Dummy Handlers are implemented as infinite loops which can be modified.
Vectors LDR PC, Reset_Addr
LDR PC, Undef_Addr
LDR PC, SWI_Addr
LDR PC, PAbt_Addr
LDR PC, DAbt_Addr
NOP ; Reserved Vector
; LDR PC, IRQ_Addr
LDR PC, [PC, #-0x0120] ; Vector from VicVectAddr
LDR PC, FIQ_Addr
Reset_Addr DCD Reset_Handler
Undef_Addr DCD Undef_Handler
SWI_Addr DCD SWI_Handler
PAbt_Addr DCD PAbt_Handler
DAbt_Addr DCD DAbt_Handler
DCD 0 ; Reserved Address
IRQ_Addr DCD IRQ_Handler
FIQ_Addr DCD FIQ_Handler
; moje
IMPORT Undef_Handler_my
IMPORT SWI_Handler_my
IMPORT PAbt_Handler_my
IMPORT DAbt_Handler_my
IMPORT FIQ_Handler_my
Undef_Handler B Undef_Handler_my ; Undef_Handler ;
SWI_Handler B SWI_Handler_my ; SWI_Handler
PAbt_Handler B PAbt_Handler_my ; PAbt_Handler
DAbt_Handler B DAbt_Handler_my ; DAbt_Handler
IRQ_Handler B IRQ_Handler
FIQ_Handler B FIQ_Handler_my ; FIQ_Handler |
Upam, da bo komu pomagalo.
Lp |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 7 dni
Powered by phpBB © 2001, 2005 phpBB Group
|