Skip to content

Commit 67b2a17

Browse files
committed
1. add first execute check feature
1 parent d144efd commit 67b2a17

File tree

13 files changed

+217
-265
lines changed

13 files changed

+217
-265
lines changed

SysEeprom.c

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44
* File name : SysEeprom.c
55
*/
66
/*********************************************************************************/
7+
#include <string.h>
78
#include "SysEeprom.h"
89
/*********************************************************************************/
9-
#if(SYS_EEPROM_REVISION_DATE != 20190723)
10+
#if(SYS_EEPROM_REVISION_DATE != 20190905)
1011
#error wrong include file. (SysEeprom.h)
1112
#endif
1213
/*********************************************************************************/
@@ -21,6 +22,8 @@ static inline tU8 CheckAllOfInit(tag_EepControl *Eep)
2122
tU8 InitEepCommonConfig(tag_EepCommonConfig *EepConfig, tU16 LastAddr, tU8 (*EepromWrite)(tU16 Addr, tU8 Data), tU8 (*EepromRead)(tU16 Addr, tU8 *pData))
2223
{
2324
tU16 *pLastAddr = (tU16 *) &EepConfig->LastAddr;
25+
static tag_EepControl EepSignature = { .Bit.InitGeneral = false };
26+
volatile static tU8 StrSignature[3];
2427

2528
/*
2629
1) 인수
@@ -40,7 +43,25 @@ tU8 InitEepCommonConfig(tag_EepCommonConfig *EepConfig, tU16 LastAddr, tU8 (*Eep
4043
EepConfig->EepromWrite = EepromWrite;
4144
EepConfig->EepromRead = EepromRead;
4245
EepConfig->Bit.Init = true;
43-
46+
47+
memset((void *) StrSignature, 0, sizeof(StrSignature));
48+
49+
InitEepControl(&EepSignature, (const tU8 *) StrSignature, sizeof(StrSignature), EepConfig);
50+
DoEepReadControl(&EepSignature);
51+
if((StrSignature[0] != 'J') || (StrSignature[1] != 'H') || (StrSignature[2] != 'G'))
52+
{
53+
DoEepReadControl(&EepSignature);
54+
if((StrSignature[0] != 'J') || (StrSignature[1] != 'H') || (StrSignature[2] != 'G'))
55+
{
56+
StrSignature[0] = 'J'; StrSignature[1] = 'H'; StrSignature[2] = 'G';
57+
SetEepWriteEnable(&EepSignature);
58+
while(DoEepWriteControl(&EepSignature) == true)
59+
{
60+
EepConfig->Bit.FirstExecute = true;
61+
}
62+
}
63+
}
64+
4465
return EepConfig->Bit.Init;
4566
}
4667
/*********************************************************************************/

SysEeprom.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,15 @@
99
/*********************************************************************************/
1010
#include "SysTypedef.h"
1111
/*********************************************************************************/
12-
#define SYS_EEPROM_REVISION_DATE 20190723
12+
#define SYS_EEPROM_REVISION_DATE 20190905
1313
/*********************************************************************************/
1414
/** REVISION HISTORY **/
1515
/*
16+
2019. 09. 05. - 프로그램 최초 실행 감지 루틴을 모듈 내 InitEepCommonConfig() 함수에 추가.
17+
Jeong Hyun Gu 이제 어플리케이션에서 시그니쳐 확인하여 초기화를 실행 여부를 판단할 필요없이
18+
tag_EepCommonConfig::Bit.FirstExecute 비트가 '1'이면 최초 실행으로 판단.
19+
- 이전 버전에서 업데이트 시 AVR-EESAVE 불가.
20+
1621
2019. 07. 23. - Eeprom_Write(), Eeprom_Read() 삭제하고 HAL 적용.
1722
Jeong Hyun Gu - 접두어 AVR -> SYS로 변경.
1823
- GetDataFromEeprom() 삭제.
@@ -57,6 +62,7 @@ typedef struct
5762
struct
5863
{
5964
tU8 Init : 1;
65+
tU8 FirstExecute : 1;
6066
}Bit;
6167

6268
const tU16 LastAddr; // eeprom마지막 주소(크기)
1.33 KB
Binary file not shown.

example/Debug/Obj/SysEeprom.pbd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
This is an internal working file generated by the Source Browser.
2-
14:21 00s
2+
14:42 43s
33
F:\Github\SysEeprom\example\Debug\Obj\SysEeprom.pbi
44
F:\Github\SysEeprom\example\Debug\Obj\main.pbi

example/Debug/Obj/SysEeprom.r90

11 KB
Binary file not shown.

example/Debug/Obj/main.r90

-5.66 KB
Binary file not shown.
Lines changed: 68 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,78 @@
11
:020000020000FC
2-
:100000000C94EA0118951895189518951895189557
2+
:100000000C9401021895189518951895189518953F
33
:100010001895189518951895189518951895189578
44
:100020001895189518951895189518951895189568
55
:100030001895189518951895189518951895189558
66
:100040001895189518951895189518951895189548
77
:100050001895189518951895189518951895189538
88
:100060001895189518951895189518951895189528
99
:100070001895189518951895189518951895189518
10-
:100080001895189518951895189518953100000130
11-
:100090000000F801008101700895F8012183328386
12-
:1000A000458356836783708700810160008301E088
13-
:1000B00008950E94FC01D80109019D012B5F3F4F6B
14-
:1000C0000D5F1F4F1D01E9E02E0EE0E03E1EFB011B
15-
:1000D000808180FD02C000E038C0FD016183728331
16-
:1000E000E02DE12931F1E42FE52B19F1FB018381AA
17-
:1000F0009481840F951F0A9641805280841595053E
18-
:10010000C0F4F10140835183F90100821182FB01A7
19-
:1001100023813481F80120833183465F5F4FFB01E7
20-
:1001200003811481040F151F038314830C91016054
21-
:100130000C938D01AEDF1C911D7F202F20FB00E072
22-
:1001400001F9102B1C930C910170E6E00C94030252
23-
:100150000E94FC012197D801FD01858196814424EC
24-
:1001600055240C9101FF1BC09E0103811481040DD5
25-
:10017000151D41815281FA0147815085FA01099587
26-
:100180000881FC01E40DF51D008301E0400E00E054
27-
:10019000501EFD01018512854016510628F3219657
28-
:1001A000E6E00C9403020E94FE012197D801CD01E4
29-
:1001B000079600E008830C910670063009F041C0F4
30-
:1001C0009E01FD0103811481FC0140815181040FD6
31-
:1001D000151FFD0141815281FA0147815085FA01C5
32-
:1001E0000995FD0105811681FC0120813181020FF5
33-
:1001F000131FF80120810881021789F0FD01038196
34-
:100200001481FC0140815181040F151FFD01A18162
35-
:10021000B2811596ED91FC91099501E013C0FC01A6
36-
:10022000008111810F5F1F4F0083118300811181B5
37-
:10023000FD01218532850217130710F20C910B7F07
38-
:100240000C9300E02196E4E00C940502F801208173
39-
:1002500021FF06C020812460208320E0278320879F
40-
:100260000895A89501C00000E199FDCF1FBB0EBB0A
41-
:100270002DBB0FB7F894E29AE19A0FBF01E0089501
42-
:10028000A89501C00000E199FDCF1FBB0EBBE09A0D
43-
:100290000DB3F901008301E00895BA93AA93229760
44-
:1002A000A0E0B1E060E471E041E351E020E038E03B
45-
:1002B00002E111E00E944D0062E171E047E050E090
46-
:1002C0009D010BE111E00E94590062E171E04AE0FA
47-
:1002D00050E027E031E006E211E00E9459009E0163
48-
:1002E00006EF17E0CDDF9E012F5F3F4F07EF17E0CE
49-
:1002F000C7DF08810F3421F409810B3409F447C0AA
50-
:100300009E0106EF17E0BCDF9E012F5F3F4F07EF16
51-
:1003100017E0B6DF08810F3419F409810B34B9F105
52-
:100320000AE00093000108EE13E0FD01018312834F
53-
:1003300003EC15EF28E430E403831483258336832C
54-
:100340000BE111E00E9426010BE111E00E94D300B5
55-
:100350000130D1F300E007C010E0E0E0F1E0E00F91
56-
:10036000F11F078303950A30B8F306E211E00E94FB
57-
:10037000260106E211E00E94D3000130D1F32FE400
58-
:1003800006EF17E06EDF2BE407EF17E06ADF0BE103
59-
:1003900011E00E94A80006E211E00E94A80000916E
60-
:1003A0001101002359F000E0009311010BE111E06D
61-
:1003B0000E94260106E211E00E9426010BE111E0F5
62-
:1003C0000E94D30006E211E00E94D300E8CF0000B3
63-
:1003D0008895FECF00E70DBF01E00EBFC1E7D3E077
64-
:1003E0000E940E02002311F00E941E020E944D0185
65-
:1003F0000E94E7010C94E7015A924A92BA93AA9399
66-
:100400009A938A9308955D804C80BB81AA819981DB
67-
:100410008881F0E0EC0FFD1FEF01089501E00895E1
68-
:1004200020E006D0E9F70895259102D0E9F7089574
69-
:100430002D9301501040202F212B08958CE890E03F
70-
:10044000FC0105911491FC013296A591B491FC0137
71-
:10045000349625913491422F432B19F0F901E4DFB2
72-
:1004600001C0DEDF069610E08239910748F3089557
10+
:100080001895189518951895189518953F00000122
11+
:100090000000F8010081017008950E941502D80146
12+
:1000A000FD012183328345835683678370870C91DA
13+
:1000B00001600C9380E091E043E050E020E030E00C
14+
:1000C0008C010E942702BD0143E050E09C0103E047
15+
:1000D00011E038D003E011E084D0009100010A342F
16+
:1000E00041F400910101083421F400910201073428
17+
:1000F00021F103E011E075D0009100010A3441F4D0
18+
:1001000000910101083421F4009102010734A9F0A3
19+
:100110000AE40093000108E40093010107E400935E
20+
:10012000020103E011E0DBD003C00C9102600C93EC
21+
:1001300003E011E081D00130C1F30C910170E4E0E3
22+
:100140000C941C020E941302D80109019D012B5F2F
23+
:100150003F4F0D5F1F4F1D01E9E02E0EE0E03E1EF8
24+
:10016000FB01808180FD02C000E038C0FD01618399
25+
:100170007283E02DE12931F1E42FE52B19F1FB0128
26+
:1001800083819481840F951F0A9641805280841543
27+
:100190009505C0F4F10140835183F9010082118279
28+
:1001A000FB0123813481F80120833183465F5F4F57
29+
:1001B000FB0103811481040F151F038314830C9129
30+
:1001C00001600C938D0165DF1C911D7F202F20FBAA
31+
:1001D00000E001F9102B1C930C910170E6E00C94E7
32+
:1001E0001A020E9413022197D801FD018581968190
33+
:1001F000442455240C9101FF1BC09E0103811481EE
34+
:10020000040D151D41815281FA0147815085FA0183
35+
:1002100009950881FC01E40DF51D008301E0400E05
36+
:1002200000E0501EFD01018512854016510628F39D
37+
:100230002196E6E00C941A020E9415022197D8013B
38+
:10024000CD01079600E008830C910670063009F096
39+
:1002500041C09E01FD0103811481FC014081518157
40+
:10026000040F151FFD0141815281FA01478150851C
41+
:10027000FA010995FD0105811681FC01208131817A
42+
:10028000020F131FF80120810881021789F0FD0178
43+
:1002900003811481FC0140815181040F151FFD0170
44+
:1002A000A181B2811596ED91FC91099501E013C0F1
45+
:1002B000FC01008111810F5F1F4F008311830081BA
46+
:1002C0001181FD01218532850217130710F20C916F
47+
:1002D0000B7F0C9300E02196E4E00C941C02F801E3
48+
:1002E000208121FF06C020812460208320E0278315
49+
:1002F00020870895A89501C00000E199FDCF1FBB9C
50+
:100300000EBB2DBB0FB7F894E29AE19A0FBF01E044
51+
:100310000895A89501C00000E199FDCF1FBB0EBB59
52+
:10032000E09A0DB3F901008301E00895BA93AA930E
53+
:10033000AEE0B1E069E871E04AE751E020E038E082
54+
:100340000FE111E00E944D006FE171E047E050E0E5
55+
:100350009D0109E211E00E94A2006FE171E04AE014
56+
:1003600050E025E131E004E311E00E94A200FD012C
57+
:10037000018901FF23C00AE000930E0108EE13E09B
58+
:100380000183128303EC15EF28E430E40383148324
59+
:100390002583368309E211E00E946F0100E007C067
60+
:1003A00010E0EEE0F1E0E00FF11F078303950A3063
61+
:1003B000B8F304E311E00E946F0108C009E211E004
62+
:1003C0000E94F10004E311E00E94F1000091280175
63+
:1003D000002359F000E00093280109E211E00E9497
64+
:1003E0006F0104E311E00E946F0109E211E00E9435
65+
:1003F0001C0104E311E00E941C01E8CF0000889575
66+
:10040000FECF0EE70DBF01E00EBFCFE7D3E00E94A5
67+
:100410002502002311F00E943E020E9496010E94D4
68+
:10042000FE010C94FE015A924A92BA93AA939A93AF
69+
:100430008A9308955D804C80BB81AA8199818881CF
70+
:10044000F0E0EC0FFD1FEF01089501E00895F801C1
71+
:1004500001C02193BA0141505040672BD1F7089554
72+
:1004600020E006D0E9F70895259102D0E9F7089534
73+
:100470002D9301501040202F212B08958CE890E0FF
74+
:10048000FC0105911491FC013296A591B491FC01F7
75+
:10049000349625913491422F432B19F0F901E4DF72
76+
:1004A00001C0DEDF069610E08239910748F3089517
7377
:0400000300000000F9
7478
:00000001FF

example/Release/Obj/SysEeprom.pbd

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
This is an internal working file generated by the Source Browser.
2+
14:42 39s
3+
F:\Github\SysEeprom\example\Release\Obj\SysEeprom.pbi
4+
F:\Github\SysEeprom\example\Release\Obj\main.pbi

example/Release/Obj/SysEeprom.r90

9.9 KB
Binary file not shown.

example/Release/Obj/main.r90

-5.44 KB
Binary file not shown.

0 commit comments

Comments
 (0)