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

embedded/2025/1/19 1:16:28/

文章目录

  • 一、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.ppmy.cn/embedded/155096.html

相关文章

SDL2基本的绘制流程与步骤

SDL2(Simple DirectMedia Layer 2)是一个跨平台的多媒体库,它为游戏开发和图形应用提供了一个简单的接口,允许程序直接访问音频、键盘、鼠标、硬件加速的渲染等功能。在 SDL2 中,屏幕绘制的流程通常涉及到窗口的创建、渲染目标的设置、图像的绘制、事件的处理等几个步骤。…

Formality:参考设计/实现设计以及顶层设计

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482​​​ Formality存在两个重要的概念:参考设计/实现设计和顶层设计,本文就将对此进行详细阐述。参考设计/实现设计是中两个重要的全局概念&am…

C# 多线程 Parallel 并行

Task 版本的TPL 任务并行库中 除了使用task 任务来处理线程的手段 还有一个扩展的 要点 Parallel并行 因为现在PC 基本上 都是采用多核多线程,什么意思 就是 相当于有多个CPU 每个cpu可以有多个线程在同时处理 比如4核8线程 那就是说 有4个cpu核心 而且可以有8个线程并行 同一…

Nacos: 一个动态服务发现与配置管理平台

Nacos: 一个动态服务发现与配置管理平台 引言 在微服务架构日益普及的今天,服务之间的调用和配置管理变得越来越复杂。为了简化这一过程并提高开发效率,阿里巴巴推出了Nacos——一个易于使用的动态服务发现、配置管理和服务管理平台。 Nacos是什么&am…

力扣动态规划-1【算法学习day.95】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关…

前端vue框架(3)——vue的基础语法(下)

上一篇入口: 前端vue框架(2)——vue的基础语法(上)-CSDN博客文章浏览阅读567次,点赞9次,收藏6次。vue的安装在上一篇博客中前端vue框架(1)——vue的安装-CSDN博客Vue (发音为 /vju:/,类似 view)是一款用于…

list的模拟实现详解

文章目录 list的模拟实现list的迭代器begin()和end() list的模拟实现 #pragma once #include<iostream> #include<list>using namespace std;namespace wbc {// 类模版template<class T>struct list_node // 链表的节点{T _data;list_node<T>* _next;…

Docker镜像配置

Docker 镜像配置 Docker 安装完成后镜像一直获取不成功&#xff0c;网上也有很多方法&#xff0c;貌似都不太管用&#xff0c;这里详细说明一下&#xff0c;最近很多镜像源都不能用了&#xff0c;出现无法拉取镜像的问题先从镜像源开始解决。 问题复现 wjxwjx-WUJIE16:~$ dock…