¡õ ·±ÌåÖÐÎÄ
¡õ ¸ß¼¶ËÑË÷
 
Ê×Ò³ | µç×Ó¼¼ÊõÓ¦Óà | ÐÐÒµ×îж¯Ì¬ | ÐÐÒµ×îвúÆ· | Èí¼þ×ÊÁÏÏÂÔØ | µç·ͼֽÐÀÉÍ | ²©¿ÍÎÄÕ¾«Ñ¡ | µç×Ó¾«Æ·ÂÛ̳ | µç×Ó¼¼ÊõÌù°É

µ±Ç°Î»ÖãºÊ×Ò³ >> ²©¿ÍÎÄÕ¾«Ñ¡ >> ǶÈëʽϵͳ-²©¿Í >> 44B0µÄ³õʼ»¯³ÌÐòµÄÀí½â
44B0µÄ³õʼ»¯³ÌÐòµÄÀí½â
×÷Õߣº   À´Ô´£º ·¢±íʱ¼ä£º2007-02-07  ×ֺţº´ó ÖРС

44B0µÄ³õʼ»¯³ÌÐò¾ÍÊdzõʼ»¯¸÷¸ö¹Ø¼üµÄ¼Ä´æÆ÷£¬½¨Á¢ÖжÏÏòÁ¿£¬È»ºó×ªÒÆµ½Ö÷º¯ÊýÈ¥Ö´ÐгÌÐò¡£
²»¹ý44B0²»Ö§³ÖµØÖ·Ó³É䣬ËùÒÔ³ÌÐò²»COPYµ½RAMÖÖÖ´ÐС£44B0³õʼ»¯¶ÔÎÒÃǹã´ó³õѧÕßÀ´Ëµ£¬±È½ÏÄÑÀí½âµÄÊÇÖжϵĴ¦ÀíºÍһЩÉÙ¼ûµÄ²Ù×÷·ûºÅ£¬44b0µÄÖжÏ×Ó³ÌÐòµØÖ·´æ·ÅÔÚ³õʼ»¯³ÌÐò×îºó¾ÍÊÇ

HandleADC # 4
HandleRTC # 4
HandleUTXD1 # 4
HandleUTXD0 # 4
HandleSIO # 4
HandleIIC # 4
HandleURXD1 # 4
HandleURXD0 # 4
ÕâÒ»¶Î£¬ËüµÄÆäʵµØÖ·ÊÇISR_STARTADDRESS£¬¸öÈËдÖжϳÌÐòµÄʱºò£¬×Ó³ÌÐòµØÖ·±»±àÒëÆ÷Á¬·ÅÔÚÏàÓ¦µÄλÖᣳõʼ»¯Íê³Éºó£¬³ÌÐòתͨ¹ýBL Main תµ½Óû§¶¨ÒåµÄÖ÷³ÌÐòÉÏÖ´ÐС£ÒÔÏÂÊÇÎÒ¸öÈ˵ÄһЩÀí½â£¬ÓдíÎóµÄµØ·½
Ï£Íû´ó¼ÒÖ¸³öÀ´¡£


GBLL THUMBCODE
[ {CONFIG} = 16
THUMBCODE SETL {TRUE}
CODE32
|
THUMBCODE SETL {FALSE}
]

[ THUMBCODE
CODE32 ;for start-up code for Thumb mode
]
¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á
ÆäÖÐ[=IF £¬|=ELSE £¬]= ENDIF£¬ CODE32 ±íÃ÷һϲÙ×÷¶¼ÔÚARM״̬¡£ÕâЩ¶¼ÊÇα²Ù×÷
Õâ¶ÎÎÒÀí½âΪÉ趨THUMCODEµÄÖµ£¬È»ºóÈ·¶¨£¬Óû§µÄ³ÌÐòÊÇÔÚARM״̬»¹ÊÇTHUM״̬¡£²»¹ý²»¹ÜTHUMCODEÊǺÎÖµ£¬ÏÂÃæ´úÂë¶¼ÊÇARM״̬
Õâ¶ÎûÓÐʲôºÜ¸´Ôӵ쬾ÍÊÇÕâÈý¸ö[£¬|£¬]²Ù×÷·ûÈÃÎÒÃÔ»óÁ˰ëÌ죬·­Á˰ëÌìÊé²ÅÕÒµ½½âÊÍ


MACRO ºê α²Ù×÷
$HandlerLabel HANDLER£¨ºêµÄÃû³Æ£© $HandleLabel£¨ºêµÄ²ÎÊý£©

