Skip to content

Commit e0154c4

Browse files
author
nofeletru
committed
Добавлен blankcheck и исправлен прошлый исправленный коммит =)
1 parent d13d181 commit e0154c4

File tree

2 files changed

+72
-25
lines changed

2 files changed

+72
-25
lines changed

software/main.lfm

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -66,21 +66,23 @@ object MainForm: TMainForm
6666
Left = 203
6767
Hint = 'Сравнить содержимое EEPROM'
6868
Top = 2
69+
DropdownMenu = BlankCheckDropDownMenu
6970
ImageIndex = 6
7071
OnClick = ButtonVerifyClick
7172
ParentShowHint = False
7273
ShowHint = True
74+
Style = tbsDropDown
7375
end
7476
object ToolButton1: TToolButton
75-
Left = 239
77+
Left = 251
7678
Height = 32
7779
Top = 2
7880
Width = 10
7981
Caption = 'ToolButton1'
8082
Style = tbsSeparator
8183
end
8284
object ButtonReadID: TToolButton
83-
Left = 249
85+
Left = 261
8486
Hint = 'Прочитать индификатор EEPROM'
8587
Top = 2
8688
ImageIndex = 2
@@ -89,7 +91,7 @@ object MainForm: TMainForm
8991
ShowHint = True
9092
end
9193
object ButtonBlock: TToolButton
92-
Left = 285
94+
Left = 297
9395
Hint = 'Снять защиту'
9496
Top = 2
9597
DropdownMenu = DropdownMenuLock
@@ -109,7 +111,7 @@ object MainForm: TMainForm
109111
Style = tbsSeparator
110112
end
111113
object RadioSPI: TRadioButton
112-
Left = 389
114+
Left = 401
113115
Height = 19
114116
Top = 2
115117
Width = 36
@@ -120,7 +122,7 @@ object MainForm: TMainForm
120122
TabStop = True
121123
end
122124
object RadioI2C: TRadioButton
123-
Left = 425
125+
Left = 437
124126
Height = 19
125127
Top = 2
126128
Width = 37
@@ -129,7 +131,7 @@ object MainForm: TMainForm
129131
TabOrder = 1
130132
end
131133
object RadioMw: TRadioButton
132-
Left = 462
134+
Left = 474
133135
Height = 19
134136
Top = 2
135137
Width = 107
@@ -138,7 +140,7 @@ object MainForm: TMainForm
138140
TabOrder = 2
139141
end
140142
object ToolButton2: TToolButton
141-
Left = 333
143+
Left = 345
142144
Height = 32
143145
Top = 2
144146
Width = 10
@@ -166,7 +168,7 @@ object MainForm: TMainForm
166168
ShowHint = True
167169
end
168170
object ButtonCancel: TToolButton
169-
Left = 343
171+
Left = 355
170172
Hint = 'Прервать текущею операцию'
171173
Top = 2
172174
ImageIndex = 8
@@ -175,15 +177,15 @@ object MainForm: TMainForm
175177
ShowHint = True
176178
end
177179
object ToolButton5: TToolButton
178-
Left = 379
180+
Left = 391
179181
Height = 32
180182
Top = 2
181183
Width = 10
182184
Caption = 'ToolButton5'
183185
Style = tbsSeparator
184186
end
185187
object ToolButton4: TToolButton
186-
Left = 569
188+
Left = 581
187189
Height = 32
188190
Top = 2
189191
Width = 10
@@ -373,7 +375,7 @@ object MainForm: TMainForm
373375
object Panel_I2C_DevAddr: TPanel
374376
Left = 448
375377
Height = 37
376-
Top = -6
378+
Top = 0
377379
Width = 336
378380
BevelOuter = bvNone
379381
ClientHeight = 37
@@ -474,6 +476,8 @@ object MainForm: TMainForm
474476
Top = 93
475477
Width = 802
476478
Align = alClient
479+
Colors.DigitTextEven = clNavy
480+
Colors.DigitTextOdd = clNavy
477481
DigitGrouping = 1
478482
Font.Height = -15
479483
Font.Name = 'Courier New'
@@ -1926,4 +1930,12 @@ object MainForm: TMainForm
19261930
OnClick = MenuItemEditSregClick
19271931
end
19281932
end
1933+
object BlankCheckDropDownMenu: TPopupMenu
1934+
left = 480
1935+
top = 296
1936+
object BlankCheckMenuItem: TMenuItem
1937+
Caption = 'Проверка на чистоту'
1938+
OnClick = BlankCheckMenuItemClick
1939+
end
1940+
end
19291941
end

software/main.pas

Lines changed: 49 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ TMainForm = class(TForm)
7171
MenuAVRISP250KHz: TMenuItem;
7272
MenuAVRISP125KHz: TMenuItem;
7373
LangMenuItem: TMenuItem;
74+
BlankCheckMenuItem: TMenuItem;
7475
MenuItemHardware: TMenuItem;
7576
MenuItemBenchmark: TMenuItem;
7677
MenuItemEditSreg: TMenuItem;
@@ -95,6 +96,7 @@ TMainForm = class(TForm)
9596
LogPopupMenu: TPopupMenu;
9697
DropdownMenuLock: TPopupMenu;
9798
Panel_I2C_DevAddr: TPanel;
99+
BlankCheckDropDownMenu: TPopupMenu;
98100
ProgressBar: TProgressBar;
99101
RadioI2C: TRadioButton;
100102
RadioMw: TRadioButton;
@@ -118,6 +120,7 @@ TMainForm = class(TForm)
118120
ButtonCancel: TToolButton;
119121
ToolButton4: TToolButton;
120122
ToolButton5: TToolButton;
123+
procedure BlankCheckMenuItemClick(Sender: TObject);
121124
procedure ButtonEraseClick(Sender: TObject);
122125
procedure ButtonReadClick(Sender: TObject);
123126
procedure ClearLogMenuItemClick(Sender: TObject);
@@ -153,6 +156,7 @@ TMainForm = class(TForm)
153156
procedure ButtonSaveHexClick(Sender: TObject);
154157
procedure ButtonCancelClick(Sender: TObject);
155158
procedure I2C_DevAddrChange(Sender: TObject);
159+
procedure VerifyFlash(BlankCheck: boolean = false);
156160
private
157161
{ private declarations }
158162
public
@@ -2343,9 +2347,15 @@ procedure TMainForm.ButtonWriteClick(Sender: TObject);
23432347
end;
23442348

23452349
procedure TMainForm.ButtonVerifyClick(Sender: TObject);
2350+
begin
2351+
VerifyFlash(false);
2352+
end;
2353+
2354+
procedure TMainForm.VerifyFlash(BlankCheck: boolean = false);
23462355
var
23472356
I2C_DevAddr: byte;
23482357
I2C_ChunkSize: Word = 65535;
2358+
i: Longword;
23492359
begin
23502360
try
23512361
ButtonCancel.Tag := 0;
@@ -2357,7 +2367,7 @@ procedure TMainForm.ButtonVerifyClick(Sender: TObject);
23572367
LogPrint(STR_CHECK_SETTINGS, clRed);
23582368
Exit;
23592369
end;
2360-
if KHexEditor.Data.Size > StrToInt(ComboChipSize.Text) then
2370+
if (KHexEditor.Data.Size > StrToInt(ComboChipSize.Text)) and (not BlankCheck) then
23612371
begin
23622372
LogPrint(STR_WRONG_FILE_SIZE, clRed);
23632373
Exit;
@@ -2370,18 +2380,24 @@ procedure TMainForm.ButtonVerifyClick(Sender: TObject);
23702380
EnterProgMode25(hUSBdev);
23712381
TimeCounter := Time();
23722382

2373-
RomF.Position :=0;
2374-
KHexEditor.SaveToStream(RomF);
2383+
RomF.Clear;
2384+
if BlankCheck then
2385+
begin
2386+
for i:=1 to StrToInt(ComboChipSize.Text) do
2387+
RomF.WriteByte($FF);
2388+
end
2389+
else
2390+
KHexEditor.SaveToStream(RomF);
23752391
RomF.Position :=0;
23762392

23772393
if ComboSPICMD.ItemIndex = SPI_CMD_KB then
2378-
VerifyFlashKB(RomF, 0, KHexEditor.Data.Size);
2394+
VerifyFlashKB(RomF, 0, RomF.Size);
23792395

23802396
if ComboSPICMD.ItemIndex = SPI_CMD_25 then
2381-
VerifyFlash25(RomF, 0, KHexEditor.Data.Size);
2397+
VerifyFlash25(RomF, 0, RomF.Size);
23822398

23832399
if ComboSPICMD.ItemIndex = SPI_CMD_95 then
2384-
VerifyFlash95(RomF, 0, KHexEditor.Data.Size, StrToInt(ComboChipSize.Text));
2400+
VerifyFlash95(RomF, 0, RomF.Size, StrToInt(ComboChipSize.Text));
23852401

23862402
if ComboSPICMD.ItemIndex = SPI_CMD_45 then
23872403
begin
@@ -2390,7 +2406,7 @@ procedure TMainForm.ButtonVerifyClick(Sender: TObject);
23902406
LogPrint(STR_CHECK_SETTINGS, clRed);
23912407
Exit;
23922408
end;
2393-
VerifyFlash45(RomF, 0, StrToInt(ComboPageSize.Text), KHexEditor.Data.Size);
2409+
VerifyFlash45(RomF, 0, StrToInt(ComboPageSize.Text), RomF.Size);
23942410
end;
23952411

23962412

@@ -2418,10 +2434,17 @@ procedure TMainForm.ButtonVerifyClick(Sender: TObject);
24182434
end;
24192435
TimeCounter := Time();
24202436

2437+
RomF.Clear;
2438+
if BlankCheck then
2439+
begin
2440+
for i:=1 to StrToInt(ComboChipSize.Text) do
2441+
RomF.WriteByte($FF);
2442+
end
2443+
else
2444+
KHexEditor.SaveToStream(RomF);
24212445
RomF.Position :=0;
2422-
KHexEditor.SaveToStream(RomF);
2423-
RomF.Position :=0;
2424-
VerifyFlashI2C(RomF, KHexEditor.Data.Size, I2C_ChunkSize, I2C_DevAddr);
2446+
2447+
VerifyFlashI2C(RomF, RomF.Size, I2C_ChunkSize, I2C_DevAddr);
24252448
end;
24262449

24272450
//Microwire
@@ -2437,9 +2460,16 @@ procedure TMainForm.ButtonVerifyClick(Sender: TObject);
24372460
EnterProgMode25(hUSBdev);
24382461
TimeCounter := Time();
24392462

2463+
RomF.Clear;
2464+
if BlankCheck then
2465+
begin
2466+
for i:=1 to StrToInt(ComboChipSize.Text) do
2467+
RomF.WriteByte($FF);
2468+
end
2469+
else
2470+
KHexEditor.SaveToStream(RomF);
24402471
RomF.Position :=0;
2441-
KHexEditor.SaveToStream(RomF);
2442-
RomF.Position :=0;
2472+
24432473
VerifyFlashMW(RomF, StrToInt(ComboMWBitLen.Text), 0, StrToInt(ComboChipSize.Text));
24442474
end;
24452475

@@ -2739,8 +2769,8 @@ procedure TMainForm.FormDestroy(Sender: TObject);
27392769

27402770
procedure TMainForm.ButtonReadClick(Sender: TObject);
27412771
var
2742-
I2C_DevAddr: byte = 65535;
2743-
I2C_ChunkSize: word;
2772+
I2C_DevAddr: byte;
2773+
I2C_ChunkSize: word = 65535;
27442774
begin
27452775
try
27462776
ButtonCancel.Tag := 0;
@@ -3013,6 +3043,11 @@ procedure TMainForm.ButtonEraseClick(Sender: TObject);
30133043
end;
30143044
end;
30153045

3046+
procedure TMainForm.BlankCheckMenuItemClick(Sender: TObject);
3047+
begin
3048+
VerifyFlash(true);
3049+
end;
3050+
30163051
procedure SaveOptions(XMLfile: TXMLDocument);
30173052
var
30183053
Node, ParentNode: TDOMNode;

0 commit comments

Comments
 (0)