什么ISP?什么是IAP?

做单片机开发的工程师经常会听到两个词:ISP和IAP,但新手往往对这两个概念不是很清楚,今天就来和大家聊聊什么是ISP,什么是IAP?

一、ISP

ISP的全称是:In System Programming,即在系统编程,该操作是通过MCU厂商出厂BootLoader来实现,通过ISP可以对主flash区域进行擦除、编程操作,还可以修改芯片的选项字节等。我们来看下GD32F30x用户手册中引导模式:

通过BOOT引脚可以让MCU有不同的引导模式,其中将BOOT0接高,BOOT1接低,此时上电后,MCU跑的是引导装载程序,该程序就是GD公司MCU出厂固化的BootLoader。简单而言就是,在这个模式下,MCU是在跑一段程序的,这个程序可以让你通过MCU上的一些固定接口如串口、USB等来实现对主flash区域等的操作,而通过这个程序进行主flash的烧写过程就是ISP。一般而言,ISP都需要一些上位机来配合操作,GD官方的是All-in-one工具:

二、IAP

IAP的全称是:In Applicatin Programming,即在应用编程,该操作需要工程师自己写BootLoader来实现。IAP需要两段程序:一段在主flash最开始的地方,为用户BootLoader;

另一段在主flash中的其他区域,为APP,比如保存在0x08008000地址的程序:

当MCU刚上电时,会执行用户BootLoader程序(需要注意:这里需要选择将BOOT0接低,也就是让从主flash中启动),工程师需要在用户BootLoader中实现接收数据并对非本程序所在地址flash区域编程的功能,这样用户将APP的bin文件发给用户BootLoader程序,BootLoader程序将APP的数据写到特定的地址中,比如0x08008000开始的地址,这样就实现了通过用户BootLoader烧录APP的功能。烧录完成后,用户BootLoader程序中需要实现一个跳转指令,让程序直接跳到APP中,这样崭新的APP程序就跑起来啦。上面这一整个流程,就叫做IAP。

好了,现在小伙伴们知道什么是ISP,什么是IAP了吗?还有不懂的,欢迎评论区留言哦,悄悄说一句,我们有GD各系列的用户BootLoader Demo程序哦。

更多GD32 MCU相关咨询:https://www.gd32bbs.com/

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

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

相关文章

如何申请抖音本地生活服务商?3种方式优劣势分析!

随着多家互联网大厂在本地生活板块的布局力度不断加大,以抖音为代表的头部互联网平台的本地生活服务商成为了创业赛道中的大热门,与抖音本地生活服务商怎么申请等相关的帖子,更是多次登顶创业者社群的话题榜单。 就目前的市场情况来看&#x…

Go语言--广播式并发聊天服务器

实现功能 每个客户端上线,服务端可以向其他客户端广播上线信息;发送的消息可以广播给其他在线的客户支持改名支持客户端主动退出支持通过who查找当前在线的用户超时退出 流程 变量 用户结构体 保存用户的管道,用户名以及网络地址信息 typ…

ARM功耗管理之功耗数据与功耗收益评估

安全之安全(security)博客目录导读 思考:功耗数据如何测试?功耗曲线?功耗收益评估? UPF的全称是Unified Power Format,其作用是把功耗设计意图(power intent)传递给EDA工具, 从而帮…

Codeforces Round 958 (Div. 2)补题

文章目录 A题 (拆分多集)B题(获得多数票)C题(固定 OR 的递增序列) A题 (拆分多集) 本题在赛时卡的时间比较久,把这题想复杂了,导致WA了两次。后来看明白之后就是将n每次转换成k-1个1,到最后分不出来k-1个1直接一次就能…

Hive的基本操作(查询)

1、基础查询 基本语法 select 字段列表|表达式|子查询 from 表(子查询|视图|临时表|普通表) where [not] 条件A and|or 条件B --先:面向原始行进行筛选 group by 字段A[,字段B,...] > 分组【去重处理】 having 聚合条件(非原始字段条件) --再&#x…

JMeter案例分享:通过数据验证的错误,说说CSV数据文件设置中的线程共享模式

前言 用过JMeter参数化的小伙伴,想必对CSV Data Set Config非常熟悉。大家平时更关注变量名称,是否忽略首行等参数,其余的一般都使用默认值。然而我最近遇到一个未按照我的预想读取数据的案例,原因就出在最后一个参数“线程共享模…

