-
Notifications
You must be signed in to change notification settings - Fork 251
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
Using qpc on armv7 processor. #47
Comments
Hi Andy, Now, regarding the differences between QV and QK kernels: QV is non-preemptive and works similar to the "superloop" (a.ka. main+ISRs). Therefore ISRs can be generated by the compiler. QK is a preemptive kernel, and therefore the scheduler must be activate at the end of every ISR. The assembly code for ISR prolog and epilogue (for ARM Cortex-R that you're referencing) create a particular stack layout and therefore is marked as I hope that my comments make sense to you. --MMS |
Thank you for your reply. I've just finished reading "Practical UML Statecharts in C/C++". Combined with your answer, I've understood the differences in the processing between the QV kernel and the QK kernel. The QV kernel schedules tasks after the context of a task has completely ended, while the QK kernel hopes to schedule tasks according to the task prio when an interrupt ends. This may disrupt the original stack arrangement of the compiler, so it's necessary to manually save and restore the task context when the task is switched back. I'm sorry that I didn't describe my question clearly. I'm currently using a multi - core processor with an ARMv7 - A architecture and programming for one of the CPU cores. The traditional working mode is still the foreground - background mode. After learning about the QPC framework, I think the QPC framework is applicable in many scenarios, including the use of A - series processors. I would like to ask you whether the interrupt handling of the ARMv7 - R architecture is applicable to ARMv7 - A. |
Hi, I am learning the
qpc
framework and trying to apply it on theARM v7
processor. By studying thebsp.c
andport
files on different processors, I can understand the core content ofqpc
transplantation.I noticed that the main difference between transplanting the
qv
andqk
kernels on thearm cortex-R
series processor is the processing of interrupts. Theqv
kernel uses the interrupt service function provided byHAL
, while theqk
kernel uses a custom interrupt processing process, and emphasizes__stackless __arm
, what is the reason for this design? Can I use similar code to apply on arm v7.The text was updated successfully, but these errors were encountered: