|
QP/C
|
00001 /***************************************************************************** 00002 * Product: QS/C 00003 * Last Updated for Version: 4.4.00 00004 * Date of the Last Update: Jan 14, 2012 00005 * 00006 * Q u a n t u m L e a P s 00007 * --------------------------- 00008 * innovating embedded systems 00009 * 00010 * Copyright (C) 2002-2012 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 00036 /*..........................................................................*/ 00037 void const *QS_smObj_; /* local state machine QEP filter */ 00038 void const *QS_aoObj_; /* local active object QF filter */ 00039 void const *QS_mpObj_; /* local event pool QF filter */ 00040 void const *QS_eqObj_; /* local raw queue QF filter */ 00041 void const *QS_teObj_; /* local time event QF filter */ 00042 void const *QS_apObj_; /* local object Application filter */ 00043 00044 QSTimeCtr QS_tickCtr_; /* tick counter for the QS_QF_TICK record */ 00045 00046 /*..........................................................................*/ 00047 void QS_u8_(uint8_t d) { 00048 QS_INSERT_ESC_BYTE(d) 00049 } 00050 /*..........................................................................*/ 00051 void QS_u16_(uint16_t d) { 00052 QS_INSERT_ESC_BYTE((uint8_t)d) 00053 d >>= 8; 00054 QS_INSERT_ESC_BYTE((uint8_t)d) 00055 } 00056 /*..........................................................................*/ 00057 void QS_u32_(uint32_t d) { 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 d >>= 8; 00064 QS_INSERT_ESC_BYTE((uint8_t)d) 00065 } 00066 /*..........................................................................*/ 00067 void QS_str_(char_t const *s) { 00068 while (*s != (char_t)'\0') { 00069 /* ASCII characters don't need escaping */ 00070 QS_chksum_ = (uint8_t)(QS_chksum_ + (uint8_t)*s); 00071 QS_INSERT_BYTE((uint8_t)*s) 00072 QS_PTR_INC_(s); 00073 } 00074 QS_INSERT_BYTE((uint8_t)0) 00075 } 00076 /*..........................................................................*/ 00077 void QS_str_ROM_(char_t 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 QS_PTR_INC_(s); 00084 } 00085 QS_INSERT_BYTE((uint8_t)0) 00086 }
1.7.6.1