【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》

这篇具有很好参考价值的文章主要介绍了【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2.1 ARM微控制器是由哪些构成的
【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》,Cortex M3-M4权威指南,笔记,arm开发
2.2 开始时需要准备什么
2.2.1 开发组件,C 编译器组件产品如下
【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》,Cortex M3-M4权威指南,笔记,arm开发
2.2.2 开发板
2.2.3 调试适配板(Keil – ULINK;IAR-- I-Jet;STM Value Line Discover;JTAG/SW仿真器/在线仿真器(ICE);开源板 – ARM的CMSIC-DAP和Coocox的CoLink)
2.2.4 软件设备驱动
2.2.5 示例(Sample Code)
2.2.6 文档和其他资源
2.2.7 其他设备

2.3 软件开发流程
1、IDE开发环境
创建工程 >> 添加文件到工程 >> 设置工程选项 >> 编译和连接 >> flash编程 >> 执行程序和调试

【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》,Cortex M3-M4权威指南,笔记,arm开发
2.4 编译应用程序
【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》,Cortex M3-M4权威指南,笔记,arm开发
【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》,Cortex M3-M4权威指南,笔记,arm开发
【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》,Cortex M3-M4权威指南,笔记,arm开发
2.5 软件流程
2.5.1 轮询架构—当任务复杂且多时反应缓慢效率低
【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》,Cortex M3-M4权威指南,笔记,arm开发
2.5.2-1 中断驱动
【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》,Cortex M3-M4权威指南,笔记,arm开发

2.5.2-2 轮询+中断驱动方式(常见的软件运行架构)
【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》,Cortex M3-M4权威指南,笔记,arm开发
2.5.3 多任务系统
RTOS:任务调度、信号量和消息传递、内存管理、工作模式划分等等
【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》,Cortex M3-M4权威指南,笔记,arm开发
2.6 C程序中的数据类型
提示:①整数在6位或16位微控制器上一般是16位,而在ARM架构上则总是32位。
②这些数据类型在使用前需包含C99标准头文件" stdint.h "
【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》,Cortex M3-M4权威指南,笔记,arm开发
2.7 输入、输出和外设访问
1、初始化流程:①初始化时钟 >> ②初始化GPIO >> ③初始化外设 >> ④中断配置
可在②之后初始化SRAM,也可将③和④放到一起,最后再统一使能中断

2、对外设寄存器的初始化,可通过指针访问,可将外设模块用一个数据结构体定义,这样初始化实例代码量可大大减少。

3、“_IO”、“_I”、“_O”等宏在CMSIS 标准头文件中定义

2.8 微控制接口
USB\UART\IO\LCD的等等都可作为debug接口

2.9 Cortex微控制器软件接口-CMSIS
2.9.1 CMSIS 简介
宗旨:CMSIS 由ARM开发,微控制器和软件供应商可以使用一致的软件结构来开发Cortex微控制器的软件。
目标:①提高软件重用性 ②提高软件兼容性 ③易于学习④独立于工具链 ⑤开发性

CMSIS(Cortex Microcontroller Software Interface Standard)是由ARM推出的一套软件接口标准,旨在提供一致的软件接口和开发工具链支持,简化嵌入式系统的开发过程。以下是CMSIS的主要内容:

核心(Core):CMSIS Core提供了与ARM Cortex-M处理器内核相关的通用功能和接口。它包括了处理器寄存器定义、中断控制器、系统控制寄存器、异常处理等。

DSP库(DSP Library):CMSIS DSP库是一套优化的数字信号处理函数库,提供了常见的信号处理算法,如滤波、FFT、矩阵运算等。这些函数经过优化,可以在ARM Cortex-M处理器上高效地执行。

RTOS API(Real-Time Operating System Application Programming Interface):CMSIS RTOS API定义了一组通用的API,用于在嵌入式系统中实现实时操作系统(RTOS)。它提供了任务管理、信号量、消息队列、定时器等功能,方便开发者使用和移植RTOS。

驱动程序接口(Driver Interface):CMSIS Driver Interface定义了一组通用的驱动程序接口,用于访问外设和硬件资源。它提供了统一的API,使得不同厂商的外设驱动程序可以在不同的MCU上进行移植和重用。

软件组件(Software Components):CMSIS还提供了一些软件组件,如Flash算法、启动文件、调试接口等,用于辅助嵌入式系统的开发和调试。

SVD:CMSIS 系统视图描述,基于XML语言格式,用于描述微控制产品外设集。调试工具供应商根据微控制器供应商提供的CMSIS SVD文件,很快的就能构建外设视图。

除了以上主要内容,CMSIS还包括了一些其他的辅助工具和文档,如CMSIS-Pack、CMSIS-DAP、CMSIS-SVD等,用于支持软件包管理、调试和硬件描述等方面的需求。

2.9.2 CMSIS 所做的标准化
①处理器外设的标准化定义(NVIC\SysTick\MPU\SCB)
②访问处理器特性的标准化函数(API)
③操作特殊指令的标准化函数(例如等待中断 _WFI,用于进入休眠模式)
④系统异常处理的标准化命名
⑤系统初始化的标准函数 (SystemInit(),在startup.s中调用,初始化时钟电路和电源管理寄存器,非强制标准化)
⑥描述时钟频率的标准化变量(变量名称SystemCoreClock,可了解当前设定的SysTick运行频率)

