Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Stefan Haun
firmware
Commits
446da13d
Commit
446da13d
authored
Sep 19, 2019
by
Rahix
Browse files
Merge 'Autodetect Python crc16 implementation'
See merge request
card10/firmware!298
parents
cef43dde
4d3ca449
Changes
1
Hide whitespace changes
Inline
Side-by-side
bootloader/crc_patch.py
View file @
446da13d
#!/usr/bin/env python3
import
sys
import
crc16
try
:
import
crc16
crcfun
=
crc16
.
crc16xmodem
except
ImportError
:
try
:
import
crcmod
crcfun
=
crcmod
.
predefined
.
mkCrcFun
(
"xmodem"
)
except
ImportError
:
try
:
import
crcelk
crcfun
=
crcelk
.
CRC_XMODEM
.
calc_bytes
except
ImportError
:
raise
Exception
(
"Could not find a CRC implementation. Tried: crc16, crcmod, crcelk."
)
def
main
():
data
=
open
(
sys
.
argv
[
1
],
'
rb
'
).
read
()
crc
=
crc
16
.
crc16xmodem
(
data
)
data
=
open
(
sys
.
argv
[
1
],
"
rb
"
).
read
()
crc
=
crc
fun
(
data
)
# print(crc)
padded
=
data
+
bytes
([
crc
>>
8
,
crc
&
0xFF
])
crc
=
crc
16
.
crc16xmodem
(
padded
)
crc
=
crc
fun
(
padded
)
# print(crc)
open
(
sys
.
argv
[
1
],
'
wb
'
).
write
(
padded
)
open
(
sys
.
argv
[
1
],
"
wb
"
).
write
(
padded
)
if
__name__
==
"__main__"
:
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment