The Squirrel interpreter for FRDM-K64F, extended with a set of classes that provide access to the mbed functionality (currently DigitalIn, DigitalInOut, DigitalOut, InterruptIn, PwmOut, Ticker, Timeout, Timer).

Dependencies:   SQUIRREL3 mbed sqbind-0_99

The Squirrel interpreter for FRDM-K64F.

NOTE: Currently of POC quality.

See http://www.squirrel-lang.org/ for information about the Squirrel language.

Currently the following (a subset of their functionality) mbed classes are available from within Squirrel:

  • DigitalIn
  • DigitalOut
  • DigitalInOut
  • PwmOut
  • Ticker
  • Timeout
  • Timer

In addition, InterruptIn is supported, but interrupts are noted when they occur, but only delivered from the main loop of the interpreter.

See also README.txt in the root of the project.

Committer:
jhnwkmn
Date:
Tue Dec 16 13:32:06 2014 +0000
Revision:
2:0df9688c9a11
Parent:
1:540008bb92a2
Updated libraries.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jhnwkmn 0:6f55c7651ccc 1 /*
jhnwkmn 1:540008bb92a2 2 Copyright 2014 Johan Wikman
jhnwkmn 1:540008bb92a2 3
jhnwkmn 1:540008bb92a2 4 Licensed under the Apache License, Version 2.0 (the "License");
jhnwkmn 1:540008bb92a2 5 you may not use this file except in compliance with the License.
jhnwkmn 1:540008bb92a2 6 You may obtain a copy of the License at
jhnwkmn 1:540008bb92a2 7
jhnwkmn 1:540008bb92a2 8 http://www.apache.org/licenses/LICENSE-2.0
jhnwkmn 1:540008bb92a2 9
jhnwkmn 1:540008bb92a2 10 Unless required by applicable law or agreed to in writing, software
jhnwkmn 1:540008bb92a2 11 distributed under the License is distributed on an "AS IS" BASIS,
jhnwkmn 1:540008bb92a2 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
jhnwkmn 1:540008bb92a2 13 See the License for the specific language governing permissions and
jhnwkmn 1:540008bb92a2 14 limitations under the License.
jhnwkmn 0:6f55c7651ccc 15 */
jhnwkmn 0:6f55c7651ccc 16
jhnwkmn 0:6f55c7651ccc 17 #include <sqmbed/interruptin.h>
jhnwkmn 0:6f55c7651ccc 18 #include <mbed.h>
jhnwkmn 0:6f55c7651ccc 19
jhnwkmn 0:6f55c7651ccc 20 namespace
jhnwkmn 0:6f55c7651ccc 21 {
jhnwkmn 0:6f55c7651ccc 22
jhnwkmn 0:6f55c7651ccc 23 uint32_t u_PTA;
jhnwkmn 0:6f55c7651ccc 24 uint32_t u_PTB;
jhnwkmn 0:6f55c7651ccc 25 uint32_t u_PTC;
jhnwkmn 0:6f55c7651ccc 26 uint32_t u_PTD;
jhnwkmn 0:6f55c7651ccc 27 uint32_t u_PTE;
jhnwkmn 0:6f55c7651ccc 28
jhnwkmn 0:6f55c7651ccc 29 }
jhnwkmn 0:6f55c7651ccc 30
jhnwkmn 0:6f55c7651ccc 31 namespace
jhnwkmn 0:6f55c7651ccc 32 {
jhnwkmn 0:6f55c7651ccc 33
jhnwkmn 0:6f55c7651ccc 34 void deliverInterrupts(uint32_t base, uint16_t value)
jhnwkmn 0:6f55c7651ccc 35 {
jhnwkmn 0:6f55c7651ccc 36 int p = 0;
jhnwkmn 0:6f55c7651ccc 37
jhnwkmn 0:6f55c7651ccc 38 while (value) {
jhnwkmn 0:6f55c7651ccc 39 int bit = (value & 0x1);
jhnwkmn 0:6f55c7651ccc 40
jhnwkmn 0:6f55c7651ccc 41 if (bit) {
jhnwkmn 0:6f55c7651ccc 42 SqMbed::InterruptIn::deliver(static_cast<PinName>(base + p));
jhnwkmn 0:6f55c7651ccc 43 }
jhnwkmn 0:6f55c7651ccc 44
jhnwkmn 0:6f55c7651ccc 45 value >>= 1;
jhnwkmn 0:6f55c7651ccc 46 ++p;
jhnwkmn 0:6f55c7651ccc 47 }
jhnwkmn 0:6f55c7651ccc 48 }
jhnwkmn 0:6f55c7651ccc 49
jhnwkmn 0:6f55c7651ccc 50 uint32_t readAndReset(uint32_t* pValue)
jhnwkmn 0:6f55c7651ccc 51 {
jhnwkmn 0:6f55c7651ccc 52 uint32_t value;
jhnwkmn 0:6f55c7651ccc 53 int status = 0;
jhnwkmn 0:6f55c7651ccc 54
jhnwkmn 0:6f55c7651ccc 55 do {
jhnwkmn 0:6f55c7651ccc 56 value = __LDREXW(pValue);
jhnwkmn 0:6f55c7651ccc 57 status = __STREXW(0, pValue);
jhnwkmn 0:6f55c7651ccc 58 } while (status != 0); // Retry until no-one has modified in between.
jhnwkmn 0:6f55c7651ccc 59
jhnwkmn 0:6f55c7651ccc 60 __DMB();
jhnwkmn 0:6f55c7651ccc 61
jhnwkmn 0:6f55c7651ccc 62 return value;
jhnwkmn 0:6f55c7651ccc 63 }
jhnwkmn 0:6f55c7651ccc 64
jhnwkmn 0:6f55c7651ccc 65 }
jhnwkmn 0:6f55c7651ccc 66
jhnwkmn 0:6f55c7651ccc 67 namespace SqMbed
jhnwkmn 0:6f55c7651ccc 68 {
jhnwkmn 0:6f55c7651ccc 69
jhnwkmn 0:6f55c7651ccc 70 void InterruptIn::postponeInterrupt(PinName p)
jhnwkmn 0:6f55c7651ccc 71 {
jhnwkmn 0:6f55c7651ccc 72 uint16_t value = static_cast<uint16_t>(p) & 0x1f;
jhnwkmn 0:6f55c7651ccc 73
jhnwkmn 0:6f55c7651ccc 74 switch (static_cast<uint32_t>(p) >> GPIO_PORT_SHIFT) {
jhnwkmn 0:6f55c7651ccc 75 case PTA0 >> GPIO_PORT_SHIFT:
jhnwkmn 0:6f55c7651ccc 76 u_PTA |= (1 << value);
jhnwkmn 0:6f55c7651ccc 77 break;
jhnwkmn 0:6f55c7651ccc 78
jhnwkmn 0:6f55c7651ccc 79 case PTB0 >> GPIO_PORT_SHIFT:
jhnwkmn 0:6f55c7651ccc 80 u_PTB |= (1 << value);
jhnwkmn 0:6f55c7651ccc 81 break;
jhnwkmn 0:6f55c7651ccc 82
jhnwkmn 0:6f55c7651ccc 83 case PTC0 >> GPIO_PORT_SHIFT:
jhnwkmn 0:6f55c7651ccc 84 u_PTC |= (1 << value);
jhnwkmn 0:6f55c7651ccc 85 break;
jhnwkmn 0:6f55c7651ccc 86
jhnwkmn 0:6f55c7651ccc 87 case PTD0 >> GPIO_PORT_SHIFT:
jhnwkmn 0:6f55c7651ccc 88 u_PTD |= (1 << value);
jhnwkmn 0:6f55c7651ccc 89 break;
jhnwkmn 0:6f55c7651ccc 90
jhnwkmn 0:6f55c7651ccc 91 case PTE0 >> GPIO_PORT_SHIFT:
jhnwkmn 0:6f55c7651ccc 92 u_PTE |= (1 << value);
jhnwkmn 0:6f55c7651ccc 93 break;
jhnwkmn 0:6f55c7651ccc 94
jhnwkmn 0:6f55c7651ccc 95 default:
jhnwkmn 0:6f55c7651ccc 96 printf("Unknown PinName: %d", p);
jhnwkmn 0:6f55c7651ccc 97 }
jhnwkmn 0:6f55c7651ccc 98 }
jhnwkmn 0:6f55c7651ccc 99
jhnwkmn 0:6f55c7651ccc 100 void InterruptIn::flushInterrupts()
jhnwkmn 0:6f55c7651ccc 101 {
jhnwkmn 0:6f55c7651ccc 102 uint32_t pta = readAndReset(&u_PTA);
jhnwkmn 0:6f55c7651ccc 103 uint32_t ptb = readAndReset(&u_PTB);
jhnwkmn 0:6f55c7651ccc 104 uint32_t ptc = readAndReset(&u_PTC);
jhnwkmn 0:6f55c7651ccc 105 uint32_t ptd = readAndReset(&u_PTD);
jhnwkmn 0:6f55c7651ccc 106 uint32_t pte = readAndReset(&u_PTE);
jhnwkmn 0:6f55c7651ccc 107
jhnwkmn 0:6f55c7651ccc 108 if (pta != 0) {
jhnwkmn 0:6f55c7651ccc 109 deliverInterrupts(PTA0, pta);
jhnwkmn 0:6f55c7651ccc 110 }
jhnwkmn 0:6f55c7651ccc 111
jhnwkmn 0:6f55c7651ccc 112 if (ptb != 0) {
jhnwkmn 0:6f55c7651ccc 113 deliverInterrupts(PTB0, ptb);
jhnwkmn 0:6f55c7651ccc 114 }
jhnwkmn 0:6f55c7651ccc 115
jhnwkmn 0:6f55c7651ccc 116 if (ptc != 0) {
jhnwkmn 0:6f55c7651ccc 117 deliverInterrupts(PTC0, ptc);
jhnwkmn 0:6f55c7651ccc 118 }
jhnwkmn 0:6f55c7651ccc 119
jhnwkmn 0:6f55c7651ccc 120 if (ptd != 0) {
jhnwkmn 0:6f55c7651ccc 121 deliverInterrupts(PTD0, ptd);
jhnwkmn 0:6f55c7651ccc 122 }
jhnwkmn 0:6f55c7651ccc 123
jhnwkmn 0:6f55c7651ccc 124 if (pte != 0) {
jhnwkmn 0:6f55c7651ccc 125 deliverInterrupts(PTE0, pte);
jhnwkmn 0:6f55c7651ccc 126 }
jhnwkmn 0:6f55c7651ccc 127 }
jhnwkmn 0:6f55c7651ccc 128
jhnwkmn 0:6f55c7651ccc 129 void bindPlatform(HSQUIRRELVM vm)
jhnwkmn 0:6f55c7651ccc 130 {
jhnwkmn 0:6f55c7651ccc 131 // Check PinNames.h
jhnwkmn 0:6f55c7651ccc 132 SQBIND_CONSTANT(vm, PTA0);
jhnwkmn 0:6f55c7651ccc 133 SQBIND_CONSTANT(vm, PTA1);
jhnwkmn 0:6f55c7651ccc 134 SQBIND_CONSTANT(vm, PTA2);
jhnwkmn 0:6f55c7651ccc 135 SQBIND_CONSTANT(vm, PTA3);
jhnwkmn 0:6f55c7651ccc 136 SQBIND_CONSTANT(vm, PTA4);
jhnwkmn 0:6f55c7651ccc 137 SQBIND_CONSTANT(vm, PTA5);
jhnwkmn 0:6f55c7651ccc 138 SQBIND_CONSTANT(vm, PTA6);
jhnwkmn 0:6f55c7651ccc 139 SQBIND_CONSTANT(vm, PTA7);
jhnwkmn 0:6f55c7651ccc 140 SQBIND_CONSTANT(vm, PTA8);
jhnwkmn 0:6f55c7651ccc 141 SQBIND_CONSTANT(vm, PTA9);
jhnwkmn 0:6f55c7651ccc 142 SQBIND_CONSTANT(vm, PTA10);
jhnwkmn 0:6f55c7651ccc 143 SQBIND_CONSTANT(vm, PTA11);
jhnwkmn 0:6f55c7651ccc 144 SQBIND_CONSTANT(vm, PTA12);
jhnwkmn 0:6f55c7651ccc 145 SQBIND_CONSTANT(vm, PTA13);
jhnwkmn 0:6f55c7651ccc 146 SQBIND_CONSTANT(vm, PTA14);
jhnwkmn 0:6f55c7651ccc 147 SQBIND_CONSTANT(vm, PTA15);
jhnwkmn 0:6f55c7651ccc 148 SQBIND_CONSTANT(vm, PTA16);
jhnwkmn 0:6f55c7651ccc 149 SQBIND_CONSTANT(vm, PTA17);
jhnwkmn 0:6f55c7651ccc 150 SQBIND_CONSTANT(vm, PTA18);
jhnwkmn 0:6f55c7651ccc 151 SQBIND_CONSTANT(vm, PTA19);
jhnwkmn 0:6f55c7651ccc 152 SQBIND_CONSTANT(vm, PTA20);
jhnwkmn 0:6f55c7651ccc 153 SQBIND_CONSTANT(vm, PTA21);
jhnwkmn 0:6f55c7651ccc 154 SQBIND_CONSTANT(vm, PTA22);
jhnwkmn 0:6f55c7651ccc 155 SQBIND_CONSTANT(vm, PTA23);
jhnwkmn 0:6f55c7651ccc 156 SQBIND_CONSTANT(vm, PTA24);
jhnwkmn 0:6f55c7651ccc 157 SQBIND_CONSTANT(vm, PTA25);
jhnwkmn 0:6f55c7651ccc 158 SQBIND_CONSTANT(vm, PTA26);
jhnwkmn 0:6f55c7651ccc 159 SQBIND_CONSTANT(vm, PTA27);
jhnwkmn 0:6f55c7651ccc 160 SQBIND_CONSTANT(vm, PTA28);
jhnwkmn 0:6f55c7651ccc 161 SQBIND_CONSTANT(vm, PTA29);
jhnwkmn 0:6f55c7651ccc 162 SQBIND_CONSTANT(vm, PTA30);
jhnwkmn 0:6f55c7651ccc 163 SQBIND_CONSTANT(vm, PTA31);
jhnwkmn 0:6f55c7651ccc 164 SQBIND_CONSTANT(vm, PTB0);
jhnwkmn 0:6f55c7651ccc 165 SQBIND_CONSTANT(vm, PTB1);
jhnwkmn 0:6f55c7651ccc 166 SQBIND_CONSTANT(vm, PTB2);
jhnwkmn 0:6f55c7651ccc 167 SQBIND_CONSTANT(vm, PTB3);
jhnwkmn 0:6f55c7651ccc 168 SQBIND_CONSTANT(vm, PTB4);
jhnwkmn 0:6f55c7651ccc 169 SQBIND_CONSTANT(vm, PTB5);
jhnwkmn 0:6f55c7651ccc 170 SQBIND_CONSTANT(vm, PTB6);
jhnwkmn 0:6f55c7651ccc 171 SQBIND_CONSTANT(vm, PTB7);
jhnwkmn 0:6f55c7651ccc 172 SQBIND_CONSTANT(vm, PTB8);
jhnwkmn 0:6f55c7651ccc 173 SQBIND_CONSTANT(vm, PTB9);
jhnwkmn 0:6f55c7651ccc 174 SQBIND_CONSTANT(vm, PTB10);
jhnwkmn 0:6f55c7651ccc 175 SQBIND_CONSTANT(vm, PTB11);
jhnwkmn 0:6f55c7651ccc 176 SQBIND_CONSTANT(vm, PTB12);
jhnwkmn 0:6f55c7651ccc 177 SQBIND_CONSTANT(vm, PTB13);
jhnwkmn 0:6f55c7651ccc 178 SQBIND_CONSTANT(vm, PTB14);
jhnwkmn 0:6f55c7651ccc 179 SQBIND_CONSTANT(vm, PTB15);
jhnwkmn 0:6f55c7651ccc 180 SQBIND_CONSTANT(vm, PTB16);
jhnwkmn 0:6f55c7651ccc 181 SQBIND_CONSTANT(vm, PTB17);
jhnwkmn 0:6f55c7651ccc 182 SQBIND_CONSTANT(vm, PTB18);
jhnwkmn 0:6f55c7651ccc 183 SQBIND_CONSTANT(vm, PTB19);
jhnwkmn 0:6f55c7651ccc 184 SQBIND_CONSTANT(vm, PTB20);
jhnwkmn 0:6f55c7651ccc 185 SQBIND_CONSTANT(vm, PTB21);
jhnwkmn 0:6f55c7651ccc 186 SQBIND_CONSTANT(vm, PTB22);
jhnwkmn 0:6f55c7651ccc 187 SQBIND_CONSTANT(vm, PTB23);
jhnwkmn 0:6f55c7651ccc 188 SQBIND_CONSTANT(vm, PTB24);
jhnwkmn 0:6f55c7651ccc 189 SQBIND_CONSTANT(vm, PTB25);
jhnwkmn 0:6f55c7651ccc 190 SQBIND_CONSTANT(vm, PTB26);
jhnwkmn 0:6f55c7651ccc 191 SQBIND_CONSTANT(vm, PTB27);
jhnwkmn 0:6f55c7651ccc 192 SQBIND_CONSTANT(vm, PTB28);
jhnwkmn 0:6f55c7651ccc 193 SQBIND_CONSTANT(vm, PTB29);
jhnwkmn 0:6f55c7651ccc 194 SQBIND_CONSTANT(vm, PTB30);
jhnwkmn 0:6f55c7651ccc 195 SQBIND_CONSTANT(vm, PTB31);
jhnwkmn 0:6f55c7651ccc 196 SQBIND_CONSTANT(vm, PTC0);
jhnwkmn 0:6f55c7651ccc 197 SQBIND_CONSTANT(vm, PTC1);
jhnwkmn 0:6f55c7651ccc 198 SQBIND_CONSTANT(vm, PTC2);
jhnwkmn 0:6f55c7651ccc 199 SQBIND_CONSTANT(vm, PTC3);
jhnwkmn 0:6f55c7651ccc 200 SQBIND_CONSTANT(vm, PTC4);
jhnwkmn 0:6f55c7651ccc 201 SQBIND_CONSTANT(vm, PTC5);
jhnwkmn 0:6f55c7651ccc 202 SQBIND_CONSTANT(vm, PTC6);
jhnwkmn 0:6f55c7651ccc 203 SQBIND_CONSTANT(vm, PTC7);
jhnwkmn 0:6f55c7651ccc 204 SQBIND_CONSTANT(vm, PTC8);
jhnwkmn 0:6f55c7651ccc 205 SQBIND_CONSTANT(vm, PTC9);
jhnwkmn 0:6f55c7651ccc 206 SQBIND_CONSTANT(vm, PTC10);
jhnwkmn 0:6f55c7651ccc 207 SQBIND_CONSTANT(vm, PTC11);
jhnwkmn 0:6f55c7651ccc 208 SQBIND_CONSTANT(vm, PTC12);
jhnwkmn 0:6f55c7651ccc 209 SQBIND_CONSTANT(vm, PTC13);
jhnwkmn 0:6f55c7651ccc 210 SQBIND_CONSTANT(vm, PTC14);
jhnwkmn 0:6f55c7651ccc 211 SQBIND_CONSTANT(vm, PTC15);
jhnwkmn 0:6f55c7651ccc 212 SQBIND_CONSTANT(vm, PTC16);
jhnwkmn 0:6f55c7651ccc 213 SQBIND_CONSTANT(vm, PTC17);
jhnwkmn 0:6f55c7651ccc 214 SQBIND_CONSTANT(vm, PTC18);
jhnwkmn 0:6f55c7651ccc 215 SQBIND_CONSTANT(vm, PTC19);
jhnwkmn 0:6f55c7651ccc 216 SQBIND_CONSTANT(vm, PTC20);
jhnwkmn 0:6f55c7651ccc 217 SQBIND_CONSTANT(vm, PTC21);
jhnwkmn 0:6f55c7651ccc 218 SQBIND_CONSTANT(vm, PTC22);
jhnwkmn 0:6f55c7651ccc 219 SQBIND_CONSTANT(vm, PTC23);
jhnwkmn 0:6f55c7651ccc 220 SQBIND_CONSTANT(vm, PTC24);
jhnwkmn 0:6f55c7651ccc 221 SQBIND_CONSTANT(vm, PTC25);
jhnwkmn 0:6f55c7651ccc 222 SQBIND_CONSTANT(vm, PTC26);
jhnwkmn 0:6f55c7651ccc 223 SQBIND_CONSTANT(vm, PTC27);
jhnwkmn 0:6f55c7651ccc 224 SQBIND_CONSTANT(vm, PTC28);
jhnwkmn 0:6f55c7651ccc 225 SQBIND_CONSTANT(vm, PTC29);
jhnwkmn 0:6f55c7651ccc 226 SQBIND_CONSTANT(vm, PTC30);
jhnwkmn 0:6f55c7651ccc 227 SQBIND_CONSTANT(vm, PTC31);
jhnwkmn 0:6f55c7651ccc 228 SQBIND_CONSTANT(vm, PTD0);
jhnwkmn 0:6f55c7651ccc 229 SQBIND_CONSTANT(vm, PTD1);
jhnwkmn 0:6f55c7651ccc 230 SQBIND_CONSTANT(vm, PTD2);
jhnwkmn 0:6f55c7651ccc 231 SQBIND_CONSTANT(vm, PTD3);
jhnwkmn 0:6f55c7651ccc 232 SQBIND_CONSTANT(vm, PTD4);
jhnwkmn 0:6f55c7651ccc 233 SQBIND_CONSTANT(vm, PTD5);
jhnwkmn 0:6f55c7651ccc 234 SQBIND_CONSTANT(vm, PTD6);
jhnwkmn 0:6f55c7651ccc 235 SQBIND_CONSTANT(vm, PTD7);
jhnwkmn 0:6f55c7651ccc 236 SQBIND_CONSTANT(vm, PTD8);
jhnwkmn 0:6f55c7651ccc 237 SQBIND_CONSTANT(vm, PTD9);
jhnwkmn 0:6f55c7651ccc 238 SQBIND_CONSTANT(vm, PTD10);
jhnwkmn 0:6f55c7651ccc 239 SQBIND_CONSTANT(vm, PTD11);
jhnwkmn 0:6f55c7651ccc 240 SQBIND_CONSTANT(vm, PTD12);
jhnwkmn 0:6f55c7651ccc 241 SQBIND_CONSTANT(vm, PTD13);
jhnwkmn 0:6f55c7651ccc 242 SQBIND_CONSTANT(vm, PTD14);
jhnwkmn 0:6f55c7651ccc 243 SQBIND_CONSTANT(vm, PTD15);
jhnwkmn 0:6f55c7651ccc 244 SQBIND_CONSTANT(vm, PTD16);
jhnwkmn 0:6f55c7651ccc 245 SQBIND_CONSTANT(vm, PTD17);
jhnwkmn 0:6f55c7651ccc 246 SQBIND_CONSTANT(vm, PTD18);
jhnwkmn 0:6f55c7651ccc 247 SQBIND_CONSTANT(vm, PTD19);
jhnwkmn 0:6f55c7651ccc 248 SQBIND_CONSTANT(vm, PTD20);
jhnwkmn 0:6f55c7651ccc 249 SQBIND_CONSTANT(vm, PTD21);
jhnwkmn 0:6f55c7651ccc 250 SQBIND_CONSTANT(vm, PTD22);
jhnwkmn 0:6f55c7651ccc 251 SQBIND_CONSTANT(vm, PTD23);
jhnwkmn 0:6f55c7651ccc 252 SQBIND_CONSTANT(vm, PTD24);
jhnwkmn 0:6f55c7651ccc 253 SQBIND_CONSTANT(vm, PTD25);
jhnwkmn 0:6f55c7651ccc 254 SQBIND_CONSTANT(vm, PTD26);
jhnwkmn 0:6f55c7651ccc 255 SQBIND_CONSTANT(vm, PTD27);
jhnwkmn 0:6f55c7651ccc 256 SQBIND_CONSTANT(vm, PTD28);
jhnwkmn 0:6f55c7651ccc 257 SQBIND_CONSTANT(vm, PTD29);
jhnwkmn 0:6f55c7651ccc 258 SQBIND_CONSTANT(vm, PTD30);
jhnwkmn 0:6f55c7651ccc 259 SQBIND_CONSTANT(vm, PTD31);
jhnwkmn 0:6f55c7651ccc 260 SQBIND_CONSTANT(vm, PTE0);
jhnwkmn 0:6f55c7651ccc 261 SQBIND_CONSTANT(vm, PTE1);
jhnwkmn 0:6f55c7651ccc 262 SQBIND_CONSTANT(vm, PTE2);
jhnwkmn 0:6f55c7651ccc 263 SQBIND_CONSTANT(vm, PTE3);
jhnwkmn 0:6f55c7651ccc 264 SQBIND_CONSTANT(vm, PTE4);
jhnwkmn 0:6f55c7651ccc 265 SQBIND_CONSTANT(vm, PTE5);
jhnwkmn 0:6f55c7651ccc 266 SQBIND_CONSTANT(vm, PTE6);
jhnwkmn 0:6f55c7651ccc 267 SQBIND_CONSTANT(vm, PTE7);
jhnwkmn 0:6f55c7651ccc 268 SQBIND_CONSTANT(vm, PTE8);
jhnwkmn 0:6f55c7651ccc 269 SQBIND_CONSTANT(vm, PTE9);
jhnwkmn 0:6f55c7651ccc 270 SQBIND_CONSTANT(vm, PTE10);
jhnwkmn 0:6f55c7651ccc 271 SQBIND_CONSTANT(vm, PTE11);
jhnwkmn 0:6f55c7651ccc 272 SQBIND_CONSTANT(vm, PTE12);
jhnwkmn 0:6f55c7651ccc 273 SQBIND_CONSTANT(vm, PTE13);
jhnwkmn 0:6f55c7651ccc 274 SQBIND_CONSTANT(vm, PTE14);
jhnwkmn 0:6f55c7651ccc 275 SQBIND_CONSTANT(vm, PTE15);
jhnwkmn 0:6f55c7651ccc 276 SQBIND_CONSTANT(vm, PTE16);
jhnwkmn 0:6f55c7651ccc 277 SQBIND_CONSTANT(vm, PTE17);
jhnwkmn 0:6f55c7651ccc 278 SQBIND_CONSTANT(vm, PTE18);
jhnwkmn 0:6f55c7651ccc 279 SQBIND_CONSTANT(vm, PTE19);
jhnwkmn 0:6f55c7651ccc 280 SQBIND_CONSTANT(vm, PTE20);
jhnwkmn 0:6f55c7651ccc 281 SQBIND_CONSTANT(vm, PTE21);
jhnwkmn 0:6f55c7651ccc 282 SQBIND_CONSTANT(vm, PTE22);
jhnwkmn 0:6f55c7651ccc 283 SQBIND_CONSTANT(vm, PTE23);
jhnwkmn 0:6f55c7651ccc 284 SQBIND_CONSTANT(vm, PTE24);
jhnwkmn 0:6f55c7651ccc 285 SQBIND_CONSTANT(vm, PTE25);
jhnwkmn 0:6f55c7651ccc 286 SQBIND_CONSTANT(vm, PTE26);
jhnwkmn 0:6f55c7651ccc 287 SQBIND_CONSTANT(vm, PTE27);
jhnwkmn 0:6f55c7651ccc 288 SQBIND_CONSTANT(vm, PTE28);
jhnwkmn 0:6f55c7651ccc 289 SQBIND_CONSTANT(vm, PTE29);
jhnwkmn 0:6f55c7651ccc 290 SQBIND_CONSTANT(vm, PTE30);
jhnwkmn 0:6f55c7651ccc 291 SQBIND_CONSTANT(vm, PTE31);
jhnwkmn 0:6f55c7651ccc 292 SQBIND_CONSTANT(vm, LED_RED);
jhnwkmn 0:6f55c7651ccc 293 SQBIND_CONSTANT(vm, LED_GREEN);
jhnwkmn 0:6f55c7651ccc 294 SQBIND_CONSTANT(vm, LED_BLUE);
jhnwkmn 0:6f55c7651ccc 295 SQBIND_CONSTANT(vm, LED1);
jhnwkmn 0:6f55c7651ccc 296 SQBIND_CONSTANT(vm, LED2);
jhnwkmn 0:6f55c7651ccc 297 SQBIND_CONSTANT(vm, LED3);
jhnwkmn 0:6f55c7651ccc 298 SQBIND_CONSTANT(vm, LED4);
jhnwkmn 0:6f55c7651ccc 299 SQBIND_CONSTANT(vm, SW2);
jhnwkmn 0:6f55c7651ccc 300 SQBIND_CONSTANT(vm, SW3);
jhnwkmn 0:6f55c7651ccc 301 SQBIND_CONSTANT(vm, USBTX);
jhnwkmn 0:6f55c7651ccc 302 SQBIND_CONSTANT(vm, USBRX);
jhnwkmn 0:6f55c7651ccc 303 SQBIND_CONSTANT(vm, D0);
jhnwkmn 0:6f55c7651ccc 304 SQBIND_CONSTANT(vm, D1);
jhnwkmn 0:6f55c7651ccc 305 SQBIND_CONSTANT(vm, D2);
jhnwkmn 0:6f55c7651ccc 306 SQBIND_CONSTANT(vm, D3);
jhnwkmn 0:6f55c7651ccc 307 SQBIND_CONSTANT(vm, D4);
jhnwkmn 0:6f55c7651ccc 308 SQBIND_CONSTANT(vm, D5);
jhnwkmn 0:6f55c7651ccc 309 SQBIND_CONSTANT(vm, D6);
jhnwkmn 0:6f55c7651ccc 310 SQBIND_CONSTANT(vm, D7);
jhnwkmn 0:6f55c7651ccc 311 SQBIND_CONSTANT(vm, D8);
jhnwkmn 0:6f55c7651ccc 312 SQBIND_CONSTANT(vm, D9);
jhnwkmn 0:6f55c7651ccc 313 SQBIND_CONSTANT(vm, D10);
jhnwkmn 0:6f55c7651ccc 314 SQBIND_CONSTANT(vm, D11);
jhnwkmn 0:6f55c7651ccc 315 SQBIND_CONSTANT(vm, D12);
jhnwkmn 0:6f55c7651ccc 316 SQBIND_CONSTANT(vm, D13);
jhnwkmn 0:6f55c7651ccc 317 SQBIND_CONSTANT(vm, D14);
jhnwkmn 0:6f55c7651ccc 318 SQBIND_CONSTANT(vm, D15);
jhnwkmn 0:6f55c7651ccc 319 SQBIND_CONSTANT(vm, I2C_SCL);
jhnwkmn 0:6f55c7651ccc 320 SQBIND_CONSTANT(vm, I2C_SDA);
jhnwkmn 0:6f55c7651ccc 321 SQBIND_CONSTANT(vm, A0);
jhnwkmn 0:6f55c7651ccc 322 SQBIND_CONSTANT(vm, A1);
jhnwkmn 0:6f55c7651ccc 323 SQBIND_CONSTANT(vm, A2);
jhnwkmn 0:6f55c7651ccc 324 SQBIND_CONSTANT(vm, A3);
jhnwkmn 0:6f55c7651ccc 325 SQBIND_CONSTANT(vm, A4);
jhnwkmn 0:6f55c7651ccc 326 SQBIND_CONSTANT(vm, A5);
jhnwkmn 0:6f55c7651ccc 327
jhnwkmn 0:6f55c7651ccc 328 SQBIND_CONSTANT(vm, PullNone);
jhnwkmn 0:6f55c7651ccc 329 SQBIND_CONSTANT(vm, PullDown);
jhnwkmn 0:6f55c7651ccc 330 SQBIND_CONSTANT(vm, PullUp);
jhnwkmn 0:6f55c7651ccc 331 SQBIND_CONSTANT(vm, PullDefault);
jhnwkmn 0:6f55c7651ccc 332 }
jhnwkmn 0:6f55c7651ccc 333
jhnwkmn 0:6f55c7651ccc 334 }