Исправляем ошибки

This commit is contained in:
Dmitriy 2025-05-20 23:01:28 +03:00
parent 0e6ab22246
commit e59c6054b6
11 changed files with 2245 additions and 2146 deletions

View File

@ -799,6 +799,10 @@ void AppVladEventProcess(CPU_INT32U event)
} }
} }
CPU_INT32U password;
GetData(&PassDescAdmin, &password, 0, DATA_FLAG_SYSTEM_INDEX);
if(get_abonement_data()->uid[0] != password) break;
if(app_state.user_menu == USER_MENU_IDLE) if(app_state.user_menu == USER_MENU_IDLE)
{ {
// ïðîâåðèì - íå íàäî ëè áîíóñû î÷èñòèòü // ïðîâåðèì - íå íàäî ëè áîíóñû î÷èñòèòü
@ -827,61 +831,67 @@ void AppVladEventProcess(CPU_INT32U event)
if(read_mifare_card() != NULL) if(read_mifare_card() != NULL)
{ {
// ïîïîëíÿåì êàðòó // ïîïîëíÿåì êàðòó
mifaredata_t* data = get_mifare_data(); abonement_data* data = get_abonement_data();
uint32_t pay = 0, bonus = 0, best_before = 0; CPU_INT32U password;
uint32_t counter_money = 0, counter_bonus = 0, counter_runs = 0; GetData(&PassDescAdmin, &password, 0, DATA_FLAG_SYSTEM_INDEX);
uint32_t counter_money_sum = 0, counter_bonus_sum = 0, counter_runs_sum = 0; if(data->uid[0] == password)
uint32_t all_counter_money = 0;
GetData(&AbonementMoneyDesc, &pay, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
GetData(&AbonementBonusDesc, &bonus, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
GetData(&AbonementBestBeforeDesc, &best_before, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
GetData(&CounterMoneyAbonementDesc, &counter_money, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
GetData(&CounterBonusAbonementDesc, &counter_bonus, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
GetData(&CounterRunsAbonementDesc, &counter_runs, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
GetData(&CounterMoneyAbonementDesc, &counter_money_sum, 4, DATA_FLAG_DIRECT_INDEX);
GetData(&CounterBonusAbonementDesc, &counter_bonus_sum, 4, DATA_FLAG_DIRECT_INDEX);
GetData(&CounterRunsAbonementDesc, &counter_runs_sum, 4, DATA_FLAG_DIRECT_INDEX);
GetData(&CounterAbonementMoneyDesc, &all_counter_money, 0, DATA_FLAG_DIRECT_INDEX);
counter_money += pay;
counter_bonus += bonus;
counter_runs++;
counter_money_sum += pay;
counter_bonus_sum += bonus;
counter_runs_sum++;
all_counter_money += pay;
SetData(&CounterMoneyAbonementDesc, &counter_money, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
SetData(&CounterBonusAbonementDesc, &counter_bonus, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
SetData(&CounterRunsAbonementDesc, &counter_runs, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
SetData(&CounterMoneyAbonementDesc, &counter_money_sum, 4, DATA_FLAG_DIRECT_INDEX);
SetData(&CounterBonusAbonementDesc, &counter_bonus_sum, 4, DATA_FLAG_DIRECT_INDEX);
SetData(&CounterRunsAbonementDesc, &counter_runs_sum, 4, DATA_FLAG_DIRECT_INDEX);
SetData(&CounterAbonementMoneyDesc, &all_counter_money, 0, DATA_FLAG_DIRECT_INDEX);
uint32_t SystemTime = GetTimeSec() + best_before * 24L * 60L;
data->money += pay;
data->bonus = bonus;
data->best_before = SystemTime;
if(!write_mifare_card())
{ {
app_state.user_menu = USER_MENU_IDLE; uint32_t pay = 0, bonus = 0, best_before = 0;
} uint32_t counter_money = 0, counter_bonus = 0, counter_runs = 0;
else uint32_t counter_money_sum = 0, counter_bonus_sum = 0, counter_runs_sum = 0;
{ uint32_t all_counter_money = 0;
app_state.user_menu = USER_MENU_FINISH_PAY_BONUS_CARD;
PrintFinishPayMenu(); GetData(&AbonementMoneyDesc, &pay, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
RefreshMenu(); GetData(&AbonementBonusDesc, &bonus, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
PlayMusicFile(52); GetData(&AbonementBestBeforeDesc, &best_before, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
GetData(&CounterMoneyAbonementDesc, &counter_money, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
GetData(&CounterBonusAbonementDesc, &counter_bonus, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
GetData(&CounterRunsAbonementDesc, &counter_runs, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
GetData(&CounterMoneyAbonementDesc, &counter_money_sum, 4, DATA_FLAG_DIRECT_INDEX);
GetData(&CounterBonusAbonementDesc, &counter_bonus_sum, 4, DATA_FLAG_DIRECT_INDEX);
GetData(&CounterRunsAbonementDesc, &counter_runs_sum, 4, DATA_FLAG_DIRECT_INDEX);
GetData(&CounterAbonementMoneyDesc, &all_counter_money, 0, DATA_FLAG_DIRECT_INDEX);
counter_money += pay;
counter_bonus += bonus;
counter_runs++;
counter_money_sum += pay;
counter_bonus_sum += bonus;
counter_runs_sum++;
all_counter_money += pay;
SetData(&CounterMoneyAbonementDesc, &counter_money, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
SetData(&CounterBonusAbonementDesc, &counter_bonus, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
SetData(&CounterRunsAbonementDesc, &counter_runs, app_state.current_abonement, DATA_FLAG_DIRECT_INDEX);
SetData(&CounterMoneyAbonementDesc, &counter_money_sum, 4, DATA_FLAG_DIRECT_INDEX);
SetData(&CounterBonusAbonementDesc, &counter_bonus_sum, 4, DATA_FLAG_DIRECT_INDEX);
SetData(&CounterRunsAbonementDesc, &counter_runs_sum, 4, DATA_FLAG_DIRECT_INDEX);
SetData(&CounterAbonementMoneyDesc, &all_counter_money, 0, DATA_FLAG_DIRECT_INDEX);
uint32_t SystemTime = GetTimeSec() + best_before * 24L * 60L;
data->money += pay;
data->bonus = bonus;
data->best_before = SystemTime;
data->type_abonement = app_state.current_abonement;
if(!write_mifare_card())
{
app_state.user_menu = USER_MENU_IDLE;
}
else
{
app_state.user_menu = USER_MENU_FINISH_PAY_BONUS_CARD;
PrintFinishPayMenu();
RefreshMenu();
PlayMusicFile(52);
}
} }
} }
@ -890,10 +900,13 @@ void AppVladEventProcess(CPU_INT32U event)
if(app_state.user_menu == USER_MENU_ABONENT_PROCESSING) if(app_state.user_menu == USER_MENU_ABONENT_PROCESSING)
{ {
mifaredata_t* data = get_mifare_data(); abonement_data* data = get_abonement_data();
CPU_INT32U password;
GetData(&PassDescAdmin, &password, 0, DATA_FLAG_SYSTEM_INDEX);
if(data->money + data->bonus > app_state.moneytopay if(read_mifare_card() != NULL
&& read_mifare_card() != NULL) && data->money + data->bonus > app_state.moneytopay
&& data->uid[0] == password)
{ {
int delta = data->money - app_state.moneytopay; int delta = data->money - app_state.moneytopay;
data->bonus -= (delta < 0) ? delta : 0; data->bonus -= (delta < 0) ? delta : 0;
@ -901,7 +914,7 @@ void AppVladEventProcess(CPU_INT32U event)
if(!write_mifare_card()) if(!write_mifare_card())
{ {
SaveEventRecord(app_state.ch_index, JOURNAL_EVENT_CARD_REJECTED, 0); SaveEventRecord(app_state.ch_index, JOURNAL_EVENT_ABONEMENT_REJECTED, 0);
UserPrintPaymentErrorMenu(); UserPrintPaymentErrorMenu();
RefreshMenu(); RefreshMenu();
app_state.user_menu = USER_MENU_CARD_FAIL; app_state.user_menu = USER_MENU_CARD_FAIL;
@ -910,14 +923,14 @@ void AppVladEventProcess(CPU_INT32U event)
else else
{ {
SetAcceptedMoney(app_state.moneytopay); SetAcceptedMoney(app_state.moneytopay);
SaveEventRecord(app_state.ch_index, JOURNAL_EVENT_CARD_ACCEPTED, app_state.moneytopay); SaveEventRecord(app_state.ch_index, JOURNAL_EVENT_ABONEMENT_ACCEPTED, app_state.moneytopay);
app_state.user_menu = USER_MENU_CARD_OK; app_state.user_menu = USER_MENU_CARD_OK;
PostUserEvent(EVENT_FINISH_PAYMENT_ABONEMENT_SOLARIUM); PostUserEvent(EVENT_FINISH_PAYMENT_ABONEMENT_SOLARIUM);
} }
} }
else else
{ {
SaveEventRecord(app_state.ch_index, JOURNAL_EVENT_CARD_REJECTED, 0); SaveEventRecord(app_state.ch_index, JOURNAL_EVENT_ABONEMENT_REJECTED, 0);
UserPrintPaymentErrorMenu(); UserPrintPaymentErrorMenu();
RefreshMenu(); RefreshMenu();
app_state.user_menu = USER_MENU_CARD_FAIL; app_state.user_menu = USER_MENU_CARD_FAIL;
@ -2418,7 +2431,7 @@ void PrintStartReadCardMenu(void)
void PrintBalanceMenu(void) void PrintBalanceMenu(void)
{ {
char str[32]; char str[32];
mifaredata_t* data = get_mifare_data(); abonement_data* data = get_abonement_data();
PrintUserMenuStr(" Âàøà êàðòà çàãàðà: ", 0); PrintUserMenuStr(" Âàøà êàðòà çàãàðà: ", 0);

View File

@ -194,6 +194,12 @@ void GetEventStr(char* str, char event)
case JOURNAL_EVENT_CARD_REJECTED: case JOURNAL_EVENT_CARD_REJECTED:
sprintf(str, "Áàíê.îïëàòà "); sprintf(str, "Áàíê.îïëàòà ");
break; break;
case JOURNAL_EVENT_ABONEMENT_ACCEPTED:
sprintf(str, "ÁÊÇ.îïëàòà ");
break;
case JOURNAL_EVENT_ABONEMENT_REJECTED:
sprintf(str, "ÁÊÇ.îïëàòà ");
break;
case JOURNAL_EVENT_START_SESSION: case JOURNAL_EVENT_START_SESSION:
#if defined(BOARD_CENTRAL_CARWASH) #if defined(BOARD_CENTRAL_CARWASH)
sprintf(str, "Íà÷.ðàáîòû "); sprintf(str, "Íà÷.ðàáîòû ");

View File

@ -102,7 +102,10 @@ typedef struct{
// ÂÑÅ ÎØÈÁÊÈ ÔÐ ÔÀÒÀËÜÍÛÅ // ÂÑÅ ÎØÈÁÊÈ ÔÐ ÔÀÒÀËÜÍÛÅ
#define ERROR_FR 53 #define ERROR_FR 53
#define JOURNAL_EVENTS_COUNT (ERROR_FR+FR_ERROR_NUMBER) // ÷èñëî ñîáûòèé #define JOURNAL_EVENT_ABONEMENT_ACCEPTED 54 // ïðèíÿò àáîíåìåíò, ñóììà áåçíàëà
#define JOURNAL_EVENT_ABONEMENT_REJECTED 55 // àáîíåìåíò îòêëîíåíà
#define JOURNAL_EVENTS_COUNT (JOURNAL_EVENT_ABONEMENT_REJECTED+FR_ERROR_NUMBER) // ÷èñëî ñîáûòèé
// êàíàë // êàíàë
CPU_INT08U channel; CPU_INT08U channel;

View File

@ -5119,7 +5119,7 @@ CPU_INT08U const AbonementIndexHour_str0[] = "
CPU_INT08U const AbonementIndexHour_str1[] = "ÇÎËÎÒÎé"; CPU_INT08U const AbonementIndexHour_str1[] = "ÇÎËÎÒÎé";
CPU_INT08U const AbonementIndexHour_str2[] = "ÏËÀÒÈÍÎÂÛé"; CPU_INT08U const AbonementIndexHour_str2[] = "ÏËÀÒÈÍÎÂÛé";
CPU_INT08U const AbonementIndexHour_str3[] = "ÀËÌÀÇÍÛé"; CPU_INT08U const AbonementIndexHour_str3[] = "ÀËÌÀÇÍÛé";
CPU_INT08U const *AbonementIndexHourList[] = {AbonementIndexHour_str0, AbonementIndexHour_str1/*, AbonementIndexHour_str2, AbonementIndexHour_str3*/}; CPU_INT08U const *AbonementIndexHourList[] = {AbonementIndexHour_str0, AbonementIndexHour_str1, AbonementIndexHour_str2, AbonementIndexHour_str3};
CPU_INT32U abonement_index; CPU_INT32U abonement_index;
@ -5305,9 +5305,9 @@ CPU_INT08U const AbonementBestBeforeName[] = "
TDataDescStruct const AbonementBestBeforeDesc = { TDataDescStruct const AbonementBestBeforeDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
2, // ðàçìåð ìàññèâà 4, // ðàçìåð ìàññèâà
&AbonementIndexDesc, // óêàçàòåëü íà äåñêðèïòîð èíäåêñà ìàññèâà &AbonementIndexDesc, // óêàçàòåëü íà äåñêðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, AbonementBestBefore), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM (void*)offsetof(TFramMap, AbonementBestBefore), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&AbonementBestBeforeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà (void*)&AbonementBestBeforeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà

View File

@ -3,8 +3,13 @@
#include "rfid-spi.h" #include "rfid-spi.h"
#include "time.h" #include "time.h"
#include "CRC16.h"
#include "datadesc.h"
// äàííûå ñ÷èòàííûå ñ êàðòû
mifaredata_t mifare_card_data; mifaredata_t mifare_card_data;
// âàëèäíûå äàííûå àáîíåìåíòà
abonement_data abonement;
#define START_BLOCK 12 #define START_BLOCK 12
#define NR_KNOWN_KEYS 2 #define NR_KNOWN_KEYS 2
@ -24,6 +29,16 @@ void set_mifare_data(mifaredata_t* data)
memcpy(&mifare_card_data, &data, sizeof(mifaredata_t)); memcpy(&mifare_card_data, &data, sizeof(mifaredata_t));
} }
abonement_data* get_abonement_data()
{
return &abonement;
}
void set_abonement_data(abonement_data* data)
{
memcpy(&abonement, &data, sizeof(abonement_data));
}
/** /**
* Calculates the bit pattern needed for the specified access bits. In the [C1 C2 C3] tuples C1 is MSB (=4) and C3 is LSB (=1). * Calculates the bit pattern needed for the specified access bits. In the [C1 C2 C3] tuples C1 is MSB (=4) and C3 is LSB (=1).
*/ */
@ -143,6 +158,29 @@ mifaredata_t* read_mifare_card()
if(block%4 == 3) block++; if(block%4 == 3) block++;
} }
CPU_INT32U crc1;
crc1 = crc16((unsigned char*)&mifare_card_data.abonement_data_copy1.init, sizeof(abonement_data) - sizeof(CPU_INT32U));
if(crc1 == mifare_card_data.abonement_data_copy1.crc)
{
memcpy(&abonement, &mifare_card_data.abonement_data_copy1.init, sizeof(abonement_data));
}
else
{
CPU_INT32U crc2 = crc16((unsigned char*)&mifare_card_data.abonement_data_copy2.init, sizeof(abonement_data) - sizeof(CPU_INT32U));
if(crc2 == mifare_card_data.abonement_data_copy2.crc)
{
memcpy(&abonement, &mifare_card_data.abonement_data_copy2.init, sizeof(abonement_data));
}
else
{
for(uint8_t i = 0; i < sizeof(abonement_data); i++)
{
((uint8_t *)&abonement)[i] = 0x00;
}
}
}
return &mifare_card_data; return &mifare_card_data;
} }
@ -185,6 +223,16 @@ bool write_mifare_card()
return false; return false;
} }
CPU_INT32U crc;
memcpy(&mifare_card_data.abonement_data_copy1.init, &abonement, sizeof(abonement_data) - sizeof(CPU_INT32U));
crc = crc16((unsigned char*)&mifare_card_data.abonement_data_copy1.init, sizeof(abonement_data) - sizeof(CPU_INT32U));
mifare_card_data.abonement_data_copy1.crc = crc;
memcpy(&mifare_card_data.abonement_data_copy2.init, &abonement, sizeof(abonement_data) - sizeof(CPU_INT32U));
crc = crc16((unsigned char*)&mifare_card_data.abonement_data_copy2.init, sizeof(abonement_data) - sizeof(CPU_INT32U));
mifare_card_data.abonement_data_copy2.crc = crc;
for(uint8_t i = 0; i < sizeof(mifare_card_data); i += 16) for(uint8_t i = 0; i < sizeof(mifare_card_data); i += 16)
{ {
status = pcd_authenticate(PICC_CMD_MF_AUTH_KEY_B, block, &key, get_uid()); status = pcd_authenticate(PICC_CMD_MF_AUTH_KEY_B, block, &key, get_uid());
@ -224,28 +272,50 @@ void stop_card_working()
mifaredata_t* init_mifare_card_data() mifaredata_t* init_mifare_card_data()
{ {
for(uint8_t i = 0; i < sizeof(mifare_card_data); i++) for(uint8_t i = 0; i < sizeof(mifaredata_t); i++)
{ {
((uint8_t *)&mifare_card_data)[i] = 0x00; ((uint8_t *)&mifare_card_data)[i] = 0x00;
} }
mifare_card_data.init = 0xDEADBEEF; for(uint8_t i = 0; i < sizeof(abonement_data); i++)
{
((uint8_t *)&abonement)[i] = 0x00;
}
abonement.init = 0xDEADBEEF;
CPU_INT32U password;
GetData(&PassDescAdmin, &password, 0, DATA_FLAG_SYSTEM_INDEX);
abonement.uid[0] = password;
return &mifare_card_data; return &mifare_card_data;
} }
bool is_empty_mifare_card() bool is_empty_mifare_card()
{ {
return mifare_card_data.init != 0xDEADBEEF; bool empty = false;
CPU_INT32U crc1, crc2;
crc1 = crc16((unsigned char*)&mifare_card_data.abonement_data_copy1.init, sizeof(abonement_data) - sizeof(CPU_INT32U));
crc2 = crc16((unsigned char*)&mifare_card_data.abonement_data_copy2.init, sizeof(abonement_data) - sizeof(CPU_INT32U));
if((mifare_card_data.abonement_data_copy1.init != 0xDEADBEEF || crc1 != mifare_card_data.abonement_data_copy1.crc)
&& (mifare_card_data.abonement_data_copy2.init != 0xDEADBEEF || crc2 != mifare_card_data.abonement_data_copy2.crc)
)
{
empty = true;
}
return empty;
} }
bool need_clear_bonus() bool need_clear_bonus()
{ {
uint32_t SystemTime = GetTimeSec(); uint32_t SystemTime = GetTimeSec();
if(SystemTime > mifare_card_data.best_before) if(SystemTime > abonement.best_before)
{ {
mifare_card_data.bonus = 0; abonement.bonus = 0;
return true; return true;
} }

View File

@ -5,22 +5,35 @@
#include <stdbool.h> #include <stdbool.h>
typedef struct { typedef struct {
uint32_t init; // 4 - îáÿçàòåëüíî äîëæíà áûòü â íà÷àëå
uint32_t uid[5]; // 20
uint32_t init; // 4
uint32_t uid[10]; // 40
uint32_t money; // 4 uint32_t money; // 4
uint32_t bonus; // 4 uint32_t bonus; // 4
uint32_t type_abonement; // 4 uint32_t type_abonement; // 4
uint32_t number_abonement; // 4 uint32_t number_abonement; // 4
uint32_t best_before; // 4 uint32_t best_before; // 4
uint32_t crc; // 4
uint8_t reserv[32]; // 32 } abonement_data; // 48
typedef struct {
abonement_data abonement_data_copy1; // 48
abonement_data abonement_data_copy2; // 48
} mifaredata_t; // 96 } mifaredata_t; // 96
extern mifaredata_t* get_mifare_data(); extern mifaredata_t* get_mifare_data();
extern void set_mifare_data(mifaredata_t* data); extern void set_mifare_data(mifaredata_t* data);
/// @brief Óñòàíîâêà äàííûõ àáîíåìåíòà
/// @param data
extern void set_abonement_data(abonement_data* data);
/// @brief Äàííûå àáîíåìåíòà, ïîëó÷åíèå
/// @return
extern abonement_data* get_abonement_data();
extern mifaredata_t* read_mifare_card(); extern mifaredata_t* read_mifare_card();
extern bool write_mifare_card(); extern bool write_mifare_card();
extern mifaredata_t* init_mifare_card_data(); extern mifaredata_t* init_mifare_card_data();

View File

@ -25,7 +25,7 @@ if not "%~1" == "" goto debugFile
@echo on @echo on
"C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --backend -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl" "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --backend -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
@echo off @echo off
goto end goto end
@ -34,7 +34,7 @@ goto end
@echo on @echo on
"C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" "--debug_file=%~1" --backend -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl" "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" "--debug_file=%~1" --backend -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
@echo off @echo off
:end :end

View File

@ -23,9 +23,9 @@
if ($debugfile -eq "") if ($debugfile -eq "")
{ {
& "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --backend -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl" & "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --backend -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
} }
else else
{ {
& "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --debug_file=$debugfile --backend -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl" & "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --debug_file=$debugfile --backend -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
} }

View File

@ -2,7 +2,7 @@
"C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\bin\armJLINK.dll" "C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\bin\armJLINK.dll"
"C:\work\solarium.vlad\Solarium Vlad\Exe\sk_mlpc2368.out" "C:\git_work\solarium.vlad\Solarium Vlad\Exe\sk_mlpc2368.out"
--plugin="C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\bin\armbat.dll" --plugin="C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\bin\armbat.dll"

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff