#config = monitor sbw chipcon nrf ccspi spi jtagarm7 jtag430 jtag430x2 avr
# New default.
-config = monitor chipcon nrf spi jtagarm7 jtag430 avr
+config = monitor chipcon nrf spi jtagarm7 jtag430 jtag430x2 avr
# Build the needed list of app and lib object files from the config
//! Handles a monitor command.
void jtag_handle_fn(uint8_t const app,
- uint8_t const verb,
- uint32_t const len);
+ uint8_t const verb,
+ uint32_t const len);
+
+//! JTAG device ID.
+unsigned char jtagid=0;
// define the jtag app's app_t
app_t const jtag_app = {
//! Power-On Reset
void jtag430_por(){
- unsigned int jtagid;
-
// Perform Reset
jtag_ir_shift8(IR_CNTRL_SIG_16BIT);
jtag_dr_shift16(0x2C01); // apply
}
}
-//! Grab the core ID.
-unsigned int jtag430_coreid(){
- jtag_ir_shift8(IR_COREIP_ID);
- return jtag_dr_shift16(0);
-}
-
-//! Grab the device ID.
-unsigned long jtag430_deviceid(){
- jtag_ir_shift8(IR_DEVICE_ID);
- return jtag_dr_shift20(0);
-}
txdata(app,verb,2);
break;
case JTAG430_COREIP_ID:
- cmddataword[0]=jtag430_coreid();
+ //cmddataword[0]=jtag430_coreid();
+ cmddataword[0]=0xdead;
txdata(app,verb,2);
break;
case JTAG430_DEVICE_ID:
- cmddatalong[0]=jtag430_deviceid();
+ //cmddatalong[0]=jtag430_deviceid();
+ cmddataword[0]=0xdead;
+ cmddataword[0]=0xbeef;
txdata(app,verb,4);
break;
default:
};
+//! Grab the core ID.
+unsigned int jtag430_coreid(){
+ jtag_ir_shift8(IR_COREIP_ID);
+ return jtag_dr_shift16(0);
+}
+
+//! Grab the device ID.
+unsigned long jtag430_deviceid(){
+ jtag_ir_shift8(IR_DEVICE_ID);
+ return jtag_dr_shift20(0);
+}
//! Write data to address
#define JTAG 0x10
+//! JTAG device ID.
+extern unsigned char jtagid;
+
+
// Generic Commands
//! Shift n bytes.
// JTAG430 Commands
-//! Start JTAG, unique to the '430.
+//! Start JTAG, unique to the '430. Deprecated.
void jtag430_start();
+//! Same thing, but also for '430X2.
+unsigned char jtag430x2_start();
//! Reset the TAP state machine, check the fuse.
void jtag430_resettap();