summaryrefslogtreecommitdiff
path: root/src/code/rcp_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/code/rcp_utils.c')
-rw-r--r--src/code/rcp_utils.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/code/rcp_utils.c b/src/code/rcp_utils.c
index d9fc9cd85..5c14c39f9 100644
--- a/src/code/rcp_utils.c
+++ b/src/code/rcp_utils.c
@@ -3,6 +3,7 @@
#define printSpStatus(x, name) \
if (x & SP_STATUS_##name) \
osSyncPrintf(#name " ")
+
#define printDpStatus(x, name) \
if (x & DPC_STATUS_##name) \
osSyncPrintf(#name " ")
@@ -44,9 +45,11 @@ void RcpUtils_PrintRegisterStatus(void) {
osSyncPrintf("\n");
}
-void RcpUtils_Reset() {
+void RcpUtils_Reset(void) {
RcpUtils_PrintRegisterStatus();
+ // Flush the RDP pipeline and freeze clock counter
osDpSetStatus(DPC_SET_FREEZE | DPC_SET_FLUSH);
+ // Halt the RSP, disable interrupt on break and set "task done" signal
__osSpSetStatus(SP_SET_HALT | SP_SET_SIG2 | SP_CLR_INTR_BREAK);
RcpUtils_PrintRegisterStatus();
}