IAR 使用笔记(IAR BIN大小为0异常解决)

烧写

由于芯片的内部SPI FLASH的0级BOOT 程序起到到开启JTAG SW 仿真功能,一旦内部SPI FLASH存储的BL0启动代码被损坏,芯片的JTAG 将不能被连接。所以对BL0的烧写需要谨慎,烧写BL0过程保证芯片不断电。
如果烧写了多备份的启动代码(该代码不能进行内部SPI FLASH的烧写功能),更新FLASH内容需要使用非多份的启动代码进行FLASH烧写。
打开工程 点击,download and debug 按钮,然后立即上电或复位设备。

在这里插入图片描述

下载完成后状态

在这里插入图片描述
保证USB 升级接口正常连接电脑,让后点击Go 按钮
在这里插入图片描述

库文件生成

参考

屏蔽不用生成库的文件

在这里插入图片描述

删除不用生成库的文件

把要生成的.C保留,调用的.C 去除。比如main.C 去掉
在这里插入图片描述

生成库

在 Debug /Exe下
在这里插入图片描述

恢复到正常模式在设置中选择

在这里插入图片描述

使用LIB修改linker 设置

建议使用相对路径 P R O J D I R PROJ_DIR PROJDIR
在这里插入图片描述

在这里插入图片描述

设定程序运行地址

在这里插入图片描述

在这里插入图片描述

关于启动的起始位置(否则编译后BIN可能为空)使用报错

使用出现问题

在这里插入图片描述

正确处理

设置程序启动在指定位置。
在这里插入图片描述

错误处理取消沟通选(指标不治本,会发现main 不能打断点):

在这里插入图片描述

IAR官方有这样的介绍
Introduction
The application consists of two IAR Embedded Workbench projects, where the 1st project is linking the 2nd application as a binary image.

Issue
The startup code of the 2nd application is also included in the binary image. The issue is to reduce the size of the linked output. Only the startup code of the main project is needed, as it is in the 1st application execution starts.

我认为大概意思是对应第二部分程序,不需要启动代码可以不选择 entry symbol

部分程序可能需要启动初始化过程可能设置为No entry symbol ,正常jtag 调试需要设置entry symbol 。

不同情况可能需要修改,调试可能报错

在这里插入图片描述

宏定义

在这里插入图片描述

编译后处理在这里插入图片描述

root 关键字

原文连接

定义:#define PAGE_ADDRESS 0x6000

      __root   __code   const unsigned char IEEE_ADDRESS[8] @ PAGE_ADDRESS = {  'i','e','e','e','b','u','f',0};

__root 是IAR的扩展关键字,强制编译,保证没有使用的函数或者变量也能够包含在目标代码中

__code数据存储在code(程序区),对应的date为数据区

@的强制定义了数据的存储地址

上面的定义实际就是把IEEE_ADDRESS的数据强制写入到0x6000中。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

WebRTC直播间搭建记录

