本帖最后由 baiydcwy 于 2011-9-8 13:16 编辑
现在在搞一个IAP的东西,对程序的的跳转一直都搞不明白,最近看了这样一个帖子,帖子的链接为:https://bbs.21ic.com/viewthread.php?tid=109925&highlight=iap
大家看看,帮我理解一下。
我自己做的IAP的思路是这样的,将Flash分成三个区域,其中交替存放新旧应用程序,第一个区域的起始地址为0x08000000,从这里开始放一小段程序,这一小段程序的功能相当于一个小boot,主要是在复位后对Flash中的一页数据进行标志判断,如果这一页的数据全为7,跳转到应用程序区1,若这一页的数据全为27,则跳转到应用程序区2。
在每个应用程序中都包含有这样一个功能,就是应用程序通过一定方式接收新的应用程序代码,并将应用程序代码保存在应用程序区(若当前执行的是应用程序区1,刚将接收到的新的应用程序代码保存在应用程序区2,保存后当然要进行数据校验;反之则一样),新的应用程序代码接收并校验完成后将Flash中的那个标志页写入相应的值(根据当前执行的程序区域来写7或27并检验),完了之后来一个系统复位,开始执行放在0x08000000的那一小段程序,根据标志页跳转到新的程序区域执行新的应用程序。
在是在实际写程序的时候,不知道那处跳转程序怎么搞,希望各位高手帮帮看看怎么解决哈。。。。。。。
IAP.rar
(628.45 KB)
|