新建
上传
首页
助手
最?/div>
资料?/div>
工具

ARM Cortex-M3 

学习笔记

(3) 

最近在?/p>

 

ARM 

Cortex-M3

,找了本号称很经典的?/p>

 

An 

Definitive 

Guide 

to 

The 

ARM 

Cortex-M3 

在看。这个系列学习笔记其实就是在学习这本书的过程?/p>

 

做的读书笔记。第三章

 

Cortex-M3 

基础这章的内容有不少是和第二章重复的?/p>

 

重复的部分这里就不再提了。堆?/p>

 

Cortex-M3 

的堆栈是倒生的,实栈顶。也?/p>

 

?/p>

 

R13 

指向最后一次压入堆栈的内容。下面是个简单的例子?/p>

PUSH {R0} ; *(-- 

R13)=R0

?/p>

R13 

?/p>

 

long*

的指?/p>

 

POP 

{R0} 

; 

R0= *R13++PUSH 

?/p>

 

POP 

可以一

 

次操作多个寄存器?/p>

subroutine_1PUSH {R0-R7, R12, R14} ; 

保存寄存器列?/p>

 

; 

执行处理

 

POP {R0-R7, R12, R14} ; 

恢复寄存器列?/p>

 

BX R14 ; 

返回到主调函?/p>

 

上面的例子中顺带也用到了

 

R14

。因此就不单独讲?/p>

 

R14 

了。特殊功能寄存器

 

组访问特殊功能寄存器需要用专用指令?/p>

MRS 

, 

;

读特殊功能寄存器的值到?/p>

 

用寄存器

 

MSR , 

;

写通用寄存器的值到特殊功能寄存器程序状态寄存器在其?/p>

 

部又被分为三个子状态寄存器?/p>

 

应用程序

 

PSR

?/p>

APSR

?/p>

 

中断?/p>

 

PSR

?/p>

IPSR

?/p>

 

执行

 

PSR

?/p>

EPSR

)参看下图:

 

 

?/p>

 

6 Cortex-M3 

中的程序状态寄存器?/p>

xPSR

?/p>

PRIMASK

?/p>

FAULTMASK 

?/p>

 

BASEPRI 

控制中断和异常的开启和屏蔽

 

PRIMASK 

= 

1 

后只?/p>

 

NMI 

和硬

 

fault 

可以响应,默认为

 

0FAULTMASK 

= 

1 

后只?/p>

 

NMI 

和硬

 

fault 

可以响应,默?/p>

 

?/p>

 

0BASEPRI

:优先级号大于等于此值的中断都被屏蔽只有在特权级下,才允

 

许访问这

 

3 

个寄存器。控制寄存器?/p>

CONTROL

?/p>

CONTROL[0]=1

,用户级?/p>

 

线程模式

 

CONTROL[0]=0

,特权级的线程模?/p>

 

CONTROL[1]=1

,选择使用

 

MSPCONTROL[1]=0

,选择使用

 

PSP 

 

中断向量表默认的中断向量表在地址

 

0 

处,利用

 

NVIC 

的重定位寄存器可?/p>

 

将其重定位。另外,中断向量表的第一个向量的位置存放的是

 

MSP 

的初始值?

Ͼλ
新建
上传
首页
助手
最?/div>
资料?/div>
工具

ARM Cortex-M3 

学习笔记

(3) 

最近在?/p>

 

ARM 

Cortex-M3

,找了本号称很经典的?/p>

 

An 

Definitive 

Guide 

to 

The 

ARM 

Cortex-M3 

在看。这个系列学习笔记其实就是在学习这本书的过程?/p>

 

做的读书笔记。第三章

 

Cortex-M3 

基础这章的内容有不少是和第二章重复的?/p>

 

重复的部分这里就不再提了。堆?/p>

 

Cortex-M3 

的堆栈是倒生的,实栈顶。也?/p>

 

?/p>

 

R13 

指向最后一次压入堆栈的内容。下面是个简单的例子?/p>

PUSH {R0} ; *(-- 

R13)=R0

?/p>

R13 

?/p>

 

long*

的指?/p>

 

POP 

{R0} 

; 

R0= *R13++PUSH 

?/p>

 

POP 

可以一

 

次操作多个寄存器?/p>

subroutine_1PUSH {R0-R7, R12, R14} ; 

保存寄存器列?/p>

 

; 

执行处理

 

POP {R0-R7, R12, R14} ; 

恢复寄存器列?/p>

 

BX R14 ; 

