µ±Ç°Î»ÖãºÊ×Ò³ > ARM¸´Ï°Ìâ
Èý¡¢¼ò´ðÌâ
1.¼òÊö·ë.ŵÒÀÂü½á¹¹¡¢¹þ·ð½á¹¹µÄÇø±ð¡£
´ð£º·ë¡¤ÅµÒÀÂü½á¹¹ÖУ¬³ÌÐòºÍÊý¾ÝÔÚͬһ´æ´¢Æ÷ÖУ¬²»Í¬ÊÇ£¬¹þ¸¥ÖгÌÐòºÍÊý¾Ý·ÅÔÚ²»Í¬µÄ´æ´¢Æ÷ÖÐ
1. ʲôǶÈëʽÊÇϵͳ£¿Áоٳö¼¸¸öÄãÉí±ßÊìϤµÄǶÈëʽϵͳµÄ²úÆ·¡£ (1).ǶÈëʽϵͳÊÇÓÃÓÚ£¨ ¿ØÖÆ£©¡¢£¨¼àÊÓ£©»òÕ߸¨Öú²Ù×÷»úÆ÷»òÉ豸µÄ×°Öᣠ»ò£¨2.) ǶÈëʽϵͳÊÇÒÔ£¨Ó¦Óã©ÎªÖÐÐÄ£¬ÒÔ¼ÆËã»ú¼¼ÊõΪ»ù´¡£¬ÈíÓ²¼þ¿É²Ã¼ô£¬ÒÔÊÊÓ¦Ó¦ÓÃϵͳ¶Ô¹¦ÄÜ¡¢¿É¿¿ÐÔ¡¢³É±¾¡¢Ìå»ý¡¢¹¦ºÄµÄÑϸñÒªÇóµÄרÓüÆËã»ú¡£
2. ǶÈëʽϵͳÓÉÄ¿·Ö×é³É£¿
×ÜÌåÉÏǶÈëʽϵͳ¿ÉÒÔ»®·Ö³É£¨ Èí¼þϵͳ £©¡¢£¨ Ó²¼þϵͳ £©Á½²¿·Ö¡£
1. ¼òÊöARM´¦ÀíÆ÷µÄÃüÃû¹æÔòÖÐTDMIµÄº¬Òå.
T£ºÖ§³Ö¸ßÃܶÈ16λµÄThumbÖ¸Á£»D£ºÖ§³ÖƬÉϵ÷ÊÔ£» M£ºÖ§³Ö64λ³Ë·¨£» I£ºÖ§³ÖEmbededICE¹Û²ìÓ²¼þ¡£
2. Èç¹ûÒ»¸ö32λ×Ö0x12345678,´æ·ÅµÄÆðʼµØÖ·Îª0x00040000,ÔòС¶Ë¸ñʽÏÂÒÔ0x00040000ΪÆðʼµØÖ·´æ·ÅµÄÊý¾ÝÊÇ? ´ó¶Ë¸ñʽÏÂÒÔ0x00040000ΪÆðʼµØÖ·´æ·ÅµÄÊý¾ÝÊÇ?
С¶Ë´æ´¢¸ñʽ£º78 £»´ó¶Ë´æ´¢¸ñʽ£º12
3. ¼òÊöARM´¦ÀíÆ÷¹¤×÷״̬ÖÖÀࣿ
ARM״̬ Thumb״̬ Jazelle״̬
4. ¼òÊöARM´¦ÀíÆ÷¹¤×÷ģʽÖÖÀࣿ
´ó·½Ã棺Óû§Ä£Ê½£¬ÌØÈ¨Ä£Ê½
Òì³£Çé¿ö£º¿ìËÙÖжÏģʽ£¬ÖжÏģʽ£¬¹ÜÀíģʽ£¬ÖÐֹģʽ£¬Î´¶¨Òåģʽ
5. ¼òÊöÈçºÎ½øÈëÒì³£ºÍÍ˳öÒì³£¡£ (1£©±£ÁôÏÖ³¡ lR=pc Spsp=cpsR (2)½øÈëÒ쳣״̬
AÅжÏÒì³£ÀàÐÍ BÅжϹ¤×÷ģʽ CÒì³£ÏòÁ¿±í----³ÌÐòµØÖ·---PC
DÉèÖÃIPQ½ûÖ¹ÖжÏ
5.¼òÊöǶÈëʽоƬѡÐ͵ķ½·¨£¿
£¨1£©ARMÄÚºËÑ¡Ôñ £¨2£©´¦ÀíÆ÷£¨´¦ÀíÆ÷ºË£©¹¤×÷ģʽ £¨3)оƬÄÚ´æ´¢Æ÷ÈÝÁ¿
£¨4£©Æ¬ÄÚÀ©Õ¹¿ØÖÆÆ÷£¨5£©Ð¾Æ¬ÎïÀíºÍµçÆøÌØÐÔ
1. ´«Í³Èí¼þ¿ª·¢¹ý³Ì
´ð£ºÏîÄ¿¿ÉÐÐÐÔ·ÖÎö¡¢ÐèÇó·ÖÎö¡¢ÏµÍ³Éè¼Æ¡¢±àÂë¡¢²âÊÔ¡¢ÔËÐÐÓëά»¤ 2. ǶÈëʽÈí¼þ¿ª·¢¹ý³Ì
´ð£º£¨1£©Ç¶ÈëʽϵͳµÄÐèÇó»ñÈ¡ÓëÐèÇó·ÖÎö£¨2£©Éè¼ÆÏµÍ³µÄÌåϵ½á¹¹£¬Ñ¡Ôñ´¦ÀíÆ÷ºÍÏà¹ØÍⲿÉ豸£¬²Ù×÷ϵͳ¿ª·¢Æ½Ì¨ÒÔ¼°ÈíÓ²¼þµÄÐèÇó·Ö¸îºÍ×ÜÌåϵͳ¼¯³É£¨3£©Ó²¼þ½á¹¹Éè¼Æ£¬Èí¼þµÄϵͳÉè¼Æ£¨4£©ÈíÓ²¼þÏêϸÉè¼Æ£¨5£©Èí¼þ´úÂëµÄ¿ª·¢£¬Èí¼þ²âÊÔÓëµ÷ÊÔ£¨6£©ÈíÓ²¼þµÄÁªµ÷Ó뼯³É£¨7£©ÏµÍ³µÄµ÷ÊÔ£¨8£©ÏµÍ³ÔËÐÐÓëά»¤
3.CacheµÄ·ÖÀà
´ð£º1£¬È«ÏàÁªÓ³Ïñ·½Ê½ 2£¬Ö±½ÓÓ³Ïñ·½Ê½ 3£¬Ö÷ÏàÁªÓ³Ïñ·½Ê½
4.CacheµÄµØÖ·±ä»»µÄ·ÖÀà
´ð£º1£¬Í³Ò»/¶ÀÁ¢µÄÊý¾Ýcache ºÍÖ¸Áîcache 2,дͨcacheºÍд»Øcache 3,¶Á²Ù×÷·ÖÅäcacheºÍд²Ù×÷·ÖÅäcache
¶þ¡¢¼ÆËãÌâ
1.Èô¼Ä´æÆ÷R1=0X001A,R2=0X00008060,¶øÄÚ´æµØÖ·´æ·ÅµÄÊý¾ÝÊÇ0X00B3,ÔòÖ´ÐÐÏÂÁÐÖ¸Áîºó£¬¼Ä´æÆ÷R0µÄÖµ£º LDR R0,[R2]
2.Èô¼Ä´æÆ÷R3=0X0056,R1=0X0006, ÔòÖ´ÐÐÏÂÁÐÖ¸Áîºó£¬¼Ä´æÆ÷R6µÄÖµ£º ADD R6,R3,R1,LSL#2
3.Èô¼Ä´æÆ÷R1=0X00008000,¶ø0X00008000ÄÚ´æµØÖ·´æ·ÅµÄÊý¾ÝÊÇ0X008A,ÄÚ´æµØÖ·0X00008004´æ·ÅµÄÊý¾ÝÊÇ0X00D8,ÔòÖ´ÐÐÏÂÁÐÖ¸Áîºó£¬¼Ä´æÆ÷R0µÄÖµ£º
LDR R0,[R1,#4]
4.Èô¼Ä´æÆ÷R1=0X00006000,µØÖ·0X00006008´æ·ÅµÄÊý¾ÝÊÇ0X0074,ÔòÖ´ÐÐÏÂÁÐÖ¸Áîºó£¬¼Ä´æÆ÷R0,R1µÄÖµ£º LDR R0,[R1,#8]!
5.Èôr0µÄÖµÊÇ0x00200, ¼ÆËãÈçϳÌÐò£º STMIB r0!,{R4-R7}
ÔËÐк󣬼ĴæÆ÷r0µÄÖµ£¬µØÖ·0x208µÄÖµ 6.Èô¶ÑÕ»Ö¸ÕëSPµÄµØÖ·ÊÇ0x00300, ¼ÆËãÈçϳÌÐò£º STMFD SP!,{R4-R7}
ÔËÐк󣬼ĴæÆ÷SPµÄÖµ£¬µØÖ·0x2fcµÄÖµ¡£
Èý¡¢±à³ÌÌâ
1.Çó Á½¸öÊýÖ®ºÍ¡££¨²î£¬»ý£© AREA YUE,CODE,READONLY
ENTRY
MOV R0,#0X12 MOV R1,#0X4 ADD R0,R0,R1 END
2.ÇóÁ½¸öÊýÖнÏСµÄÊý¡££¨½Ï´ó£© AREA XIAOYUE,CODE,READONLY
3.дһ¸ö³ÌÐò£¬ÅжÏR0µÄÖµ´óÓÚ0x50£¬Ôò½«R1µÄ Öµ¼õÈ¥0x10£¬²¢°Ñ½á¹ûË͸øR0
AREA XIAOYUE,CODE,READONLY ENTRY MOV R0,#0X12 MOV R1,#0X13 CMP R0,R1 MOVGE R2,R0 MOVLT R2,R1 END
ENTRY MOV R0,#0X60 MOV R1,#0X40 CMP R0,#0X50 SUBGT R0,R1,#0X10 END
4.Çó Á½¸öÊý¾ÝµÄ×î´ó¹«Ô¼Êý¡£ AREA XIAO,CODE,READONLY
ENTRY MOV R0,#0X60 MOV R1,#0X40
START
1. Çó1~100ÆæÊýºÍ¡££¨Å¼ÊýºÍ£©
AREA CCI,CODE,READONLY ENTRY ??
CMP R0,R1 SUBGT R0,R0,R1 SUBLT R1,R1,R0 BNE START END
¹²·ÖÏí92ƪÏà¹ØÎĵµ