$HandlerLabel
sub sp,sp,#4 ;decrement sp(to store jump address)
stmfd sp!,{r0} ;PUSH the work register to stack(lr does't push because it return to original address)
ldr r0,=$HandleLabel;load the address of HandleXXX to r0
ldr r0,[r0] ;load the contents(service routine start address) of HandleXXX
str r0,[sp,#4] ;store the contents(ISR) of HandleXXX to stack
ldmfd sp!,{r0,pc} ;POP the work register and pc(jump to ISR)
MEND
*******************************
Õâ¶Îµ±³õÎÒ¾õµÃ±È½ÏÄÑÀí½â£¬²»¹ýͨ¹ý¿´¸÷ÖÖ³ÌÐò£¬¶ÔÕâ¶ÎÓÐÁËÒ»¸ö»ù±¾µÄÀí½â¡£Õâ¸öºêµÄ×÷ÓÃÊǰѸ÷¸öÖжϳÌÐòµÄµØÖ·×°È뵱ǰµÄPC£¬44B0ÓÐÁ½ÖÖ×°¶Ïģʽ Ò»ÖÖÊÇûÓÐÖжÏÏòÁ¿±í£¬Ò»ÖÖÊÇʹÓÃÖжÏÏòÁ¿±íµÄ
ʹÓÃÖжÏÏòÁ¿±íÖ»ÄÜÊÇIRQ·½Ê½£¬µ±Ê¹ÓÃÖжÏÏòÁ¿±íµÄʱºò£¬ÖжϷ¢ÉúʱÓÉ44B0µÄÖжϿØÖÆÆ÷×Ô¶¯Ìø×ªµ½ÏàÓ¦µÄλÖᣱÈÈçÔÚÖжÏÏòÁ¿±íµÄģʽÏ£¬Ò»¸öÍⲿÖжÏ0·¢Éú³ÌÐò×Ô¶¯Ìø×ªµ½ µØÖ·0X20´¦£¬0X20µØÖ·µ¥ÔªµÄÖ¸Áîʱldr pc,=HandlerEINT0Òò¶ø³ÌÐòPCÌøµ½HandlerEINT0´¦£¬Ö´ÐÐÕâ¸öºê²Ù×÷£¬°ÑÍⲿÖжϵĺ¯ÊýµÄµØÖ·¸³¸øPC¡£ 44B0ÀïÃæ¶¨ÒåÁËÒ»¸ö

#define pISR_EINT0 (*(unsigned *)(_ISR_STARTADDRESS 0x84)) ,_ISR_STARTADDRESÊÇÖжϳÌÐòµØÖ·µÄÆðʼµØÖ·£¬_ISR_STARTADDRESS£«0X84ÊÇHandleEINT0µÄµØÖ·


ÀýÈçÒ»¸öÍⲿÖжϺ¯ÊýÃûvoid EXINT(),³ÌÐòÀïÖ´ÐÐ pISR_EINT0£½£¨unsigned)EXIT,¾Í°Ñ×Ô¼ºµÄº¯ÊýµØÖ·¸³¸øÁ˱êºÅΪHandleEINT0´¦µÄÄÚ´æµ¥Ôª
IMPORT |Image$$RO$$Limit| ; End of ROM code (=start of ROM data)
IMPORT |Image$$RW$$Base| ; Base of RAM to initialise
IMPORT |Image$$ZI$$Base| ; Base and limit of area
IMPORT |Image$$ZI$$Limit| ; to zero initialise
¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á
Õâ¶ÎÎÒ¸öÈ˵ÄÀí½âΪÕâЩÊÇÁ¬½ÓÆ÷Éú³ÉµÄÓÚÊä³ö¶ÎÏà¹ØµÄ·ûºÅ£¬ÊÇÔÚûÓÐʹÓÃSCATTERÎļþµÄÇé¿ö¿ÉÒÔµ÷Óá£Õâ¶ÎÖ¸³öÁËÔÚROMºÍRAMÖÖµÄÊý¾ÝµÄµØÖ·£¬ÕâЩµØÖ·Ó¦¸ÃÊÇÁ¬½ÓÆ÷Éú³ÉµÄ£¬²»¹ýΪʲôÄܵ÷ÓÃ
Á¬½ÓÆ÷Éú²úµÄ·ûºÅ£¬ÎÒ²»´óÃ÷°×ÆäÖеÄÔ­Òò£¬»¹Ï£Íû¸÷λ˵˵×Ô¼ºµÄÀí½â
IsrIRQ ;using I_ISPR register.
sub sp,sp,#4 ;reserved for PC
stmfd sp!,{r8-r9}

;IMPORTANT CAUTION
;if I_ISPC isn't used properly, I_ISPR can be 0 in this routine.

ldr r9,=I_ISPR
ldr r9,[r9]
mov r8,#0x0
0
movs r9,r9,lsr #1
bcs ñ
add r8,r8,#4
b °

1
ldr r9,=HandleADC
add r9,r9,r8
ldr r9,[r9]
str r9,[sp,#8]
ldmfd sp!,{r8-r9,pc}
¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á¡Á
Õâ¶ÎÊÇûÓÐʹÓÃ×°¶ÏÏòÁ¿Ä£Ê½ÏÂÈçºÎ×°ÔØÖжÏ×Ó³ÌÐò£¬ÒòΪ44B0ÓÐ30¸öÖжÏÔ´£¬ËùÒÔÐèÒª³ÌÐò´¦ÀíÒÔÈ·¶¨µ÷ÓÃÄǸöÖжϳÌÐò
0£¬1ÊǾֲ¿±êºÅ£¬£¥BÊÇÏòºóËÑË÷¾Ö²¿±êºÅ£¬ %FÊÇÏòǰËÑË÷¾Ö²¿±êºÅ ¡£¶¼ÊÇα²Ù×÷
I_ISPR¼Ä´æÆ÷¸÷λ±íÃ÷·¢ÉúÁËÓ¦¸Ãµ÷ÓÃÄǸöÖжÏ×Ó³ÌÐò¡£Ö»ÄÜ1λÖÃ룬ÆäËüλΪ0£¬±ÈÈç˵´®¿Ú1·¢ËÍÖжϷ¢Éú£¬ÕâʱI_ISPRµÄ
ֵΪ0X04£¬ldr r9,=I_ISPR
ldr r9,[r9] Á½ÌõÖ¸Áîºó£¬r9µÄÄÚÈÝΪ0X4 ,
movs r9,r9,lsr #1 r9ÄÚÈÝÓÒÒÆÒ»Î»
bcs ñ ÅжÏÊÇ·ñ°ÑÖÃλÊÇ·ñ×ªÒÆµ½C룬
add r8,r8,#4 Èç¹ûûÓеÄR8¼Ó4
Èç¹ûr9ÄÚÈÝΪ0x04 ÐèÒªÓÒÒÆ3´Î £¬Ö®ºór8µÄÄÚÈÝΪ8 È»ºóHandleADCµÄµØÖ· ¼ÓÉÏr8µÄÖµ ¾ÍÊÇ´®¿Ú1·¢ËÍÖжϵĵØÖ·£¬Õâ¸öµØÖ·µÄÄÚÈÝÊÇÖжÏ×Ó³ÌÐòµÄµØÖ·
ÔÙ˵Ã÷¼¸¸öα²Ù×÷£º^=MAP. #=field


£¡×¢Ò⣺Èç¹ûÄú·¢ÏÖ´ËÎÄÕ³öÏÖÓ°ÏìÄúµÄÔĶÁµÄ×´¿ö£¬Çë´Óä¯ÀÀÆ÷µØÖ·À¸Àï¸´ÖÆ±¾ÎĵÄÁ´½Óµ½ÁôÑÔ±¾±¨¸æ¸øÕ¾³¤½â¾ö£¡
  • ÉÏһƪ£º Í¨¹ýÍøÂçÉÕд39VF160²½Öè
  • ÏÂһƪ£º IBM²ÉÓÃ×Ô³ÉÐβÄÁϾøÔµ оƬÌáËÙÈý·ÖÖ®Ò»

  • >> ÁªÏµÎÒÃÇÇë¸øÎÒÃÇÁôÑÔ¡¤ÁôÑÔ±¾
    ±¾Õ¾ËùÓÐÌṩµÄÐÅÏ¢Èí¼þ×ÊÁϾùÀ´×ÔÍøÂç,°æÈ¨¼°Öø×÷Ȩ¹éÔ­×÷ÕßËùÓÐ,Èç¹ûÎÞÒâÖÐÇÖ·¸ÁËÄúµÄÏà¹ØÈ¨Àû»ò´¥¼°·¨ÂÉ·¨¹æ,Çë¸øÎÒÃÇÁôÑÔ, ÎÒÃǽ«ÔÚ24СʱÄÚɾ³ý¡£
      ÕãICP±¸05071687ºÅ  µç×Ó¼¼Êõ¾«Æ·Íø