Commit Graph

267 Commits

Author SHA1 Message Date
area-8051
ef06e311fc
Merge pull request #83 from grigorig/dump-mcu
Updated MCU models spreadsheet and extraction utility
2023-06-01 21:18:00 +02:00
Vincent DEFERT
6373620d18 Updated MCU models list and splitted in 2 spreadsheets to facilitate updates 2023-06-01 21:15:48 +02:00
Vincent DEFERT
8b55c166db Added argument to dump-mcu to generate spreadsheet with MCU flags 2023-06-01 21:10:03 +02:00
area-8051
ae7645cc73
Merge pull request #82 from grigorig/models
Updated list of tested MCU models
2023-06-01 20:31:26 +02:00
Vincent DEFERT
36bdf16cff Updated list of tested MCU models 2023-06-01 20:29:06 +02:00
area-8051
4c3c3065e0
Merge pull request #81 from grigorig/zh_CN
Added Chinese documentation from PR#55
2023-06-01 18:53:47 +02:00
Vincent DEFERT
717af49b16 Added Chine documentation 2023-06-01 18:51:13 +02:00
area-8051
a6b791b089
Merge pull request #80 from grigorig/pr64
Added protocol stc89a (BSL 7.2.5c) PR#64
2023-06-01 18:37:26 +02:00
Vincent DEFERT
4894e8f219 Added protocol stc89a (BSL 7.2.5c) PR#64 2023-06-01 18:34:44 +02:00
area-8051
f41ae5679f
Merge pull request #78 from grigorig/stcgal-patched
Integration of work done on stcgal-patched
2023-06-01 18:07:27 +02:00
Vincent DEFERT
1468d60005 Minor corrections after review 2023-06-01 08:50:30 +02:00
Vincent DEFERT
86bee9141a Removed Python 3.5 (no loonger available) 2023-05-29 09:34:48 +02:00
Vincent DEFERT
b43792ccd8 Added Loader argument to yaml.load 2023-05-29 09:30:44 +02:00
Vincent DEFERT
20ae770f8f Added support for all STC8 and STC32 series 2023-05-29 09:15:07 +02:00
Vincent DEFERT
796a17f7cf Attempt at guessing the meaning of MCU flags 2023-05-29 09:13:25 +02:00
Vincent DEFERT
4840d3cda5 dump-mcu.c fully automates MCU models extraction from STC-ISP's executable 2023-05-29 09:13:10 +02:00
Grigori Goronzy
2d3c24fc3a Timing improvements
* Reduce delays from 200 ms to 100 ms, since 200 ms tends to be too long
  overall.
* Increase pulse interval to 30 ms to avoid the chance of stray pulses
  after MCU starts sending info packet.
* Add 30 ms delay after autoreset cycle to avoid glitches on startup
2021-01-09 16:54:01 +01:00
Grigori Goronzy
761c68e469 frontend: fix disconnect when autodetection fails
We don't know the protocol version so we can't actually disconnect,
just skip it.
2021-01-09 16:50:08 +01:00
Grigori Goronzy
9900e3088d Blacklist STC8G series
stcgal may brick these untested MCUs.

Fixes #63.
2021-01-09 03:27:45 +01:00
Grigori Goronzy
15e04c1626 Update MCU database
Update MCU database from STC-ISP 6.87P.
2021-01-09 03:12:10 +01:00
Grigori Goronzy
187aa9a3cf stc15: erase EEPROM flash when needed
If option eeprom_erase_enabled is False, we need to signal to the BSL
to explicitly erase EEPROM flash when needed.

Addresses #59.
2021-01-09 02:16:27 +01:00
Grigori Goronzy
482e6b139f
Merge pull request #62 from grigorig/fix-stc15f104w
stc15: fix baudrate switching
2021-01-09 02:01:29 +01:00
Grigori Goronzy
9202399a84 Add STC15F104W variant to compatibility list 2021-01-09 01:58:32 +01:00
Grigori Goronzy
3cf2cb38e7 stc15: reduce sleep after baudrate switch
We just sleep 200 ms, but apparently that's already too much with some
handshake baudrates. Cut it in half to fix
failures with "-l 9600" in some cases.

Addresses #17.
2021-01-09 01:18:56 +01:00
Grigori Goronzy
384471f765 stc15: fix fuzzing test failure 2021-01-06 20:08:26 +01:00
Grigori Goronzy
df2fbc23cd stc15: fix baudrate switching
Baudrate switching fixes for both HW and SW UART devices:

