打印

讨论下新唐 M0 的 IAP 问题!!

[复制链接]
7141|37
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Aaron238|  楼主 | 2010-10-30 00:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
现在在用新唐的 M0  NUC120LE3AN  要用 USB 更新!!
新唐提供的 ISP 的空间太小! 用USB 更新在加上我们自己的产品上要几个个 LED 在更新的时候要显示 UPDATA 所以要加 LED 的程序!!可是 4K 根本就放不下!!所以只有有 IAP !!
    但是IAP 我看下了 厂家没有提供一个 IAP 的代码!!我在看 MO 的程序的时候也没看到有 从新定义 中断向量表的地方!!

  不清楚 MO 是不是可以象 STM32 的 M3 那样 IAP 代码可以和 应用程序分开写!!
现在这个产品用的 STM32 的 IAP 和  应用程序 是分开写的!!

在M0 里面应该怎么实现了!!

相关帖子

沙发
Aaron238|  楼主 | 2010-10-30 00:47 | 只看该作者
STM32 的 IAP

使用特权

评论回复
板凳
Aaron238|  楼主 | 2010-10-30 00:48 | 只看该作者
不知道 M0 里面应该怎么实现!!  STM32 里面 IAP 的大小可以根据IAP 的程序大小进行修改!!

使用特权

评论回复
地板
Aaron238|  楼主 | 2010-10-30 01:10 | 只看该作者
新唐的资料一直没找到 关于 IAP 的说明的 和样例程序!!

使用特权

评论回复
5
tg.liu| | 2010-10-30 01:25 | 只看该作者
新塘的FLASH分成2个区, 一个是APROM, 一个是LDROM,
位于其中一个区的代码可以被另一个区的修改. 可通过配置选项(可理解为芯片熔丝位)来选择上电时从那一块启动.  同时可以通过软件复位在运行时, 在这两个区之间切换.

ldrom固定为4K, 不可以调整大小.  4K是可以放下一个usb Bootloader的, 这个本人有实际测试.

使用特权

评论回复
6
Aaron238|  楼主 | 2010-10-30 23:05 | 只看该作者
问题是我们在 更新的时候要用 显示 LED 所以要加上班LED 的 驱动!!! 所以就放不下了!! 只有向 STM32 那样做 IAP 了!! 但是 不知道怎么去做!!

使用特权

评论回复
7
Aaron238|  楼主 | 2010-10-30 23:06 | 只看该作者
IAP 和 AP 都是放在 APROM 的方法 怎么做??

使用特权

评论回复
8
tg.liu| | 2010-10-31 06:43 | 只看该作者
没有办法将IAP代码放在APROM中, APROM不支持自己写自己

只能是APROM与LDROM中的代码互写. 而要在这两者之间切换运行, 唯一的办法是复位重启.

楼主的LED显示代码大概有多大, 能精简的话, 尽量精简, 和USB相关代码一起塞到LDROM中最简单了.

使用特权

评论回复
9
Aaron238|  楼主 | 2010-10-31 10:13 | 只看该作者
现在就是塞不下啊!!我看厂家提供的 USB LDROM差 16BYTE  就4K 了!! 我们自己的 LED 的驱动就要 2K 左右!!
因为之前我们用的 STM32 IAP 是可以在APROM 里面跑的! IAP 的大小也可以自己定义!!
NUC 的要是不可以?? 那他们说的 支持 ICP ISP IAP 指的什么了?

使用特权

评论回复
10
Aaron238|  楼主 | 2010-10-31 10:14 | 只看该作者
厂家我没看到有关 IAP 的 文档和程序

使用特权

评论回复
11
6019赵文| | 2010-10-31 11:01 | 只看该作者
IAP功能具体是什么概念了?我是菜鸟

使用特权

评论回复
12
tg.liu| | 2010-10-31 19:44 | 只看该作者
是啊, 新塘的IAP到底是咋回事? 只能LDROM/APROM互写, 似乎与IAP的定义不相符

等待权威人士的解答了...

使用特权

评论回复
13
芯唐.万利| | 2010-10-31 20:48 | 只看该作者
其实所谓的IAP应该是个理念,是程序在运行的同时神不知鬼不觉地被更新了。
IAP不应该有是一个统一的模式,因人而异,因应用而异。
1. IAP与MCU无关,只要能够在程序运行时对代码区编程的MCU都可以IAP。不存在芯唐,NXP,ST,ATMEL之区分。
2. IAP的最核心之处是应用程序运行时,可以对非正在运行的程序区进行编程修改,即对FLASH擦除和编程。
3. 最简单的IAP,是正在运行的程序将在接收到数据(程序代码)写入到另一区域,当需要编程的代码全部编程完毕后,重新将所有向量指向被编程的区域,通过软件复位或重新上电,运行被编程的程序。
4. 高级一点的IAP,是当前的应用程序不能满足应用需求或需要增加功能时,由引导程序和(或)应用程序对自身程序的更新。当被编程的程序代码在满足特定条件时,终止当前的应用程序的同时运行新的程序。如同PC的杀毒程序升级一样。
5. 一个高级IAP应用程序的编写,需要有良好的软件编程功底和技巧。
6. 一个高级IAP应用程序的编写,需要有IDE的支持,需要对连接器的了解,需要引导程序和应用程序间变量和程序的衔接等等等等。
以上几点是设计IAP时需要了解的。
对于芯唐M0,具有LDROM/APROM是IAP过程中对FLASH擦除/编程的必要条件。
而其它M0/M3的IAP要比芯唐的架构更容易理解、更容易使用,因为IAP的编程对象和运行程序都在同一空间而无需切换。

使用特权

评论回复
14
tg.liu| | 2010-10-31 21:10 | 只看该作者
谢谢版主, 不愧是权威人士. 很全面!

使用特权

评论回复
15
hotpower| | 2010-11-1 09:43 | 只看该作者
学习…

使用特权

评论回复
16
Aaron238|  楼主 | 2010-11-1 12:58 | 只看该作者
本帖最后由 Aaron238 于 2010-11-1 13:00 编辑

现在的问题是 你们给的 ISP 的空间不够用??  那要怎么解决??  厂家的 IAP DEMO 又在哪里??

使用特权

评论回复
17
Aaron238|  楼主 | 2010-11-1 12:59 | 只看该作者
至少要给我们一个 DEMO 阿!!!

使用特权

评论回复
18
Aaron238|  楼主 | 2010-11-1 13:04 | 只看该作者
我想知道 NUC 的 IAP 能不能 象 STM32 的那样!! 如果可以怎么实现???

101030004713a31131ba3b24fe[1].jpg (56.48 KB )

101030004713a31131ba3b24fe[1].jpg

使用特权

评论回复
19
Aaron238|  楼主 | 2010-11-1 13:06 | 只看该作者
新唐也没给个说明的文档资料!!!  只说有!!

使用特权

评论回复
20
tg.liu| | 2010-11-1 15:20 | 只看该作者
例程: Smpl_DrvFMC

使用特权

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

本版积分规则

56

主题

487

帖子

1

粉丝