From 345edc823540089925b8ae60af34404d608fdfb4 Mon Sep 17 00:00:00 2001
From: chenlh <2008get@163.com>
Date: 星期四, 18 九月 2025 14:58:20 +0800
Subject: [PATCH] 首轮测试代码提交

---
 src/main.cpp |   35 +++++++++++++++++++----------------
 1 files changed, 19 insertions(+), 16 deletions(-)

diff --git a/src/main.cpp b/src/main.cpp
index f4a6f5c..876ea9d 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -76,9 +76,9 @@
 		tob->toProc();
 
 		UpdateOutput(iid, DMACount[iid]&0x1);
-		//LP_transmit();
-//		ModulesAsynSetInterval(proc_secs);
-//		fir_acc_startup();
+//		LP_transmit();
+		ModulesAsynSetInterval(proc_secs);
+		fir_acc_startup();
 		clock_stop = clock();
 		proc_secs = ((ufloat) (clock_stop - clock_start))/ CLOCKS_PER_SEC;
 	}
@@ -87,7 +87,7 @@
 		UpdateOutput(iid, DMACount[iid]&0x1);
 	}
 
-	DMACount[iid]++;
+	++DMACount[iid];
 }
 
 int main(int argc, char *argv[])
@@ -119,22 +119,22 @@
 	memset(DMACount, 0, sizeof(DMACount));
 
 	Message* spiMsg = new Message(8);
-	//第一次启动上报特别是仿真的时候需要arm'重新发送消息.
-	spiMsg->DspStatusPush(DSP_EMULATE_DEBUG, 0, 0);
-	spiMsg->ReportDspStatus(&msg);
 
 	SPI2_Init();
 
 	fir_acc_init();
 
 	//通知arm启动完成.
-	//dir: pin12, High level DSP can receive data, low level DSP has data to send .
+	//dir: pin12, High level DSP can receive data, low level DSP has data toz send .
 	//busy: pin13/PB5, low level DSP is in busy state and cannot receive and send data, high level is free.
 	GPIO_SetOutPut(GPIOA, GPIO_Pin12, GPIO_HIGH);
 	GPIO_SetOutPut(GPIOB, GPIO_Pin5, GPIO_HIGH);
 
-	u32 ddrspace = sram_free_space(SRAM_DDR, mem_any);
-	printf("ddrspace:%d\n", ddrspace);
+	//第一次启动上报特别是仿真的时候需要arm'重新发握手.
+	spiMsg->DspStatusPush(DSP_EMULATE_DEBUG, 0, 0);
+	spiMsg->ReportDspStatus(&msg);
+
+	printf("free sram %d, L2 %d\n", sram_free_space(SRAM_DDR, mem_any), sram_free_space(SRAM_L2, mem_any));
 
 	while(1) {
 		asyn_proc_secs = ModulesAsynProcess();
@@ -170,25 +170,28 @@
 
 		//clock state will change after running,it need check always.
 		//about 1s
-		if(++loop_cnt > 100000000){
-			if(clock_check_count == DMACount[var.master_intr]) {
+		if(++loop_cnt > 5e+6){
+			if (var.clock_ok && clock_check_count == DMACount[var.master_intr]) {
 				var.dsp_status = dsp_no_clock;
-				spiMsg->DspStatusPush(DSP_CLOCK_STATUS, &var.dsp_status ,1);
+				spiMsg->DspStatusPush(DSP_RUNNING_STATUS, &var.dsp_status ,1);
 				spiMsg->ReportDspStatus(&msg);
+				printf("clk0 ok\n");
 			}
 			loop_cnt =0;
 			clock_check_count = DMACount[var.master_intr];
-			printf("clk1 ok\n");
+//			printf("clk1 ok\n");
 		}
-
 
 		if(!var.clock_ok && var.dsp_status == DSPStatus::dsp_running_ok && var.HandShakeSuccesful) {
 			//notify arm to work normaly.
-			spiMsg->DspStatusPush(DSP_CLOCK_STATUS, 0, 0);
+			spiMsg->DspStatusPush(DSP_CLOCK_STATUS, &var.dsp_status, 1);
 			request_topo_count = DMACount[var.master_intr] ;
 			var.clock_ok = utrue;
+			spiMsg->ReportDspStatus(&msg);
 			printf("clk2 ok\n");
 		}
+
+
 	}
 
 }

--
Gitblit v1.9.3