9783|45

66

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

香主,关于如何实现IAP功能的若干疑问。。。 [复制链接]

                                  
此帖出自stm32/stm8论坛

最新回复

                                 剩下的就是组织如何实现IAP了。。。   详情 回复 发表于 2008-8-1 11:18
点赞 关注
 

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

用户无法写入System Memory,只能写User Flash

                                 System Memory只能在ST的工厂中写入。
此帖出自stm32/stm8论坛
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

那我的意思可能是表达错了

                                 那用于实现IAP的8K空间叫什么?
此帖出自stm32/stm8论坛
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

4
 

实现IAP的空间就是User Flash的开始部分

                                 是否能用IAR在线调试与是否有IAP程序无关。
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(中级)

5
 

STM32实现ISP功能的代码确实应该在SystemMemory中吧

                                 可能就像以前的LPC芯片一样,一些控制SystemMemory的寄存器没有公开吧
此帖出自stm32/stm8论坛
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(初级)

6
 

那么IAP Driver代码是怎么烧写到User Flash的开始部分的呢?

                                 另外系统复位后怎么控制系统运行IAP Driver还是用户应用程序呢?
此帖出自stm32/stm8论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

7
 

在AN2606中

第1页的introduction中写道:
The bootloader is used to program the application into the internal Flash memory.
那么这句话怎么解释呢?好像它说的意思跟香主说的不一样吧?
此帖出自stm32/stm8论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

8
 

看启动设置的呀,boot0和boot1选择从哪启动

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 

00终于来了

                                 启动设置我倒是看过几遍了,X0从User Flash memory启动,01从System memory启动,但上面贴子香主说System memory只能是ST在生产时候控制的,那么IAP功能到底是哪部分代码实现的呢?
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

10
 

IAP是个总称

比如USB DFU是IAP的一种,同样,你也可以自己写段代码,从串口接收数据然后更新内部flash,这同样也是IAP。

至于芯片上电后是执行IAP还是用户代码,有很多种方法区分,比如从USB传下一个命令,或者按下某个按键,或者拉低某个外部中断引脚,就可以进行切换。
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

11
 

楼主混淆了IAP和ISP,这是两个不同的概念

ISP = In system programming
IAP = In applicatoin programming

ISP是通过System Memory中的Bootloader烧写User Flash区域,而IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写。

请注意ISP执行的是System Memory中的程序,而IAP执行的是用户自己的程序,既然是自己的程序,它肯定是在User Flash中,因此IAP程序不可能对自己所在的区域进行烧写,只能操作其它的区域。

既然IAP是用户自己写的程序,你可以根据需要安排通过各种不同的通讯手段获取需要烧写的数据,可以是UART,也可以是USB,还可以是I2C或任何通道。
此帖出自stm32/stm8论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

12
 

香主的意思是,实现IAP功能的这些代码,是在生产芯片时就

                                 用户不能再去改动它们了。但是用户有权利去选择它是否被执行,那就是通过boot0、1来设置。
此帖出自stm32/stm8论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

13
 

这下彻底明白ISP和IAP的区别了

                                 现在可以很明确我的目的就是IAP,目前我知道的情况是IAP的代码占用用户Flash的前8K,剩余的是用户应用,那么IAP代码究竟是不是和用户应用一起运行呢?如果不是的话又是怎么把IAP代码专门烧写到用户Flash的前8K呢?
此帖出自stm32/stm8论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

14
 

我在11楼已经说了,IAP是用户自己写的放在用户Flash区

IAP程序是在生产产品时由用户自己写到Flash中的。

ISP程序才是生产芯片时就固定了的,只能通过Boot0、1选择是否被执行。
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

15
 

我晕,00和香主说的意思大相径庭。。。

                                 00你到底实现了IAP没有?
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

16
 

我的观点跟香主的不大一样,嘿嘿……

其实香主所说的STM32的ISP,应该也算IAP,因为是由程序去控制下载的。
而像89S52那样的,应该是直接由SPI口控制操作FLASH的,里面并没有程序
在运行。不过分清这两个也没啥大意义。

对于在用户Flash中的IAP程序,也是可以有办法对自己自升级的:那就是
先把自己搬迁到RAM中去运行,然后再对FLASH进行操作,事实上这样更安全
一些。

至于楼主所说的bootloader,应该就是一个运行在用户FLASH中的IAP程序,
可以通过某些IO口、或者串口命令来判断是运行用户程序还是下载程序。
此帖出自stm32/stm8论坛
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

17
 

如果这样说,圈圈的理解是正确的,只不过我们用了不同的

                                 使用什么名字不重要,重要的是如何实现需要的功能。
此帖出自stm32/stm8论坛
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

18
 

那么放在User Flash前8K的IAP代码究竟是怎么

                                 实现对其余用户flash写操作的呢?既然IAP代码和用户应用都放在FLASH里面,那么难道他们是分开运行的么?我的产品里现在有需求必须实现IAP,但是对它的机制还是不明白,从前面的讨论里已经了解了很多了,但对其详细机制还是没搞明白。头疼。
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

19
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

20
 

ST网站上给的例子

                                 是往8K以外的用户FLASH写一个image
此帖出自stm32/stm8论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表