summaryrefslogtreecommitdiffstats
path: root/TODO
blob: cbd48809aba465298edd1f45826c9e44cdcb0a08 (plain)
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
icd2: assert in progress when programming with icd2 debugger

TODO programmers:
* icd1/2: optimize programming/reading: only program/read what's necessary!!
* direct: alternate method to direct-program "Vdd first" chips (needed ?)
* pickit2: protocol for firmware 2.x
* support for other bootloaders (AN851, ...)
* look into xwisp2/avrdude
* pickit1/2: speed-up by not programming mask words and by programming 4/n words when possible...
* pickit2: now supports 16F886/887
* add promate2
* direct: support dsPIC
* add option to not autoload firmware (?)
* direct: support 16F88X devices
* icd2: 12F609/615 16F610 16F677(debug) 16F88X 30F1010/2020/2023
        famid for 18J devices
* pickit2: configuration to set target voltage to different values (?)
* icd2: progress for firmware uploading
* psp: add 18F support
* psp: detection of programmer type (PSP, JuPIC, or Warp13)
* psp: for Warp13, there are some differences for 18F devices...

TODO debuggers:
* gpsim: add stopwatch feature + clock speed config
* icd2: fix 16FXXX debugging: init + reset + ...
* 18F1330-ICD ?
* icd2: how to read PORTB from 16F7X7
* device power toggle action: problem while running/debugging... (?)
* should be able to read/verify/blankcheck while debugging: restart debug: ask ?
* icd2: support more than one breakpoint for 18F
* advanced breakpoints (register, function, ...)
* add icd1 debugging
* support sdcdb (?)
* support ICD from CCS
* PIC30: no disassembly in disassembly listing

TODO interface:
* set breakpoint in disassembly listing, close, reopen: not displayed...
* escaping in string register entry
* add serial terminal
* "read all" registers is slow (gui refresh for each read)
* add PC and goto PC in breakpoint list view (?)
* add "random/set_range/..." actions to each range in hex editor
* more filters in device selector
* undo/redo + better selection in hex editor
* .o view: more complete (?)
* renaming of source files
* COFF disassembly highlighting does not properly highlight multiline comments for C

TODO toolchains:
* support CC8E
* PICC: no need to compile and assemble in two steps for C files
* PICC: test debugging (from C or ASM files)
* mix different compiler and assembler in a project... (subproject ?)
* support for MPASM/MPLINK (mpasm freezes my version of wine...)
* error/warning filter for C30/PICC/JAL/C18
* syntax highlighting for JAL: highlight assembler blocks
* better syntax highlighting for Boost Basic
* PICC Lite windows executable crashes with wine
* support dsPICC: demo windows only and not working with wine
* support C2C, C2C++, P2C: exception in wine...
* support Proton Basic compiler
* library project: other toolchains ?

TODO generators:
* fix cname generation for BSSEC/BSSIZ SSSEC/SSSIZ (none supported yet by gputils/sdcc ?)
* add missing template generators
* config generator: add/fix config names for gpasm/sdcc (18F) + picc + ...

TODO command-line:
* add "merge" commands to "piklab-hex"
* add utility to disassemble (?)

TODO misc:
* if CTRL+D in konsole: should restart it...
* check endianness: it should be alright since we are reading from hex file and outputing strings (?)
* add log settings: log file / timestamp
* allow saving hex to other formats
* shouldn't we always use the IHX32 format for devices 18 and up ???
* Vdd-frequency graphs ignore different osc/modes...
* code for UserId disassembly doesn't seem to be right...

DEVICES:
- finish checking device XML with XML Schema...
- make an automatic parser for file "gpprocessor.c" of gputils to extract coff codes.
- check list of devices against MPLAB for missing devices and discrepencies.
- config bits: check config bits from MPLAB
- vdd/freq: not sure I understand the Vdd range in 30F datasheets
- sometimes "vpp" depends on "vdd"...
- revision names...
- 16F630-ICD has lower Vdd requirements for read/write
- for 18F1230/1330 16F88X: Vdd-F graphs not available yet...
- 12F6XX-16F6XX-ICD have lower Vdd requirements for bulk erase
- checksums:
    unknown             : 16C641/C661/C84 18J 18F2XXX/4XXX
    all wrong (?)       : 16CE923/CE925 30F
    protected wrong (?) : 16CR73/CR74/CR76/CR77 16F72/F73/F74/F76/F77 16F873A/874A
                          18F1230/1330
    datasheet wrong (?) : 12F508(Off:cc=DC68)
                          16C55A (All:cc=F332) 16C56A(All:not XOR4)
                          16C712(size=3FF)
                          16F616 (All:bc=FFBE cc=CBD8)
                          18F4331(same as 18F2331)
                          18F2439/4439/6520/8520 (wrong program size)
    blank value discrepencies : 18F6525
- 16C433: config bits datasheet do not agree with progsheet (used progsheet)
- 16CR54/16C557: status ?
- 16HV540: discrepency between datasheet and progsheet for CP bits
- 18F2585/4585/2680/4680: data sheet is wrong for block description (boot block size is variable)
- 18F6X10/6X90: discrepencies between datasheet and progsheet for PM and EBTR bits

- unknown devices (from gpasm) : 18F2681/F4681/F64J15/F84J15
- 16CR57A ?
- nr: PS501 PS810 PS700
- new devices:
    33F
    24F16/32/48
    18F6628/8628/6723/8723 (compatible 18F8722)
- future devices:
    16F526
    18F23K20/24K20/25K20/26K20
    18F43K20/44K20/45K20/46K20
    24FJ256GA110

GPUTILS: 0.13.5
- 16C54A: _CP_ON doesn't yield 0x007 [fixed in trunk]
- 16C715: _CP_75 is missing [fixed in trunk]
- 16F737/767/777 16F87/88: _FCMEN_OFF doesn't yield 0xFFE [submitted]
- 16F883/884/886/887: BORV_21 doesn't yield 0xEFF
- 17C42A/C43/C44: _PMC_MODE doesn't yield 0x7FAF
- 18F1230/1330: BORV doesn't have the correct values in .inc file
- 18F258/458: BORV_25 should be BORV_20
- 18F2510: using 12F510 lkr (?)
- 18F6X10/6X90/8X10/8X90: missing PM/EBTR (if they exists on these devices ??)
- 18J: config bits commented in "inc" file

SDCC: 2.7.0
- 16CR620A/CR73/CR74/CR76/CR77: missing include
- 16F616/F747/F946: missing include
- 16F737/767/777/87/88: cf gputils
- 16F886/887: missing DEBUG define [fixed in trunk]
- 18F1320/2320/2525/4525: missing include
- 18F2221/2321/4221/4320: not supported by GPUtils 0.13.5
- 18F4455/4550: missing ENICPORT_ON
- 18F4620: missing XINST