ÄϹ¤´óARMǶÈëʽϵͳ²Î¿¼¸´Ï°Ìâ1 ÏÂÔØ±¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2025/5/2 16:22:01ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£

ARMǶÈëʽϵͳÉè¼Æ²Î¿¼¸´Ï°Ì⣨2017-11£©

Ö÷Ҫ֪ʶµã£º

µÚÒ»ÕÂ 1.

ǶÈëʽϵͳ£º

¡°ÒÔÓ¦ÓÃΪÖÐÐÄ£¬ÒÔ¼ÆËã»ú¼¼ÊõΪ»ù´¡£¬ÈíÓ²¼þ¿É²Ã¼õ£¬ÊÊÓÃÓÚÓ¦ÓÃϵͳ¶Ô¹¦ÄÜ¡¢¿É¿¿ÐÔ¡¢³É±¾¡¢Ìå»ý¡¢¹¦ºÄÓÐÑϸñÒªÇóµÄרÓüÆËã»úϵͳ¡±

¸ù¾ÝÓ¦ÓõÄÒªÇó£¬ÑØ×Å¡°Ìå»ýС¡¢µÍ¹¦ºÄ¡¢¸ß¿É¿¿¡±·½Ïò·¢Õ¹£¬¶ÔÔËËãËÙ¶È¡¢´æ´¢ÈÝÁ¿Ã»ÓÐͳһҪÇó¡£ÈýÒªËØ£ºÇ¶È롢רÓᢼÆËã»ú¡£ 2.

ǶÈëʽϵͳÓÐÄÄЩ²¿·Ö×é³É£¿

Ò»°ãÓÉÓ²¼þ²ã£¬Öмä²ã£¨HAL»òBSP£©ºÍÈí¼þ²ã×é³É¡£

´ÖÂÔ»®·Ö£ºÇ¶Èëʽ´¦ÀíÆ÷¡¢ÍâΧÉ豸¡¢Ç¶Èëʽ²Ù×÷ϵͳ(¿ÉÑ¡)¡¢Ç¶ÈëʽӦÓÃÈí¼þ

ÉÔϸ»®·Ö£ºÇ¶Èëʽ´¦ÀíÆ÷¡¢ÍâΧÉ豸¡¢Çý¶¯³ÌÐò¡¢Ç¶Èëʽ²Ù×÷ϵͳ¡¢Ó¦Óýӿڡ¢Ç¶ÈëʽӦÓÃÈí¼þ 3. 4.

ǶÈëÊ½ÏµÍ³ÌØµã£º¢ÙϵͳÄÚºËС¢ÚרÓÃÐÔÇ¿¢Ûϵͳ¾«¼ò¢Ü¸ßʵʱÐÔ¡£ ǶÈëʽ´¦ÀíÆ÷µÄ·ÖÀࣺ

ǶÈëʽ΢´¦ÀíÆ÷£¨MPU£©£º¾ÍÊǺÍͨÓüÆËã»úµÄ´¦ÀíÆ÷¶ÔÓ¦µÄCPU£¬¿ÉÒÔÈÏΪÊÇ¡°ÔöÇ¿ÐÍ¡±Í¨ÓÃ΢´¦ÀíÆ÷ ¡£

ǶÈëʽ΢¿ØÖÆÆ÷£¨MCU£©£º¾ÍÊǽ«Õû¸ö¼ÆËã»úϵͳµÄÖ÷ÒªÓ²¼þ¼¯³Éµ½Ò»¿éоƬÖУ¬Ð¾Æ¬ÄÚ²¿¼¯³ÉROM/EPROM¡¢RAM¡¢×ÜÏߣ¬×ÜÏßÂß¼­¡¢¶¨Ê±/¼ÆÊýÆ÷¡¢Watchdog¡¢I/O¡¢´®Ðпڡ¢A/DµÈ¸÷ÖÖ±ØÒª¹¦ÄܺÍÍâÉè¡£