2.9.3 CMSIS-Core 的组织结构
一般来说可以将CMSIS定位一下几层:
内核外设访问层。名称定义、地址定义以及访问内核寄存器和内核外设的辅助函数,这是处理器相关的,由ARM提供。
设备外设访问层。名称定义、外设寄存器的地址定义以及包括中断分配、异常向量定义等的系统设计,这是设备相关的(注意:同一家供应商的多个设备可能会使用同一组文件)由设备供应商定义。
外设访问函数。访问外设的驱动代码,这是供应商相关的,而且是可选的。由设备供应商提供。
【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》,Cortex M3-M4权威指南,笔记,arm开发
2.9.4 如何使用CMSIS-Core
CMSIS一般由微控制器厂商添加到设备驱动软件包中,我们在使用微控制器调试时其已包含在内。
一般来说需做到以下两点:
①将源文件添加到工程中
②设定头文件搜索路径,并将头文件添加到搜索路径中
【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》,Cortex M3-M4权威指南,笔记,arm开发文章来源地址https://www.toymoban.com/news/detail-849366.html

到了这里,关于【笔记】ARM M3-M4权威指南第二章《嵌入式软件开发介绍》的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【计算机网络笔记】第二章物理层

    ①机械特性:接口是怎样的(接口所用接线器的形状和尺寸,引脚数目和排列,固定和锁定装置等)。 ②电气特性:用多少的电 ③功能特性:线路上电平电压的特性 ④过程特性:实现不同功能所发射信号的顺序 (P42) ①模拟信号:代表消息的参数的取值是连续的,特定频

    2024年02月14日
    浏览(43)
  • 计算机网络-笔记-第二章-物理层

    一、第一章——计算机网络概述 二、第二章——物理层 三、第三章——数据链路层 四、第四章——网络层 五、第五章——运输层 六、第六章——应用层 目录 二、第二章——物理层 1、物理层的基本概念 2、物理层下面的传输媒体 (1)光纤、同轴电缆、双绞线、电力线【导

    2024年02月11日
    浏览(48)
  • JS深入学习笔记 - 第二章.类和对象

    3.1面向对象 这里顺带提一句学习JAVA时,老师说的面向对象和面向过程的区别: 面向过程:强调做什么事情,具体什么步骤。举个把大象放进冰箱的例子: 打开冰箱门 把大象放进冰箱 关上冰箱门 面向对象: 强调的是做动作的主体(称之为对象) 冰箱 :打开操作 冰箱 :放

    2024年02月08日
    浏览(52)
  • 【课堂笔记】运筹学第二章:对偶问题

    听说运筹学这门课挺好的,有值得一听的必要;此篇用作课堂总结、期末复习及记录。 或许与教材内容会有很大程度重复。 本章开始会适当结合一些B站网课【运筹学】应试向基础教程 对偶问题的对偶问题就是原问题 矩阵表达 要弄清楚矩阵 A A A 和 C C C 分别是什么 最好记住

    2024年02月07日
    浏览(98)
  • dx12 龙书第二章学习笔记 -- 矩阵代数

    1.矩阵及其运算 矩阵的运算 :①加②减③标量乘法 ④矩阵乘法: 矩阵乘法要有意义的条件是矩阵A的列数和矩阵B的行数必须相同,所以一般不满足交换律 ⑤转置矩阵: ⑥矩阵行列式:det A 学习行列式的主要目的是:利用它推导出求逆矩阵的公式 方阵A是可逆的,当且仅当det

    2024年02月11日
    浏览(47)
  • 云计算学习笔记——第二章 虚拟化与容器

    1.什么是虚拟化    一种计算机资源管理技术 ,将各种IT资源抽象、转换成平一种形式的技术都是虚拟化技术。 2.作用   通过该技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个计算机可运行不同的操作系统,并且应用程序都可以

    2024年01月22日
    浏览(54)
  • 【算法】算法设计与分析 课程笔记 第一章&第二章

    算法的四个性质: 输入、输出、确定性和有穷性 。 1. 常见的时间复杂度 常数阶 O(1) 对数阶 O(log n) 线性阶 O(n) 线性对数阶 O(nlog n) 平方阶 O(n^2) 立方阶 O(n^3) k 次方阶 O(n^k) 指数阶 O(2^n) 注:上面的 log n 均代表 以2为底 的对数。 2. 时间复杂度排序 常见的算法时间复杂度由小到

    2024年02月09日
    浏览(44)
  • 【UnityShader入门精要学习笔记】第二章(3)章节答疑

    本系列为作者学习UnityShader入门精要而作的笔记,内容将包括: 书本中句子照抄 + 个人批注 项目源码 一堆新手会犯的错误 潜在的太监断更,有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 (PS:章节答疑不是我答,是原作者对一些比较容易产生困惑的地

    2024年02月03日
    浏览(56)
  • 深入Kafka核心设计与实践原理读书笔记第二章

    配置生产者客户端参数及创建相应的生产者实例。 构建待发送的消息。 发送消息 关闭实列 参数说明 bootstrap.servers :用来指定生产者客户端链接Kafka集群搜需要的broker地址清单,具体格式 host1:port1,host2:port2,可以设置一个或多个地址中间,号分割,参数默认 空串。 这里要注意

    2023年04月08日
    浏览(81)
  • Windows高级调试(学习笔记)-第二章-调试器介绍

    2.1.1 Debugger Types调试器类型 User Mode Deduggers(用户态调试器) 实时调试(Living Debugging)、事后调试(Postmortem Debugging) 三个用户态调试器:cdb.exe、nstd.exe及windbg.exe Kernel Mode Debugger(内核态调试器) 可以分析计算机系统 二个内核态调试器:kd.exe及windbg.exe 2.1.2 Debugger Commands调试器命令 buil

    2024年01月18日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包