Just4Trionic - CAN and BDM FLASH programmer for Saab cars

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 //-----------------------------------------------------------------------------