• ARM-Cortex_M3/M4处理器开发简介


    一、关于ARM-Cortex_M4处理器

    ARM-Cortex_M3和ARM-Cortex_M4处理器使用32位架构,寄存器组中的内部寄存器、数据通路以及总线接口都是32位的,两者均基于ARMv7-M架构。

    1、  Cortex_M处理器使用的指令集架构(ISA)为Thumb ISA,其基于Thumb-2技术并同时支持16位和32位指令。

    2、ARM-Cortex_M3和ARM-Cortex_M4处理器特点:

    ①三级流水线设计

    ②哈佛总线架构,具有统一的存储器空间:指令和地址总线使用相同的地址空间。

    ③32位寻址,支持4GB存储器空间。

    ④具有NVIC(嵌套向量中断控制器)的中断控制器。

    ⑤支持可选MPU(存储器保护单元)

    ⑥可选的浮点指令(单精度)

    3、ARM微控制器的构成:

    处理器、程序存储器(如FLASH)、SRAM、外设、内部总线、时钟生成逻辑(包括锁相环)、复位生成器及这些信号的分布网络、电压调节和电源控制器回路、其它模拟部件(ADC/DAC等)、I/O部分等。

    处理器只占芯片中的一小块区域,以下为微控制器的多个模块。


    二、ARM-Cortex_M3/M4处理器开发

    (一)开始需要准备什么

    1. 开发组件(keil微控制器开发套件 MDK-ARM)
    2. 开发板
    3. 调试适配器
    4. 软件设备驱动
    5. 示例和代码
    6. 文档及其他(用户手册、数据手册以及应用笔记)   
    7. 其他硬件(逻辑分析仪、示波器、usb分析仪、万用表等)

    (二)软件开发流程:

    1. 创建工程
    2. 添加文件到工程
    3. 设置工程选项
    4. 编译和链接
    5. flash编程
    6. 执行程序和调试

    常见的软件开发流程

    (三)软件流程

    1. 轮询

      

                                                                轮询方式的简单处理应用

    对于简单的任务,处理器可以等待数据准备好后进行处理,而后再等待。


    2、中断驱动

      外设在需要服务时可以将处理器唤醒。在中断驱动的应用中,不同外设的中断可以指定为不同的中断优先级。

    简单的中断驱动应用

    一般情况下,外设服务的数据处理分为两部分,一部分是需要快速处理,而一部分则可以执行得稍微慢一些。这时可以将中断驱动和轮询结合起来。

    3、多任务系统

       实时操作系统(RTOS)可以用于处理任务调度。RTOS可以将处理器时间分为多个时间片且将时间片分给所需的进程,以实现多个进程同时执行。需要一个定时器来记录RTOS的时间,且在每个时间片的最后,定时器会产生定时中断,它会触发任务调度器且确定是否要执行上下文切换。若需要执行,当前正在执行的任务就会被暂停,处理器转而执行另一个任务。

    RTOS还具有信号量和消息传递的特性。

    三、C程序中的数据类型


    四、输入、输出和外设访问

    微控制器都有多个I/O接口和定时器、实时时钟(RTC)等外设。ARM-Cortex-M3 andM4 除了GPIO/SPI/UART/I2C等常见的接口外设,还有许多高级接口外设,如USB/CAN/以太网及ADC/DAC等模拟接口,需要度微控制器提供的用户手册才能知道用法。

    对于这些微控制器,外设经过了存储器映射,也就是寄存器可以从系统存储器映射中访问。为了用C程序访问这些外设,可以使用指针。

    一般来说,外设在使用前需要初始化,一般包括以下几个步骤:

    1. 若需要,设置时钟控制回路使能连接到外设和对应引脚的时钟。(外设时钟一般是默认关闭的。需要在使用外设的时候使能时钟;有时,还需要使能外设总线系统的时钟。)
    2. 有时,还需要配置I/O引脚的操作模式。大多微控制器都有复用的I/O引脚。比如:配置引脚的输出、输入方向,功能。有时还需要编程其它的配置寄存器,定义输出类型等预想的电气特性(电压、上拉、下拉、开漏或推挽等)
    3. 外设配置
    4. 中断配置(需要中断操作,需在中断控制器NVIC ,使能中断和配置中断优先级)

       需要设置各种外设模块中的外设寄存器。

    微控制器接口:

    USB转UART可以printf,使用串口工具。

    五、Cortex 微控制器软件接口标准(CMSIS)

    CMSIS-core的组织架构:

    CMSIS文件被集成在微控制器供应商提供的设备驱动库软件包里。一般CMSIS定义为三层:

    1. 内核外设访问层 :内核寄存器 和内和外设的辅助函数,地址定义等
    2. 设备外设访问层:外设寄存器的地址定义及中断分配、异常向量定义
    3. 外设访问函数

    参考资料:ARM-Cortex_M3与Cortex_M4权威指南

  • 相关阅读:
    关于LWIP的一点记录(二)
    输出所有最长公共子序列
    kafka消费者理解
    进销存软件对中小型企业管理有什么作用?
    Boot 中bean配置覆盖
    Windows错误处理
    [附源码]计算机毕业设计志愿者服务平台Springboot程序
    koa使用Sequelize:定义数据结构
    07 vue+cesium实战动态单体化,非分层分户
    【深度学习】模型过拟合的原因以及解决办法
  • 原文地址:https://blog.csdn.net/weixin_44006573/article/details/134269238