ǶÈëʽDSP´¦ÀíÆ÷£¨DSP£©£ºÊÇרÃÅÓÃÓÚÐźŴ¦Àí·½ÃæµÄ´¦ÀíÆ÷£¬ÔÚϵͳ½á¹¹ºÍÖ¸ÁîËã·¨·½Ãæ½øÐÐÁËÌØÊâÉè¼Æ£¬¾ßÓкܸߵıàÒëЧÂʺÍÖ¸ÁîÖ´ÐÐËÙ¶È¡£

ǶÈëʽƬÉÏϵͳ£¨SOC£©£ºÊÇ×·Çó²úƷϵͳ×î´ó°üÈݵɯ÷¼þ¡£¾ø´ó¶àÊýϵͳ¹¹¼þ¶¼ÔÚÒ»¸öϵͳоƬÄÚ²¿¡£ µÚ¶þÕÂ

1. ARM£ºÊÇAdvance RISC Machine µÄËõд£¬¼È¿ÉÒÔÈÏΪÊÇÒ»¸ö¹«Ë¾µÄÃû×Ö£¬Ò²¿ÉÒÔÈÏΪÊǶÔÒ»Àà΢´¦ÀíÆ÷µÄͨ³Æ£¬»¹¿ÉÒÔÈÏΪÊÇÒ»ÖÖ¼¼ÊõµÄÃû×Ö¡£

2. ÔÚARM9TDMIÖÐ ¡°9TDMI¡±µÄº¬Ò壺

9£º²ÉÓð汾Ϊ9µÄARM΢´¦ÀíÆ÷ T£ºÖ§³Ö16ΪѹËõÖ¸ÁThumb£¬D£º Ö§³ÖƬÉÏDebug£¬³ÆÎªD±äÖÖ M£ºÄÚǶӲ¼þ³Ë·¨Æ÷ Multiplier£¬³ÆÎªM±äÖÖ I£º ǶÈëʽICE£¬Ö§³ÖƬÉ϶ϵãºÍµ÷ÊÔ£¬³ÆÎªI±äÖÖ¡£ 3. ARM Cortex-A8´¦ÀíÆ÷µÄÈýÖÖ¹¤×÷״̬£º

ARM״̬£¬´¦ÀíÆ÷Ö´ÐÐ32λµÄ×Ö¶ÔÆëµÄARMÖ¸ÁThumb״̬£º´¦ÀíÆ÷Ö´ÐÐ16λµÄ°ë×Ö¶ÔÆëµÄThumbÖ¸ÁîºÍThumbEE״̬£ºÖ´ÐÐ16λµÄ°ë×Ö¶ÔÆëµÄThumbÖ¸Á±äÖÖ¡£

8ÖÖ¹¤×÷ģʽ£ºÓû§Ä£Ê½£¨usr)¡¢¿ìËÙÖжÏģʽ£¨fiq£©¡¢ÍⲿÖжÏģʽ£¨irq£©¡¢¹ÜÀíģʽ£¨svc)¡¢ÖÐֹģʽ£¨abt£©¡¢Î´¶¨Òåģʽ£¨und£©¡¢ÏµÍ³Ä£Ê½£¨sys£©ºÍ¼à¿ØÄ£Ê½£¨mon£©¡£ÌØÈ¨Ä£Ê½£º³ýusrÖ®ÍâµÄÆäËüµÄ7ÖÖ¹¤×÷ģʽ¶¼ÊÇÌØÈ¨Ä£Ê½¡£Ò쳣ģʽ£º³ýusrºÍsysÖ®ÍâµÄÆäËüµÄ6ÖÖ¹¤×÷ģʽ¶¼ÊdzÖȨģʽ¡£

4. ARM A8¼Ä´æÆ÷·Ö³ÉÄļ¸Àࣿ¸÷ÀàÓÐÄÄЩ¼Ä´æÆ÷£¿¼Ä´æÆ÷LRÓÐʲôÓÃ;£¿ ·ÖÁ½Àࣺ33¸öͨÓüĴæÆ÷ºÍ7 ¸ö״̬¼Ä´æÆ÷¡£

