Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

怎么在操作系统中使用这个驱动呢? #22

Open
LNqueen opened this issue Aug 20, 2024 · 3 comments
Open

怎么在操作系统中使用这个驱动呢? #22

LNqueen opened this issue Aug 20, 2024 · 3 comments

Comments

@LNqueen
Copy link

LNqueen commented Aug 20, 2024

Please ask your question

我之前在裸机中使用这个驱动库,运行的很完美,但是切换到操作系统后, 发现在读取flash的时候会影响整个操作系统的运行,比如造成其他任务下的信息发送卡顿,请问应该怎么解决呢?

Additional context

No response

@libdriver
Copy link
Owner

非常感谢您使用LibDriver提供的驱动,您从裸机切换到RTOS时,当存在多任务并发访问Flash时需要将读写等操作加互斥锁保护。因为芯片很多操作需要等待内部状态寄存器完成,您切换到RTOS时可以将驱动延时更换为RTOS延时,RTOS延时会释放系统控制权转而执行其他任务,大幅提高系统运行效率,使用此方法可以解决大部分卡顿问题。当您需要频繁或者大数量的读写时,可以考虑将SPI或者QSPI等驱动改成DMA传输,在等待DMA传输完成时,使用RTOS系统延时释放系统控制权执行其他任务或者直接使用信号量触发完成。

@LNqueen
Copy link
Author

LNqueen commented Aug 22, 2024

目前是使用dma的时候触发不了中断,然后这个任务就一直卡在spi这边,但是奇怪的是我在另一个任务中单独使用spidma发送,是可以接收到中断的,不知道啥原因

@libdriver
Copy link
Owner

无法触发中断可能与整个工程系统各类外设优先级分配、DMA驱动等有关,您需要提供更加详细的SPI_DMA驱动等信息,我们会帮助您一起排查问题。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants