Skip to content
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

IRAM error on compiling #10756

Closed
1 task done
PDE-Paul opened this issue Dec 19, 2024 · 4 comments
Closed
1 task done

IRAM error on compiling #10756

PDE-Paul opened this issue Dec 19, 2024 · 4 comments
Labels
Status: Awaiting triage Issue is waiting for triage

Comments

@PDE-Paul
Copy link

Board

ESP32 Custom Board

Device Description

Final Product (Custom Board) in market for 6 years

Hardware Configuration

Final Product in market for 6 years

Version

other

IDE Name

2.3.4

Operating System

Windows 11

Flash frequency

40

PSRAM enabled

no

Upload speed

115200

Description

Upgrading from 3.0.6 to 3.0.7 or 3.10 I now get an IRAM error

section .iram0.text' will not fit in region iram0_0_seg'

If I roll back to 3.0.6 this error disappears.

What has changed in the compiler?
Do I need to add something to my code?

I need to add some features and wish to use the latest version compiler, for now I will stay on 3.0.6

Sketch

Unable to post code as it is for a product that is being sold into the market. Compiled sketch is 1.8Mb using 3.0.6

Debug Message

IRAM0 segment data does not fit.
region `iram0_0_seg' overflowed by 1040 bytes

Other Steps to Reproduce

No response

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.
@PDE-Paul PDE-Paul added the Status: Awaiting triage Issue is waiting for triage label Dec 19, 2024
@me-no-dev
Copy link
Member

so both 3.0.7 and 3.1.0 cause this error? There are insignificant changes between 3.0.6 and 3.0.7. You can go through the code of your project and remove IRAM_ATTR from functions/methods to minimize the IRAM usage from your code. It is no longer required in Arduino anyway.

@PDE-Paul
Copy link
Author

Hi, Thank you for the quick response. Ok found the only reference to IRAM_ATTR are all my interrupts, should these now be ARDUINO_ISR_ATTR?

@me-no-dev
Copy link
Member

ARDUINO_ISR_ATTR is probably the best way to go. It will resolve to nothing by default. By default, interrupts in Arduino do not run in IRAM anymore

@PDE-Paul
Copy link
Author

ok, confirmed compile successful, thank you, you fixed my code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Awaiting triage Issue is waiting for triage
Projects
None yet
Development

No branches or pull requests

2 participants