- Needs more testing
- Simple ResultMacros are called immediately instead of delaying
(Normal macros need to be delayed)
- Removed old code that determined at runtime if a macro was Simple/Normal
(Replaced with a lookup)
- Added some flash optimizations
- Differentiating between simple and complex macros
- Worst case requires more flash
- Best case will use a lot less RAM
- Requires update to kll compiler
Fixes#22
Each (dfu) interface may have more than one a ltsetting each with their own index and name. According to the DFU_1.1 pdf section 4.2.3, "* Alternate settings can be used by an application to access additional memory segments. In this case,
it is suggested that each alternate setting employ a string descriptor to indicate the target memory
segment; e.g., 'EEPROM'." Whether or not we end up using multiple memory segments it is still good to have a descriptive name incase there are other dfu devices connected.
Edit: Fixed previous indentation
Fixes#22
Each (dfu) interface may have more than one a ltsetting each with their own index and name. According to the DFU_1.1 pdf section 4.2.3, "* Alternate settings can be used by an application to access additional memory segments. In this case,
it is suggested that each alternate setting employ a string descriptor to indicate the target memory
segment; e.g., 'EEPROM'." Whether or not we end up using multiple memory segments it is still good to have a descriptive name incase there are other dfu devices connected.
- CLEAR_FEATURE unset is currently causing the keyboarod to freeze
- Though not ideal, it seems harmless to ignore this USB Control Packet
- Tested working on a Mac Mini (Yosemite)
By default:
DebounceThrottleDiv = 0;
This is the default infinity behaviour right now (may be changed in the future).
Increasing DebounceThrottleDiv will increase the scan rate divider.
DebounceThrottleDiv = 1; # Scans half as much
DebounceThrottleDiv = 2; # Scans a quarter as much
DebounceThrottleDiv = 3; # Scans an eigth as much
etc.
For ARM based uCs (like the Infinity) the maximum divider is 32.
Can be specified from any .kll file
DebounceDivThreshold = 0xFFFFFFFF
Sets to max debounce, default is 0xFFFF.
The 0xFFFFFFFF is about a 2x longer debounce
The max requires more ram (as it uses 32 bit variables instead of 16).
Added support for submodule capabilities files.
Check for dfu-util and screen before using them. Also aborts if
teensy_loader_cli compilation fails.
Uses the type builtin to determine if a command exists. See here:
https://gist.github.com/sdelmas/7377271
- When loading a garbage image onto the device, the chip hangs
and refuses to jump to the bootloader and start dfu
Fix
- Check if chip was in locked state and jump to dfu
- Check if watchdog timer fired and jump to dfu