在多核的情况下,怎么能避免多个核同时操作SPI呢?
谢谢
Andy Yin1:
SPI支持CPU及EDMA读写。CPU读写时需要根据SPIFLAG寄存器状态判断当前SPI Tx buffer是否为空,Rx buffer是否full,然后才能进行读写,如果采用CPU方式进行控制SPI,对于多核需要互斥,如使用信号量来避免多核同时去操作SPI;
对于EDMA读写SPI,则SPI会在Tx buffer为空,及Rx buffer为full时,产生相应的Tx/Rx event触发相应的EDMA channel读写下一个数据,此时不需要软件干预互斥,只需要预先配置好EDMA,之后的SPI读写不需要CPU干预。