【物联网】keil仿真环境设置 keilV5可以适用ARM7

文章目录

  • 一、ARM指令模拟器环境搭建
    • 1. keil软件
    • 2. Legacy Support
  • 二、Keil仿真环境设置
    • 1. 创建一个项目
    • 2. 编译器介绍
      • (1)arm-none-eabi-gcc
      • (2)arm-none-linux-gnueabi-gcc
      • (3)arm-eabi-gcc
      • (4)grmcc
      • (5)aarch64-linux-gnu-gcc
    • 3. 安装编译器
      • (1)设置调试


一、ARM指令模拟器环境搭建

1. keil软件

KEIL是公司的名称,有时候也指KEIL公司的所有软件开发工具,目前2005年Kei由ARM公司收购,成为ARM的公司之一。

MDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具,为满足基于MCU进行嵌入式软件开发的工程师需求而设计,支持ARM7,ARM9,Cortex-M4/M3/M1,Cortex-R0/R3/R4等ARM微控制器内核。

下载地址:https://www.keil.com/download/product/
一路默认安装

在这里插入图片描述

2. Legacy Support

MDK版本5使用软件包来支持微控制器设备和使用中间件。要保持与MDK版本4的向后兼容性,您可以安装旧版支持。这可能是必要的,原因有两个:

  • 维护使用MDK版本4创建的项目,而无需迁移到软件包。
  • 使用设备系列包不支持的旧设备

下载地址:https://www2.keil.com/mdk5/legacy

在这里插入图片描述

注意 下载完安装的时候 需要和keil安装的目录保持一致

在这里插入图片描述
完成之后 打开keil 点开看一下支持的设备
在这里插入图片描述
点开ARM往下滑
在这里插入图片描述

二、Keil仿真环境设置

1. 创建一个项目

选择ARM9E-S
在这里插入图片描述

创建asm.s文件

.global _start_start:mov r0,#11mov r1,#20mov r2,#30stop:b stop

在这里插入图片描述

点击构建报错:
在这里插入图片描述

需要安装指定的arm编译器才能编译

2. 编译器介绍

交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]

  • arch-体系架构,如ARM,MIPS等
  • vendor -工具链提供商
  • os-目标操作系统
  • eabi-嵌入式应用二进制接口(Embedded Application Binary Interface)

交叉编译:在PC机上完成代码的编写与编译,在开发板上完成代码的运行
Embedded Application Binary Interface:嵌入式应用二进制接口指定了文件格式、数据类型、使用、堆积组织优化和在一个嵌入式软件中的参数的标准约定

根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,如arm-none-eabi:这个是没有操作系统的,自然不可能支持那些跟操作系统关系密切的函数,比如fork(2),它使用的是newlib这个专用于嵌入式系统的C库。arm-none-linux-eabi:用于Linux的,使用Glibc

(1)arm-none-eabi-gcc

Arm官方用于编译 ARM 架构的裸机系统(包括 ARM Linux 的 boot、kernel,不适用编译 Linux应用),一般适合 ARM7、Cortex-M 和 Cortex-R 内核的芯片使用,所以不支持那些跟操作系统关系密切的函数,比如fork(2),他使用的是 newlib 这个专用于嵌入式系统的C库。

下载地址:https://developer.arm.com/downloads/-/gnu-rm

(2)arm-none-linux-gnueabi-gcc

主要用于基于ARM架构的Linux系统,可用于编译 ARM 架构的 u-boot、Linux内核、Linux应用等arm-none-linux-gnueabi基于GCC,使用Glibc库,经过 Codesourcery 公司优化过推出的编译器arm-none-linux-gnueabi-xxx 交叉编译工具的浮点运算非常优秀。一般ARM9、ARM11、Cortex-A内核,带有 Linux 操作系统的会用到。

(3)arm-eabi-gcc

Android ARM 编译器

(4)grmcc