33¸öͨÓüĴæÆ÷£ºR0¡«R15£»R13_svc¡¢R14_svc£»R13_abt¡¢R14_abt£»R13_und¡¢R14_und£»R13_irq¡¢R14_irq£»R8_fiq-R14_fiq¡¢R13_mon¡¢R14_mon£»¡£7 ¸ö״̬¼Ä´æÆ÷£ºCPSR£»SPSR_svc¡¢SPSR_abt¡¢SPSR_und¡¢SPSR_irq¡¢SPSR_fiqºÍSPSR_mon¡£

LR £¨R14£©£ºÒ²³Æ×÷×Ó³ÌÐòÁ´½Ó¼Ä´æÆ÷»òÁ´½Ó¼Ä´æÆ÷LR£¬µ±Ö´ÐÐBL×Ó³ÌÐòµ÷ÓÃÖ¸Áîʱ£¬R14Öеõ½R15£¨³ÌÐò¼ÆÊýÆ÷PC£©µÄ±¸·Ý¡£ÆäËûÇé¿öÏ£¬R14ÓÃ×÷ͨÓüĴæÆ÷¡£ÓëÖ®ÀàËÆ£¬µ±·¢ÉúÖжϻòÒ쳣ʱ£¬¶ÔÓ¦µÄ·Ö×é¼Ä´æÆ÷R14_svc¡¢R14_irq¡¢R14_fiq¡¢R14_abt¡¢R14_undºÍR14_monÓÃÀ´±£´æR15µÄ·µ»ØÖµ¡£ 5.CPSR¸÷λÊÇÒâÒ壺

N£ºÕý¸ººÅ/´óС ±ê־λ 0±íʾ£ºÕýÊý/´óÓÚ£»1±íʾ£º¸ºÊý/СÓÚ Z£ºÁã±ê־λ 0±íʾ£º½á¹û²»ÎªÁ㣻1±íʾ£º½á¹ûΪÁãC£º½øÎ»/½èλ/ÒÆ³öλ0±íʾ£ºÎ´½øÎ»/½èλ/ÒÆ³ö0£»1±íʾ£º½øÎ»/δ½èλ/ÒÆ³ö1 V£ºÒç³ö±ê־λ 0±íʾ£º½á¹ûδÒç³ö£»1±í

ʾ£º½á¹ûÒç³öI¡¢IºÍF£ºirqºÍfiqÖжÏÔÊÐíºÍ½ûÖ¹¿ØÖÆÎ»£¬£½1 ½ûÖ¹irq»òfiqÖÐ¶Ï £½0 ÔÊÐíirq»òfiqÖжϡ£T£º ¿ØÖÆ(±êÖ¾)λ¡ª¡ª·´Ó³´¦ÀíÆ÷µÄÔËÐÐ״̬T=1ʱ£¬³ÌÐòÔËÐÐÓÚThumb״̬£¬T=0ʱ£¬³ÌÐòÔËÐÐÓÚARM״̬¡£ TM£º¿ØÖÆÎ»¡ª¡ª¾ö¶¨ÁË´¦ÀíÆ÷µÄÔËÐÐģʽ ģʽ TM[4:0] Óû§ 10000 ¿ìÖÐ¶Ï 10001 ÖÐ¶Ï 10010 ¹ÜÀí 10011 ÖÐÖ¹ 10111 䶨Òå 11011 ϵͳ 11111 ¼à¿Ø 10110

6.ARM Òì³£ÏìÓ¦¹ý³Ì£¨½øÈëÒì³££©Ö´ÐÐÄÄЩ²Ù×÷¡£

¢Ù±£´æ·µ»ØµØÖ·¡¢¢Ú±£´æµ±Ç°×´Ì¬¼Ä´æÆ÷CPSRµÄÄÚÈÝ¡¢¢ÛÉèÖõ±Ç°×´Ì¬¼Ä´æÆ÷CPSRÖеÄÏàӦλ¡¢¢ÜתȥִÐÐÖжϴ¦Àí³ÌÐò¡£ µÚÈýÕÂ

