QDK Freertos.Org Is Config- Ured to Operate in Preemptive Mode

Total Page:16

File Type:pdf, Size:1020Kb

QDK Freertos.Org Is Config- Ured to Operate in Preemptive Mode QP state machine frameworks for FreeRTOS.org™ QDK™ FreeRTOS.org™ Document Revision B September 2008 Copyright © Quantum Leaps, LLC www.quantum-leaps.com www.state-machine.com Table of Contents 1 Introduction.................................................................................................... 1 1.1 What’s Included in the QDK-FreeRTOS? ............................................................... 2 1.2 Licensing QDK-MSP430-IAR................................................................................ 2 2 Getting Started ............................................................................................... 3 2.1 Installation ...................................................................................................... 3 2.2 Building the QP Libraries .................................................................................... 4 2.3 Building the Examples ....................................................................................... 5 2.4 Running the Examples ....................................................................................... 6 2.4.1 Minimal FreeRTOS.org Demo Application ........................................................ 7 2.4.2 Dining Philosopher Problem (DPP) Example Application .................................... 7 3 The Modified FreeRTOS.org Port STR9x_IAR................................................... 9 3.1 Augmented FreeRTOS.org Interrupt Processing ..................................................... 9 3.2 General Limitations of FreeRTOS.org Ports.......................................................... 10 3.3 Changes in the portmacro.h file......................................................................... 10 3.4 Changes in the port.c File................................................................................ 13 3.5 Demo Application for the Updated FreeRTOS.org Port........................................... 14 4 The QP Port to FreeRTOS.org ........................................................................ 15 4.1 The FreeRTOSConfig.h Header File .................................................................... 15 4.2 The qep_port.h Header File .............................................................................. 16 4.3 The qf_port.h Header File................................................................................. 16 4.3.1 The Active Object Event Queue and Thread .................................................. 17 4.3.2 The QF Critical Section .............................................................................. 17 4.3.3 FreeRTOS.org Include Files ........................................................................ 17 4.3.4 QP Include Files........................................................................................ 17 4.3.5 Memory Pool ............................................................................................ 18 4.4 The qf_port.c Source File ................................................................................. 18 4.5 ARM/THUMB Compilation ................................................................................. 22 5 The Example QP Application.......................................................................... 23 5.1 The main() Function........................................................................................ 23 5.2 ISRs ............................................................................................................. 24 5.3 Starting Interrupts in vStartInterrupts()............................................................. 25 5.4 Idle Processing in vApplicationIdleHook() ........................................................... 25 5.5 Assertion Handling Policy in Q_onAssert() .......................................................... 26 6 The Quantum Spy (QS) Instrumentation....................................................... 27 6.1 QS Time Stamp Callback QS_onGetTime().......................................................... 29 6.2 Invoking the QSpy Host Application ................................................................... 30 7 Related Documents and References .............................................................. 31 8 Contact Information...................................................................................... 32 Copyright © Quantum Leaps, LLC. All Rights Reserved. i 1 Introduction This QP™ Development Kit (QDK) describes how to use QP™ event-driven platform with the FreeRTOS.org™ real-time kernel. The actual hardware/software used in this QDK is described be- low (see also Figure 1): 1. IAR STR912-SK board with STR912F device (ARM966E-S core, 96KB RAM, 512KB ROM). 2. IAR Embedded Workbench for ARM (EWARM) KickStart edition version 5.11. 3. FreeRTOS.org™ version 5.0.0 or higher. 4. QP/C/C++ v4.0 or higher. QS trace data J-Link USB (UART0) LED/Peripheral Debugger Jumpers Two groups of user LEDs 8 LEDs each STR912F Target Device USB to PC External Power source power selection Jumper Figure 1 IAR STR912-SK evaluation board with the J-Link JTAG pod. Copyright © Quantum Leaps, LLC. All Rights Reserved. 1 of 32 QDK™ FreeRTOS.org™ www.state-machine.com/freertos As shown in Figure 1, the STR912-SK board is connected via a 20-pin ribbon cable to the J-Link USB debugger. Additionally, the UART0 connector of the STR912-SK board is used in this QDK for QS (“Spy”) software tracing of the live QP applications. You need a straight serial cable with DB9 connectors to connect UART0 to the COM port of your PC. NOTE: Even though the QDK uses a specific target board (STR912-SK in this case), the QDK has been designed generically to rely on the FreeRTOS.org™ to access the hardware. In other words, the QDK should require minimal adaptation for any other platform supported by FreeR- TOS.org™. 1.1 What’s Included in the QDK-FreeRTOS? This QDK provides a modified FreeRTOS port to STR91-IAR, a minimal demo application that tests this updated FreeRTOS.org port, as well as QP port to FreeRTOS and the Dining Philosopher Prob- lem (DPP) application to test the QP port to FreeRTOS. The DPP example application is described in the Application Note “Dining Philosophers Application” [QL AN-DPP 08] (included in this DPP). The DPP application also demonstrates the QS (“Spy”) software tracing. NOTE: This QDK covers both the C and C++ version of QP. The concrete code examples are taken from the C version, but the C++ version is essentially identical except for some trivial syntax differences. 1.2 Licensing QDK-MSP430-IAR The Generally Available (GA) distribution of QDK-MSP430-IAR available for download from the www.quantum-leaps.com/msp430 website is offered with the following two licensing options: • The GNU General Public License version 2 (GPL) as published by the Free Software Foundation and appearing in the file GPL.TXT included in the packag- ing of every Quantum Leaps software distribution. The GPL open source li- cense allows you to use the software at no charge under the condition that if you redistribute the original software or applications derived from it, the com- plete source code for your application must be also available under the condi- tions of the GPL (GPL Section 2[b]). • One of several Quantum Leaps commercial licenses, which are designed for customers who wish to retain the proprietary status of their code and therefore cannot use the GNU General Public License. The customers who license Quantum Leaps software under the commercial li- censes do not use the software under the GPL and therefore are not subject to any of its terms. For more information, please visit the licensing section of our website at: www.quantum- leaps.com/licensing. Copyright © Quantum Leaps, LLC. All Rights Reserved. 2 of 32 QDK™ FreeRTOS.org™ www.state-machine.com/freertos 2 Getting Started This section describes how to install, build, and use QDK-FreeRTOS. This information is intention- ally included early in this document, so that you could start using the QDK as soon as possible. NOTE: This QDK assumes that the standard QP distribution, consisting of QEP, QF, and QS, has been installed, before installing this QDK. It is also strongly recommended that you read the QP Tutorial (www.quantum-leaps.com/doxygen/qpc/tutorial_page.html) before you start ex- perimenting with this QDK. 2.1 Installation The QDK code is distributed in a ZIP archive (qdkc_freertos_<ver>.zip, where <ver> stands for a specific QDK-FreeRTOS version, such as 4.0.01). You should uncompress the archive into the same directory into which you’ve installed all the standard QP components. The installation directory you choose will be referred henceforth as QP Root Directory (<qp>). The following Listing 1 shows the directory structure and selected files included in the QDK-FreeRTOS distribution. (Please note that the QP directory structure is described in detail in a separate Application Note: “QP Directory Struc- ture” [QL AN-Directory 07]): doc\ - Documentation for this QDK | +-AN_DPP.pdf - Application Note “Dining Philosophers Application” +-QDK_FreeRTOS.pdf - This “QDK Programmer’s Manual” FreeRTOS/ - FreeRTOS.org root directory | +-Demo/ - FreeRTOS.org demo applicaitons | +-ARM9_STR91X_IAR_light/ – Modified ARM9_STR91X_IAR demo application | | +-main.c – the main() function of the application | | +-FreeRTOSConfig.h – FreeRTOS configuration | | +-RTOSDemo.eww – IAR workspace to build the application | | +-. – other files in the application | +-Source/ - FreeRTOS.org source files | +-portable/ – FreeRTOS.org ports | | +-IAR/ – ports
Recommended publications
  • Application Note: QP/C MISRA-C:2004 Compliance Matrix
    QP/C MISRA Compliance Matrix Application Note QP/C™ MISRA-C:2004 Compliance Matrix Document Revision D February 2013 Copyright © Quantum Leaps, LLC [email protected] www.state-machine.com MISRA”, “MISRA C”, and the triangle logo are registered trademarks of MISRA Limited Table of Contents 1 Introduction ..................................................................................................................................................... 1 1.1 About MISRA-C:2004 ............................................................................................................................... 1 1.2 About QP™ ............................................................................................................................................... 1 2 Checking MISRA Compliance with PC-Lint/FlexeLint .................................................................................. 2 2.1 Structure of PC-Lint Options for QP/C ...................................................................................................... 2 2.2 QS Software Tracing and the Spy (Q_SPY) Configuration ....................................................................... 6 2.3 Checking MISRA Compliance of a QP/C Source Code ............................................................................ 6 2.4 Checking MISRA Compliance of a QP/C Application Code ...................................................................... 7 2.5 Testing Rule Coverage Against the MISRA-C Exemplar Suite ................................................................
    [Show full text]
  • Embedded Operating Systems
    7 Embedded Operating Systems Claudio Scordino1, Errico Guidieri1, Bruno Morelli1, Andrea Marongiu2,3, Giuseppe Tagliavini3 and Paolo Gai1 1Evidence SRL, Italy 2Swiss Federal Institute of Technology in Zurich (ETHZ), Switzerland 3University of Bologna, Italy In this chapter, we will provide a description of existing open-source operating systems (OSs) which have been analyzed with the objective of providing a porting for the reference architecture described in Chapter 2. Among the various possibilities, the ERIKA Enterprise RTOS (Real-Time Operating System) and Linux with preemption patches have been selected. A description of the porting effort on the reference architecture has also been provided. 7.1 Introduction In the past, OSs for high-performance computing (HPC) were based on custom-tailored solutions to fully exploit all performance opportunities of supercomputers. Nowadays, instead, HPC systems are being moved away from in-house OSs to more generic OS solutions like Linux. Such a trend can be observed in the TOP500 list [1] that includes the 500 most powerful supercomputers in the world, in which Linux dominates the competition. In fact, in around 20 years, Linux has been capable of conquering all the TOP500 list from scratch (for the first time in November 2017). Each manufacturer, however, still implements specific changes to the Linux OS to better exploit specific computer hardware features. This is especially true in the case of computing nodes in which lightweight kernels are used to speed up the computation. 173 174 Embedded Operating Systems Figure 7.1 Number of Linux-based supercomputers in the TOP500 list. Linux is a full-featured OS, originally designed to be used in server or desktop environments.
    [Show full text]
  • AN QP™/QM™ and the Qt™ GUI Framework
    QP state machine frameworks for Arduino Application Note QP/C++™ and the Qt™ GUI Framework Document Revision K May 2014 Copyright © Quantum Leaps, LLC [email protected] www.state-machine.com Table of Contents 1 Introduction ..................................................................................................................................................... 1 1.1 About Qt .................................................................................................................................................. 1 1.2 About QP/C++™ ...................................................................................................................................... 1 1.3 About QM™ ............................................................................................................................................. 2 1.4 Licensing QP™ ........................................................................................................................................ 3 1.5 Licensing QM™ ....................................................................................................................................... 3 2 Getting Started ................................................................................................................................................ 4 2.1 Installing Qt .............................................................................................................................................. 4 2.2 Installing QP/C++ Baseline Code ...........................................................................................................
    [Show full text]
  • Getting Started with QP/C
    Application Note: Getting Started with QP Getting Started with QP™ Real-Time Embedded Frameworks Document Revision G October 2019 Copyright © Quantum Leaps, LLC www.state-machine.com [email protected] Table of Contents 1 Introduction.................................................................................................................................................... 1 2 Downloading and Installing QP and QTools................................................................................................2 2.1 Downloading QP and QTools...................................................................................................................2 2.2 Installing QP............................................................................................................................................. 3 2.3 Downloading QTools................................................................................................................................ 4 2.4 Installing QTools...................................................................................................................................... 5 3 Building and Running the Blinky Example..................................................................................................6 3.1 Blinky on Windows with MinGW (GNU C/C++ for Windows)...................................................................7 3.2 Blinky on Tiva LauchPad with GNU-ARM (command-line)......................................................................8 3.3 Blinky on Tiva LauchPad
    [Show full text]
  • AN QP and ARM7/9 With
    QP state machine frameworks for ARM7/ARM9 with GNU Application Note QP™ and ARM7/9 with GNU Document Revision I March 2014 Copyright © Quantum Leaps, LLC www.quantum-leaps.com www.state-machine.com Table of Contents 1 Introduction ..................................................................................................................................................... 2 1.1 About the ARM Port ................................................................................................................................... 3 1.2 What’s Included in the Accompanying Code .............................................................................................. 4 1.3 About QP™ ................................................................................................................................................ 4 1.4 About QM™ ............................................................................................................................................... 5 1.5 Licensing QP .............................................................................................................................................. 6 1.6 Licensing QM™ .......................................................................................................................................... 6 2 Directories and Files ....................................................................................................................................... 7 2.1 Building the QP Libraries ...........................................................................................................................
    [Show full text]
  • Application Note: QP and Threadx®
    QP state machine frameworks for ThreadX Application Note QP and ThreadX Document Revision D May 2014 Copyright © Quantum Leaps, LLC www.quantum-leaps.com www.state-machine.com Table of Contents 1 Introduction..................................................................................................................................................... 1 1.1 About QP™................................................................................................................................................ 1 1.2 About QM™............................................................................................................................................... 2 1.3 About the QP-ThreadX Integration.............................................................................................................3 1.4 Licensing QP.............................................................................................................................................. 4 1.5 Licensing QM™.......................................................................................................................................... 4 2 Directories and Files....................................................................................................................................... 5 2.1 Installation.................................................................................................................................................. 5 3 Executing the Examples................................................................................................................................
    [Show full text]
  • Real Time Operating Systems
    School of Electrical and Computer Engineering N.T.U.A. Embedded System Design Real Time Alex Bartzas Operating Systems Microlab/NTUA Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. What is an Embedded OS? An "embedded system" is any computer system or computing device that performs a dedicated function or is designed for use with a specific embedded software applica tion. Embedded systems may use a ROM-based operating system or they may use a disk-based system, like a PC. But an embdddbedded sys tem is no t usa ble as a commercillially v ibliable substitute for general purpose computers or devices. 3 Aspects of embedded system design 4 Metrics •Performance can be measured in multiple ways –Latency vs. throughput –Average vs. worst-case vs. best-case –Peak vs. sustained •Power/energy –Power consumption is important for heat generation –Energy consumption is important for battery life –ItIntegra tdted me titrics suc h as Energy-De lay Pro duc t (EDP) •Cost –Des ign time vs. life time •Reliability –Avail a bility, depen da bility, performabilit y 5 Hardware/software codesign •Goals –Optimizing design process –Oppggtimizing design •Tasks –Cospecificationand comodeling –Codesign –Cosynthesis, optimization, interfacing –Verification 6 Codesign flow 7 What makes a good Embedded OS? Modular Scalable Configurable Small footprint CPU support Device drivers etc,,, etc, etc... 8 What is Real Time? “A real time system is one in which the correctness of the computations not only depends upon the logical correctness of the computation but also upon the time at which the result iddIfthtiititfthtis produced.
    [Show full text]
  • QP-Embedded Software Engineer
    QUALIFICATIONS PACK - OCCUPATIONAL STANDARDS FOR ELECTRONICS INDUSTRY Contents 1. Introduction and Contacts.…….P1 2. Qualifications Pack……….….......P2 What are 3. OS Units……………..………….....….P3 Occupational 4. Glossary of Key Terms.……….…P12 Standards(OS)? 5. Nomenclature for QP & OS…..P14 OS describe what individuals need to do, know and understand in Introduction order to carry out a particular job Qualifications Pack- Embedded Software Engineer role or function SECTOR: ELECTRONICS OS are SUB-SECTOR: Semiconductor Design and Active Components performance standards that OCCUPATION: System software development individuals must REFERENCE ID: ELE/Q1501 achieve when carrying out ALIGNED TO: NCO-2004/NIL functions in the workplace, Embedded Software Engineer: Also called ‘Embedded Software together with Developer’, the Embedded Software Engineer is responsible for developing specifications of software module for the embedded system. the underpinning knowledge and Brief Job Description: The individual at work assesses the embedded understanding systems’ specification requirement, develops software, tests and validates the software in coordination with design engineers for system integration. Contact Us: ESSCI, New Delhi Personal Attributes: The job requires the individual to have: attention to Electronics Sector Skills details, good communication skills, logical thinking, and ability to work for Council of India long hours on computer. 422, Okhla Industrial Estate, Phase-III, New Delhi-110020 E-mail: 1 [email protected] Qualifications Pack
    [Show full text]
  • Application Note: QP and SEGGER Embos
    QP state machine frameworks for embOS Application Note QP™ and SEGGER embOS Document Revision A June 2014 Copyright © Quantum Leaps, LLC www.quantum-leaps.com www.state-machine.com Table of Contents 1 Introduction..................................................................................................................................................... 1 1.1 About QP™................................................................................................................................................ 2 1.2 About QM™............................................................................................................................................... 3 1.3 About the QP-embOS Integration...............................................................................................................4 1.4 Licensing QP.............................................................................................................................................. 4 1.5 Licensing QM™.......................................................................................................................................... 4 2 Directories and Files....................................................................................................................................... 5 2.1 Installation.................................................................................................................................................. 5 3 Building the DPP Example............................................................................................................................
    [Show full text]
  • Comparing Windows NT, Linux, and QNX As the Basis for Cluster Systems
    Comparing Windows NT, Linux, and QNX as the Basis for Cluster Systems Avi Kavas Dror G. Feitelson School of Computer Science and Engineering The Hebrew University, 91904 Jerusalem, Israel Abstract Clusters use commodity hardware and software components to provide an environment for parallel processing. A major issue in the development of a cluster system is the choice of the operating system that will run on each node. We compare three alternatives: Windows NT, Linux, and QNX — a real-time microkernel. The comparison is based on expressive power, performance, and ease-of-use metrics. The result is that none of these systems has a clear advantage over the others in all the metrics, but that each has its strong and weak points. Thus any choice of a base system will involve some technical compromises, but not major ones. 1 Introduction Rapid improvements in network and processor performance are causing clustered commodity workstations and PCs to become an increasingly popular platform for executing parallel applica- tions. In the past, Unix was used as the platform for almost all parallel systems implementations. Recently, however, it is becoming more common to use Windows NT as the base platform. The decision which operating system to use involves many considerations, including the oper- ating system’s cost and personal experience with the different systems. But there are also technical implications. Our goal is to illuminate these technical issues, by providing a broad comparison of the capabilities and characteristics of the different systems. Throughput, the emphasis is on those features deemed to be important for the implementation of computational clusters.
    [Show full text]
  • QP and ARM Cortex-M with IAR
    QP state machine frameworks for ARM Cortex-M Application Note QP™ and ARM Cortex-M with IAR Document Revision L February 2013 Copyright © Quantum Leaps, LLC www.quantum-leaps.com www.state-machine.com Table of Contents 1 Introduction ..................................................................................................................................................... 1 1.1 About the QP Port to ARM Cortex-M ........................................................................................................ 2 1.2 The Use of the FPU (Cortex-M4F) ............................................................................................................ 2 1.3 Cortex Microcontroller Software Interface Standard (CMSIS) ................................................................... 2 1.4 About QP™ ............................................................................................................................................... 3 1.5 About QM™ .............................................................................................................................................. 4 1.6 Licensing QP ............................................................................................................................................. 5 1.7 Licensing QM™ ........................................................................................................................................ 5 2 Directories and Files ......................................................................................................................................
    [Show full text]
  • QP and POSIX
    QP state machine frameworks for POSIX Application Note QP™ and POSIX Document Revision E November 2012 Copyright © Quantum Leaps, LLC www.quantum-leaps.com www.state-machine.com Table of Contents 1 Introduction ..................................................................................................................................................... 1 1.1 About QP™ .................................................................................................................................................... 1 1.2 About QM™ ................................................................................................................................................... 2 1.3 About the QP™ Port to POSIX ....................................................................................................................... 3 1.4 Licensing QP™ and QP port to POSIX .......................................................................................................... 4 1.5 Licensing QM™ .............................................................................................................................................. 4 2 Directories and Files ....................................................................................................................................... 5 2.1 Building the QP Libraries ............................................................................................................................... 6 2.2 Building the QP Applications .........................................................................................................................
    [Show full text]