sierrafoxtrot / srecord

SRecord github Mirror
https://srecord.sourceforge.net/
GNU General Public License v3.0
47 stars 23 forks source link

add support for efinix .bit/.hex files (input only) #51

Closed danselmi closed 1 year ago

danselmi commented 1 year ago

This patch adds support for reading bit-stream files from efinix.

Can you point me to where I have to add the documentation about this format? I will then provide a second patch or amend this one.

sierrafoxtrot commented 1 year ago

This patch adds support for reading bit-stream files from efinix.

This is great @danselmi and I'm looking forward to this being merged. Always love when we add a new format and you'd be bringing the number to 44 in total!

Can you point me to where I have to add the documentation about this format? I will then provide a second patch or amend this one.

The doco is written in good old (emphasis on old :-) ) nroff format. This is then used to generate man pages, reference manual and website at compile time.

Basically if you added doc/man5/srec_efinix.5 the cmake build system should just pick it up automagically. If you were looking for an example, the srec_vmem.5 would be similar and may be familiar if programmed logic is your thing! If you are looking for something complex with diagrams etc, doc/man5/srec_intel.5 and doc/man5/srec_mif.5 are great thorough examples.

Additionally, for contributions of file formats, we are going to need an addition to the regression test suite. These are in test directory. Simplest thing would be to create the next numbered shell script. Something like test/02/t065a.sh. Plenty of examples (particularly the more recent ones) to copy and hack. Essentially these just pass known data in and exercise the reading and writing of the format.

The docs and the tests reflect the code-base's Linux roots and if that isn't your normal environment, I'd be happy to help get you over the line.

danselmi commented 1 year ago

how can i fix the warnings from cspell which doesn't know "efinix"?

sierrafoxtrot commented 1 year ago

how can i fix the warnings from cspell which doesn't know "efinix"?

Just add this to doc/dictionaries/names.txt. Given that we want to give credit for your contribution, I'd suggest adding @danselmi (and your given name & surname if you'd like to list those).

sierrafoxtrot commented 1 year ago

Basically if you added doc/man5/srec_efinix.5 the cmake build system should just pick it up automagically. If you were looking for an example, the srec_vmem.5 would be similar and may be familiar if programmed logic is your thing! If you are looking for something complex with diagrams etc, doc/man5/srec_intel.5 and doc/man5/srec_mif.5 are great thorough examples.

[copied over from #52]

The man5 files contain the file descriptions as they are from section 5 "File formats and conventions". The commands themselves are documented in doc/man1/*.1.

If you have something specific to e.g srec_cat then it would go in doc/man1/srec_cat.1

If you have something common (primarily the common input arguments used by srec_cat, srec_info and srec_cmp, then it would go into doc/man1/srec_input.1.

The docs and the tests reflect the code-base's Linux roots and if that isn't your normal environment, I'd be happy to help get you over the line.

This include helping to flesh out any of these docs

sierrafoxtrot commented 1 year ago

It looks like you are extremely close to getting the checks to pass so I'll make a start on the actual review. Really keen to get this merged! Also keen for this not to feel like a death-by-review process.

Please let me know if you'd like to me wait (no rush!)