用自定义重置逻辑替换platform_reset

4个职位/ 0个新职位
最后发表
hardy.chen
离线
最后看到:2年2个月前
加入:2015-03-13 04:20
用自定义重置逻辑替换platform_reset

你好,

我正在运行我们的固件和启动代码在外部SPI flash,由于省电功能,SPI flash将会断电,当没有活动。
在其他一些关于关闭SPI flash的复位控制的讨论之后,我添加了一些代码来在调用任何异常处理程序的reset之前释放SPI flash的关机
1) HardFault_HandlerC
2) NMI_HandlerC

但是我不知道'platform_reset'将在什么时候和什么地方被ROM代码调用,谁能给我一些指令,关于如何实现我自己的platform_reset来替换它。

我使用的是参考SDK DA14580_BEACON_3.40.6。

设备:
Gongyu_Dialog
离线
最后看到:6天21小时前
加入:2016-04-27 07:07
嗨,哈代

嗨,哈代
通常,函数platform_rest保存一个错误代码作为输入参数。现在可能的错误代码在arch.h中
ex. ///重置平台并留在ROM中
#定义xa5a5a5a5 RESET_TO_ROM 0

你可以直接调用这个函数。
然后PC将跳转到0x0。触发硬故障中断。
在我看来,最简单的方法是编写一个补丁来替换原来的platform_reset函数。
这超出了我创造补丁的范围,我把你的问题发送给团队。等待答案。
谢谢

Gongyu_Dialog
离线
最后看到:6天21小时前
加入:2016-04-27 07:07
嗨,hardy.chen

嗨,hardy.chen

可以试试下面的方法吗?谢谢

1.转到jump_table.c
2.实现
空白custom_platform_reset_func (uint32_t错误)

/*TODO: Put the wake SPI flash function */
platform_reset_func(错误);/*其中error可以是RESET_NO_ERROR */

3.找出“platform_reset”
4.将"platform_reset"替换为"custom_platform_reset_func"

hardy.chen
离线
最后看到:2年2个月前
加入:2015-03-13 04:20
嗨,对话框的团队,

嗨,对话框的团队,

谢谢!这个工作!

主题锁定