返回到主调函?/p>

 

上面的例子中顺带也用到了

 

R14

。因此就不单独讲?/p>

 

R14 

了。特殊功能寄存器

 

组访问特殊功能寄存器需要用专用指令?/p>

MRS 

, 

;

读特殊功能寄存器的值到?/p>

 

用寄存器

 

MSR , 

;

写通用寄存器的值到特殊功能寄存器程序状态寄存器在其?/p>

 

部又被分为三个子状态寄存器?/p>

 

应用程序

 

PSR

?/p>

APSR

?/p>

 

中断?/p>

 

PSR

?/p>

IPSR

?/p>

 

执行

 

PSR

?/p>

EPSR

)参看下图:

 

 

?/p>

 

6 Cortex-M3 

中的程序状态寄存器?/p>

xPSR

?/p>

PRIMASK

?/p>

FAULTMASK 

?/p>

 

BASEPRI 

控制中断和异常的开启和屏蔽

 

PRIMASK 

= 

1 

后只?/p>

 

NMI 

和硬

 

fault 

可以响应,默认为

 

0FAULTMASK 

= 

1 

后只?/p>

 

NMI 

和硬

 

fault 

可以响应,默?/p>

 

?/p>

 

0BASEPRI

:优先级号大于等于此值的中断都被屏蔽只有在特权级下,才允

 

许访问这

 

3 

个寄存器。控制寄存器?/p>

CONTROL

?/p>

CONTROL[0]=1

,用户级?/p>

 

线程模式

 

CONTROL[0]=0

,特权级的线程模?/p>

 

CONTROL[1]=1

,选择使用

 

MSPCONTROL[1]=0

,选择使用

 

PSP 

 

中断向量表默认的中断向量表在地址

 

0 

处,利用

 

NVIC 

的重定位寄存器可?/p>

 

将其重定位。另外,中断向量表的第一个向量的位置存放的是

 

MSP 

的初始值?

">
新建
上传
首页
助手
最?/div>
资料?/div>
工具

ARM Cortex-M3 

学习笔记

(3) 

最近在?/p>

 

ARM 

Cortex-M3

,找了本号称很经典的?/p>

 

An 

Definitive 

Guide 

to 

The 

ARM 

Cortex-M3 

在看。这个系列学习笔记其实就是在学习这本书的过程?/p>

 

做的读书笔记。第三章

 

Cortex-M3 

基础这章的内容有不少是和第二章重复的?/p>

 

重复的部分这里就不再提了。堆?/p>

 

Cortex-M3 

的堆栈是倒生的,实栈顶。也?/p>

 

?/p>

 

R13 

指向最后一次压入堆栈的内容。下面是个简单的例子?/p>

PUSH {R0} ; *(-- 

R13)=R0

?/p>

R13 

?/p>

 

long*

的指?/p>

 

POP 

{R0} 

; 

R0= *R13++PUSH 

?/p>

 

POP 

可以一

 

次操作多个寄存器?/p>

subroutine_1PUSH {R0-R7, R12, R14} ; 

保存寄存器列?/p>

 

; 

执行处理

 

POP {R0-R7, R12, R14} ; 

恢复寄存器列?/p>

 

BX R14 ; 

返回到主调函?/p>

 

上面的例子中顺带也用到了

 

R14

。因此就不单独讲?/p>

 

R14 

了。特殊功能寄存器

 

组访问特殊功能寄存器需要用专用指令?/p>

MRS 

, 

;

读特殊功能寄存器的值到?/p>

 

用寄存器

 

MSR , 

;

写通用寄存器的值到特殊功能寄存器程序状态寄存器在其?/p>

 

部又被分为三个子状态寄存器?/p>

 

应用程序

 

PSR

?/p>

APSR

?/p>

 

中断?/p>

 

PSR

?/p>

IPSR

?/p>

 

执行

 

PSR

?/p>

EPSR

)参看下图:

 

 

?/p>

 

6 Cortex-M3 

中的程序状态寄存器?/p>

xPSR

?/p>

PRIMASK

?/p>

FAULTMASK 

?/p>

 

BASEPRI 

控制中断和异常的开启和屏蔽

 

PRIMASK 

= 

1 

后只?/p>

 

NMI 

和硬

 

fault 

可以响应,默认为

 

0FAULTMASK 

= 

1 

后只?/p>

 

NMI 

和硬

 

fault 

可以响应,默?/p>

 

?/p>

 

0BASEPRI

:优先级号大于等于此值的中断都被屏蔽只有在特权级下,才允

 

许访问这

 

3 

个寄存器。控制寄存器?/p>

CONTROL

?/p>

CONTROL[0]=1

,用户级?/p>

 

线程模式

 

CONTROL[0]=0

,特权级的线程模?/p>

 

CONTROL[1]=1

,选择使用

 

MSPCONTROL[1]=0

,选择使用

 

PSP 

 

中断向量表默认的中断向量表在地址

 

0 

处,利用

 

NVIC 

的重定位寄存器可?/p>

 

将其重定位。另外,中断向量表的第一个向量的位置存放的是

 

MSP 

的初始值?

Ͼλ">
Ͼλ
Ŀ

ARM Cortex-M3 学习笔记(3) - 百度文库
新建
上传
首页
助手
最?/div>
资料?/div>
工具

ARM Cortex-M3 

学习笔记

(3) 

最近在?/p>

 

ARM 

Cortex-M3

,找了本号称很经典的?/p>

 

An 

Definitive 

Guide 

to 

The 

ARM 

Cortex-M3 

在看。这个系列学习笔记其实就是在学习这本书的过程?/p>

 

做的读书笔记。第三章

 

Cortex-M3 

基础这章的内容有不少是和第二章重复的?/p>

 

重复的部分这里就不再提了。堆?/p>

 

Cortex-M3 

的堆栈是倒生的,实栈顶。也?/p>

 

?/p>

 

R13 

指向最后一次压入堆栈的内容。下面是个简单的例子?/p>

PUSH {R0} ; *(-- 

R13)=R0

?/p>

R13 

?/p>

 

long*

的指?/p>

 

POP 

{R0} 

; 

R0= *R13++PUSH 

?/p>

 

POP 

可以一

 

次操作多个寄存器?/p>

subroutine_1PUSH {R0-R7, R12, R14} ; 

保存寄存器列?/p>

 

; 

执行处理

 

POP {R0-R7, R12, R14} ; 

恢复寄存器列?/p>

 

BX R14 ; 

返回到主调函?/p>

 

上面的例子中顺带也用到了

 

R14

。因此就不单独讲?/p>

 

R14 

了。特殊功能寄存器

 

组访问特殊功能寄存器需要用专用指令?/p>

MRS 

, 

;

读特殊功能寄存器的值到?/p>

 

用寄存器

 

MSR , 

;

写通用寄存器的值到特殊功能寄存器程序状态寄存器在其?/p>

 

部又被分为三个子状态寄存器?/p>

 

应用程序

 

PSR

?/p>

APSR

?/p>

 

中断?/p>

 

PSR

?/p>

IPSR

?/p>

 

执行

 

PSR

?/p>

EPSR

)参看下图:

 

 

?/p>

 

6 Cortex-M3 

中的程序状态寄存器?/p>

xPSR

?/p>

PRIMASK

?/p>

FAULTMASK 

?/p>

 

BASEPRI 

控制中断和异常的开启和屏蔽

 

PRIMASK 

= 

1 

后只?/p>

 

NMI 

和硬

 

fault 

可以响应,默认为

 

0FAULTMASK 

= 

1 

后只?/p>

 

NMI 

和硬

 

fault 

可以响应,默?/p>

 

?/p>

 

0BASEPRI

:优先级号大于等于此值的中断都被屏蔽只有在特权级下,才允

 

许访问这

 

3 

个寄存器。控制寄存器?/p>

CONTROL

?/p>

CONTROL[0]=1

,用户级?/p>

 

线程模式

 

CONTROL[0]=0

,特权级的线程模?/p>

 

CONTROL[1]=1

,选择使用

 

MSPCONTROL[1]=0

,选择使用

 

PSP 

 

中断向量表默认的中断向量表在地址

 

0 

处,利用

 

NVIC 

的重定位寄存器可?/p>

 

将其重定位。另外,中断向量表的第一个向量的位置存放的是

 

MSP 

的初始值?



ļ׺.doc޸Ϊ.docĶ

  • ̬滮matlabʵּӦ
  • Labviewļ
  • չʾݵĿռ䲼չʾ
  • ߿ӢĴʻתѵ
  • йдĿȫ
  • úʱ
  • ʦҵࣺʦҵΧЩ
  • 2019ɹŶ˹пѧ⼰ο(word)
  • װػ˾ѵ̰
  • մɻϲ(CMC).

վ

԰ Ͼλ
ϵͷ779662525#qq.com(#滻Ϊ@)