bc829ce54c
frontend: catch unknown errors
...
Catch unknown error types in the first stage (connect/initialize).
Sometimes we unfortunately see unexpected exceptions, for instance
pyserial might throw termios.error. See #39 for more details.
2018-09-24 00:43:27 +02:00
97d0d1123b
frontend: add -V/--version flag
...
Add a new CLI flag to print version info and exit, like it is common.
2018-09-23 23:41:44 +02:00
5032b631bf
Drop documentation file installation
...
This doesn't work as I want it to work, after all. Don't install any
documentation for now.
2018-09-23 22:47:50 +02:00
9ae334ec25
Update installation instructions
...
Mention TQDM dependency and switch to official PyPI repositories.
2018-09-23 22:47:50 +02:00
05984a6c49
CI: drop deploy step
...
RPM/DEB packages are discontinued (they're unlikely to come back). Users
are encouraged to use PyPI instead.
2018-09-23 22:47:39 +02:00
e0e2ab5526
Update packaging data for PyPI
...
This makes some minor adjustments, plus some general updates. In short:
* Mark stcgal as stable
* Make tqdm and pyserial requirements more specific
* Add a new long description, specific for PyPI
* Add documentation files to distribution
v1.5
2018-09-23 22:04:52 +02:00
4cc0deb8e9
Prepare for v1.5
2018-09-23 20:42:06 +02:00
5ab2a73411
Merge pull request #45 from Seanjimon/add_tqdm_dependency
...
Add tqdm as required package. Otherwise missing dependency.
2018-09-20 18:06:10 +02:00
4a40d5613a
add tqdm as required package. Otherwise missing dependency
2018-09-20 17:15:42 +02:00
83c0b47f62
Update installation instructions
...
The easiest way to install is arguably by using pip, so recommend that.
2018-09-06 21:54:09 +02:00
b0e882ff32
Merge branch 'better-docs'
2018-09-06 21:07:49 +02:00
ccd4b1e26b
Restructure documentation
...
Move all extra documentation files into doc/ and move reverse
engineering related notes to a separate directory, to keep things tidy.
2018-09-04 00:31:43 +02:00
71d7257422
Split up documentation
...
Split up the giant README.md file into INSTALL, MODELS and USAGE
sections. The new sections are linked from README.
2018-08-31 21:22:46 +02:00
0ff7e16f38
Add FAQ
...
Addresses a bunch of common questions gathered from GitHub issues.
2018-08-31 20:31:19 +02:00
aca713595b
Add STC8F2K08S2 to compatibility report
...
Seems to work just fine after some testing: flash programming,
EEPROM programming and options appear to work correctly.
2018-08-25 04:28:21 +02:00
69b83f0ea1
Update model database
...
Update model database from STC-ISP v6.86O. This is needed for the
STC8F2 series.
2018-08-25 04:16:26 +02:00
170008971d
Delete TODO
...
Wildly outdated. Further TODOs are handled with the GitHub issue tracker.
2018-08-23 17:52:06 +02:00
cd229eab47
Add IAP15L2K61S2 to compatibility list
...
Closes #42 .
2018-08-21 13:27:21 +02:00
ce251f9d30
stc8: check length of status packet
...
Fixes a fuzzing error.
2018-08-21 13:17:14 +02:00
11d2ea22e6
stc8: add tests
...
Add a standard programming test for STC8A8 series and integrate it into
the fuzzer.
The fuzzing tests currently fail.
2018-08-21 13:16:40 +02:00
c7c4937628
stc8: remove cruft
...
Remove some old leftover cruft from porting and development. No
functional change intended.
2018-08-21 13:16:40 +02:00
ac119e180e
stc8: round BRT value to nearest integer
...
Baud rate register (BRT) values need to be as accurate as possible, so
use nearest instead of floor. This should improve reliability at higher
programming speeds.
2018-08-21 13:16:40 +02:00
fcbc560ade
stc8: print additional MCU info
...
Print manufacturing date as well as the factory-measured internal
voltage reference value. These values are displayed by STC-ISP, too.
2018-08-21 13:16:40 +02:00
7b4758499b
Merge pull request #44 from grigorig/stc8
...
STC8 series support
2018-08-21 02:07:28 +02:00
fe60e647bf
stc8: implement option handling
...
Implement option handling for STC8 series, based on STC8A8K64S4A12
reverse engineering.
This mostly wraps up all important parts of the STC8 implementation.
Interoperability was tested with STC-ISP V6.86O.
v2: update documentation
2018-08-21 02:01:39 +02:00
0ffcbd197b
stc8: finish up frequency calibration
...
This is a collection of various changes:
* Also try divider of 5 (it's used by STC-ISP)
* Use the correct IAP delay for the 24 MHz programming frequency
* Also try a trim adjust value of 0x03 and adjust trim ranges
* Fix display of calibrated frequency
2018-08-20 23:47:42 +02:00
85e815366c
stc8: try dividers 2 and 4 for frequency calibration
2018-06-27 01:10:46 +02:00
8bc9d89257
Add preliminary STC8 support
...
What works:
* Frequency calibration of internal RC oscillator
* Flash/EEPROM programming
What doesn't work yet:
* Everything else
2018-06-27 01:05:06 +02:00
b47092093e
Fix frontend argument parser
...
Refactoring sneaked in an issue with the string formatting.
2018-06-27 01:03:22 +02:00
bc5e8ce6cb
setup: load long description from README.md
2018-06-27 00:10:41 +02:00
d9e71a8694
Misc style and consistency fixes (NFC)
...
Various style, naming and other changes as recommended by pep8,
pyflakes and pylint.
2018-06-27 00:05:16 +02:00
4dcde5cc49
Clean up imports (NFC)
2018-06-27 00:05:16 +02:00
3ec6f5b6bd
setup: improve metadata
2018-06-26 23:06:30 +02:00
eb6df3b645
debian: Update Build-Depends and Depends
...
This closes #32
Signed-off-by: Andrew Andrianov <andrew@ncrmnt.org >
2018-06-26 22:14:41 +02:00
eb8eecbc9b
Merge pull request #38 from zerog2k/master
...
stc15f204ea should use protocol stc15a
2018-02-04 18:13:22 +01:00
c71e455f16
stc15f204ea should use protocol stc15a
2018-02-04 09:46:10 -06:00
a5e1cc26ee
Merge pull request #31 from nekromant/progressbar
...
Implement progress callback and tqdm progressbar
2017-10-22 15:55:45 +02:00
b77157bc40
.travis.yml: Install tqdm to make ci happy
...
Signed-off-by: Andrew Andrianov <andrew@ncrmnt.org >
2017-10-19 11:26:42 +03:00
092fbdc842
protocols.py: Implement progress callback and tqdm progressbar
...
Signed-off-by: Andrew Andrianov <andrew@ncrmnt.org >
2017-10-19 11:26:27 +03:00
e0bda73fed
Merge pull request #29 from grigorig/advanced-tests
...
Advanced tests
2017-10-18 23:22:40 +02:00
57100062af
Rename test/ to tests/
2017-10-12 23:02:02 +02:00
030497beb0
Extract StcAutoProtocol class, fix autodetection
...
With the introduction of real abstract classes, it is not possible
anymore to instantiate StcBaseProtocol. Instead, extract some of the
code for autodetection into the new class StcAutoProtocol and use
that for autodetection.
2017-10-12 23:02:02 +02:00
fd923f3a92
Cleanup utils
...
Just a tiny simplification, found by pylint.
2017-10-12 23:02:02 +02:00
b145fb364a
Remove unneeded include
2017-10-12 23:02:02 +02:00
a29c9bf42e
Add fuzzing programming cycle tests
2017-10-12 23:02:02 +02:00
1cde6da007
stc15: check that a UID has been received
...
Found by fuzzing. In some cases it's possible that we end up without
a valid UID. Detect and workaround.
2017-10-12 23:02:02 +02:00
ca30a508aa
Fix various issues in frequency trimming
...
Found by fuzzing. The frequency trimming functions did a bad job of
checking for possible out of bounds accesses and didn't handle various
failure cases correctly. Add suitable checks to fix the issues found.
v2: fix one check, add several new ones
2017-10-12 23:01:50 +02:00
b9208c4772
Add length checks for status packets
...
Fuzzing found a number of issues when status packets are cut short.
Introduce checks on the length of status packets to fix these issues.
2017-10-11 23:20:20 +02:00
ad5a89297f
Check length of responses
...
Fuzzing found lots of issues when packets are cut short. This should
rarely happen, but stcgal should be able to handle it without crashing.
This adds length checks when checking the magic of packets or when
checking checksums.
2017-10-11 23:20:20 +02:00
0cb56f4919
Use abc for StcBaseProtocol
...
Use the abc module to declare StcBaseProtocol as an abstract base
class and clean up imports while at it.
2017-10-11 23:20:20 +02:00