* Program secondary SW UART timing parameter correctly. Supposedly this
  controls the sampling position when receiving data.
* Swap around trim range/adjust parameter for HW UART devices (as
  determind by older traces)
* Use correct constant for timing calculations

This should fix some STC15x10xW series MCUs. Compatibility to other
devices might be improved as well.

Addresses #17.
2021-01-06 19:56:46 +01:00
Grigori Goronzy
77df068efd docs: note that you can actually read back EEPROM 2021-01-03 20:31:07 +01:00
Grigori Goronzy
2fb96d6236 docs: note autodetection incompatibilities 2021-01-03 20:30:41 +01:00
Grigori Goronzy
c2fd3ab710 Add -e/--erase option
Erases the flash memory without any programming. Mutually exclusive with
providing a file to flash.
2021-01-03 19:57:50 +01:00
Grigori Goronzy
0d5e8e645f Revert "protocols: fix off-by-one in payload extraction"
This reverts commit 0e020f2aa4.

Nothing needed fixing here. This strips off one byte too many.
2021-01-03 18:40:27 +01:00
Grigori Goronzy
1ec855e6a1 Revert "Add "stc89a" protocol"
This reverts commit c5d509d1fa.
2021-01-03 18:36:05 +01:00
Grigori Goronzy
d708a00e9e Revert "docs: add stc89a to protocol information"
This reverts commit 5c2950f084.
2021-01-03 18:35:55 +01:00
Grigori Goronzy
5c2950f084 docs: add stc89a to protocol information 2021-01-03 16:52:44 +01:00
Grigori Goronzy
c5d509d1fa Add "stc89a" protocol
This protocol variant is designed for newer STC89 series chips with BSL
version 7.x.x. The new firmware uses framing
with 16-bit checksum.

This protocol variant is currently untested because I don't have any
hardware at hand.

Addresses #50, #40.
2021-01-03 16:41:05 +01:00
Grigori Goronzy
0e020f2aa4 protocols: fix off-by-one in payload extraction
Drop all of the checksum bytes. This didn't take the end-of-frame marker
into account.
2021-01-03 16:10:05 +01:00
Grigori Goronzy
b46d81a184 Add ihex tests
Add basic ihex module tests for reading and writing.
2021-01-03 15:53:38 +01:00
Grigori Goronzy
ad5a532ab9 ihex: fix writer str/bytes confusion
The HEX writer was never tested/used before and didn't work. Some
leftovers from the Python 2 conversion are the culprit.
2021-01-03 15:51:48 +01:00
Grigori Goronzy
b3741af045 gitignore: add coverage report outputs 2021-01-03 14:11:52 +01:00
Grigori Goronzy
1e78d62f5d Update installation instructions
Python 3.5 is required now.
2021-01-03 14:10:25 +01:00
Grigori Goronzy
d0597578de Add additional reverse-engineering notes 2021-01-03 14:09:50 +01:00
Grigori Goronzy
eaeab65044 frontend: fix flash/eeprom padding
Fill space with 0xFF instead of 0x00.  Addresses #58.
2021-01-02 18:26:21 +01:00
Grigori Goronzy
a19fc406a3 Merge branch 'github-actions' 2021-01-02 18:14:57 +01:00
Grigori Goronzy
51ac52d3a3 Fix build status badge
Use GitHub Actions badge.
2021-01-02 18:13:29 +01:00
Grigori Goronzy
43dbb2ef64 README: fix coverage badge branch 2021-01-02 18:07:21 +01:00
Grigori Goronzy
d7ed8bd530 Fix coveralls integration 2021-01-02 18:06:19 +01:00
Grigori Goronzy
6b83017de9 Raise minimal Python version to 3.5
Newer PyYAML versions require Python 3.5.

Python 3.4 is EOL for some time and even 3.5 reached EOL recently. So
just switch to that as minimum version.
2021-01-02 17:24:44 +01:00
Grigori Goronzy
2d7ccf8b3d Fix PyYAML warning
Use SafeLoader to get rid of warning.
2021-01-02 17:22:15 +01:00
Grigori Goronzy
77b3f0e1b7 Replace Travis CI with GitHub Actions 2021-01-02 15:24:46 +01:00
Grigori Goronzy
5d3214060b Merge branch 'coveralls' 2018-11-13 03:18:07 +01:00
Grigori Goronzy
7e413b09ec CI: disable PyPy3
There are some test-related issues with it, so disable it for now.
2018-11-13 03:16:52 +01:00