Add sw_pll dep and prepare for par in clockgen

This commit is contained in:
Ed
2024-01-03 15:56:15 +00:00
parent f035e1dc13
commit 2133598347
2 changed files with 457 additions and 443 deletions

View File

@@ -14,7 +14,8 @@ DEPENDENT_MODULES = lib_locks(>=2.1.0) \
lib_spdif(>=5.0.0) \ lib_spdif(>=5.0.0) \
lib_xassert(>=4.1.0) \ lib_xassert(>=4.1.0) \
lib_xud(>=2.2.3) \ lib_xud(>=2.2.3) \
lib_adat(>=1.0.0) lib_adat(>=1.0.0) \
lib_sw_pll(>=2.0.1)
MODULE_XCC_FLAGS = $(XCC_FLAGS) \ MODULE_XCC_FLAGS = $(XCC_FLAGS) \
-O3 \ -O3 \

View File

@@ -8,6 +8,13 @@
#include "xua_commands.h" #include "xua_commands.h"
#include "xua_clocking.h" #include "xua_clocking.h"
#ifdef __XS3A__
extern "C"
{
#include "sw_pll.h"
}
#endif
#if (XUA_SPDIF_RX_EN) #if (XUA_SPDIF_RX_EN)
#include "spdif.h" #include "spdif.h"
#endif #endif
@@ -333,6 +340,7 @@ void clockGen (streaming chanend ?c_spdif_rx, chanend ?c_adat_rx, client interfa
/* Initial ref clock output and get timestamp */ /* Initial ref clock output and get timestamp */
i_pll_ref.init(); i_pll_ref.init();
{
while(1) while(1)
{ {
select select
@@ -452,6 +460,8 @@ void clockGen (streaming chanend ?c_spdif_rx, chanend ?c_adat_rx, client interfa
/* Setup next local clock edge */ /* Setup next local clock edge */
i_pll_ref.toggle_timed(0); i_pll_ref.toggle_timed(0);
printstr("d\n");
/* Record time of edge */ /* Record time of edge */
timeLastEdge = timeNextEdge; timeLastEdge = timeNextEdge;
@@ -574,6 +584,7 @@ void clockGen (streaming chanend ?c_spdif_rx, chanend ?c_adat_rx, client interfa
/* Toggle edge */ /* Toggle edge */
i_pll_ref.toggle_timed(1); i_pll_ref.toggle_timed(1);
printstr("s\n");
/* Reset counters */ /* Reset counters */
spdifCounters.receivedSamples = 0; spdifCounters.receivedSamples = 0;
@@ -680,6 +691,7 @@ void clockGen (streaming chanend ?c_spdif_rx, chanend ?c_adat_rx, client interfa
/* Toggle edge */ /* Toggle edge */
i_pll_ref.toggle_timed(1); i_pll_ref.toggle_timed(1);
printstr("a\n");
/* Reset counters */ /* Reset counters */
adatCounters.receivedSamples = 0; adatCounters.receivedSamples = 0;
@@ -816,7 +828,8 @@ void clockGen (streaming chanend ?c_spdif_rx, chanend ?c_adat_rx, client interfa
outuint(c_dig_rx, 1); outuint(c_dig_rx, 1);
break; break;
#endif #endif
} } /* select */
} } /* while(1) */
} /* clkgen task scope */
} }