main.cpp

来自「ARM核的边界扫描(JTAG)的实现,此代码在s3c2400上测试通过」· C++ 代码 · 共 83 行

CPP
83
字号
//////////////////////////////////////////////////////////////////////////////
// main.cpp                                                                 //
//////////////////////////////////////////////////////////////////////////////
/*
	JTAG flash utility
	GP32
*/

//////////////////////////////////////////////////////////////////////////////
// Includes                                                                 //
//////////////////////////////////////////////////////////////////////////////
#include <windows.h>
#include <conio.h>
#include <stdio.h>
#include "JTAG.h"
#include "CP15Chain.h"
#include "DebugChain.h"
#include "EBSChain.h"
#include "EICEChain.h"
#include "ETMChain.h"
#include "IBSChain.h"
#include "IDChain.h"
#include "PATagRamChain.h"

//////////////////////////////////////////////////////////////////////////////
// Defines                                                                  //
//////////////////////////////////////////////////////////////////////////////
// instructions
#define NOP				0xe1a00000
#define LDR_R0__R0_		0xe5900000

//////////////////////////////////////////////////////////////////////////////
// Variables                                                                //
//////////////////////////////////////////////////////////////////////////////
unsigned int deviceID = 0x0032409D;

//////////////////////////////////////////////////////////////////////////////
// Exit                                                                     //
//////////////////////////////////////////////////////////////////////////////
void Exit()
{
	JTAG::Close();
}

//////////////////////////////////////////////////////////////////////////////
// main                                                                     //
//////////////////////////////////////////////////////////////////////////////
int main()
{
	{
		if (JTAG::Init()) return -1;
		atexit(Exit);
	}

	{
		IDChain idChain;
		if (idChain.Read() != deviceID)
		{
			fprintf(stderr, "Can't find device\n");
			return -1;
		}
	}

	EICEChain eiceChain;
	//printf("EICE_DEBUG_CONTROL = %08X\n", eiceChain.Read(EICE_DEBUG_CONTROL));
	//printf("EICE_DEBUG_STATUS = %08X\n", eiceChain.Read(EICE_DEBUG_STATUS));
	//printf("EICE_DEBUG_COMMS_CONTROL = %08X\n", eiceChain.Read(EICE_DEBUG_COMMS_CONTROL));	// 6	bits: 0=debugger->processor, 1=processor->debugger, 28..31=2 (version)
	//printf("EICE_DEBUG_COMMS_DATA = %08X\n", eiceChain.Read(EICE_DEBUG_COMMS_DATA));

	JTAG::Restart();

	//while (1);



	//DebugChain debugChain;
	//debugChain.Exec(



	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?