QDK PIC24/dsPIC-XC16 - Quantum Leaps
QDK PIC24/dsPIC-XC16 - Quantum Leaps
QDK PIC24/dsPIC-XC16 - Quantum Leaps
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>QDK</strong><br />
<strong>PIC24</strong>/<strong>dsPIC</strong>-<strong>XC16</strong><br />
www.state-machine.com/pic<br />
XC18 compiler, although the preemptive version requires special macros to be invoked upon entering and<br />
exiting ISRs.<br />
The interrupt locking policy is implemented very efficiently by means of the DISI instruction (see<br />
Section 3.2). As described in Section 8.2.3 of “<strong>PIC24</strong>F Family Reference Manual” [<strong>PIC24</strong> Ref], “The DISI<br />
instruction only disables interrupts with priority levels 1-6. Priority level 7 interrupts and all trap events still<br />
have the ability to interrupt the CPU when the DISI instruction is active.” This means that interrupts with<br />
IPL of 7 are never disabled and thus run with “zero interrupt latency”.<br />
NOTE: Obviously, true “zero interrupt latency” is technically impossible. The term means here that<br />
the NMI-level interrupt(s) execute with the minimal latency achievable in <strong>PIC24</strong>/<strong>dsPIC</strong> hardware and<br />
that no additional latency is added to the NMI-level interrupt(s) because of interrupt locking in QP.<br />
The use of NMI to achieve “zero interrupt latency” is explained in Section 5.<br />
1.5 What’s Included in the <strong>QDK</strong>-<strong>PIC24</strong>-<strong>dsPIC</strong><br />
This <strong>QDK</strong> provides the QP port for <strong>PIC24</strong> and <strong>dsPIC</strong> MCUs and two versions of the Dining Philosopher<br />
Problem (DPP) example for each processor (with the cooperative “vanilla” kernel and the preemptive QK<br />
kernel). The actual devices used for testing were: <strong>PIC24</strong>FJ64GB002 (<strong>PIC24</strong>) and <strong>dsPIC</strong>33FJ128MC<br />
(<strong>dsPIC</strong>).<br />
1.6 Licensing QP<br />
The Generally Available (GA) distribution of QP available for download from the www.statemachine.com/downloads<br />
website is offered with the following two licensing options:<br />
<br />
<br />
The GNU General Public License version 2 (GPL) as published by the Free<br />
Software Foundation and appearing in the file GPL.TXT included in the packaging of<br />
every <strong>Quantum</strong> <strong>Leaps</strong> software distribution. The GPL open source license allows<br />
you to use the software at no charge under the condition that if you redistribute the<br />
original software or applications derived from it, the complete source code for your<br />
application must be also available under the conditions of the GPL (GPL Section<br />
2[b]).<br />
One of several <strong>Quantum</strong> <strong>Leaps</strong> commercial licenses, which are designed for<br />
customers who wish to retain the proprietary status of their code and therefore cannot<br />
use the GNU General Public License. The customers who license <strong>Quantum</strong> <strong>Leaps</strong><br />
software under the commercial licenses do not use the software under the GPL and<br />
therefore are not subject to any of its terms.<br />
For more information, please visit the licensing section of our website at: www.statemachine.com/licensing.<br />
1.7 Licensing QM<br />
The QM graphical modeling tool available for download from the www.statemachine.com/downloads<br />
website is free to use, but is not open source. During the<br />
installation you will need to accept a basic End-User License Agreement (EULA),<br />
which legally protects <strong>Quantum</strong> <strong>Leaps</strong> from any warranty claims, prohibits removing<br />
any copyright notices from QM, selling it, and creating similar competitive products.<br />
Copyright © <strong>Quantum</strong> <strong>Leaps</strong>, LLC. All Rights Reserved.<br />
5 of 35