导致Cache disabled but cached memory region accessed这个问题的解释是在进行flash操作时(调用nvs组件),发生了中断,中断服务中又访问了flash。
这是否意味着所有的中断服务都不能调用esp-idf中各组件提供的api?因为这些api都没有IRAM_ATTR关键字,也不是内联函数,必定存储在flash中。
如果是这样,岂不是严重限制了sdk的灵活和简洁?
关于Cache disabled but cached memory region accessed的疑问?
Re: 关于Cache disabled but cached memory region accessed的疑问?
中断服务函数本身是不需要调用大量函数的,中断服务函数主要作用是发个消息出来让task去执行。
Re: 关于Cache disabled but cached memory region accessed的疑问?
你仔细看 freertos 的文档,他提供了两套API,其中后缀名有 fromISR 的都是可以调用的
https://docs.espressif.com/projects/esp ... endFromISR
https://docs.espressif.com/projects/esp ... endFromISR
Re: 关于Cache disabled but cached memory region accessed的疑问?
感谢,但是我看到在idf源码中带fromISR的API函数实现也没有用IRAM_ATTR修饰,如果在cache禁止访问期间调用了这些API,不会触发Cache disabled but cached memory region accessed吗?ESP_ICY wrote: ↑Thu Dec 16, 2021 3:21 am你仔细看 freertos 的文档,他提供了两套API,其中后缀名有 fromISR 的都是可以调用的
https://docs.espressif.com/projects/esp ... endFromISR
Who is online
Users browsing this forum: No registered users and 107 guests