Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
JTAG.h@7:b98d752b7b95, 2012-10-02 (annotated)
- Committer:
- liangzhen
- Date:
- Tue Oct 02 23:53:32 2012 +0000
- Revision:
- 7:b98d752b7b95
- Parent:
- 3:764ccaf29ce9
with all features
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
liangzhen | 1:acf14b6dd1be | 1 | /* |
liangzhen | 1:acf14b6dd1be | 2 | This is the JTAG driver file for mbed master |
liangzhen | 1:acf14b6dd1be | 3 | Refer to buspriate + openOCD |
liangzhen | 1:acf14b6dd1be | 4 | */ |
liangzhen | 1:acf14b6dd1be | 5 | |
liangzhen | 1:acf14b6dd1be | 6 | class JTAG { |
liangzhen | 1:acf14b6dd1be | 7 | public: |
liangzhen | 1:acf14b6dd1be | 8 | JTAG(); |
liangzhen | 1:acf14b6dd1be | 9 | void setJTAGspeed(int speed); // set the JTAG transaction speed |
liangzhen | 1:acf14b6dd1be | 10 | unsigned int readID(void); // read the device JTAG ID |
liangzhen | 1:acf14b6dd1be | 11 | void DAP_enable(void); |
liangzhen | 2:42e8a4eb3c00 | 12 | void loadProgram(void); // load program.hex into the chip |
liangzhen | 1:acf14b6dd1be | 13 | //basic JTAG state machine related functions |
liangzhen | 1:acf14b6dd1be | 14 | void setState(unsigned char state); |
liangzhen | 1:acf14b6dd1be | 15 | void leaveState(void); |
liangzhen | 1:acf14b6dd1be | 16 | void reset(void); |
liangzhen | 1:acf14b6dd1be | 17 | //higher level operations |
liangzhen | 1:acf14b6dd1be | 18 | void setIR(unsigned char A); |
liangzhen | 1:acf14b6dd1be | 19 | void writeDPACC(unsigned char A, unsigned char B, unsigned char C, unsigned char D, unsigned char E); |
liangzhen | 1:acf14b6dd1be | 20 | void writeAPACC(unsigned char A, unsigned char B, unsigned char C, unsigned char D, unsigned char E); |
liangzhen | 1:acf14b6dd1be | 21 | void readDPACC(unsigned char& A, unsigned char& B, unsigned char& C, unsigned char& D, unsigned char& E); |
liangzhen | 1:acf14b6dd1be | 22 | void readAPACC(unsigned char& A, unsigned char& B, unsigned char& C, unsigned char& D, unsigned char& E); |
liangzhen | 1:acf14b6dd1be | 23 | unsigned int readMemory(unsigned int address); |
liangzhen | 1:acf14b6dd1be | 24 | void writeMemory(unsigned int address, unsigned int value); |
liangzhen | 1:acf14b6dd1be | 25 | //high level byte operation |
liangzhen | 1:acf14b6dd1be | 26 | void writeByte(char c); |
liangzhen | 1:acf14b6dd1be | 27 | char readByte(void); |
liangzhen | 1:acf14b6dd1be | 28 | //bit level functions |
liangzhen | 1:acf14b6dd1be | 29 | void writeBit(char c); |
liangzhen | 1:acf14b6dd1be | 30 | unsigned char readBit(void); |
liangzhen | 1:acf14b6dd1be | 31 | unsigned char readDataState(void); |
liangzhen | 1:acf14b6dd1be | 32 | //bus level control |
liangzhen | 1:acf14b6dd1be | 33 | void DataLow(void); |
liangzhen | 1:acf14b6dd1be | 34 | void DataHigh(void); |
liangzhen | 1:acf14b6dd1be | 35 | void clockLow(void); |
liangzhen | 1:acf14b6dd1be | 36 | void clockHigh(void); |
liangzhen | 1:acf14b6dd1be | 37 | void clockTicks(unsigned char c); |
liangzhen | 1:acf14b6dd1be | 38 | void TMSHigh(void); |
liangzhen | 1:acf14b6dd1be | 39 | void TMSLow(void); |
liangzhen | 3:764ccaf29ce9 | 40 | bool JTAG_test(void); |
liangzhen | 1:acf14b6dd1be | 41 | char state; // n=null, r=reset, d=data, i=instruction |
liangzhen | 1:acf14b6dd1be | 42 | int delay; // wait time for each signal switching, in us |
liangzhen | 1:acf14b6dd1be | 43 | }; |