Sophie Dexter
/
Just4Trionic
Just4Trionic - CAN and BDM FLASH programmer for Saab cars
common.h@3:92dae9083c83, 2011-06-07 (annotated)
- Committer:
- Just4pLeisure
- Date:
- Tue Jun 07 12:23:28 2011 +0000
- Revision:
- 3:92dae9083c83
- Parent:
- 2:bf3a2b29259a
- Child:
- 4:682d96ff6d79
Basic T7 CAN DUMP and FLASH for P-BUS connection only
Requires MyBooty V2.x for T5 CAN FLASHing at 1 Mbps
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Just4pLeisure | 1:d5452e398b76 | 1 | /******************************************************************************* |
Just4pLeisure | 1:d5452e398b76 | 2 | |
Just4pLeisure | 1:d5452e398b76 | 3 | common.h - information and definitions needed by parts of Just4Trionic |
Just4pLeisure | 1:d5452e398b76 | 4 | (c) by 2010 Sophie Dexter |
Just4pLeisure | 1:d5452e398b76 | 5 | portions (c) 2009, 2010 by Janis Silins (johnc) |
Just4pLeisure | 1:d5452e398b76 | 6 | |
Just4pLeisure | 1:d5452e398b76 | 7 | ******************************************************************************** |
Just4pLeisure | 1:d5452e398b76 | 8 | |
Just4pLeisure | 1:d5452e398b76 | 9 | WARNING: Use at your own risk, sadly this software comes with no guarantees. |
Just4pLeisure | 1:d5452e398b76 | 10 | This software is provided 'free' and in good faith, but the author does not |
Just4pLeisure | 1:d5452e398b76 | 11 | accept liability for any damage arising from its use. |
Just4pLeisure | 1:d5452e398b76 | 12 | |
Just4pLeisure | 1:d5452e398b76 | 13 | *******************************************************************************/ |
Just4pLeisure | 1:d5452e398b76 | 14 | |
Just4pLeisure | 1:d5452e398b76 | 15 | #ifndef __COMMON_H__ |
Just4pLeisure | 1:d5452e398b76 | 16 | #define __COMMON_H__ |
Just4pLeisure | 1:d5452e398b76 | 17 | |
Just4pLeisure | 1:d5452e398b76 | 18 | //#include <stdint.h> |
Just4pLeisure | 1:d5452e398b76 | 19 | //#include <stdbool.h> |
Just4pLeisure | 1:d5452e398b76 | 20 | |
Just4pLeisure | 1:d5452e398b76 | 21 | #include "mbed.h" |
Just4pLeisure | 1:d5452e398b76 | 22 | |
Just4pLeisure | 1:d5452e398b76 | 23 | #include "sizedefs.h" |
Just4pLeisure | 1:d5452e398b76 | 24 | #include "strings.h" |
Just4pLeisure | 1:d5452e398b76 | 25 | #include "interfaces.h" |
Just4pLeisure | 1:d5452e398b76 | 26 | |
Just4pLeisure | 1:d5452e398b76 | 27 | // build configuration |
Just4pLeisure | 1:d5452e398b76 | 28 | //#define IGNORE_VCC_PIN ///< uncomment to ignore the VCC pin |
Just4pLeisure | 1:d5452e398b76 | 29 | |
Just4pLeisure | 1:d5452e398b76 | 30 | // constants |
Just4pLeisure | 1:d5452e398b76 | 31 | #define FW_VERSION_MAJOR 0x1 ///< firmware version |
Just4pLeisure | 2:bf3a2b29259a | 32 | #define FW_VERSION_MINOR 0x2 |
Just4pLeisure | 1:d5452e398b76 | 33 | |
Just4pLeisure | 1:d5452e398b76 | 34 | #define CR 0x0D |
Just4pLeisure | 1:d5452e398b76 | 35 | #define NL 0x0A |
Just4pLeisure | 1:d5452e398b76 | 36 | #define BELL 0x07 |
Just4pLeisure | 1:d5452e398b76 | 37 | |
Just4pLeisure | 1:d5452e398b76 | 38 | #define TRUE 1 |
Just4pLeisure | 1:d5452e398b76 | 39 | #define FALSE 0 |
Just4pLeisure | 1:d5452e398b76 | 40 | |
Just4pLeisure | 1:d5452e398b76 | 41 | |
Just4pLeisure | 1:d5452e398b76 | 42 | // bit macros |
Just4pLeisure | 1:d5452e398b76 | 43 | #define SETBIT(x,y) (x |= (y)) ///< set bit y in byte x |
Just4pLeisure | 1:d5452e398b76 | 44 | #define CLEARBIT(x,y) (x &= (~(y))) ///< clear bit y in byte x |
Just4pLeisure | 1:d5452e398b76 | 45 | #define CHECKBIT(x,y) (((x) & (y)) == (y)) ///< check bit y in byte x |
Just4pLeisure | 1:d5452e398b76 | 46 | |
Just4pLeisure | 1:d5452e398b76 | 47 | // command return flags and character constants |
Just4pLeisure | 1:d5452e398b76 | 48 | #define TERM_OK 13 ///< command terminator or success flag |
Just4pLeisure | 1:d5452e398b76 | 49 | #define TERM_ERR 7 ///< error flag |
Just4pLeisure | 1:d5452e398b76 | 50 | #define TERM_BREAK 0x1b ///< command break flag |
Just4pLeisure | 1:d5452e398b76 | 51 | |
Just4pLeisure | 1:d5452e398b76 | 52 | #define ERR_COUNT 255 ///< maximum error cycles |
Just4pLeisure | 1:d5452e398b76 | 53 | |
Just4pLeisure | 1:d5452e398b76 | 54 | #define FILE_BUF_LENGTH 0x1000 ///< file buffer size |
Just4pLeisure | 1:d5452e398b76 | 55 | static char file_buffer[FILE_BUF_LENGTH]; ///< file buffer |
Just4pLeisure | 1:d5452e398b76 | 56 | |
Just4pLeisure | 1:d5452e398b76 | 57 | // FLASH chip manufacturer id values |
Just4pLeisure | 1:d5452e398b76 | 58 | #define AMD 0x01 |
Just4pLeisure | 1:d5452e398b76 | 59 | #define CSI 0x31 |
Just4pLeisure | 1:d5452e398b76 | 60 | #define INTEL 0x89 |
Just4pLeisure | 1:d5452e398b76 | 61 | |
Just4pLeisure | 1:d5452e398b76 | 62 | // FLASH chip type values |
Just4pLeisure | 1:d5452e398b76 | 63 | #define INTEL28F512 0xB8 |
Just4pLeisure | 1:d5452e398b76 | 64 | #define AMD28F512 0x25 |
Just4pLeisure | 1:d5452e398b76 | 65 | #define INTEL28F010 0xB4 |
Just4pLeisure | 1:d5452e398b76 | 66 | #define AMD28F010 0xA7 |
Just4pLeisure | 1:d5452e398b76 | 67 | #define AMD29F010 0x20 |
Just4pLeisure | 1:d5452e398b76 | 68 | #define AMD29F400T 0x23 |
Just4pLeisure | 1:d5452e398b76 | 69 | #define AMD29F400B 0xAB |
Just4pLeisure | 1:d5452e398b76 | 70 | //#define 29F400T 0x2223 |
Just4pLeisure | 1:d5452e398b76 | 71 | //#define 29F400B 0x22AB |
Just4pLeisure | 1:d5452e398b76 | 72 | |
Just4pLeisure | 1:d5452e398b76 | 73 | // TRIONIC ECU Start addresses |
Just4pLeisure | 1:d5452e398b76 | 74 | #define T52FLASHSTART 0x60000 |
Just4pLeisure | 1:d5452e398b76 | 75 | #define T55FLASHSTART 0x40000 |
Just4pLeisure | 1:d5452e398b76 | 76 | #define T7FLASHSTART 0x00000 |
Just4pLeisure | 1:d5452e398b76 | 77 | |
Just4pLeisure | 1:d5452e398b76 | 78 | // TRIONIC ECU FLASH sizes |
Just4pLeisure | 1:d5452e398b76 | 79 | #define T52FLASHSIZE 0x20000 |
Just4pLeisure | 1:d5452e398b76 | 80 | #define T55FLASHSIZE 0x40000 |
Just4pLeisure | 1:d5452e398b76 | 81 | #define T7FLASHSIZE 0x80000 |
Just4pLeisure | 1:d5452e398b76 | 82 | |
Just4pLeisure | 1:d5452e398b76 | 83 | // TRIONIC ECU Last address |
Just4pLeisure | 1:d5452e398b76 | 84 | #define TRIONICLASTADDR 0x7FFFF |
Just4pLeisure | 1:d5452e398b76 | 85 | |
Just4pLeisure | 1:d5452e398b76 | 86 | // TRIONIC ECU RAM sizes |
Just4pLeisure | 1:d5452e398b76 | 87 | #define T5RAMSIZE 0x8000 |
Just4pLeisure | 1:d5452e398b76 | 88 | #define T7RAMSIZE 0x8000 |
Just4pLeisure | 1:d5452e398b76 | 89 | |
Just4pLeisure | 1:d5452e398b76 | 90 | // Initial Stack pointer values used by Trionic (1st 4 bytes of BIN file) |
Just4pLeisure | 1:d5452e398b76 | 91 | #define T5POINTER 0xFFFFF7FC |
Just4pLeisure | 1:d5452e398b76 | 92 | #define T7POINTER 0xFFFFEFFC |
Just4pLeisure | 1:d5452e398b76 | 93 | |
Just4pLeisure | 1:d5452e398b76 | 94 | // public functions |
Just4pLeisure | 1:d5452e398b76 | 95 | void led_on(uint8_t led); |
Just4pLeisure | 1:d5452e398b76 | 96 | bool ascii2int(uint32_t* val, const char* str, uint8_t length); |
Just4pLeisure | 1:d5452e398b76 | 97 | |
Just4pLeisure | 1:d5452e398b76 | 98 | #endif // __COMMON_H__ |
Just4pLeisure | 1:d5452e398b76 | 99 | |
Just4pLeisure | 1:d5452e398b76 | 100 | //----------------------------------------------------------------------------- |
Just4pLeisure | 1:d5452e398b76 | 101 | // EOF |
Just4pLeisure | 1:d5452e398b76 | 102 | //----------------------------------------------------------------------------- |