Ralph Doncaster
Ralph Doncaster
I won't have time to re-test this for a while. Using a low-speed mouse on the same root hub as the MN device is how I'd suggest testing this condition...
Since micronucles doesn't use LTO, it is more difficult to optimize the C code, especially when restricted to pure C without inline asm. Some of the asm techniques I use,...
I forgot v-usb is such a mess of preprocessor code. I decided that it'll be easier to optimize and convert to asm if I clean it up and strip it...
I think there's still optimizations in u-wire that haven't been back-ported to micronucleus. https://github.com/cpldcpu/u-wire/tree/master/firmware In particular, usbdrv/usbdrv.c has been significantly reduced, with the basic USB message processing happening in main.c...
Thanks for the feedback Tim, Although it doesn't seem to be very popular, I prefer to do most of my embedded programming in asm, particularly on small 8-bit platforms like...
I just got t85_aggressive down to 1342 bytes, below the next page boundary. https://github.com/nerdralph/micronucleus-firmware/tree/asm I also improved the sync timing window from -1/+11c to -3/+7c per JK transition.
Making tweaks to the v-USB asm code is a bit trickier than it should be. Some places the cycle numbers in the comments are at the start of the instruction,...
I've added a m88p config, and finished converting asm12.inc to conform to the avr-libc calling convention. This makes it easy to run micronucleus on a USBasp. I've switched to testing...
I just pushed an update to usbdrv.c that leaves out unused USB requests (ones mn should never see, or ignores). t85_default is now 1438 bytes and t85_aggressive is 1292.
I'm catching some big fish today. Since the configuration descriptor is now only 9 bytes, wLength no longer needs to be checked for any of the messages mn receives. t85_aggressive...