Page 17 - ARMMbedOS物聯網實戰應用超入門
P. 17

ARM Mbed OS 物聯網實戰應用超入門


                        1   ༶ၑ೻όً࿒ᅲπኜ€APSR: Application Program Status Registersjᜑ
                           ͪ༶ၑܝًٙ࿒࿩ᅺdνڌ 1-4 הͪf


                                            表   1-4  運算程式狀態暫存器(APSR)

                         名稱     位元        說明                              功能
                           N     31     Negative  負值旗標:運算結果為負值(Negative)時,顯示 N=1。

                           Z     30       Zero    零旗標:運算結果為零(Zero)時,顯示 Z=1。

                                         Carry    進位旗標:加法時,若有進位 C=1,若無進位 C=0。
                           C     29     /Borrow   借位旗標:減法時,若有借位 C=1,若無借位 C=0。
                                        /Extend   擴充旗標:資科是否有擴充,有 C=1,無 C=0。

                          OV     28     Overflow   溢位旗標:運算結果溢位時,會顯示 OV=1。


                        2   ʕᓙ೻όً࿒ᅲπኜ€IPSR:                      表   1-5  中斷程式狀態暫存器(IPSR)

                           Interrupt Program Status             名稱       位元               功能
                           Registerj ί IPSR[5-0] ͜                            0 = Thread mode(處理器用)

                           ׵ᜑͪͦۃੂБࡳԬʕᓙ؂                                        1 = 保留
                                                                               2 = NMI(不可遮罩中斷)
                           ਕ೻ό€ISR: Interrupt Service                          3 = HardFault(處理器用)
                           Routinedνڌ 1-5 הͪf                Exception        11 = SVCall(Supervisor Call)
                                                               Number     5-0  4-10= 保留,12-13= 保留
                        3   ੂБ೻όً࿒ᅲπኜ€EPSR:                   中斷向量
                                                                編號             14 = PendSV(OS 用)
                           Execution Program Status                            15 = SysTick(系統計時器)

                           RegisterjՉʕ EPSR[24]=T                             16 = IRQ0(中斷要求 0)
                                                                               47 = IRQ31(中斷要求 31)
                           މᜑͪ Thumb ً࿒Зʩ                                      48-63 = 保留




                    6   中斷優先遮罩暫存器(PRIMASK: Priority Mask Register)

                        1   PRIMASK[0] =0 ࣛdೌЪ͜f

                        2   PRIMASK[0] =1 ࣛd̙ଡ଼࿒הϞٙʕᓙᎴ΋ഃॴf


                    7   控制暫存器(CONTROL: Control Register)

                        ͜׵່֛ͦۃהԴ਼ٙ͜ᛌܸᅺᅲπኜ€SPf

                        1  CONTROL[1]=0 ࣛdԴ͜˴਼ᛌܸᅺᅲπኜ€MSP: Main Stack Pointerf
                        2  CONTROL[1]=1 ࣛdԴ͜ஈଣኜ਼ᛌܸᅺᅲπኜ€PSP: Process Stack Pointerf




            1-10
   12   13   14   15   16   17   18   19   20   21   22