考虑到后续增加平台直播的可能性,笔记记录一下WebRTC相关. 让我们分别分析两种情况下的WebRTC连接建立过程: 情况一:AB之间可以直接通信 1.信令交换: 设备A和设备B首先通过信令服务器交换SDP(Session Description Pr…

【数据结构(七)】二叉树

❣博主主页: 33的博客❣ ▶文章专栏分类: Java从入门到精通◀ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你学更多数据结构的知识 目录 1.前言2.树形结构2.1树的概念2.2常见概念2.3树的表示形式 3.二叉树3.1概念3…

嵌入式学习55-ARM4(ADC和I²C)

1、什么是ADC,模拟量和数字量有什么特点? ADC: …

每日两题 / 15. 三数之和 73. 矩阵置零(LeetCode热题100)

15. 三数之和 - 力扣(LeetCode) 先确定一个数t,对于剩下的两个数,要求两数之和为t的负数 三数之和就退化成了两数之和,两数之和可以用双指针 先排序,左右两个指针,指向的数之和大于目标值&…

鸿蒙入门02-首次安装和配置

注:还没有安装编辑器( deveco studio )的小伙伴请看鸿蒙入门01-下载和安装-CSDN博客 首次安装配置 编辑器( deveco studio )安装完毕以后需要进入配置界面进行相关配置配置完毕以后才可以正常使用 环境配置&#xf…

Unity 左右折叠显示与隐藏UI的简单实现

要实现一个简单的UI左右折叠显示与隐藏,可以结合遮罩,通过代码控制UI区块的宽度和位移来实现。 具体可以按以下步骤实现: 1、新建一个Image组件,并添加精灵,调整大小后,复制一份作为该UI的父物体&#xf…

顺序表(快速上手数据结构)

在介绍ArrayList之前, 我们需要先了解List. List是一个接口,它继承于Collection接口(Collection又继承于最顶层的接口Iterable). 从数据结构的角度来看,List就是一个线性表(Linear List),即n个具有相同类型元素的有限序列, 在该序列上可以执行增删查改等操作. 注意: List是一…

Golang面试题四(GMP)

目录 1.Goroutine 定义 2.GMP 指的是什么 3.GMP模型的简介 全局队列(Global Queue) P的本地队列 P列表 M列表 4.有关P和M的个数问题 P的数量问题 M的数量问题 P和M何时会被创建 5.调度器P的设计策略 复⽤线程 work stealing机制 hand off…

【linux】mobaterm如何kill pycharm进程

【linux】mobaterm如何kill pycharm进程 【先赞后看养成习惯】求点赞关注收藏😀 使用云服务器时,pycharm在打开状态下,不小心关了mobaxterm,然后再输入pycharm.sh就会打不开pycharm,显示已经打开报错:Com…

PyQt程序:实现新版本的自动更新检测及下载(FTP服务器实现)

一、实现逻辑 本实例采用相对简单的逻辑实现,用户在客户端使用软件时点击“检测升级”按钮,连接至FTP服务器检索是否有新版本的.exe,如果有,下载最新的.exe安装升级。 本实例服务端待下载.exe所在目录结构 本实例客户端待更新.exe所在目录结构 二、搭建服务器 可以参考…

openkylin系统通过网线连接ubuntukylin系统上网攻略

openkylin系统通过网线连接ubuntukylin系统上网攻略 主机1:x64 amd ,系统:ubuntukylin 22.04 ,状态:通过wifi连接热点进行上网,并共享网络。 主机2:x64 intel ,系统:ope…

Elasticsearch:下载、启动和账号密码登录

因为我的电脑是 window,以下都是以 window 环境举例。 一、下载 Elasticsearch 是使用 java 开发的,且 7.8 版本的 ES 需要 JDK 版本 1.8 以上,安装前注意java环境的准备。 官网地址:https://www.elastic.co/cn/ 下载地址&#xf…

WebStorm2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 WebStorm是一款由JetBrains公司开发的强大的集成开发环境(IDE),专门用于前端开发。它提供了丰富的功能和工具,包括代码编辑器、调试器、版本控制集成等,使开发人员能够更…

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀)

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀) 文章目录 CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀)前端验证—MIME绕过有关MIMEMIME的作用 解题时有…

SpringBoot使用xxl-job分布式任务调度平台定时检测RabbitMQ的消息队列自动发出钉钉警告消息

文章目录 SpringBoot使用xxl-job分布式任务调度平台定时检测RabbitMQ的消息队列自动发出钉钉警告消息1、在pom.xml中导入xxl-job的maven依赖,可以看我这篇文章使用抽离出来的xxl-job的starter2、配置xxl-job的相关配置,若上一步使用了自己创建的starter则…

【python】flask操作数据库工具SQLAlchemy,详细用法和应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

操作系统—实现可变式分区分配算法

文章目录 实现可变式分区分配算法1.实验环境2.如何在xv6中实现分区分配算法?(1).xv6的内存管理机制(2).实现思路 3.最佳适应算法(1).基本思路(2).步骤(3).测试&Debug 总结参考资料 实现可变式分区分配算法 1.实验环境 因为这一次的实验仍然是在xv6中进行&#…

Adobe AE(After Effects)2021下载地址及安装教程

Adobe After Effects是一款专业级别的视觉效果和动态图形处理软件,由Adobe Systems开发。它被广泛用于电影、电视节目、广告和其他多媒体项目的制作。 After Effects提供了强大的合成和特效功能,可以让用户创建出令人惊艳的动态图形和视觉效果。用户可以…

vue的就地更新与v-for的key属性

vue的就地更新 Vue中的就地更新到底是怎么回事,为什么会存在就地更新的现象? 注意下面的例子,使用v-for指令时,没有绑定key值,才有就地更新的现象,因为Vue默认按照就地更新的策略来更新v-for渲染的元素列表…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于用户生产场景辨识的电压暂降经济损失评估》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…