summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Daniel <cd@maintech.de>2012-06-05 20:48:09 +0200
committerChristian Daniel <cd@maintech.de>2012-06-05 20:48:09 +0200
commitb93708ed1da6edaa48abc1977bb9942aa5e13990 (patch)
tree3b0ff5106b1d12ef3af1f40aed8d8fe9250d084f
parent41eb541606354298003bd853228f1a9674ae0aea (diff)
add lots of debugging stuff
-rw-r--r--firmware/include/fast_source.h1
-rw-r--r--firmware/include/req_ctx.h2
-rw-r--r--firmware/include/tuner_e4k.h2
-rw-r--r--firmware/osmosdr-project/main.c8
-rw-r--r--firmware/src/fast_source.c10
-rw-r--r--firmware/src/osdr_ssc.c9
-rw-r--r--firmware/src/req_ctx.c12
-rw-r--r--firmware/src/tuner_e4k.c13
-rw-r--r--firmware/usb-fast-audio-source/fast_source.c9
-rw-r--r--firmware/usb-fast-audio-source/fast_source.h1
10 files changed, 66 insertions, 1 deletions
diff --git a/firmware/include/fast_source.h b/firmware/include/fast_source.h
index 0e2e43b..e36d114 100644
--- a/firmware/include/fast_source.h
+++ b/firmware/include/fast_source.h
@@ -30,5 +30,6 @@ extern unsigned char fastsource_interfaces[3];
void fastsource_init(void);
void fastsource_start(void);
+void fastsource_dump(void);
void usb_submit_req_ctx(struct req_ctx *rctx);
diff --git a/firmware/include/req_ctx.h b/firmware/include/req_ctx.h
index 4d9826c..ebfa925 100644
--- a/firmware/include/req_ctx.h
+++ b/firmware/include/req_ctx.h
@@ -50,4 +50,6 @@ extern uint8_t req_ctx_num(struct req_ctx *ctx);
void req_ctx_enqueue(struct llist_head *list, struct req_ctx *rctx);
struct req_ctx *req_ctx_dequeue(struct llist_head *list);
+void req_ctx_dump();
+
#endif /* _REQ_CTX_H */
diff --git a/firmware/include/tuner_e4k.h b/firmware/include/tuner_e4k.h
index 662cbd8..fde6bf1 100644
--- a/firmware/include/tuner_e4k.h
+++ b/firmware/include/tuner_e4k.h
@@ -215,4 +215,6 @@ int e4k_set_lna_gain(struct e4k_state *e4k, int32_t gain);
int e4k_enable_manual_gain(struct e4k_state *e4k, uint8_t manual);
int e4k_set_enh_gain(struct e4k_state *e4k, int32_t gain);
+int e4k_dump(struct e4k_state *e4k);
+
#endif /* _E4K_TUNER_H */
diff --git a/firmware/osmosdr-project/main.c b/firmware/osmosdr-project/main.c
index cdb91a9..cff51b9 100644
--- a/firmware/osmosdr-project/main.c
+++ b/firmware/osmosdr-project/main.c
@@ -335,6 +335,12 @@ static int cmd_tuner_iqofs(struct cmd_state *cs, enum cmd_op op,
return e4k_manual_dc_offset(&e4k, iofs, irange, qofs, qrange);
}
+static int cmd_tuner_dump(struct cmd_state *cs, enum cmd_op op,
+ const char *cmd, int argc, char ** argv)
+{
+ return e4k_dump(&e4k);
+}
+
static int cmd_dfu(struct cmd_state *cs, enum cmd_op op,
const char *cmd, int argc, char ** argv)
{
@@ -345,6 +351,8 @@ static int cmd_dfu(struct cmd_state *cs, enum cmd_op op,
static struct cmd cmds[] = {
{ "tuner.init", CMD_OP_EXEC, cmd_tuner_init,
"Initialize the tuner" },
+ { "tuner.dump", CMD_OP_EXEC, cmd_tuner_dump,
+ "Dump E4k registers" },
{ "tuner.freq", CMD_OP_SET|CMD_OP_GET, cmd_rf_freq,
"Tune to the specified frequency" },
{ "tuner.gain", CMD_OP_SET, cmd_tuner_gain,
diff --git a/firmware/src/fast_source.c b/firmware/src/fast_source.c
index 8e61ba3..dfd0c39 100644
--- a/firmware/src/fast_source.c
+++ b/firmware/src/fast_source.c
@@ -588,3 +588,13 @@ void USBDDriverCallbacks_InterfaceSettingChanged(unsigned char interface,
else
LED_Set(USBD_LEDOTHER);
}
+
+void fastsource_dump(void)
+{
+ struct req_ctx *rctx, *rctx2;
+
+ printf("usb pending:");
+ llist_for_each_entry_safe(rctx, rctx2, &usb_state.queue, list)
+ printf(" %02d", req_ctx_num(rctx));
+ printf("\n\r");
+}
diff --git a/firmware/src/osdr_ssc.c b/firmware/src/osdr_ssc.c
index 13ac23e..3e41d53 100644
--- a/firmware/src/osdr_ssc.c
+++ b/firmware/src/osdr_ssc.c
@@ -277,7 +277,16 @@ static int cmd_ssc_stats(struct cmd_state *cs, enum cmd_op op,
static int cmd_ssc_dump(struct cmd_state *cs, enum cmd_op op,
const char *cmd, int argc, char **argv)
{
+ struct req_ctx *rctx, *rctx2;
+
dma_dump_regs();
+ req_ctx_dump();
+
+ printf("ssc pending:");
+ llist_for_each_entry_safe(rctx, rctx2, &ssc_state.pending_rctx, list)
+ printf(" %02d", req_ctx_num(rctx));
+ printf("\n\r");
+ fastsource_dump();
}
static struct cmd cmds[] = {
diff --git a/firmware/src/req_ctx.c b/firmware/src/req_ctx.c
index 495d262..9f22edc 100644
--- a/firmware/src/req_ctx.c
+++ b/firmware/src/req_ctx.c
@@ -129,3 +129,15 @@ void req_ctx_enqueue(struct llist_head *list, struct req_ctx *rctx)
llist_add_tail(&rctx->list, list);
local_irq_restore(flags);
}
+
+void req_ctx_dump()
+{
+ int i;
+
+ local_irq_save(flags);
+ printf("ctx status: ");
+ for(i = 0; i < NUM_REQ_CTX; i++)
+ printf(" %02x", req_ctx[i].state);
+ local_irq_restore(flags);
+ printf("\n\r");
+}
diff --git a/firmware/src/tuner_e4k.c b/firmware/src/tuner_e4k.c
index d4d9113..3a7de46 100644
--- a/firmware/src/tuner_e4k.c
+++ b/firmware/src/tuner_e4k.c
@@ -969,3 +969,16 @@ int e4k_init(struct e4k_state *e4k)
return 0;
}
+
+int e4k_dump(struct e4k_state *e4k)
+{
+ int i;
+
+ for(i = 0; i < 64; i++)
+ printf("0x%02x: 0x%02x 0x%02x: 0x%02x 0x%02x: 0x%02x 0x%02x: 0x%02x\n\r",
+ i, e4k_reg_read(e4k, i),
+ i + 64, e4k_reg_read(e4k, i + 64),
+ i + 128, e4k_reg_read(e4k, i + 128),
+ i + 192, e4k_reg_read(e4k, i + 192)
+ );
+}
diff --git a/firmware/usb-fast-audio-source/fast_source.c b/firmware/usb-fast-audio-source/fast_source.c
index d9633fe..2db4b7c 100644
--- a/firmware/usb-fast-audio-source/fast_source.c
+++ b/firmware/usb-fast-audio-source/fast_source.c
@@ -145,4 +145,11 @@ void fastsource_start(void)
USBD_Write(EP_NR, test_data, sizeof(test_data), wr_compl_cb, NULL);
}
-
+void fastsource_dump(void)
+{
+ printf("usb pending: ");
+ printf("ssc pending:");
+ llist_for_each_entry_safe(rctx, rctx2, &ssc_state.pending_rctx, list)
+ printf(" %d", req_ctx_num(rctx));
+ printf("\r\n");
+}
diff --git a/firmware/usb-fast-audio-source/fast_source.h b/firmware/usb-fast-audio-source/fast_source.h
index 2d71b3a..fdd76d7 100644
--- a/firmware/usb-fast-audio-source/fast_source.h
+++ b/firmware/usb-fast-audio-source/fast_source.h
@@ -16,3 +16,4 @@
void fastsource_init(void);
void fastsource_start(void);
void fastsource_req_hdlr(const USBGenericRequest *request);
+void fastsource_dump(void);