summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-12-16 11:49:14 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-12-16 11:49:14 +0000
commitf34248eb05296babcf4e5f45258a1c7469c57367 (patch)
treebb680f75ae5ed5aebe17b8010a94eadb3b935d7b /src
parent2a781c0346fbb6817411fb0dbfb4ff3b6576d676 (diff)
downloadopenocd_libswd-f34248eb05296babcf4e5f45258a1c7469c57367.tar.gz
openocd_libswd-f34248eb05296babcf4e5f45258a1c7469c57367.tar.bz2
openocd_libswd-f34248eb05296babcf4e5f45258a1c7469c57367.tar.xz
openocd_libswd-f34248eb05296babcf4e5f45258a1c7469c57367.zip
jtag_khz simulation
git-svn-id: svn://svn.berlios.de/openocd/trunk@1248 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src')
-rw-r--r--src/jtag/dummy.c43
1 files changed, 38 insertions, 5 deletions
diff --git a/src/jtag/dummy.c b/src/jtag/dummy.c
index 0565edaf..f6ca87c2 100644
--- a/src/jtag/dummy.c
+++ b/src/jtag/dummy.c
@@ -30,18 +30,24 @@ int dummy_speed(int speed);
int dummy_register_commands(struct command_context_s *cmd_ctx);
int dummy_init(void);
int dummy_quit(void);
+static int dummy_khz(int khz, int *jtag_speed);
+static int dummy_speed_div(int speed, int *khz);
-/* The dummy driver is used to easily check the code path
+
+/* The dummy driver is used to easily check the code path
* where the target is unresponsive.
*/
-jtag_interface_t dummy_interface =
+jtag_interface_t dummy_interface =
{
.name = "dummy",
-
+
.execute_queue = bitbang_execute_queue,
- .speed = dummy_speed,
+ .speed = dummy_speed,
.register_commands = dummy_register_commands,
+ .khz = dummy_khz,
+ .speed_div = dummy_speed_div,
+
.init = dummy_init,
.quit = dummy_quit,
};
@@ -72,6 +78,33 @@ void dummy_reset(int trst, int srst)
{
}
+static int dummy_khz(int khz, int *jtag_speed)
+{
+ if (khz==0)
+ {
+ *jtag_speed=0;
+ }
+ else
+ {
+ *jtag_speed=64000/khz;
+ }
+ return ERROR_OK;
+}
+
+static int dummy_speed_div(int speed, int *khz)
+{
+ if (speed==0)
+ {
+ *khz = 0;
+ }
+ else
+ {
+ *khz=64000/speed;
+ }
+
+ return ERROR_OK;
+}
+
int dummy_speed(int speed)
{
return ERROR_OK;
@@ -84,7 +117,7 @@ int dummy_register_commands(struct command_context_s *cmd_ctx)
int dummy_init(void)
{
- bitbang_interface = &dummy_bitbang;
+ bitbang_interface = &dummy_bitbang;
return ERROR_OK;
}