IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> ARM KEIL: MDK5 Software Packs -> 正文阅读

[嵌入式]ARM KEIL: MDK5 Software Packs

ARM:Advanced RISC Machines 先进的精简指令集器件。

ARM是最当下最流行的处理器,尤其在嵌入式领域。

KEIL被ARM收购,MDK5是ARM官方的开发工具。

作为一款面向微控制器和微处理器的软件开发工具,需要支持各种各样的芯片。

所以为了更方便管理,MDK里对于不同厂商的ARM芯片所需要的软件组件或设备支持包,使用软件packs的形式。

有一个Pack Installer的工具,对各个ARM芯片、开发板和公共通用的packs有一个完整的列表。

各个芯片和开发板需要的设备相关的packs,叫做DFP(Device Family Pack),里面包含的厂商各自芯片自定义的一些接口和实现。

如果没有下载相应芯片的DFP,就没法使用MDK进行相关芯片的开发。

安装相应芯片software packs的方法:

第一种:

下载DFP的连接:MDK5 Software Packs

在这里面找到相应的芯片型号对应下载。

下载列表里也包含的公用pack,比如CMSIS。

CMSIS pack当前最新的版本是5.7,git hub:GitHub - ARM-software/CMSIS_5: CMSIS Version 5 Development Repository

下载完自己芯片对应DFP之后,比如:Keil.STM32L4xx_DFP.2.5.0.pack,双击这个文件安装。

这时再打开Pack Installer(在工具栏上最后几个图标之一),选择相应的芯片,就会在右侧Device Specific栏里显示“Up to date”或“Update”表示已经安装了,需要更新或不需要更新。

第二种:

打开Pack Installer之后,在列表里选择相应芯片后,直接安装。

比如上面选择了STM32L4R9AIIx,左侧连接打开后就是芯片说明的网页,右边出现了可以安装的相关pack。

第一行就是device family pack,因为我已经安装所以显示update。

下面是Generic packs,可以选择需要的packs进行安装。点击后,注意下面状态栏会显示进度条。

关于CMSIS的说明:

Overview

关于CMSIS-Driver的说明:

Overview

我的理解CMSIS是芯片级的硬件接口封装,一些寄存器、中断名字的定义为统一方便使用的,还有比如 定义了SystemInit()函数统一作为设备的时钟设置函数,还有提供了一个频率变量方便设定1ms的systick timer。

而CMSIS-Driver是对片上外设的接口封装,方便开发者使用这些接口来操作片上外设。比如定义了UART操作的结构体和调用接口,使用规范等。

------------------------------------------------?

综上而言,当我们要选一款芯片,在上面开发软件的话,与在PC上使用某个IDE,比如Visual Studio,直接从main函数开始编写代码,是不一样的。

MCU或MPU这类单片机,从上电开始,相关的操作都需要我们来掌控,比如设置堆栈、设置晶振、操作片上外设等(比如驱动I2C、UART)。

而为了方便开发人员,这些操作被封装了起来,这就是上面说的software packs。

创建了一个空项目后,可以通过Manage Run-Time Enviroment(和上面Pack Installer工具栏图标在一起)来选择这些pack中的源代码文件添加到当前项目中。

比如可以选择添加此芯片的startup.s文件,里面定义了中断向量表,并设置堆栈大小,调用SystemInit函数,然后跳转到main函数执行。

还可已选择添加HAL层的I2C的操作文件等。

通过Packs的管理,让我们更方便的创建项目,减少了一些重复繁琐的工作,让我们专注于业务应用相关的代码的编写。

使用上面方法添加的文件,会在项目根目录下生成一个RTE文件夹来存放。

如果有需要修改内容,直接在文件中修改即可。

像我选择了一个STM32L4的芯片,创建个项目,添加个最简单的main.c文件,里面定义一个int main( ) 函数,先什么都不做,直接编译。

会提示有问题:

linking...
.\Objects\TestKeil.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST.
Not enough information to list image symbols.
Not enough information to list load addresses in the image map.

所以需要添加的就是芯片所对应的startup.s文件和其依赖的CMSIS-CORE组件,在Manage Run-Time Enviroment里选择即可。

?如果没有packs,那就要自己从官网或FAE那里拿到开发SDK,从里面找到需要的文件,自己copy过来,需要修改再修改下使用,没有现在这么方便智能。即使需要更新,在线实时更新到最新版本即可。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-14 13:30:52  更:2021-09-14 13:31:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:34:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码