From 989d4907f9708523d412131ef19a739ecd362fde Mon Sep 17 00:00:00 2001 From: Deqing Sun Date: Tue, 6 Nov 2018 15:05:30 -0500 Subject: [PATCH 1/9] inc digisparkPull speed --- src/dwire/DigiSpark.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/dwire/DigiSpark.c b/src/dwire/DigiSpark.c index db65180..1a37004 100644 --- a/src/dwire/DigiSpark.c +++ b/src/dwire/DigiSpark.c @@ -187,10 +187,10 @@ void digisparkUSBSendBytes(struct UPort *up, u8 state, char *out, int outlen) { int tries = 0; int status = usb_control_msg(up->handle, OUT_TO_LW, 60, state, 0, out, outlen, USB_TIMEOUT); - while ((tries < 200) && (status <= 0)) { + while ((tries < 1000) && (status <= 0)) { // Wait for previous operation to complete tries++; - delay(5); + delay(1); status = usb_control_msg(up->handle, OUT_TO_LW, 60, state, 0, out, outlen, USB_TIMEOUT); } if (status < outlen) {Ws("Failed to send bytes to AVR, status "); Wd(status,1); PortFail(up, "");} @@ -249,9 +249,9 @@ int DigisparkReceive(struct UPort *up, u8 *in, int inlen) { digisparkBufferFlush(up, 0x14); - while ((tries < 200) && (status <= 0)) { + while ((tries < 1000) && (status <= 0)) { tries++; - delay(5); + delay(1); // Read back dWIRE bytes status = usb_control_msg(up->handle, IN_FROM_LW, 60, 0, 0, (char*)in, inlen, USB_TIMEOUT); } From 231899ac39a342b1c821c229e78d6ce20e1068f4 Mon Sep 17 00:00:00 2001 From: Deqing Sun Date: Tue, 6 Nov 2018 16:56:08 -0500 Subject: [PATCH 2/9] reduce waittime for 2nd+ bytes in dwReadBytes --- usbtiny/main.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/usbtiny/main.c b/usbtiny/main.c index 527ff2f..02c5f67 100644 --- a/usbtiny/main.c +++ b/usbtiny/main.c @@ -1482,10 +1482,24 @@ void dwReadBytes() { "; Interrupts already disabled \n" "; DDRB pin5 is input \n" " \n" - "; Wait up to 65536*6 cycles = 23.8ms for start bit \n" + "; Wait up to 65536*6 cycles = 23.8ms for start bit on 1st Byte\n" + "; Wait up to 8*dwBitTime*6 cycles for start bit on other Bytes\n" " \n" "dwr2: clr r30 \n" " clr r31 \n" + " tst r23 ; check total bytes received so far \n" + " breq dwr4 ; if we already got data, wait less \n" + " ldi r30,3 ; use r30 temporarily to load number \n" + " mov r0,30 ; set value on r0 \n" + " movw r30,r24 ; load bit time as iteration count \n" + "dwr2_1: lsl r30 ; left shift \n" + " rol r31 ; \n" + " brcc dwr2_2 ; branch if there is no overflow \n" + " clr r30 \n" + " clr r31 \n" + " rjmp dwr4 ; using max value when overflow \n" + "dwr2_2: dec r0 ; \n" + " brne dwr2_1 ; left shift more bits \n" " \n" "dwr4: sbiw r30,1 ; 2. Check for timeout \n" " breq dwr14 ; 1/2. If no start bit encountered \n" From 86be87675da4094b26fc6fbcc90a64ae35c5a975 Mon Sep 17 00:00:00 2001 From: Deqing Sun Date: Tue, 6 Nov 2018 17:09:10 -0500 Subject: [PATCH 3/9] Update usbtiny/main.hex --- usbtiny/main.hex | 208 ++++++++++++++++++++++++----------------------- 1 file changed, 105 insertions(+), 103 deletions(-) diff --git a/usbtiny/main.hex b/usbtiny/main.hex index 64e1f11..81a7a48 100644 --- a/usbtiny/main.hex +++ b/usbtiny/main.hex @@ -1,16 +1,16 @@ :1000000046C060C08CC05EC05DC05CC05BC05AC0F2 -:1000100059C058C057C056C055C054C053C001CB7A -:1000200032C97EC99CC9C1C9ECC9FFC916CA55CA23 -:1000300056CA5ECA75CAF3CAF2CAF1CAF0CAEFCA92 -:10004000A5CAEDCAECCAB2CA0902190001010080B2 +:1000100059C058C057C056C055C054C053C00ECB6D +:100020003FC98BC9A9C9CEC9F9C90CCA23CA62CABA +:1000300063CA6BCA82CA00CBFFCAFECAFDCAFCCA29 +:10004000B2CAFACAF9CABFCA09021900010100807E :10005000640904000001FF00000007058103080097 :1000600064120110010000000881179F0C040100B8 :100070000203011603550053004200740069006E2C :1000800000790053005000490004030904001124C2 :100090001FBECFE5D2E0DEBFCDBF10E0A0E6B0E0EE -:1000A000E0EEF6E102C005900D92A037B107D9F756 +:1000A000EAEFF6E102C005900D92A037B107D9F74B :1000B00022E0A0E7B0E001C01D92AD31B207E1F748 -:1000C00056D80CCB9DCFA82FB92F80E090E041E00F +:1000C00063D819CB9DCFA82FB92F80E090E041E0F5 :1000D00050EA609530E009C02D9182279795879569 :1000E00010F084279527305EC8F36F5FA8F308955A :1000F000EADF8D939D930895A6E088279927AA9516 @@ -194,9 +194,9 @@ :100C1000F0E0EC58FF4F80838A8184FF8CC0809184 :100C20007200882309F487C081E18093340187B37F :100C3000842B87BB409373007EC02733A1F480913F -:100C40006D0090916E003CD580916D0090916E008A -:100C50006B81019635D580916D0090916E006C810D -:100C600002962ED568C02C3341F580918A018111FE +:100C40006D0090916E0049D580916D0090916E007D +:100C50006B81019642D580916D0090916E006C8100 +:100C600002963BD568C02C3341F580918A018111F1 :100C700062C0888187FF09C084E991E090936C018C :100C800080936B019091890157C060938A018E8196 :100C90008093890190918901911104C084E180932E @@ -218,7 +218,7 @@ :100D9000994097FF03C09195819591098E159F0504 :100DA00014F4C1B77C0181B78F5F81BFEACFC1BFA7 :100DB00061B780E090E0DF91CF911F910F91FF909C -:100DC000EF90DF907DC4CF93DF93D82F882311F06D +:100DC000EF90DF908AC4CF93DF93D82F882311F060 :100DD000B89801C0B89AC0E02C2F30E08091400153 :100DE000909141012817390728F481E090E086DCD2 :100DF000CF5FF2CFBA98C0E02C2F30E08091400155 @@ -272,97 +272,99 @@ :1010F000C59A60FFC598FC013197F1F766955A953E :10110000B1F7FC01C59A31963197F1F77A9549F715 :10111000BD98089577278091870190918801A4E96F -:10112000B1E0EE27FF273197F1F0B599FCCFFC0134 -:10113000F695E7953197F1F7B599F3CF662758E023 -:10114000FC013197F1F76695B599606800C05A9532 -:10115000B9F76D937395EE27FF27319721F0B59B73 -:10116000FCCF7038F0F2789470938901089580E292 -:1011700087BB88BB80E090E09BD28F3F09F081BFA6 -:10118000C0916D00D0916E00CE0192D2E82ECE01BA -:1011900001968ED2F82ECE0102968AD2982F80ED3B -:1011A0008E0D8A3008F072C280ED8F0D8A3008F003 -:1011B0006DC280ED890F8A3008F068C2C0916D0061 -:1011C000D0916E00CE0174D290E09093680080932D -:1011D0006700CE0101966CD290E090936A008093F4 -:1011E0006900CE01029664D290E090936C008093E7 -:1011F0006B00BB9AC4E18FE090E08DDAC150D9F763 -:10120000BB9885E090E0909341018093400110925B -:101210006300109262009EE088E10FB6F894A895F2 -:1012200081BD0FBE91BD10923B0110923A01109208 -:101230003901109238011092370110923601109244 -:101240003D011092340100DA7894B898C098B998AA -:10125000C198BA98C298BD98C598DAE130E4F32EE7 -:10126000C1E04BE1E42E20E8D22EA895BCD8E09155 -:1012700034018E2F90E08531910508F0D0C1FC013A -:10128000E15FFF4F0994B89AB998BA9AC29A10923E -:101290008B018091140280933F01D0923E01809196 -:1012A0003E01882309F458C0C098B12C8B2D90E0E2 -:1012B00020916200309163008217930728F481E047 -:1012C00090E01CDAB394F2CF90913E0180913F01FF -:1012D000892309F0C09AC29880918B01880F80936E -:1012E0008B0196B320918B0191FB882780F9820FA7 -:1012F00080938B01B12C8B2D90E020916200309176 -:1013000063008217930728F481E090E0F7D9B39443 -:10131000F2CFC29A80913E01869580933E01BFCF65 -:10132000BA9AC29880EE91E0E9D9BFB6F894C29A11 -:1013300086E490E0E3D9BA9886B382FB002700F9EF -:1013400010E0C80121E0822780938B01BFBE8AE9AB -:1013500091E0D4D9BA9AC29AC093930160C18091A6 -:10136000140280933E01BA9A98E0B92EAFB6F89471 -:10137000C29880913E0180FF07C086E090E0BED910 -:10138000C29A80E490E006C08CE390E0B7D9C29A9C -:101390008AE090E0B3D980913E01869580933E012A -:1013A000AFBEBA94B110E2CF3AC110928B0188E07F -:1013B000B82E80918B01869580938B01BA9AAFB637 -:1013C000F894C29886E090E099D9C29A8AE090E0B9 -:1013D00095D9BA9886B382FB882780F980933E011D -:1013E000AFBE87E390E08AD980913E01882329F03F -:1013F00080918B01806880938B01BA94B110D9CF12 -:10140000ABCFBA9ABFB6F894C29886E090E076D98E -:10141000C29A8AE090E072D9BA9886B382FB882794 -:1014200080F980938B01BFBE97CFBA9ABFB6F8946C -:10143000C2988091140280FF07C086E090E05ED9D8 -:10144000C29A80E490E006C08CE390E057D9C29A3B -:101450008AE090E053D9BFBEE2C0B99AB898BA9A70 -:10146000C298E0923F01DDB9809114028111C598C4 -:1014700010923E01E0913E0180911502E81730F58F -:10148000F0E0EA5EFD4F80818FB9FEB880913F01A8 -:101490008DB9B12C8B2D90E02091620030916300CA -:1014A0008217930728F481E090E028D9B394F2CF13 -:1014B000769BECCF80913E01E82FF0E09FB1E5579D -:1014C000FE4F90838F5F80933E01D4CF80911402B2 -:1014D0008111C59A80913E0156C007DDA0C080E011 -:1014E00090E01ADD809114028FDD80933E0115C0DB -:1014F000B12C80911402B81650F4EB2DF0E0EA5EA6 -:10150000FD4F808181DD80933E01B394F2CF8091C5 -:101510001502811136DD80913E0180938B011CCF35 -:1015200080911402811102C0B12C19C0912C292D77 -:1015300030E08091150290E00197A90145575E4F78 -:101540005A012817390734F481E06BDDF5018083F7 -:101550009394EDCF80E065DDF50180830EC080912E -:101560001502B81650F48B2C912C81E05ADDF40151 -:10157000E557FE4F8083B394F2CF8091160281111C -:1015800000DD809115028093930149C081E090E0D5 -:10159000C2D8BFB6F8946091720070E040917300B9 -:1015A00084E790E05FD91092720055CF80918A0154 -:1015B000847319F082E090E0AED880918A0180FFB8 -:1015C00005C0C598BD9A84E690E0A5D880918A01AF -:1015D00081FF08C0809194018093870180919501DB -:1015E0008093880180918A0182FD6EDD80918A015D -:1015F00083FF07C010929401C0938901BD98AD9AF2 -:10160000789480918A0184FD85DD80918A0185FD31 -:101610003BDD1092340110928A01789402C010923E -:10162000340180913C01882309F41FCE80913D0153 -:1016300081110DC08091380180933B018091370169 -:1016400080933A01809136018093390119C09091BD -:101650003B01981710F4C09801C0C09A90913D01C9 -:1016600080913A01891710F4C19801C0C19A9091F4 -:101670003D0180913901891710F4C29801C0C29AC6 -:1016800080913D018F5F80933D01EDCD65E3CE01FB -:1016900017D080916D0090916E0061E3019610D09B -:1016A00080916D0090916E0062E3029609D086CD24 -:1016B000E199FECF9FBB8EBBE09A99278DB3089529 -:1016C000262FE199FECF1CBA9FBB8EBB2DBB0FB658 -:1016D000F894E29AE19A0FBE01960895F894FFCF2C -:1016E000FF5A0A000A0803350031003200200000CA +:10112000B1E0EE27FF27772359F0E3E00E2EFC0114 +:10113000EE0FFF1F18F4EE27FF2702C00A94C1F735 +:101140003197F1F0B599FCCFFC01F695E795319711 +:10115000F1F7B599E6CF662758E0FC013197F1F732 +:101160006695B599606800C05A95B9F76D93739507 +:10117000EE27FF27319721F0B59BFCCF703888F21E +:10118000789470938901089580E287BB88BB80E0E2 +:1011900090E09BD28F3F09F081BFC0916D00D0914C +:1011A0006E00CE0192D2E82ECE0101968ED2F82E9C +:1011B000CE0102968AD2982F80ED8E0D8A3008F0EB +:1011C00072C280ED8F0D8A3008F06DC280ED890FFC +:1011D0008A3008F068C2C0916D00D0916E00CE01D7 +:1011E00074D290E09093680080936700CE010196DE +:1011F0006CD290E090936A0080936900CE010296D1 +:1012000064D290E090936C0080936B00BB9AC4E131 +:101210008FE090E080DAC150D9F7BB9885E090E08C +:1012200090934101809340011092630010926200FC +:101230009EE088E10FB6F894A89581BD0FBE91BDE0 +:1012400010923B0110923A0110923901109238012C +:10125000109237011092360110923D011092340124 +:10126000F3D97894B898C098B998C198BA98C298A8 +:10127000BD98C598DAE130E4F32EC1E04BE1E42EED +:1012800020E8D22EA895AFD8E09134018E2F90E0BF +:101290008531910508F0D0C1FC01E15FFF4F099451 +:1012A000B89AB998BA9AC29A10928B018091140296 +:1012B00080933F01D0923E0180913E01882309F442 +:1012C00058C0C098B12C8B2D90E0209162003091D5 +:1012D00063008217930728F481E090E00FDAB3945B +:1012E000F2CF90913E0180913F01892309F0C09A8D +:1012F000C29880918B01880F80938B0196B32091C7 +:101300008B0191FB882780F9820F80938B01B12C90 +:101310008B2D90E02091620030916300821793073B +:1013200028F481E090E0EAD9B394F2CFC29A809198 +:101330003E01869580933E01BFCFBA9AC29880EE57 +:1013400091E0DCD9BFB6F894C29A86E490E0D6D991 +:10135000BA9886B382FB002700F910E0C80121E0AB +:10136000822780938B01BFBE8AE991E0C7D9BA9AE0 +:10137000C29AC093930160C18091140280933E0190 +:10138000BA9A98E0B92EAFB6F894C29880913E010F +:1013900080FF07C086E090E0B1D9C29A80E490E077 +:1013A00006C08CE390E0AAD9C29A8AE090E0A6D960 +:1013B00080913E01869580933E01AFBEBA94B110F4 +:1013C000E2CF3AC110928B0188E0B82E80918B0158 +:1013D000869580938B01BA9AAFB6F894C29886E04E +:1013E00090E08CD9C29A8AE090E088D9BA9886B306 +:1013F00082FB882780F980933E01AFBE87E390E0AF +:101400007DD980913E01882329F080918B018068ED +:1014100080938B01BA94B110D9CFABCFBA9ABFB633 +:10142000F894C29886E090E069D9C29A8AE090E088 +:1014300065D9BA9886B382FB882780F980938B019F +:10144000BFBE97CFBA9ABFB6F894C29880911402E3 +:1014500080FF07C086E090E051D9C29A80E490E016 +:1014600006C08CE390E04AD9C29A8AE090E046D95F +:10147000BFBEE2C0B99AB898BA9AC298E0923F014A +:10148000DDB9809114028111C59810923E01E0915E +:101490003E0180911502E81730F5F0E0EA5EFD4F5D +:1014A00080818FB9FEB880913F018DB9B12C8B2D11 +:1014B00090E020916200309163008217930728F436 +:1014C00081E090E01BD9B394F2CF769BECCF809172 +:1014D0003E01E82FF0E09FB1E557FE4F90838F5F0C +:1014E00080933E01D4CF809114028111C59A8091DE +:1014F0003E0156C0FADCA0C080E090E00DDD809196 +:10150000140282DD80933E0115C0B12C809114023B +:10151000B81650F4EB2DF0E0EA5EFD4F808174DDEB +:1015200080933E01B394F2CF80911502811129DDA1 +:1015300080913E0180938B011CCF80911402811118 +:1015400002C0B12C19C0912C292D30E080911502D8 +:1015500090E00197A90145575E4F5A0128173907B6 +:1015600034F481E05EDDF50180839394EDCF80E07B +:1015700058DDF50180830EC080911502B81650F435 +:101580008B2C912C81E04DDDF401E557FE4F8083DB +:10159000B394F2CF809116028111F3DC8091150291 +:1015A0008093930149C081E090E0B5D8BFB6F8942C +:1015B0006091720070E04091730084E790E052D92E +:1015C0001092720055CF80918A01847319F082E0E5 +:1015D00090E0A1D880918A0180FF05C0C598BD9A8E +:1015E00084E690E098D880918A0181FF08C08091BC +:1015F0009401809387018091950180938801809167 +:101600008A0182FD61DD80918A0183FF07C010920B +:101610009401C0938901BD98AD9A789480918A0114 +:1016200084FD78DD80918A0185FD2EDD10923401E4 +:1016300010928A01789402C01092340180913C018A +:10164000882309F41FCE80913D0181110DC0809146 +:10165000380180933B018091370180933A0180915A +:1016600036018093390119C090913B01981710F40D +:10167000C09801C0C09A90913D0180913A018917AC +:1016800010F4C19801C0C19A90913D018091390137 +:10169000891710F4C29801C0C29A80913D018F5FF2 +:1016A00080933D01EDCD65E3CE0117D080916D00B3 +:1016B00090916E0061E3019610D080916D00909141 +:1016C0006E0062E3029609D086CDE199FECF9FBB02 +:1016D0008EBBE09A99278DB30895262FE199FECF0E +:1016E0001CBA9FBB8EBB2DBB0FB6F894E29AE19A51 +:0A16F0000FBE01960895F894FFCF95 +:1016FA00FF5A0A000A0803350031003200200000B0 :00000001FF From a0d1b6f046c5dd2eced0078894bd0bdf14708925 Mon Sep 17 00:00:00 2001 From: Deqing Sun Date: Sat, 10 Nov 2018 15:26:30 -0500 Subject: [PATCH 4/9] reduce wait time in DebugWIRE before disable interrupt In previous implementaion, the DebugWIRE func waited 2ms to for all USB transactions to complete. Now it waits 100us, if there is USB transactions, it waits for another 100us. If there is no USB transactions for 100us, the function will proceeed. --- usbtiny/main.c | 10 +++++++++- usbtiny/usbdrv/asmcommon.inc | 3 +++ usbtiny/usbdrv/usbdrv.c | 1 + usbtiny/usbdrv/usbdrv.h | 3 +++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/usbtiny/main.c b/usbtiny/main.c index 02c5f67..223ecc4 100644 --- a/usbtiny/main.c +++ b/usbtiny/main.c @@ -1930,7 +1930,15 @@ int main(void) { // bit flag, and is arranged so that sending a 33 (send break and read pulse widths) // will abort a pending wait. - if (dwState & 0x34) {_delay_ms(2);} // Allow USB transfer to complete before + if (dwState & 0x34) { + uchar usbInterruptCountPrev, usbInterruptCountNow; + usbInterruptCountNow = usbInterruptCount; //usbInterruptCount got increased in every USB interrupt + do { + usbInterruptCountPrev=usbInterruptCountNow; + _delay_us(100); + usbInterruptCountNow = usbInterruptCount; + } while( usbInterruptCountPrev!= usbInterruptCountNow); + } // Allow USB transfer to complete before // any action that may disable interrupts if (dwState & 0x01) {cbi(PORTB, 5); sbi(DDRB, 5); _delay_ms(100);} diff --git a/usbtiny/usbdrv/asmcommon.inc b/usbtiny/usbdrv/asmcommon.inc index 07d692b..8408084 100644 --- a/usbtiny/usbdrv/asmcommon.inc +++ b/usbtiny/usbdrv/asmcommon.inc @@ -99,6 +99,9 @@ doReturn: sbrc YL, USB_INTR_PENDING_BIT;[50] check whether data is already arriving rjmp waitForJ ;[51] save the pops and pushes -- a new interrupt is already pending sofError: + lds YL, usbInterruptCount ;POP_RETI restore YL & SREG + inc YL + sts usbInterruptCount, YL POP_RETI ;macro call reti diff --git a/usbtiny/usbdrv/usbdrv.c b/usbtiny/usbdrv/usbdrv.c index f2cd050..caa533f 100644 --- a/usbtiny/usbdrv/usbdrv.c +++ b/usbtiny/usbdrv/usbdrv.c @@ -31,6 +31,7 @@ uchar usbCurrentTok; /* last token received or endpoint number for la uchar usbRxToken; /* token for data we received; or endpont number for last OUT */ volatile uchar usbTxLen = USBPID_NAK; /* number of bytes to transmit with next IN token or handshake token */ uchar usbTxBuf[USB_BUFSIZE];/* data to transmit with next IN, free if usbTxLen contains handshake token */ +volatile uchar usbInterruptCount; /* incremented by assembler module every USB interrupt */ #if USB_COUNT_SOF volatile uchar usbSofCount; /* incremented by assembler module every SOF */ #endif diff --git a/usbtiny/usbdrv/usbdrv.h b/usbtiny/usbdrv/usbdrv.h index 91fe6d9..0491f21 100644 --- a/usbtiny/usbdrv/usbdrv.h +++ b/usbtiny/usbdrv/usbdrv.h @@ -337,6 +337,9 @@ extern uchar usbConfiguration; * You may want to reflect the "configured" status with a LED on the device or * switch on high power parts of the circuit only if the device is configured. */ +extern volatile uchar usbInterruptCount; +/* This variable is incremented on every USB interrupt. + */ #if USB_COUNT_SOF extern volatile uchar usbSofCount; /* This variable is incremented on every SOF packet. It is only available if From 4b4ffccaf2edb6437afd50bc58cbfc2cf9a1fdd4 Mon Sep 17 00:00:00 2001 From: Deqing Sun Date: Sat, 10 Nov 2018 16:43:38 -0500 Subject: [PATCH 5/9] increase delay time --- usbtiny/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usbtiny/main.c b/usbtiny/main.c index 223ecc4..5ad2691 100644 --- a/usbtiny/main.c +++ b/usbtiny/main.c @@ -1935,7 +1935,7 @@ int main(void) { usbInterruptCountNow = usbInterruptCount; //usbInterruptCount got increased in every USB interrupt do { usbInterruptCountPrev=usbInterruptCountNow; - _delay_us(100); + _delay_us(200); usbInterruptCountNow = usbInterruptCount; } while( usbInterruptCountPrev!= usbInterruptCountNow); } // Allow USB transfer to complete before From c4a8fef649d5f338363e2da2744327053183cc31 Mon Sep 17 00:00:00 2001 From: Deqing Sun Date: Sat, 10 Nov 2018 17:06:05 -0500 Subject: [PATCH 6/9] reduce timeout, make stepping way faster --- src/commands/GoCommand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/GoCommand.c b/src/commands/GoCommand.c index 4df6bed..49d2775 100644 --- a/src/commands/GoCommand.c +++ b/src/commands/GoCommand.c @@ -68,7 +68,7 @@ void KeyboardBreak(void) { FD_SET(serialport, &readfds); if (serialport > maxport) maxport = serialport; } - timeout = (struct timeval){10,0}; // 10 seconds + timeout = (struct timeval){0,200000ul}; // 0.2 seconds if (select(maxport+1, &readfds, 0, &excpfds, &timeout) > 0) { // Something became available if ((CurrentPortKind() == 's') && FD_ISSET(serialport, &readfds)) { From 16bb3465cb922c098796be8416a612e78080ab2c Mon Sep 17 00:00:00 2001 From: Deqing Sun Date: Sat, 10 Nov 2018 17:13:37 -0500 Subject: [PATCH 7/9] Update usbtiny/main.hex --- usbtiny/main.hex | 672 ++++++++++++++++++++++++----------------------- 1 file changed, 337 insertions(+), 335 deletions(-) diff --git a/usbtiny/main.hex b/usbtiny/main.hex index 81a7a48..35cf0f9 100644 --- a/usbtiny/main.hex +++ b/usbtiny/main.hex @@ -1,16 +1,16 @@ :1000000046C060C08CC05EC05DC05CC05BC05AC0F2 -:1000100059C058C057C056C055C054C053C00ECB6D -:100020003FC98BC9A9C9CEC9F9C90CCA23CA62CABA -:1000300063CA6BCA82CA00CBFFCAFECAFDCAFCCA29 -:10004000B2CAFACAF9CABFCA09021900010100807E +:1000100059C058C057C056C055C054C053C01CCB5F +:1000200044C990C9AEC9D3C9FEC911CA28CA67CA92 +:1000300068CA70CA87CA0ECB0DCB0CCB0BCB0ACBD0 +:10004000B7CA08CB07CBC4CA090219000101008056 :10005000640904000001FF00000007058103080097 :1000600064120110010000000881179F0C040100B8 :100070000203011603550053004200740069006E2C :1000800000790053005000490004030904001124C2 :100090001FBECFE5D2E0DEBFCDBF10E0A0E6B0E0EE -:1000A000EAEFF6E102C005900D92A037B107D9F74B -:1000B00022E0A0E7B0E001C01D92AD31B207E1F748 -:1000C00063D819CB9DCFA82FB92F80E090E041E0F5 +:1000A000E6E1F7E102C005900D92A037B107D9F75C +:1000B00022E0A0E7B0E001C01D92AE31B207E1F747 +:1000C00068D827CB9DCFA82FB92F80E090E041E0E2 :1000D00050EA609530E009C02D9182279795879569 :1000E00010F084279527305EC8F36F5FA8F308955A :1000F000EADF8D939D930895A6E088279927AA9516 @@ -18,8 +18,8 @@ :100110009927A6B3019611F0A871D9F70895CF9346 :10012000CFB7CF93C395B39BE9F7B39B11C0B39BF4 :100130000FC0B39B0DC0B39B0BC0B39B09C0B39B57 -:1001400007C0B59904C0C1E0C0939401AD98D5C073 -:100150000F92DF93C0916A01DD27CF58DE4F012E49 +:1001400007C0B59904C0C1E0C0939501AD98D5C072 +:100150000F92DF93C0916B01DD27CE58DE4F012E49 :10016000B39B03C0DF910F90E0CF2F930F931F93AA :100170004F932FEF4F6F06B303FB20F95F933F932D :1001800050E03BE065C016B30126502953FDC895E9 @@ -41,330 +41,332 @@ :1002800001265029012703FB06B223F92F7C49F2EE :10029000000006B3102713FB24F90026502906B2EC :1002A0002F7939F270CF10E21ABF002719C03B50E6 -:1002B0003195C31BD04010E21ABF0881033C09F1FD -:1002C0000B34F9F0209168011981110F1213EDCF51 -:1002D0004A81441F093651F10D3211F0013E29F7D0 -:1002E00000936F013F915F914F911F910F912F915B -:1002F000DF910F90CAB7C5FD15CFCF91CFBFCF917A -:10030000189520916F01222369F310916D0111233B -:1003100079F534307AF130936D01209369011091B1 -:100320006A013BE0311B30936A0124C000916D01EA -:100330000130F4F40AE54F7049F43091610034FD66 -:100340001AC000936100C1E5D1E019C030915C0191 -:1003500034FD11C000935C01CDE5D1E010C005274C -:1003600010E000C021C0052710E0C89508BB14C0EC -:100370003AE501C032ED032EC0E0D0E032E017B321 -:100380001861C39A08B317BB58E120E84FEF20FF6C -:10039000052708BB279517951C3F28F700004552F5 -:1003A000B0F720FF0527279508BB17951C3FB8F627 -:1003B00029913A9561F7077E10916E01110F08BBE4 -:1003C000C250D04011F01093680110E21ABF0860CB -:1003D00017B3177E402F477E54E05A95F1F708BBBC -:1003E00017BB48BB7FCFCF93DF9360916D01635004 -:1003F00067FDB7C080916A01CCE0D0E0C81BD1098D -:10040000CF58DE4F809169018D3209F099C0683074 -:1004100009F0A5C083EC809351018AE580936100C7 -:10042000109271008881807639F0CE013AD2982FEF -:100430008F3F09F474C07AC09A8110925A01898161 -:10044000811106C010925B012AE531E092E062C0A2 -:10045000853019F490936E015AC0863009F041C07E -:100460008B81813049F481E690E090936C01809318 -:100470006B0180E492E132C0823049F488E490E07C -:1004800090936C0180936B0180E499E127C08330E5 -:1004900019F5911109C089E890E090936C0180935F -:1004A0006B0180E494E01AC09130B1F0923049F4CD -:1004B00083E790E090936C0180936B0180E496E178 -:1004C0000DC0933049F485E690E090936C018093E1 -:1004D0006B0180E098E002C080E490E080937100BE -:1004E00025C0883069F0893019F4909370010FC0ED -:1004F0008A3049F08B3059F48BE480935D0107C05A -:1005000020E731E002C02AE531E091E003C02AE5AE -:1005100031E090E030936C0120936B0107C088813B -:1005200087FD9E8180E88093710007C08F818111D3 -:1005300004C08E81891708F4982F909360000FC033 -:100540008091710087FF0BC0CE0112D18F3F21F443 -:100550008EE18093610003C08111109260001092BF -:100560006D018091610084FF56C0809160008F3FD3 -:1005700009F451C0C82F893008F0C8E08C1B809363 -:1005800060009091510188E8892780935101CC2324 -:1005900089F12091710027FF08C06C2F82E591E05E -:1005A000C8D0C82F893088F525C080916B01909103 -:1005B0006C0126FF0BC0A2E5B1E0FC012C2F280F37 -:1005C00034913D9331962E13FBCF09C0DC01E2E557 -:1005D000F1E02C2F2E0F3D9131932E13FCCF2FEFF6 -:1005E0002C0F30E02F5F3F4F820F931F90936C01D1 -:1005F00080936B016C2F82E591E07ADDCC5FCC308B -:1006000041F08FEF8093600004C08FEF8093600013 -:10061000CEE1C093610084E196B3987131F48150CA -:10062000D9F710926E0110926801C1E08111C0E00B -:10063000809170008C1729F0C11101C081D3C09343 -:100640007000DF91CF910895AC9A8BB780628BBF19 -:10065000ECE5F1E08BE481838AE580830895FC0179 -:10066000DB01AC014C5F5F4F619128E030E080E836 -:1006700090E0782F762309F0C09A70916400072EDD -:1006800000C000C000000A94D9F7C29A70916400BB -:10069000072E00C000C000000A94D9F7990FB19945 -:1006A0009F5FC098C29886952150310911F79D939C -:1006B000E417F507C9F6089580914D0190914E0118 -:1006C0009C012F5F3F4F30934E0120934D012091AD -:1006D0004A0127FF02C0880F991F80FD28602093E0 -:1006E0004601292F2695209347019695879580935B -:1006F000480162E471E086E491E0B1CF08C024E0F3 -:100700002A95F1F7019730F024E02A95F1F700C01F -:100710000197A8F70895DC0100C000C000C000C028 -:1007200000C000C087EE93E0E9DF00001197A0F75A -:100730000895EF92FF921F93CF93DF931F92CDB74F -:10074000DEB7182F7C018E2D811B861748F4698334 -:10075000B3DF80914501F70181937F016981F3CF78 -:10076000862F0F90DF91CF911F91FF90EF9008950A -:10077000DF92EF92FF920F931F93CF93DF93C62FD9 -:1007800020918A01211105C0D82F8C0130E6D32E8B -:100790004EC020911C024091890170E0620F711DD2 -:1007A00050E021E06417750714F420E008C0C09100 -:1007B000890130911C02C31B34E130933401382F7E -:1007C000DC018A2F831B8C1760F4E0911C0281E00E -:1007D0008E0F80931C02F0E08D91EC56FE4F8083CB -:1007E000F0CF822F37C08091640090E025E0880F21 -:1007F000991F2A95E1F7E80EF91E80914B0190911F -:100800004C01E816F90698F462E471E086E491E0A0 -:1008100026DF80914501909149018913E4CF9091A1 -:100820005001891701F390914F018917E1F2802F50 -:100830008D1B8C1770F4F80181918F018093490111 -:100840003BDF809146018D2580934601E12CF12C00 -:10085000D4CF81E0DF91CF911F910F91FF90EF9066 -:10086000DF90089528B3342F3095232338B3432BDA -:10087000680F791F8617970799F0FC013191CF0116 -:1008800058E048BB330F5A9500C008F028BB00C0A1 -:10089000000028BB21F000C000C000C0F2CFEACFAA -:1008A0000895CF93DF93EC012981211108C081E2E3 -:1008B0008983D0936C01C0936B0198E03DC22130D5 -:1008C00011F486B30BC16A81223011F468BB33C2C4 -:1008D000962F362F377041E050E0032E02C0440FB0 -:1008E000551F0A94E2F7233009F496C0243021F40E -:1008F00088B3482B48BB1FC2253051F46093640075 -:10090000B99887B3856287BB88B3887D88BB13C2DB -:10091000263049F4B898C098B998C198BA98C29846 -:10092000BD98C59808C2273051F4BE01CE01029689 -:1009300096DED0936C01C0936B0194E0FDC128302A -:1009400031F4609350018B8180934F01F4C1EC81AD -:10095000FD81F0934E01E0934D01293011F480E2C6 -:1009600003C02B3021F480EA80934A01A4C1EA81BC -:10097000FB81F0934C01E0934B012A3011F480E4A9 -:10098000F3CF2C3011F480ECEFCF2D3021F487B36E -:100990004095482304C02E3021F487B3482B47BB31 -:1009A000CAC12F3009F5611105C08091350187B9A1 -:1009B000A59A0CC0613031F480913501816087B90E -:1009C000A29A04C0623011F48FE887B9369A36993A -:1009D000FECF84B1888385B18983D0936C01C093A5 -:1009E0006B0114BA92E0A8C1203159F4B89AB99AAF -:1009F0008AB5806A8ABD8AB583608ABD83B78560FF -:100A000044C0213121F469BD8C8188BD94C122315B -:100A100009F46ECF233121F488B3409548236ACF7F -:100A2000243159F486B390E04823592302C05595E8 -:100A300047953A95E2F7488352C02631A1F56111F6 -:100A40000AC083B78B7F83BF83B78D7F83BF83B794 -:100A5000816083BF71C1613031F483B78B7F83BF05 -:100A600083B782600FC0623031F483B78B7F83BF5E -:100A700083B7826014C0633051F483B7846083BF4E -:100A800083B78D7F83BF83B78E7F83BF54C16430AC -:100A900009F051C183B7846083BF83B78D7F83BF63 -:100AA00083B78160F2CF2F3159F48B8190E0982F7A -:100AB0008827860F911D90936300809362003BC14D -:100AC000203219F41ABC13BE36C1213221F46093CE -:100AD000140281E07FC0223241F483E18883D09305 -:100AE0006C01C0936B0191E027C12332C9F4379A9E -:100AF00096B18A81892B86B99B81913059F038F063 -:100B0000923009F018C180913501806906C01092B9 -:100B1000350112C1809135018068809335010BC188 -:100B2000283249F48BE891E090936C0180936B013B -:100B30009091930101C1293211F482E04BC02A3215 -:100B400011F483E00BC02B3211F484E043C02C324B -:100B500011F488E03FC02D3231F489E080933401F4 -:100B600060931402E8C02E3261F48BE0809334016C -:100B7000609314028B81809315028C8180931602FE -:100B8000DAC02F3259F4613031F4B89AB99ABA9A6E -:100B900060933C01D0C010923C01CDC0203349F499 -:100BA000609338018B81809337018C81809336016B -:100BB000C2C0213331F470E0709341016093400171 -:100BC000BAC0223311F485E005C0233331F46093B9 -:100BD000140286E080933401AEC0263371F565FFC0 -:100BE0001BC0E0917200E03CB8F48B81AE2FB0E006 -:100BF000AC58BF4F8C938C81A1E0AE0FB0E0AC58E5 -:100C0000BF4F8C9383E08E0F809372008D81EE5FD7 -:100C1000F0E0EC58FF4F80838A8184FF8CC0809184 -:100C20007200882309F487C081E18093340187B37F -:100C3000842B87BB409373007EC02733A1F480913F -:100C40006D0090916E0049D580916D0090916E007D -:100C50006B81019642D580916D0090916E006C8100 -:100C600002963BD568C02C3341F580918A018111F1 -:100C700062C0888187FF09C084E991E090936C018C -:100C800080936B019091890157C060938A018E8196 -:100C90008093890190918901911104C084E180932E -:100CA00034014AC080918901813818F080E880932E -:100CB000890110921C029FEF3FC0822F807F803EEF -:100CC000E1F48AE080933401822F877080931402CC -:100CD00028702093150220E080911402281758F5FF -:100CE000822F90E00296FE01E80FF91F3081FC018F -:100CF000EC5EFD4F30832F5FEFCF803FE1F487E064 -:100D000080933401822F887080931402277020937F -:100D1000150220E080911502281768F4822F90E0D8 -:100D20000296FE01E80FF91F3081FC01EC5EFD4FD9 -:100D300030832F5FEFCF90E0892FDF91CF9108951F -:100D4000DF92EF92FF920F931F93CF93DF9308E010 -:100D500010E0C0E0D0E8DD2EDC0ED1BECDD97C01A4 -:100D600084E3E81689E0F8060CF4CD2DD695015001 -:100D7000110989F78FEF8C0F81BF0C2F10E00F5FE7 -:100D80001F4F21B730E0021713078CF0B5D98453F9 -:100D9000994097FF03C09195819591098E159F0504 -:100DA00014F4C1B77C0181B78F5F81BFEACFC1BFA7 -:100DB00061B780E090E0DF91CF911F910F91FF909C -:100DC000EF90DF908AC4CF93DF93D82F882311F060 -:100DD000B89801C0B89AC0E02C2F30E08091400153 -:100DE000909141012817390728F481E090E086DCD2 -:100DF000CF5FF2CFBA98C0E02C2F30E08091400155 -:100E0000909141012817390728F481E090E076DCC1 -:100E1000CF5FF2CFBA9AC0E02C2F30E08091400132 -:100E2000909141012817390728F481E090E066DCB1 -:100E3000CF5FF2CFD111B89AC0E08C2F90E0209113 -:100E40004001309141018217930728F481E090E03E -:100E500055DCCF5FF2CFDF91CF9108950F931F93B1 -:100E6000CF93DF93B898C0E08C2F90E020914001A1 -:100E7000309141018217930728F481E090E03EDC35 -:100E8000CF5FF2CFBA98C0E00091400110914101CC -:100E90008C2F90E08017910728F481E090E02EDC01 -:100EA000CF5FF2CFD6B3C0E08C2F90E080179107D0 -:100EB00028F481E090E022DCCF5FF6CFBA9AC0E060 -:100EC0002C2F30E080914001909141012817390783 -:100ED00028F481E090E012DCCF5FF2CF8D2F81709B -:100EE000DF91CF911F910F910895CF9388B38A7F9F -:100EF00088BBBA98B898C0E08C2F90E02091400150 -:100F0000309141018217930728F481E090E0F6DBED -:100F1000CF5FF2CFCF910895CF9387B38A7F87BBFE -:100F2000C0E08C2F90E02091400130914101821768 -:100F3000930728F481E090E0E1DBCF5FF2CFB89A2D -:100F4000C0E08C2F90E02091400130914101821748 -:100F5000930728F481E090E0D1DBCF5FF2CFBA9A1B -:100F6000C0E08C2F90E02091400130914101821728 -:100F7000930728F481E090E0C1DBCF5FF2CFCF91FF -:100F80000895CF93B89AC0E08C2F90E02091400153 -:100F9000309141018217930728F481E090E0AEDBA5 -:100FA000CF5FF2CFBA9AC0E08C2F90E02091400141 -:100FB000309141018217930728F481E090E09EDB95 -:100FC000CF5FF2CFBA98C0E08C2F90E02091400123 -:100FD000309141018217930728F481E090E08EDB85 -:100FE000CF5FF2CFB898C0E08C2F90E02091400105 -:100FF000309141018217930728F481E090E07EDB75 -:10100000CF5FF2CFCF910895CF93DF93D82FC8E071 -:101010008D2F8078D8DEDD0FC150D1F7DF91CF91D1 -:101020001DCFFF920F931F93CF93DF93F82ED8E03D -:10103000C0E0CC0F13DFC82BD150D9F7009140018D -:10104000109141018D2F90E08017910728F481E0E5 -:1010500090E054DBDF5FF2CFFF2011F080E001C0B1 -:1010600081E0B1DED0E08D2F90E08017910728F469 -:1010700081E090E043DBDF5FF6CF8C2FDF91CF91F3 -:101080001F910F91FF900895A4E9B1E08827F8948B -:10109000C59ABD98EE27FF27319688F0B599FCCF09 -:1010A000803468F4ED93FD938395EE27FF27319606 -:1010B00030F0B59BFCCFED93FD938395EBCF789407 -:1010C000880F809389010895C59ABD9A8091870100 -:1010D00090918801A4E9B1E0709189017723C1F072 -:1010E000F894FC01C5986D9158E03197F1F760FDD7 -:1010F000C59A60FFC598FC013197F1F766955A953E -:10110000B1F7FC01C59A31963197F1F77A9549F715 -:10111000BD98089577278091870190918801A4E96F -:10112000B1E0EE27FF27772359F0E3E00E2EFC0114 -:10113000EE0FFF1F18F4EE27FF2702C00A94C1F735 -:101140003197F1F0B599FCCFFC01F695E795319711 -:10115000F1F7B599E6CF662758E0FC013197F1F732 -:101160006695B599606800C05A95B9F76D93739507 -:10117000EE27FF27319721F0B59BFCCF703888F21E -:10118000789470938901089580E287BB88BB80E0E2 -:1011900090E09BD28F3F09F081BFC0916D00D0914C -:1011A0006E00CE0192D2E82ECE0101968ED2F82E9C -:1011B000CE0102968AD2982F80ED8E0D8A3008F0EB -:1011C00072C280ED8F0D8A3008F06DC280ED890FFC -:1011D0008A3008F068C2C0916D00D0916E00CE01D7 -:1011E00074D290E09093680080936700CE010196DE -:1011F0006CD290E090936A0080936900CE010296D1 -:1012000064D290E090936C0080936B00BB9AC4E131 -:101210008FE090E080DAC150D9F7BB9885E090E08C -:1012200090934101809340011092630010926200FC -:101230009EE088E10FB6F894A89581BD0FBE91BDE0 -:1012400010923B0110923A0110923901109238012C -:10125000109237011092360110923D011092340124 -:10126000F3D97894B898C098B998C198BA98C298A8 -:10127000BD98C598DAE130E4F32EC1E04BE1E42EED -:1012800020E8D22EA895AFD8E09134018E2F90E0BF -:101290008531910508F0D0C1FC01E15FFF4F099451 -:1012A000B89AB998BA9AC29A10928B018091140296 -:1012B00080933F01D0923E0180913E01882309F442 -:1012C00058C0C098B12C8B2D90E0209162003091D5 -:1012D00063008217930728F481E090E00FDAB3945B -:1012E000F2CF90913E0180913F01892309F0C09A8D -:1012F000C29880918B01880F80938B0196B32091C7 -:101300008B0191FB882780F9820F80938B01B12C90 -:101310008B2D90E02091620030916300821793073B -:1013200028F481E090E0EAD9B394F2CFC29A809198 -:101330003E01869580933E01BFCFBA9AC29880EE57 -:1013400091E0DCD9BFB6F894C29A86E490E0D6D991 -:10135000BA9886B382FB002700F910E0C80121E0AB -:10136000822780938B01BFBE8AE991E0C7D9BA9AE0 -:10137000C29AC093930160C18091140280933E0190 -:10138000BA9A98E0B92EAFB6F894C29880913E010F -:1013900080FF07C086E090E0B1D9C29A80E490E077 -:1013A00006C08CE390E0AAD9C29A8AE090E0A6D960 -:1013B00080913E01869580933E01AFBEBA94B110F4 -:1013C000E2CF3AC110928B0188E0B82E80918B0158 -:1013D000869580938B01BA9AAFB6F894C29886E04E -:1013E00090E08CD9C29A8AE090E088D9BA9886B306 -:1013F00082FB882780F980933E01AFBE87E390E0AF -:101400007DD980913E01882329F080918B018068ED -:1014100080938B01BA94B110D9CFABCFBA9ABFB633 -:10142000F894C29886E090E069D9C29A8AE090E088 -:1014300065D9BA9886B382FB882780F980938B019F -:10144000BFBE97CFBA9ABFB6F894C29880911402E3 -:1014500080FF07C086E090E051D9C29A80E490E016 -:1014600006C08CE390E04AD9C29A8AE090E046D95F -:10147000BFBEE2C0B99AB898BA9AC298E0923F014A -:10148000DDB9809114028111C59810923E01E0915E -:101490003E0180911502E81730F5F0E0EA5EFD4F5D -:1014A00080818FB9FEB880913F018DB9B12C8B2D11 -:1014B00090E020916200309163008217930728F436 -:1014C00081E090E01BD9B394F2CF769BECCF809172 -:1014D0003E01E82FF0E09FB1E557FE4F90838F5F0C -:1014E00080933E01D4CF809114028111C59A8091DE -:1014F0003E0156C0FADCA0C080E090E00DDD809196 -:10150000140282DD80933E0115C0B12C809114023B -:10151000B81650F4EB2DF0E0EA5EFD4F808174DDEB -:1015200080933E01B394F2CF80911502811129DDA1 -:1015300080913E0180938B011CCF80911402811118 -:1015400002C0B12C19C0912C292D30E080911502D8 -:1015500090E00197A90145575E4F5A0128173907B6 -:1015600034F481E05EDDF50180839394EDCF80E07B -:1015700058DDF50180830EC080911502B81650F435 -:101580008B2C912C81E04DDDF401E557FE4F8083DB -:10159000B394F2CF809116028111F3DC8091150291 -:1015A0008093930149C081E090E0B5D8BFB6F8942C -:1015B0006091720070E04091730084E790E052D92E -:1015C0001092720055CF80918A01847319F082E0E5 -:1015D00090E0A1D880918A0180FF05C0C598BD9A8E -:1015E00084E690E098D880918A0181FF08C08091BC -:1015F0009401809387018091950180938801809167 -:101600008A0182FD61DD80918A0183FF07C010920B -:101610009401C0938901BD98AD9A789480918A0114 -:1016200084FD78DD80918A0185FD2EDD10923401E4 -:1016300010928A01789402C01092340180913C018A -:10164000882309F41FCE80913D0181110DC0809146 -:10165000380180933B018091370180933A0180915A -:1016600036018093390119C090913B01981710F40D -:10167000C09801C0C09A90913D0180913A018917AC -:1016800010F4C19801C0C19A90913D018091390137 -:10169000891710F4C29801C0C29A80913D018F5FF2 -:1016A00080933D01EDCD65E3CE0117D080916D00B3 -:1016B00090916E0061E3019610D080916D00909141 -:1016C0006E0062E3029609D086CDE199FECF9FBB02 -:1016D0008EBBE09A99278DB30895262FE199FECF0E -:1016E0001CBA9FBB8EBB2DBB0FB6F894E29AE19A51 -:0A16F0000FBE01960895F894FFCF95 -:1016FA00FF5A0A000A0803350031003200200000B0 +:1002B0003195C31BD04010E21ABF0881033C31F1D5 +:1002C0000B3421F1209169011981110F1213EDCF27 +:1002D0004A81441F093679F10D3211F0013E29F7A8 +:1002E000009370013F915F914F911F910F912F915A +:1002F000DF910F90CAB7C5FD15CFC0916801C395B6 +:10030000C0936801CF91CFBFCF9118952091700114 +:10031000222341F310916E01112379F534307AF1E3 +:1003200030936E0120936A0110916B013BE0311B09 +:1003300030936B0124C000916E010130F4F40AE5A2 +:100340004F7049F43091610034FD1AC00093610090 +:10035000C1E5D1E019C030915C0134FD11C00093BA +:100360005C01CDE5D1E010C0052710E000C021C040 +:10037000052710E0C89508BB14C03AE501C032ED6E +:10038000032EC0E0D0E032E017B31861C39A08B37F +:1003900017BB58E120E84FEF20FF052708BB279542 +:1003A00017951C3F28F700004552B0F720FF05279E +:1003B000279508BB17951C3FB8F629913A9561F728 +:1003C000077E10916F01110F08BBC250D04011F091 +:1003D0001093690110E21ABF086017B3177E402F0F +:1003E000477E54E05A95F1F708BB17BB48BB7ACF5C +:1003F000CF93DF9360916E01635067FDB7C080912A +:100400006B01CCE0D0E0C81BD109CE58DE4F809103 +:100410006A018D3209F099C0683009F0A5C083ECFB +:10042000809351018AE58093610010927100888168 +:10043000807639F0CE013AD2982F8F3F09F474C0FC +:100440007AC09A8110925A018981811106C0109256 +:100450005B012AE531E092E062C0853019F49093A7 +:100460006F015AC0863009F041C08B81813049F458 +:1004700081E690E090936D0180936C0180E492E1BD +:1004800032C0823049F488E490E090936D0180930B +:100490006C0180E499E127C0833019F5911109C0FE +:1004A00089E890E090936D0180936C0180E494E082 +:1004B0001AC09130B1F0923049F483E790E0909304 +:1004C0006D0180936C0180E496E10DC0933049F496 +:1004D00085E690E090936D0180936C0180E098E058 +:1004E00002C080E490E08093710025C0883069F0FC +:1004F000893019F4909371010FC08A3049F08B3024 +:1005000059F48BE480935D0107C021E731E002C01C +:100510002AE531E091E003C02AE531E090E0309334 +:100520006D0120936C0107C0888187FD9E8180E862 +:100530008093710007C08F81811104C08E8189175B +:1005400008F4982F909360000FC08091710087FF8E +:100550000BC0CE0112D18F3F21F48EE18093610058 +:1005600003C081111092600010926E0180916100B1 +:1005700084FF56C0809160008F3F09F451C0C82F9E +:10058000893008F0C8E08C1B809360009091510185 +:1005900088E8892780935101CC2389F1209171004B +:1005A00027FF08C06C2F82E591E0C8D0C82F8930A2 +:1005B00088F525C080916C0190916D0126FF0BC0DC +:1005C000A2E5B1E0FC012C2F280F34913D93319628 +:1005D0002E13FBCF09C0DC01E2E5F1E02C2F2E0F3A +:1005E0003D9131932E13FCCF2FEF2C0F30E02F5F76 +:1005F0003F4F820F931F90936D0180936C016C2F7E +:1006000082E591E075DDCC5FCC3041F08FEF8093D7 +:10061000600004C08FEF80936000CEE1C093610062 +:1006200084E196B3987131F48150D9F710926F013B +:1006300010926901C1E08111C0E0809170008C17B7 +:1006400029F0C11101C081D3C0937000DF91CF9117 +:100650000895AC9A8BB780628BBFECE5F1E08BE438 +:1006600081838AE580830895FC01DB01AC014C5F46 +:100670005F4F619128E030E080E890E0782F7623AA +:1006800009F0C09A70916400072E00C000C00000FD +:100690000A94D9F7C29A70916400072E00C000C076 +:1006A00000000A94D9F7990FB1999F5FC098C2983A +:1006B00086952150310911F79D93E417F507C9F686 +:1006C000089580914D0190914E019C012F5F3F4F05 +:1006D00030934E0120934D0120914A0127FF02C023 +:1006E000880F991F80FD286020934601292F2695A9 +:1006F00020934701969587958093480162E471E0C5 +:1007000086E491E0B1CF08C024E02A95F1F7019783 +:1007100030F024E02A95F1F700C00197A8F708957A +:10072000DC0100C000C000C000C000C000C087EEF7 +:1007300093E0E9DF00001197A0F70895EF92FF9290 +:100740001F93CF93DF931F92CDB7DEB7182F7C0195 +:100750008E2D811B861748F46983B3DF8091450194 +:10076000F70181937F016981F3CF862F0F90DF918D +:10077000CF911F91FF90EF900895DF92EF92FF923B +:100780000F931F93CF93DF93C62F20918B012111DD +:1007900005C0D82F8C0130E6D32E4EC020911D020B +:1007A00040918A0170E0620F711D50E021E06417F2 +:1007B000750714F420E008C0C0918A0130911D0231 +:1007C000C31B34E130933401382FDC018A2F831BA3 +:1007D0008C1760F4E0911D0281E08E0F80931D0262 +:1007E000F0E08D91EB56FE4F8083F0CF822F37C023 +:1007F0008091640090E025E0880F991F2A95E1F729 +:10080000E80EF91E80914B0190914C01E816F90613 +:1008100098F462E471E086E491E026DF809145017E +:10082000909149018913E4CF90915001891701F308 +:1008300090914F018917E1F2802F8D1B8C1770F476 +:10084000F80181918F01809349013BDF809146013E +:100850008D2580934601E12CF12CD4CF81E0DF91EE +:10086000CF911F910F91FF90EF90DF90089528B3E3 +:10087000342F3095232338B3432B680F791F861705 +:10088000970799F0FC013191CF0158E048BB330F35 +:100890005A9500C008F028BB00C0000028BB21F01A +:1008A00000C000C000C0F2CFEACF0895CF93DF931D +:1008B000EC012981211108C081E28983D0936D0167 +:1008C000C0936C0198E03DC2213011F486B30BC196 +:1008D0006A81223011F468BB33C2962F362F3770ED +:1008E00041E050E0032E02C0440F551F0A94E2F786 +:1008F000233009F496C0243021F488B3482B48BB38 +:100900001FC2253051F460936400B99887B38562A3 +:1009100087BB88B3887D88BB13C2263049F4B8985A +:10092000C098B998C198BA98C298BD98C59808C29D +:10093000273051F4BE01CE01029696DED0936D01B0 +:10094000C0936C0194E0FDC1283031F460935001F4 +:100950008B8180934F01F4C1EC81FD81F0934E01B6 +:10096000E0934D01293011F480E203C02B3021F4D3 +:1009700080EA80934A01A4C1EA81FB81F0934C0193 +:10098000E0934B012A3011F480E4F3CF2C3011F4C2 +:1009900080ECEFCF2D3021F487B34095482304C07D +:1009A0002E3021F487B3482B47BBCAC12F3009F53D +:1009B000611105C08091350187B9A59A0CC06130DD +:1009C00031F480913501816087B9A29A04C0623008 +:1009D00011F48FE887B9369A3699FECF84B18883AF +:1009E00085B18983D0936D01C0936C0114BA92E0F4 +:1009F000A8C1203159F4B89AB99A8AB5806A8ABDDB +:100A00008AB583608ABD83B7856044C0213121F4F3 +:100A100069BD8C8188BD94C1223109F46ECF233128 +:100A200021F488B3409548236ACF243159F486B322 +:100A300090E04823592302C0559547953A95E2F72F +:100A4000488352C02631A1F561110AC083B78B7F5C +:100A500083BF83B78D7F83BF83B7816083BF71C13D +:100A6000613031F483B78B7F83BF83B782600FC05F +:100A7000623031F483B78B7F83BF83B7826014C049 +:100A8000633051F483B7846083BF83B78D7F83BFA6 +:100A900083B78E7F83BF54C1643009F051C183B7DF +:100AA000846083BF83B78D7F83BF83B78160F2CFBC +:100AB0002F3159F48B8190E0982F8827860F911D54 +:100AC00090936300809362003BC1203219F41ABCFA +:100AD00013BE36C1213221F46093150281E07FC03C +:100AE000223241F483E18883D0936D01C0936C017D +:100AF00091E027C12332C9F4379A96B18A81892BB4 +:100B000086B99B81913059F038F0923009F018C1C4 +:100B100080913501806906C01092350112C1809123 +:100B200035018068809335010BC1283249F48CE887 +:100B300091E090936D0180936C019091940101C1BB +:100B4000293211F482E04BC02A3211F483E00BC049 +:100B50002B3211F484E043C02C3211F488E03FC002 +:100B60002D3231F489E08093340160931502E8C09E +:100B70002E3261F48BE080933401609315028B81F7 +:100B8000809316028C8180931702DAC02F3259F4B9 +:100B9000613031F4B89AB99ABA9A60933C01D0C0E6 +:100BA00010923C01CDC0203349F4609338018B8111 +:100BB000809337018C8180933601C2C0213331F498 +:100BC00070E07093410160934001BAC0223311F488 +:100BD00085E005C0233331F46093150286E08093ED +:100BE0003401AEC0263371F565FF1BC0E091720081 +:100BF000E03CB8F48B81AE2FB0E0AC58BF4F8C9383 +:100C00008C81A1E0AE0FB0E0AC58BF4F8C9383E075 +:100C10008E0F809372008D81EE5FF0E0EC58FF4FF5 +:100C200080838A8184FF8CC080917200882309F4BC +:100C300087C081E18093340187B3842B87BB4093C5 +:100C400073007EC02733A1F480916D0090916E00F7 +:100C500052D580916D0090916E006B8101964BD5BD +:100C600080916D0090916E006C81029644D568C0B1 +:100C70002C3341F580918B01811162C0888187FFFF +:100C800009C085E991E090936D0180936C0190918A +:100C90008A0157C060938B018E8180938A01909165 +:100CA0008A01911104C084E1809334014AC080918B +:100CB0008A01813818F080E880938A0110921D0221 +:100CC0009FEF3FC0822F807F803EE1F48AE08093D7 +:100CD0003401822F877080931502287020931602AA +:100CE00020E080911502281758F5822F90E0029697 +:100CF000FE01E80FF91F3081FC01EB5EFD4F3083F0 +:100D00002F5FEFCF803FE1F487E080933401822FA3 +:100D100088708093150227702093160220E080913E +:100D20001602281768F4822F90E00296FE01E80F61 +:100D3000F91F3081FC01EB5EFD4F30832F5FEFCF59 +:100D400090E0892FDF91CF910895DF92EF92FF928B +:100D50000F931F93CF93DF9308E010E0C0E0D0E83B +:100D6000DD2EDC0ED1BEC8D97C0184E3E81689E013 +:100D7000F8060CF4CD2DD6950150110989F78FEFA7 +:100D80008C0F81BF0C2F10E00F5F1F4F21B730E099 +:100D9000021713078CF0B0D98453994097FF03C012 +:100DA0009195819591098E159F0514F4C1B77C0129 +:100DB00081B78F5F81BFEACFC1BF61B780E090E0AC +:100DC000DF91CF911F910F91FF90EF90DF9093C42F +:100DD000CF93DF93D82F882311F0B89801C0B89A29 +:100DE000C0E02C2F30E08091400190914101281704 +:100DF000390728F481E090E086DCCF5FF2CFBA9823 +:100E0000C0E02C2F30E080914001909141012817E3 +:100E1000390728F481E090E076DCCF5FF2CFBA9A10 +:100E2000C0E02C2F30E080914001909141012817C3 +:100E3000390728F481E090E066DCCF5FF2CFD11172 +:100E4000B89AC0E08C2F90E0209140013091410190 +:100E50008217930728F481E090E055DCCF5FF2CF52 +:100E6000DF91CF9108950F931F93CF93DF93B8989D +:100E7000C0E08C2F90E02091400130914101821719 +:100E8000930728F481E090E03EDCCF5FF2CFBA9880 +:100E9000C0E000914001109141018C2F90E080173B +:100EA000910728F481E090E02EDCCF5FF2CFD6B33B +:100EB000C0E08C2F90E08017910728F481E090E04B +:100EC00022DCCF5FF6CFBA9AC0E02C2F30E08091C1 +:100ED0004001909141012817390728F481E090E002 +:100EE00012DCCF5FF2CF8D2F8170DF91CF911F91F8 +:100EF0000F910895CF9388B38A7F88BBBA98B8982A +:100F0000C0E08C2F90E02091400130914101821788 +:100F1000930728F481E090E0F6DBCF5FF2CFCF912A +:100F20000895CF9387B38A7F87BBC0E08C2F90E072 +:100F300020914001309141018217930728F481E00C +:100F400090E0E1DBCF5FF2CFB89AC0E08C2F90E069 +:100F500020914001309141018217930728F481E0EC +:100F600090E0D1DBCF5FF2CFBA9AC0E08C2F90E057 +:100F700020914001309141018217930728F481E0CC +:100F800090E0C1DBCF5FF2CFCF910895CF93B89AB5 +:100F9000C0E08C2F90E020914001309141018217F8 +:100FA000930728F481E090E0AEDBCF5FF2CFBA9AEE +:100FB000C0E08C2F90E020914001309141018217D8 +:100FC000930728F481E090E09EDBCF5FF2CFBA98E0 +:100FD000C0E08C2F90E020914001309141018217B8 +:100FE000930728F481E090E08EDBCF5FF2CFB898D2 +:100FF000C0E08C2F90E02091400130914101821798 +:10100000930728F481E090E07EDBCF5FF2CFCF91B1 +:101010000895CF93DF93D82FC8E08D2F8078D8DE46 +:10102000DD0FC150D1F7DF91CF911DCFFF920F930C +:101030001F93CF93DF93F82ED8E0C0E0CC0F13DFDF +:10104000C82BD150D9F700914001109141018D2F4B +:1010500090E08017910728F481E090E054DBDF5F97 +:10106000F2CFFF2011F080E001C081E0B1DED0E0DE +:101070008D2F90E08017910728F481E090E043DB0A +:10108000DF5FF6CF8C2FDF91CF911F910F91FF90F3 +:101090000895A5E9B1E08827F894C59ABD98EE2790 +:1010A000FF27319688F0B599FCCF803468F4ED9332 +:1010B000FD938395EE27FF27319630F0B59BFCCF4B +:1010C000ED93FD938395EBCF7894880F80938A01FD +:1010D0000895C59ABD9A8091880190918901A5E9EA +:1010E000B1E070918A017723C1F0F894FC01C598B2 +:1010F0006D9158E03197F1F760FDC59A60FFC59892 +:10110000FC013197F1F766955A95B1F7FC01C59A44 +:1011100031963197F1F77A9549F7BD980895772779 +:101120008091880190918901A5E9B1E0EE27FF2720 +:10113000772359F0E3E00E2EFC01EE0FFF1F18F4A9 +:10114000EE27FF2702C00A94C1F73197F1F0B59955 +:10115000FCCFFC01F695E7953197F1F7B599E6CF0D +:10116000662758E0FC013197F1F76695B5996068FC +:1011700000C05A95B9F76D937395EE27FF27319705 +:1011800021F0B59BFCCF703888F2789470938A0177 +:10119000089580E287BB88BB80E090E0A4D28F3FB7 +:1011A00009F081BFC0916D00D0916E00CE019BD23D +:1011B000E82ECE01019697D2F82ECE01029693D258 +:1011C000982F80ED8E0D8A3008F07BC280ED8F0D58 +:1011D0008A3008F076C280ED890F8A3008F071C23B +:1011E000C0916D00D0916E00CE017DD290E09093C1 +:1011F000680080936700CE01019675D290E09093CD +:101200006A0080936900CE0102966DD290E09093BF +:101210006C0080936B00BB9AC4E18FE090E080DAB1 +:10122000C150D9F7BB9885E090E09093410180933D +:10123000400110926300109262009EE088E10FB6B8 +:10124000F894A89581BD0FBE91BD10923B011092FC +:101250003A01109239011092380110923701109220 +:10126000360110923D0110923401F3D97894B89868 +:10127000C098B998C198BA98C298BD98C598DAE153 +:1012800030E4F32EC1E04BE1E42E20E8D22EA89505 +:10129000AFD8E09134018E2F90E08531910508F0B0 +:1012A000D9C1FC01E15FFF4F0994B89AB998BA9A85 +:1012B000C29A10928C018091150280933F01D092C6 +:1012C0003E0180913E01882309F458C0C098B12C9A +:1012D0008B2D90E02091620030916300821793077C +:1012E00028F481E090E00FDAB394F2CF90913E01C0 +:1012F00080913F01892309F0C09AC29880918C01A6 +:10130000880F80938C0196B320918C0191FB8827E4 +:1013100080F9820F80938C01B12C8B2D90E020916D +:101320006200309163008217930728F481E090E017 +:10133000EAD9B394F2CFC29A80913E018695809308 +:101340003E01BFCFBA9AC29880EE91E0DCD9BFB619 +:10135000F894C29A86E490E0D6D9BA9886B382FB14 +:10136000002700F910E0C80121E0822780938C015A +:10137000BFBE8AE991E0C7D9BA9AC29AC0939401D4 +:1013800069C18091150280933E01BA9A98E0B92E06 +:10139000AFB6F894C29880913E0180FF07C086E006 +:1013A00090E0B1D9C29A80E490E006C08CE390E06E +:1013B000AAD9C29A8AE090E0A6D980913E0186958A +:1013C00080933E01AFBEBA94B110E2CF43C11092F8 +:1013D0008C0188E0B82E80918C01869580938C01D9 +:1013E000BA9AAFB6F894C29886E090E08CD9C29AC7 +:1013F0008AE090E088D9BA9886B382FB882780F982 +:1014000080933E01AFBE87E390E07DD980913E019D +:10141000882329F080918C01806880938C01BA9494 +:10142000B110D9CFABCFBA9ABFB6F894C29886E0C4 +:1014300090E069D9C29A8AE090E065D9BA9886B3FB +:1014400082FB882780F980938C01BFBE97CFBA9A20 +:10145000BFB6F894C2988091150280FF07C086E05D +:1014600090E051D9C29A80E490E006C08CE390E00D +:101470004AD9C29A8AE090E046D9BFBEEBC0B99A79 +:10148000B898BA9AC298E0923F01DDB980911502EE +:101490008111C59810923E01E0913E0180911602A3 +:1014A000E81730F5F0E0E95EFD4F80818FB9FEB8B6 +:1014B00080913F018DB9B12C8B2D90E0209162007D +:1014C000309163008217930728F481E090E01BD9E4 +:1014D000B394F2CF769BECCF80913E01E82FF0E001 +:1014E0009FB1E457FE4F90838F5F80933E01D4CF2E +:1014F000809115028111C59A80913E0156C0FADC97 +:10150000A9C080E090E00DDD8091150282DD80931E +:101510003E0115C0B12C80911502B81650F4EB2D88 +:10152000F0E0E95EFD4F808174DD80933E01B3946D +:10153000F2CF80911602811129DD80913E018093C6 +:101540008C011CCF80911502811102C0B12C19C0F1 +:10155000912C292D30E08091160290E00197A9018D +:1015600044575E4F5A012817390734F481E05EDD95 +:10157000F50180839394EDCF80E058DDF501808301 +:101580000EC080911602B81650F48B2C912C81E07D +:101590004DDDF401E457FE4F8083B394F2CF809188 +:1015A00017028111F3DC809116028093940152C0DE +:1015B00081E090E0B5D8BFB6F8946091720070E019 +:1015C0004091730084E790E052D91092720055CF99 +:1015D00080918B01847351F480918B0180FF11C045 +:1015E000C598BD9A84E690E09BD80BC0B090680186 +:1015F00088EC90E088D880916801B81669F3B82E1D +:10160000F7CF80918B0181FF08C080919501809375 +:101610008801809196018093890180918B0182FDE0 +:1016200058DD80918B0183FF07C010929501C09314 +:101630008A01BD98AD9A789480918B0184FD6FDD0D +:1016400080918B0185FD25DD1092340110928B0174 +:10165000789402C01092340180913C01882309F4EF +:1016600016CE80913D0181110DC08091380180938B +:101670003B018091370180933A018091360180933C +:10168000390119C090913B01981710F4C09801C01E +:10169000C09A90913D0180913A01891710F4C19848 +:1016A00001C0C19A90913D0180913901891710F4D0 +:1016B000C29801C0C29A80913D018F5F80933D0125 +:1016C000E4CD65E3CE0117D080916D0090916E005E +:1016D00061E3019610D080916D0090916E0062E3FD +:1016E000029609D07DCDE199FECF9FBB8EBBE09ADB +:1016F00099278DB30895262FE199FECF1CBA9FBB81 +:101700008EBB2DBB0FB6F894E29AE19A0FBE0196FC +:061710000895F894FFCFDC +:10171600FF5A0A000A080335003100320020000093 :00000001FF From 399edba14567e8a3d81c6312d3f9d97465e7aef1 Mon Sep 17 00:00:00 2001 From: Deqing Sun Date: Sat, 10 Nov 2018 19:26:42 -0500 Subject: [PATCH 8/9] Change gdb break signal from signal0 to signal5 When using SIGTRAP (singal 5), VScode no loger show exception warning, and continue works properly. --- src/gdbserver/rsp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gdbserver/rsp.c b/src/gdbserver/rsp.c index a11fd89..32357ce 100644 --- a/src/gdbserver/rsp.c +++ b/src/gdbserver/rsp.c @@ -192,15 +192,15 @@ void handle_command(int fd, const char *cmd) { switch (cmd[0]) { case '?': - write_resp(fd, "S00"); + write_resp(fd, "S05"); break; case 'c': target_continue(fd); - write_resp(fd, "S00"); + write_resp(fd, "S05"); break; case 's': target_step(); - write_resp(fd, "S00"); + write_resp(fd, "S05"); break; case 'g': cmd_read_registers(fd); From 6668534c6e6677ea8186367a7369b04132753d32 Mon Sep 17 00:00:00 2001 From: Deqing Sun Date: Mon, 12 Nov 2018 01:59:27 -0500 Subject: [PATCH 9/9] windows require a flush --- src/gdbserver/GdbserverCommand.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gdbserver/GdbserverCommand.c b/src/gdbserver/GdbserverCommand.c index 4a59e83..9339879 100644 --- a/src/gdbserver/GdbserverCommand.c +++ b/src/gdbserver/GdbserverCommand.c @@ -15,7 +15,8 @@ void GdbserverCommand(void) } Wsl("Target ready, waiting for GDB connection."); - fprintf(stderr, "%s", "\nInfo : avrchip: hardware has something\n"); //vscode check stderr for start, mimic a openocd process + fprintf(stderr, "%s", "\r\nInfo : avrchip: hardware has something\r\n"); //vscode check stderr for start, mimic a openocd process + fflush(stderr); Ws("Use 'target remote :"); Wd(LISTEN_PORT,1); Wsl("'"); connfd = listen_sock(LISTEN_PORT);