1.ARMÖ¸ÁîÖеĵڶþ²Ù×÷Êý¡°operand2¡±ÓÐÄÄЩ¾ßÌåÐÎʽ£ºÈýÖÖ£º¼Ä´æÆ÷¡¢¼Ä´æÆ÷ÒÆÎ»¡¢8λλͼÁ¢¼´Êý¡£

2.¶ÔÓÚARMµÄ±äַѰַ·½Ê½£¬ÓлùµØÖ·ºÍÆ«ÒеØÖ·Á½²¿·Ö×é³É¡££¨1£©»ùµØÖ·¿ÉÒÔÊÇÄÄЩ¼Ä´æÆ÷£¿£¨2£©Æ«ÒƵØÖ·¿ÉÒÔÓÐÄÄЩÐÎʽ£¿£¨3£©×ܵØÖ·µÄ¼ÆËã·½·¨ÓÐÄÄЩ£¿Ôõô±íʾ£¿£¨4£©±äַѰַӦÓÃÓÚÄÄЩָÁ £¨1£©»ùµØÖ·¿ÉÒÔÊÇͨÓüĴæÆ÷R0---R15ÖеÄÈÎÒâÒ»¸ö¡£

£¨2£©Æ«ÒƵØÖ·¿ÉÒÔÓÐÈýÖÖÐÎʽ£º12λÁ¢¼´Êý¡¢¼Ä´æÆ÷¡¢¼Ä´æÆ÷ÒÆÎ»¡£ £¨3£©×ܵØÖ·µÄ¼ÆËã·½·¨ÓÐÈýÖÖ£º

