-
Notifications
You must be signed in to change notification settings - Fork 13
/
CHANGELOG
572 lines (409 loc) · 18.7 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
05.06.2013, Matthias Koch, Mecrisp-Stellaris 0.1 experimental:
I am very happy to announce Mecrisp-Stellaris !
This is the very first beginning, expect monsters inside.
As this is the younger sister of Mecrisp for MSP430,
they share their development history and most design ideas.
12.06.2013, Matthias Koch, Mecrisp-Stellaris 0.2 experimental:
- Unicode support
- First interrupt handler for Systick-Timer
- Lots of small changes
- Ledcomm ported
15.06.2013, Matthias Koch, Mecrisp-Stellaris 0.3 experimental:
- Recognizes both LF and CR as line ending
- Uses hardware FIFO buffer for serial communication
- Enables GPIO hardware on startup
- Tidied up internal register usage
- Faster interrupt entry
- Fetch-Modify-Store definitions are now interrupt safe
- Mecrisp-Stellaris now generates smaller code
- Tidied up debug messages
- Lots of small changes
23.06.2013, Matthias Koch, Mecrisp-Stellaris 0.4 experimental:
- Examples in Forth for Analog, Timer, PWM and Interrupts
- Interrupt handling for Ports and Timers included
- Tidied up source code
- Core needs less RAM
- Lots of small changes
01.07.2013, Matthias Koch, Mecrisp-Stellaris 0.5 experimental:
- Faster comparisons & bit@
- Beautiful output for .s in current base
- Analog Interrupts for ADC0 included
- Examples in Forth for PLL setup and 1 Msps analog sampling
07.07.2013, Matthias Koch, Mecrisp-Stellaris 0.6 experimental:
- New target: STM32F407 on STM32F4-Discovery board
- Removed experimental atomic memory access from core
- Rearranged source code and
added English comments to simplify porting
- First examples for STM32F4 included
29.07.2013, Matthias Koch, Mecrisp-Stellaris 0.6.1 experimental:
- Bugfix in min and max
- 1 Msps analog sampling example for STM
24.08.2013, Matthias Koch, Mecrisp-Stellaris 0.7 experimental:
- New target: KL25Z128 on Freescale Freedom FRDM-KL25Z board
- Deep changes in core:
- New code generator for M0
- Improved code generator for M3
10.08.2013, Matthias Koch, Mecrisp-Stellaris 0.7.1 experimental:
- ADC and DAC examples for KL25Z128
- Improved code generation for M0
07.11.2013, Matthias Koch, Mecrisp-Stellaris 0.7.2:
- A lot of testing later: "experimental" is gone !
- Disassembler for M0 included
- Two channel 1 Msps sampling example for LM4F120
- Contributions:
Random number generator for STM32F4 by Sean Stasiak
LM4F232H5QC port for Chinese QF-LM4F232 board by 呂明貴 (Albert)
16.11.2013, Matthias Koch, Mecrisp-Stellaris 0.8:
- Deep changes in core: Opcodings !
They generate faster code for all targets.
28.11.2013, Matthias Koch, Mecrisp-Stellaris 0.8.1:
- New target: STM32F100 on STM VL Discovery board
18.12.2013, Matthias Koch, Mecrisp-Stellaris 0.9:
- Double numbers and s31.32 fixpoint calculations
- Sine/Cosine Cordic algorithm
- Two channel 1 Msps oscilloscope for LM4F120
31.12.2013, Matthias Koch, Mecrisp-Stellaris 0.9.1:
- Partial disassembler for M3/M4 included
- Small optimisations in core
13.01.2014, Matthias Koch, Mecrisp-Stellaris 0.9.2:
- Small optimisations in M3/M4 code generator
- Faster interrupt trampolines for M3/M4
- Timer interrupts for STM32F407
- Added rdrop and 2rdrop
06.02.2014, Matthias Koch, Mecrisp-Stellaris 0.9.3:
- Added for convenience: d/ mod f.n
- Final testing package for upcoming stable 1.0 release
01.03.2014, Matthias Koch, Mecrisp-Stellaris 1.0:
Finally the first stable release of Mecrisp-Stellaris !
21.03.2014, Matthias Koch, Mecrisp-Stellaris 1.0.1:
Bugfix in third loop index "k"
26.03.2014, Matthias Koch, Mecrisp-Stellaris 1.0.2:
- New target: TM4C1294 on Tiva Connected Launchpad
05.04.2014, Matthias Koch, Mecrisp-Stellaris 1.0.3:
- New target: STM32F429ZIT6 on STM F429 Discovery
- Instruction set emulator for Cortex M0 included
23.04.2014, Matthias Koch, Mecrisp-Stellaris 1.0.4:
- Added Intel Hex style binaries for STM targets
- Improved code generation for do and ?do
- Fixed minor issue with arshift when opcoded
with folding constant >= 32
- Added bit rotations ror and rol
- M3/M4 only:
- Added 12bitencoding
- Faster opcodes for inline literals,
calculations, logic and comparisions
- Included new opcodes into disassembler-m3
01.05.2014, Matthias Koch, Mecrisp-Stellaris 1.1.0
Big tidyup release !
- Improved readability of chip specific code
- Factored out a lot of common code
- Move now behaves well for both directions
- Added fill and compiletoram?
- Improved dictionary building macros
- Fixed flaw in LM4F120 PLL example
02.05.2014, Matthias Koch, Mecrisp-Stellaris 1.1.1
- New target: STM32F051R8 on STM F0 Discovery
- Tidyup and factoring of common STM terminal code
03.05.2014, Matthias Koch, Mecrisp-Stellaris 1.1.2
- New target: STM32F401RE on STM Nucleo F401RE
- Variables and <builds does> are now 4-aligned on M3/M4, too
- Added buffer:
- Hooks for terminal redirection on TM4C1294
08.05.2014, Matthias Koch, Mecrisp-Stellaris 1.1.3
- Added sp@ sp! rp@ rp!
- Added hook for inner quit loop
- ?emit and hooks for terminal redirection on all targets
- Serial terminal code calls vectorized pause for multitasking
- Tidyup and factoring of more common code
19.05.2014, Matthias Koch, Mecrisp-Stellaris 1.1.4
- New target: STM32F103C8 on Shenzhen LC Technology board
21.05.2014, Matthias Koch, Mecrisp-Stellaris 1.1.5
- Tab is now recognized as whitespace
- Added irq-fault
27.05.2014, Matthias Koch, Mecrisp-Stellaris 1.1.6
- Analog and PLL examples for TM4C1294
- Enabled Prefetch Buffer in PLL examples for STM32F407
- Added Forth source for multiline comments
- Added Bitlog and Bitexp functions
- Improved code generation for fetch-modify-store shortcuts
- Testing of LM4F120 binary on TI Tiva Launchpad with TM4C123GH6PM
03.06.2014, Matthias Koch, Mecrisp-Stellaris 1.1.7
- Added string handling helpers: expect tib >in
- Contribution by Mark Schweizer:
MK20DX256VLH7 port for Teensy 3.1 board
26.06.2014, Matthias Koch, Mecrisp-Stellaris 1.1.8
- Added Loran-C for TM4C1294
- Contribution by John Huberts:
Port for Nordic nRF51822
- Contribution by Bernd Paysan:
Ethernet drivers for TM4C1294
30.06.2014, Matthias Koch, Mecrisp-Stellaris 2.0.0
- Big changes in string handling !
The new core is now a lot more ANS aligned and handles addr-length strings.
- Renamed ?key in key? and ?emit in emit?
- Renamed old counted-string handling with c-prefix
- Create now has default action equivalent to : create <builds does> ;
Old behaviour is renamed into (create)
- Added irq-terminal to LM4F120 and TM4C1294 targets
- Fixed flaw in 16-bit Flash write emulation layer for Freescale targets
- Changed disassemblers and examples for new string handling
Simply renamed with same function:
?key --> key?
?emit --> emit?
serial-?key --> serial-key?
serial-?emit --> serial-emit?
hook-?key --> hook-key?
hook-?emit --> hook-emit?
expect --> cexpect
create --> (create)
type --> ctype
s" --> c"
Chanced behaviour:
string,
find
compare
number
token
parse
#>
s"
type
create
Freshly added:
cell+
cells
align
aligned
spaces
count
create
type
accept
evaluate
s"
current-source
setsource
source
02.07.2014, Matthias Koch, Mecrisp-Stellaris 2.0.0a
- Fixed a flaw in NVIC Forth code
- Fixed a minor flaw in ethernet driver
- Added 1Msps analog-digital converter ethernet stream example
08.07.2014, Matthias Koch, Mecrisp-Stellaris 2.0.0b
- Added comments for nRF51822 in README
- Fixed flaw in Pascal UDP ethernet terminal code
09.07.2014, Mark Schweizer, Mecrisp-Stellaris 2.0.1
Following changes added for MK20DX256:
- terminal.s: Turned on UART0 RX/TX FIFO
Changed code for ensuring UART overrun flag is cleared
Added support for hardware flow control
- vectors.s: Added UART0_S/E interrupt vektor to permit the possibility
of interrupt driven serial (interrupts not enabled by
default)
- interrupt.s: Added "ipsr" word to push Interrupt Program Status Register
on stack
Added initialization of UART0S / UART0E interrupts
- README: Documented serial connection, flashing, etc. (basic info)
- Forth: Added more examples, cleaned up code. Seperate README
located in that directory.
Matthias Koch:
- Cleaned up core sources to save a few bytes
16.07.2014, Matthias Koch, Mecrisp-Stellaris 2.0.2
- Added IPSR by Mark Schweizer for all targets
- Added UNHANDLED as new default for all IRQs
- irq-fault now catches fault handlers only
- irq-collection catches all other interrupts
- Factored common vector tables and interrupts
- Added dictionarynext to core
- Removed dump
- New target: STM32F303VCT6 on STM F3 Discovery
- New target: STM32L152RE on STM Nucleo L152RE
23.08.2014, Matthias Koch, Mecrisp-Stellaris 2.0.3
- Bugfix: Double division
- Some small optimisations in core
- Assembler for Cortex M0 added
18.10.2014, Matthias Koch, Mecrisp-Stellaris 2.0.4
- Optimisations for bit@ hbit@ cbit@
- Added rdepth rpick
- Forth code for blocks and trace
- Ported Ledcomm to Nucleo L152
- Contribution by John Huberts:
Nordic nRF51822 radio code
06.11.2014, Matthias Koch, Mecrisp-Stellaris 2.0.5
- New experimental target: LPC1114FN28 (without Flash write access for now)
- Unicode block editor added
11.11.2014, Matthias Koch, Mecrisp-Stellaris 2.0.5a
- Adapted Thumbulator emulator for LPC1114FN28 and
added Forth code to generate custom binaries for this target
- Fixed a small flaw in disassemblers
04.12.2014, Matthias Koch, Mecrisp-Stellaris 2.0.6
- Finally solved compilation into Flash for LPC1114FN28
01.01.2015, Matthias Koch, Mecrisp-Stellaris 2.0.7
- Delete character 127 is now recognized
- New target: STM32F030F4
- Ethernet driver now has support for DHCP and ARP
- Improved analog stream over ethernet
- Added Ledcomm for LPC1114FN28
- Added Real Time Clock for LM4F120 and TM4C1294
- Added Inertial Sensor code for STM32F3 Discovery
- Fixed counter rollover issues in systick timer delay
- Contribution by Terry Porter:
Register file generator from SVD to Forth with STM examples
08.02.2015, Matthias Koch, Mecrisp-Stellaris 2.0.8
- Fixed flaw in LPC1114FN28 specific flash buffer handling
that caused freezes after calling quit
- Multitasking example for all targets
- PLL and lowpower terminal code for LPC1114FN28
- Initial graphics drivers to draw pixels on STM32F429 Discovery
- Contribution by James Bowmann:
Forth drivers for Gameduino 2 on STM32F401RE Nucleo
Marsaglia pseudo random number generator
- Contribution by Terry Porter:
Register file generator with individual bitfields
22.02.2015, Matthias Koch, Mecrisp-Stellaris 2.0.9
- Added eint? and reset
- Removed obsolete ?dnegate
- Fixed some documentation flaws in glossary
13.03.2015, Matthias Koch, Mecrisp-Stellaris 2.1.0
- New target: LPC1115FBD48
- Contribution by Bert Lohmann:
I2C, LCD, PWM in and PWM out examples for LPC1114FN28
04.04.2015, Matthias Koch, Mecrisp-Stellaris 2.1.1
- New target: MSP432P401R on MSP432 Launchpad
- Eraseflash now performs an hardware Reset on all targets
11.04.2015, Matthias Koch, Mecrisp-Stellaris 2.1.2
- New target: STM32L053C8 on STM32L053 Discovery
- E-Paper display example for this new board
18.04.2015, Matthias Koch, Mecrisp-Stellaris 2.1.3
- Ethernet driver updated to new multitasker
- Added graphics library for lines, circles, ellipses and bitmap font
- Contribution by Jean Jonethal:
New target: Nucleo STM32F411
- Contribution by Glen Worstell:
An example for a custom prompt
27.09.2015, Matthias Koch, Mecrisp-Stellaris 2.1.4
- New experimental target: ARM-Linux and Android
- Faster implementation of abs function
- Jean Jonethal fixed UART blocking on overrun for STM32F303
- Added early experimental bignum implementation
- Contribution by Ulrich Hoffman:
Examples for syscall usage in ARM Linux
15.10.2015, Matthias Koch, Mecrisp-Stellaris 2.1.5
- Contribution by Абдрахимов Илья:
New target: STM L152 Discovery
22.10.2015, Matthias Koch, Mecrisp-Stellaris 2.2.0 & RA 1.0 experimental
- Merged the experimental RA branch with the mainstream package
Changes to the mainstream release are:
- Replaced align, with halign
- Removed align4, as it has been identical with align
- Improved maintainability of the code
- Small improvements under the hood here and there
28.10.2015, Matthias Koch, Mecrisp-Stellaris 2.1.6
- Many new examples for Teensy 3.1 by Andreas Wagner
- Bugfix for STM32L152 vector map and additional interrupt vectors,
more examples for STM L152 Discovery by Абдрахимов Илья (Ilya Abdrahimov)
31.10.2015, Matthias Koch, Mecrisp-Stellaris RA 1.1
- Merged news from 2.1.6 into this package
- Improved tuck
01.11.2015, Matthias Koch, Mecrisp-Stellaris RA 1.2
- Jean Jonethal added STM32F303-RA and fixed a bug.
05.11.2015, Matthias Koch, Mecrisp-Stellaris RA 1.3
- Inline-Cache allows register allocation across inlined definitions
08.11.2015, Matthias Koch, Mecrisp-Stellaris RA 1.4
- Small improvements for negate
14.11.2015, Matthias Koch, Mecrisp-Stellaris RA 1.5
- Smaller disassemblers
- Continuous sampling with exponential average for Loran-C
- RTC examples for STM L152 Discovery by Абдрахимов Илья (Ilya Abdrahimov)
- Contribution by Jean Jonethal:
New target: STM L476 Discovery
28.11.2015, Matthias Koch, Mecrisp-Stellaris RA 1.5a
- Added fast integer square root
- More examples for STM L152 Discovery by Абдрахимов Илья (Ilya Abdrahimov)
- Experimental new target: XMC1100 on Infineon XMC2GO board
24.12.2015, Matthias Koch, Mecrisp-Stellaris 2.2.0 - Christmas release !
My Christmas present for you:
Mecrisp-Stellaris RA with Register Allocator is ready for mainstream release
and should already be quite stable after a few months of testing.
Now you can choose for your projects if you need the smaller classic core
or the larger RA which includes much stronger optimisations.
Both should have exactly the same capabilities and behaviours.
Some hints for the choice:
If you touch performance barriers with the classic core,
if you love experiments and if you are curious,
try the fresh Mecrisp-Stellaris RA core.
If you have something that already works well with older releases,
if your project has high demands on stability,
if space is what you wish to save,
use the smaller and rock solid classic Mecrisp-Stellaris.
Changes relative to Mecrisp-Stellaris 2.1.6:
- Replaced align, with halign
- Removed align4, as it has been identical with align
01.01.2016, Matthias Koch, Mecrisp-Stellaris 2.2.1 - 32C3 release !
E-Paper graphics buffer and paint primitives
New target: Silicon Labs Giant Gecko Starter Kit with EFM32GG990F1024
Fixed flaw in RA core when inlining empty definitions
- Contribution by Ilya Abdrahimov: 1-Wire for STM32L152RB
- Contribution by Jean Jonethal:
New target: STM F746 Discovery
13.02.2016, Matthias Koch, Mecrisp-Stellaris 2.2.1a
- LDMIA + Interrupt silicon bug found: KNOWN-ISSUES added
- Added RA for LPC1115
- Contribution by Ralph Sahli: Peripheral libraries for STM32F407
- Contribution by Terry Porter: Register definitions and insight generator
- Contribution by Igor OM1ZZ: Eight queens bechmark and PLL code
20.02.2016, Matthias Koch, Mecrisp-Stellaris 2.2.2
- More interrupts in STM32F103
- Added STM32F103-RA
- Contribution by Ilya Abdrahimov: Many examples for STM32F429
- Contribution by Ralph Sahli: Many more examples and libraries for STM32F407
26.03.2016, Matthias Koch, Mecrisp-Stellaris 2.2.3
- New target: Silicon Labs Happy Gecko Starter Kit with EFM32HG322F64
28.03.2016, Matthias Koch, Mecrisp-Stellaris 2.2.4
- No line break directly after the "Redefine..." message anymore
- Graphics driver for Sharp LCD on Happy Gecko
- New target: KL46Z256 on Freescale Freedom FRDM-KL46Z board
06.04.2016, Matthias Koch, Mecrisp-Stellaris 2.2.5
- Added ahead and changed control structures to allow more combinations
- Fixed Forth register constants for PORTE on KL25Z128 and KL46Z256
- New target: MK64FN1M0 on Freescale Freedom FRDM-K64F board
- New target: LPC1114FBD48
- New target: Nordic nRF51822 prepared for Microbit
08.05.2016, Matthias Koch, Mecrisp-Stellaris 2.2.6
- Scripts for invoking Mecrisp-Stellaris for ARM Linux with qemu-arm-static
- Contribution by Bernd Paysan:
New target: STM32F207ZG on Nucleo-F207ZG
14.05.2016, Matthias Koch, Mecrisp-Stellaris 2.2.7
Linux target got an improving touch:
- Added cacheflush to solve difficulties with data and instruction cache flushes
- Welcome message is omitted when command line arguments are specified
- A check for Ctrl+D and for EOF in serial-key quits Mecrisp-Stellaris for Linux
- arguments, reset, eraseflash and eraseflashfrom added
- Now 1 MB for compiletoram and compiletoflash each
- Smaller binary
- Forth code for cornerstone added
- Handling of command line arguments in Forth
19.06.2016, Matthias Koch, Mecrisp-Stellaris 2.2.8
- Increased stack size for Linux target
- Mecrisp-Stellaris-Linux now uses software division like the M0,
as, crazy enough, there is no integer division on large ARMs like A9 and A15.
23.08.2016, Matthias Koch, Mecrisp-Stellaris 2.2.9
- Contribution by Ralph Sahli:
New target: STM32F303K8 with many examples.
"Neopixel" driver for WS2812B LEDs and more.
25.09.2016, Matthias Koch, Mecrisp-Stellaris 2.3.0
- With a lot of heavy testing out in the wild, now it is time to announce
the register allocator "RA" as stable and ready for general usage.
- "Dotstar" driver for APA102 LED strings connected to a LM4F120
- Profiler written in Forth to count usage of definitions
- Forth code for conditional compilation
- Contribution by Ilya Abdrahimov:
Improved 1-Wire drivers and many new examples for STM32F103 and STM32F411
02.12.2016, Matthias Koch, Mecrisp-Stellaris 2.3.1
- A bug was found in the register allocator: Fixed abs for all RA targets.
- Contribution by Terry Porter:
svd2forth-v2 - A fresh register file generator from SVD to Forth
15.12.2016, Matthias Koch, Mecrisp-Stellaris 2.3.2
- RA binary for STM32L053C8
- Contribution by Ronny Suy:
New experimental target: ATSAME70Q21 on Atmel SAME70 X-plained,
just still without the possibility to compile into flash.