打印
[MCU]

【高分悬赏讨论】如何判断单片机是否具有IAP的功能?

[复制链接]
2364|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xyz549040622|  楼主 | 2015-2-20 09:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xyz549040622 于 2015-2-20 09:11 编辑

在网上找到一段话,说出来单片机实行IAP功能的几种方法,如下:
  •   具备在应用中编程IAP功能的单片机,其程序存储器必须是可以重复烧写编程的版本(比如FLASH)。可以用于具备远程遥控软件版本升级或者参数修改的产品项目之中(比如远程抄表、用户端电话计费等系统的远程费率参数和算法程序修改);也可以应用于具备自编程功能(免用微机和烧写器)的单片机学习机、单片机单板机、实验板、演示板、教学模块等各种学习和实验工具之中。对于处在同一个存储器空间的FLASH程序存储器,不能同时扮演“被烧写存储器”和“取指令存储器”的双重角色。为了解决这个矛盾,不同厂家的单片机采用了不同的解决方案,比如:
      ①  可以将FLASH程序存储器分成地址有映射关系的两个区,分别由各自的电荷泵提供烧写电压。当烧写一个区时,该区的电荷泵工作,同时执行存放在另一个区的指令。例如,SST(Silicon Storage Technology)公司利用他的SuperFlash技术研制的FlashFlex51单片机系列,各个型号片内分别带有20KB、36KB或68KB可多次编程的程序存储器。该存储器又分为主存储区和次存储区。各个型号的主存储区分别为16KB、32KB或64KB,次存储区则统一为4KB。
      ②  可以将单片机的程序存储器地址空间分为ROM区和FLASH区,ROM区在出厂之前就已经固化有烧写专用程序,FLASH区作用户程序存放区,这样一来,即使在烧写FLASH的同时,也不会影响对于ROM中程序的执行。MOTOROLA公司推出的MC68HC908系列单片机中采用的就是这种解决方案。
      ③  PIC16F87X系列单片机中,采用了不同的解决方案。FLASH程序存储器并不分区,在对其进行烧写并且电源自动切换到电荷泵供电时,CPU自动停顿而等待。在一个单元烧写操作完毕,FLASH工作电压自动切换到正常值时,CPU才继续执行FLASH中的烧写专用程序或用户程序。
      ④  在数据存储器RAM和程序存储器FLASH两种存储器统一编址的单片机中,还可以采用的另一种方案是,在准备修改FLASH区中的用户程序之前,先把烧写专用程序拷贝到RAM区,然后跳转到RAM区去执行该程序,实现对FLASH程序存储器的烧写操作。在烧写完成之后再跳回到FLASH存储器执行正常的用户程序。微芯公司新近推出的高性能PIC18C601/801单片机采用的就是这种解决方案。MOTOROLA公司推出的MC68HC908系列单片机的某些型号,也可以采用这种解决方案。
  •     现在的问题是,我有一款MCU,没有说明他支持IAP的功能,可是他满足有1作引导程序区(bootloader),2作运行程序区(flash),3作下载区(eeprom,flash也可以分区),那么他是否可以支持IAP功能呢?




相关帖子

沙发
xuyaqi| | 2015-2-20 15:20 | 只看该作者
这个好像只能看说明书才能知道

使用特权

评论回复
板凳
b620126| | 2015-2-21 12:23 | 只看该作者
只要可以运行时编程 FLASH 就可以IAP

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
xyz549040622 + 2
地板
xyz549040622|  楼主 | 2015-2-21 14:31 | 只看该作者
b620126 发表于 2015-2-21 12:23
只要可以运行时编程 FLASH 就可以IAP

这句话说得比较贴切,在运行的时候把程序下载到flash中,那么如何覆盖原来的程序呢?

使用特权

评论回复
5
dong_abc| | 2015-2-21 17:11 | 只看该作者
先放在ram中,较验正确了再写到flash

使用特权

评论回复
6
autopccopy| | 2015-2-21 22:49 | 只看该作者
看数据手册即可。如无数据手册,不使用也罢。另:编程可写Flash不代表一定可iap!

使用特权

评论回复
7
xyz549040622|  楼主 | 2015-2-22 09:53 | 只看该作者
autopccopy 发表于 2015-2-21 22:49
看数据手册即可。如无数据手册,不使用也罢。另:编程可写Flash不代表一定可iap! ...

主要的疑惑是,STM32的手册中也没给IAP的功能。编程可写Flash不代表一定可iap!那么可以IAP的充分条件是什么呢?

使用特权

评论回复
8
NE5532| | 2015-2-24 21:54 | 只看该作者
只要可以写Flash,就可以IAP啊,程序和数据的本质都是HEX数据。

使用特权

评论回复
9
m564522634| | 2015-2-26 11:45 | 只看该作者
1,可以进程序存储区进行操作
2,有中断向量表
有这两点的基本可以进行远程升级了, IAP区和应用区在启动代码里就设置分开。 程序升级的时候基本重应用区开始就可以了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群: 嵌入式系统arm初学者 224636155←← +→→点击-->小 i 精品课全集,21ic公开课~~←←→→点击-->小 i 精品课全集,给你全方位的技能策划~~←←

2810

主题

19297

帖子

104

粉丝