This repository was archived by the owner on Nov 4, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbugs.txt
185 lines (164 loc) · 7.96 KB
/
bugs.txt
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
turn rb12 high output on dm mini to enable 3.3v on UEXT.
make all parts support 20 scopes (rather than 10).
allow gosub to use string expression instead of a label -- gosub state$
add "eval" command? add case/switch command?
allow heartbeat and safemode* on same pin!
get rid of all code in #defines -- esp ?: and such for flash generations
get rid of all (*xxx)++ references
uniq -d long lines (if, else, while, etc.)
merge const parsing
replace all switch statements out of performance path with if-elseif
allow upper case letters in hex addresses.
turn off pcache for pic32; disable interrupts while talking to spi/i2c; see eratta
change duinomite pin names to match silkscreens (and fb32/chipKIT), change help pins, change default "pins" to remove zigflea and move safemode, change default heartbeat led
add stickos library versions that use all 512k for pic32 just like for CFV2 -- make an official part of the skeleton project!
data_image_begin is wrong for pic32 -- we have to use address after ramfunc images as the end of code!
add "upload" command to turn BASIC programs into S19/HEX...
I was hoping "ipaddress" would tell me what it got but that seems to just report "dhcp" or whatever static address was assigned.
// bugs
// ====
following does not return value to array!
> run
0 0
> list
10 dim array[2]
20 gosub set array[1]
30 print array
40 end
50 sub set x
60 let x = 1
70 endsub
end
>
//
// prior 1
// =======
// make run_var() extern and add to run.h!
// add windows/linux build to skeleton project
// "step" and "trace" should be statements, not commands!
// remove 4 pwm assignments from 5225x online help
// add "lcd init" statement...
// configure/on timer (n) should be able to take variables for (n)
// you can't copy keychar$ with "let temp$=keychar$", since there are three nul-bytes on big-endian memory in start of keychar$! (doc error!)
// # on string should still return max len -- @ should return consumed length! (or swap!)
// can we allocate more ram to pic32/5225x (ram page size)? how close are we?
// add qspi and i2c pin assignments to online help (data, clk, cs)
// add to help pins all "unchangable" pins (i2c, spi, etc.) from freescale.pdf and microchip.pdf
// add help for uno32 LED on pin 43
// disable kbd pins for fb32 nano/mini
// eliminate restrictions on "analog" mode values. "servo", too?
// add "configure qspi baud (n) mode (0-3)"
// add "configure i2c baud (n)"
// allow "library" sub in "library" to create global variables somehow. call this by convention to initialize library.
// fix cpustick.inf to pass chkinf!
// fix CFV1 to tolerate uart overruns on rx, just like pic32; CFV2 might need help, too, so you don't have to reconfigure.
// allow you to set stop bits in the "configure" statement; switch all to 1 stop bit!
// stickos should report uart framing errors and overrun errors more gracefully! on uart 1 error do gosub recover
// I should probably allow "as byte" or "as word" on pin variables, but I don't currently.
// get rid of parse2/run2/basic0 if we make stickos source public?
// fix checksum to be compatible/consistent with bootloader (pic32 and freescale)
// pins should survive upgrade; same for nodeid, ipaddress, etc.
// do we want BASIC to have control over pull-ups? thru a mode variable?
// why does jm upgrade show diff checksum (by 0x5a?) than program from cw?
// multi-pin variables (digital I/O only, using binary integer)!!!
// add packed save/load commands!!!; make flash filesystem allocate only as much space as is needed to save a current program!
// mode to disable usb device (and autorun disable to override)
// move block.c and fat32.c from pict-o-crypt to sources (include in skeleton)
// on/off/mask/unmask should move to parse2.c/run2.c
// 9s12 and others need to reset timer counter when increasing frequency output -- see "wrap"
// Ctrl-E to dump all variables while basic program is running?
// add ability to get stack trace with locals from all frames
// add a faster zigflea option for pic32/5225x!
// test i2c with sda, scl, sda and acl all tied to ground -- no hangs or crashes.
// zigbee read remote variables
// doc
// ===
// remove gpt0-3 as pwm for 5225x, etc., in online help!
// add getchar example in ug? don't use getchar$
// remove refs to keychar$ and getchar$!
// add fslbot example to user's guide?
// change VBUS to +5V in schematic
// add digital input and analog output example
// add minimum flash requirements for pic32 and 5225x to mcu details
// document "conflicting timer usage"
// MCU details says "autorun disable", but we are inconsistent in docs with use of "safemode*"
// update user's guide to indicate keychar and getchar automatically reset to 0 after they are read.
// prior 2
// =======
// fgure out a clean way for spi/i2c to steal pins
// expose erase_page and write_word to basic to manipulate other half of flash!
// allow input of negative numbers
// give vprint ability to do sign extension?
// add configurable file name for usb host mode
// consider doing servos in sw w/ lightweight isr rather than using hw timers
// add "modes" to turn off USB and QSPI and get their pins back for gpio
// saw bug changing pic32 pin from servo to freq mode on fly?
// pwm: 9s12 and cfv2 can do 4 16 bit channels!
// spi-to-sd card data logging
// how to enable different uart selection (other than lowest number) for console?
// we need a way to prevent you from upgrading the wrong firmware file!!!
// if data area of flash looks bogus on boot, we should clear it all!
// have nodeid and clusterid, and broadcast 0x4242 and clusterid as magic number
// add zigbee channel; save zigbee channel in nvparam!
// need a second catalog page for safe updates!
// handle uart errors (interrupt as well as poll)
// prior 3
// =======
// PC/Cell framework!!!
// add mst interface for basic progs and fw access, also inf file access
// add zigbee support thru xbee for ubw32?
// prompt on|off|ok
// get rid of remaining SPL_USB, SPL_IRQ4, etc.
// get rid of rtc isr remap on jm/qe
// if dhcp not found on 33, assign random ip compatible with windows?
// figure out usb "pop" on first badge run -- is that the badge issue?
// prior 4
// =======
// can we make sub/endsub block behave more like for/next, from error and listing perspective?
// allow broadcast/remote nodeid setting (with switch), like pagers
// short circuit && and || operators
// multiple (main) threads?
// "on usb [connect|disconnect]" statement for slave mode!
// ?: operator!
// add support for comments at the end of lines '? //?
// switch statement (on xxx goto...?)
// allow gosub from command line?
// sub stack trace? (with sub local vars?)
// one line "if <expression> then <statement> [else <statement>]"
// optional "let" statement
// sleeps and timers don't work with single-stepping
// core dump -- copy ram to secondary code flash on assert/exception/halt?
// v2.0
// ====
// generic programmable i2c/spi/uart/ethernet/cdc (host and device) gateway
// make console virtual uart a first class citizen!!!
// separate os from stickos; allow non 50/50 flash split
// allow basic isrs to run while waiting for uart or i2c receive data (anywhere we allow ctrl-c)
// separate os from stickos; allow non 50/50 flash split
// turn stickos into a generic programmable uart/usbcdc/ethernet/spi/i2c gateway
// get rid of basic0/basic2, parse0/parse2, run0/run2, etc. -- save lots of code! release core source???
// handle all uart rx/tx in isrs; have basic statements feed isrs
// get rid of uart pin vars for pic32! for all???
// perf
// ====
// mave var one slot towards "last in gosub scope" on usage rand()%16?
// can we skip statement execution more fully when run_condition is false?
// pcb
// ===
// battery holder
// pin offset for headers
// smt power switch and reset switch
// all diffs in PCBUNDO
// tp for pstclk
// Fill a bunch of copper to the U1 heat sink pad -- both sides would be helpful
// Break the solder mask below U1 to allow for it to better dissipate heat.
// U2 heat sinking as well?
ports
=====
stm32
avr32 EVK1104
MSP430 or Atmel XMega
lpc1758? lpc2xxx?
pic24
9s12e
51ac/9s08ac