Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
qs_.cpp
00001 ////////////////////////////////////////////////////////////////////////////// 00002 // Product: QS/C++ 00003 // Last Updated for Version: 4.0.01 00004 // Date of the Last Update: Jun 09, 2008 00005 // 00006 // Q u a n t u m L e a P s 00007 // --------------------------- 00008 // innovating embedded systems 00009 // 00010 // Copyright (C) 2002-2008 Quantum Leaps, LLC. All rights reserved. 00011 // 00012 // This software may be distributed and modified under the terms of the GNU 00013 // General Public License version 2 (GPL) as published by the Free Software 00014 // Foundation and appearing in the file GPL.TXT included in the packaging of 00015 // this file. Please note that GPL Section 2[b] requires that all works based 00016 // on this software must also be made publicly available under the terms of 00017 // the GPL ("Copyleft"). 00018 // 00019 // Alternatively, this software may be distributed and modified under the 00020 // terms of Quantum Leaps commercial licenses, which expressly supersede 00021 // the GPL and are specifically designed for licensees interested in 00022 // retaining the proprietary status of their code. 00023 // 00024 // Contact information: 00025 // Quantum Leaps Web site: http://www.quantum-leaps.com 00026 // e-mail: info@quantum-leaps.com 00027 ////////////////////////////////////////////////////////////////////////////// 00028 #include "qs_pkg.h" 00029 00030 /// \file 00031 /// \ingroup qs 00032 /// \brief QS functions for internal use inside QP components 00033 00034 //............................................................................ 00035 void const *QS::smObj_; // local state machine for QEP filter 00036 void const *QS::aoObj_; // local active object for QF filter 00037 void const *QS::mpObj_; // local event pool for QF filter 00038 void const *QS::eqObj_; // local raw queue for QF filter 00039 void const *QS::teObj_; // local time event for QF filter 00040 void const *QS::apObj_; // local object Application filter 00041 00042 QSTimeCtr volatile QS::tickCtr_; // tick counter for the QS_QF_TICK record 00043 00044 //............................................................................ 00045 void QS::u8_(uint8_t d) { 00046 QS_INSERT_ESC_BYTE(d) 00047 } 00048 //............................................................................ 00049 void QS::u16_(uint16_t d) { 00050 QS_INSERT_ESC_BYTE((uint8_t)d) 00051 d >>= 8; 00052 QS_INSERT_ESC_BYTE((uint8_t)d) 00053 } 00054 //............................................................................ 00055 void QS::u32_(uint32_t d) { 00056 QS_INSERT_ESC_BYTE((uint8_t)d) 00057 d >>= 8; 00058 QS_INSERT_ESC_BYTE((uint8_t)d) 00059 d >>= 8; 00060 QS_INSERT_ESC_BYTE((uint8_t)d) 00061 d >>= 8; 00062 QS_INSERT_ESC_BYTE((uint8_t)d) 00063 } 00064 //............................................................................ 00065 //lint -e970 -e971 ignore MISRA rules 13 and 14 in this function 00066 void QS::str_(char const *s) { 00067 while (*s != '\0') { 00068 // ASCII characters don't need escaping 00069 QS_chksum_ = (uint8_t)(QS_chksum_ + (uint8_t)(*s)); 00070 QS_INSERT_BYTE((uint8_t)(*s)) 00071 ++s; 00072 } 00073 QS_INSERT_BYTE((uint8_t)0) 00074 } 00075 //............................................................................ 00076 //lint -e970 -e971 ignore MISRA rules 13 and 14 in this function 00077 void QS::str_ROM_(char const Q_ROM * Q_ROM_VAR s) { 00078 uint8_t b; 00079 while ((b = (uint8_t)Q_ROM_BYTE(*s)) != (uint8_t)0) { 00080 // ASCII characters don't need escaping 00081 QS_chksum_ = (uint8_t)(QS_chksum_ + b); 00082 QS_INSERT_BYTE(b) 00083 ++s; 00084 } 00085 QS_INSERT_BYTE((uint8_t)0) 00086 }
Generated on Tue Jul 12 2022 20:22:36 by
1.7.2