搜索

[单片机芯片] 关于CH579在IAP时APP程序中的中断无法运行的问题

[复制链接]
577|7
 楼主 | 2020-4-10 11:07 | 显示全部楼层 |阅读模式
最近在做利用以太网对CH579的程序升级功能,一开始的做法是通过IAP程序把要升级的bin文件写进0x8000,然后做中断向量偏移(0x8004),程序可以执行,但是串口中断没有反应,而且还会把程序卡死。找了一波资料想把中断向量表放到RAM的起始位置,但是没有找到过于改变程序启动位置相关的寄存器。最后在数据手册中看到了一个ROM_CODE_OFS寄存器可以直接跳过flash的前32K空间从0x8000开始执行,试了一下也是没有成功(写寄存器之前关闭了写保护),不知道是什么原因,还请官方技术做个指导。谢谢!

使用特权

评论回复
 楼主 | 2020-4-10 11:12 | 显示全部楼层
看过BLE的OTA例程,那个程序是直接对中断向量表进行了搬移,就是把要升级的程序放在code flash最开始的位置,但是这样的话板子重启以后原来的IAP程序是不是就无法再次执行了呢?不知道我理解的有没有问题

使用特权

评论回复
| 2020-4-11 09:14 | 显示全部楼层
xxz138 发表于 2020-4-10 11:12
看过BLE的OTA例程,那个程序是直接对中断向量表进行了搬移,就是把要升级的程序放在code flash最开始的位置 ...

可以参考OTA升级说明:
CH579 BLE OTA例程说明.docx (71.6 KB, 下载次数: 11)

使用特权

评论回复
| 2020-4-12 07:53 | 显示全部楼层
之前问过了没有直接映射只能和当年开发ARM7那样自己在RAM再做个表,0地址开始的查这个表二次跳转

使用特权

评论回复
| 2020-4-12 07:55 | 显示全部楼层
APP改启动代码复制向量表到RAM

使用特权

评论回复
| 2020-4-12 07:57 | 显示全部楼层
BLE OTA这种方式是极不可靠的被挂的几率很大做产品还是不可取的

使用特权

评论回复
| 2020-4-26 11:04 | 显示全部楼层
again_gyf 发表于 2020-4-12 07:57
BLE OTA这种方式是极不可靠的被挂的几率很大做产品还是不可取的

最近在用CH579的片子做项目,请问一下,它的IAP,是必须要通过蓝牙去升级程序吗,我们要用到4G模块,想通过4G模块去远程升级程序,这个片子的IAP主要可行吗?

使用特权

评论回复
| 2020-4-26 13:11 | 显示全部楼层
jiangyimfs 发表于 2020-4-26 11:04
最近在用CH579的片子做项目,请问一下,它的IAP,是必须要通过蓝牙去升级程序吗,我们要用到4G模块,想通 ...

可以用4G模块,可以参考BLE OTA 的升级例程,把通过BLE接收的升级程序bin文件改为通过4G模块接收即可。

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表