【Keil5-Debug和发布版本配置】

Keil5-Debug和发布版本配置

  • ■ Keil5-Debug和发布版本配置
    • ■ 一:sct文件 sct文件配置
    • ■ 二:发布版本不需要在 C/C++,Asm,Linker,中添加 CMDDEBUG 宏定义。
    • ■ 三:Debug版本需要在Linker添加 --pd="-DCMDDEBUG" 才能 生效sct配置文件
    • ■ 四:app和debug 版本分开工程文件(也非必须分开,就是要来回设置比较麻烦,建议分开工程文件)
    • ■ 五:Debug版本才有跳转函数,boot 跳转到app 代码中boot 会重新配置向量表偏移地址并将app地址压栈,这样就完美调到App中
    • ■ 六:Keil5-将App应用程序烧录到指定Flash地址
      • ■ 设置一:修改Keil5 下载地址
      • ■ 设置二:修改sct文件
      • ■ 设置三:IROM1 设置
      • ■ 设置四:向量表偏移地址
      • ■ 设置五:查看烧录结果

■ Keil5-Debug和发布版本配置

关键词描述
无 boot
有 app
app烧录在0x08000000地址中的进行调试。
有 boot
有 app
有boot 的情况下boot 开机在没有接收到握手信号就会跳到app地址执行,所以这个时候在App在用Keil调试也是没有问题的。
例如:
boot 烧录在0x08000000地址中
app 烧录在0x08008000地址中 ,
boot 大小就是0x08000;

■ 一:sct文件 sct文件配置

在这里插入图片描述
注意 :#! armcc -E 必须占用第一行,或者编译不通过。

■ 二:发布版本不需要在 C/C++,Asm,Linker,中添加 CMDDEBUG 宏定义。

在这里插入图片描述

■ 三:Debug版本需要在Linker添加 --pd=“-DCMDDEBUG” 才能 生效sct配置文件

--pd="-DCMDDEBUG"

在这里插入图片描述

■ 四:app和debug 版本分开工程文件(也非必须分开,就是要来回设置比较麻烦,建议分开工程文件)

在这里插入图片描述

■ 五:Debug版本才有跳转函数,boot 跳转到app 代码中boot 会重新配置向量表偏移地址并将app地址压栈,这样就完美调到App中

在这里插入图片描述

■ 六:Keil5-将App应用程序烧录到指定Flash地址

将它的程序分为Bootloader程序和用户程序。
一个Bootloader程序和一个用户程序,那么这就需要调整分散加载文件 .stm32f2_dock.sct文件,以达成在一个Flash里面同时摆放两个不同程序的目的。
在这里插入图片描述

下面修改App示例,boot也是这样修改为boot起始地址和大小:
例如 Flash128KByte 大小为 0x20000 == 0x8020000 - 0x8000000
128*1024 == 131,072‬ == 0x‭20000
在这里插入图片描述

假如我们要讲APP烧录在APP_START_ADDR 0x8008000

■ 设置一:修改Keil5 下载地址

在这里插入图片描述

■ 设置二:修改sct文件

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

■ 设置三:IROM1 设置

在这里插入图片描述

■ 设置四:向量表偏移地址

因为在boot中已经设置了向量表 SCB->VTOR = APP_START_ADDR; //设置向量表偏移地址。
发布版本要屏蔽修改向量表。所以条件个CMDDEBUG .不在初始化向量表。

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

■ 设置五:查看烧录结果

在这里插入图片描述


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

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

相关文章

【MySQL数据库 | 第二十四篇】Limit语句的性能问题和调优策略

前言: MySQL作为最流行的关系型数据库管理系统之一,被广泛应用于各种规模和类型的应用程序中。其强大的功能和灵活的查询语言使得开发人员能够高效地执行各种数据操作和分析。 然而,在处理大量数据或复杂查询时,一些开发人员可能…

Linux网卡:连接虚拟与现实的桥梁

在介绍Linux网卡之前,让我们先迈入时光机🕰️,回到1980年代末期,互联网正在逐步从一个科研网络向公众网络转变,Linux——一个自由和开源的操作系统诞生了🐧。Linux的出现,对于计算机科学领域来说…

非线性滤波相位解缠算法

相位解缠是InSAR数据处理流程中较为关键的步骤,同时也是地表高程模型重建 过程中的主要误差来源之一。迄今为止,针对干涉图的相位解缠问题,已经提出了各 种各样的相位解缠算法,这些算法大致可以分为以下几类:①路径跟踪…

DSP笔记13-时间基准子模块Time base(TB)比较子模块Counter cpmpare(CC)

时间基准子模块Time base(TB) 同步,计数 CTR计数寄存器 PRD周期寄存器 CMP比较寄存器,占空比 EPWMA, EPWMB,两个比较寄存器,但只有以及计数寄存器以及一个周期寄存器 计数模式 计数时钟TBCLK HSPCLKDIVx x0,分…

《QT实用小工具·二十三》 Ntp校时类

1、概述 源码放在文章末尾 该项目实现了 Ntp校时类 ,包含如下功能: 可设置Ntp服务器IP地址。 推荐用默认的阿里云时间服务器 ntp1.aliyun.com 收到时间信号发出。 时间精确到秒。 下面是demo演示: 项目部分代码如下: #if…

在线视频下载工具lux(原annie)安装及使用教程

安装教程 下载ffmpeg,参考这篇文章:Python——Windows下载ffmpeg由于博主的系统为windows,所以选择不安装lux,直接下载.exe文件,进入lux的github网站后,选择右侧的Releases,下载下图的windows …

SpringBoot删除菜品模块开发(SpringMVC分割参数、事务管理、异常处理、批量删除)

需求分析与设计 一:产品原型 在菜品列表页面,每个菜品后面对应的操作分别为修改、删除、停售,可通过删除功能完成对菜品及相关的数据进行删除。 删除菜品原型: 业务规则: 可以一次删除一个菜品,也可以批…

【proteus仿真】定时器0中断实验

#include <REGX51.H> sbit LED1P2^0; void delay(unsigned int ten_s) {while(ten_s--); } void inittime0(void) {TMOD0x01;//选择为定时器0模式&#xff0c;工作方式1TH00xFC;//初值65536-100064536FC18H,定时1msTL00x18;ET01;//打开定时器0中断允许EA1;//打开总中断TR…

InternLM2 技术报告——社区翻译版

InternLM2技术报告于近日正式对外发布&#xff0c;不少社区大佬自发地参与到报告的翻译与解读中来。本文为社区用户翻译的InternLM2技术报告原文&#xff0c;分享给大家~ 论文地址&#xff1a; https://arxiv.org/pdf/2403.17297.pdf 摘要 大型语言模型&#xff08;LLMs&…

Java基础常见面试总结

文章目录 1. 变量、数据类型转换、运算符1.1 变量1.2 数据类型转换1.2.1强转的注意事项 1.3 进制的转换1.4 位运算符1.5 运算符1.6 三元运算符 2. 流程控制2.1 键盘录入_Scanner2.2 Random随机数2.3 switch(选择语句)2.4 分支语句2.5 循环语句 3. 数组3.1 数组的定义3.2 数组操…

证件照小于30kb怎么弄?这个工具三步搞定

当我们需要将照片上传到各种平台时&#xff0c;常常会遇到图片文件大小限制的问题。无论是社交媒体平台还是工作需求&#xff0c;如果照片文件过大&#xff0c;系统会提示上传失败或无法上传。想要解决的这个问题&#xff0c;可以选择将图片压缩指定大小&#xff0c;比如图片压…

蓝桥杯-求阶乘

问题描述 满足 N!的末尾恰好有 区 个o的最小的 N 是多少? 如果这样的 N 不存在输出 -1。 输入格式 一个整数 区。 输出格式 一个整数代表答案。 样例输入 样例输出 10 评测用例规模与约定 对于 30% 的数据,1<K<106 对于 100% 的数据,1<K<1018 运行限制 最大运行时…

【Git教程】(九)版本标签 —— 创建、查看标签,标签的散列值,将标签添加到日志输出中,判断标签是否包含特定的提交 ~

Git教程 版本标签&#xff08;tag&#xff09; 1️⃣ 创建标签2️⃣ 查看存在的标签3️⃣ 标签的散列值4️⃣ 将标签添加到日志输出中5️⃣ 判断tag是否包含特定的提交&#x1f33e; 总结 大多数项目都是用 1.7.3.2和 “ gingerbread” 这样的数字或名称来标识软件版本的。在 …

数字图像处理与交叉学科中名词的拧巴

特征提取 图像处理——对图像、目标或特征点进行定量描述的方法及过程。 模式识别——对原特征进行特征变换&#xff0c;从高维空间到低维空间映射。 特征向量 模式识别、图像处理——一个观测包括多个变量&#xff0c;样本的多个特征组成特征向量。 线性代数——特征值对应的…

[闲聊统计]之参数估计是什么?(下)

我们在前面说了一下参数估计中的点估计&#xff0c;接下来&#xff0c;我们来讲一下区间估计。 区间估计——在点估计的基础上&#xff0c;给出总体参数估计的一个估计区间&#xff0c;该区间由样本统计量加减估计误差而得到。 置信水平——如果将构造置信区间的步骤重复多次&a…

javaWeb新闻发布及管理系统

摘 要 随着电脑、智能手机等能够连接网络设备的家庭化和大众化&#xff0c;各种网站开始被设计和开发出来&#xff0c;功能多种多样&#xff0c;涉及的领域也各有不同&#xff0c;生活、商业、科技等等。而信息的发布是网络的一大特点&#xff0c;人们上网的主要需求就是汲取自…

中高级前端需要掌握哪些Vue底层原理

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

javase_进阶 day10 集合2

泛型介绍 JDK5引入的, 可以在编译阶段约束操作的数据类型, 并进行检查注意 : 泛型默认的类型是Object 泛型的好处 统一数据类型&#xff0c;将运行期的错误提升到了编译期统一数据类型 常见的泛型标识符 : E V K T E : Element T : Type K : Key(键) V : Value(值)总结&am…

基于SSM+Jsp+Mysql的二手车交易网站

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

《高通量测序技术》分享,生物信息学生信流程的性能验证,以肿瘤NGS基因检测为例。

这是这本书&#xff0c;第四章第五节的内容&#xff0c;这一部分是以NGS检测肿瘤基因突变为例&#xff0c;描述了其原理和大概流程&#xff0c;这和以前我分享的病原宏基因组高通量测序性能确认方案可以互相补充&#xff0c;大家可以都看一下&#xff0c;但是想要真正的弄懂&am…