Page 1 of 1
关于Cache disabled but cached memory region accessed的疑问?
Posted: Wed Dec 08, 2021 9:20 am
by jiangteng
导致Cache disabled but cached memory region accessed这个问题的解释是在进行flash操作时(调用nvs组件),发生了中断,中断服务中又访问了flash。
这是否意味着所有的中断服务都不能调用esp-idf中各组件提供的api?因为这些api都没有IRAM_ATTR关键字,也不是内联函数,必定存储在flash中。
如果是这样,岂不是严重限制了sdk的灵活和简洁?
Re: 关于Cache disabled but cached memory region accessed的疑问?
Posted: Fri Dec 10, 2021 12:39 pm
by ESP_ICY
中断服务函数本身是不需要调用大量函数的,中断服务函数主要作用是发个消息出来让task去执行。
Re: 关于Cache disabled but cached memory region accessed的疑问?
Posted: Tue Dec 14, 2021 8:43 am
by jiangteng
ESP_ICY wrote: ↑Fri Dec 10, 2021 12:39 pm
中断服务函数本身是不需要调用大量函数的,中断服务函数主要作用是发个消息出来让task去执行。
那么发个消息也是需要调用的吧,比如freertos提供的信号量的give,事件标志组的set等等,这些函数如果也都不能调用,难道只能自己用全局变量实现发消息吗?
Re: 关于Cache disabled but cached memory region accessed的疑问?
Posted: Thu Dec 16, 2021 3:21 am
by ESP_ICY
Re: 关于Cache disabled but cached memory region accessed的疑问?
Posted: Thu Dec 16, 2021 7:19 am
by jiangteng
感谢,但是我看到在idf源码中带fromISR的API函数实现也没有用IRAM_ATTR修饰,如果在cache禁止访问期间调用了这些API,不会触发Cache disabled but cached memory region accessed吗?