ǰ±äÖ·£¨Ç°Ë÷Òý£©£ºÏÈ»ùÖ·+ƫַ£¬Éú³É²Ù×÷ÊýµØÖ·£¬×öÖ¸ÁîÖ¸¶¨µÄ²Ù×÷¡£È磺LDR Rd£¬[Rn,#m]

ºó±äַģʽ(Ð޸ĻùÖ·¼Ä´æÆ÷)£º ¢Ù»ùÖ·¼Ä´æÆ÷²»¼ÓÆ«ÒÆ×÷Ϊ²Ù×÷ÊýµØÖ·¡£ ¢ÚÍê³ÉÖ¸Áî²Ù×÷ºó£¬ÓÃ(»ùÖ·+Æ«ÒÆ)µÄÖµÐ޸ĻùÖ·¼Ä´æÆ÷¡£È磺LDR Rd£¬[Rn]£¬#m

×Ô¶¯±äַģʽ(Ð޸ĻùÖ·¼Ä´æÆ÷)£º ¢ÙÏÈ»ùÖ·+Æ«ÒÆ£¬Éú³É²Ù×÷ÊýµØÖ·£¬×öÖ¸ÁîÖ¸¶¨µÄ²Ù×÷¡£¢ÚÈ»ºó×Ô¶¯Ð޸ĻùÖ·¼Ä´æÆ÷¡£È磺LDR Rd£¬[Rn£¬#m ]!

£¨4£©ÓÐ4ÌõÖ¸Á LDR¡¢STR¡¢LDM¡¢STM

3£®ARM ÓÐѰַ·½Ê½£ºÁ¢¼´Ñ°Ö·¡¢¼Ä´æÆ÷Ѱַ¡¢¼Ä´æÆ÷¼ä½ÓѰַ¡¢±äַѰַ¡¢¶à¼Ä´æÆ÷Ѱַ¡¢¶ÑջѰַ¡¢¿é¿½±´Ñ°Ö·¡¢Ïà¶ÔѰַ

4. ARM αָÁADR£ºÐ¡·¶Î§µÄµØÖ·¶ÁȡαָÁî¡¢ADRL£ºÖеȷ¶Î§µÄµØÖ·¶ÁȡαָÁî¡¢LDR£º´ó·¶Î§µÄµØÖ·¶ÁȡαָÁî¡¢NOP£º¿Õ²Ù×÷αָÁî¡£

5. ARM Ö¸Á·ÖΪÄļ¸ÖÖÀàÐÍ£¿¸÷ÀàÓÐÄÄЩָÁ¿ÉÒÔ²»¿¼ÂÇЭ´¦ÀíÆ÷Ö¸Á¡£ ÎåÀࣺ´æÆ÷·ÃÎÊÖ¸Áî¡¢Êý¾Ý´¦ÀíÖ¸Áî¡¢Ìø×ªÖ¸ÁЭ´¦ÀíÆ÷Ö¸Áî¡¢ÔÓÏîÖ¸Áî¡£ ´æ´¢Æ÷·ÃÎÊÖ¸Áµ¥´æ´¢Æ÷´æÈ¡Ö¸Á¶à´æ´¢Æ÷´æÈ¡Ö¸Áî¡£

Êý¾Ý´¦ÀíÖ¸ÁËãÊõÔËËãÖ¸ÁÂß¼­ÔËËãÖ¸ÁÊý¾Ý´«ËÍÖ¸Á±È½ÏÖ¸Á²âÊÔÖ¸Áî¡£

Ìø×ªÖ¸ÁBÌø×ªÖ¸Áî BL´øÁ´½ÓµÄÌø×ªÖ¸Áî BX´ø×´Ì¬Çл»µÄÌø×ªÖ¸Áî BLX´øÁ´½ÓºÍ״̬Çл»µÄÌø×ªÖ¸Áî¡£

ÔÓÏîÖ¸Á³ÌÐò״̬¼Ä´æÆ÷²Ù×÷Ö¸ÁÖжϲÙ×÷Ö¸Áî¡£

6. ARM ÓÐÄÄЩÌõ¼þÂ룿¸÷¸öÌõ¼þÂëµÄ·ûºÅ¼°ÒâÒå¡££¨±È½Ï³£ÓõÄÓ¦¸Ã»á£©¡£

Ìõ¼þÂë 0000 0001 0010 0011 0100 0101 0110 0111 Öú¼Ç·û EQ NE CS/HS CC/LO MI PL VS VC º¬ Òå ÏàµÈ ²»ÏàµÈ ÎÞ·ûºÅÊý´óÓÚ»òµÈÓÚ ÎÞ·ûºÅÊýСÓÚ ¸ºÊý ·Ç¸ºÊý Òç³ö ûÓÐÒç³ö ±ê Ö¾ Z=1 Z=0 C=1 C=0 N=1 N=0 V=1 V=0

1000 HI

ÎÞ·ûºÅÊý´óÓÚ C=1ÇÒZ=0 1001 LS

ÎÞ·ûºÅÊýСÓÚ»òµÈÓÚ C=0»òZ=1 1010 GE

ÓзûºÅÊý´óÓÚ»òµÈÓÚ N=V 1011 LT

ÓзûºÅÊýСÓÚ N!=V 1100 GT

ÓзûºÅÊý´óÓÚ Z=0ÇÒN=V 1101 LE

ÓзûºÅÊýСÓÚ»òµÈÓÚ Z=1»òN!=V 1110 AL ÎÞÌõ¼þÖ´ÐÐ

arm²ÉÓÃ32λ¼Ü¹¹£¬»ù±¾Êý¾ÝÀàÐÍ4ÖÖ£¬Ìî¿Õ Byte 8λ ×Ö½Ú

HalfWord 16 °ë×Ö 2×Ö½Ú¶ÔÆë Word 32 ×Ö 4 DoubleWord 64 Ë«×Ö 8

Äں˹¤×÷ģʽ£¬cortex a8£¬£¨¿Î±¾8ÖÖ£©8ÖÖ usr fiq irq

svcÌØÈ¨Ä£Ê½

abtÊý¾Ý·ÃÎÊÖÐֹģʽ und䶨ÒåÖ¸ÁîÖÐֹģʽ sys

mon¼à¿ØÄ£Ê½£¬ ¿ÉÔÚ°²È«Ä£Ê½ºÍ·Ç°²È«Ä£Ê½Çл»