Rev 101 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 101 | Rev 104 | ||
|---|---|---|---|
| Line 2... | Line 2... | ||
| 2 | * |
2 | * |
| 3 | * Main application |
3 | * Main application |
| 4 | * |
4 | * |
| 5 | ********************************************************************* |
5 | ********************************************************************* |
| 6 | * FileName: $HeadURL: https://svn.auml.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBoot/Source/Main.c $ |
6 | * FileName: $HeadURL: https://svn.auml.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBoot/Source/Main.c $ |
| 7 | * Last changed: $LastChangedDate: 2006-11-15 |
7 | * Last changed: $LastChangedDate: 2006-11-15 10:22:35 +0100 (Wed, 15 Nov 2006) $ |
| 8 | * By: $LastChangedBy: johboh $ |
8 | * By: $LastChangedBy: johboh $ |
| 9 | * Revision: $Revision: |
9 | * Revision: $Revision: 104 $ |
| 10 | ********************************************************************/ |
10 | ********************************************************************/ |
| 11 | 11 | ||
| 12 | #include <compiler.h> |
12 | #include <compiler.h> |
| 13 | #include <stackTasks.h> |
13 | #include <stackTasks.h> |
| 14 | #include <CANdefs.h> |
14 | #include <CANdefs.h> |
| Line 153... | Line 153... | ||
| 153 | afterAckPgs = pgsWAIT_FIRST_PGM_PACKET; |
153 | afterAckPgs = pgsWAIT_FIRST_PGM_PACKET; |
| 154 | pgs = pgsSEND_ACK; |
154 | pgs = pgsSEND_ACK; |
| 155 | } |
155 | } |
| 156 | 156 | ||
| 157 | // If programming packet... |
157 | // If programming packet... |
| 158 | if (hasPacket==TRUE && cm.funct==FUNCT_BOOTLOADER && (cm.funcc & |
158 | if (hasPacket==TRUE && cm.funct==FUNCT_BOOTLOADER && (cm.funcc & 0x3E3)==FUNCC_BOOT_PGM && cm.nid==MY_NID && cm.sid==programmerSid) |
| 159 | { |
159 | { |
| 160 | BYTE localIndex = (BYTE)((cm.funcc & 0x1C)>>2)*8; |
160 | BYTE localIndex = (BYTE)((cm.funcc & 0x1C)>>2)*8; |
| 161 | 161 | ||
| 162 | // Save bytes in memory, setup start adress etc.. |
162 | // Save bytes in memory, setup start adress etc.. |
| 163 | bytesReceived = 8; |
163 | bytesReceived = 8; |
| Line 173... | Line 173... | ||
| 173 | 173 | ||
| 174 | case pgsWAIT_PGM_PACKET: |
174 | case pgsWAIT_PGM_PACKET: |
| 175 | 175 | ||
| 176 | 176 | ||
| 177 | // If programming packet... |
177 | // If programming packet... |
| 178 | if (hasPacket==TRUE && cm.funct==FUNCT_BOOTLOADER && (cm.funcc & |
178 | if (hasPacket==TRUE && cm.funct==FUNCT_BOOTLOADER && (cm.funcc & 0x3E3)==FUNCC_BOOT_PGM && cm.nid==MY_NID && cm.sid==programmerSid) |
| 179 | { |
179 | { |
| 180 | BYTE localIndex = (BYTE)((cm.funcc & 0x1C)>>2)*8; |
180 | BYTE localIndex = (BYTE)((cm.funcc & 0x1C)>>2)*8; |
| 181 | // Save bytes in memory, inc received bytes. |
181 | // Save bytes in memory, inc received bytes. |
| 182 | pgmData[localIndex+0]=cm.data[0]; pgmData[localIndex+1]=cm.data[1]; pgmData[localIndex+2]=cm.data[2]; pgmData[localIndex+3]=cm.data[3]; |
182 | pgmData[localIndex+0]=cm.data[0]; pgmData[localIndex+1]=cm.data[1]; pgmData[localIndex+2]=cm.data[2]; pgmData[localIndex+3]=cm.data[3]; |
| 183 | pgmData[localIndex+4]=cm.data[4]; pgmData[localIndex+5]=cm.data[5]; pgmData[localIndex+6]=cm.data[6]; pgmData[localIndex+7]=cm.data[7]; |
183 | pgmData[localIndex+4]=cm.data[4]; pgmData[localIndex+5]=cm.data[5]; pgmData[localIndex+6]=cm.data[6]; pgmData[localIndex+7]=cm.data[7]; |