📄 avrdevice.h
字号:
AVRDevice(UCHAR ucDCode ){};
AVRDevice(){};
/* Destructor */
~AVRDevice(){};
/* Methods */
void SetDevice(UCHAR ucDCode )//;
{
deviceCode = ucDCode;
flashSize = 0;
eepromSize = 0;
FuseBytes = 0;
LockBytes = 0;
signature0=0xff;
signature1=0xff;
signature2=0xff; // 3字节器件签名
pagesize = 0;
strcpy(deviceName,"NoSupported");
if(deviceCode == 0xff)return;
unsigned char tempCode;
int i = 0;
do
{
tempCode = g_deviceTable[i].ucId;
if (tempCode == 0)
{
break;
}
if (tempCode == ucDCode)
{
deviceCode = g_deviceTable[i].ucId;
flashSize = g_deviceTable[i].dwFlashSize;
eepromSize = g_deviceTable[i].wEepromSize;
FuseBytes = g_deviceTable[i].ucFuseBytes;
LockBytes = g_deviceTable[i].ucLockBytes;
signature0=g_deviceTable[i].signature[0];
signature1=g_deviceTable[i].signature[1];
signature2=g_deviceTable[i].signature[2];
pagesize = g_deviceTable[i].wPageSize;
strcpy(deviceName,g_deviceTable[i].name);
FuseMap.dwDefaultMode =g_deviceTable[i].bFuseMap.dwDefaultMode;
FuseMap.dwNumber =g_deviceTable[i].bFuseMap.dwNumber ;
FuseMap.dwProtectMode =g_deviceTable[i].bFuseMap.dwProtectMode;
FuseMap.ucCompatible =g_deviceTable[i].bFuseMap.ucCompatible;
for(unsigned int j=0;j<g_deviceTable[i].bFuseMap.dwNumber; j++)
FuseMap.bitname[j]=g_deviceTable[i].bFuseMap.bitname[j];
LockMap.dwDefaultMode =g_deviceTable[i].bLockMap.dwDefaultMode ;
LockMap.dwNumber =g_deviceTable[i].bLockMap.dwNumber ;
LockMap.dwProtectMode =g_deviceTable[i].bLockMap.dwProtectMode;
LockMap.ucCompatible =g_deviceTable[i].bLockMap.ucCompatible;
for(j=0;j<g_deviceTable[i].bLockMap.dwNumber; j++)
LockMap.bitname[j]=g_deviceTable[i].bLockMap.bitname[j];
break;
}
} while((i++) < 0x100);
}
void SetDevice(char *strDName )//;
{
deviceCode = 0xff;
flashSize = 0;
eepromSize = 0;
FuseBytes = 0;
LockBytes = 0;
signature0=0xff;
signature1=0xff;
signature2=0xff;
pagesize = 0;
strcpy(deviceName,"NoSupported");
unsigned char tempCode;
int i = 0;
do
{
tempCode = g_deviceTable[i].ucId;
if (tempCode == 0)
{
break;
}
if (!strcmp(strDName,g_deviceTable[i].name))
{
deviceCode = g_deviceTable[i].ucId;
flashSize = g_deviceTable[i].dwFlashSize;
eepromSize = g_deviceTable[i].wEepromSize;
FuseBytes = g_deviceTable[i].ucFuseBytes;
LockBytes = g_deviceTable[i].ucLockBytes;
signature0=g_deviceTable[i].signature[0];
signature1=g_deviceTable[i].signature[1];
signature2=g_deviceTable[i].signature[2];
pagesize = g_deviceTable[i].wPageSize;
strcpy(deviceName,g_deviceTable[i].name);
FuseMap.dwDefaultMode =g_deviceTable[i].bFuseMap.dwDefaultMode;
FuseMap.dwNumber =g_deviceTable[i].bFuseMap.dwNumber ;
FuseMap.dwProtectMode =g_deviceTable[i].bFuseMap.dwProtectMode;
FuseMap.ucCompatible =g_deviceTable[i].bFuseMap.ucCompatible;
for(unsigned int j=0;j<g_deviceTable[i].bFuseMap.dwNumber; j++)
FuseMap.bitname[j]=g_deviceTable[i].bFuseMap.bitname[j];
LockMap.dwDefaultMode =g_deviceTable[i].bLockMap.dwDefaultMode ;
LockMap.dwNumber =g_deviceTable[i].bLockMap.dwNumber ;
LockMap.dwProtectMode =g_deviceTable[i].bLockMap.dwProtectMode;
LockMap.ucCompatible =g_deviceTable[i].bLockMap.ucCompatible;
for(j=0;j<g_deviceTable[i].bLockMap.dwNumber; j++)
LockMap.bitname[j]=g_deviceTable[i].bLockMap.bitname[j];
break;
}
} while((i++) < 0x100);
return ;
}
unsigned char getDeviceCode() {return deviceCode;}
void getDeviceName(char *s) { strcpy(s, deviceName);}
char *getDeviceName() { return deviceName;}
long getFlashSize() { return flashSize; }
long getEEPROMSize() { return eepromSize; }
long getPageSize() { return pagesize; }
char getFuseBytes() { return FuseBytes; }
char getLockBytes() { return LockBytes; }
bitmap *getFuseMap() { return &FuseMap; }
bitmap *getLockMap() { return &LockMap; }
void getSignature(long *sig0, long *sig1, long *sig2)
{
*sig0=signature0;
*sig1=signature1;
*sig2=signature2;
}
};
/* Device List */
/* +---------------+----------+------+-------+------+------+------+-------+ */
/* | Device |Signature | Code | Flash |EEProm| Lock | Fuse | PMode | */
/* +---------------+----------+------+-------+------+------+------+-------+ */
/* | tiny12 | 1E 90 05 | 0x55 | R/W | R/W | R/W | R/W | Byte | */
/* | tiny15 | 1E 90 06 | 0x66 | R/W | R/W | R/W | R/W | Byte | */
/* | | | | | | | | | */
/* | S1200 | 1E 90 01 | 0x13 | R/W | R/W | W | NA | Byte | */
/* | | | | | | | | | */
/* | S2313 | 1E 91 01 | 0x20 | R/W | R/W | W | NA | Byte | */
/* | S2323 | 1E 91 02 | 0x48 | R/W | R/W | R/W | R/W | Byte | */
/* | S2333 | 1E 91 05 | 0x34 | R/W | R/W | R/W | R/W | Byte | */
/* | S2343 | 1E 91 03 | 0x4C | R/W | R/W | R/W | R/W | Byte | */
/* | | | | | | | | | */
/* | S4414 | 1E 92 01 | 0x28 | R/W | R/W | W | NA | Byte | */
/* | S4433 | 1E 92 03 | 0x30 | R/W | R/W | R/W | R/W | Byte | */
/* | S4434 | 1E 92 02 | 0x6C | R/W | R/W | R/W | R/W | Byte | */
/* | | | | | | | | | */
/* | S8515 | 1E 93 01 | 0x38 | R/W | R/W | W | NA | Byte | */
/* | S8535 | 1E 93 03 | 0x68 | R/W | R/W | R/W | R/W | Byte | */
/* | | | | | | | | | */
/* |mega83 | 1E 93 05 | 0x65 | R/W | R/W | R/W | R/W | Page | */
/* |mega103 | 1E 97 01 | 0x41 | R/W | R/W | R/W | R/W | Page | */
/* |mega161 | 1E 94 01 | 0x60 | R/W | R/W | R/W | R/W | Page | */
/* |mega163 | 1E 94 02 | 0x64 | R/W | R/W | R/W | R/W | Page | */
/* | | | | | | | | | */
/* |mega8 | 1E 93 07 | 0x76 | R/W | R/W | R/W | R/W | Page | */
/* |mega16 | 1E 94 03 | 0x74 | R/W | R/W | R/W | R/W | Page | */
/* |mega32 | 1E 95 02 | 0x72 | R/W | R/W | R/W | R/W | Page | */
/* |mega128 | 1E 97 02 | 0x43 | R/W | R/W | R/W | R/W | Page | */
/* |mega8515 | 1E 93 06 | 0x3A | R/W | R/W | R/W | R/W | Page | */
/* |mega8535 | 1E 93 08 | 0x69 | R/W | R/W | R/W | R/W | Page | */
/* +---------------+----------+------+-------+------+------+------+-------+ */
/*--------------------------------------------------------------------------*/
/* +-------------+------------+------+ */
/* Commands | Host writes | Host reads | | */
/* -------- +-----+-------+------+-----+ | */
/* | ID | data | data | | Note | */
/* +-----------------------------------+-----+-------+------+-----+------+ */
/* | Enter programming mode | 'P' | | | 13d | 1 | */
/* | Report autoincrement address | 'a' | | | 'Y' | | */
/* | Set address | 'A' | ah al | | 13d | 2 | */
/* | Write program memory, low byte | 'c' | dd | | 13d | 3 | */
/* | Write program memory, high byte | 'C' | dd | | 13d | 3 | */
/* | Issue Page Write | 'm' | | | 13d | | */
/* | Read program memory | 'R' | |dd(dd)| | 4 | */
/* | Write data memory | 'D' | dd | | 13d | | */
/* | Read data memory | 'd' | | dd | | | */
/* | Chip erase | 'e' | | | 13d | | */
/* | Write lock bits | 'l' | dd | | 13d | | */
/* | Write fuse bits | 'f' | dd | | 13d | 11 | */
/* | Read fuse bits | 'F' | | dd | | 11 | */
/* | Leave programming mode | 'L' | | | 13d | 5 | */
/* | Select device type | 'T' | dd | | 13d | 6 | */
/* | Read signature bytes | 's' | | 3*dd | | | */
/* | Return supported device codes | 't' | | n*dd | 00d | 7 | */
/* | Return software identifier | 'S' | | s[7] | | 8 | */
/* | Return sofware version | 'V' | |dd dd | | 9 | */
/* | Return hardware version | 'v' | |dd dd | | 9 | */
/* | Return programmer type | 'p' | | dd | | 10 | */
/* | Set LED | 'x' | dd | | 13d | 12 | */
/* | Clear LED | 'y' | dd | | 13d | 12 | */
/* | Universial command | ':' | 3*dd | dd | 13d | | */
/* | New universal command | '.' | 4*dd | dd | 13d | | */
/* | Special test command | 'Z' | 2*dd | dd | | | */
/* +-----------------------------------+-----+-------+------+-----+------+ */
/* | Read lock bits | 'r' | | dd | | | */
/* | Read high fuse bits | 'N' | | dd | | | */
/* | Read extended fuse bits | 'Q' | | dd | | | */
/* | Write high fuse bits | '.' |ACA8 2d| | 13d | | */
/* | Write extended fuse bits | '.' |ACA4 2d| | 13d | | */
/* +-----------------------------------+-----+-------+------+-----+------+ */
/* | Check block support | 'b' | |"Y"2*dd | | */
/* | Start block flash load | 'B' |2*dd"F"| | 13d | | */
/* | | | n*dd | | | | */
/* | Start block eeprom load | 'B' |2*dd"E"| | 13d | | */
/* | | | n*dd | | | | */
/* | Start block flash read | 'g' |2*dd"F"| n*dd | 13d | | */
/* | Start block eeprom read | 'g' |2*dd"E"| n*dd | 13d | | */
/* +-----------------------------------+-----+-------+------+-----+------+ */
#endif //AVRDEVICE_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -