mirror of
https://github.com/MikronMIK32/mik32-uploader.git
synced 2026-01-01 13:37:03 +03:00
Драйвер EEPROM: сборка на свежем sdk, частичное стирание
This commit is contained in:
parent
cbe78d08d7
commit
0670b71ee7
@ -1,114 +1,120 @@
|
|||||||
:020000040200F8
|
:020000040200F8
|
||||||
:10000000FD62938202400100FD12E39E02FE374131
|
:10000000FD6293820240FD12E39F02FE374100022F
|
||||||
:10001000000213010100B70100029381016FB705CF
|
:1000100013010100B7110002938181F1B7050002BD
|
||||||
:1000200000029385056F370600021306066FB706B8
|
:10002000938585733706000213060674B70600022F
|
||||||
:1000300000029386066F39A083A2050023A0560014
|
:100030009386867339A083A2050023A056009105FC
|
||||||
:1000400091059106E3EAC5FEB70500029385056FA9
|
:100040009106E3EAC5FEB70500029385850B3706E6
|
||||||
:10005000370600021306066FB70600029386066F86
|
:10005000000213068615B70600029386860B39A0A8
|
||||||
:1000600039A083A2050023A0560091059106E3EA7A
|
:1000600083A2050023A0560091059106E3EAC5FE90
|
||||||
:10007000C5FEB70500029385056F3706000213061B
|
:10007000B70500029385057437060002130606745F
|
||||||
:10008000066F21A023A005009105E3EDC5FEB70092
|
:1000800021A023A005009105E3EDC5FEB702000203
|
||||||
:100090000002E780C00AB7000002E780C00AB7008C
|
:100090009382020C73905230B7000002E780600B2D
|
||||||
:1000A0000002E780E02273005010F5BF828000005C
|
:1000A000B7000002E780600BB7000002E780202362
|
||||||
:1000B0000000000000000000000000000000000040
|
:0800B00073005010F5BF8280BF
|
||||||
:1000C0006F004000197106C20AC40EC612C816CAD3
|
:1000B80000000000000000006F004000130141F83C
|
||||||
:1000D0001ACC1ECE22D026D22AD42ED632D836DA48
|
:1000C80006C00AC20EC412C616C81ACA1ECC22CE50
|
||||||
:1000E0003ADC3EDEC2C0C6C2CAC4CEC6D2C8D6CA78
|
:1000D80026D02AD22ED432D636D83ADA3EDC42DEC0
|
||||||
:1000F000DACCDECEE2D0E6D2EAD4EED6F2D8F6DA28
|
:1000E800C6C0CAC2CEC4D2C6D6C8DACADECCE2CE30
|
||||||
:10010000FADCFEDE970000009380E00482909240CB
|
:1000F800E6D0EAD2EED4F2D6F6D8FADAFEDC9700E9
|
||||||
:100110002241B2414242D2426243F24302549254DB
|
:10010800000093800005829082401241A241324251
|
||||||
:100120002255B2554256D2566257F2570648964863
|
:10011800C2425243E243724482541255A2553256A7
|
||||||
:100130002649B649464AD64A664BF64B065C965C5B
|
:10012800C2565257E257725886481649A649364A67
|
||||||
:10014000265DB65D465ED65E665FF65F096173004A
|
:10013800C64A564BE64B764C865C165DA65D365E27
|
||||||
:10015000203001A03D432A876373C3029377F700E1
|
:10014800C65E565FE65F1301C1077300203001A049
|
||||||
:10016000BDEFADE5937606FF3D8ABA960CC34CC34E
|
:100158003D432A876373C3029377F700BDEFADE58C
|
||||||
:100170000CC74CC74107E36BD7FE11E28280B30680
|
:10016800937606FF3D8ABA960CC34CC30CC74CC79E
|
||||||
:10018000C3408A069702000096966780A600230760
|
:100178004107E36BD7FE11E28280B306C3408A06CB
|
||||||
:10019000B700A306B7002306B700A305B7002305E1
|
:100188009702000096966780A6002307B700A3068B
|
||||||
:1001A000B700A304B7002304B700A303B7002303D9
|
:10019800B7002306B700A305B7002305B700A304DB
|
||||||
:1001B000B700A302B7002302B700A301B7002301D1
|
:1001A800B7002304B700A303B7002303B700A302D3
|
||||||
:1001C000B700A300B7002300B700828093F5F50FB6
|
:1001B800B7002302B700A301B7002301B700A300CB
|
||||||
:1001D00093968500D58D93960501D58D61B793963D
|
:1001C800B7002300B700828093F5F50F939685005A
|
||||||
:1001E00027009702000096968682E78086FA96801E
|
:1001D800D58D93960501D58D61B793962700970223
|
||||||
:1001F000C1171D8F3E96E374C3F8A5B75D71130652
|
:1001E800000096968682E78086FA9680C1171D8F52
|
||||||
:1002000080028145280886C6B137BD47230CF1001E
|
:1001F8003E96E374C3F8A5B75D7113068002814586
|
||||||
:100210008947230EF1003ED2E177938707082C0827
|
:10020800280886C6B137BD47230CF1008947230E5D
|
||||||
:100220000A85231AF102C526B640616182803171C8
|
:10021800F1003ED2E177938707082C080A85231A54
|
||||||
:100230004AD94ED706DF22DD26DB52D556D35AD116
|
:10022800F1020529B6406161828031714ED722DD25
|
||||||
:1002400037490002653F9307098083A90700854766
|
:1002380006DF26DB4AD952D556D35AD1753F03A4D7
|
||||||
:1002500013F7F90F6317F70A614681452800DD3D62
|
:10024800018205471C4093F7F707639EE70C614658
|
||||||
:10026000B707070093D9890061679387074093F91F
|
:1002580081452800F53DB7070700938707403EC250
|
||||||
:10027000F9031307076A8D461306000281454800FB
|
:100268001C40014493D4870093F4F40393F70708E0
|
||||||
:10028000B7240002616A3EC2130909809E09592001
|
:100278009E0485CF61691309096A636C94006169FA
|
||||||
:10029000938404800144130A0A6A130B0008634420
|
:1002880001441309096A130B0008634A9402814761
|
||||||
:1002A00034018147A9A8931A040193DA0A01D2877D
|
:1002980041A8931504014A87814613060002C181CB
|
||||||
:1002B0000147930600022686D68548006D2813065E
|
:1002A8004800492813040408C9BF61671307076A8F
|
||||||
:1002C0000008814508107935528793060002101006
|
:1002B8008D461306000281454800AD28C9B703A63C
|
||||||
:1002D000D68548000D2201471C10BA9783C6070037
|
:1002C8004182131A0401135A0A01CA870147930687
|
||||||
:1002E000B307970083C70700638ED7009357744006
|
:1002D80000022296D2854800F920130600088145BD
|
||||||
:1002F000A207E206D58F4207D98F93E72700232074
|
:1002E8000810BD354A87930600021010D2854800D1
|
||||||
:10030000F90001A00507E31967FD130404089384AD
|
:1002F800992283A741820147A2971410BA963386A0
|
||||||
:10031000040871B71C418E0603A88700B3E60601E6
|
:10030800E70083C6060003460600630FD60093572E
|
||||||
:1003200093E6060894C7144999CA814663DDC6005E
|
:100318007440A207E206D58F4207D98F93E72700DA
|
||||||
:10033000CCC323A007003A850DE50D458280CCC3D0
|
:1003280003A701821CC301A00507E31867FD130496
|
||||||
:10034000814663CCC600944793E6360094C775D7C0
|
:100338000408A1BF1C418E0603A88700B3E6060186
|
||||||
:10035000C8477D17058965FD828023A007008506B3
|
:1003480093E6060894C7144999CA814663DDC60036
|
||||||
:10036000CDB703A8C7007D1513781800E31608FC65
|
:10035800CCC323A007003A8515E10D458280CCC3A4
|
||||||
:100370008506910565BF032805000E0783288800C0
|
:10036800814663C9C600944793E6360094C70DE3F7
|
||||||
:1003800033671701136707082324E800184905C3DA
|
:100378000D451DA023A007008506E5B703A8C70003
|
||||||
:1003900001476353D702131527002322B800329573
|
:100388007D1513781800E31908FC850691057DBFD3
|
||||||
:1003A00008412320A8003E850DED0D4582802322C3
|
:10039800C8477D17058961FDB707000103A007005D
|
||||||
:1003B000B8000147634FD700032788001367570031
|
:1003A80003A047008280032805000E0783288800E1
|
||||||
:1003C0002324E800FDD30325C800FD1705897DF926
|
:1003B80033671701136707082324E800184905C3A2
|
||||||
:1003D000828093152700B2958C4105072320B80031
|
:1003C80001476353D702131527002322B80032953B
|
||||||
:1003E000D1BF8328C8007D1593F81800E39E08FA52
|
:1003D80008412320A8003E850DE90D45828023228F
|
||||||
:1003F0000507910579BF1C4989CF814763FFD70065
|
:1003E800B8000147634BD7000327880013675700FD
|
||||||
:1004000003280500BA882322B800639108020D452D
|
:1003F8002324E8008DE70D4505A893152700B2953D
|
||||||
:10041000828008414CC163E4D700014582800C41D1
|
:100408008C4105072320B800F1BF8328C8007D155B
|
||||||
:100420001397270032970CC38507F5B70323C8003D
|
:1004180093F81800E39208FC050791055DB70325DA
|
||||||
:10043000FD1813731300E31A03FC832808001398B4
|
:10042800C800FD17058979F5B707000103A0070083
|
||||||
:1004400027003298232018018507910545BF0547ED
|
:1004380003A0470082801C4989CF814763FFD7000A
|
||||||
:10045000AA876305E50209476300E506054591EBB8
|
:1004480003280500BA882322B800639708020D45DF
|
||||||
:10046000B7060600DC4A7D771307F73FF98FDCCA31
|
:10045800828008414CC163EAD700B707000103A0B6
|
||||||
:10047000014582807D1719EB0D458280930600406F
|
:10046800070003A04700014582800C41139727002D
|
||||||
:1004800037A7070013070712B7050500905D7D8E9B
|
:1004780032970CC38507C5B70323C800FD1813734B
|
||||||
:1004900075D2370606005C4A7D771307F73FF98F60
|
:100488001300E31403FC832808001398270032980C
|
||||||
:1004A000D58F41115CCA02C613073006B2476359A3
|
:10049800232018018507910555B70547AA876305E5
|
||||||
:1004B000F700014541018280856693860680C9B7B1
|
:1004A800E50209476300E506054591EBB706060036
|
||||||
:1004C000B24785073EC6DDB791476307F50263EA89
|
:1004B800DC4A7D771307F73FF98FDCCA0145828054
|
||||||
:1004D000A7008547630AF50489476309F5040545C4
|
:1004C8007D1719EB0D4582809306004037A707007A
|
||||||
:1004E0008280A147E31DF5FE0947094501A8FD17D4
|
:1004D80013070712B7050500905D7D8E75D23706A4
|
||||||
:1004F00081EFC8D20D45828005470D45B7A707009B
|
:1004E80006005C4A7D771307F73FF98FD58F4111D6
|
||||||
:1005000093870712B7060500905E798E6DD28A0533
|
:1004F8005CCA02C613073006B2476359F7000145C4
|
||||||
:10051000C98D4111CCD202C613073006B247635AC7
|
:1005080041018280856693860680C9B7B247850710
|
||||||
:10052000F7000145410182801147C9BF21470145BC
|
:100518003EC6DDB791476307F50263EAA700854742
|
||||||
:10053000F1B7B24785073EC6D5B70547AA87630519
|
:10052800630AF50489476309F50405458280A147F4
|
||||||
:10054000E50209476304E506054591EBB706060099
|
:10053800E31DF5FE0947094501A8FD1781EFC8D25B
|
||||||
:100550009C4A7D771307F73FF98F9CCA014582803B
|
:100548000D45828005470D45B7A707009387071219
|
||||||
:100560007D1719EB0D4582809306004037A70700E1
|
:10055800B7060500905E798E6DD28A05C98D411166
|
||||||
:1005700013070712B7050500905D7D8E75D237070A
|
:10056800CCD202C613073006B247635AF7000145DA
|
||||||
:1005800006001C4B7D761306F63FF18FD58F1CCBF2
|
:10057800410182801147C9BF21470145F1B7B24700
|
||||||
:10059000232C070085471CCF411102C613073006E4
|
:1005880085073EC6D5B70547AA876305E50209472B
|
||||||
:1005A000B2476359F7000145410182808566938611
|
:100598006304E506054591EBB70606009C4A7D779E
|
||||||
:1005B00006806DBFB24785073EC6DDB711C98547C6
|
:1005A8001307F73FF98F9CCA014582807D1719EB25
|
||||||
:1005C000630DF50205458280FD1791EB0D45828094
|
:1005B8000D4582809306004037A7070013070712EE
|
||||||
:1005D0000946B7A7070093870712B7060500985E7C
|
:1005C800B7050500905D7D8E75D2370706001C4B78
|
||||||
:1005E000718F7DD34111C8D602C613073006B247BA
|
:1005D8007D761306F63FF18FD58F1CCB232C0700B1
|
||||||
:1005F0006357F7000145410182800546D9BFB247E4
|
:1005E80085471CCF411102C613073006B24763592D
|
||||||
:1006000085073EC6EDB7011126CAB7040600DC48CF
|
:1005F800F7000145410182808566938606806DBFBC
|
||||||
:1006100006CE22CC4AC84EC652C456C2F19BDCC894
|
:10060800B24785073EC6DDB711C98547630DF502B8
|
||||||
:100620009C482A89C845F19B9CC8D84883C7C50106
|
:1006180005458280FD1791EB0D4582800946B7A7F5
|
||||||
:100630002E84137737C08A07D98FDCC883C7D501CA
|
:10062800070093870712B7060500985E718F7DD380
|
||||||
:1006400098489A071377F7C393F7073CD98F9CC84C
|
:100638004111C8D602C613073006B2476357F70000
|
||||||
:10065000FD3B0C44AA8A03454400BD351848B70742
|
:100648000145410182800546D9BFB24785073EC6AC
|
||||||
:1006600005002A8A98C358480850D8C3184C98C720
|
:10065800EDB7011126CAB7040600DC4806CE22CC45
|
||||||
:10067000E935AA8948509937834704002A8793F6B9
|
:100668004AC84EC652C456C2F19BDCC89C482A8967
|
||||||
:10068000170089E6D44893E62600D4C893F62700DD
|
:10067800C845F19B9CC8D84883C7C5012E84137709
|
||||||
:1006900099E637060600544A93E6160054CA93F6C4
|
:1006880037C08A07D98FDCC883C7D50198489A072D
|
||||||
:1006A000470099E637060600144A93E6260014CA66
|
:100698001377F7C393F7073CD98F9CC8FD3B0C44ED
|
||||||
:1006B000A18B99E7B70606009C4A93E717009CCAEE
|
:1006A800AA8A03454400BD351848B70705002A8AB9
|
||||||
:1006C000F2406244232059012322490123243901A5
|
:1006B80098C358480850D8C3184C98C7E935AA8930
|
||||||
:1006D0002326E900D244B249224A924A4A85424935
|
:1006C80048509937834704002A8793F6170089E62C
|
||||||
:1006E00005618280000000000000000000000000A2
|
:1006D800D44893E62600D4C893F6270099E637064F
|
||||||
|
:1006E8000600544A93E6160054CA93F6470099E662
|
||||||
|
:1006F80037060600144A93E6260014CAA18B99E728
|
||||||
|
:10070800B70606009C4A93E717009CCAF240624469
|
||||||
|
:100718002320590123224901232439012326E900F2
|
||||||
|
:10072800D244B249224A924A4A85424905618280A6
|
||||||
|
:08073800003800020018000265
|
||||||
:0400000502000000F5
|
:0400000502000000F5
|
||||||
:00000001FF
|
:00000001FF
|
||||||
|
|||||||
@ -13,3 +13,5 @@ platform = MIK32
|
|||||||
board = mik32v2
|
board = mik32v2
|
||||||
framework = framework-mik32v2-sdk
|
framework = framework-mik32v2-sdk
|
||||||
board_build.ldscript = ram
|
board_build.ldscript = ram
|
||||||
|
board_upload.maximum_size = 4096
|
||||||
|
board_upload.maximum_ram_size = 2048
|
||||||
|
|||||||
@ -1,19 +0,0 @@
|
|||||||
|
|
||||||
OUTPUT_FORMAT("elf32-littleriscv", "elf32-littleriscv", "elf32-littleriscv")
|
|
||||||
OUTPUT_ARCH(riscv)
|
|
||||||
|
|
||||||
ENTRY(_start)
|
|
||||||
|
|
||||||
|
|
||||||
MEMORY {
|
|
||||||
ram (RWX): ORIGIN = 0x02000000, LENGTH = 16K
|
|
||||||
}
|
|
||||||
|
|
||||||
STACK_SIZE = 512;
|
|
||||||
|
|
||||||
CL_SIZE = 16;
|
|
||||||
|
|
||||||
REGION_ALIAS("REGION_TEXT", ram);
|
|
||||||
REGION_ALIAS("REGION_RAM", ram);
|
|
||||||
|
|
||||||
INCLUDE sections.lds
|
|
||||||
@ -1,105 +0,0 @@
|
|||||||
|
|
||||||
SECTIONS {
|
|
||||||
.text ORIGIN(REGION_TEXT) : {
|
|
||||||
PROVIDE(__TEXT_START__ = .);
|
|
||||||
*crt0.o(.text .text.*)
|
|
||||||
*(.text.smallsysteminit)
|
|
||||||
*(.text.SmallSystemInit)
|
|
||||||
. = ORIGIN(REGION_TEXT) + 0xC0;
|
|
||||||
KEEP(*crt0.o(.trap_text))
|
|
||||||
|
|
||||||
*(.text)
|
|
||||||
*(.text.*)
|
|
||||||
*(.rodata)
|
|
||||||
*(.rodata.*)
|
|
||||||
. = ALIGN(CL_SIZE);
|
|
||||||
PROVIDE(__TEXT_END__ = .);
|
|
||||||
} >REGION_TEXT
|
|
||||||
|
|
||||||
.data :
|
|
||||||
AT( __TEXT_END__ ) {
|
|
||||||
PROVIDE(__DATA_START__ = .);
|
|
||||||
_gp = .;
|
|
||||||
*(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) *(.srodata*)
|
|
||||||
*(.sdata .sdata.* .gnu.linkonce.s.*)
|
|
||||||
*(.data .data.*)
|
|
||||||
. = ALIGN(CL_SIZE);
|
|
||||||
PROVIDE(__DATA_END__ = .);
|
|
||||||
} >REGION_RAM
|
|
||||||
|
|
||||||
__DATA_IMAGE_START__ = LOADADDR(.data);
|
|
||||||
__DATA_IMAGE_END__ = LOADADDR(.data) + SIZEOF(.data);
|
|
||||||
|
|
||||||
/* thread-local data segment */
|
|
||||||
.tdata : {
|
|
||||||
PROVIDE(_tls_data = .);
|
|
||||||
PROVIDE(_tdata_begin = .);
|
|
||||||
*(.tdata .tdata.*)
|
|
||||||
PROVIDE(_tdata_end = .);
|
|
||||||
. = ALIGN(CL_SIZE);
|
|
||||||
} >REGION_RAM
|
|
||||||
|
|
||||||
.tbss : {
|
|
||||||
PROVIDE(__BSS_START__ = .);
|
|
||||||
*(.tbss .tbss.*)
|
|
||||||
. = ALIGN(CL_SIZE);
|
|
||||||
PROVIDE(_tbss_end = .);
|
|
||||||
} >REGION_RAM
|
|
||||||
|
|
||||||
/* bss segment */
|
|
||||||
.sbss : {
|
|
||||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
|
||||||
*(.scommon)
|
|
||||||
} >REGION_RAM
|
|
||||||
|
|
||||||
.bss : {
|
|
||||||
*(.bss .bss.*)
|
|
||||||
*(COMMON)
|
|
||||||
. = ALIGN(CL_SIZE);
|
|
||||||
PROVIDE(__BSS_END__ = .);
|
|
||||||
} >REGION_RAM
|
|
||||||
|
|
||||||
/* Code intended to be copied to REGION_RAM before execution */
|
|
||||||
.ram_text :
|
|
||||||
AT( ALIGN(__DATA_IMAGE_END__, CL_SIZE) ) {
|
|
||||||
PROVIDE(__RAM_TEXT_START__ = .);
|
|
||||||
*(.ram_text)
|
|
||||||
. = ALIGN(CL_SIZE);
|
|
||||||
PROVIDE(__RAM_TEXT_END__ = .);
|
|
||||||
} > REGION_RAM
|
|
||||||
|
|
||||||
__RAM_TEXT_IMAGE_START__ = LOADADDR(.ram_text);
|
|
||||||
__RAM_TEXT_IMAGE_END__ = LOADADDR(.ram_text) + SIZEOF(.ram_text);
|
|
||||||
ASSERT(__RAM_TEXT_IMAGE_END__ < ORIGIN(REGION_TEXT) + LENGTH(REGION_TEXT), "REGION_TEXT segment overflows")
|
|
||||||
|
|
||||||
ASSERT(__RAM_TEXT_END__ < ORIGIN(REGION_RAM) + LENGTH(REGION_RAM) - STACK_SIZE, "REGION_RAM section overflows")
|
|
||||||
|
|
||||||
_end = .;
|
|
||||||
PROVIDE(__end = .);
|
|
||||||
|
|
||||||
BUFFER_SIZE = 8K;
|
|
||||||
|
|
||||||
.buffer ORIGIN(REGION_RAM) + 6K : {
|
|
||||||
FILL(0);
|
|
||||||
PROVIDE(__BUFFER__END__ = .);
|
|
||||||
PROVIDE(BUFFER = .);
|
|
||||||
. += BUFFER_SIZE;
|
|
||||||
PROVIDE(BUFFER_STATUS = .);
|
|
||||||
. += 4;
|
|
||||||
PROVIDE(__BUFFER__END__ = .);
|
|
||||||
} >REGION_RAM
|
|
||||||
|
|
||||||
/* End of uninitalized data segement */
|
|
||||||
|
|
||||||
.stack ORIGIN(REGION_RAM) + LENGTH(REGION_RAM) - STACK_SIZE : {
|
|
||||||
FILL(0);
|
|
||||||
PROVIDE(__STACK_START__ = .);
|
|
||||||
. += STACK_SIZE;
|
|
||||||
PROVIDE(__C_STACK_TOP__ = .);
|
|
||||||
PROVIDE(__STACK_END__ = .);
|
|
||||||
} >REGION_RAM
|
|
||||||
|
|
||||||
/DISCARD/ : {
|
|
||||||
*(.eh_frame .eh_frame.*)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -11,13 +11,18 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#define STATUS_CODE_S 0
|
#define STATUS_CODE_S 0
|
||||||
#define STATUS_CODE_M 0xFF
|
#define STATUS_CODE_M 0x7F
|
||||||
#define STATUS_CODE(X) ((X) << STATUS_CODE_S)
|
#define STATUS_CODE(X) ((X) << STATUS_CODE_S)
|
||||||
|
|
||||||
#define STATUS_CODE_OK 0
|
#define STATUS_CODE_OK 0
|
||||||
#define STATUS_CODE_START 1
|
#define STATUS_CODE_START 1
|
||||||
#define STATUS_CODE_MISMATCH 2
|
#define STATUS_CODE_MISMATCH 2
|
||||||
|
|
||||||
|
#define STATUS_CODE_ERASE_S 7
|
||||||
|
#define STATUS_CODE_ERASE_M (1 << STATUS_CODE_ERASE_S)
|
||||||
|
#define STATUS_CODE_ERASE_FULL 0
|
||||||
|
#define STATUS_CODE_ERASE_USED STATUS_CODE_ERASE_M
|
||||||
|
|
||||||
#define STATUS_CODE_START_PAGE_COUNT_S 8
|
#define STATUS_CODE_START_PAGE_COUNT_S 8
|
||||||
#define STATUS_CODE_START_PAGE_COUNT_M ((64 - 1) << STATUS_CODE_START_PAGE_COUNT_S)
|
#define STATUS_CODE_START_PAGE_COUNT_M ((64 - 1) << STATUS_CODE_START_PAGE_COUNT_S)
|
||||||
|
|
||||||
@ -30,8 +35,8 @@
|
|||||||
#define STATUS_CODE_MISMATCH_VALUE(X) ((X) << STATUS_CODE_MISMATCH_VALUE_S)
|
#define STATUS_CODE_MISMATCH_VALUE(X) ((X) << STATUS_CODE_MISMATCH_VALUE_S)
|
||||||
|
|
||||||
const int BUFFER_SIZE = 8 * 1024;
|
const int BUFFER_SIZE = 8 * 1024;
|
||||||
extern uint8_t *BUFFER[];
|
uint8_t *BUFFER = (uint8_t *)0x02001800;
|
||||||
extern uint32_t BUFFER_STATUS[];
|
uint32_t *BUFFER_STATUS = (uint32_t *)0x02003800;
|
||||||
|
|
||||||
#define EEPROM_OP_TIMEOUT 100000
|
#define EEPROM_OP_TIMEOUT 100000
|
||||||
#define USART_TIMEOUT 1000
|
#define USART_TIMEOUT 1000
|
||||||
@ -69,7 +74,27 @@ int main()
|
|||||||
STATUS_CODE_START_PAGE_COUNT_S) *
|
STATUS_CODE_START_PAGE_COUNT_S) *
|
||||||
EEPROM_PAGE_WORDS * 4;
|
EEPROM_PAGE_WORDS * 4;
|
||||||
|
|
||||||
HAL_EEPROM_Erase(&heeprom, 0, EEPROM_PAGE_WORDS, HAL_EEPROM_WRITE_ALL, EEPROM_OP_TIMEOUT);
|
if (*BUFFER_STATUS & STATUS_CODE_ERASE_USED)
|
||||||
|
{
|
||||||
|
for (uint32_t addr = 0; addr < max_address; addr += (EEPROM_PAGE_WORDS * 4))
|
||||||
|
{
|
||||||
|
HAL_EEPROM_Erase(
|
||||||
|
&heeprom,
|
||||||
|
addr,
|
||||||
|
EEPROM_PAGE_WORDS,
|
||||||
|
HAL_EEPROM_WRITE_SINGLE,
|
||||||
|
EEPROM_OP_TIMEOUT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
HAL_EEPROM_Erase(
|
||||||
|
&heeprom,
|
||||||
|
0,
|
||||||
|
EEPROM_PAGE_WORDS,
|
||||||
|
HAL_EEPROM_WRITE_ALL,
|
||||||
|
EEPROM_OP_TIMEOUT);
|
||||||
|
}
|
||||||
|
|
||||||
for (int addr = 0; addr < max_address; addr += (EEPROM_PAGE_WORDS * 4))
|
for (int addr = 0; addr < max_address; addr += (EEPROM_PAGE_WORDS * 4))
|
||||||
{
|
{
|
||||||
@ -87,7 +112,12 @@ int main()
|
|||||||
|
|
||||||
uint8_t rb[EEPROM_PAGE_WORDS * 4] = {0};
|
uint8_t rb[EEPROM_PAGE_WORDS * 4] = {0};
|
||||||
|
|
||||||
HAL_EEPROM_Read(&heeprom, addr, (uint32_t *)rb, EEPROM_PAGE_WORDS, EEPROM_OP_TIMEOUT);
|
HAL_EEPROM_Read(
|
||||||
|
&heeprom,
|
||||||
|
addr,
|
||||||
|
(uint32_t *)rb,
|
||||||
|
EEPROM_PAGE_WORDS,
|
||||||
|
EEPROM_OP_TIMEOUT);
|
||||||
|
|
||||||
for (uint32_t b = 0; b < (EEPROM_PAGE_WORDS * 4); b++)
|
for (uint32_t b = 0; b < (EEPROM_PAGE_WORDS * 4); b++)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user