关于Cache disabled but cached memory region accessed的疑问?

jiangteng
Posts: 23
Joined: Wed Jan 30, 2019 7:08 am

关于Cache disabled but cached memory region accessed的疑问?

Postby jiangteng » Wed Dec 08, 2021 9:20 am

导致Cache disabled but cached memory region accessed这个问题的解释是在进行flash操作时(调用nvs组件),发生了中断,中断服务中又访问了flash。
这是否意味着所有的中断服务都不能调用esp-idf中各组件提供的api?因为这些api都没有IRAM_ATTR关键字,也不是内联函数,必定存储在flash中。
如果是这样,岂不是严重限制了sdk的灵活和简洁?

ESP_ICY
Posts: 404
Joined: Mon Aug 23, 2021 11:10 am

Re: 关于Cache disabled but cached memory region accessed的疑问?

Postby ESP_ICY » Fri Dec 10, 2021 12:39 pm

中断服务函数本身是不需要调用大量函数的,中断服务函数主要作用是发个消息出来让task去执行。

jiangteng
Posts: 23
Joined: Wed Jan 30, 2019 7:08 am

Re: 关于Cache disabled but cached memory region accessed的疑问?

Postby jiangteng » Tue Dec 14, 2021 8:43 am

ESP_ICY wrote:
Fri Dec 10, 2021 12:39 pm
中断服务函数本身是不需要调用大量函数的,中断服务函数主要作用是发个消息出来让task去执行。
那么发个消息也是需要调用的吧,比如freertos提供的信号量的give,事件标志组的set等等,这些函数如果也都不能调用,难道只能自己用全局变量实现发消息吗?

ESP_ICY
Posts: 404
Joined: Mon Aug 23, 2021 11:10 am

Re: 关于Cache disabled but cached memory region accessed的疑问?

Postby ESP_ICY » Thu Dec 16, 2021 3:21 am

你仔细看 freertos 的文档,他提供了两套API,其中后缀名有 fromISR 的都是可以调用的

https://docs.espressif.com/projects/esp ... endFromISR

jiangteng
Posts: 23
Joined: Wed Jan 30, 2019 7:08 am

Re: 关于Cache disabled but cached memory region accessed的疑问?

Postby jiangteng » Thu Dec 16, 2021 7:19 am

ESP_ICY wrote:
Thu Dec 16, 2021 3:21 am
你仔细看 freertos 的文档,他提供了两套API,其中后缀名有 fromISR 的都是可以调用的

https://docs.espressif.com/projects/esp ... endFromISR
感谢,但是我看到在idf源码中带fromISR的API函数实现也没有用IRAM_ATTR修饰,如果在cache禁止访问期间调用了这些API,不会触发Cache disabled but cached memory region accessed吗?

Who is online

Users browsing this forum: No registered users and 26 guests