Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Loader improvements #264

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
andreagilardoni wants to merge 3 commits into arduino:main
base: main
Choose a base branch
Loading
from andreagilardoni:loader-improv

Conversation

@andreagilardoni
Copy link

@andreagilardoni andreagilardoni commented Nov 14, 2025

This PR aims to:

  • add a check on header fields to ensure endianness through byteorder zephyr library
  • redefine struct sketch_header_v1 to a union which can simplify the procedure of converting a 16 byte buffer into a C struct and respect the strict aliasing rule.

Copy link

@pillo79 pillo79 left a comment
edited
Loading

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, not sure about the need for endianness checks as it would require a very big effort to go over the whole project (code and tools) to make sure there is proper support for it.

EDIT: please add a short commit message that explains why this is useful.

Copy link
Author

@pillo79 I believe that the endianness commit has little to no cost in terms of code space (on little endian platforms) and in a distant future where we may try a big endian platform we have one place less to check to make it compatible. I don't see any other reasons except that this is a free improvement in platform independent code.

sketch_hdr.len = sys_le32_to_cpu(sketch_hdr.len);
sketch_hdr.magic = sys_le16_to_cpu(sketch_hdr.magic);

if (sketch_hdr.ver != 0x1 || sketch_hdr.magic != 0x2341) {
Copy link
Member

@leonardocavagnis leonardocavagnis Nov 14, 2025
edited
Loading

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (sketch_hdr.ver != 0x1 || sketch_hdr.magic != 0x2341) {
if (sketch_hdr.ver != SKETCH_VER || sketch_hdr.magic != SKETCH_MAGIC) {

Consider replacing the magic numbers with #define constants for maintainability

andreagilardoni reacted with thumbs up emoji
Copy link
Member

@leonardocavagnis leonardocavagnis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM :)
minor change suggested

@per1234 per1234 added the enhancement New feature or request label Nov 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@pillo79 pillo79 pillo79 left review comments

@leonardocavagnis leonardocavagnis leonardocavagnis left review comments

At least 1 approving review is required to merge this pull request.

Assignees

No one assigned

Labels

enhancement New feature or request

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

AltStyle によって変換されたページ (->オリジナル) /