-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
597 lines (552 loc) · 29 KB
/
CHANGES
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
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
Version 22 (31-DEC-2006)
----------
- as/tests/{case,macro}: added tests for case-sensitivity and use of macro name
- as/m8c.y: when using EQU, m8cas didn't complain about re-definable labels
being an extension (updated as/tests/redef_ext)
- as/README: clarified use of re-definable labels in EQU
- as/{m8c.y,id.[hc]}: a re-definable label set by EQU is not visible when
parsing the expression it is set to (as/tests/redef_same)
- as/{m8c.y,id.[hc]}: EQU cleans up re-usable labels only after parsing the
expression (as/tests/reuse_same)
- as/{id.h,id.c,op.c}: recursive definition were not detected and crashed m8cas
(as/tests/rec_def)
- shared/{disasm.c,symmap.[hc]}: added support for re-definable labels
- das/tests/sym_redef: added tests for redefinable labels
- sim/: added support for re-definable labels (sim/tests/redef,
sim/tests/redef_err)
Version 21 (18-DEC-2006)
----------
- m8cbscan/: new static connection checker that performs a boundary scan
through ISSP
- Common.make: VERSION is now a string, not a number
- as/tests/Common: added function "edit" to run sed on _out
- as/tests/Common: added function files_noas to add a file without putting it
on the command line of m8cas
- Common.make: set YACC to "bison -y" to gain access to extension "YYEMPTY"
(updated as/tests/redef_undef)
- shared/error.c:set_file: convert empty file names to "<stdin>"
- as/: added support for IF ... ELSE ... ENDIF (as/tests/if, as/tests/if_nest,
as/tests/if_la, as/tests/if_err)
- as/: added support for MACRO ... ENDM (as/tests/macro, as/tests/macro_nest,
as/tests/macro_sep, as/tests/macro_if, as/tests/macro_err; updated
as/tests/sep_cpp)
- as/: added support for INCLUDE (as/tests/include)
- sim/tests/dm: new regression test for GPIO drive mode changes
Version 20 (5-DEC-2006)
----------
- shared/file.c:read_binary: complained that files of exactly 32 kB were
already too big
- prog/torture.c: updated and made compile again, now for real
- prog/torture.c: added optional cycles per session argument
- prog/torture.c: added detection of session loss (chip stops responding)
- prog/Makefile: added target torture-static and changed -lssl to -lcrypto
- prog/Makefile: also remove "torture" when cleaning up
- prog/README: updated description of the protocol stack
- prog/README: added a "quick start" section
- shared/util.h: added convenience functions alloc_type_n and realloc_type
- prog/cli.[ch]:prog_close_cli: now has an argument to indicate whether a new
session will be opened with the same settings
- prog/vector.h:VECTOR_ADDR, VECTOR_DATA: new macros to extract vector
components
- shared/interact.c:progress: reduced number of characters output for the
progress bar by a factor of up to 250
- prog/prog_ops.c:ops_write_program: skip blocks containing only zeroes
- prog/drv/*.c: made bit- and vector-level operations structures "static"
- prog/prog_vector.c:vec_vector, prog/prog_bit.[ch]: added new bit-banging
operation "invert_phase" to invert the SCLK phase when receiving
- prog/drv/watpp.c, prog/drv/watsp.c: added support for phase inversion
- prog/drv/watsp.c: set SDATA only when it changed, reducing the number of I/O
operations by about 25%
- prog/drv/waspic.c: increased the read timeout from 1 to 5 seconds to allow
large host-side buffers to drain
- prog/drv/wadsp.[ch]: added driver for the wadsp programmer
- prog/tty.[ch]:tty_discard_input: new function to flush queued-up input
- README: the license is plain GPLv2, no longer with an augmented version (that
was for the programmer hardware, which has since moved to m8cprogs)
- shared/file.c:read_hex, shared/symmap.c:sym_read_file,
as/code.c:store_offset, prog/prog_vector.c:prog_vector,
prog/prog_vector.c:do_prog_acquire_reset, sim/lang.y:read_lvalue,
sim/lang.y:write_lvalue, sim/lang.y: fixed portability problems with uint32_t
in printf and sscanf (reported by Mike Moreton)
- Common.make: invocation with TEST32=1 now enables uint32_t portability
testing for 32 bit platforms (this hack only works with glibc)
- shared/symmap.c:sym_read_file: replaced non-portable %as with %s (based on a
patch by Mike Moreton)
- Config.make, Makefile: added configuration variable BUILD_LIBPROG to control
whether to build libprog and things that depend on it, such as m8cprog (based
on a patch by Mike Moreton)
- Config.make, shared/Makefile, shared/cpp.c: CPP is now set by configration
variable CPP_COMMAND, which now defaults to "cpp" instead of /lib/cpp (based
on a patch by Mike Moreton)
- */Makefile: "clean" now removed y.output (by Mike Moreton)
- */Makefile: "spotless" also removes executables with .exe suffix, for Cygwin
compatibility (by Mike Moreton)
- sim/Makefile, sim/icestubs.c: added support for building m8csim without the
DIY ICE (by Mike Moreton)
- sim/code.c:m8c_run: breakpoint at interrupt table entry wasn't taken
(sim/tests/breakint, reported by Mike Moreton)
- as/: added ASSERT directive (as/tests/assert)
- as/: added re-definable local labels, defined e.g., with ".1:", and used
with ".1b", ".1f", etc. (as/tests/redef_before, as/tests/redef_after,
as/tests/redef_syntax, as/tests/redef_undef, as/tests/redef_mix,
as/tests/redef_ext; updated as/tests/reuse_after)
- as/id.c: reusable symbols didn't get removed between files
(as/tests/sep_undef_re)
- as/id.c:scrap_reusable: don't make a backup entry if there are no reusable
labels
- as/tests/sep_undef_re: tests for re-usable and re-definable labels crossing
file boundaries
- shared/cpp.c:run_cpp: leave cpp_argv and cpp_argc in a state that allows
reuse
- as/m8cas.c: if using -e with multiple files, set up CPP arguments for each
file (as/tests/sep_cpp)
- as/: added special variable "@" containing the cumulative number of CPUCLK
cycles of the instructions since the beginning of the program
(as/tests/cycles)
- Makefile: added target "valgrind" to run the regression tests under valgrind
Version 19 (30-OCT-2006)
----------
- shared/security.[ch]: sanity checks for protection bits
- as/: added support for reading protection bits from flashsecurity.txt
(as/tests/prot_all, as/tests/prot_hole, as/tests/prot_short,
as/tests/prot_comment)
- m8cas: new option "-f protection_file" to select Flash protection file
- prog/m8cprog.c:main: added sanity checking for protection bits
- m8cprog: new option "-f protection_file" to set/override Flash protection
- m8cprog: new option "-F mode" to set chip-wide protection mode
- shared/file.c:write_hex: did not write the Extended Linear Address record for
security data
- prog/ops.c:prog_write_security: always write all protection bits
- prog/ops.c:prog_write_security: pad with 0xAA (R), not 0, and pad all banks
- prog/vector.h:VECTOR_VALUE: limit address and data to 8 bits
- prog/vector.h: removed 8 bit masking from various vectors
- prog/ops.c:prog_write_program: use KEY1 and KEY2 instead of numeric constants
- prog/ops.c:prog_compare_program: if any blocks have been skipped, also
verify the checksum
- prog/ops.c:prog_read_security: corrected various errors in the handling of
multiple banks
- m8cprog: -s -s now prints the full block of security data, including normally
unused bytes
- prog/drv/watpp.c: added calls to "delay_hook" (weak) to allow for external
speed adjustments
- prog/ice.h: removed unused #include "chips.h"
- prog/prog.[ch]: split into prog_bit.[ch], prog_common.[ch], and
prog_vector.[ch]
- prog/ops.[ch]: renamed to prog_ops.[ch]
- prog/: streamlined programmer function stack, and added new layers "ops" and
"prim"
- m8cprog: new option "-O option" to pass options to the driver's "open"
function
- prog/drv/: updated all drivers for new stack
- prog/drv/dummy.c: dummy driver that simulates Flash through a file
- prog/torture.c: updated and made compile again
- prog/tests/: regression tests for m8cprog and support libraries
- sim/Makefile: removed -t from invocation of yacc, which caused code with a
warning to be generated
Version 18 (9-OCT-2006)
----------
- sim/sim.c:main: when looking for default.m8csim, searched install directory
before directory specified with -I
- sim/tests/Common: added ../regs to include path for m8cas
- sim/tests/Common: pass chip name to m8cas, capitalized chip name
- sim/lang.y: removed duplicate definition of TOK_REG
- sim/lang.y: didn't check if there is an ICE when using the "ice" prefix
(sim/tests/noice)
- prog/drv/watpp.c:watpp_open: COMMIT was done after waiting, not before it,
thereby violating timings
- as/Makefile: LIBDEP was mis-spelled as LIBDEPS
- shared/file.c:write_hex_record: record length field was always 0x40
- prog/pp.c:pp_close: do PPRELEASE, to avoid complaints from the kernel
Version 17 (7-SEP-2006)
----------
- shared/error.[ch]: moved general portion of as/error.[ch] and as/m8c.l here
- as/error-as.[ch]: assembler-specific part of previous as/error.[ch]
- shared/backslash.[ch]: moved as/m8c.l:backslash here
- shared/reg2hdrs.pl, shared/regdef.h: dual-banked registers are now flagged
with PSOC_REG_ADDR_X in "c" mode
- misc/reginfo.c: added support for dual-banked registers
- prog/: new programmer driver operation prog_detach and command line option -D
to detach from target (currently only supported by watpp)
- prog/cli.[ch]:prog_close_cli: new function to disconnect programmer while
respecting the -D option
- prog/m8cprog.c: call prog_close_cli at the end (note: changes behaviour,
target may now be powered down and held in reset, unless using -D)
- shared/chips.c:chip_list: corrected formatting to leave the last column empty
- shared/chips.c:chip_by_name,chip_by_id: simplified curiously awkward return
logic
- shared/{m8c-registers,reg2hdrs.pl,regdf.h}: moved to new directory regs/
- regs/reg2hdr.pl: added support for chip-specific register definitions
- regs/reg2hdr.pl: allow more whitespace, for compatibility with old CPPs
- regs/m8c-registers: added all missing registers and classified unclassified
ones
- regs/m8c-register,regs/capabilities: added chip-specific attributes and
definitions
- shared/Makefile: installed ssc.inc (and not ssh.h) as ssc.h
- misc/reginfo.c: added optional first argument to select the chip
- sim/sim.c: pass default.m8csim through CPP
- sim/core.c:m8c_init: didn't initialize regs[CPU_SCR1].user, causing a crash
when trying to read CPU_SCR1
Version 16 (2-AUG-2006)
----------
- shared/chips.[ch]: added the CY8C24423A with ID 0x34, not 0x14 as AN2026A
claims
- shared/m8c-registers: added more registers and organized them by function,
not address
- shared/m8c-registers, shared/reg2hdrs.pl: register numbers are now in the
M,Nh format, including x,Nh
- shared/reg2hdrs.pl: renamed "c" mode to "h"
- as/code.c: report first undefined label, not last (as/tests/dundef)
- sim/core.c: setting a page register didn't update the page pointers
(sim/tests/ppreg)
- sim/tests/ppreg: added tests for direct and indirect access for all page
modes
- sim/util.h: moved to shared/, and removed as/util.h
- */Makefile: moved dependencies, tests, and the "filelist" target into
Common.make
- Config.make: moved definition of INSTALL_PREFIX from Common.make
- Makefile: include Config.make instead of Common.make
- misc/reginfo.c: utility to pretty-print register structure and content
- as/README: incorrectly called unary >> "log2", while it's ffs()-1
- sim/: added support for breakpoints (sim/tests/break, sim/tests/unbreak)
Version 15 (5-JUL-2006)
----------
- sim/lang.y: expressions can now be used almost everywhere where numbers are
expected (sim/tests/symexpr, sim/tests/regreg)
- sim/lang.y: symbols names can be distinguished from keywords by putting them
in double quotes (sim/tests/symquot)
- shared/m8c-registers: added more registers
- as/: error messages call identifiers now "labels" (updated
as/tests/reuse_undef, as/tests/reuse_before, as/tests/reuse_after,
as/tests/blk, as/tests/org)
- as/: the assembler can now process multiple files in one run. Global labels
are shared among files, while local labels remain local per file.
(as/tests/sep_local, as/tests/sep_global, as/tests/sep_undef,
as/tests/sep_mix, as/tests/sep_export; updated as/tests/export)
- prog/drv/watpp.c: cleaned up some debugging code
- prog/: added support for power-on mode, with the command-line option -P
- prog/drv/watpp.c: added support for power-on mode
- as/Makefile, sim/Makefile: $(OBJS) now depend on .depend, like everywhere
else
- Common.make, */Makefile: dependency generation is now defined in Common.make
- Common.make: dependency generation can now be quiet or verbose
- Common.make: use `...` instead of $(shell ...) to cat VERSION, so that we
don't get a stray error during top-level make
Version 14 (22-JUN-2006)
----------
- shared/reg2hdrs.pl: register definitions can be spread over multiple lines
- shared/reg2hdrs.pl: register definitions may also contain field values
- shared/reg2hdrs.pl: field and value names can also begin with a digit
- shared/Makefile, sim/Makefile: input of reg2hdrs.pl is now passed through cpp
- shared/m8c-registers: added lots of registers, including those of the two
column limited analog system
- prog/ice.c: removed unused ice_open and ice_close
- prog/ops.c:prog_identify: made raising CPUCLK to 12 MHz optional
- prog/torture.c, sim/sim.c: use prog_identify without raising CPUCLK
- sim/sim.c: omitting the chip name while loading a program caused a segfault
- sim/Makefile: added dependency on ../prog/libprog.a
- sim/ice.c:ice_write: after a write to CPU_SCR0, either do WAIT-AND-POLL or
send a zero vector
- sim/ice.c: restart the clock after each register access
- README: clarified copyright of prog/drv/ecb_at91.[ch]
- sim/lang.y:status: also display the next instruction to execute
- as/: new option -m to generate a symbol map file (as/tests/sym_local,
as/tests/sym_global, as/tests/sym_reuse)
- as/lang.l, as/tests/reuse_global: explicitly catch reusable global labels, to
avoid version-dependent "syntax error" message from lexer
- as/error.c:set_file: returned a pointer into yytext instead to the malloc'ed
string
- shared/file.[ch]: header still used called this the "CY8C2" utilities
- shared/symmap.[ch]: new functions to read and use symbol maps generated by
m8cas
- das/: new option -m to load a symbol map, and to use symbols in disassembled
code (das/tests/sym_rom, das/tests/sym_ram)
- sim/: new option -m to load a symbol map, to use symbols in disassembled
code, and to accept symbols as rvalues (sim/tests/symbols)
- as/error.h, sim/sim.h: added __attribute__((format(printf,...
- as/id.c:assign: added three missing arguments to call to lerrorf and made it
print the current location (as/tests/redefine)
- shared/cpp.c:run_cpp: did not free argv[1]
Version 13 (13-JUN-2006)
----------
- sim/lang.y: added direct register accesses through the ICE, see sim/README
- moved all files describing programmer hardware to a separate package called
"m8cprogs"
- TODO: still used the old name "cy8c2utils"
- README: corrected the path to COPYING.GPLv2
- renamed the top-level directory from "m8c" to "m8cutils-<version>"
Version 12 (9-JUN-2006)
----------
- prog/drv/ecb_at91.[ch]: added driver for an AT91RM9200-based programmer (by
Carlos Camargo)
- prog/cli.h and prog/cli.c were missing in m8cutils-11
- sim/lang.y: to drive GPIO pins, the specifcation now has to be prefixed with
the keyword "drive" (updated sim/README, sim/example/README,
sim/tests/drive_0, sim/tests/drive_0r, sim/tests/drive_1, sim/tests/drive_1r,
sim/tests/drive_z, sim/tests/tst_reg, sim/tests/gpioint, sim/tests/bugs8)
- sim/: GPIO pins can now be set with "set <spec> = <value>", similar to how
"drive" works (sim/tests/set_0, sim/tests/set_1, sim/tests/set_0r,
sim/tests/set_1r, sim/tests/set_long_r, sim/tests/set_z,
sim/tests/set_analog)
- sim/: entering a GPIO pin range now also displays the current DMx and DR
settings, and the ICE status
- sim/gpio.c: also check for interrupts when changing PRTxDR, PRTxDM0, and
PRTxDM1 (sim/tests/gpiointcfg)
- sim/tests/gpioint: enabled mode 00 test case
- sim/sim.c: if the program argument is omitted, no program is loaded
- sim/sim.c: if using an ICE, the chip is auto-detected, and the name can be
omitted
- sim/lang.y: new command "printf", to print a message (sim/tests/printf)
- sim/lang.y: new command "sleep", to pause script execution (sim/tests/sleep)
- sim/README: clarified that register and field names are not necessarily
implemented as #defines
- sim/lang.y: the address operator "&" now also works with ram[...], rom[...],
and symbolic register names (sim/tests/addrop)
- sim/lang.y: flush stdout after each command, to better synchronize with
stderr
- {libfdr,shared}/Makefile: make "install" depend on "all", so that "make
clean" followed by "make install" works
Version 11 (7-JUN-2006)
----------
- prog/drv/watsp.c: added parentheses to macro arguments
- prog/prog.c: moved WAIT-AND-POLL to separate function, for clarity
- prog/cli.[ch]: common parts of command line handling
- prog/m8cprog.c, prog/torture.c, sim/sim.c: now use the common CLI functions
- prog/ops.c:prog_initialize: "exit" if the voltage is not known, don't "abort"
- watpp/: new simple bit-banging programmer for the parallel port
- as/m8c.l: use "[01]" instead of the somewhat pompous "[0-1]"
- as/op.c:make_op: fixed idiot "optimization", which caused evaluation to
clobber its input (as/tests/evalconst)
- shared/m8c-registers: added VLT_CR and VLT_CMP
Version 10 (7-MAR-2006)
----------
- prog/torture.c: torture-tester for host to target communication
- prog/drv/watsp.c: oops, comment shouldn't claim anymore that it doesn't work
- prog/Makefile: prog.o now depends on drv/*.c, as a feeble attempt to force a
rebuild when a new driver is added
- prog/Makefile: don't insist on -Werror when doing dependencies
- sim/gpio.c:gpio_ice_disconnect: write gpio->dm2 to PRT0DM2, not PRT0DM1
- sim/gpio.c:gpio_ice_connect: trying to take over the ICE pins is no longer
punished with a fatal error (if in interactive mode)
- sim/lang.l:yyerrorf: still exit on errors if running a script
- sim/gpio.c:gpio_write_dr: set bits not under ICE control to zero (otherwise,
writing to PRT1DR[1] would break contact with the ICE)
- tests/ref/main.c: added #include for "chips.h"
- prog/vectors.h: moved SSC-related definitions to shared/ssc.inc
- prog/cy8c2regs.h: merged into shared/m8c-registers
- as/Makefile: moved handling of m8c.inc to shared/Makefile
- sim/: registers.h is now shared/m8c.h
- prog/drv/{waspic,watsp}.c: removed unused #includes
- sim/core.c: arguments to FROM_REG_OP were reversed for "TST reg[expr..."
(sim/tests/tst_reg)
- sim/core.c:TST: unexplicably, did a comparison instead of a bit test
(sim/tests/tst_ram, sim/tests/tst_reg)
- sim/tests/: ASR didn't preserve the MSB (tests/asr)
- sim/tests/: various files were lacking the #!/bin/sh
- sim/tests/: new test cases asl, asr, cmp, cpl, dec, inc, rlc, rrc, swap,
tst_ram, and tst_reg
- */tests/Common: use 0 if "passed" is not defined, to avoid complaints from
"expr"
- prog/m8cprog.c: if -r and -c were set, m8cprog would try to read a file
- prog/: added support for retrieving the Flash protection bits (-s) (joint
work with Dennis Geurts)
- prog/ref/README: added a bit of documentation
- prog/ref/vdecode.pl: made output format nicer and added more constants
- prog/: added support for switching to real-time priority when sending the
first nine bits of Initialize-1 (option -R)
- prog/proc.c:prog_acquire_reset: new function to acquire the target in reset
mode, while checking that the Txresinit deadline is met
- prog/prog.h: new programmer operation "acquire", to acquire the target
without m8cprog trying to enforce correct timing
- prog/prog.c:prog_vector: reduced wait for SDATA to go H before WAIT-AND-POLL
from 100 us to 10 us
Version 9 (2-MAR-2006)
---------
- Common.make:SLOPPY_PROTOTYPES: added -Wno-strict-prototypes for bison 1.35
compatibility
- sim/Makefile:LDLIBS: added -lcurses for compatibility with older libraries
- sim/sim.c: added -v to the programmer options
- sim/gpio.c:is_input: also resistive without a strong drive is an input if the
line is assigned to the ICE
- sim/lang.y:drive_port: moved drive logic to gpio.c:gpio_drive*, making it
atomic
- sim/lang.y:drive_port: drive value was masked before shifting, not the other
way around (tests/bugs8)
- sim/core.c: LJMP and LCALL had the byte order wrong plus a weird +3 offset
(tests/ljmp, tests/lcall)
- sim/core.c: LCALL had the return address off by one
- sim/example/blink.asm: use m8c.inc instead of ../registers.h
- sim/lang.y:run_cycles: moved printing of "HALT to core.c, in order to
properly distinguish between HALT and timeout (tests/bugs8)
- libfdr/jval.c: removed broken functions jval_iarray, jval_farray, and
jval_carray
- sim/core.c:m8c_run: split into m8c_check_interrupt, m8c_prep, and m8c_one,
and handle taking an interrupt like an instruction
- sim/: programs can now be single-stepped with "step"
- sim/lang.l:my_yyinput: don't add empty lines to the history
- sim/lang.l:my_yyinput: a completely empty line now repeats the previous
input, just like in gdb
- sim/: "run" can now be interrupted with ^C
- sim/: added "quit" command
- sim/sim.c: prog_close is now executed through "atexit"
- {as,sim}/Makefile: print "GENERATE" when making machine-generated sources,
not the actual command (unless in verbose mode)
Version 8 (1-MAR-2006)
---------
- sim/lang.l: now uses GNU readline to read from a tty
- sim/lang.l:yyerrorf: line numbers are only printed if reading from a non-tty
- all programs now support a -V option to print their version number to
standard output
- Makefile: global "make tests" now counts the total number of test case
- Makefile: global "make" no longer tries to build optional site-specific items
like "waspic"
- Common.make, {as,sim}/Makefile: flex- and bison-generated code is now
compiled without -w
- sim/m8c.c: when writing to a bit field in a register, the old value of the
register (i.e., the bits not part of the field) was not properly preserved
(tests/bugs7)
- sim/m8c.c: removed value range checks, since they got in the way of negation
too easily
- sim/registers: moved to shared/m8c-registers
- sim/reg2simhdr.pl: moved to shared/reg2hdrs.pl
- sim/Makefile: "spotless" target still tried to remove cy8c2sim, not m8csim
- added "make install" and "make uninstall" for installation in
$(INSTALL_PREFIX)/bin and $(INSTALL_PREFIX)/share/m8cutils/; default
$(INSTALL_PREFIX) is /usr
- {as,sim}/Makefile
- */Makefile: already "make clean" removes .depend, not only "make spotless"
- sim/m8c.[ch]: renamed to core.[ch]
- sim/Makefile: updated dependencies on registers.h
- sim/sim.c:find_file: segfaulted if the file could not be found (tests/bugs7)
- sim/core.c: offsets of 0x80-0xff operations were off by one (tests/call,
tests/jmp)
- Makefile: enabled SourceForge upload
- sim/example/: step-by-step usage example for simulator and DIY ICE
Version 7 (28-FEB-2006)
---------
- prog/: voltage now only needs to be known if programming or erasing the
target
- sim/lang.u: simulation script can now also write to ROM
- sim/lang.y: reg[REGISTER] can now be used as a short-cut for reg[®ISTER]
- sim/gpio.c: verified that the PRTxDMx change sequence does not cause
undesirable transitions
- shared/disasm.[ch]:m8c_bytes: array of instruction lengths
- sim/m8c.c: "pc" is now a uint16_t variable and not a pointer, simplifying all
sorts of calculations, at the price of slightly more complex accesses
- sim/m8c.c: inside the simulator, "ram" is no longer banked
- sim/m8c.c: "cycles" are now real clock cycles, not instructions
- sim/m8c.c: ADD SP,expr affected the flags
- sim/lang.y: the bit field operator can now also be applied to lvalues, but is
no longer a general operator
- sim/lang.y: value for gpio_drive was incorrectly shifted
- sim/gpio.[ch]: port bits can now be driven resistive and Hi-Z
- sim/gpio.[ch]:gpio_drive_z: removed left-over "bit" argument
- sim/reg2simhdr.pl: now allows duplicate definitions (e.g., INT_CLR2)
- sim/{gpio,int}.[ch]: added interrupt support
- sim/m8c.c: MOV_REG_TO_A didn't "break"
- as/lang.l:yyerrorf: va_start had its arguments in the wrong order
- sim/lang.l: removed unused STRING token
- sim/: no longer uses CPP and is therefore suitable for interactive use
- sim/: register and field definitions now use a new sytax omitting the "#" in
"#define"
Version 6 (23-FEB-2006)
---------
- as/: added unary >> operator that returns the number of trailing clear bits
- as/lang.l:yyerrorf: didn't initialize "ap", oops
- as/cpp.[ch]: moved to shared/
- prog/libprog.a: new home of all interactions with the programmer that are not
part of the user interface
- shared/interact.[ch]: new home for all "verbose" and progress reporting items
- cleaned up library inclusion in all Makefiles
- shared/README: moved the cpp.[ch] license, too
- sim/: added a simulator (proof of concept only and certainly full of bugs)
- waspic/: reset also if restarting through start1
- prog/drv/waspic.c: reset target when closing
- prog/drv/watsp.c: reset target and disable output when closing
Version 5 (22-FEB-2006)
---------
- m8cprog: verified that READ_REG(REG_CPU_X) indeed reads CPU register X
- "make" now prints terse message (to obtain the full command text, set V=1)
- waspic/waspic.asm: the first vector now ends in 000 instead of 111 (which was
incorrect, but didn't seem to have any effect)
- waspic/: added protective resistors to SDATA, SCLK, and XRES
- watsp/: new simple bit-banging programmer for the serial port
- m8cprog: terminal width is now determined at run-time
- m8cprog/vectors.h: moved chip IDs to chips.h
- m8cprog/chips.[ch]: moved to shared/
- das/tests/input: a reference to m8cdasm escaped the great renaming
Version 4 (20-FEB-2006)
---------
- renamed CY8C2 to M8C (package name, cy8c2prog, etc.)
- renamed m8cdasm to m8cdas
- m8cprog: added support for chips with banked Flash (CY8C24x94 and CY8C29xxx);
UNTESTED !
- shared/file.h: increased sizes to 32 kB Flash
- m8cprog: write security data after reading or comparing
- m8cprog: the INITIALIZE_3 vector must set BDG_TR, not ILO_TR
- m8cprog: as an exception, if there are 128 blocks, CHECKUP_SETUP sets POINTER
to 0 instead of 0x80
- prog/m8cprog.c: turn off progress bar if verbose > 1
- prog/ref/: tools and data for comparing the vectors against the official
published reference AN2026A and AN2026B
- m8cas: cleaned up implementation of AREA and made list of attributes optional
- m8cas: added support for overlaid areas
- m8cas: code area is now called "text" and is pre-defined as (ROM, ABS, CON).
- as/tests/{blk,blkw}: updated to use the "text" area
Version 3 (18-FEB-2006)
---------
- prog/tty.[ch]: added functions to access individual lines of the serial port
- prog/: moved drivers to subdirectory prog/drv/
- proc/Makefile: introduced central driver list
- proc/cy8c2prog.c: option -d didn't take an argument, crashing cy8c2prog
- proc/prog.c:prog_vector: was completely broken, now is less so
- m8cas: added support for the AREA directive (with limitations)
- as/tests/{blk,blkw}: updated to use AREA
- m8cas: unary operators caused a segfault
- m8cas: unary - was implemented as ~
- m8cas: hexadecimal numbers in the XXh format were not handled properly
Version 2 (17-FEB-2006)
---------
- prog/cy8c2prog.c: programmer can now also be invoked without any operation,
in which case it will only establish communication and retrieve the IDs
- prog/cy8c2prog.c: new erase device only option -e
- prog/cy8c2prog.c: new option -z to skip read-protected blocks when reading or
comparing
- prog/cy8c2prog.c: now also retrieves the silicon revision (experimental)
- prog/cy8c2prog.c: restructured the code
- proc/README: documented that programmers with hard-coded vectors aren't
supported
- Makefile: didn't stop on errors in subdirectories
- libfdr/: added red-black trees by James S. Plank
- as/: added an assembler (experimental and largely untested)
- dasm/tests/Common: regression tests now print the script name on failure
Version 1 (15-FEB-2006)
---------
- waspic: schematic uses transistor symbols with correct pin information,
removed BC337.sym and pic16LF88.sym, and updated the READMEs
- waspic: added "project", which guides the operation of gsch2pcb
- prog/Makefile: moved common settings to top-level Common.make, and added
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow
-Werror to CFLAGS
- moved prog/file.[ch] to shared/
- shared/file.[ch]: added support for reading and writing ROM files
- shared/file.c: Intel HEX file records now output with \n, not \r\n, as record
terminator
- shared/file.c: added full support for security data and cleaned up confusion
with checksum data
- shared/file.[ch]: program and security data size now has byte granularity,
and no automatic padding occurs
- cy8c2prog: files are now only padded to full blocks when writing
- cy8c2prog: added support for writing security data
- cy8c2prog: added detection of error codes returned by SSC when reading
- cy8c2prog: new option -i to write an Intel HEX file, changed the default to
"ROM"
- cy8c2prog: default isn't as silent as README claimed; added option -q to make
it so (i.e., to suppress progress bars)
- dasm/: added a disassembler
- improved the READMEs a little
- moved prog/TODO to the top level
- prog/vectors.h: some macro arguments lacked parentheses
- added CHANGES (forgot that one, oops)
Version 0 (14-FEB-2006)
---------
- Initial release