X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Fapps%2Fjtag%2Fjtagarm7.c;h=8cd4c266ebc7740e94ee40939d9c1a857d415af5;hp=7e103fcc4c22195319604160cef9dbcdda5ba9a8;hb=5fb0341d348e101b30794945a6c91546e25e8e7b;hpb=1969a022e69bdac64a0d88de3d0ce88d79a27804 diff --git a/firmware/apps/jtag/jtagarm7.c b/firmware/apps/jtag/jtagarm7.c index 7e103fc..8cd4c26 100644 --- a/firmware/apps/jtag/jtagarm7.c +++ b/firmware/apps/jtag/jtagarm7.c @@ -4,8 +4,39 @@ #include "platform.h" #include "command.h" +#include "jtag.h" #include "jtagarm7.h" +//! Handles ARM7TDMI JTAG commands. Forwards others to JTAG. +void jtagarm7_handle_fn( uint8_t const app, + uint8_t const verb, + uint32_t const len); + +// define the jtagarm7 app's app_t +app_t const jtagarm7_app = { + + /* app number */ + JTAGARM7, + + /* handle fn */ + jtagarm7_handle_fn, + + /* name */ + "JTAGARM7", + + /* desc */ + "\tThe JTAGARM7 app extends the basic JTAG app with support\n" + "\tfor JTAG'ing ARM7TDMI based devices.\n" +}; + +unsigned long last_instr = -1; +unsigned char last_sysstate = 0; +unsigned char last_ir = -1; +unsigned char last_scanchain = -1; +unsigned char tapstate = 15; +unsigned char current_dbgstate = -1; +//unsigned char last_halt_debug_state = -1; +//unsigned long last_halt_pc = -1; /**** 20-pin Connection Information (pin1 is on top-right for both connectors)**** GoodFET -> 7TDMI 20-pin connector (HE-10 connector) @@ -246,7 +277,10 @@ void jtagarm7tdmi_set_register(unsigned long reg, unsigned long val) { /////////////////////////////////////////////////////////////////////////////////////////////////// //! Handles ARM7TDMI JTAG commands. Forwards others to JTAG. -void jtagarm7tdmihandle(unsigned char app, unsigned char verb, unsigned long len){ +void jtagarm7_handle_fn( uint8_t const app, + uint8_t const verb, + uint32_t const len) +{ unsigned int val; switch(verb){ @@ -321,7 +355,7 @@ void jtagarm7tdmihandle(unsigned char app, unsigned char verb, unsigned long len case JTAGARM7_CHIP_ERASE: */ default: - jtaghandle(app,verb,len); + (*(jtag_app.handle))(app,verb,len); } }