TI中文支持网
TI专业的中文技术问题搜集分享网站

函数问题

CheckForceUpdate()检测是否有更新,

pui32App = (uint32_t *)APP_START_ADDRESS;if((pui32App[0] == 0xffffffff) ||((pui32App[0] & 0xfff00000) != 0x20000000) ||(pui32App[1] == 0xffffffff) ||((pui32App[1] & 0xfff00001) != 0x00000001)){return(1);}

应用程序收到更新然后进入SVC异常服务中断,然后回到BootLoader的UpdateHandler执行,然后进入CheckForceUpdate,这里面判断不是很清楚,可以解释一下吗?

还有后续进入的UpdateBOOTP接收到bin文件后存储到哪里,接收完成后怎么跳出来的?

xyz549040622:

flash区分为两部分,0x000到某一个地址为boot区,这个地址以后为应用程序区。上电后先进去boot区判断程序是否给升级指令,有升级指令后,传输升级代码到应用区,无升级指令,调到应用区执行代码。大概就是这个流程。具体的详细过程,可以看看艾研科技出的一个文档,介绍的比较详细。

chao tang1:

回复 xyz549040622:

苦行僧:你好 我之前看到你回复的一个人的,给了他这个文档,但是我现在去下载没有找到,你可以把连接给我吗?我知道汇编判断后进入了UpdateBOOTP(),在UpdateBOOTP()中调用BOOTPThread(),然后发送包解析包等。但是始终不明白UpdateBOOTP()怎么跳出来的。

xyz549040622:

回复 chao tang1:

我找了好几天,确实找不到了,电脑装系统,丢失了好多文档。你搞定了吗,分享下经验

xyz549040622:

回复 chao tang1:

赞一个!可以分享下你的源码或者部分源码吗,我也学习下。看看你的思路

赞(0)
未经允许不得转载:TI中文支持网 » 函数问题
分享到: 更多 (0)