6 新建工程——寄存器

文章目录

  • 6.1 本地新建工程文件夹
  • 6.2 新建工程
    • 6.2.1 选择CPU型号
    • 6.2.2 在线添加库文件
    • 6.2.3 添加文件
    • 6.2.4 复制存储器分配文件
    • 6.2.5 配置选项卡
      • 6.2.5.1 Linker
      • 6.2.5.2 Target
      • 6.2.5.3 Output 选项卡
      • 6.2.5.4 Listing 选项卡
      • 6.2.6 下载器配置

版本说明:MDK5.24

6.1 本地新建工程文件夹

可随意命名,该目录下新建 2 个文件夹 Listings 和 Objects
在这里插入图片描述

6.2 新建工程

LEIL5新建工程,直接保存在 LED 文件夹下

6.2.1 选择CPU型号

i.MX RT1052 系列开发板选MIMXRT1052DVL5B
没有出现你想要的 CPU 型号,就是你没有添加 RT1052 芯片包
在这里插入图片描述

6.2.2 在线添加库文件

不需要在线添加库文件,这里我们点击关掉

6.2.3 添加文件

选择文件 Add 即可
在这里插入图片描述 startup_MIMXRT1052.s启动文件

  • 系统上电后第一个运行的程序,由汇编编写,C 编程用的比较少,可暂时不管,
    这个文件是从固件库里面拷贝而来的,由 NXP 官方提供。

MIMXRT1052.h

  • 用户手动新建,用于存放寄存器映射的代码,暂时为空。

main.c

  • 用户手动新建,用于存放 main 函数,写入如下空代码
/*
2 * 工程模板 ( 寄存器版本 )
3 */
4 #include "MIMXRT1052.h"
5
6
7 /**
8 * 主函数
9 */
10 int main(void)
11 {
12
13 while (1);
14
15 }17 // 函数为空,目的是为了骗过编译器不报错
18 void SystemInit(void)
19 {
20 }

SystemInit(), 该 函 数 在 启 动 文 件startup_MIMXRT1052.s 的复位程序中被调用,主要作用是初始化系统时钟,是在固件库里面实现的。

6.2.4 复制存储器分配文件

在 RT1052 的工程中还需要添加一个存储器分配文件,文件名为MIMXRT1052xxxxx_flexspi_nor
文件的原目录:
RT1052 sdk 根目录\devices\MIMXRT1052\arm\MIMXRT1052xxxxx_flexspi_nor
在这里插入图片描述

6.2.5 配置选项卡

6.2.5.1 Linker

Linker 选项卡包含对链接器的配置:

  • 链接器对 C/C++ 及 ASM 汇编器生成的 *.o 目标文件链接得到最终的可执行程序文件

在Linker 选项卡中我们主要设置链接使用的存储器分配文件。

  • KEIL 会根据我们的
  • 芯片型号设置一个默认的存储器分配文件
  • 我们要使用的是MIMXRT1052xxxxx_flexspi_nor 文件

配置方法是在 Linker 选项框中取消勾选“Use Memory Layout from TargetDialog”选项,然后打开 Scaltter File 栏右侧的按钮把 MIMXRT1052xxxxx_flexspi_nor 添加进去
在这里插入图片描述需要进行修改,点击选项框中的“Edit”按钮会弹出该文件的内容,然后直接编辑即可。
修改如下:

  • 把 m_text_size 的值修改为 0x01FFDC00;
  • 把 LR_m_rom_config 及 LR_m_rom_ivt 相关的代码使用分号“;”注释掉。

添加忽略警告提示。

  • 在同样的选项框下“disable Warnings”添加对忽略 6314 类型警告的配置,否则在后面编译时经常会提示分配的部分存储器没有使用的警告
  • 在这里插入图片描述

6.2.5.2 Target

Target 选项卡需要设置不使用浮点运算单元。

  • 本芯片包含有浮点运算单元,使用它可以加速浮点类型数据的运算。
  • 不过使用浮点运算单元时还需要在代码中添加一些配置,在本教程中,寄存器版的工程只作简单的演示,不做浮点单元的配置
  • 以此处我们需要关闭它,不然程序执行会出错

在这里插入图片描述

6.2.5.3 Output 选项卡

如果想在编译的过程中生成 hex 文件,那么那 Create HEX File 选项勾上
在这里插入图片描述

6.2.5.4 Listing 选项卡

Listing 选项卡中把输出文件夹定位到我们工程目录下的 Listings 文件夹
在这里插入图片描述

6.2.6 下载器配置

STM32文章中有过相关描述

之后编译下载即可。

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

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

相关文章

数据结构(三)——算法和算法分析

😀前言 数据结构和算法是计算机科学领域中至关重要的概念。它们为解决实际问题提供了有效的方法和步骤。算法作为解决问题的方法和步骤,在计算机中以指令的有限序列的形式表达。本文将介绍算法的定义、描述和程序设计等方面的内容,帮助您深入…

【Redisson】基于自定义注解的Redisson分布式锁实现

前言 在项目中,经常需要使用Redisson分布式锁来保证并发操作的安全性。在未引入基于注解的分布式锁之前,我们需要手动编写获取锁、判断锁、释放锁的逻辑,导致代码重复且冗长。为了简化这一过程,我们引入了基于注解的分布式锁&…

目标检测——Faster R-CNN算法解读

论文:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 作者:Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun 链接:https://arxiv.org/abs/1506.01497 代码:https://github.com/rbgirsh…

sqli-labs靶场详解(less17-less22)

目录 less-17 less-18 less-19 less-20 less-21 less-22 less-17 修改密码关卡 服务器后端 账号密码都存在数据库中 使用UPDATE进行修改密码 尝试username处 尝试好久尝试不出来应该是对用户名进行了过滤 于是对password进行注入 判断注入点 passwdadmin 报错&#xff1a…

CentOS 7 部署 MariaDB 的 2 种方法

有两种安装 MariaDB 服务器的方法。您可以安装 CentOS 7 存储库中可用的默认版本,也可以通过手动添加 MariaDB 存储库来安装最新版本。 如果安装过MariaDB或MySQL,使用以下命令彻底删除它们: yum remove mariadb* yum remove mysql* 方法一: 使用 Yum…

安卓开发学习---kotlin版---笔记(一)

Hello word 前言:上次学习安卓,学了Java开发,简单的搭了几个安卓界面。这次要学习Kotlin语言,然后开发安卓,趁着还年轻,学点新东西,坚持~ 未来的你会感谢现在努力的你~ 主要学习资料&#xff1a…

15、 深度学习之正向传播和反向传播

上一节介绍了训练和推理的概念,这一节接着训练和推理的概念讲一下,神经网络的正向传播和反向传播。 其实单看正向传播和反向传播这两个概念,很好理解。 正向传播(Forward Propagation)是指从输入层到输出层的数据流动过程,而反向传播(Backpropagation)是指数据从输出…

30秒搞定一个属于你的问答机器人,快速抓取网站内容

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情 文章目录 简介运行效果GitHub地址 简介 爬取一个网站的内容,然后让这个内容变成你自己的私有知识库,并且还可以搭建一个基于私有知识库的问…

IDEA下载和安装

IDEA的下载和安装 一、概述 IDEA全称IntelliJ IDEA,是用于Java语言开发的集成环境,它是业界公认的目前用于Java程序开发最好的工具。 集成环境:把代码编写,编译,执行,调试等多种功能综合到一起的开发工具…

光伏测算工具能测量哪些数据?

光伏测算工具在光伏电站的设计和规划过程中起着至关重要的作用。它们可以测量并分析一系列关键数据,以确保光伏电站的顺利建设和高效运营。本文将详细介绍光伏测算工具能测量的主要数据。 一、太阳能资源评估 光伏测算工具可以对场地的太阳能资源进行评估。这包括测…

ubuntu改window任务栏

经常在ubuntu和win之间切换,任务栏的布局不统一会让人很别扭,个人很喜欢win任务栏的不折叠图标功能,而ubuntu没有,又很喜欢的ubuntu的多工作空间,效率比副屏还高,还可以自定义切换工作空间的快捷键。鱼和熊…

判断一个字符序列是否为回文————利用使用双指针法

#include <stdio.h> #include <string.h> int is_palindrome(char s[]) { int left 0; int right strlen(s) - 1; // 循环判断左右指针字符是否相等 while (left < right) { // 如果左右指针所指字符不相等&#xff0c;则返回0表示不是回…

qt pdf 模块简介

文章目录 1. 技术平台2. Qt pdf 模块3. cmake 使用模块4. 许可证5. 简单示例5.1 CMakeLists.txt5.2 main.cpp 6. 总结 1. 技术平台 项目说明OSwin10 x64Qt6.6compilermsvc2022构建工具cmake 2. Qt pdf 模块 Qt PDF模块包含用于呈现PDF文档的类和函数。 QPdfDocument 类加载P…

常用sql记录

备份一张表 PostgreSQL CREATE TABLE new_table AS SELECT * FROM old_table;-- 下面这个比上面好&#xff0c;这个复制表结构时&#xff0c;会把默认值、约束、注释都复制 CREATE TABLE new_table (LIKE old_table INCLUDING ALL) WITHOUT OIDS; INSERT INTO new_table SELE…

10.30 作业 C++

设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函数、析构函数和拷贝构造函数。 #include <iostream>using namespace std;clas…

【SpringCloud】注册中心和Ribbon负载均衡

SpringCloud 1.Eureka注册中心 1.1 Eureka的作用 注册中心拉取服务负载均衡远程调用 order-service得知user-service实例地址流程&#xff1a; user-service服务实例启动后&#xff0c;将自己的信息注册到eureka-server&#xff08;Eureka服务端&#xff09;&#xff0c;称…

pytorch中Conv1d、Conv2d与Conv3d详解

1 卷积介绍 1.1 什么是卷积 卷积&#xff08;convolution&#xff09;&#xff0c;是一种运算&#xff0c;你可以类比于加&#xff0c;减&#xff0c;乘&#xff0c;除&#xff0c;矩阵的点乘与叉乘等等&#xff0c;它有自己的运算规则&#xff0c;卷积的符号是星号*。表达式…

继承 和 多肽(超重点 ! ! !)

[本节目标] 1.继承 2.组合 3.多肽 1.继承 1.1 为什么要继承 Java中使用类对现实世界中实体来进行描述&#xff0c;类经过实例化之后的产物对象&#xff0c;则可以用来表示现实中的实体&#xff0c;但是现实世界错综复杂&#xff0c;事物之间可能会存在一些关联&#xff0…

百度下拉词挖掘工具,百度下拉词挖掘获取软件

百度下拉词挖掘工具 百度下拉词挖掘工具&#xff0c;作为站长和SEO人员必备的工具之一&#xff0c;有着令人瞩目的功能。它能够追踪用户在百度搜索栏中输入关键词时&#xff0c;百度自动为用户推荐的下拉关键词。这一推荐不仅仅是用户搜索历史的体现&#xff0c;更是一种市场需…

算法通关村第十四关-青铜挑战认识堆

大家好我是苏麟 , 今天带大家认识认识堆 . 堆 堆是将一组数据按照完全二叉树的存储顺序&#xff0c;将数据存储在一个一维数组中的结构。 堆有两种结构&#xff0c;一种称为大顶堆&#xff0c;一种称为小顶堆 : 大顶堆 大顶堆的任何一个父节点的值&#xff0c;都大于或等于…