با سلام
ضمن تبريک سال نو.
برای برد مبتنی بر at91sam7x256
در keil ک.ر.ک شده ورژن 402 و 412 و الان 420 برنامه هاي تست چشمکزن و پالس مربعي روي پايه ها کار مي کنند.
در ديباگ نيز شبيه سازي درست انجام مي شود.(بدون اينکه در کد sam7.s گير کند ، وارد برنامه اصلي کد C و main مي شود.)
اما حجم برنامه من به بيش از 80 کيلو بايت رسيده ، و برنامه روي سخت افزار اجرا نمي شود،
در شبيه ساز (ديباگ) مشاهده مي شود که برنامه در اين قسمت از startup :
sam7.s
گرفتار شده است(در خط سوم اين کدها - با اجرا توسط کليد تک پله اي : F11):
IMPORT __main
LDR R0, =__main
BX R0
دوستان گرامي، آيا به اين مسئله برخورد داشته ايد؟
اين دو پاسخ هم در سايت keil کمکي نکرد!
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,#-0xF20] ; Vector From AIC_IVR
; LDR PC,FIQ_Addr
LDR PC,[PC,#-0xF20] ; Vector From AIC_FVR
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
Undef_Handler B Undef_Handler
SWI_Handler B SWI_Handler اين خط هم موقع استاپ (ديباگ) : محلي است که توقف نشان داده مي شود.
PAbt_Handler B PAbt_Handler
DAbt_Handler B DAbt_Handler
IRQ_Handler B IRQ_Handler
FIQ_Handler B FIQ_Handler
در کدهای بالا ، لوپهای بی نهایت برای handler ها تشکیل شده،
سئوال دیگر: برنامه به چه دلایلی به کدهای فوق پرش می کند؟
با سپاس
پ.ن: این پست در سایت همسایه هم ارسال شده ، به دلیل گرفتاری احتمالی دوستان در startup
در اینجا هم ارایه شده تا پاسخ ها به عنوان راهنمایی به هر دو جا منتقل شود .