From 8040e43d3a5ab2379829d9742aabd846cdb98d72 Mon Sep 17 00:00:00 2001 From: Allen Hill Date: Sat, 18 Jul 2015 21:11:49 -0700 Subject: [PATCH] Initial commit. --- avclandrv.c | 886 ++++++++++++++++++++++++++++++++++++++ avclandrv.h | 137 ++++++ com232.c | 135 ++++++ com232.h | 54 +++ const.c | 37 ++ const.h | 78 ++++ default/Makefile | 86 ++++ default/avclandrv.o | Bin 0 -> 37028 bytes default/com232.o | Bin 0 -> 8292 bytes default/const.o | Bin 0 -> 2072 bytes default/delay2.o | Bin 0 -> 3824 bytes default/dep/avclandrv.o.d | 44 ++ default/dep/com232.o.d | 38 ++ default/dep/const.o.d | 3 + default/dep/delay2.o.d | 31 ++ default/dep/sniffer.o.d | 42 ++ default/sniffer.elf | Bin 0 -> 34363 bytes default/sniffer.hex | 330 ++++++++++++++ default/sniffer.o | Bin 0 -> 13092 bytes delay2.c | 72 ++++ delay2.h | 66 +++ sniffer.aps | 1 + sniffer.aws | 1 + sniffer.c | 293 +++++++++++++ timer.h | 74 ++++ 25 files changed, 2408 insertions(+) create mode 100644 avclandrv.c create mode 100644 avclandrv.h create mode 100644 com232.c create mode 100644 com232.h create mode 100644 const.c create mode 100644 const.h create mode 100644 default/Makefile create mode 100644 default/avclandrv.o create mode 100644 default/com232.o create mode 100644 default/const.o create mode 100644 default/delay2.o create mode 100644 default/dep/avclandrv.o.d create mode 100644 default/dep/com232.o.d create mode 100644 default/dep/const.o.d create mode 100644 default/dep/delay2.o.d create mode 100644 default/dep/sniffer.o.d create mode 100644 default/sniffer.elf create mode 100644 default/sniffer.hex create mode 100644 default/sniffer.o create mode 100644 delay2.c create mode 100644 delay2.h create mode 100644 sniffer.aps create mode 100644 sniffer.aws create mode 100644 sniffer.c create mode 100644 timer.h diff --git a/avclandrv.c b/avclandrv.c new file mode 100644 index 0000000..a73c076 --- /dev/null +++ b/avclandrv.c @@ -0,0 +1,886 @@ +/* + Copyright (C) 2006 Marcin Slonicki . + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + ----------------------------------------------------------------------- + this file is a part of the TOYOTA Corolla MP3 Player Project + ----------------------------------------------------------------------- + http://www.softservice.com.pl/corolla/avc + + May 28 / 2009 - version 2 + +*/ + +#include +#include +#include +#include "timer.h" +#include "delay2.h" +#include "avclandrv.h" +#include "com232.h" +#include "const.h" + + +//------------------------------------------------------------------------------ + +#define AVC_OUT_EN() sbi(PORTD, 6); sbi(DDRD, 6); sbi(DDRD, 7); sbi(ACSR, ACD); +#define AVC_OUT_DIS() cbi(PORTD, 6); cbi(DDRD, 6); cbi(DDRD, 7); cbi(ACSR, ACD); +#define AVC_SET_1() sbi(PORTD, 6); +#define AVC_SET_0() cbi(PORTD, 6); + + +u08 CD_ID_1; +u08 CD_ID_2; + +u08 HU_ID_1; +u08 HU_ID_2; + +u08 parity_bit; + +u08 repeatMode; +u08 randomMode; + +u08 playMode; + +u08 cd_Disc; +u08 cd_Track; +u08 cd_Time_Min; +u08 cd_Time_Sec; + +u08 answerReq; + +// we need check answer (to avclan check) timeout +// when is more then 1 min, FORCE answer. +u08 check_timeout; + +#define SW_ID 0x12 + +// commands +const u08 stat1[] = { 0x4, 0x00, 0x00, 0x01, 0x0A }; +const u08 stat2[] = { 0x4, 0x00, 0x00, 0x01, 0x08 }; +const u08 stat3[] = { 0x4, 0x00, 0x00, 0x01, 0x0D }; +const u08 stat4[] = { 0x4, 0x00, 0x00, 0x01, 0x0C }; + +// broadcast +const u08 lan_stat1[] = { 0x3, 0x00, 0x01, 0x0A }; +const u08 lan_reg[] = { 0x3, SW_ID, 0x01, 0x00 }; +const u08 lan_init[] = { 0x3, SW_ID, 0x01, 0x01 }; +const u08 lan_check[] = { 0x3, SW_ID, 0x01, 0x20 }; +const u08 lan_playit[] = { 0x4, SW_ID, 0x01, 0x45, 0x63 }; + + + +const u08 play_req1[] = { 0x4, 0x00, 0x25, 0x63, 0x80 }; + +#ifdef __AVENSIS__ + const u08 play_req2[] = { 0x6, 0x00, SW_ID, 0x63, 0x42 }; +#else + const u08 play_req2[] = { 0x6, 0x00, SW_ID, 0x63, 0x42, 0x01, 0x00 }; +#endif + +const u08 play_req3[] = { 0x6, 0x00, SW_ID, 0x63, 0x42, 0x41, 0x00 }; +const u08 stop_req[] = { 0x5, 0x00, SW_ID, 0x63, 0x43, 0x01 }; +const u08 stop_req2[] = { 0x5, 0x00, SW_ID, 0x63, 0x43, 0x41 }; + + +// answers +const u08 CMD_REGISTER[] = {0x1, 0x05, 0x00, 0x01, SW_ID, 0x10, 0x63 }; +const u08 CMD_STATUS1[] = {0x1, 0x04, 0x00, 0x01, 0x00, 0x1A }; +const u08 CMD_STATUS2[] = {0x1, 0x04, 0x00, 0x01, 0x00, 0x18 }; +const u08 CMD_STATUS3[] = {0x1, 0x04, 0x00, 0x01, 0x00, 0x1D }; +const u08 CMD_STATUS4[] = {0x1, 0x05, 0x00, 0x01, 0x00, 0x1C, 0x00 }; +u08 CMD_CHECK[] = {0x1, 0x06, 0x00, 0x01, SW_ID, 0x30, 0x00, 0x00 }; + +const u08 CMD_STATUS5[] = {0x1, 0x05, 0x00, 0x5C, 0x12, 0x53, 0x02 }; +const u08 CMD_STATUS5A[] = {0x0, 0x05, 0x5C, 0x31, 0xF1, 0x00, 0x00 }; + +const u08 CMD_STATUS6[] = {0x1, 0x06, 0x00, 0x5C, 0x32, 0xF0, 0x02, 0x00 }; + + +const u08 CMD_PLAY_OK1[] = {0x1, 0x05, 0x00, 0x63, SW_ID, 0x50, 0x01 }; +const u08 CMD_PLAY_OK2[] = {0x1, 0x05, 0x00, 0x63, SW_ID, 0x52, 0x01 }; +const u08 CMD_PLAY_OK3[] = {0x0, 0x0B, 0x63, 0x31, 0xF1, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x00, 0x80 }; +u08 CMD_PLAY_OK4[] = {0x0, 0x0B, 0x63, 0x31, 0xF1, 0x01, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 }; + +const u08 CMD_STOP1[] = {0x1, 0x05, 0x00, 0x63, SW_ID, 0x53, 0x01 }; +u08 CMD_STOP2[] = {0x0, 0x0B, 0x63, 0x31, 0xF1, 0x00, 0x30, 0x00, 0x00,0x00, 0x00, 0x00, 0x80 }; + +const u08 CMD_BEEP[] = {0x1, 0x05, 0x00, 0x63, 0x29, 0x60, 0x02 }; + +//------------------------------------------------------------------------------ + + + +//------------------------------------------------------------------------------ +void AVC_HoldLine() +{ + STOPEvent; + + // wait for free line + u08 T=0; + u08 line_busy = 1; + + timer0_source(CK64); + timer0_start(); + do { + while (INPUT_IS_CLEAR) { + T = TCNT0; + if (T >= 25) break; + } + if (T > 24) line_busy=0; + } while (line_busy); + + // switch to out mode + AVC_OUT_EN(); + AVC_SET_1(); + + STARTEvent; +} +//------------------------------------------------------------------------------ +void AVC_ReleaseLine() +{ + AVC_SET_0(); + AVC_OUT_DIS(); +} +//------------------------------------------------------------------------------ + + + +//------------------------------------------------------------------------------ +void AVCLan_Init() +{ + // AVCLan TX+/TX- : internal comparator PINB2, PINB3 + + + // OUTPUT ( set as input for comparator ) + cbi(PORTD, 6); + cbi(DDRD, 6); + + // INPUT + cbi(PORTD, 7); + cbi(DDRD, 7); + + // Analog comparator + + cbi(ADCSRB, ACME); // Analog Comparator Multiplexer Enable - NO +/* + cbi(ACSR, ACBG); // Analog Comparator Bandgap Select + // ACI: Analog Comparator Interrupt Flag + + cbi(ACSR, ACIE); // Analog Comparator Interrupt Enable - NO + cbi(ACSR, ACIC); // Analog Comparator Input Capture Enable - NO +*/ + cbi(ACSR, ACIS1); // Analog Comparator Interrupt Mode Select + cbi(ACSR, ACIS0); // Comparator Interrupt on Output Toggle + + cbi(ACSR, ACD); // Analog Comparator Disbale - NO + + + message_len = 0; + answerReq = cmNull; + check_timeout = 0; + + cd_Disc = 1; + cd_Track = 1; + cd_Time_Min = 0; + cd_Time_Sec = 0; + repeatMode = 0; + randomMode = 0; + playMode = 0; + CD_Mode = stStop; + +} +//------------------------------------------------------------------------------ +u08 AVCLan_Read_Byte(u08 length) +{ + u08 byte = 0; + u08 wT; + + while (1) { + while (INPUT_IS_CLEAR); + timer0_start(); + while (INPUT_IS_SET); + wT = TCNT0; + if (wT<8) { + byte++; + parity_bit++; + } + length--; + if (!length) return byte; + byte = byte << 1; + } +} +//------------------------------------------------------------------------------ + +u08 AVCLan_Send_StartBit() +{ + AVC_SET_1(); + delay1(166); + + AVC_SET_0(); + delay1(30); + + return 1; +} +//------------------------------------------------------------------------------ +void AVCLan_Send_Bit1() +{ + AVC_SET_1(); + delay1(20); + + AVC_SET_0(); + delay1(16); // 12-21 +} +//------------------------------------------------------------------------------ +void AVCLan_Send_Bit0() +{ + AVC_SET_1(); + delay1(32); // 28-37 + + AVC_SET_0(); + delay1(4); // 00-09 +} +//------------------------------------------------------------------------------ +u08 AVCLan_Read_ACK() +{ + u08 time = 0; + + AVC_SET_1(); + delay1(19); + + AVC_SET_0(); + delay1(1); + + + AVC_OUT_DIS(); // switch to read mode + timer0_source(CK64); + timer0_start(); + while(1) { + time = TCNT0; + if (INPUT_IS_SET && (time > 1)) break; + if (time > 20) return 1; + } + + while(INPUT_IS_SET); + AVC_OUT_EN();// back to write mode + return 0; + +} +//------------------------------------------------------------------------------ +u08 AVCLan_Send_ACK() +{ + timer0_source(CK64); //update every 1us + timer0_start(); + while (INPUT_IS_CLEAR) { + if (TCNT0 >= 25) return 0; // max wait time + } + + AVC_OUT_EN(); + + AVC_SET_1(); + delay1(32); //28-37 + + AVC_SET_0(); + delay1(4); //00-09 + + AVC_OUT_DIS(); + + return 1; +} +//------------------------------------------------------------------------------ +u08 AVCLan_Send_Byte(u08 byte, u08 len) +{ + u08 b; + if (len==8) { + b = byte; + } else { + b = byte << (8-len); + } + + while (1) { + if ( (b & 128)!=0 ) { + AVCLan_Send_Bit1(); + parity_bit++; + } else { + AVCLan_Send_Bit0(); + } + len--; + if (!len) { + //if (INPUT_IS_SET) RS232_Print("SBER\n"); // Send Bit ERror + return 1; + } + b = b << 1; + } + +} +//------------------------------------------------------------------------------ +u08 AVCLan_Send_ParityBit() +{ + if ( (parity_bit & 1)!=0 ) { + AVCLan_Send_Bit1(); + //parity_bit++; + } else { + AVCLan_Send_Bit0(); + } + parity_bit=0; + return 1; +} +//------------------------------------------------------------------------------ +u08 CheckCmd(u08 *cmd) +{ + u08 i; + u08 *c; + u08 l; + + c = cmd; + l = *c++; + + for (i=0; i254) { + STARTEvent; + RS232_Print("LAN>T1\n"); + return 0; + } + } + + + if (T<10) { // !!!!!!! 20 !!!!!!!!!!! + STARTEvent; + RS232_Print("LAN>T2\n"); + return 0; + } + + + + broadcast = AVCLan_Read_Byte(1); + + parity_bit = 0; + master1 = AVCLan_Read_Byte(4); + master2 = AVCLan_Read_Byte(8); + if ((parity_bit&1)!=AVCLan_Read_Byte(1)) { + STARTEvent; + return 0; + } + + parity_bit = 0; + slave1 = AVCLan_Read_Byte(4); + slave2 = AVCLan_Read_Byte(8); + if ((parity_bit&1)!=AVCLan_Read_Byte(1)) { + STARTEvent; + return 0; + } + // is this command for me ? + if ((slave1==CD_ID_1)&&(slave2==CD_ID_2)) { + for_me=1; + } + + if (for_me) AVCLan_Send_ACK(); + else AVCLan_Read_Byte(1); + + parity_bit = 0; + AVCLan_Read_Byte(4); // control - always 0xF + if ((parity_bit&1)!=AVCLan_Read_Byte(1)) { + STARTEvent; + return 0; + } + if (for_me) AVCLan_Send_ACK(); + else AVCLan_Read_Byte(1); + + parity_bit = 0; + message_len = AVCLan_Read_Byte(8); + if ((parity_bit&1)!=AVCLan_Read_Byte(1)) { + STARTEvent; + return 0; + } + if (for_me) AVCLan_Send_ACK(); + else AVCLan_Read_Byte(1); + + if (message_len > MAXMSGLEN) { +// RS232_Print("LAN> Command error"); + STARTEvent; + return 0; + } + + for (i=0; i= 25) break; + } + if (T > 24) line_busy=0; + } while (line_busy); + + + // switch to output mode + AVC_OUT_EN(); + + AVCLan_Send_StartBit(); + AVCLan_Send_Byte(0x1, 1); // regular communication + + + parity_bit = 0; + AVCLan_Send_Byte(CD_ID_1, 4); // CD Changer ID as master + AVCLan_Send_Byte(CD_ID_2, 8); + AVCLan_Send_ParityBit(); + + AVCLan_Send_Byte(HU_ID_1, 4); // HeadUnit ID as slave + AVCLan_Send_Byte(HU_ID_2, 8); + + AVCLan_Send_ParityBit(); + + if (AVCLan_Read_ACK()) { + AVC_OUT_DIS(); + STARTEvent; + RS232_Print("E1\n"); + return 1; + } + + + AVCLan_Send_Byte(0xF, 4); // 0xf - control -> COMMAND WRITE + AVCLan_Send_ParityBit(); + if (AVCLan_Read_ACK()) { + AVC_OUT_DIS(); + STARTEvent; + RS232_Print("E2\n"); + return 2; + } + + AVCLan_Send_Byte(data_len, 8);// data lenght + AVCLan_Send_ParityBit(); + if (AVCLan_Read_ACK()) { + AVC_OUT_DIS(); + STARTEvent; + RS232_Print("E3\n"); + return 3; + } + + for (i=0;i= 25) break; + } + if (T > 24) line_busy=0; + } while (line_busy); + + + AVC_OUT_EN(); + + AVCLan_Send_StartBit(); + AVCLan_Send_Byte(0x0, 1); // broadcast + + parity_bit = 0; + AVCLan_Send_Byte(CD_ID_1, 4); // CD Changer ID as master + AVCLan_Send_Byte(CD_ID_2, 8); + AVCLan_Send_ParityBit(); + + AVCLan_Send_Byte(0x1, 4); // all audio devices + AVCLan_Send_Byte(0xFF, 8); + AVCLan_Send_ParityBit(); + AVCLan_Send_Bit1(); + + AVCLan_Send_Byte(0xF, 4); // 0xf - control -> COMMAND WRITE + AVCLan_Send_ParityBit(); + AVCLan_Send_Bit1(); + + AVCLan_Send_Byte(data_len, 8); // data lenght + AVCLan_Send_ParityBit(); + AVCLan_Send_Bit1(); + + for (i=0;i ")); + for (i=0; i. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + ----------------------------------------------------------------------- + this file is a part of the TOYOTA Corolla MP3 Player Project + ----------------------------------------------------------------------- + http://www.softservice.com.pl/corolla/avc + + May 28 / 2009 - version 2 + +*/ + + +#ifndef __AVCLANDRV_H +#define __AVCLANDRV_H +//------------------------------------------------------------------------------ +#include "const.h" + + +#define INPUT_IS_SET (ACSR & _BV(ACO)) +#define INPUT_IS_CLEAR (!(ACSR & _BV(ACO))) + + +#define STOPEvent cbi(TIMSK1, TOIE1); cbi(UCSR0B, RXCIE0); +#define STARTEvent sbi(TIMSK1, TOIE1); sbi(UCSR0B, RXCIE0); + + +#define CHECK_AVC_LINE if (INPUT_IS_SET) AVCLan_Read_Message(); + +void AVC_HoldLine(); +void AVC_ReleaseLine(); + +#define MAXMSGLEN 32 + +// Head Unid ID +extern u08 HU_ID_1; // 0x01 +extern u08 HU_ID_2; // 0x40 + +extern u08 CD_ID_1; // 0x03 +extern u08 CD_ID_2; // 0x60 + + +// DVD CHANGER +//#define CD_ID_1 0x02 +//#define CD_ID_2 0x50 + +#define cmNull 0 +#define cmStatus1 1 +#define cmStatus2 2 +#define cmStatus3 3 +#define cmStatus4 4 + + +#define cmRegister 100 +#define cmInit 101 +#define cmCheck 102 +#define cmPlayIt 103 +#define cmBeep 110 + +#define cmNextTrack 120 +#define cmPrevTrack 121 +#define cmNextDisc 122 +#define cmPrevDisc 123 + +#define cmScanModeOn 130 +#define cmScanModeOff 131 + +#define cmPlayReq1 5 +#define cmPlayReq2 6 +#define cmPlayReq3 7 +#define cmStopReq 8 +#define cmStopReq2 9 + +typedef enum { stStop=0, stPlay=1 } cd_modes; +cd_modes CD_Mode; + + +u08 broadcast; +u08 master1; +u08 master2; +u08 slave1; +u08 slave2; +u08 message_len; +u08 message[MAXMSGLEN]; + +u08 data_control; +u08 data_len; +u08 data[MAXMSGLEN]; + +u08 AVCLan_Read_Message(); +void AVCLan_Send_Status(); + +void AVCLan_Init(); +void AVCLan_Register(); +u08 AVCLan_SendData(); +u08 AVCLan_SendAnswer(); +u08 AVCLan_SendDataBroadcast(); +u08 AVCLan_Command(u08 command); + +u08 HexInc(u08 data); +u08 HexDec(u08 data); +u08 Dec2Toy(u08 data); + +extern u08 check_timeout; + +extern u08 cd_Disc; +extern u08 cd_Track; +extern u08 cd_Time_Min; +extern u08 cd_Time_Sec; + +extern u08 playMode; + + +u08 AVCLan_SendMyData(u08 *data_tmp, u08 s_len); +u08 AVCLan_SendMyDataBroadcast(u08 *data_tmp, u08 s_len); + +void ShowInMessage(); +void ShowOutMessage(); + +//------------------------------------------------------------------------------ +extern u08 answerReq; +//------------------------------------------------------------------------------ +#endif diff --git a/com232.c b/com232.c new file mode 100644 index 0000000..5127619 --- /dev/null +++ b/com232.c @@ -0,0 +1,135 @@ +/* + Copyright (C) 2006 Marcin Slonicki . + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + ----------------------------------------------------------------------- + this file is a part of the TOYOTA Corolla MP3 Player Project + ----------------------------------------------------------------------- + http://www.softservice.com.pl/corolla/avc + + May 28 / 2009 - version 2 + +*/ + +#include +#include +#include +#include "com232.h" + + + +#ifndef F_CPU +#error F_CPU not defined! +#endif + +#if F_CPU!=14745000 +#error we need 14.745000 MHz crystal +#endif + +//------------------------------------------------------------------------------ +void RS232_Init(void) +{ + // init LED + sbi(DDRB, 0); + cbi(PORTB, 0); + + + RS232_RxCharBegin = RS232_RxCharEnd = 0; + + // enable RxD/TxD and interrupts + + + UCSR0A = 0; + UCSR0B = ((1< '9') + Character += 'A' - '0' - 10; + RS232_SendByte(Character); +} +//------------------------------------------------------------------------------ +void RS232_PrintHex8(u08 Data) +{ + RS232_PrintHex4(Data >> 4); + RS232_PrintHex4(Data); +} +//------------------------------------------------------------------------------ +void RS232_PrintDec(u08 Data) +{ + if (Data>99) { + RS232_SendByte('*'); + return; + } + if (Data<10) { + RS232_SendByte('0'+Data); + return; + } + u08 c; + u16 v,v1; + v = Data; + v1 = v/10; + c = '0' + (v-v1*10); + RS232_SendByte('0'+v1); + RS232_SendByte(c); +} +//------------------------------------------------------------------------------ +void RS232_PrintDec2(u08 Data) +{ + if (Data<10) RS232_SendByte('0'); + RS232_PrintDec(Data); +} +//------------------------------------------------------------------------------ diff --git a/com232.h b/com232.h new file mode 100644 index 0000000..fa10905 --- /dev/null +++ b/com232.h @@ -0,0 +1,54 @@ +/* + Copyright (C) 2006 Marcin Slonicki . + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + ----------------------------------------------------------------------- + this file is a part of the TOYOTA Corolla MP3 Player Project + ----------------------------------------------------------------------- + http://www.softservice.com.pl/corolla/avc + + May 28 / 2009 - version 2 + +*/ + +#ifndef __COM232_H +#define __COM232_H +//------------------------------------------------------------------------------ + +#include "const.h" + +//------------------------------------------------------------------------------ + +u08 RS232_RxCharBuffer[25], RS232_RxCharBegin, RS232_RxCharEnd; +u08 readkey; +//------------------------------------------------------------------------------ + +void RS232_Init(void); +extern void RS232_S(u16 str_addr); +extern void RS232_SendByte(u08 Data); +extern void RS232_Print(char* pBuf); +extern void RS232_PrintHex4(u08 Data); +extern void RS232_PrintHex8(u08 Data); +extern void RS232_PrintDec(u08 Data); +extern void RS232_PrintDec2(u08 Data); + +//------------------------------------------------------------------------------ +// LED +#define LED_ON() cbi(PORTB, 0) +#define LED_OFF() sbi(PORTB, 0) + +//------------------------------------------------------------------------------ +#endif diff --git a/const.c b/const.c new file mode 100644 index 0000000..c3aa709 --- /dev/null +++ b/const.c @@ -0,0 +1,37 @@ +/* + Copyright (C) 2006 Marcin Slonicki . + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + ----------------------------------------------------------------------- + this file is a part of the TOYOTA Corolla MP3 Player Project + ----------------------------------------------------------------------- + http://www.softservice.com.pl/corolla/avc + + May 28 / 2009 - version 2 + +*/ + +#include "const.h" +//------------------------------------------------------------------------------ + + +// max 10 events in fifo +u08 EventCount; +u08 EventCmd[10]; +u08 Event; + +u08 showLog; +u08 showLog2; diff --git a/const.h b/const.h new file mode 100644 index 0000000..4418253 --- /dev/null +++ b/const.h @@ -0,0 +1,78 @@ +/* + Copyright (C) 2006 Marcin Slonicki . + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + ----------------------------------------------------------------------- + this file is a part of the TOYOTA Corolla MP3 Player Project + ----------------------------------------------------------------------- + http://www.softservice.com.pl/corolla/avc + + May 28 / 2009 - version 2 + +*/ + +#ifndef __CONST_H +#define __CONST_H +//------------------------------------------------------------------------------ + + + +//------------------------------------------------------------------------------ +// variable type +#define u08 unsigned char +#define u16 unsigned short +#define u32 unsigned int +#define u64 unsigned long + + +// port set/unset + +#define sbi(port, bit) (port) |= (1 << (bit)) +#define cbi(port, bit) (port) &= ~(1 << (bit)) + +//------------------------------------------------------------------------------ + + +// max 10 events in fifo +extern u08 EventCount; +extern u08 EventCmd[10]; +extern u08 Event; + +#define EV_NOTHING 0 +#define EV_DISPLAY 1 +#define EV_STATUS 4 + +//------------------------------------------------------------------------------ + +// const +#define smYear 1 +#define smMonth 2 +#define smDay 3 +#define smHour 4 +#define smMin 5 +#define smWDay 6 + + + +//#define STOPEvent cbi(TIMSK, TOIE1); cbi(UCSRB, RXCIE); +//#define STARTEvent sbi(TIMSK, TOIE1); sbi(UCSRB, RXCIE); + + +extern u08 showLog; +extern u08 showLog2; + +//------------------------------------------------------------------------------ +#endif diff --git a/default/Makefile b/default/Makefile new file mode 100644 index 0000000..dd1c6dc --- /dev/null +++ b/default/Makefile @@ -0,0 +1,86 @@ +############################################################################### +# Makefile for the project sniffer +############################################################################### + +## General Flags +PROJECT = sniffer +MCU = atmega88 +TARGET = sniffer.elf +CC = avr-gcc.exe + +## Options common to compile, link and assembly rules +COMMON = -mmcu=$(MCU) + +## Compile options common for all C compilation units. +CFLAGS = $(COMMON) +CFLAGS += -Wall -gdwarf-2 -DF_CPU=14745000UL -Os -fsigned-char +CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d + +## Assembly specific flags +ASMFLAGS = $(COMMON) +ASMFLAGS += $(CFLAGS) +ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2 + +## Linker flags +LDFLAGS = $(COMMON) +LDFLAGS += + + +## Intel Hex file production flags +HEX_FLASH_FLAGS = -R .eeprom + +HEX_EEPROM_FLAGS = -j .eeprom +HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load" +HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings + + +## Objects that must be built in order to link +OBJECTS = sniffer.o avclandrv.o com232.o const.o delay2.o + +## Objects explicitly added by the user +LINKONLYOBJECTS = + +## Build +all: $(TARGET) sniffer.hex sniffer.eep size + +## Compile +sniffer.o: ../sniffer.c + $(CC) $(INCLUDES) $(CFLAGS) -c $< + +avclandrv.o: ../avclandrv.c + $(CC) $(INCLUDES) $(CFLAGS) -c $< + +com232.o: ../com232.c + $(CC) $(INCLUDES) $(CFLAGS) -c $< + +const.o: ../const.c + $(CC) $(INCLUDES) $(CFLAGS) -c $< + +delay2.o: ../delay2.c + $(CC) $(INCLUDES) $(CFLAGS) -c $< + +##Link +$(TARGET): $(OBJECTS) + $(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET) + +%.hex: $(TARGET) + avr-objcopy -O ihex $(HEX_FLASH_FLAGS) $< $@ + +%.eep: $(TARGET) + -avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ || exit 0 + +%.lss: $(TARGET) + avr-objdump -h -S $< > $@ + +size: ${TARGET} + @echo + @avr-size -C --mcu=${MCU} ${TARGET} + +## Clean target +.PHONY: clean +clean: + -rm -rf $(OBJECTS) sniffer.elf dep/* sniffer.hex sniffer.eep + +## Other dependencies +-include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*) + diff --git a/default/avclandrv.o b/default/avclandrv.o new file mode 100644 index 0000000000000000000000000000000000000000..98d7f45c3c4e3543431f22710216b4af582b36a3 GIT binary patch literal 37028 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 literal 0 HcmV?d00001 diff --git a/default/dep/avclandrv.o.d b/default/dep/avclandrv.o.d new file mode 100644 index 0000000..58baafe --- /dev/null +++ b/default/dep/avclandrv.o.d @@ -0,0 +1,44 @@ +avclandrv.o: ../avclandrv.c c:/winavr/bin/../avr/include/avr/io.h \ + c:/winavr/bin/../avr/include/avr/sfr_defs.h \ + c:/winavr/bin/../avr/include/inttypes.h \ + c:/winavr/bin/../avr/include/stdint.h \ + c:/winavr/bin/../avr/include/avr/iom88.h \ + c:/winavr/bin/../avr/include/avr/iomx8.h \ + c:/winavr/bin/../avr/include/avr/portpins.h \ + c:/winavr/bin/../avr/include/avr/version.h \ + c:/winavr/bin/../avr/include/avr/interrupt.h \ + c:/winavr/bin/../avr/include/avr/pgmspace.h \ + c:\winavr\bin\../lib/gcc/avr/4.1.2/include/stddef.h ../timer.h \ + ../delay2.h ../const.h ../avclandrv.h ../com232.h + +c:/winavr/bin/../avr/include/avr/io.h: + +c:/winavr/bin/../avr/include/avr/sfr_defs.h: + +c:/winavr/bin/../avr/include/inttypes.h: + +c:/winavr/bin/../avr/include/stdint.h: + +c:/winavr/bin/../avr/include/avr/iom88.h: + +c:/winavr/bin/../avr/include/avr/iomx8.h: + +c:/winavr/bin/../avr/include/avr/portpins.h: + +c:/winavr/bin/../avr/include/avr/version.h: + +c:/winavr/bin/../avr/include/avr/interrupt.h: + +c:/winavr/bin/../avr/include/avr/pgmspace.h: + +c:\winavr\bin\../lib/gcc/avr/4.1.2/include/stddef.h: + +../timer.h: + +../delay2.h: + +../const.h: + +../avclandrv.h: + +../com232.h: diff --git a/default/dep/com232.o.d b/default/dep/com232.o.d new file mode 100644 index 0000000..c71aaad --- /dev/null +++ b/default/dep/com232.o.d @@ -0,0 +1,38 @@ +com232.o: ../com232.c c:/winavr/bin/../avr/include/avr/io.h \ + c:/winavr/bin/../avr/include/avr/sfr_defs.h \ + c:/winavr/bin/../avr/include/inttypes.h \ + c:/winavr/bin/../avr/include/stdint.h \ + c:/winavr/bin/../avr/include/avr/iom88.h \ + c:/winavr/bin/../avr/include/avr/iomx8.h \ + c:/winavr/bin/../avr/include/avr/portpins.h \ + c:/winavr/bin/../avr/include/avr/version.h \ + c:/winavr/bin/../avr/include/avr/interrupt.h \ + c:/winavr/bin/../avr/include/avr/pgmspace.h \ + c:\winavr\bin\../lib/gcc/avr/4.1.2/include/stddef.h ../com232.h \ + ../const.h + +c:/winavr/bin/../avr/include/avr/io.h: + +c:/winavr/bin/../avr/include/avr/sfr_defs.h: + +c:/winavr/bin/../avr/include/inttypes.h: + +c:/winavr/bin/../avr/include/stdint.h: + +c:/winavr/bin/../avr/include/avr/iom88.h: + +c:/winavr/bin/../avr/include/avr/iomx8.h: + +c:/winavr/bin/../avr/include/avr/portpins.h: + +c:/winavr/bin/../avr/include/avr/version.h: + +c:/winavr/bin/../avr/include/avr/interrupt.h: + +c:/winavr/bin/../avr/include/avr/pgmspace.h: + +c:\winavr\bin\../lib/gcc/avr/4.1.2/include/stddef.h: + +../com232.h: + +../const.h: diff --git a/default/dep/const.o.d b/default/dep/const.o.d new file mode 100644 index 0000000..f580db5 --- /dev/null +++ b/default/dep/const.o.d @@ -0,0 +1,3 @@ +const.o: ../const.c ../const.h + +../const.h: diff --git a/default/dep/delay2.o.d b/default/dep/delay2.o.d new file mode 100644 index 0000000..b85943f --- /dev/null +++ b/default/dep/delay2.o.d @@ -0,0 +1,31 @@ +delay2.o: ../delay2.c c:/winavr/bin/../avr/include/avr/io.h \ + c:/winavr/bin/../avr/include/avr/sfr_defs.h \ + c:/winavr/bin/../avr/include/inttypes.h \ + c:/winavr/bin/../avr/include/stdint.h \ + c:/winavr/bin/../avr/include/avr/iom88.h \ + c:/winavr/bin/../avr/include/avr/iomx8.h \ + c:/winavr/bin/../avr/include/avr/portpins.h \ + c:/winavr/bin/../avr/include/avr/version.h ../delay2.h ../const.h \ + ../timer.h + +c:/winavr/bin/../avr/include/avr/io.h: + +c:/winavr/bin/../avr/include/avr/sfr_defs.h: + +c:/winavr/bin/../avr/include/inttypes.h: + +c:/winavr/bin/../avr/include/stdint.h: + +c:/winavr/bin/../avr/include/avr/iom88.h: + +c:/winavr/bin/../avr/include/avr/iomx8.h: + +c:/winavr/bin/../avr/include/avr/portpins.h: + +c:/winavr/bin/../avr/include/avr/version.h: + +../delay2.h: + +../const.h: + +../timer.h: diff --git a/default/dep/sniffer.o.d b/default/dep/sniffer.o.d new file mode 100644 index 0000000..fabfd5a --- /dev/null +++ b/default/dep/sniffer.o.d @@ -0,0 +1,42 @@ +sniffer.o: ../sniffer.c c:/winavr/bin/../avr/include/avr/io.h \ + c:/winavr/bin/../avr/include/avr/sfr_defs.h \ + c:/winavr/bin/../avr/include/inttypes.h \ + c:/winavr/bin/../avr/include/stdint.h \ + c:/winavr/bin/../avr/include/avr/iom88.h \ + c:/winavr/bin/../avr/include/avr/iomx8.h \ + c:/winavr/bin/../avr/include/avr/portpins.h \ + c:/winavr/bin/../avr/include/avr/version.h \ + c:/winavr/bin/../avr/include/avr/interrupt.h \ + c:/winavr/bin/../avr/include/avr/pgmspace.h \ + c:\winavr\bin\../lib/gcc/avr/4.1.2/include/stddef.h ../const.h \ + ../com232.h ../delay2.h ../avclandrv.h + +c:/winavr/bin/../avr/include/avr/io.h: + +c:/winavr/bin/../avr/include/avr/sfr_defs.h: + +c:/winavr/bin/../avr/include/inttypes.h: + +c:/winavr/bin/../avr/include/stdint.h: + +c:/winavr/bin/../avr/include/avr/iom88.h: + +c:/winavr/bin/../avr/include/avr/iomx8.h: + +c:/winavr/bin/../avr/include/avr/portpins.h: + +c:/winavr/bin/../avr/include/avr/version.h: + +c:/winavr/bin/../avr/include/avr/interrupt.h: + +c:/winavr/bin/../avr/include/avr/pgmspace.h: + +c:\winavr\bin\../lib/gcc/avr/4.1.2/include/stddef.h: + +../const.h: + +../com232.h: + +../delay2.h: + +../avclandrv.h: diff --git a/default/sniffer.elf b/default/sniffer.elf new file mode 100644 index 0000000000000000000000000000000000000000..c1de845fe0d0651598103a892e1381886d0a76cf GIT binary patch literal 34363 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 literal 0 HcmV?d00001 diff --git a/default/sniffer.hex b/default/sniffer.hex new file mode 100644 index 0000000..3d34386 --- /dev/null +++ b/default/sniffer.hex @@ -0,0 +1,330 @@ +:100000007BC095C094C093C092C091C090C08FC077 +:100010008EC08DC08CC08BC08AC08AC088C087C08B +:1000200086C085C012C883C082C081C080C07FC026 +:100030007EC07DC0522F72202D2072656769737457 +:100040006572206465766963650A004B2F6B202D0D +:10005000207365712E206563686F206F6E2F6F6649 +:10006000660A004C2F6C202D206C6F67206F6E2F5E +:100070006F66660A0051202D2073656E64206272DF +:100080006F6164636173740A0057202D2073656E7D +:100090006420636F6D6D616E640A0053202D2072C1 +:1000A0006561642073657175656E63650A0048203B +:1000B0002D2048552069640A0054202D206465765F +:1000C0006963652069640A004156434C616E207281 +:1000D000656164657220312E30300A526561647941 +:1000E0000A0A006F7574203E200062726F2920009A +:1000F0004855203C2028000011241FBECFEFD4E03B +:10010000DEBFCDBF13E0A0E0B1E0ECE5F2E102C05C +:1001100005900D92A632B107D9F713E0A6E2B3E03D +:1001200001C01D92A03BB107E1F778D096C868CF17 +:100130001F920F920FB60F9211242F933F934F935C +:100140005F936F937F938F939F93AF93BF93EF933F +:10015000FF938FE79FE890938500809384008091C0 +:1001600028038F5F809328038230F9F410922803CC +:1001700080912C0390912D030197B9F48091A003F5 +:100180001AD28093A003803659F41092A003809174 +:10019000A10311D28093A103803A11F41092A1031C +:1001A0008091AF0384608093AF03FF91EF91BF9183 +:1001B000AF919F918F917F916F915F914F913F91FF +:1001C0002F910F900FBE0F901F90189582E0809393 +:1001D0009B0380E880939F0391E09093940380E4D5 +:1001E00080939E039093AE039093AD0315BEEFE60C +:1001F000F0E010828081816080831092800084E032 +:10020000809381008FE79FE890938500809384001E +:1002100007D773D11092AF0378940895EF92FF92AD +:100220000F931F93CF93DF93CDB7DEB7A2970FB68F +:10023000F894DEBF0FBECDBFC9DF88EC90E096D743 +:10024000289A89EB90E092D78EEA90E08FD78BE9DD +:1002500090E08CD789E890E089D785E790E086D751 +:1002600083E690E083D78BE490E080D784E390E04E +:100270007DD700E0EE24FF2400B605FE03C02898D9 +:100280004DD205C0289A80919D0381110FD680918F +:10029000AF03843019F41092AF03AAD520918D03D7 +:1002A000222351F38091C1008F778093C100809108 +:1002B0005103E82FFF27EE5AFC4F908190938C0357 +:1002C0008F5F80935103821721F410928D03109257 +:1002D00051038091C10080688093C100933509F477 +:1002E0005EC0943590F49C3409F483C09D3430F49E +:1002F000983499F19B3409F090C088C0913509F485 +:100300005BC0923509F089C05FC09B3609F478C0A4 +:100310009C3630F4943559F0973509F07EC044C0CE +:100320009C3609F460C0923709F077C05AC00023A8 +:1003300079F08B8180939B038C8180939F0380E075 +:1003400091E0FFD680919B03B3D680919F0315C0A7 +:100350001092AE0381E191E01DC00023B9F08B81C2 +:10036000809394038C8180939E038CE191E0E9D685 +:10037000809194039DD680919E039AD68FE091E060 +:10038000E0D681E08093AE0300E076CF1092AE031A +:100390008AE291E0D6D61A82198201E06BCF1092E0 +:1003A000AE0384E391E0F6CF81E08093AE036E2D3F +:1003B000CE010396E8D4E8CF81E08093AE036E2DA2 +:1003C000CE010396F4D3E0CF86E491E0BAD684E67A +:1003D00016D68FE090E0F0D600B605FE4DCF9ED148 +:1003E0004BCF12D649CF8FE491E0ABD61092AE033B +:1003F00043CF88E591E0A5D681E08093AE033CCF62 +:1004000080E691E09ED61092AD0336CF89E691E06A +:1004100098D681E08093AD032FCF013009F02CCF27 +:10042000FE01EF0DF11D9183F39482E0F816E1F4E3 +:1004300089818A3310F4805301C087538983EE2D5C +:10044000FF2799819295907F8A818A3310F4805397 +:1004500001C087538A838A81980FEC0FFD1F938315 +:10046000E3941A821982FF248091AD03882309F452 +:1004700003CF81E791E065D610E008C0FE01E10FEF +:10048000F11D838115D680E2FED51F5F1E15B1F7E1 +:100490008FE091E056D6F0CE80916F008E7F8093F2 +:1004A0006F008091C1008F778093C10083E085BD8C +:1004B00081E086BD80E003C086B5893120F400B6B6 +:1004C00005FEFACFFACF5E9A569A579A80B780689F +:1004D00080BF5E9A80916F00816080936F008091F1 +:1004E000C10080688093C10008955E985E98569818 +:1004F000579880B78F7780BF08955E9856985F9819 +:100500005798EBE7F0E080818F7B808380B78D7F09 +:1005100080BF80B78E7F80BF80B78F7780BF1092FB +:100520002B0310929D0310929C0381E0809398030B +:10053000809396031092A1031092A0031092990346 +:10054000109297031092950310922D0310922C0392 +:100550000895382F20919A0390E041E000B605FEFF +:10056000FDCF46BD00B605FCFDCF86B5883010F442 +:100570009F5F2F5F315011F0990FF0CF20939A03B6 +:10058000892F99270895FC013081DC0120E00EC0FD +:10059000FD0181811196E22FFF27E25DFC4F9081E2 +:1005A000981719F080E090E008952F5F231781F7E6 +:1005B00081E090E00895982F8970893021F4995F47 +:1005C000892F992708959F5F892F99270895282FAC +:1005D00099278F709070892B21F42750822F9927AB +:1005E00008952150822F99270895282F6AE015D663 +:1005F0009927AC0173E0440F551F7A95E1F7880FF6 +:10060000991F480F591F241B33E0880F991F3A95F3 +:10061000E1F7280F822F99270895CF93DF933CDFCE +:1006200083EE90E0A3D5C0E0D0E007C0FF27E559F6 +:10063000FC4F80813DD580E226D5EC2F219680911C +:100640004F03E81798F386E891E07BD54EDFDF9102 +:10065000CF910895CF93DF9380912B038823B1F13D +:100660001BDF80EF90E082D580919303882321F4F3 +:100670008AEE90E07BD503C088E891E062D5809156 +:100680008B0309D580914E0313D58EE891E059D59F +:100690008091500300D5809129030AD58EE891E01E +:1006A00050D5C0E0D0E008C0FF27E25DFC4F80815C +:1006B000FFD481E991E045D5EC2F219680912B0361 +:1006C000E81790F386E891E03CD50FDFDF91CF91FA +:1006D000089583E085BD81E086BD06C086B5893179 +:1006E00018F080E090E0089500B605FEF7CF5E9A1E +:1006F000569A579A80B7806880BF5E9A80E290E0F1 +:100700005BD55E9884E090E057D55E9856985798F0 +:1007100080B78F7780BF81E090E00895FF920F93BC +:100720001F93CF93DF9380916F008E7F80936F0034 +:100730008091C1008F778093C10083E085BD81E007 +:1007400086BD80E004C086B58F3F09F436C100B68F +:1007500005FCF9CF8A3068F480916F008160809346 +:100760006F008091C10080688093C1008BE991E0A7 +:1007700030C181E0EEDE8093930310929A0384E00F +:10078000E8DE80938B0388E0E4DE80934E030091E3 +:100790009A0311270170107081E0DBDE992708179A +:1007A000190709F0FFC010929A0384E0D2DE80930B +:1007B000500388E0CEDE8093290300919A0311272D +:1007C0000170107081E0C5DE99270817190709F03C +:1007D000E9C09091500380919B03981739F4909150 +:1007E000290380919F03981709F4D8C081E0B1DEF6 +:1007F000FF2410929A0384E0ACDE00919A03112743 +:100800000170107081E0A5DE99270817190709F01B +:10081000C9C0FF2011F05DDF02C081E09ADE1092B6 +:100820009A0388E096DE80932B0300919A031127A8 +:100830000170107081E08DDE99270817190709F003 +:10084000B1C0FF2011F045DF02C081E082DE80915F +:100850002B03813208F0A6C0C0E0D0E01CC010928B +:100860009A0388E076DEE02FFF27E25DFC4F80836D +:1008700000919A0311270170107081E06ADE9927B8 +:100880000817190709F08EC0FF2011F022DF02C0FF +:1008900081E05FDE21960C2F80912B03C817F8F2C0 +:1008A00080916F00816080936F008091C1008068AB +:1008B0008093C1008091AE038111CCDEFF20F1F165 +:1008C00085ED91E060DE882309F05FC08AED91E05C +:1008D0005ADE882311F082E059C08FED91E053DE9B +:1008E000882311F083E052C084EE91E04CDE88232F +:1008F00011F084E04BC08EEF91E045DE882311F0CB +:1009000085E044C083E092E03EDE882311F086E07B +:100910003DC08AE092E037DE882311F087E036C0E0 +:1009200081E192E030DE882311F088E02FC087E17A +:1009300092E029DE882369F189E028C089EF91E0FF +:1009400022DE882311F087E621C085EF91E01BDECF +:10095000882341F086E680939D0380913103809344 +:10096000430219C08DEE91E00EDE882311F084E67B +:100970000DC081EF91E007DE882311F085E606C007 +:1009800089EE91E000DE882321F081E080939D03D1 +:1009900002C010929D0381E090E01EC09ADEE1E06B +:1009A000FE2E27CF80916F00816080936F00809131 +:1009B000C10080688093C1000DC080916F0081608C +:1009C00080936F008091C10080688093C10083E9AB +:1009D00091E0B7D380E090E0DF91CF911F910F912C +:1009E000FF9008955E9A83E190E0E6D35E9881E0FF +:1009F00090E0E2D35E985698579880B78F7780BF83 +:100A000083E085BD81E086BD86B500B605FE02C0E7 +:100A1000823028F48531C0F381E090E0089500B67B +:100A200005FCFDCF5E9A569A579A80B7806880BFC2 +:100A300080E090E008955E9A80E290E0BDD35E98F9 +:100A400084E090E0B9D308955E9A84E190E0B4D355 +:100A50005E9880E190E0B0D3089580919A0380FF82 +:100A600002C0F2DF01C0E7DF10929A0381E090E05C +:100A700008950F931F93062F683011F4182F0CC0A0 +:100A8000282F332788E090E0861B910902C0220FAF +:100A9000331F8A95E2F7122F17FF07C0D5DF809129 +:100AA0009A038F5F80939A0301C0C5DF015011F054 +:100AB000110FF2CF81E090E01F910F9108955E9A9F +:100AC00086EA90E079D35E988EE190E075D381E07C +:100AD00090E00895CF93DF9380916F008E7F809395 +:100AE0006F008091C1008F778093C10083E085BD46 +:100AF00081E086BD80E003C086B5893140F500B64F +:100B000005FEFACFFACFFF27E559FC4F68E0808158 +:100B1000B0DFA3DF99DFEC2F219680914F03E81718 +:100B200090F35E985698579880B78F7780BF8091E2 +:100B30006F00816080936F008091C1008068809316 +:100B4000C1008091AE03882369F167DD2BC05E9AF6 +:100B5000569A579A80B7806880BFB1DF61E080E025 +:100B600088DF10929A0364E080919B0382DF68E043 +:100B700080919F037EDF71DF64E081E07ADF68E0CF +:100B80008FEF77DF6ADF60DF64E08FE072DF65DFC1 +:100B90005BDF68E080914F036CDF5FDF55DFC0E013 +:100BA000D0E0B9CF80E090E0DF91CF9108952FE0C1 +:100BB00020932A0360934F03DC0190E007C0E92FE4 +:100BC000FF27E559FC4F8D9180839F5F9617B9F7FA +:100BD00081DF992708951F93CF93DF9380916F0052 +:100BE0008E7F80936F008091C1008F778093C100CA +:100BF00083E085BD81E086BD80E004C086B5893193 +:100C000008F09AC000B605FEF9CFF9CF5E98569865 +:100C1000579880B78F7780BF80916F0081608093F5 +:100C20006F008091C10080688093C10083EA91E0E9 +:100C300088D281E090E0A3C064E08FE01ADF0DDF8E +:100C4000D1DE8823B1F05E985698579880B78F7799 +:100C500080BF80916F00816080936F008091C100A0 +:100C600080688093C10087EA91E06BD282E090E0D7 +:100C700086C068E080914F03FCDEEFDEB3DE8823A0 +:100C8000E9F15E985698579880B78F7780BF80912A +:100C90006F00816080936F008091C10080688093B5 +:100CA000C1008BEA91E04DD283E090E068C0E12F73 +:100CB000FF27E559FC4F68E08081DBDECEDE92DE67 +:100CC00021968823E9F05E985698579880B78F77D9 +:100CD00080BF80916F00816080936F008091C10020 +:100CE00080688093C1008FEA91E02BD2812FE9D1F7 +:100CF00083EB91E026D284E090E041C0C0E0D0E0F8 +:100D00001C2F80914F03C81790F25E985698579801 +:100D100080B78F7780BF80916F00816080936F0074 +:100D20008091C10080688093C1008091AE038111E1 +:100D300074DC80E090E023C05E9A569A579A80B7A0 +:100D4000806880BFBCDE61E081E093DE10929A0390 +:100D500064E080919B038DDE68E080919F0389DED3 +:100D60007CDE64E08091940384DE68E080919E03E1 +:100D700080DE73DE37DE882309F048CF5DCFDF9158 +:100D8000CF911F9108952FE020932A0360934F0382 +:100D9000DC0190E007C0E92FFF27E559FC4F8D915A +:100DA00080839F5F9617B9F716DF99270895CF9331 +:100DB000DF93FC0130818FE080932A03218120930F +:100DC0004F03DF0190E008C0E92FFF27E559FC4FF2 +:100DD000ED01898180839F5F11969217A9F73323D4 +:100DE00011F0F9DE01C076DE9927DF91CF910895E9 +:100DF000CF93DF93CDB7DEB72D970FB6F894DEBF54 +:100E00000FBECDBFDE011196EEE9F2E08DE001905C +:100E10000D928150E1F78091980388878091960325 +:100E200089878091A1038A878091A0038B871C8684 +:100E3000CE010196BCDF2D960FB6F894DEBF0FBE33 +:100E4000CDBFDF91CF91089589E193E0B0DF882392 +:100E500059F58DE093E0ABDF882331F581E093E035 +:100E6000A6DF882309F585EF92E0A1DF8823E1F46E +:100E700089EE92E09CDF8823B9F48DED92E097DF54 +:100E8000882391F481ED92E092DF882369F484EC69 +:100E900092E08DDF882341F488EB92E088DF88239D +:100EA00019F48BEA92E083DF992708951F938091CC +:100EB0009D03883098F4863008F048C0833039F1BB +:100EC000843030F48130E9F0823009F091C01CC0E8 +:100ED000843001F1853009F08BC033C0853601F1D3 +:100EE000863638F48A3008F462C0843609F080C04F +:100EF00014C08736C1F18736A8F08E3609F475C064 +:100F000077C084E292E06EC08AE292E06BC080E338 +:100F100092E068C086E392E065C08DE192E062C035 +:100F200093DF61C08DE392E042DF182F10929C03A3 +:100F3000809143028F5F8093430286EB91E001D161 +:100F400058C0109295038BE592E04CC01092950327 +:100F500082E692E02CDF182F882311F589E692E0D3 +:100F600026DF182F1DC081E0809395038EEB91E062 +:100F7000E8D08091980380937D02809196038093BE +:100F80007E028091A10380937F028091A0038093D1 +:100F9000800286E792E00BDF182F882309F428DF10 +:100FA00081E090E090932D0380932C0322C0109257 +:100FB0002D0310922C031092950383E892E0F7DE44 +:100FC000809198038093910280919603809392027E +:100FD0008091A103809393028091A0038093940257 +:100FE0008AE892E0E4DE182F04C087E992E0DFDEB1 +:100FF00010E010929D03812F99271F9108958093EF +:101000009D0354DF9927089584EC91E09AD08DE1F7 +:1010100092E0CDDE8CEC91E094D085E6F0DF08958F +:10102000209A289810928D03109251031092C000BC +:1010300088E98093C10086E08093C20087E090E059 +:101040009093C5008093C40008951F920F920FB62D +:101050000F9211248F939F93EF93FF9380918D03B1 +:101060009091C600E2E5F3E0E80FF11D90838F5FF9 +:1010700080938D03FF91EF919F918F910F900FBE01 +:101080000F901F901895982F8091C00085FFFCCF7E +:101090009093C60008958F70982F905D9A3308F052 +:1010A000995F8091C00085FFFCCF9093C6000895A2 +:1010B0001F93182F82958F70EEDF812FECDF1F9129 +:1010C0000895E82F843640F08091C00085FFFCCF62 +:1010D0008AE28093C60008958A3030F48091C0007F +:1010E00085FFFCCFE05D1DC0FF27CF016AE070E007 +:1010F000A0D0CB01880F991F9B0143E0220F331F23 +:101100004A95E1F7820F931FE81BE05D8091C000D4 +:1011100085FFFCCF605D6093C6008091C00085FFB5 +:10112000FCCFE093C6000895982F8A3038F4809160 +:10113000C00085FFFCCF80E38093C600892FC1DF0C +:101140000895FC012DE00EC09A3031F48091C0006A +:1011500085FFFCCF2093C6008091C00085FFFCCFA7 +:101160009093C6009191992379F70895FC014DE081 +:101170000FC09A3031F48091C00085FFFCCF4093BE +:10118000C6008091C00085FFFCCF9093C600F90196 +:101190009F012F5F3F4F9491992359F70895DC01E8 +:1011A000CB0181159105A105B10529F08150904031 +:1011B000A040B040D9F70895AC0120E030E006C06F +:1011C000000000000000000000000000822F9927AE +:1011D0002F5F3F4F8417950798F30895CF93DF93C0 +:1011E000CDB7DEB721970FB6F894DEBF0FBECDBFE7 +:1011F000898381E085BD21E005C026BD96B5898142 +:101200009817E0F36150C8F721960FB6F894DEBF47 +:101210000FBECDBFDF91CF910895991B79E004C037 +:10122000991F961708F0961B881F7A95C9F7809525 +:101230000895AA1BBB1B51E107C0AA1FBB1FA6171D +:10124000B70710F0A61BB70B881F991F5A95A9F76F +:0C12500080959095BC01CD010895FFCF62 +:10125C00444556204944205345543A203078000ADE +:10126C0000444556204944203E200A004855204958 +:10127C0044205345543A20307800485520494420A6 +:10128C003E200A00524541442053455155454E439A +:10129C0045203E200A005245474953543A0A004C17 +:1012AC006F67204F46460A004C6F67204F4E0A006E +:1012BC00737472204F46460A00737472204F4E0AA4 +:1012CC00004355525245454E542053455155454EB9 +:1012DC004345203E20000A006469722920007C20CE +:1012EC000020004C414E3E54310A004C414E3E54BD +:1012FC00320A0045310A0045320A0045330A0045DE +:10130C00342800290A0041564343484B0A00504CEC +:10131C0041590A005245475F53540A005245475FF2 +:10132C00454E440A00040000010A040000010804B0 +:10133C000000010D040000010C0300010A0312015E +:10134C000003120101031201200412014563040081 +:10135C0025638006001263420100060012634241BD +:10136C0000050012634301050012634341010500AF +:10137C000112106301040001001A0104000100189D +:10138C0001040001001D01050001001C0001060004 +:10139C0001123000000105005C12530200055C31A3 +:1013AC00F100000106005C32F0020001050063123E +:1013BC00500101050063125201000B6331F1010071 +:1013CC0001FFFFFF0080000B6331F10128000000DA +:1013DC0000008001050063125301000B6331F10022 +:1013EC003000000000008001050063296002000B42 +:1013FC006331F10110010100000080000B6331F139 +:10140C00003001FFFFFF0080000A6331F300010090 +:10141C0001000102000B6331F1009001FFFFFF009E +:10142C0080000A6331F300210001000102000A630D +:10143C0031F300310001000102000A6331F300397D +:10144C000001000102000A6331F3003D00010001BC +:10145C0002000A6331F3003F0001000102000A633D +:10146C0031F3003F0000000002000B6331F10080FB +:06147C00FFFFFFFF0080EE +:00000001FF diff --git a/default/sniffer.o b/default/sniffer.o new file mode 100644 index 0000000000000000000000000000000000000000..ec1ad2fbd4cabfda4f70c19247a0bc7483155fa6 GIT binary patch literal 13092 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 K%;%_S^M3$4UAbHU literal 0 HcmV?d00001 diff --git a/delay2.c b/delay2.c new file mode 100644 index 0000000..58fa811 --- /dev/null +++ b/delay2.c @@ -0,0 +1,72 @@ +/* + Precise Delay Functions + V 0.5, Martin Thomas, 9/2004 + + In the original Code from Peter Dannegger a timer-interrupt + driven "timebase" has been used for precise One-Wire-Delays. + My loop-approach is less elegant but may be more usable + as library-function. Since it's not "timer-dependent" + See also delay.h. + + Inspired by the avr-libc's loop-code +*/ + +#include +#include +#include + +#include "delay2.h" +#include "timer.h" + +void delayloop32(uint32_t loops) +{ + __asm__ volatile ( "cp %A0,__zero_reg__ \n\t" \ + "cpc %B0,__zero_reg__ \n\t" \ + "cpc %C0,__zero_reg__ \n\t" \ + "cpc %D0,__zero_reg__ \n\t" \ + "breq L_Exit_%= \n\t" \ + "L_LOOP_%=: \n\t" \ + "subi %A0,1 \n\t" \ + "sbci %B0,0 \n\t" \ + "sbci %C0,0 \n\t" \ + "sbci %D0,0 \n\t" \ + "brne L_LOOP_%= \n\t" \ + "L_Exit_%=: \n\t" \ + : "=w" (loops) \ + : "0" (loops) \ + ); \ + + return; +} +//------------------------------------------------------------------------------ +// delay ~ 1us * count for F_CPU = 14745600; + +void delay1(u16 count) +{ + u08 j; + + for (j=0;j. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + ----------------------------------------------------------------------- + this file is a part of the TOYOTA Corolla MP3 Player Project + ----------------------------------------------------------------------- + http://www.softservice.com.pl/corolla/avc + + May 28 / 2009 - version 2 + +*/ + + +#ifndef _delay_h_ +#define _delay_h_ + +#include +#include +#include "const.h" + +/* delay function for microsec + 4 cpu cycles per loop + 1 cycles(?) overhead + when a constant is passed. */ +static inline void delayloop16(uint16_t count) +{ + asm volatile ( "cp %A0,__zero_reg__ \n\t" \ + "cpc %B0,__zero_reg__ \n\t" \ + "breq L_Exit_%= \n\t" \ + "L_LOOP_%=: \n\t" \ + "sbiw %0,1 \n\t" \ + "brne L_LOOP_%= \n\t" \ + "L_Exit_%=: \n\t" \ + : "=w" (count) + : "0" (count) + ); +} +// delayloop16(x) eats 4 cycles per x +#define DELAY_US_CONV(us) ((uint16_t)(((((us)*1000L)/(1000000000/F_CPU))-1)/4)) +#define delay_us(us) delayloop16(DELAY_US_CONV(us)) + +/* delay function for millisec + (6 cycles per x + 20(?) overhead) */ +void delayloop32( uint32_t l); // not inline +#define DELAY_MS_CONV(ms) ( (uint32_t) (ms*(F_CPU/6000L)) ) +#define delay_ms(ms) delayloop32(DELAY_MS_CONV(ms)) + + +void delay1us(volatile u08 delay, u08 count); +void delay1(u16 count); + +#endif + diff --git a/sniffer.aps b/sniffer.aps new file mode 100644 index 0000000..9204e65 --- /dev/null +++ b/sniffer.aps @@ -0,0 +1 @@ +sniffer25-May-2009 21:45:0925-May-2009 23:55:14241025-May-2009 21:45:0944, 13, 0, 528AVR GCCdefault\sniffer.elfC:\Users\ms1\Documents\Corolla_DVR\_uptodate\sniffer\AVR SimulatorATmega88.xmlfalseR00R01R02R03R04R05R06R07R08R09R10R11R12R13R14R15R16R17R18R19R20R21R22R23R24R25R26R27R28R29R30R31Auto000sniffer.cavclandrv.ccom232.cconst.cdelay2.cavclandrv.hcom232.htimer.hconst.hdelay2.hdefaultNOatmega88100sniffer.elfdefault\0-Wall -gdwarf-2 -DF_CPU=14745000UL -Os -fsigned-chardefault1C:\WinAVR\bin\avr-gcc.exeC:\WinAVR\utils\bin\make.exe00000sniffer.c100001com232.h100002com232.c100003avclandrv.c100004avclandrv.h100005const.h100006timer.h100007delay2.h100008delay2.c100009const.c1242 97 1128 572254 4265 120 1168 5908 0288 143 1191 61323 0234 69 1360 782117 14Maximized334 189 1237 65946 28357 212 1260 68244 3380 235 1283 70553 10403 258 1306 7280 0426 281 1329 75117 16449 304 1352 7740 0 diff --git a/sniffer.aws b/sniffer.aws new file mode 100644 index 0000000..c1acaeb --- /dev/null +++ b/sniffer.aws @@ -0,0 +1 @@ + diff --git a/sniffer.c b/sniffer.c new file mode 100644 index 0000000..e5af4a5 --- /dev/null +++ b/sniffer.c @@ -0,0 +1,293 @@ +/* + Copyright (C) 2006 Marcin Slonicki . + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + ----------------------------------------------------------------------- + this file is a part of the TOYOTA Corolla MP3 Player Project + ----------------------------------------------------------------------- + http://www.softservice.com.pl/corolla/avc + + May 28 / 2009 - version 2 + +*/ + + + +#include +#include +#include +#include "const.h" +#include "com232.h" +#include "delay2.h" +#include "avclandrv.h" + + +// ------------------------------------------------------------------------------------- +void Setup(); + +u08 rcv_command[5]; +u08 rcv_pos = 0; +u08 rcv_time_clr = 0; + +// ------------------------------------------------------------------------------------- + + + + +// ------------------------------------------------------------------------------------- +// MAIN PROGRAM +// +int main() +{ +// u08 h; + + + u08 readSeq = 0; + u08 s_len = 0; + u08 s_dig = 0; + u08 s_c[2]; + u08 i; + u08 data_tmp[32]; + + Setup(); + + + + RS232_S((u16)PSTR("AVCLan reader 1.00\nReady\n\n")); + LED_OFF(); + RS232_S((u16)PSTR("T - device id\n")); + RS232_S((u16)PSTR("H - HU id\n")); + RS232_S((u16)PSTR("S - read sequence\n")); + RS232_S((u16)PSTR("W - send command\n")); + RS232_S((u16)PSTR("Q - send broadcast\n")); + RS232_S((u16)PSTR("L/l - log on/off\n")); + RS232_S((u16)PSTR("K/k - seq. echo on/off\n")); + RS232_S((u16)PSTR("R/r - register device\n")); + + + + while (1) { + + if (INPUT_IS_SET) { // if message from some device on AVCLan begin + LED_ON(); + AVCLan_Read_Message(); + // show message + } else { + LED_OFF(); + // check command from HU + if (answerReq != 0) AVCLan_SendAnswer(); + } + + // HandleEvent + switch (Event) { + case EV_STATUS: Event &= ~EV_STATUS; + AVCLan_Send_Status(); + break; + } + + + // Key handler + if (RS232_RxCharEnd) { + cbi(UCSR0B, RXCIE0); // disable RX complete interrupt + readkey = RS232_RxCharBuffer[RS232_RxCharBegin];// read begin of received Buffer + RS232_RxCharBegin++; + if (RS232_RxCharBegin == RS232_RxCharEnd) // if Buffer is empty + RS232_RxCharBegin = RS232_RxCharEnd = 0; // do reset Buffer + sbi(UCSR0B, RXCIE0); // enable RX complete interrupt + switch (readkey) { + case 'T': if (readSeq) { + CD_ID_1 = data_tmp[0]; + CD_ID_2 = data_tmp[1]; + RS232_Print("DEV ID SET: 0x"); + RS232_PrintHex8(CD_ID_1); + RS232_PrintHex8(CD_ID_2); + RS232_Print("\n"); + showLog = 1; + readSeq=0; + } else { + showLog = 0; + RS232_Print("DEV ID > \n"); + readSeq = 1; + s_len=0; + s_dig=0; + s_c[0]=s_c[1]=0; + } + break; + + case 'H': if (readSeq) { + HU_ID_1 = data_tmp[0]; + HU_ID_2 = data_tmp[1]; + RS232_Print("HU ID SET: 0x"); + RS232_PrintHex8(HU_ID_1); + RS232_PrintHex8(HU_ID_2); + RS232_Print("\n"); + showLog = 1; + readSeq=0; + } else { + showLog = 0; + RS232_Print("HU ID > \n"); + readSeq = 1; + s_len=0; + s_dig=0; + s_c[0]=s_c[1]=0; + } + break; + + case 'S': showLog = 0; + RS232_Print("READ SEQUENCE > \n"); + readSeq = 1; + s_len=0; + s_dig=0; + s_c[0]=s_c[1]=0; + break; + case 'W' : showLog = 1; + readSeq=0; + AVCLan_SendMyData(data_tmp, s_len); + break; + case 'Q' : showLog = 1; + readSeq=0; + AVCLan_SendMyDataBroadcast(data_tmp, s_len); + break; + + + case 'R': RS232_Print("REGIST:\n"); + AVCLan_Command( cmRegister ); + delay1(15); + CHECK_AVC_LINE; + break; + case 'r': AVCLan_Register(); + break; + + + case 'l': RS232_Print("Log OFF\n"); + showLog = 0; + break; + case 'L': RS232_Print("Log ON\n"); + showLog = 1; + break; + + case 'k': RS232_Print("str OFF\n"); + showLog2 = 0; + break; + case 'K': RS232_Print("str ON\n"); + showLog2 = 1; + break; + + default : + if (readSeq==1) { + s_c[s_dig]=readkey; + + s_dig++; + if (s_dig==2) { + if (s_c[0]<':') s_c[0] -= 48; + else s_c[0] -= 55; + data_tmp[s_len] = 16 * s_c[0]; + if (s_c[1]<':') s_c[1] -= 48; + else s_c[1] -= 55; + data_tmp[s_len] += s_c[1]; + s_len++; + s_dig=0; + s_c[0]=s_c[1]=0; + } + if (showLog2) { + RS232_Print("CURREENT SEQUENCE > "); + for (i=0; i + +#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega64__) +# warning "This file is known to be incorrect for your MCU type" +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +enum { + STOP = 0, + CK = 1, + CK8 = 2, + CK64 = 3, + CK256 = 4, + CK1024 = 5, + T0_FALLING_EDGE = 6, + T0_RISING_EDGE = 7 +}; + +static __inline__ void timer0_source (unsigned int src) +{ + TCCR0B = src; +} + +/* + * NB: this is completely bogus. + */ +static __inline__ void timer0_stop (void) +{ + TCNT0 = 0; +} + +static __inline__ void timer0_start (void) +{ + TCNT0 = 1; +} + +#ifdef __cplusplus +} +#endif + +#endif /* _AVR_TIMER_H_ */