返回该小组首页 回复主题
chuzhujun1985

chuzhujun1985

小组等级:     E币:227  (E币换礼)

#1楼主:再问STM32 谢谢

文章发表于:2008-08-28 09:43

首先谢谢您的回复,我现在基本已经了解了,只是还是有点小问题!

您的文章:

通常在用户需要实现IAP功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,第一个项目程序不执行正常的功能操作,而只是通过某种通信管道(如USB、USART)接收程序或数据,执行对第二部分代码的更新;第二个项目代码才是真正的功能代码。这两部分项目代码都同时烧录在User Flash中,当芯片上电后,首先是第一个项目代码开始运行,它作如下操作:

1)检查是否需要对第二部分代码进行更新
2)如果不需要更新则转到4)
3)执行更新操作
4)跳转到第二部分代码执行

现在我对您说的:被IAP占用的串口在最终应用程序还是可以用的,是不是说IAO吃程序在执行之初首先会配置串口或者其他的什么口,然后应用程序要使用的话有会根据自己需要另外配置?这样当要更新程序时,先复位系统,串口又会被IAP配置为自己所用?如果是这样的话,那您这句话我就明白了,只是更新标志是怎么获得的?当复位系统后,如果需要更新的话,IAP是怎么知道的?是不是需要一个IO管脚通过上啦还是下拉状态,通过MCU存在什么地方,然后等复位后首先执行的IAP程序读取出来然后判断呢?希望您的答复!

STM32

   小组等级:    E币:4155  (E币换礼)

#2

文章发表于:2008-08-28 11:23

这个问题没有固定的答案,通常都是根据你自己的产品情况自己定义通过什么手段知道是否要更新程序。

如果你有空余的I/O管脚,而你的产品又允许打开外壳改变这个I/O的状态,那么就可以有这个方法。

当然还有很多其他方法,比如你的产品有USB,你可以在第一次枚举后通过USB发送一条命令,决定是进入正常工作模式还是要进入固件程序更新。

总之,你认为哪种方法最方便最合理,就用哪种方法,不同的产品需要不同的方法。

chuzhujun1985

   小组等级:    E币:227  (E币换礼)

#3

文章发表于:2008-08-28 12:21

哦  了解了  谢谢STM32!真是高手中的高手!敢问贵姓?以后希望能再次请教!

STM32

   小组等级:    E币:4155  (E币换礼)

#4

文章发表于:2008-08-28 14:24

呵呵,姓S

总共 , 当前 /

快速回复主题--如果想加入编辑器功能,建议使用 [高级回复]

您目前还不是小组成员,请先加入

回复贴子区

用户名:    您没有注册?

密码:    忘记了密码?

内容:

  • DesignDesign
  • HTMLHTML

浏览该小组的用户还看过...

设计资源与分销

所有小组精华文章