求一个CH579的APP是基于RTOS的IAP升级程序,谢谢
检测到升级信号以后,进入临界段,后面的操作就和裸机差不多了.直接当做系统不存在就好.
建议官方把用这个 RB_ROM_CODE_OFS标识升级和app 基于rtos的中断向量重定位的例程都做了吧
下面这个应该才指出了问题点
“琢磨了两天,终于搞定了:
boot跳转至app就不说了,问题在于跳转后这款芯片没有提供中断向量偏移的寄存器,跳转至app后由于中断向量表还是指向0x00000000的位置所以导致跳转后app的中断无法使用
我的解决方式就是先把boot的向量表(0x00000000~0x00000048)保存在别的flash中(假设0x30000)中
然后跳转至app(假设0x9000),把app的向量表(0x00009000~0x00009048)的内容复制到boot的向量表中。
然后app就可以进中断了,我在app上了freertos也没问题。
boot程序一开始要把(0x30000)的数据放回来,然后要跳转了再存过去。
还不知道这款芯片后面还有什么坑呢,大家互相探讨
/******************************************/
最开始我是想在boot每个中断服务函数里面做判断
这样的话跳转至app后,若触发中断,中断函数在boot中,在boot中做判断通过函数指针来调用app的函数
但是发现这样做的话freertos就不能切换任务了,因为在pendsv中断里面的操作只能在这个中断服务函数里实现不能跳到别的函数执行。
/*****************************************/”
结帖,通过RB_ROM_CODE_OFS实现了(这里需注意APP起始地址还是0)