From b6dbba56b10eb91e0cce439ce9f7d0e31e7eaad1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=5B=20Kristjan=20Komlo=C5=A1i=20HomePC=20=5D?= <[ kristjan.komlosi@gmail.com ]> Date: Sat, 24 Jun 2017 17:29:17 +0200 Subject: [PATCH] Docs and fix on the cy-config util --- cy-config.o | Bin 0 -> 11312 bytes docs/manual.md | 38 +- tinio.o | Bin 0 -> 16128 bytes tinio/Makefile | 5 +- tinio/builds/a.out | Bin 7904 -> 0 bytes tinio/builds/compiling_error.txt | 4 - tinio/builds/main.cpp | 53 -- tinio/builds/main.o | Bin 2288 -> 0 bytes tinio/builds/tinio1 | Bin 3960 -> 0 bytes tinio/cy-config | Bin 0 -> 18616 bytes tinio/{Command_Utility.c => cy-config.c} | 667 ++++++++++++----------- tinio/tinio | 1 - tinio/tinio.cpp | 20 +- 13 files changed, 378 insertions(+), 410 deletions(-) create mode 100644 cy-config.o create mode 100644 tinio.o delete mode 100755 tinio/builds/a.out delete mode 100644 tinio/builds/compiling_error.txt delete mode 100644 tinio/builds/main.cpp delete mode 100644 tinio/builds/main.o delete mode 100755 tinio/builds/tinio1 create mode 100755 tinio/cy-config rename tinio/{Command_Utility.c => cy-config.c} (90%) delete mode 120000 tinio/tinio diff --git a/cy-config.o b/cy-config.o new file mode 100644 index 0000000000000000000000000000000000000000..fe6253aa5a271f14b1e7929bfbc79b17d37d8491 GIT binary patch literal 11312 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 literal 0 HcmV?d00001 diff --git a/tinio/Makefile b/tinio/Makefile index 6baf945..d65fe63 100644 --- a/tinio/Makefile +++ b/tinio/Makefile @@ -4,10 +4,10 @@ default: tinio utils tinio: echo "Building tinio..." - $(CC) -lcyusbserial main.cpp -o tinio + $(CC) -lcyusbserial tinio.cpp -o tinio utils: - $(CC) -lcyusbserial Command_Utility.c -o cy-config + $(CC) -lcyusbserial cy-config.c -o cy-config install: echo "Installing tinio and flasher" @@ -16,3 +16,4 @@ install: mkdir /usr/share/tinio mkdir /usr/share/tinio/flashes cp flashes/* /usr/share/tinio/flashes + diff --git a/tinio/builds/a.out b/tinio/builds/a.out deleted file mode 100755 index a688127f2f192add597cb503f1801b56c5517436..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7904 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 diff --git a/tinio/builds/compiling_error.txt b/tinio/builds/compiling_error.txt deleted file mode 100644 index 218245c..0000000 --- a/tinio/builds/compiling_error.txt +++ /dev/null @@ -1,4 +0,0 @@ -/root/projekti/CyUSB/tinio/main.cpp:6:43: fatal error: /usr/local/lib/libcyusbserial.h: Datoteka ali imenik s tem imenom ne obstaja - #include "/usr/local/lib/libcyusbserial.h" - ^ -compilation terminated. diff --git a/tinio/builds/main.cpp b/tinio/builds/main.cpp deleted file mode 100644 index 4cc3263..0000000 --- a/tinio/builds/main.cpp +++ /dev/null @@ -1,53 +0,0 @@ -//Tinio - the Tiny I/O tool -#include -#include -#include -#include -#include - - -//----ACTUAL CODE BELOW -int verifyArgNum(int num) //verifies the number of arguments. minimum is 2 -{ - if (num < 2) - { - return 0; - } - return 1; -} - -int initLib() //initializes the cypress library -{ - if (CyLibraryInit() != CY_SUCCESS) //if the init procedure fails - { //the library may be running. - if (CyLibraryExit() != CY_SUCCESS) //try to close the possibly running library - { - return 1; //if even that fails, abort. - } - initLib(); //if the library closed gracefully - //try to reinitialize - } - -} - -void usage() -{ - puts("Tinio test build 1"); - puts("Usage:"); - //----TODO----// - //add a command that prints a - //usage summary. -} - -int locateDevice() //locate the device and verify it's the right one -{ -; -} - -int main(int argc, char const *argv[]) { - if (!(verifyArgNum(argc))) - { - usage(); - } - initLib(); -} diff --git a/tinio/builds/main.o b/tinio/builds/main.o deleted file mode 100644 index a83344ab3c4eff9afdb3a91699c758565ba17973..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2288 zcmb`I&r1|x7{}jr)h$!oejGxD=2Qkb>=;=|#Oi9UARa6$B(d3b)JgXTGqcNXBnnor z1R+$=A)-H_qqhVP(XC^r=n@2Wuv>=(d%iR8+rGWKUZMxyeV*s@{CH>H_nmjwMklT} zg+fe7h+ShfPf*6*wbbmmZ^l^%Yh%;N%D2jDbz`*}T8nHUu-meQ2D3W|eFu5Gee~t_ zqiwJ2FE8S!?Y8(Z$bOG(->+GlL5Qp5#*ZjXm#h@_o{m;4A4JC&=pVH5k^dwgcW&BQ zJEwV;>uITiy)v&EY}z#!twF}d5{W^rcf?BBW>y=}4c+K7jB|md^~a2X*yUJ1V<+)Q zB%udWEL4hyy4xd%HtGF(h+#mw@iWvJebSWZXuU-VK_JS z7J(M^!?pU?JbporXM;Eo)hTREGyAz;7a$OBxbxuQM(ISG58%>akut);n@A)u!wf4{ zFJabN2iu4om!8vKJ7PVY3*TRJV!bq?G*lTN(1?!^NB?nNAo@)nkbi^c&+~kLugJDI zU*_E3BiI?!&g$uWp3Th|{YA^M7s^A<;$$IX6S+j^)tj(WMV2U&a!jW@PNe3ImdKl% zxmds{F0y>VbNxmuxwPq7BUaH)6UH2TUXAM}(nn}i_X82@1Kuw21lbU9thLC;`$NFw z-NpMukl#r|?C)EJi~VJ~Th4f9inQkhdP!K0wPNa?Rq~iVZ+a%vQ?AQ&Cl@&BTqa{>DVEK7 zmOeH)-RF8{dYKYXW-ZMvIA#XN>A#3ZU2q4eUsjwL7zYC5e>ikzI1{RZYVE*F% zS%r&wp@%6hY&rFGBiJDKHfQSdYrNk7}#a=?Zd3fIoIBm9dl14m$KgH*$b5KDx3HcO~JIoLYE< z{X)pw@Tsu95^&>$ce9^xc2jGk`Rb&z=<NAvw#>S4!YX*+c+Jva1)~F06M1*d?**4SL5CRXxZdLL~CtDyU@_v z#CRI99_WPI?H3!Y`%!D=f4+r(yahhcA`jp`XK9Z^uvl~oN-Y-)se+Za%`_Tdw4Ah4 zc{5)=leL|?7B8V@SaYUhf?=cz1*71Yd4jTYFp)enGHMKJgW3t4H>gf0P#fv2LltwTp~?0!*4iSz{udGufl>Ck@C zX^KZ1O79~*NcuYJ(}|UbD_1v{uWkmeb*xd?o?Y&zUmJi ztwXsz4p)Ch(DlBnwdqhTqkeaoq#Q~W*TgKb{A&+Rmslx2`7FM<@?-UioADOq4_CiO zt$G6owUVFiP1#vH7j>+H6HOKE^jtIs(*^UAbqb!Pr6L7BdItifp1{7{9TEDrUqFnW zeoV5D9EQ7kZU#p?+b^I4+ulHa0PULBZrAPaBOd#Q_$z2XigtQ;wfrOX_^%P(gZATI zd)BodMC=YeiNChCbh3B#jCbvQt9#ew$aQ$L@AV_c5AG*e?u4JqeWGuZXqD?&*j1qv z)RiQ6WP|NePE+hh-zU*tm%($)g~{D3@x7x9LzHk??flglAoe`tk&vz=++L1^YEUNz zcpOTX{XAj)eo!a#|4veO{S(dedY72rWIi!EdMesKW~FR18y(VOTI}Um?650E2M1z9 z11ARt{mFcK2;ZXg7q2OVbwJ)*BOU^IUyXQM?Y%bQVQ6-KA*|kV?v4H(An&IUkH94F zyAj_}>&uP!PM|N{Pa)U^iKh5&?1LBm?$}2^mgGDYU!D(J%moJE9XB{iQ2-<>K zSO9IVoJCicJ9*G9Ws4fFtzhS}4T^!byp=Y!#k2#OW0i2s=hUwP%~~+#^Jd0USmiI+ZAVjzWfFLBx$^cqUkLnL16 z-hBq7V#xZ%Pxv^-Q%@4T8q^V?{-hX0UAArg48t@Ew6_rkq>e^-!UW@_cH-mT{|sWZ zr*?dZq~1<)yspstAbnoAfhKRf)Rzj!e^U=tlK=cHj+gyQ{nq%0MBh{5GroAK^9hcB z;ER|23w#*`+B+||)(_pydcUFCot)9_JR@L;Q8eq(md3oWZm-p;Gc)4^RJNs M={uLzM*sYO16p~hiU0rr diff --git a/tinio/cy-config b/tinio/cy-config new file mode 100755 index 0000000000000000000000000000000000000000..f22c9b3e186358ff320cae26f61e02bce51d26bf GIT binary patch literal 18616 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 literal 0 HcmV?d00001 diff --git a/tinio/Command_Utility.c b/tinio/cy-config.c similarity index 90% rename from tinio/Command_Utility.c rename to tinio/cy-config.c index 01ef543..f64abb8 100644 --- a/tinio/Command_Utility.c +++ b/tinio/cy-config.c @@ -30,8 +30,8 @@ #include #include -#include "../../common/header/CyUSBSerial.h" -#include "../../common/header/CyUSBBootloader.h" +#include "include/CyUSBSerial.h" +#include "include/CyUSBBootloader.h" #define CY_MAX_DEVICES 30 #define CY_MAX_INTERFACES 4 @@ -41,7 +41,7 @@ typedef struct _CY_DEVICE_STRUCT { int interfaceFunctionality[CY_MAX_INTERFACES]; bool isI2c; bool isSpi; - int numInterface; + int numInterface; }CY_DEVICE_STRUCT; CY_DEVICE_STRUCT *glDevice; @@ -54,331 +54,7 @@ unsigned short pageAddress = -1; short readWriteLength = -1; bool deviceAddedRemoved = false; unsigned char read_buffer[512]; -int getUserInput() -{ - char userInput[6], x; - int output,i = 0; - bool isDigit = true; - x = getchar(); - while (x != '\n'){ - if (i < 5){ - userInput[i] = x; - i++; - } - if (!isdigit(x)) - isDigit = false; - x = getchar(); - } - userInput[i] = '\0'; - if (isDigit == false) - return -1; - output = atoi(userInput); - return output; -} - - -unsigned int GetCheckSum(unsigned int *buff, unsigned int length) -{ - unsigned int i,val; - unsigned int checkSum =0; - - for (i = 0; i < length; i++) // start at 12th byte - { - checkSum += buff[i]; - } - - return checkSum; -} - - -void deviceHotPlug () { - - CY_RETURN_STATUS rStatus; - deviceAddedRemoved = true; - selectedDeviceNum = -1; - selectedInterfaceNum = -1; - printf ("Device of interest Removed/Added \n"); - rStatus = CyGetListofDevices (&numDevices); - if (rStatus != CY_SUCCESS) { - printf ("CY:Error in Getting List of Devices: Error NO:<%d> \n", rStatus); - return rStatus; - } - printListOfDevices (false); -} - -int main (int argc, char **argv) -{ - int index = 0, i, j, userInput; - int output; - int count=0,h=0,cnt; - int size_buffer,size_checksum; - FILE *fp=NULL; - CY_HANDLE handle; - unsigned char buff[516]; - int silicon_id; - int tempSelectedDeviceNum, tempSelectedInterfaceNum; - CY_RETURN_STATUS rStatus; - signal (SIGUSR1, deviceHotPlug); - char src_file[100]; - char id[4]; - - memset(buff,0,sizeof(buff)); - - - glDevice = (CY_DEVICE_STRUCT *)malloc (CY_MAX_DEVICES *sizeof (CY_DEVICE_STRUCT)); - if (glDevice == NULL){ - printf ("Memory allocation failed ...!! \n"); - return -1; - } - rStatus = CyLibraryInit (); - if (rStatus != CY_SUCCESS) { - printf ("CY:Error in Doing library init Error NO:<%d> \n", rStatus); - return rStatus; - } - rStatus = CyGetListofDevices (&numDevices); - if (rStatus != CY_SUCCESS) { - printf ("CY:Error in Getting List of Devices: Error NO:<%d> \n", rStatus); - return rStatus; - } - printListOfDevices(true); - do { - - printf ("-------------------------------------------------------------------\n"); - printf ("1: Print list of devices \n"); - if (selectedDeviceNum != -1 && selectedInterfaceNum != -1){ - printf ("2: Change device selection--selected device: [Device number %d] : [Interface No %d]",\ - selectedDeviceNum, selectedInterfaceNum); - if (glDevice[selectedDeviceNum].interfaceFunctionality[selectedInterfaceNum] == CY_TYPE_I2C) - printf (" : I2C\n"); - else if (glDevice[selectedDeviceNum].interfaceFunctionality[selectedInterfaceNum] == CY_TYPE_SPI) - printf (" : SPI\n"); - else if (glDevice[selectedDeviceNum].interfaceFunctionality[selectedInterfaceNum] == CY_TYPE_UART) - printf ("UART : \n"); - else - printf (" : NA\n"); - - } - else - printf ("2: Select device...No device selected !!\n"); - - - userInput = getUserInput(); - if (userInput < 1 || userInput > 5){ - printf ("Wrong selection code ... Enter again \n"); - continue; - } - - switch (userInput){ - - case 1: - printListOfDevices(true); - break; - case 2: - if (cyDevices == 0) { - printf ("No device of interest connected ...!!\n"); - continue; - } - printf ("Enter Device number to be selected.. \n"); - tempSelectedDeviceNum = getUserInput(); - //printf ("Selected device number is %d \n",tempSelectedDeviceNum); - if (tempSelectedDeviceNum >= cyDevices || tempSelectedDeviceNum == -1){ - printf ("Wrong device selection \n"); - continue; - } - printf ("Enter interface number..\n"); - tempSelectedInterfaceNum = getUserInput(); - //printf ("Selected device number is %d %d\n",tempSelectedInterfaceNum, glDevice[tempSelectedDeviceNum].numInterface); - - if (tempSelectedInterfaceNum >= glDevice[tempSelectedDeviceNum].numInterface || - tempSelectedInterfaceNum == -1) { - printf ("Wrong interface Selection selection \n"); - continue; - } - - if (deviceAddedRemoved == true) { - printf ("Device of interest was added/removed .... Print and select from new list\n"); - continue; - } - selectedDeviceNum = tempSelectedDeviceNum; - selectedInterfaceNum = tempSelectedInterfaceNum; - - - rStatus = CyOpen (selectedDeviceNum,selectedInterfaceNum , &handle); - //printf("return status = %d", rStatus); - if (rStatus == CY_SUCCESS){ - //printf("device opened \n"); - } - else - { - printf("fail \n"); - } - - - - // printf("Please enter file to be opened"); - - fp = fopen(argv[1],"rb+"); - // printf("%s", src_file); - rStatus = CyFlashConfigEnable(handle,1); - - if (rStatus == CY_SUCCESS){ - // printf("Flash is configured"); - } - else - { - printf("Manufacturing mode of FLASH is not configured"); - } - // printf("status %d",rStatus); - - if(fp == NULL) - { - printf("\n fopen() Error!!!\n"); - return 1; - } - printf("\n File opened successfully\n"); - if(sizeof(buff) != fread(buff,1,516,fp)) - { - printf("\n fread() failed\n"); - return 1; - } - printf("\n Bytes successfully read \n"); - // printf("reached here"); - - // silicon_id = *(unsigned int *)buff; - - rStatus=CyGetSiliconID(handle,&silicon_id); - if (rStatus == CY_SUCCESS){ - // printf(" Correct silicon id"); - - } - else - { - printf("Not correct ID"); - } - - // printf("silicon id %04x,%d",silicon_id,sizeof(silicon_id)); - id[0]= (silicon_id); - id[1]= ((silicon_id >> 8) & 0xFF); - id[2]= ((silicon_id >> 16) & 0xFF); - id[3]= ((silicon_id >> 24) & 0xFF); - - - - rStatus=CyReadDeviceConfig(handle,&read_buffer); - if (rStatus == CY_SUCCESS){ - // printf(" Got the data"); - - } - else - { - printf("Not done"); - } - - /*printf (" 0 %02x, %02x \r \n", id[0],read_buffer[0]); - printf (" 1 %02x, %02x \r \n", id[1],read_buffer[1]); - printf (" 2 %02x, %02x \r \n", id[2],read_buffer[2]); - printf (" 3 %02x, %02x\r \n", id[3],read_buffer[3]);*/ - - size_buffer = sizeof(read_buffer); - //printf("The size is %d, buff %d", size_buffer,sizeof(buff)); - - /*for (i = 4; i < 516; i +=16) - { - printf("\n%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x", - buff[i], buff[i+1], buff[i+2], buff[i+3], buff[i+4], buff[i+5], buff[i+6], buff[i+7], buff[i+8], - buff[i+9], buff[i+10], buff[i+11], buff[i+12], buff[i+13], buff[i+14], buff[i+15]); - } - for (i = 0; i < 512; i +=16) - { - printf("\n%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x", - read_buffer[i], read_buffer[i+1], read_buffer[i+2], read_buffer[i+3], read_buffer[i+4], read_buffer[i+5], read_buffer[i+6], - read_buffer[i+7], read_buffer[i+8], - read_buffer[i+9], read_buffer[i+10], read_buffer[i+11], read_buffer[i+12], read_buffer[i+13], read_buffer[i+14], read_buffer[i+15]); - }*/ - memcpy (&buff[4], read_buffer, 28); - - size_checksum= GetCheckSum((unsigned int *)(&buff[16]), 125); - // printf("The checksum size is %d",size_checksum); - - buff[12]= (size_checksum & 0xFF); - buff[13]= ((size_checksum >> 8) & 0xFF); - buff[14]= ((size_checksum >> 16) & 0xFF); - buff[15]= ((size_checksum >> 24) & 0xFF); - - // printf("checksum 0x%08x\n", size_checksum); - /* for (i = 4; i < 516; i +=16) - { - printf("\n%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x", - buff[i], buff[i+1], buff[i+2], buff[i+3], buff[i+4], buff[i+5], buff[i+6], buff[i+7], buff[i+8], - buff[i+9], buff[i+10], buff[i+11], buff[i+12], buff[i+13], buff[i+14], buff[i+15]); - }*/ - - // if(((id[0] == ffffffA1) || (id[0] == ffffffA2) || (id[0] == ffffffA3)) && (id[1] == 08)) - if((silicon_id == 0x08A1) || (silicon_id == 0x08A2) || (silicon_id == 0x08A3)) - { - - rStatus= CyWriteDeviceConfig(handle,&buff[4]); - if (rStatus == CY_SUCCESS){ - printf(" Programming Flash is done"); - } - else - { - printf("Not done"); - } - } - else - { - printf("wrong silicon id"); - } - - fclose(fp); - - printf("\n File stream closed \n"); - - - - rStatus= CyClose(handle); - if (rStatus == CY_SUCCESS){ - //printf("Device closed"); - } - else - { - printf("Not closed"); - } - - - break; - case 3: - exitApp = true; - CyLibraryExit (); - break; - } - }while (exitApp == false); - free (glDevice); -} -bool isCypressDevice (int deviceNum) { - CY_HANDLE handle; - unsigned char interfaceNum = 0; - unsigned char sig[6]; -int op; - CY_RETURN_STATUS rStatus; - rStatus = CyOpen (deviceNum, interfaceNum, &handle); - //op= libusb_detach_kernel_driver(handle,0); - if (rStatus == CY_SUCCESS){ - rStatus = CyGetSignature (handle, sig); - if (rStatus == CY_SUCCESS){ - CyClose (handle); - return true; - } - else { - CyClose (handle); - return false; - } - } - else - return false; -} void printListOfDevices (bool isPrint) { int index_i = 0, index_j = 0, i, j, countOfDevice = 0, devNum; @@ -386,15 +62,15 @@ void printListOfDevices (bool isPrint) bool set1 = false; unsigned char deviceID[CY_MAX_DEVICES]; - unsigned char functionality[64]; + char functionality[64]; CY_DEVICE_INFO deviceInfo; CY_DEVICE_CLASS deviceClass[CY_MAX_INTERFACES]; CY_DEVICE_TYPE deviceType[CY_MAX_INTERFACES]; CY_RETURN_STATUS rStatus; - deviceAddedRemoved = false; - CyGetListofDevices (&numDevices); - //printf ("The number of devices is %d \n", numDevices); + deviceAddedRemoved = false; + CyGetListofDevices ((UINT8 *)&numDevices); + //printf ("The number of devices is %d \n", numDevices); for (i = 0; i < numDevices; i++){ for (j = 0; j< CY_MAX_INTERFACES; j++) glDevice[i].interfaceFunctionality[j] = -1; @@ -435,14 +111,14 @@ void printListOfDevices (bool isPrint) break; default: strcpy (functionality, "NA"); - break; + break; } } else if (deviceInfo.deviceClass[interfaceNum] == CY_CLASS_CDC){ strcpy (functionality, "NA"); } if (isPrint) { - printf ("%d |%x |%x | %d | %s\n", \ + printf ("%d |%x |%x | %d | %s\n", \ index, \ deviceInfo.vidPid.vid, \ deviceInfo.vidPid.pid, \ @@ -462,3 +138,328 @@ void printListOfDevices (bool isPrint) printf("Cydevices %d",cyDevices); } +void deviceHotPlug () { + + CY_RETURN_STATUS rStatus; + deviceAddedRemoved = true; + selectedDeviceNum = -1; + selectedInterfaceNum = -1; + printf ("Device of interest Removed/Added \n"); + rStatus = CyGetListofDevices ((UINT8 *)&numDevices); + if (rStatus != CY_SUCCESS) { + printf ("CY:Error in Getting List of Devices: Error NO:<%d> \n", rStatus); + return; + } + printListOfDevices (false); +} + +int getUserInput() +{ + char userInput[6], x; + int output,i = 0; + bool isDigit = true; + x = getchar(); + while (x != '\n'){ + if (i < 5){ + userInput[i] = x; + i++; + } + if (!isdigit(x)) + isDigit = false; + + x = getchar(); + } + userInput[i] = '\0'; + if (isDigit == false) + return -1; + output = atoi(userInput); + return output; +} + + +unsigned int GetCheckSum(unsigned int *buff, unsigned int length) +{ + unsigned int i,val; + unsigned int checkSum =0; + + for (i = 0; i < length; i++) // start at 12th byte + { + checkSum += buff[i]; + } + + return checkSum; +} + + +int main (int argc, char **argv) +{ + int index = 0, i, j, userInput; + int output; + int count=0,h=0,cnt; + int size_buffer,size_checksum; + FILE *fp=NULL; + CY_HANDLE handle; + unsigned char buff[516]; + int silicon_id; + int tempSelectedDeviceNum, tempSelectedInterfaceNum; + CY_RETURN_STATUS rStatus; + //signal (SIGUSR1, deviceHotPlug); + char src_file[100]; + char id[4]; + + memset(buff,0,sizeof(buff)); + + + glDevice = (CY_DEVICE_STRUCT *)malloc (CY_MAX_DEVICES *sizeof (CY_DEVICE_STRUCT)); + if (glDevice == NULL){ + printf ("Memory allocation failed ...!! \n"); + return -1; + } + rStatus = CyLibraryInit (); + if (rStatus != CY_SUCCESS) { + printf ("CY:Error in Doing library init Error NO:<%d> \n", rStatus); + return rStatus; + } + rStatus = CyGetListofDevices ((UINT8 *)&numDevices); + if (rStatus != CY_SUCCESS) { + printf ("CY:Error in Getting List of Devices: Error NO:<%d> \n", rStatus); + return rStatus; + } + printListOfDevices(true); + do { + + printf ("-------------------------------------------------------------------\n"); + printf ("1: Print list of devices \n"); + if (selectedDeviceNum != -1 && selectedInterfaceNum != -1){ + printf ("2: Change device selection--selected device: [Device number %d] : [Interface No %d]",\ + selectedDeviceNum, selectedInterfaceNum); + if (glDevice[selectedDeviceNum].interfaceFunctionality[selectedInterfaceNum] == CY_TYPE_I2C) + printf (" : I2C\n"); + else if (glDevice[selectedDeviceNum].interfaceFunctionality[selectedInterfaceNum] == CY_TYPE_SPI) + printf (" : SPI\n"); + else if (glDevice[selectedDeviceNum].interfaceFunctionality[selectedInterfaceNum] == CY_TYPE_UART) + printf ("UART : \n"); + else + printf (" : NA\n"); + + } + else + printf ("2: Select device...No device selected !!\n"); + + + userInput = getUserInput(); + if (userInput < 1 || userInput > 5){ + printf ("Wrong selection code ... Enter again \n"); + continue; + } + + switch (userInput){ + + case 1: + printListOfDevices(true); + break; + case 2: + if (cyDevices == 0) { + printf ("No device of interest connected ...!!\n"); + continue; + } + printf ("Enter Device number to be selected.. \n"); + tempSelectedDeviceNum = getUserInput(); + //printf ("Selected device number is %d \n",tempSelectedDeviceNum); + if (tempSelectedDeviceNum >= cyDevices || tempSelectedDeviceNum == -1){ + printf ("Wrong device selection \n"); + continue; + } + printf ("Enter interface number..\n"); + tempSelectedInterfaceNum = getUserInput(); + //printf ("Selected device number is %d %d\n",tempSelectedInterfaceNum, glDevice[tempSelectedDeviceNum].numInterface); + + if (tempSelectedInterfaceNum >= glDevice[tempSelectedDeviceNum].numInterface || + tempSelectedInterfaceNum == -1) { + printf ("Wrong interface Selection selection \n"); + continue; + } + + if (deviceAddedRemoved == true) { + printf ("Device of interest was added/removed .... Print and select from new list\n"); + continue; + } + selectedDeviceNum = tempSelectedDeviceNum; + selectedInterfaceNum = tempSelectedInterfaceNum; + + + rStatus = CyOpen (selectedDeviceNum,selectedInterfaceNum , &handle); + //printf("return status = %d", rStatus); + if (rStatus == CY_SUCCESS){ + //printf("device opened \n"); + } + else + { + printf("fail \n"); + } + + + + // printf("Please enter file to be opened"); + + fp = fopen(argv[1],"rb+"); + // printf("%s", src_file); + rStatus = CyFlashConfigEnable(handle,1); + + if (rStatus == CY_SUCCESS){ + // printf("Flash is configured"); + } + else + { + printf("Manufacturing mode of FLASH is not configured"); + } + // printf("status %d",rStatus); + + if(fp == NULL) + { + printf("\n fopen() Error!!!\n"); + return 1; + } + printf("\n File opened successfully\n"); + if(sizeof(buff) != fread(buff,1,516,fp)) + { + printf("\n fread() failed\n"); + return 1; + } + printf("\n Bytes successfully read \n"); + // printf("reached here"); + + // silicon_id = *(unsigned int *)buff; + + rStatus=CyGetSiliconID(handle,(UINT32 *)&silicon_id); + if (rStatus == CY_SUCCESS){ + // printf(" Correct silicon id"); + + } + else + { + printf("Not correct ID"); + } + + // printf("silicon id %04x,%d",silicon_id,sizeof(silicon_id)); + id[0]= (silicon_id); + id[1]= ((silicon_id >> 8) & 0xFF); + id[2]= ((silicon_id >> 16) & 0xFF); + id[3]= ((silicon_id >> 24) & 0xFF); + + + + rStatus=CyReadDeviceConfig(handle, (UCHAR *)&read_buffer); + if (rStatus == CY_SUCCESS){ + // printf(" Got the data"); + + } + else + { + printf("Not done"); + } + + /*printf (" 0 %02x, %02x \r \n", id[0],read_buffer[0]); + printf (" 1 %02x, %02x \r \n", id[1],read_buffer[1]); + printf (" 2 %02x, %02x \r \n", id[2],read_buffer[2]); + printf (" 3 %02x, %02x\r \n", id[3],read_buffer[3]);*/ + + size_buffer = sizeof(read_buffer); + //printf("The size is %d, buff %d", size_buffer,sizeof(buff)); + + /*for (i = 4; i < 516; i +=16) + { + printf("\n%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x", + buff[i], buff[i+1], buff[i+2], buff[i+3], buff[i+4], buff[i+5], buff[i+6], buff[i+7], buff[i+8], + buff[i+9], buff[i+10], buff[i+11], buff[i+12], buff[i+13], buff[i+14], buff[i+15]); + } + for (i = 0; i < 512; i +=16) + { + printf("\n%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x", + read_buffer[i], read_buffer[i+1], read_buffer[i+2], read_buffer[i+3], read_buffer[i+4], read_buffer[i+5], read_buffer[i+6], + read_buffer[i+7], read_buffer[i+8], + read_buffer[i+9], read_buffer[i+10], read_buffer[i+11], read_buffer[i+12], read_buffer[i+13], read_buffer[i+14], read_buffer[i+15]); + }*/ + memcpy (&buff[4], read_buffer, 28); + + size_checksum= GetCheckSum((unsigned int *)(&buff[16]), 125); + // printf("The checksum size is %d",size_checksum); + + buff[12]= (size_checksum & 0xFF); + buff[13]= ((size_checksum >> 8) & 0xFF); + buff[14]= ((size_checksum >> 16) & 0xFF); + buff[15]= ((size_checksum >> 24) & 0xFF); + + // printf("checksum 0x%08x\n", size_checksum); + /* for (i = 4; i < 516; i +=16) + { + printf("\n%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x", + buff[i], buff[i+1], buff[i+2], buff[i+3], buff[i+4], buff[i+5], buff[i+6], buff[i+7], buff[i+8], + buff[i+9], buff[i+10], buff[i+11], buff[i+12], buff[i+13], buff[i+14], buff[i+15]); + }*/ + + // if(((id[0] == ffffffA1) || (id[0] == ffffffA2) || (id[0] == ffffffA3)) && (id[1] == 08)) + if((silicon_id == 0x08A1) || (silicon_id == 0x08A2) || (silicon_id == 0x08A3)) + { + + rStatus= CyWriteDeviceConfig(handle,&buff[4]); + if (rStatus == CY_SUCCESS){ + printf(" Programming Flash is done"); + } + else + { + printf("Not done"); + } + } + else + { + printf("wrong silicon id"); + } + + fclose(fp); + + printf("\n File stream closed \n"); + + + + rStatus= CyClose(handle); + if (rStatus == CY_SUCCESS){ + //printf("Device closed"); + } + else + { + printf("Not closed"); + } + + + break; + case 3: + exitApp = true; + CyLibraryExit (); + break; + } + }while (exitApp == false); + free (glDevice); +} +bool isCypressDevice (int deviceNum) { + CY_HANDLE handle; + unsigned char interfaceNum = 0; + unsigned char sig[6]; +int op; + CY_RETURN_STATUS rStatus; + rStatus = CyOpen (deviceNum, interfaceNum, &handle); + //op= libusb_detach_kernel_driver(handle,0); + if (rStatus == CY_SUCCESS){ + rStatus = CyGetSignature (handle, sig); + if (rStatus == CY_SUCCESS){ + CyClose (handle); + return true; + } + else { + CyClose (handle); + return false; + } + } + else + return false; +} diff --git a/tinio/tinio b/tinio/tinio deleted file mode 120000 index f8305e7..0000000 --- a/tinio/tinio +++ /dev/null @@ -1 +0,0 @@ -a.out \ No newline at end of file diff --git a/tinio/tinio.cpp b/tinio/tinio.cpp index 4d0eb3f..7378547 100644 --- a/tinio/tinio.cpp +++ b/tinio/tinio.cpp @@ -15,7 +15,7 @@ bool valueToWrite=false, writeFlag=false, readFlag=false, exitFlag=false, expert // those vars are to be used with locateDevice function const uint8_t maxDevs = 16; // 16 connected devices should be enough... const CY_VID_PID deviceVidPid{UINT16(0x04b4), - UINT16(0x0002)}; // the id for the chip + UINT16(0x0004)}; // the id for the chip uint8_t deviceNumList[maxDevs]; uint8_t deviceCount; CY_DEVICE_INFO deviceInfoList[maxDevs]; @@ -171,16 +171,15 @@ int evalErrors(const CY_RETURN_STATUS error) { // evaluates errors, duh? int locateDevice() // locate the device and verify it's the right one { // printf("Locating devices..."); //debug, not needed - try { + CY_RETURN_STATUS retVal; - retVal = CyGetDeviceInfoVidPid( - deviceVidPid, deviceNumList, - deviceInfoList, //--searches for the device with given VID/PID - &deviceCount, maxDevs); //--and stores them into lists - //--refer to lib docs for more info - throw retVal; // throws the return value of the func - } catch (CY_RETURN_STATUS errVal) { - int r = evalErrors(errVal); // evaluate the errors + retVal = CyGetDeviceInfoVidPid( //--searches for the device with given VID/PID + deviceVidPid, deviceNumList, //--and stores them into lists + deviceInfoList, //--refer to lib docs for more info + &deviceCount, maxDevs); + + + int r = evalErrors(retVal); // evaluate the errors if (r != 0) { // exit on error return r; } @@ -192,7 +191,6 @@ int locateDevice() // locate the device and verify it's the right one return 10; } return 0; - } } int attachDevices() { // loops through devices and attaches them to handles