ARM 公司推出的编译工具,功能和 arm-none-eabi类似,可以编译裸机程序(u-boot、kernel),但是不能编译 Linux 应用程序。armcc一般和ARM一起,Kei MDK、ADS、RVDS和DS-5中的编译器都是armcc,所以 armcc 编译器都是收费的)

(5)aarch64-linux-gnu-gcc

aarch64-linux-gnu-gcc是由 Linaro 公司基于 GCC 推出的的 ARM 交叉编译工具。可用于交叉编译
ARMv8 64 位目标中的裸机程序、u-boot、Linux kernel、filesystem和 App 应用程序。aarch64-
linux-gnu-gcc 交叉编译器必须安装在 64 位主机上,才能编译目标代码。

3. 安装编译器

使用arm-none-eabi-gcc

下载地址:https://developer.arm.com/downloads/-/gnu-rm
一路默认安装 安装路径可以自定义

keil使用编译器
在这里插入图片描述
选择安装的arm-none-eabi-gcc路径

在这里插入图片描述

(1)设置调试

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
编译
在这里插入图片描述

开始调试 再次点击可以退出调试

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/5125.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

StackOrQueueOJ3:用栈实现队列

目录 题目描述思路分析开辟队列入队列出队列 代码展示 题目描述 原题:232. 用栈实现队列 思路分析 有了前面的用队列实现栈的基础我们不难想到这题的基本思路,也就是用两个栈来实现队列,(栈的实现具体参考:栈及其接口…

二叉树--堆排序

我们之前学过冒泡排序算法,还有其他的排序算法之类的,我们今天来讲堆排序算法; 假设我们现在有一个数组,我们想要对其进行排序,我们可以使用冒泡排序来进行排序;我们也可以使用堆排序来进行排序&#xff1b…

简述mysql 主从复制原理及其工作过程,配置一主两从并验证

第一种基于binlog的主从同步 首先对主库进行配置: [rootopenEuler-1 ~]# vim /etc/my.cnf 启动服务 [rootopenEuler-1 ~]# systemctl enable --now mysqld 主库的配置 从库的配置 第一个从库 [rootopenEuler-1 ~]# vim /etc/my.cnf [rootopenEuler-1 ~]# sys…

【技术总结类】2024,一场关于海量数据治理以及合理建模的系列写作

目录 1.今年的创作路线 2.先说第一条线 2.1.由日志引出的海量文本数据存储和分析问题 2.2.监控以及监控的可视化 2.3.数据量级再往上走牵扯出了大数据 2.4.由大数据牵扯出的JAVA线程高级内容 3.第二条线,也是2025要继续的主线 1.今年的创作路线 今年的写作内…

用于牙科的多任务视频增强

Multi-task Video Enhancement for Dental Interventions 2022 miccai Abstract 微型照相机牢牢地固定在牙科手机上,这样牙医就可以持续地监测保守牙科手术的进展情况。但视频辅助牙科干预中的视频增强减轻了低光、噪音、模糊和相机握手等降低视觉舒适度的问题。…

Hnu电子电路实验2

目录 【说明】 与本次实验相关的代码及报告等文件见以下链接: 一、实验目的 二、实验内容 三:实验原理 1.指令译码器 2.AU 算术单元 四:实验过程 1.指令译码器 A)创建工程(选择的芯片为 familyCyclone II&am…

C语言之图像文件的属性

🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 图像文件属性提取系统设计与实现 目录 设计题目设计内容系统分析总体设计详细设计程序实现…

AI 新动态:技术突破与应用拓展

目录 一.大语言模型的持续进化 二.AI 在医疗领域的深度应用 疾病诊断 药物研发 三.AI 与自动驾驶的新进展 四.AI 助力环境保护 应对气候变化 能源管理 后记 在当下科技迅猛发展的时代,人工智能(AI)无疑是最具影响力的领域之一。AI 技…

ElasticSearch DSL查询之排序和分页

一、排序功能 1. 默认排序 在 Elasticsearch 中,默认情况下,查询结果是根据 相关度 评分(score)进行排序的。我们之前已经了解过,相关度评分是通过 Elasticsearch 根据查询条件与文档内容的匹配程度自动计算得出的。…

【NLP基础】Word2Vec 中 CBOW 指什么?

【NLP基础】Word2Vec 中 CBOW 指什么? 重要性:★★ CBOW 模型是根据上下文预测目标词的神经网络(“目标词”是指中间的单词,它周围的单词是“上下文”)。通过训练这个 CBOW 模型,使其能尽可能地进行正确的…

资料03:【TODOS案例】微信小程序开发bilibili

样式 抽象数据类型 页面数据绑定 事件传参

vim文本编辑器

vim命令的使用: [rootxxx ~]# touch aa.txt #首先创建一个文件 [rootxxx ~]# vim aa.txt #vim进入文件aa.txt进行编辑 vim是vi的升级版,具有以下三种基本模式: 输入模式(编辑模式) 点击i进入编辑模式 (说明…

(undone) 并行计算学习 (Day2: 什么是 “伪共享” ?)

伪共享是什么? TODO: 这里补点文档!!!!!! 缓存一致性、同步的代价!!! 也就是,当不同线程所访问的内存元素恰好在同一个 cache line 上时&#xf…

基于python的博客系统设计与实现

摘要:目前,对于信息的获取是十分的重要,我们要做到的不是裹足不前,而是应该主动获取和共享给所有人。博客系统就能够实现信息获取与分享的功能,博主在发表文章后,互联网上的其他用户便可以看到,…

使用插件SlideVerify实现滑块验证

作者gitee地址:https://gitee.com/monoplasty/vue-monoplasty-slide-verify 使用步骤: 1、安装插件 npm install --save vue-monoplasty-slide-verify 2、在main.js中进行配置 import SlideVerify from vue-monoplasty-slide-verify; Vue.use(SlideV…

【深度学习项目】语义分割-FCN网络(原理、网络架构、基于Pytorch实现FCN网络)

文章目录 介绍深度学习语义分割的关键特点主要架构和技术数据集和评价指标总结 FCN网络FCN 的特点FCN 的工作原理FCN 的变体和发展FCN 的网络结构FCN 的实现(基于Pytorch)1. 环境配置2. 文件结构3. 预训练权重下载地址4. 数据集,本例程使用的…

2024年博客之星主题创作|从零到一:我的技术成长与创作之路

2024年博客之星主题创作|从零到一:我的技术成长与创作之路 个人简介个人主页个人成就热门专栏 历程回顾初来CSDN:怀揣憧憬,开启创作之旅成长之路:从平凡到榜一的蜕变持续分享:打卡基地与成长复盘四年历程&a…

【整体介绍】

ODO:汽车总行驶里程 Chime: 例如安全带没系的报警声音 多屏交互就是中控屏的信息会同步到主驾驶的仪表盘上 面试问题:蓝牙电话协议HFP 音乐协议A2DP 三方通话测试的逻辑

PyTorch使用教程(13)-一文搞定模型的可视化和训练过程监控

一、简介 在现代深度学习的研究和开发中,模型的可视化和监控是不可或缺的一部分。PyTorch,作为一个流行的深度学习框架,通过其丰富的生态系统提供了多种工具来满足这一需求。其中,torch.utils.tensorboard 是一个强大的接口&…

2025寒假备战蓝桥杯01---朴素二分查找的学习

文章目录 1.暴力方法的引入2.暴力解法的思考 与改进3.朴素二分查找的引入4.朴素二分查找的流程5.朴素二分查找的细节6.朴素二分查找的题目 1.暴力方法的引入 对于下面的这个有序的数据元素的组合,我们的暴力解法就是挨个进行遍历操作,一直找到和我们的这…