发新帖我要提问
12
返回列表
打印
[单片机芯片]

关于CH579在IAP时APP程序中的中断无法运行的问题

[复制链接]
楼主: xxz138
手机看帖
扫描二维码
随时随地手机跟帖
21
WCHTech2| | 2021-1-27 19:27 | 只看该作者 回帖奖励 |倒序浏览
bwnxqg 发表于 2021-1-27 14:38
在?CH579  RB_ROM_CODE_OFS 怎么操作才能IAP?
    R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1;            ...

不支持中断向量重映射

使用特权

评论回复
22
laocuo1142| | 2021-1-28 15:58 | 只看该作者
程序中断的向量表也应该进行位移

使用特权

评论回复
23
豌豆爹| | 2021-1-28 16:23 | 只看该作者
PWM的频率和主频有关系,也和你设置的分频系数有关系,不可能固定2khz

使用特权

评论回复
24
WCHTech2| | 2021-2-1 09:35 | 只看该作者
bwnxqg 发表于 2021-1-27 14:38
在?CH579  RB_ROM_CODE_OFS 怎么操作才能IAP?
    R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1;            ...

参考该贴:https://bbs.21ic.com/icview-3068314-1-1.html

使用特权

评论回复
25
里面有晴雨| | 2021-2-5 09:17 | 只看该作者
应该是程序代码跑飞了,造成的。

使用特权

评论回复
26
pigedong| | 2021-9-10 03:58 | 只看该作者
again_gyf 发表于 2020-10-4 21:23
过段时间抽空把我那个以太网IAP开源了,就是利用前32K做为IAP,OFSEET这个配置其实理解为内存映射更合理 ...

大哥,有开放出来吗?可以的话发一份给我,谢谢!dong69008@163.com

使用特权

评论回复
27
相互探讨| | 2022-1-11 14:16 | 只看该作者
琢磨了两天,终于搞定了:
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中断里面的操作只能在这个中断服务函数里实现不能跳到别的函数执行。
/*****************************************/

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则