ShellCheck: Avoid checking success of echo
CI: Do update package index on Linux
cSpell: Add filename exceptions
C++: Improve const usage
C++: Use auto keyword
cmake: Require C++11 as minimum
C++: Modernize and de-duplicate includes
C++: Remove void arguments for consistency
C++: Use uppercase literal suffix
C++: Apply misc C++11 modernizations
C++: Apply misc readability fixes
C++: Remove useless const
C++: Fix macro parantheses
clang-tidy: Update configuration and CI call
C++: Fix strcmp/memcmp
CI: Add package build for MSYS2
Add .gitattributes to force LF
docs: Split pdf generation into 3 separate steps
Make static_assert C++11 compatible
Avoid variable length array for C++11 compatiblity
arglex: Avoid warning about unused function
msbin: Avoid warning by renaming function
hp64k: Remove unused parameter
CI: Fail QA on warnings by clang-14 and gcc-11
CI: Add QA workflow with specials build
CI: Small improvements on GitHub workflow
CI: Add QA check for Clang-Tidy
CI: Add Windows MSYS2 and MacOS workflow
Add GitHub workflow for MegaLinter
Fix spelling errors
Add cSpell configuration
Change spelling of nybbles to nibbles
test: Use test_prelude.sh from source dir
README: Simplify, fix formatting and spelling
Fit C source into line length limit
doc: Do not copy scripts to build directory
doc: Refactor CMake file
doc: Fix some issues in shell scripts
doc: Normalize groff calls
srec_info: Fix calculation of 32-bit end address
srec_info: Fix address length formatting
srec_info: Replace snprintf by iomanip functions
srec_info: Fix verbose ration DivByZero
cmake: Add targets to build executables and show version
cmake: Make test scripts executable
ci: Add github workflow to compile and test
Remove VIM modlines in favor of EditorConfig
EditorConfig: Add configuration for automatic whitespace handling
Replace tabs by spaces
man: Fix copyright sign
Fix spelling errors
man: Fix UTF-8 character
srec_hp64k.5: Remove superfluous table cell
html: Fix missing # on color
Make copyright year detection more robust
Support older Git versions for copyright year detection
I have explained why -over is not doing what you want, it's just filling the wholes within the file. If you want to fill anything outside the file address range, you must specify the addresses. Where shall that info come from otherwise? You want everything from address 0, that one has to be hardcoded. And the end should be the same as the file, and this is exactly what the suggested -maximum-address does. So the correct command is: srec_cat hexfile.hex -Intel -fill 0xFF 0 -maximum-address "(" hexfile.hex...
I have explained why -over is not doing what you want, it's just filling the wholes within the file. If you want to fill anything outside the file address range, you must specify the addresses. Where shall that info come from otherwise? You want everything from address 0, that one has to be hardcoded. And the end should be the same as the file, and this is exactly what the suggested -maximum-address does. So the correct command is: srec_cat hexfile.hex -Intel -fill 0xFF 0 -maximum-address "(" hexfile.hex...
Tip for searching: In the PDF just search for maximum-addr. The leading minus sign is some other kind of dash and won't be found.
Please try out the second command, that is exactly what you need. It creates the same output as just writing to a binary, but with 0xff instead of 0. Binary files always start at address 0. So converting to binary implicitly fills the the range from 0 to "end of input" with 0. In my command line I do this explicitly with 0xff, so there is no missing byte to be filled implicitly later. -overdefines the range from the start to end of your input. So you just filled the holes within your file, not the...
If you don't want the default, you need to explicitly fill the address range. If you know the size needed, use something like: srec_cat input.hex -intel -fill 0xff 0x0 0x8000 -o output.bin -binary Otherwise you can use the last address of you input file: srec_cat input.hex -intel -fill 0xff 0x0 -maximum-address "(" input.hex -intel ")" -o output.bin -binary P.S. The quoting of the brackets depends on your OS. I hope that quotation marks works anywhere.
The documentation of the -byte-swap argument does not really match the implementation. Based on the implementation I would say: - The values 2,4,8 specifies how many bytes shall be swapped - The values 16,32,64,128,256 specifies how many bytes, specified in bit-length, shall be swapped The 2,4,8 seems to match the documentation. But it's not true that you can use any weird value. And that the high numbers represent bit-length is not mentioned at all. So please try -byte-swap 128 which should swap...
The documentation of the -byte-swap argument does not really match the implementation. Based on the implementation I would say: - The values 2,4,8 specifies how many bytes shall be swapped - The values 16,32,64,128,256 specifies how many bits shall be swapped The 2,4,8 seems to match the documentation. But it's not true that you can use any weird value. And that the high numbers represent bits is not mentioned at all. So please try -byte-swap 128 which should swap 16 bytes.
The string -maximum-address-2 is not a valid argument, hence the error message. SRecord does not support numeric calculations. Also the argument -offset is not for calculating an address, it's moving the data. To save the last two bytes it's getting a little bit complicated: srec_cat EB200P-L7-APP-V1.10.hex -intel -crop -over "(" -generate 0 2 -constant 0x00 -offset -maximum-address EB200P-L7-APP-V1.10.hex -intel -offset -2 ")" -o Last2byte.hex -intel The brackets are not necessary, but makes the...
Hello, is anyone in contact with Scott Finneran? I contacted him last year and got a positive and promising reply, but nothing since then. Best Regards, Josef
This examples in the documentation was written several years later than the implementation. Most likely the coded range was not considered. I don't see a valid reason why the length must be limited.
This examples in the documentation was written several years later than the implementation. Most likely the coded range was considered. I don't see a valid reason why the length must be limited.
Implement RFE [1563781] no file:// for local paths
Add very simple icon
Add utility class for windows file system
ChangeLog update for Release 0.6.1
Inlining verbosePrint as its doing nothing atm
ChangeLog update for Release 0.6.0
Add utility class for windows clipboard
Add main function with the primitive user interface
Define for windows version before including header
Add Linkator itself
Add ChangeLog
Add license file
Add misc utilities
Add output of version number for release
Initial repository structure
Add NSIS setup script
Hello Tweakbert, If multiple inputs are specified srec_cat concatenates their contents. Almost all options are postfix arguments, which act on the previous input only. Before v1.45 you had to use a temporary file like you did. Or you can use pipes to achieve the same: srec_cat -generate 0x0000 0x0001 -constant-l-e 0x01 1 -generate 0x0001 0x0002 -constant-l-e 0x02 1 | srec_cat - -crc16-l-e 0x0c -o --hex-dump In newer version you can use parentheses to group the inputs first and apply the checksum...
My first post was done without trying out, so I had some lapses. But this version is definitely working. You have to use it instead of your own script (only the output part is missing). Assuming that your hex has only data starting at 0x800c000 the first part can not cause a contradictory value a 0x1c. Because the newly calculated checksum is the only data at that position. If that's not the case, can you please post your range? srec_info xxx.hex -intel -fill 0xff -over xxx.hex -intel -range-padding...
Contradictory bytes should be avoided and in most cases they can. Having the checksum in the middle of the data is common, but bad design (unless it's a simple addition). You need to know, which address ranges are skipped by the check or replaced by dummy data. In your case, assuming that you got the correct result above, at least checksum and length are replaced by dummy values. Either the filled 0xff or whatever already was in your input file. Doing the checksum alone and combine it with the rest...
Yes, you're right. I forgot to extend the exclude range, i fixed the example above.
Contradictory bytes should be avoided and in most cases they can. Having the checksum in the middle of the data is common, but bad design (unless it's a simple addition). You need to know, which address ranges are skipped by the check or replaced by dummy data. In your case, assuming that you got the correct result above, at least checksum and length are replaced by dummy values. Either the filled 0xff or whatever already was in your input file. Doing the checksum alone and combine it with the rest...
Contradictory bytes should be avoided and in most cases they can. Having the checksum in the middle of the data is common, but bad design (unless it's a simple addition). You need to know, which address ranges are skipped by the check or replaced by dummy data. In your case, assuming that you got the correct result above, at least checksum and length are replaced by dummy values. Either the filled 0xff or whatever already was in your input file. Doing the checksum alone and combine it with the rest...
srecord uses the man page to display the help on command line. This is not available on Windows. Please refer to the PDF manual which is available on the download page.
see this answer
Please use a minus sign for piping: srec_cat example.s19 -o - -binary | other_program