高级架构特性:Cortex - M 处理器的深入探索
在嵌入式系统开发中,Cortex - M 系列处理器凭借其丰富的特性和强大的性能,成为了众多开发者的首选。本文将详细介绍 Cortex - M 处理器的一些高级架构特性,包括 SVC 指令的使用、PEND_SV 异常、处理器间事件、独占访问指令以及内存保护单元等内容。
1. 应用代码与特权模式
应用代码通常在非特权的线程模式下运行。这种机制看似是一种调用函数的复杂方式,但它为操作系统运行在特权模式并作为调度器管理非特权线程模式下的应用线程提供了基础。这样,各个线程只有通过向实时操作系统(RTOS)进行 API 调用才能访问关键的处理器特性。
2. 练习 5.2:SVC 指令调用函数
在这个练习中,我们将使用 SVC 指令调用函数,而不是像标准函数调用那样进行分支跳转。具体操作步骤如下:
1. 打开 Pack 安装器。
2. 选择 “Boards::Designers Guide Tutorial”。
3. 选择示例选项卡并复制 “Ex 5.2: Supervisor Call”。
2.1 项目结构分析
项目包含标准的项目启动文件和初始化系统文件。应用源代码位于 test.c 文件中,另外还有一个 svc_user.c 文件,用于处理 SVC 异常。该文件包含 SVC 异常处理程序,是 Arm 编译器提供的标准支持文件,添加新文件到项目时会作为模板包含进来。
test.c 文件中的应用代码调用了两个简单函数,这两个函数又调用执行基本算术运算的例程。示例代码如下:
超级会员免费看
订阅专栏 解锁全文
1555

被折叠的 条评论
为什么被折叠?



