STM32
文章平均质量分 93
STM32技术分享
化屾为海
保密
展开
-
MDK安装教程
在MDK使用过程中发现新版的MDK工具(5.28版本以后)不支持V5编译器,默认安装的是V6编译器。在开发过程中发现使用V6编译器编译CM3的工程有问题,会导致程序DEBUG或者下载到本地运行出现功能异常,因此本文介绍MDK的安装方法,以解决缺少V5编译的问题。本文安装方法兼容8051单片机开发。原创 2024-08-09 15:51:22 · 644 阅读 · 0 评论 -
Cortex_M3之中断的具体行为
在本文中,如无特殊说明,“中断”与“异常”这两个术语都是同一个意思,可以互换使用。原创 2024-05-27 19:23:31 · 938 阅读 · 0 评论 -
Cortex_M3之NVIC与中断控制
正如前文已经多次提到的,向量中断控制器,简称NVIC,是Cortex‐M3不可分离的一部分,它与CM3内核的逻辑紧密耦合,有一部分甚至水乳交融在一起。NVIC与CM3内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。NVIC的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断处理的控制逻辑之外,NVIC还包含了 MPU的控制寄存器、SysTick定时器以及调试控制等设备。NVIC共支持1至240个外部中断输入(通常外部中断写作 IRQs)。具体的数值由芯片厂商在设计芯片时决定。原创 2024-05-27 18:52:13 · 1053 阅读 · 0 评论 -
Cortex_M3之异常
在CM3中,优先级对于异常来说很关键的,它会影响一个异常是否能被响应,以及何时可以响应。优先级的数值越小,则优先级越高。CM3支持中断嵌套,使得高优先级异常会抢(preempt)低优先级异常。有3个系统异常:复位,NMI以及硬fault,它们有固定的优先级,并且它们的优先级号是负数,从而高于所有其它异常。所有其它异常的优先级则都是可编程的(但不能编程为负数)。CM_3的每个中断源都使用一个字节管理优先级,原则上,CM3支持3个固定的高优先级和多达256级的可编程优先级,并且支持128级抢占。原创 2024-05-27 17:10:48 · 1081 阅读 · 0 评论 -
Cortex_M3之启动文件和MDK编译讲解
本小节总结一下CM3的启动文件和MDK编译相关的内容,启动文件是系统上电之后执行的第一个指令文件,是程序入口,C环境的运行是在此文件代码执行完成之后开始执行的。启动文件由汇编指令编写,本文主要是基于MDK平台介绍启动文件内容。由于STM32也是CM3的内核,所以启动文件内容取自STM32的官方文件。废话少说,干货开始。原创 2024-03-25 20:52:07 · 1110 阅读 · 0 评论 -
Cortex_M3基础
Cortex‐M3 的基础主要包含寄存器组,处理器操作模式,异常和中断堆栈区的操作 部分知识。需要特别掌握的知识是处理器的模式和堆栈指针的使用,特别是双堆的使用方式,虽然在工作过程中不需要我们操作这些寄存器,但是对于需要移植操作系统的工程师来说,理解这部分的知识是非常有必要的。为什么CM3要有两个堆栈指针。这么设计的好处是什么?可以带着这个问题阅读下面内容。原创 2024-03-18 19:35:13 · 1317 阅读 · 0 评论 -
Cortex_M3之内核概览
Cortex-M3 是一个 32 位处理器内核。内部的数据路径是 32 位的,寄存器是 32 位的,存储器接口也是 32 位的。CM3 采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。但是另一方面,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统),寻址空间为 4GB。简化框图如下图所示:指令执行单元:由指令预取单元、指令译码、算数逻辑运算单元、寄存器组组成跟踪调试系统存储器接口:提供AHB接口信号的指令总线和数据总线。中断控制器(NVIC)原创 2024-03-11 17:01:39 · 3115 阅读 · 1 评论 -
CPU知识简介
指令集架构主要分为复杂指令集(CISC)和精简指令集(RISC),这两者的区别如下:CISC不仅包含了处理常用的指令,还包含了许多不常用的特殊指令,其指令数目比较多,所以称为复杂指令集.RISC只包含处理器常用的指令,对对于不常用的操作,则通过执行多条常用指令的方式来达到同样的效果,由于其指令数目比较精简,所以称为精简指令集。自从RISC诞生后,基本上所有现代指令集架构都选择使用RISC架构。指令集是设计CPU的灵魂。原创 2024-03-11 10:32:05 · 554 阅读 · 0 评论