Skip to content

Interrupt service routines are not placed in IRAM #11977

@hajosc

Description

@hajosc

Board

Board-independent

Device Description

Valid for all Tensilica

Hardware Configuration

Any GPIO being interrupt-capable

Version

latest stable Release (if not listed below)

Type

Bug

IDE Name

Arduino-cli

Operating System

Linux

Flash frequency

80M

PSRAM enabled

no

Upload speed

921600

Description

Although Tensilica explicitly recommends putting ISRs into IRAM, GPIO-hal appears to put the underlying pin ISR into Flash. This leads to a lot of lost interrupts if Flash write is used, it appears that hundreds of msecs seem to be the order of magnitude.
I think this should at least be clearly mentioned and the related CONFIG_ARDUINO_ISR_IRAM be explained or another functionality be provided for the user to select behavior.

Sketch

Just look at the .MAP file, user ISRs are in flash.

Debug Message

Again, the memory map is enough as proof.

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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions