找回密码
 立即注册
查看: 56|回复: 8

15F2K60S2,IAP_CONTR = 0x60; //软件复位,系统重新从ISP代码区开始运行程序 这个

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-04-29 08:53:52
已绑定手机

8

主题

47

回帖

144

积分

注册会员

积分
144
发表于 4 天前 | 显示全部楼层 |阅读模式

/**
* @brief 软件复位,系统重新从用户程序区开始运行程序
* @details 使用IAP功能复位
*/
void ResetToAPP(void)
{
    IAP_CONTR = 0x20; //软件复位,系统重新从用户程序区开始运行程序   
}

/**
* @brief 软件复位,系统重新从ISP代码区开始运行程序
* @details 使用IAP功能复位
*/
void ResetToISP(void)
{   
    IAP_CONTR = 0x60; //软件复位,系统重新从ISP代码区开始运行程序
}


上面两个设置,对于单片机效果差不多
IAP_CONTR = 0x60; //软件复位,系统重新从ISP代码区开始运行程序
这个要如何触发升级??


截图202504271141439621.jpg
截图202504271141543032.jpg
截图202504271142088443.jpg
回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 4 天前 | 显示全部楼层
关于您提到的代码片段,这里涉及到的是通过IAP(In-Application Programming)功能实现软件复位的操作。以下是对该代码的详细解析:

代码解析
  1. c
  2. void ResetToAPP(void)
  3. {
  4.     IAPCONTR = 0x20; //软件复位,系统重新从用户程序区开始运行程序
  5. }
复制代码

1. IAPCONTR寄存器:
IAPCONTR是一个控制寄存器,用于管理IAP操作和系统复位。通过设置该寄存器的特定值,可以实现不同的功能,如软件复位、进入ISP模式等。

2. 0x20的含义:
将IAPCONTR寄存器设置为0x20,表示执行软件复位操作,并且系统会从用户程序区(APP区)重新开始运行程序。具体来说,0x20的二进制表示为00100000,其中某些位用于控制复位的类型和目标区域。

3. 软件复位的作用:
软件复位是一种通过软件指令触发的复位操作,通常用于在程序运行过程中需要重新初始化系统或跳转到特定代码区域时使用。与硬件复位不同,软件复位不会影响硬件状态,仅重新启动程序执行。

应用场景
程序跳转:在某些嵌入式系统中,可能需要从ISP(In-System Programming)代码区跳转到用户程序区,此时可以通过设置IAPCONTR寄存器实现。
系统恢复:当系统出现异常或需要重新初始化时,可以通过软件复位快速恢复系统运行。

注意事项
寄存器配置:在使用IAPCONTR寄存器时,需确保配置正确,以避免意外进入ISP模式或其他非预期状态。
代码兼容性:不同型号的微控制器可能对IAPCONTR寄存器的定义和使用方式有所不同,因此在移植代码时需仔细查阅相关文档。

总结
通过设置IAPCONTR寄存器为0x20,可以实现软件复位并从用户程序区重新开始运行程序。这一操作在嵌入式系统开发中具有重要的应用价值,特别是在需要动态切换代码区域或恢复系统运行时。

希望以上解析对您有所帮助。如有进一步问题,欢迎继续探讨。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:297
  • 最近打卡:2025-05-01 06:53:32
已绑定手机

4

主题

339

回帖

1558

积分

金牌会员

积分
1558
发表于 4 天前 | 显示全部楼层
不一样啊,一个重启直接运行编写的程序,一个要重启后要先检查有没有要升级的程序,没有才会运行程序。一个要做检查,一个直接跳过检查
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-04-29 08:53:52
已绑定手机

8

主题

47

回帖

144

积分

注册会员

积分
144
发表于 4 天前 | 显示全部楼层
haiya*** 发表于 2025-4-27 12:13
不一样啊,一个重启直接运行编写的程序,一个要重启后要先检查有没有要升级的程序,没有才会运行程序。一个 ...

1、主单片机让从单片机,跳转到ISP;
2、主单片机下一步做什么??是仿照手册,执行下面的信息??

第17章 利用主控芯片对从芯片(限STC15系列)进行ISP下载
//对STC15系列的芯片进行数据下载程序
BOOL Download(BYTE *pdat, long size)

点评

主从下载的方式参考这个例子: https://www.stcaimcu.com/thread-17267-1-1.html  详情 回复 发表于 4 天前
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:162
  • 最近打卡:2025-05-01 06:56:44
已绑定手机

56

主题

1319

回帖

2938

积分

荣誉版主

无情的代码机器

积分
2938
发表于 4 天前 | 显示全部楼层
实现在线升级可参考官网例程

截图202504271318051745.jpg
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-04-29 08:53:52
已绑定手机

8

主题

47

回帖

144

积分

注册会员

积分
144
发表于 4 天前 | 显示全部楼层
haiya*** 发表于 2025-4-27 12:13
不一样啊,一个重启直接运行编写的程序,一个要重启后要先检查有没有要升级的程序,没有才会运行程序。一个 ...

这个检查是在多长时间内进行检查,检查串口信息??

点评

对,ISP软件先点下载,再IAP_CONTR = 0x60;就可以不断电下载了  详情 回复 发表于 4 天前
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:162
  • 最近打卡:2025-05-01 06:56:44
已绑定手机

56

主题

1319

回帖

2938

积分

荣誉版主

无情的代码机器

积分
2938
发表于 4 天前 | 显示全部楼层
王*** 发表于 2025-4-27 13:17
1、主单片机让从单片机,跳转到ISP;
2、主单片机下一步做什么??是仿照手册,执行下面的信息??

主从下载的方式参考这个例子:
https://www.stcaimcu.com/thread-17267-1-1.html
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 4 天前 | 显示全部楼层
王*** 发表于 2025-4-27 13:18
这个检查是在多长时间内进行检查,检查串口信息??

对,ISP软件先点下载,再IAP_CONTR = 0x60;就可以不断电下载了
可以配合收到用户命令后复位到ISP监控程序区实现不断电下载

截图202504271409074381.jpg


DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-04-29 08:53:52
已绑定手机

8

主题

47

回帖

144

积分

注册会员

积分
144
发表于 前天 08:53 | 显示全部楼层
Debu*** 发表于 2025-4-27 14:08
对,ISP软件先点下载,再IAP_CONTR = 0x60;就可以不断电下载了
可以配合收到用户命令后复位到ISP监控程序 ...

好的收到
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 20:54 , Processed in 0.127085 second(s), 106 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表