1 /** @page changeLogs Change Logs
3 * This page contains a log of all changes made to the FreeEMS firmware since
4 * the beginning of the project, ever such a long time ago. The changes that
5 * occurred between the last version and this version are listed below. For
6 * old change logs see the @subpage oldChangeLogs page.
8 * Please place your entries at the bottom of the list in the same format as the rest.
10 * @version 0.1.0 ??????
12 * @date 23/05/10 ??? 23:58 GMT
15 * - Added awk script to auto generate JSON lists from C source files
16 * - Added serial device as parameter to dump script
17 * - Added a simple C reference implementation of the serial comms spec for parsing binary streams
18 * - Added a perl script to auto update copyright years based on git list
19 * - Added json error code:error name pair list file
20 * - Added json location code:location name pair list file
21 * - Changed format of all GPL header comments
22 * - Modularised some of the table data out to a data directory
23 * - Added flat target lambda table data
24 * - Added Bosch thermistor curve data
25 * - Added flat 80% VE table data
26 * - Improved and added various doxygen docs
27 * - Fixed spelling mistakes in comments here and there
28 * - Added simple decoder for use with the Volvo
29 * - Added checksum targets to makefile
30 * - Added phonys to makefile
31 * - Various other makefile changes and improvments
32 * - Added functional 36-1 decoder
33 * - Improved default table data for small tables
34 * - Numerous comms changes such as removal of proto/impl bit etc etc
35 * - Serial missing start and end byte hack fixes
36 * - Added ETE correction maths
37 * - Added glossary page to docs
38 * - Refactored main Speed Density math to do full overflow checking
39 * - Fixed init code order bug resulting in small tables not being inited, large tables containing garbage and more
40 * - Reworked the time stamp math in all decoders to make more sense
41 * - Added utils for single instance of overflow safe add/trim/scale
42 * - Improved efficiency of code size and speed in utils
43 * - Fixed struct data order initialisation problem
46 /** @page changeLog_0_0_19 FreeEMS 0.0.19 Doxygenated
48 * @version 0.0.19 Doxygenated
50 * @date 26/1/09 00:02 GMT
53 * - Fred 25/12/08 15:30 GMT:
54 * - Modified writeBlock to burn small blocks via buffer
55 * - Added validation to flash burn direct function
56 * - Added upper range to small table validation check
57 * - Added test packets for small chunk write/burn
58 * - Wrapped braces around protocol case blocks
59 * - Fred 26/12/08 12:26 GMT:
60 * - Added addresses for all the small table stuff
61 * - Fixed buffer address creation code by casting
62 * - Finished validation call blocks off
63 * - Added return to block lookup for when ID not found
64 * - Added more test packets for small chunk write/burn
65 * - Fred 26/12/08 21:41 GMT:
66 * - Removed stale comments from flashWrite.c
67 * - Filled out file names in comments and header defs for decode
68 * - Updated some TODOs entries etc in preparation for the weekends work
69 * - Fred 31/12/08 09:45 GMT:
70 * - Doxygenated the source code
71 * - Modularised the initial contents of the tunable config structs for reuse
72 * - Separated the content from the two copies of the tunable config structs in a shared header
73 * - Added extra header checks for EXTERN pre definition
74 * - Moved zassembly to assembly
75 * - Removed the silly z prefix from the build dir names in the Makefiles
76 * - Added .gitignore for generated .s, .o, .pp.c and output files and doxygen output files
77 * - Moved this change logs to this doxygen html format for easier releases
78 * - Added coding style document
79 * - Added doc page for files not parsed by doxy
80 * - Fred 1/1/09 00:36 GMT:
81 * - Named the next release :-)
82 * - Started converting TODOs into doxy format
83 * - Added mainPage doxy page for an intro page when entering the doxy docs
84 * - Fred 1/1/09 13:24 GMT:
85 * - Rearranged headers and comments for FixedConfigs.h and TunableConfigs.h
86 * - Fixed up random comments in various headers
87 * - Changed the way the headers are used for core global stuff
88 * - Fred 1/1/09 15:35 GMT:
89 * - Removed dangerous and unrequired EXTERN stuff from flash header
90 * - Added note on include order to code style doc
91 * - Fixed all links to gnu.org/licenses to not be wrapped in < >
92 * - Changed some TODOs to appear in todo list
93 * - Tidied line spacing of headers
94 * - Added checks for extern predef to headers
95 * - Removed non functional header checks from asm header
96 * - Updated various copyright statements to include 2009
97 * - Removed all empty headers - not needed now, shouldn't be in there!
98 * - Fred 1/1/09 18:34 GMT:
99 * - Added the three linker scripts to be processed by doxygen
100 * - Formatted global constants files a bit as a reason to push a commit
101 * - Fred 4/1/09 14:18 GMT:
102 * - Added more coding style information to the docs
103 * - Merged in Seans branch via git cherry-pick
104 * - Doxygenated the template files
105 * - Added tune switching documentation in its own file
106 * - Added grouping file to make doc navigation easier
107 * - Tweaked Doxyfile a bit to format things more nicely
108 * - Removed the gfdl.txt file as we won't be using that license
109 * - Split the GPL and Doxygen comments in the templates
110 * - Added ref to github and sanitised my diyefi admin email in the GPL comments
111 * - Finalised the Doxygen docs for now
112 * - Fred 5/1/09 18:08 GMT:
113 * - Added contributors page to docs - incomplete
114 * - Added headers group to modules/groups and populated it
115 * - Added rest of doxy page files to doxy group
116 * - Added EXTERN predef check to more headers
117 * - Formatted some old headers a bit with blank lines
118 * - Removed another empty header file
119 * - Documented many special header files
120 * - Fred 6/1/09 18:58 GMT:
121 * - Added brief descriptions to .c files
122 * - Added ISR doc group
123 * - Added comms doc group
124 * - Added and reformatted file documentation for doxygen in about half of all .c files
125 * - Fred 9/1/09 21:40 GMT:
126 * - Heavily refactored the Makefile to cleanly build many variants with different wheel decoders
127 * - Added documenation to the Makefile to describe how it works
128 * - Fred 10/1/09 22:39 GMT:
129 * - Added .PHONY declarations to the Makefile
130 * - Fred 11/1/09 21:42 GMT:
131 * - Added 4 new decoders in skeleton form for others to work from.
132 * - Added a new group for decoders in doxygen groups
133 * - Added preprocessing, compiling, assembling, linking and copying to s19s to the make file
134 * - Added file name conventions to the code style doc
135 * - Fred 15/1/09 22:26 GMT:
136 * - Added size reporting to linux makefile
137 * - Refactored init functions for paged ram copies and addresses
138 * - Split up fixed conf 1 into 5 addressable chunks
139 * - Added core vars test generator file
140 * - Added note about s19 files
141 * - More doxygen docs and titles in gpl headers
142 * - Fred 25/1/09 23:55 GMT:
143 * - More doxygen docs
144 * - Sean started work on the LT1 decoder
145 * - Split up fixed conf 2 into a bunch of parts
146 * - Added all memory to the block lookup dictionary
147 * - Updated doxyfile to 1.5.8 spec
148 * - Removed redundant flash files and code and documented it better
149 * - Implemented most features of the new makefile
150 * - Added hack to work around windows mkdir commands differences
153 /** @page changeLog_0_0_18 FreeEMS 0.0.18 JackTheRipper
155 * @version 0.0.18 JackTheRipper
157 * @date 22/12/08 23:58 GMT
160 * - Fred 12/11/08 07:04 GMT:
161 * - Added flash and ram receive functions
162 * - Added wrappers for debug and error
163 * - Modified flash error handling to be compatible with overall scheme
164 * - Renamed all counters more sensibly
165 * - Major tidy up of init.c - more to do in the future
166 * - Fred 12/11/08 19:51 GMT:
167 * - Created generic flash burning wrapper
168 * - Moved flash error handling into wrapper
169 * - Moved page ram init to functions per block of data
170 * - Moved tables to 3 pages from 2 and put functions in place to init them
171 * - Created multi sector flash burn function
172 * - Previously added table size guide
173 * - Previously added testing matrix for comms
174 * - Previously added hardware interface doc
175 * - Fred 13/11/08 08:52 GMT:
176 * - Fixed bug where config was coming from flash, not ram.
177 * - Completed paging memory exercise for now
178 * - Removed all linker warnings by shuffling code and data
179 * - Fred 14/11/08 07:45 GMT:
180 * - Split regions into regions.x out of the main linker script
181 * - Split page for small tables into chunks to cause link issues if oversize and still work if undersize
182 * - Fred 16/11/08 17:05 GMT:
183 * - Fixed hard reset functionality
184 * - Refactored the table lookup to be faster and use less space
185 * - Updated serial core docs
186 * - Added doc describing the datalog format
187 * - More comms test packets
188 * - Pin out doc update!
189 * - Fred 18/11/08 18:04 GMT:
190 * - Fixed missing text1 copy options
191 * - Changed makefile to be faster and more versatile
192 * - Migrated rodata back to its own section(s)
193 * - Moved ADC tables and core var gen to a paged flash region together
194 * - Fred 19/11/08 08:30 GMT:
195 * - Migrated data init to static from dynamic
196 * - Fixed comms dictionary lookup addresses with lookup addr init function
197 * - Fred 19/11/08 17:55 GMT:
198 * - Moved all ISR code to text1 so we know how big it is and how big the rest is
199 * - Fred 20/11/08 07:55 GMT:
200 * - Added check for packet from own address
201 * - Changed error codes to be more meaningful
202 * - Fred 20/11/08 18:37 GMT:
203 * - Added interface data map
204 * - Fred 21/11/08 20:27 GMT:
205 * - Added windows Makefile
206 * - Added size utility call
207 * - Added example datalog json
208 * - Merged lambda and ve into fuel files
209 * - Fred 22/11/08 14:27 GMT:
210 * - Split fixed config in two different pieces
211 * - Rearranged makefile
212 * - Split fixed configs into two different files
213 * - Added extra user text field and filled out to section boundary
214 * - Moved some functions back into the text areas
215 * - Added interface packet descriptions
216 * - Fixed init values
217 * - Split headers out a bit
218 * - Fixed and added some comments etc
219 * - Added win make file generator
220 * - Tweaked makefile to work with windows
221 * - Fred 25/11/08 23:37 GMT:
222 * - Added test packets to dump registers with SM
223 * - Added memory management documentation
224 * - Added example settings file
225 * - Added tuner interface overview doc
226 * - Further updated pin out doc
227 * - Fred 26/11/08 23:12 GMT:
228 * - Added Sean's flash fixes in and looped flash erase/burn to test it
229 * - More changes to the json stuff
230 * - Fixed bug with makefile that caused it to regen files without need
231 * - Fred 27/11/08 18:31 GMT:
232 * - Added custom packet definition file for tuner
233 * - Added windows makefile generation to the makefile
234 * - Optimised flash writing by moving page swapping up one level
235 * - Removed cruft from comms core
236 * - Relocated dictionary to paged flash
237 * - Fred 29/11/08 19:20 GMT:
238 * - Added axis and cell value adjustment routines for the main tables
239 * - Added axis adjustment error checking function
240 * - Rearranged error codes a bit
241 * - Added test data block for testing serial comms
242 * - Fred 30/11/08 10:19 GMT:
243 * - Removed redundant code from serial comms
244 * - Added basic datalog function and serial option
245 * - Updated readme file
246 * - Rearranged and renamed some doc files and interface descriptors
247 * - Fred 30/11/08 20:04 GMT:
248 * - Added async datalog sender
249 * - Added configurator for async logging
250 * - Added all minor parts of the dynamic config to the dictionary
251 * - Divided page f9 into data and functions
252 * - Added two d us table adjuster functions and serial routines
253 * - Fred 1/12/08 22:22 GMT:
254 * - Fixed serial bug with small hack (needs better fix)
255 * - Moved many functions to paged flash
256 * - Fixed copy paste error in address init code
257 * - Fixed - instead of + in cell setting function
258 * - Fred 7/12/08 22:41 GMT:
259 * - Added data map overview doc
260 * - Fred 11/12/08 12:31 GMT:
261 * - Added JSONSchema for one JSON file
262 * - Fred 18/12/08 18:29 GMT:
263 * - Refactored array based banking to pointer based - Awesome change
264 * - Fixed pointer to a pointer bug in datalog introduced above
265 * - Removed extra copies of core and derived vars from header
266 * - Documented new pointer scheme in header
267 * - Fred 21/12/08 02:37 GMT:
268 * - Fixed bug, flash and ram pages/addresses were swapped in a flash burn function call
269 * - Added check for dest address in ram region
270 * - Fred 21/12/08 22:46 GMT:
271 * - Hacked in datalog delay of 1 second
272 * - Hacked orange button to turn basic datalog off and on
273 * - Added comments for future changes to serial stuff
274 * - Added ifdef wrappers around unrequired init stuff
275 * - Fred 22/12/08 20:46 GMT:
276 * - Split address lookup function out of comms file
277 * - Added more comments etc
278 * - Moved old bugs to mantis and removed bugs.txt
279 * - Cleaned out HEAPS of old cruft, tidied up and commented stuff
282 /** @page changeLog_0_0_17 FreeEMS 0.0.17 SpudEchoes
284 * @version 0.0.17 SpudEchoes
286 * @date 11/11/08 12:17 GMT
289 * - Fred 8/10/08 07:40 GMT
290 * - Moved flash routine from old text1 to text
291 * - Added descriptive comment to the main table definition
292 * - Added sizeof defines to the structs file
293 * - Shrunk and renamed text1 to lookup with 3 2k tables in it
294 * - Fred 15/10/08 10:50 GMT:
295 * - Removed all old busy wait ascii serial code
296 * - Added packetising escaping checksumming receive ISR code
297 * - Added packetising escaping checksumming send ISR code
298 * - Added code to send back whatever it receives for testing purposes
299 * - Temporarily changed make file to avoid a couple of options an old version of gcc didn't have
300 * - Added document describing serial implementation
301 * - Fred 20/10/08 10:56 GMT:
302 * - Added serial specification docs to the project docs dir and renamed them
303 * - Added test packet directory
304 * - Made some fixes to the ISR handling code for serial
305 * - Added some more serial counters and masks
306 * - Fred 20/10/08 20:11 GMT:
307 * - Added core comms source and header files
308 * - Removed commented out legacy code in places
309 * - Updated tasks, bugs, tests, mindmap
310 * - Fred 21/10/08 08:00 GMT:
311 * - Refactored escape code in rx section
312 * - Added test packet for escape code generation EMS side
313 * - Fred 21/10/08 21:50 GMT:
314 * - Updated serial impl document
315 * - Reordered receive statements for better speed and accuracy
316 * - Generated individual bytes for sending
317 * - Fred 22/10/08 18:55 GMT:
318 * - Made the serial packet handler compile
319 * - Commented out the copy-only sections in makefile
320 * - Moved things out of commsISRs.h and added more things to commsCore.h
321 * - Fred 22/10/08 21:30 GMT:
322 * - Updated release procedure to include internal version changes to prevent incorrect ones recurring
323 * - Removed burnbuf as unrequired now
324 * - Bumped the versions in the constants file.
325 * - Fred 23/10/08 01:54 GMT:
326 * - Completed and tested serial checksum and escape functionality.
327 * - Fred 23/10/08 23:54 GMT:
328 * - Added substantial packet handling logic.
329 * - Fred 25/10/08 15:00 GMT:
330 * - Fixed array length mismatch
331 * - Added header decoding logic
332 * - Refactored serial headers to be more sensible and share vars
333 * - Removed instances of using "&= ~0x" from the code
334 * - Renamed various serial variables
335 * - Fred 25/10/08 21:49 GMT:
336 * - Added line count of s19 to makefile
337 * - Fred 26/10/08 00:19 GMT:
338 * - Added interface version request/response code
339 * - Fred 26/10/08 18:47 GMT:
340 * - Added firmware version request/response code
341 * - Added max packet size request/response code
342 * - Added echo wrapper packet request/response code
343 * - Added hard reset request and action code (using real vector location)
344 * - Added async error code packets
345 * - Added async debug packets
346 * - Added stringCopy utility to avoid using another library
347 * - Added call to writeAlignedBlock function
348 * - Sean 29/10/08 23:30 GMT:
349 * - Fixed flashWrite.c mistakes
350 * - Fred 31/10/08 18:00 GMT:
351 * - Fixed issue number 4 by changing linker script with AT() clause
352 * - Moved output dirs to lowercase and shorter names
353 * - Moved some functions to fixedconf flash blocks temporarily
354 * - Reclaimed 16 bytes of space with a mem.x fix
355 * - Fred 03/11/08 00:48 GMT:
356 * - Made a number of fixes to the serial comms code to be detailed in later change log
357 * - Fred 04/11/08 19:25 GMT:
358 * - Migrated memory management to paged style upto 128k of space in one flash block.
359 * - Fred 07/11/08 13:23 GMT:
360 * - Added flash block return by ID function
361 * - Fred 08/11/08 13:38 GMT:
362 * - Added soft reset function
363 * - Fred 09/11/08 02:37 GMT:
364 * - Added ram block return by ID function
365 * - Added ram to flash burn by ID function
366 * - Added comm to ram write by ID function
367 * - Added comm to flash write by ID function (and update ram)
368 * - Fred 09/11/08 12:30 GMT:
369 * - Added memory location lookup and struct
370 * - Fred 09/11/08 17:29 GMT:
371 * - Removed bigtables linear page stuff
372 * - Fred 10/11/08 08:16 GMT:
373 * - Added validation function for main tables
374 * - Added limits to table return functions
375 * - Fixed bug when address not ours dropping packet
376 * - Fred 10/11/08 23:26 GMT:
377 * - Added debug and error packets back in
378 * - Merged Seans fixes for flash in
381 /** @page changeLog_0_0_16 FreeEMS 0.0.16 FlashGordon
383 * @version 0.0.16 FlashGordon
385 * @date 05/10/08 22:20 GMT+1
388 * - Fred: Removed reference to TX0 pin S1 from portHISR()
389 * - Fred: Used fuel pump pin for portHISR() indicator
390 * - Fred: Removed flow control pin function from pin out definition
391 * - Fred: Added tachometer function to pin out definition
392 * - Fred: Moved User LED flash to RTC to free MDC ISR for Tacho use
393 * - Fred: Fixed Makefile dumps section
394 * - Fred: Added configurable tacho output
395 * - Fred: Fixed RPM calc to use correct variable scale
396 * - Fred: Fixed scheduler to always sample ADCs
397 * - Fred: Made baud configurable (default 115200)
398 * - Fred: Added more runtimes to struct and code to populate them
399 * - Fred: Added latencies struct and code to populate them
400 * - Fred: Changed broken sync code to be more simple
401 * - Fred: Refactored sleep function to allow more range
402 * - Fred: Added micro second sleep function
403 * - Fred: Moved reset variables to a function
404 * - Fred: Added flash globals temporary file
405 * - Fred: Added dwell spread sheet
406 * - Fred: Added injector dead time spread sheet
407 * - Fred: Added tables for IDT and dwell vs voltage
408 * - Fred: Added table lookup for unsigned short 2d 16 long
409 * - Fred: Added overflow check for reference PW
410 * - Fred: Changed table functions to return values directly
411 * - Fred: Removed duplicate MAT storage call
412 * - Fred: Moved flag clear for RTI to front
413 * - Fred: Reduced Ram to 6k to allow 2k of minor data and 4k window of big tables
414 * - Fred: Reduced Ram to 5k to allow 1k of flash burn buffer 2k of minor data and 4k window of big tables
415 * - Fred: Added more MAP sensor and other definitions to the globalDefines file
416 * - Fred: Modified Makefile to compile hand written assembly with C cleanly
417 * - Fred: Renamed stoichOct to stoichAFROct
418 * - Fred: Updated IAT and CHT tables to use correct bias resistor value of 2.7k
419 * - Fred: Reformatted pinout doc and added two columns for bootload and reset states
420 * - Fred: Moved ADC pins to final locations on bank 0
421 * - Fred: Merged in Seans Flash changes :
422 * - Sean: Added flash related header and source files
423 * - Sean: Added assembly to load code to stack for burning own flash
424 * - Sean: Added flash erase sector function
425 * - Sean: Added flash word write function
426 * - Sean: Added flash write aligned block function
427 * - Sean: Documented flash functionality in the code
428 * - Fred: Added output to makefile to see each operation type
429 * - Fred: Removed hash define from all constants C files
430 * - Fred: Added main table unions
431 * - Fred: Added ram regions for the purpose of aligning large blocks of data
432 * - Fred: Added include and memcpy references to bring data up into ram
433 * - Fred: Added RPAGE to header to allow paging of tables in and out of visible space
434 * - Fred: Added paged tuning blocks such that table switching almost changes a full tune
435 * - Fred: Migrated small tables into struct for paging
436 * - Fred: Split flash into 5 blocks to ensure no overflow occurs in smalltables
437 * - Fred: Created mechanism to ensure paged data is retrieved correctly by implementing basis of table switching
438 * - Fred: Moved all references to tables to ram copies
439 * - Fred: Split flash again for fixed config block.
440 * - Fred: General formatting and file name and content changes
441 * - Fred: Shifted tunable configs to structs for paging
442 * - Fred: Moved copy from flash to ram to start of init
443 * - Fred: Future comms pseudo code added
444 * - Fred: Various spelling fixes
447 /** @page changeLog_0_0_15 FreeEMS 0.0.15 Avogadro
449 * @version 0.0.15 Avogadro
451 * @date 10/7/08 17:51 GMT+1
454 * - Moved injector.c inc file into inc
455 * - Added main running variables struct
456 * - Added input handling code for all main vars
457 * - Renamed all clock counters clock instead of counter
458 * - Added counter for calcs routine
459 * - Added struct for counters
460 * - Added struct for clocks
461 * - Added struct for runtimes
462 * - Added flash .c and .h files
463 * - Added derived vars struct
464 * - Added lookup .c and .h files
465 * - Added VE tables and Advance tables
466 * - Reformated structs to use typedef statement
467 * - Added error codes define file
468 * - Added config defaults file
469 * - Split remaining settings out into structs.h file
470 * - Moved documentation about structs to structs file
471 * - Removed contents of initConfiguration()
472 * - Moved tuning tables and lookup tables and configuration to the other primary flash block.
473 * - Added table lookup routine for X by Y unsigned short main tables
474 * - Changed main table structure to be more suitable for variable sizing
475 * - Added config checker that outputs a count of misconfigurations
476 * - Added send function for string without length relying on null byte to terminate
477 * - Added send function for block of data from memory with address and length
478 * - Fixed the ignition out pins in the pin out doc
479 * - Added the hardware flow control pin to PE7 in the pin out doc
480 * - Added full length equation with divisors and scaling
481 * - Sorted out the memory management up to 48k
482 * - Setup the paged macros for data and functions
483 * - Moved some vars to globals calculated at boot time to save loop time
484 * - Moved user string to config block
485 * - Added 16x2xunsigned short table struct
486 * - Added MAF input to the pin out doc
487 * - Added MAF transfer lookup table
488 * - Added correct and physics based mathematics code and calcs
489 * - Relocated rodata into text for loading convenience
490 * - Added text2 region temporarily (page window)
491 * - Added dependency on makefile and linker stuff to make file
492 * - Added relocation of flash block lma addresses to make file
493 * - Added realistic data to the MAF lookup table
494 * - Added a couple of basic hard coded scripts for memory analysis
495 * - Added dumps of each object file
496 * - Refactored IO banking system and documented it
497 * - Changed timer extension use code to use union for performance
498 * - Split core vars generation out into own function
499 * - Split derived vars generation out into own function
500 * - Added some structure for corrections to PW
501 * - Swapped order of CRLF pair to be correct in HR log function
502 * - Rearranged main.c code for better effect
503 * - Slowed logging down to 10x per second
504 * - Increased verbosity of log
505 * - Added reset rpm to zero if non synchronously sampling ADCs
506 * - Split Lambda table out from VETables.c so it can be arranged in memory more conveniently
507 * - Split config into tunable and fixed
508 * - Moved many literals to hash defines
509 * - Fixed "out by 100" error on load indices in tables
510 * - Moved rough RPM calc to per event rather than per rev and inited cycleTime to longmax
511 * - Reincluded the broken ignition code
512 * - General tidy up of all files
515 /** @page changeLog_0_0_14 FreeEMS 0.0.14 Entropy
517 * @version 0.0.14 Entropy
519 * @date 23/6/08 15:32 GMT+1
522 * - Added FreeTherm generated transfer table for IAT
523 * - Added FreeTherm generated transfer table for CHT
524 * - Added code to obtain MAP from a min range pair
525 * - Added code to obtain EGO from a min range pair
526 * - Added code to obtain TPS from an ADC min/max/range and max set of data
527 * - Changed logging code to be more readable and compact
528 * - Changed SCI block to use a base address
529 * - Added configuration and header for the second block of ADC inputs
530 * - Added code to sample the second block
531 * - Changed ADC blocks to use base address
532 * - Added AAP variable and calculation
533 * - Added BRV variable and calculation
534 * - Changed 3 ints to 3 unsigned chars in utils.c
535 * - Factored out ADC sampling to two methods in different ways
536 * - Fixed poor header structure (again) (might have it right this time)
537 * - Removed unrequired void from init() definition.
538 * - Added ADC reading counters
539 * - Renamed ADC reading timeout counter
540 * - CamelCased all files except linker scripts
541 * - Factored out hr serial logging
542 * - Moved pwm demo to utils.c
543 * - Measured time of ADC reading functions at less than 1us each, and removed non loop implementation
544 * - Used hash define to ensure extern keyword applied appropriately
545 * - Fixed makefile dependencies to only recompile sources that are changed
546 * - Fix makefile paths for execution from explicit to user based
547 * - Changed makefile to chain execution such that each stage is done only once
548 * - Added output dir to keep clutter down
549 * - Added backup of .s19 to makefile
550 * - Added extern hash define structure to all headers
551 * - Split oversized freeems.h down to managable chunks
552 * - Moved s19 storage to own directory
553 * - Introduced dependency on all headers for all source files (previously rebuilding ALL files EVERY time)
556 /** @page changeLog_0_0_13 FreeEMS 0.0.13 GooGooGaGa
558 * @version 0.0.13 GooGooGaGa
560 * @date 12/6/08 09:32 GMT+1
563 * - Added more comments
564 * - Added basic logging of interesting vars using serial
565 * - Added serial send unsigned char,short,long
566 * - Added itoa() functions for char,short,long
567 * - Added serial send string
568 * - Added header section for SCI0
569 * - Started adding serial setup stuff
570 * - Fixed baud config const
571 * - Added comments about structure to scheduler
572 * - Fixed issue with loops in ign sched
573 * - Remove unused bit bang demo function
574 * - Add trial send call to main loop
575 * - Added duplicate SCI0 section to header with base to use later
576 * - Added interface, version, and user strings and definitions
579 /** @page changeLog_0_0_12 FreeEMS 0.0.12 Bastard
581 * @version 0.0.12 Bastard
583 * @date 4/5/08 08:04 GMT+1
586 * - Fixed bug 5 : forgot to add code run time to test for injector hard on behaviour!
587 * - Added tooth counters for displaying tooth timing patterns in conjunction with last tooth time stamps at low RPM
588 * - Added configurable tooth polarity to rpm/engine position inputs
589 * - Fixed a mistake in the code that allowed a ~0x10 to occur (wasn't causing a problem in this instance)
590 * - Added PIT based queued ignition functionality which kinda sorta works
593 /** @page changeLog_0_0_11 FreeEMS 0.0.11 Cookin'
595 * @version 0.0.11 Cookin'
597 * @date 27/3/08 17:58 GMT
600 * - Added freemind mind map of FreeEMS code layout/structure
601 * - Removed legacy code snippets.c
602 * - Found and fixed bug where the period time was being used before it was valid
603 * - Found and fixed a bug where injector timing was not functioning correctly
604 * - Found and fixed a bug whereby overlapping injection working correctly relied on an accurate period of a future cycle
605 * - Added more realistic sync loss in several places
606 * - Changed some variable names etc
609 /** @page changeLog_0_0_10 FreeEMS 0.0.10 Squashed
611 * @version 0.0.10 Squashed
613 * @date 23/3/08 19:51 GMT
616 * - Fixed bug 1 : array index out of bounds corruption in scheduler.
617 * - Added code to limit retard/advance of fueling, untested, may not be working correctly.
618 * - Added modulus down counter interrupt to flash "user led" to indicate board is functioning.
619 * - Fixed banked in and out calcs system
622 /** @page changeLog_0_0_9 FreeEMS 0.0.9 Exponent
624 * @version 0.0.9 Exponent
626 * @date 21/3/08 23:48 GMT
629 * - Refined injector control further
630 * - Implemented RTC in RTI for 1/8 milli, milli, tenths of, seconds, minutes each with 65535 max
631 * - Removed 6x duplication in injection_isrs.c by splitting to injector_isr.c and using defines and imports.
632 * - Added support for individual fuel pulse widths
633 * - Added latency adjustments and recording to minimum pulse width
634 * - Added code run time recording for each channel
635 * - Updated docs for injection algorithm
636 * - Added LVI interrupt logging to record low voltage conditions.
637 * - Added ADC sampling and flagging code
638 * - Heavily revised all fuel code to use arrays instead of defines.
639 * - Removed 6x duplication in the scheduler code
640 * - Tidied up MANY comments and code blocks a LOT
643 /** @page changeLog_0_0_8 FreeEMS 0.0.8 Glen
645 * @version 0.0.8 Glen
647 * @date 9/3/08 02:25 GMT
650 * - Added code and constants to watch pulsewidth vs. min and max and act appropriately
651 * - Split constants out to separate files
652 * - Managed to make overlapping injection work with "Plan B"
653 * - Recording time between odd second triggers in 32 bits using timer overflow technique
656 /** @page changeLog_0_0_7 FreeEMS 0.0.7
660 * @date 5/3/08 16:35 GMT
663 * - Moved pins for ignition around
664 * - Changed obsolete code in main.c with idea inspired by Alex
665 * - Tidied and removed some TODOs
666 * - Added port A and B access together for ignition output (registers are conveniently next to each other for word access)
667 * - Moved PWM experimentation to a function and init.c
668 * - Shifted all macros for main injectors to freeems.h for use in (at least) two source files
669 * - Rearranged and changed all global variables
670 * - Added new status and settings bitwise variables
671 * - Implemented very basic NipponDenso decoder that I would not trust to do much at all.
674 /** @page changeLog_0_0_6 FreeEMS 0.0.6
678 * @date 3/3/08 00:42 GMT
681 * - Setup Timer interrupts and mimicked the JimStim input signal on port J 6,7
682 * - Fixed init bug (hadn't done it at all yet) that only sampled ADC 0 - 3
683 * - Added reset of port B so it can be used for numerical display of debug info
684 * - Added wheel analysis document
685 * - Made MakeFile dump pre-processed C
686 * - Fixed up all header structure
687 * - Split interrupt vector table out of main
688 * - Added timer overflow handler and extension variable
689 * - Moved all injector code to Timer ISR's
690 * - Attempted some basic math in the main RPM input ISR and failed
693 /** @page changeLog_0_0_5 FreeEMS 0.0.5
697 * @date 26/2/08 12:58 GMT
700 * - Added RTI code to cycle the "user led" at 1Hz (Many thanks to Karsten for pointing out my mistake)
701 * - Added port H input interrupt code with basic debounce and variables to control what is switched and when
702 * - Fixed a small bug in the logic for cylinder count etc
703 * - Rearranged significant portions of the code
704 * - Added these release notes
707 /** @page changeLog_0_0_4 FreeEMS 0.0.4
711 * @date 24/2/08 18:02 GMT
714 * - Added dual ADC input to speed controller
715 * - Added variables for configuration of cylinder count etc etc
716 * - Added one pulse per event tacho style pulse
717 * - Added PWM code that cycles its period and duty semi randomly
720 /** @page changeLog_0_0_3 FreeEMS 0.0.3
724 * @date 23/2/08 14:43 GMT
727 * - Added strobing port P channels as well as Port T channels (0.0.2plus)
728 * - Added strobing of pairs of port A and B channels (0.0.2++)
729 * - Added broken logic to strobe more LED's in 5 different ways based on some variables
732 /** @page changeLog_0_0_2 FreeEMS 0.0.2
736 * @date 19/2/08 02:21 GMT
739 * - Added ADC input for controlling sleep period
742 /** @page changeLog_0_0_1 FreeEMS 0.0.1
746 * @date 18/2/08 15:55 GMT
751 * - User LED toggled once per main loop iteration
752 * - 6 primary fuel outputs strobed through in a sequential fashion
755 /** @page oldChangeLogs Old Change Logs
757 * This page contains links to all the old change logs from every version.
760 * - @subpage changeLogs_0_0_X
761 * - @subpage changeLogs_0_1_X
764 /** @page changeLogs_0_0_X Change Logs - 0.0.X Versions
766 * - @subpage changeLog_0_0_1
767 * - @subpage changeLog_0_0_2
768 * - @subpage changeLog_0_0_3
769 * - @subpage changeLog_0_0_4
770 * - @subpage changeLog_0_0_5
771 * - @subpage changeLog_0_0_6
772 * - @subpage changeLog_0_0_7
773 * - @subpage changeLog_0_0_8
774 * - @subpage changeLog_0_0_9
775 * - @subpage changeLog_0_0_10
776 * - @subpage changeLog_0_0_11
777 * - @subpage changeLog_0_0_12
778 * - @subpage changeLog_0_0_13
779 * - @subpage changeLog_0_0_14
780 * - @subpage changeLog_0_0_15
781 * - @subpage changeLog_0_0_16
782 * - @subpage changeLog_0_0_17
783 * - @subpage changeLog_0_0_18
784 * - @subpage changeLog_0_0_19
787 /** @page changeLogs_0_1_X Change Logs - 0.1.X Versions
789 * It is wishful thinking putting this here at this stage, but never the less, here it is :-)
791 * Hopefully we can put it to good use fairly soon!
794 /** @file changeLogs.h
795 * @ingroup doxygenDocFiles
796 * @brief Doxygen Change Logs page definition