⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pin2410.c

📁 很好用的linux下的JTAG烧写工具
💻 C
字号:
/* - 16/05/2002 [Jaewook Cheong] : first writing for S3C2410                 */

#include <stdio.h>
#include "def.h"
#include "pin2410.h"
#include "jtag.h"


char outCellValue[S2410_MAX_CELL_INDEX+2];
char inCellValue[S2410_MAX_CELL_INDEX+2];
int  dataOutCellIndex[8];
int  dataInCellIndex[8];

void S2410_InitCell(void)
{
    int i;
    dataOutCellIndex[0] = DATA0_OUT;
    dataOutCellIndex[1] = DATA1_OUT;
    dataOutCellIndex[2] = DATA2_OUT;
    dataOutCellIndex[3] = DATA3_OUT;
    dataOutCellIndex[4] = DATA4_OUT;
    dataOutCellIndex[5] = DATA5_OUT;
    dataOutCellIndex[6] = DATA6_OUT;
    dataOutCellIndex[7] = DATA7_OUT;	

    dataInCellIndex[0] = DATA0_IN;  
    dataInCellIndex[1] = DATA1_IN;
    dataInCellIndex[2] = DATA2_IN;
    dataInCellIndex[3] = DATA3_IN;
    dataInCellIndex[4] = DATA4_IN;
    dataInCellIndex[5] = DATA5_IN;
    dataInCellIndex[6] = DATA6_IN;
    dataInCellIndex[7] = DATA7_IN;
    
    //outCellValue[] must be initialized by dummy values for JTAG_ShiftDRState();
    for(i=0;i<=S2410_MAX_CELL_INDEX;i++)
    {
	outCellValue[i]=HIGH;
	inCellValue[i]='u';
    }
    outCellValue[S2410_MAX_CELL_INDEX+1]='\0';
    inCellValue[S2410_MAX_CELL_INDEX+1]='\0';

    JTAG_RunTestldleState();
    JTAG_ShiftIRState(SAMPLE_PRELOAD);
    JTAG_ShiftDRState(outCellValue,inCellValue); //inCellValue[] is initialized.

    for(i=0;i<=S2410_MAX_CELL_INDEX;i++)
    {
	outCellValue[i]=inCellValue[i];	    //outCellValue[] is initialized.
    }
}

#if 0  //For speed up, replaced by MACRO
void S2410_SetPin(int index, char value)
{
    outCellValue[index] = value;
}


char S2410_GetPin(int index)
{
    return inCellValue[index];
}
#endif

void S2410_SetData(U8 data)
{
    int i;

    for(i=0;i<8;i++)
    {
    	if(data & (1<<i))
	    outCellValue[dataOutCellIndex[i]]=HIGH;
	else
	    outCellValue[dataOutCellIndex[i]]=LOW;
    }
}


U8 S2410_GetData(void)
{
    int	i;
    U8 data=0;

    for(i=0;i<8;i++)
    {
	if(inCellValue[dataInCellIndex[i]]==HIGH)
	{
	    data = (data | (1<<i));
	}
    }
    return data;
}





⌨️ 快捷键说明

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