Hello,

I would like to submit some patches related to AVR architecture. Their description is as follows:

0001 - this patch fixes LED constants for breadxavr board. The code was developed based on other AVR boards, LED constants were taken from board that apparently has multiple status LEDs and used on a board that only has one.

The functionality that was not working properly is blinking LED on panic, which works correctly now

0002 - while digging around in the code trying to figure out how PANIC() works, I noticed a bug in up_saveusercontext function that is called from _assert.

The function makes use of USER_SAVE macro but that macro is designed to be only a first half of the context switch. It is unsuitable to be used standalone like it was in up_saveusercontext, it pops return address from the stack and does not return, meaning that the function also did not return.

The patch adds what is missing and what would otherwise be done by the second half of the context switch.

Tested by compiling and verifying the disassembly - the function no longer falls through to the next function in the program memory, push/pop instructions are balanced and stack contents preserved

0003 - typo fix

0004 - this patch adds --print-memory-usage flag to the linker if GCC compiler is used. Memory usage information is then output after linking. Can't test other supported compilers but they should not be affected since the patch only takes effect if CONFIG_ARCH_TOOLCHAIN_GCC is set


The patches are attached to this message and also available in a git repository nuttx.git at git.kerogit.eu accessible through HTTP/S. (Trying to prevent bot traffic by not posting the URL in machine-readable form.) The relevant branch is called avr_fixes2_v1

If the patches are acceptable, I would like to ask someone with GitHub account to open a PR (I don't have a GH account.) Any comments or suggestions are welcome.

Attachment: 0001-boards-avr-avrdx-breadxavr-fix-board-LED-constants.patch.gz
Description: application/gzip

Attachment: 0002-arch-avr-fix-up_saveusercontext.patch.gz
Description: application/gzip

Attachment: 0003-arch-avr-src-avrdx-typo-fix-in-avrdx_serial.c.patch.gz
Description: application/gzip

Attachment: 0004-arch-avr-make-linker-print-memory-usage-if-GCC-is-us.patch.gz
Description: application/gzip

Reply via email to