深度学习中激活函数的演变与应用:一个综述

摘要 本文全面回顾了深度学习中激活函数的发展历程,从早期的Sigmoid和Tanh函数,到广泛应用的ReLU系列,再到近期提出的Swish、Mish和GeLU等新型激活函数。深入分析了各类激活函数的数学表达、特点优势、局限性以及在典型模型中的应用情况。通过系统的对比分析,本文探讨了激…

详解MySQL中的递归查询

MySQL中的递归查询主要通过WITH RECURSIVE语句来实现,这在处理具有层级关系或树形结构的数据时非常有用。下面将通过一个具体的例子来详细解释如何在MySQL中使用递归查询。 示例场景 假设我们有一个部门表(departments),其中包含…

老板新招的牛人,竟然用1天搭建了一套完整的仓库管理系统!

仓储管理系统是什么? 仓储管理系统(WMS)是一个全面的软件解决方案,旨在帮助企业优化仓库管理流程、管理和控制日常仓库运营。通过数学模型和信息手段,对仓库管理的各个环节进行优化和调控,涵盖了从货物入库…

使用网关和Spring Security进行认证和授权

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

怎么录制视频?电脑录制,试试这3种方法

在数字化快速发展的时代,视频已经成为我们传递信息、分享生活、表达情感的重要载体。每一个人都希望自己能够掌握视频录制技巧,轻松驾驭影像的力量,创造出属于自己的视觉盛宴。 那么,怎么录制视频呢?首先选择一款好用…

《信息与电脑(理论版)》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问:《信息与电脑(理论版)》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《信息与电脑(理论版)》级别? 答:省级。主管单位:北京电子控股有限责任公司 主办…

实践致知第16享:设置Word中某一页横着的效果及操作

一、背景需求 小姑电话说:现在有个word文档,里面有个表格太长(如下图所示),希望这一个设置成横的,其余页还是保持竖的! 二、解决方案 1、将鼠标放置在该页的最前面闪烁,然后选择“页面”》“↘…

【Stable Diffusion】(基础篇三)—— 图生图基础

图生图基础 本系列笔记主要参考B站nenly同学的视频教程,传送门:B站第一套系统的AI绘画课!零基础学会Stable Diffusion,这绝对是你看过的最容易上手的AI绘画教程 | SD WebUI 保姆级攻略_哔哩哔哩_bilibili 本文主要讲解如何使用S…

K8s集群初始化遇到的问题

kubectl describe pod coredns-545d6fc579-s9g5s -n kube-system 找到原因1:CoreDNS Pod 处于 Pending 状态的原因是集群中的节点都带有 node.kubernetes.io/not-ready 污点 journalctl -u kubelet -f 14:57:59.178592 3553 remote_image.go:114] "PullIma…

pear-admin-fast项目修改为集成PostgreSQL启动

全局搜索代码中的sysdate(),修改为now() 【前者是mysql特有的,后者是postgre特有的】修改application-dev.yml中的数据库url使用DBeaver把mysql中的数据库表导出csv,再从postgre中导入csv脚本转换后出现了bpchar(xx)类型,那么一定…

python数据可视化(6)——绘制散点图

课程学习来源:b站up:【蚂蚁学python】 【课程链接:【【数据可视化】Python数据图表可视化入门到实战】】 【课程资料链接:【链接】】 Python绘制散点图查看BMI与保险费的关系 散点图: 用两组数据构成多个坐标点,考察…

如何降低老年人患帕金森病的风险?

降低老年人患帕金森病风险的方法 避免接触有害物质:长期接触某些化学物质、农药或其他有害物质可能会增加患帕金森病的风险。应减少这些物质的暴露,例如在工作或生活中采取防护措施。 健康饮食:均衡饮食,多吃富含抗氧化剂的食物&a…

做了一个万能搜索框

最近给网页做了一个搜索框,现在搜索比以前更加方便了,下面简单介绍一下如何使用 我们进入网页版(app.zyjj.cc)点击右上角的搜索就可以看到这个新版的搜索框了 目前支持中文、拼音、首字母等多种搜索方式,大家可以随意…

【Linux】常见指令(下)

【Linux】常见指令(下) 通配符 *man指令cp指令echo指令cat指令(简单介绍)cp指令 mv指令alias指令which ctrl ccat指令linux下一切皆文件 more指令less指令head指令tail指令管道 通配符 ‘*’ 通配符’ *‘,是可以匹配…