| |
|
开发:
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的说明: 关于CMSIS-Driver的说明: 我的理解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( ) 函数,先什么都不做,直接编译。 会提示有问题:
所以需要添加的就是芯片所对应的startup.s文件和其依赖的CMSIS-CORE组件,在Manage Run-Time Enviroment里选择即可。 ?如果没有packs,那就要自己从官网或FAE那里拿到开发SDK,从里面找到需要的文件,自己copy过来,需要修改再修改下使用,没有现在这么方便智能。即使需要更新,在线实时更新到最新版本即可。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |