Чтение и запись работают, но нужно правильно распределение памяти сделать

This commit is contained in:
Dmitriy 2025-04-18 02:38:00 +03:00
parent 8dee5e0086
commit fe6ca8768d
9 changed files with 2119 additions and 2089 deletions

View File

@ -758,6 +758,8 @@ void AppVladEventProcess(CPU_INT32U event)
break; break;
} }
} }
stop_card_working();
} }
} }
} }

View File

@ -4975,10 +4975,10 @@ char const SolarCleaningTimeoutMinutesDescId[] = "SolarCleaningTimeoutMinutesDes
*************************************/ *************************************/
CPU_INT08U const AbonementIndexName[] = ""; CPU_INT08U const AbonementIndexName[] = "";
TRangeValueULONG const AbonementIndexHourRange = {0, 3}; TRangeValueULONG const AbonementIndexHourRange = {0, 3};
CPU_INT08U const AbonementIndexHour_str0[] = "ÑÅÐÅÁÐßÍÍÛÉ"; 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;
@ -5032,10 +5032,10 @@ TDataDescStruct const AbonementMoneyDesc = {
*************************************/ *************************************/
TRangeValueULONG const AbonementIndexRange = {0, 4}; TRangeValueULONG const AbonementIndexRange = {0, 4};
CPU_INT08U const AbonementIndex_str0[] = "ÑÅÐÅÁÐßÍÍÛÉ"; CPU_INT08U const AbonementIndex_str0[] = "ÑÅÐÅÁÐßÍÍÛé";
CPU_INT08U const AbonementIndex_str1[] = "ÇÎËÎÒÎÉ"; CPU_INT08U const AbonementIndex_str1[] = "ÇÎËÎÒÎé";
CPU_INT08U const AbonementIndex_str2[] = "ÏËÀÒÈÍÎÂÛÉ"; CPU_INT08U const AbonementIndex_str2[] = "ÏËÀÒÈÍÎÂÛé";
CPU_INT08U const AbonementIndex_str3[] = "ÀËÌÀÇÍÛÉ"; CPU_INT08U const AbonementIndex_str3[] = "ÀËÌÀÇÍÛé";
CPU_INT08U const AbonementIndex_str4[] = "ÈÒÎÃÎ"; CPU_INT08U const AbonementIndex_str4[] = "ÈÒÎÃÎ";
CPU_INT08U const *AbonementIndexList[] = {AbonementIndex_str0, AbonementIndex_str1, AbonementIndex_str2, AbonementIndex_str3, AbonementIndex_str4}; CPU_INT08U const *AbonementIndexList[] = {AbonementIndex_str0, AbonementIndex_str1, AbonementIndex_str2, AbonementIndex_str3, AbonementIndex_str4};
@ -5062,6 +5062,8 @@ char const AbonementCounterIndexDescId[] = "AbonementCounterIndexDesc";
Äåíüãè Äåíüãè
*************************************/ *************************************/
CPU_INT08U const AbonementMoneyAbonementName[] = "Îïëà÷åíî,ðóá";
TDataDescStruct const CounterMoneyAbonementDesc = { TDataDescStruct const CounterMoneyAbonementDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà DATA_TYPE_ULONG, // òèï ïàðàìåòðà
@ -5073,7 +5075,7 @@ TDataDescStruct const CounterMoneyAbonementDesc = {
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(AbonentCountersRecord), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå sizeof(AbonentCountersRecord), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
AbonementMoneyName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà AbonementMoneyAbonementName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê) DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE, DATA_INIT_DISABLE,

View File

@ -19,7 +19,7 @@ void set_mifare_data(mifaredata_t* data)
mifaredata_t* read_mifare_card() mifaredata_t* read_mifare_card()
{ {
status_code status; status_code status;
uint8_t block = 1; uint8_t block = 8;
uint8_t len = 18; uint8_t len = 18;
uint8_t buffer[18]; uint8_t buffer[18];
@ -39,15 +39,15 @@ mifaredata_t* read_mifare_card()
} }
block++; block++;
len = 18;
for (uint8_t j = 0; j < 16; j++) { for (uint8_t j = 0; j < 16; j++) {
((uint8_t *)&mifare_card_data)[i] = buffer[j]; ((uint8_t *)&mifare_card_data)[i + j] = buffer[j];
}
} }
picc_halt_a(); break;
pcd_stop_cryptol(); }
//stop_card_working();
return &mifare_card_data; return &mifare_card_data;
} }
@ -55,7 +55,7 @@ mifaredata_t* read_mifare_card()
bool write_mifare_card() bool write_mifare_card()
{ {
status_code status; status_code status;
uint8_t block = 1; uint8_t block = 8;
MIFARE_Key key; MIFARE_Key key;
for (uint8_t i = 0; i < 6; i++) key.keyByte[i] = 0xFF; for (uint8_t i = 0; i < 6; i++) key.keyByte[i] = 0xFF;
@ -73,14 +73,21 @@ bool write_mifare_card()
} }
block++; block++;
break;
} }
picc_halt_a(); //stop_card_working();
pcd_stop_cryptol();
return true; return true;
} }
void stop_card_working()
{
picc_halt_a();
pcd_stop_cryptol();
}
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(mifare_card_data); i++)
@ -89,6 +96,9 @@ mifaredata_t* init_mifare_card_data()
} }
mifare_card_data.init = 0xDEADBEEF; mifare_card_data.init = 0xDEADBEEF;
mifare_card_data.uid[0] = 0x5555AAAA;
mifare_card_data.uid[1] = 0xEEEEFFFF;
mifare_card_data.uid[2] = 0x11112222;
return &mifare_card_data; return &mifare_card_data;
} }

View File

@ -26,5 +26,6 @@ extern bool write_mifare_card();
extern mifaredata_t* init_mifare_card_data(); extern mifaredata_t* init_mifare_card_data();
extern bool is_empty_mifare_card(); extern bool is_empty_mifare_card();
extern bool need_clear_bonus(); extern bool need_clear_bonus();
extern void stop_card_working();
#endif #endif

View File

@ -738,6 +738,7 @@ const TMenuLineArray arr_SettingsMenuArray[] = {&line_SettingsMenu_0,
#endif #endif
#if defined(BOARD_SOLARIUM_VLAD) #if defined(BOARD_SOLARIUM_VLAD)
&line_SettingsMenu_10, &line_SettingsMenu_10,
&line_SettingsMenu_12,
&line_SettingsMenu_9, &line_SettingsMenu_9,
#endif #endif
#if defined(BOARD_CENTRAL_CARWASH) || defined(BOARD_SOLARIUM_VLAD) #if defined(BOARD_CENTRAL_CARWASH) || defined(BOARD_SOLARIUM_VLAD)
@ -765,7 +766,7 @@ const TMenuPanel SettingsMenuPanel[] = {arr_SettingsMenuArray, NULL,
#if defined(BOARD_CENTRAL_CARWASH) #if defined(BOARD_CENTRAL_CARWASH)
7 7
#elif defined(BOARD_SOLARIUM_VLAD) #elif defined(BOARD_SOLARIUM_VLAD)
9 10
#else #else
6 6
#endif #endif
@ -3205,7 +3206,7 @@ void OnEnterSolarModesCountersMenu(void)
solar_modes_index = 0; solar_modes_index = 0;
} }
const TMenuLineArray arr_SolarModesCountersArray[] = {&line_SolarModesCountersMenu_0, &line_SolarModesCountersMenu_6, &line_SolarModesCountersMenu_7, &line_SolarModesCountersMenu_1, &line_SolarModesCountersMenu_2, &line_SolarModesCountersMenu_3, &line_SolarModesCountersMenu_4, &line_SolarModesCountersMenu_5, NULL}; const TMenuLineArray arr_SolarModesCountersArray[] = {&line_SolarModesCountersMenu_0, &line_SolarModesCountersMenu_1, &line_SolarModesCountersMenu_6, &line_SolarModesCountersMenu_7, &line_SolarModesCountersMenu_2, &line_SolarModesCountersMenu_3, &line_SolarModesCountersMenu_4, &line_SolarModesCountersMenu_5, NULL};
const TMenuPanel SolarModesCountersPanel[] = {arr_SolarModesCountersArray, OnEnterSolarModesCountersMenu, 8, MENU_PANEL_STANDARD}; const TMenuPanel SolarModesCountersPanel[] = {arr_SolarModesCountersArray, OnEnterSolarModesCountersMenu, 8, MENU_PANEL_STANDARD};
/*********************************** /***********************************
@ -3273,7 +3274,7 @@ void OnEnterSolarChannelsCountersMenu(void)
solar_modes_index = 0; solar_modes_index = 0;
} }
const TMenuLineArray arr_SolarChannelsCountersArray[] = {&line_SolarChannelsCountersMenu_0, &line_SolarChannelsCountersMenu_6, &line_SolarChannelsCountersMenu_7, &line_SolarChannelsCountersMenu_1, &line_SolarChannelsCountersMenu_2, &line_SolarChannelsCountersMenu_3, &line_SolarChannelsCountersMenu_4, &line_SolarChannelsCountersMenu_5, NULL}; const TMenuLineArray arr_SolarChannelsCountersArray[] = {&line_SolarChannelsCountersMenu_0, &line_SolarChannelsCountersMenu_1, &line_SolarChannelsCountersMenu_6, &line_SolarChannelsCountersMenu_7, &line_SolarChannelsCountersMenu_2, &line_SolarChannelsCountersMenu_3, &line_SolarChannelsCountersMenu_4, &line_SolarChannelsCountersMenu_5, NULL};
const TMenuPanel SolarChannelsCountersPanel[] = {arr_SolarChannelsCountersArray, OnEnterSolarChannelsCountersMenu, 8, MENU_PANEL_STANDARD}; const TMenuPanel SolarChannelsCountersPanel[] = {arr_SolarChannelsCountersArray, OnEnterSolarChannelsCountersMenu, 8, MENU_PANEL_STANDARD};
/*********************************** /***********************************

File diff suppressed because one or more lines are too long

View File

@ -50,7 +50,7 @@
<MemConfigValue>C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\CONFIG\debugger\NXP\LPC2368.ddf</MemConfigValue> <MemConfigValue>C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\CONFIG\debugger\NXP\LPC2368.ddf</MemConfigValue>
</PlDriver> </PlDriver>
<DebugChecksum> <DebugChecksum>
<Checksum>2582529319</Checksum> <Checksum>2092476174</Checksum>
</DebugChecksum> </DebugChecksum>
<Exceptions> <Exceptions>
<StopOnUncaught>_ 0</StopOnUncaught> <StopOnUncaught>_ 0</StopOnUncaught>
@ -67,14 +67,21 @@
<WatchCond>_ 0</WatchCond> <WatchCond>_ 0</WatchCond>
<Watch0>_ 0 "0x00000000" 4294967295 "0xFFFFFFFF" 0 "0x00000000" 4294967295 "0xFFFFFFFF" 3 0 0 0</Watch0> <Watch0>_ 0 "0x00000000" 4294967295 "0xFFFFFFFF" 0 "0x00000000" 4294967295 "0xFFFFFFFF" 3 0 0 0</Watch0>
<Watch1>_ 0 "0x00000000" 4294967295 "0xFFFFFFFF" 0 "0x00000000" 4294967295 "0xFFFFFFFF" 3 0 0 0</Watch1> <Watch1>_ 0 "0x00000000" 4294967295 "0xFFFFFFFF" 0 "0x00000000" 4294967295 "0xFFFFFFFF" 3 0 0 0</Watch1>
<jlinkResetStyle>12</jlinkResetStyle>
<jlinkResetStrategy>0</jlinkResetStrategy>
<LeaveTargetRunning>_ 0</LeaveTargetRunning> <LeaveTargetRunning>_ 0</LeaveTargetRunning>
<CStepIntDis>_ 0</CStepIntDis> <CStepIntDis>_ 0</CStepIntDis>
<jlinkResetStyle>12</jlinkResetStyle>
<jlinkResetStrategy>0</jlinkResetStrategy>
</JLinkDriver> </JLinkDriver>
<ArmDriver> <ArmDriver>
<EnableCache>0</EnableCache> <EnableCache>0</EnableCache>
</ArmDriver> </ArmDriver>
<struct_types>
<Fmt0>mifaredata_t-bonus 4 0</Fmt0>
<Fmt1>mifaredata_t-init 4 0</Fmt1>
</struct_types>
<array_types>
<Fmt0>uint32_t[10] 4 0</Fmt0>
</array_types>
<Trace2> <Trace2>
<Enabled>0</Enabled> <Enabled>0</Enabled>
<ShowSource>0</ShowSource> <ShowSource>0</ShowSource>
@ -104,10 +111,11 @@
<mode>0</mode> <mode>0</mode>
</DisassembleMode> </DisassembleMode>
<Breakpoints2> <Breakpoints2>
<Bp0>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\drivers\mfrc522\rfid-spi.c}.263.5" 0 0 1 "" 0 "" 0</Bp0> <Bp0>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\drivers\mfrc522\rfid-spi.c}.321.7" 0 0 1 "" 0 "" 0</Bp0>
<Bp1>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\drivers\mfrc522\rfid-spi.c}.321.7" 0 0 1 "" 0 "" 0</Bp1> <Bp1>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\drivers\mfrc522\rfid-spi.c}.190.3" 0 0 1 "" 0 "" 0</Bp1>
<Bp2>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\drivers\mfrc522\rfid-spi.c}.190.3" 0 0 1 "" 0 "" 0</Bp2> <Bp2>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\app\app_vlad.c}.753.36" 0 0 1 "" 0 "" 0</Bp2>
<Count>3</Count> <Bp3>_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\app\app_vlad.c}.752.32" 0 0 1 "" 0 "" 0</Bp3>
<Count>4</Count>
</Breakpoints2> </Breakpoints2>
<Aliases> <Aliases>
<Count>0</Count> <Count>0</Count>

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff