更可怕的是你对Flash完全没有认知,还想不缓冲直接写Flash?连扇区缓冲都不用?整个扇区氏搜旁你不问青红皂白先一股脑擦掉、再慢悠悠地一个字节一个字节接收写入?
这个思路,做做论文、搞搞研究还行,真用到产品里面会坑死一家厂的。
不了解所说的代码跳转方式具体是如何实凯悉轮现的,但可以肯定的是你的切换程序的相应处理。一般来说比较可靠的切换,是在被切换的函数中,通过修改SP寄存器的,然后在盯信返回跳转至指定函数的入口地址,从而切换的。 另外需要注意的是升级过程是在中断调用,函数的返回指令也是不一样的 。裸奔的话给你一个自简单的参考结构,只要任何位置 switchapp(xxx); 都可以相对可靠的切换。
void *(陆者 CurrentApp )(void) =
void main( )
{
...
while(1)
{
CurrentApp ()
}
}
void switchapp( void *( NextApp ))
{
CurrentApp = NextApp
}
bool KeepRunning =true
void App1( )
{
while(KeepRunning)
{
.......
}
}
void App2( )
{
while(KeepRunning)
{
.......
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)