ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
3 апреля
1509650 Топик полностью
Nikolay_Po (Вчера, 06:45, просмотров: 79) ответил Nikolay_Po на Про FLASH в CH32V203. Вкратце: похоже, что при частичной записи страницы, автоматически стирается и перезаписывается вся страница 256 байт. Подробности ниже.
Вот вывод тестовой программы (перезапись в "быстром" режиме, сразу 256-ю байтами, все 0xFF): 
SystemClk: 110596534
FLASHdata start address: 0x0800f000, size: 0x00001000

Erase two FLASH pages

Flash content, both pages erased 
Page: 0 Data:  0x800f000:0xe339e339  0x800f004:0xe339e339  0x800f008:0xe339e339  0x800f00c:0xe339e339  0x800f010:0xe339e339  0x800f014:0xe339e339  0x800f018:0xe339e339  0x800f01c:0xe339e339
Page: 0 Data:  0x800f020:0xe339e339  0x800f024:0xe339e339  0x800f028:0xe339e339  0x800f02c:0xe339e339  0x800f030:0xe339e339  0x800f034:0xe339e339  0x800f038:0xe339e339  0x800f03c:0xe339e339
Page: 0 Data:  0x800f040:0xe339e339  0x800f044:0xe339e339  0x800f048:0xe339e339  0x800f04c:0xe339e339  0x800f050:0xe339e339  0x800f054:0xe339e339  0x800f058:0xe339e339  0x800f05c:0xe339e339
Page: 0 Data:  0x800f060:0xe339e339  0x800f064:0xe339e339  0x800f068:0xe339e339  0x800f06c:0xe339e339  0x800f070:0xe339e339  0x800f074:0xe339e339  0x800f078:0xe339e339  0x800f07c:0xe339e339
Page: 0 Data:  0x800f080:0xe339e339  0x800f084:0xe339e339  0x800f088:0xe339e339  0x800f08c:0xe339e339  0x800f090:0xe339e339  0x800f094:0xe339e339  0x800f098:0xe339e339  0x800f09c:0xe339e339
Page: 0 Data:  0x800f0a0:0xe339e339  0x800f0a4:0xe339e339  0x800f0a8:0xe339e339  0x800f0ac:0xe339e339  0x800f0b0:0xe339e339  0x800f0b4:0xe339e339  0x800f0b8:0xe339e339  0x800f0bc:0xe339e339
Page: 0 Data:  0x800f0c0:0xe339e339  0x800f0c4:0xe339e339  0x800f0c8:0xe339e339  0x800f0cc:0xe339e339  0x800f0d0:0xe339e339  0x800f0d4:0xe339e339  0x800f0d8:0xe339e339  0x800f0dc:0xe339e339
Page: 0 Data:  0x800f0e0:0xe339e339  0x800f0e4:0xe339e339  0x800f0e8:0xe339e339  0x800f0ec:0xe339e339  0x800f0f0:0xe339e339  0x800f0f4:0xe339e339  0x800f0f8:0xe339e339  0x800f0fc:0xe339e339
CRC of page 0 is: 0x4aea38f0

Page: 1 Data:  0x800f100:0xe339e339  0x800f104:0xe339e339  0x800f108:0xe339e339  0x800f10c:0xe339e339  0x800f110:0xe339e339  0x800f114:0xe339e339  0x800f118:0xe339e339  0x800f11c:0xe339e339
Page: 1 Data:  0x800f120:0xe339e339  0x800f124:0xe339e339  0x800f128:0xe339e339  0x800f12c:0xe339e339  0x800f130:0xe339e339  0x800f134:0xe339e339  0x800f138:0xe339e339  0x800f13c:0xe339e339
Page: 1 Data:  0x800f140:0xe339e339  0x800f144:0xe339e339  0x800f148:0xe339e339  0x800f14c:0xe339e339  0x800f150:0xe339e339  0x800f154:0xe339e339  0x800f158:0xe339e339  0x800f15c:0xe339e339
Page: 1 Data:  0x800f160:0xe339e339  0x800f164:0xe339e339  0x800f168:0xe339e339  0x800f16c:0xe339e339  0x800f170:0xe339e339  0x800f174:0xe339e339  0x800f178:0xe339e339  0x800f17c:0xe339e339
Page: 1 Data:  0x800f180:0xe339e339  0x800f184:0xe339e339  0x800f188:0xe339e339  0x800f18c:0xe339e339  0x800f190:0xe339e339  0x800f194:0xe339e339  0x800f198:0xe339e339  0x800f19c:0xe339e339
Page: 1 Data:  0x800f1a0:0xe339e339  0x800f1a4:0xe339e339  0x800f1a8:0xe339e339  0x800f1ac:0xe339e339  0x800f1b0:0xe339e339  0x800f1b4:0xe339e339  0x800f1b8:0xe339e339  0x800f1bc:0xe339e339
Page: 1 Data:  0x800f1c0:0xe339e339  0x800f1c4:0xe339e339  0x800f1c8:0xe339e339  0x800f1cc:0xe339e339  0x800f1d0:0xe339e339  0x800f1d4:0xe339e339  0x800f1d8:0xe339e339  0x800f1dc:0xe339e339
Page: 1 Data:  0x800f1e0:0xe339e339  0x800f1e4:0xe339e339  0x800f1e8:0xe339e339  0x800f1ec:0xe339e339  0x800f1f0:0xe339e339  0x800f1f4:0xe339e339  0x800f1f8:0xe339e339  0x800f1fc:0xe339e339
CRC of page 1 is: 0x4aea38f0


Fast write test pattern from 0x00 to 0xFF for both bytes of halfword

Flash content with a pattern
Page: 0 Data:  0x800f000:0x01010000  0x800f004:0x03030202  0x800f008:0x05050404  0x800f00c:0x07070606  0x800f010:0x09090808  0x800f014:0x0b0b0a0a  0x800f018:0x0d0d0c0c  0x800f01c:0x0f0f0e0e
Page: 0 Data:  0x800f020:0x11111010  0x800f024:0x13131212  0x800f028:0x15151414  0x800f02c:0x17171616  0x800f030:0x19191818  0x800f034:0x1b1b1a1a  0x800f038:0x1d1d1c1c  0x800f03c:0x1f1f1e1e
Page: 0 Data:  0x800f040:0x21212020  0x800f044:0x23232222  0x800f048:0x25252424  0x800f04c:0x27272626  0x800f050:0x29292828  0x800f054:0x2b2b2a2a  0x800f058:0x2d2d2c2c  0x800f05c:0x2f2f2e2e
Page: 0 Data:  0x800f060:0x31313030  0x800f064:0x33333232  0x800f068:0x35353434  0x800f06c:0x37373636  0x800f070:0x39393838  0x800f074:0x3b3b3a3a  0x800f078:0x3d3d3c3c  0x800f07c:0x3f3f3e3e
Page: 0 Data:  0x800f080:0x41414040  0x800f084:0x43434242  0x800f088:0x45454444  0x800f08c:0x47474646  0x800f090:0x49494848  0x800f094:0x4b4b4a4a  0x800f098:0x4d4d4c4c  0x800f09c:0x4f4f4e4e
Page: 0 Data:  0x800f0a0:0x51515050  0x800f0a4:0x53535252  0x800f0a8:0x55555454  0x800f0ac:0x57575656  0x800f0b0:0x59595858  0x800f0b4:0x5b5b5a5a  0x800f0b8:0x5d5d5c5c  0x800f0bc:0x5f5f5e5e
Page: 0 Data:  0x800f0c0:0x61616060  0x800f0c4:0x63636262  0x800f0c8:0x65656464  0x800f0cc:0x67676666  0x800f0d0:0x69696868  0x800f0d4:0x6b6b6a6a  0x800f0d8:0x6d6d6c6c  0x800f0dc:0x6f6f6e6e
Page: 0 Data:  0x800f0e0:0x71717070  0x800f0e4:0x73737272  0x800f0e8:0x75757474  0x800f0ec:0x77777676  0x800f0f0:0x79797878  0x800f0f4:0x7b7b7a7a  0x800f0f8:0x7d7d7c7c  0x800f0fc:0x7f7f7e7e
CRC of page 0 is: 0xc5d7d770

Page: 1 Data:  0x800f100:0x81818080  0x800f104:0x83838282  0x800f108:0x85858484  0x800f10c:0x87878686  0x800f110:0x89898888  0x800f114:0x8b8b8a8a  0x800f118:0x8d8d8c8c  0x800f11c:0x8f8f8e8e
Page: 1 Data:  0x800f120:0x91919090  0x800f124:0x93939292  0x800f128:0x95959494  0x800f12c:0x97979696  0x800f130:0x99999898  0x800f134:0x9b9b9a9a  0x800f138:0x9d9d9c9c  0x800f13c:0x9f9f9e9e
Page: 1 Data:  0x800f140:0xa1a1a0a0  0x800f144:0xa3a3a2a2  0x800f148:0xa5a5a4a4  0x800f14c:0xa7a7a6a6  0x800f150:0xa9a9a8a8  0x800f154:0xababaaaa  0x800f158:0xadadacac  0x800f15c:0xafafaeae
Page: 1 Data:  0x800f160:0xb1b1b0b0  0x800f164:0xb3b3b2b2  0x800f168:0xb5b5b4b4  0x800f16c:0xb7b7b6b6  0x800f170:0xb9b9b8b8  0x800f174:0xbbbbbaba  0x800f178:0xbdbdbcbc  0x800f17c:0xbfbfbebe
Page: 1 Data:  0x800f180:0xc1c1c0c0  0x800f184:0xc3c3c2c2  0x800f188:0xc5c5c4c4  0x800f18c:0xc7c7c6c6  0x800f190:0xc9c9c8c8  0x800f194:0xcbcbcaca  0x800f198:0xcdcdcccc  0x800f19c:0xcfcfcece
Page: 1 Data:  0x800f1a0:0xd1d1d0d0  0x800f1a4:0xd3d3d2d2  0x800f1a8:0xd5d5d4d4  0x800f1ac:0xd7d7d6d6  0x800f1b0:0xd9d9d8d8  0x800f1b4:0xdbdbdada  0x800f1b8:0xdddddcdc  0x800f1bc:0xdfdfdede
Page: 1 Data:  0x800f1c0:0xe1e1e0e0  0x800f1c4:0xe3e3e2e2  0x800f1c8:0xe5e5e4e4  0x800f1cc:0xe7e7e6e6  0x800f1d0:0xe9e9e8e8  0x800f1d4:0xebebeaea  0x800f1d8:0xededecec  0x800f1dc:0xefefeeee
Page: 1 Data:  0x800f1e0:0xf1f1f0f0  0x800f1e4:0xf3f3f2f2  0x800f1e8:0xf5f5f4f4  0x800f1ec:0xf7f7f6f6  0x800f1f0:0xf9f9f8f8  0x800f1f4:0xfbfbfafa  0x800f1f8:0xfdfdfcfc  0x800f1fc:0xfffffefe
CRC of page 1 is: 0xbc97f246


Write 0xFFFF over existing halfwords witout of erasing

Flash content after 0xFFFF write-over
Page: 0 Data:  0x800f000:0x1de71ce6  0x800f004:0x1fe71ee6  0x800f008:0x1de71ce6  0x800f00c:0x1fe71ee6  0x800f010:0x1def1cee  0x800f014:0x1fef1eee  0x800f018:0x1def1cee  0x800f01c:0x1fef1eee
Page: 0 Data:  0x800f020:0x1df71cf6  0x800f024:0x1ff71ef6  0x800f028:0x1df71cf6  0x800f02c:0x1ff71ef6  0x800f030:0x1dff1cfe  0x800f034:0x1fff1efe  0x800f038:0x1dff1cfe  0x800f03c:0x1fff1efe
Page: 0 Data:  0x800f040:0x3de73ce6  0x800f044:0x3fe73ee6  0x800f048:0x3de73ce6  0x800f04c:0x3fe73ee6  0x800f050:0x3def3cee  0x800f054:0x3fef3eee  0x800f058:0x3def3cee  0x800f05c:0x3fef3eee
Page: 0 Data:  0x800f060:0x3df73cf6  0x800f064:0x3ff73ef6  0x800f068:0x3df73cf6  0x800f06c:0x3ff73ef6  0x800f070:0x3dff3cfe  0x800f074:0x3fff3efe  0x800f078:0x3dff3cfe  0x800f07c:0x3fff3efe
Page: 0 Data:  0x800f080:0x5de75ce6  0x800f084:0x5fe75ee6  0x800f088:0x5de75ce6  0x800f08c:0x5fe75ee6  0x800f090:0x5def5cee  0x800f094:0x5fef5eee  0x800f098:0x5def5cee  0x800f09c:0x5fef5eee
Page: 0 Data:  0x800f0a0:0x5df75cf6  0x800f0a4:0x5ff75ef6  0x800f0a8:0x5df75cf6  0x800f0ac:0x5ff75ef6  0x800f0b0:0x5dff5cfe  0x800f0b4:0x5fff5efe  0x800f0b8:0x5dff5cfe  0x800f0bc:0x5fff5efe
Page: 0 Data:  0x800f0c0:0x7de77ce6  0x800f0c4:0x7fe77ee6  0x800f0c8:0x7de77ce6  0x800f0cc:0x7fe77ee6  0x800f0d0:0x7def7cee  0x800f0d4:0x7fef7eee  0x800f0d8:0x7def7cee  0x800f0dc:0x7fef7eee
Page: 0 Data:  0x800f0e0:0x7df77cf6  0x800f0e4:0x7ff77ef6  0x800f0e8:0x7df77cf6  0x800f0ec:0x7ff77ef6  0x800f0f0:0x7dff7cfe  0x800f0f4:0x7fff7efe  0x800f0f8:0x7dff7cfe  0x800f0fc:0x7fff7efe
CRC of page 0 is: 0x5a11d474

Page: 1 Data:  0x800f100:0x9de79ce6  0x800f104:0x9fe79ee6  0x800f108:0x9de79ce6  0x800f10c:0x9fe79ee6  0x800f110:0x9def9cee  0x800f114:0x9fef9eee  0x800f118:0x9def9cee  0x800f11c:0x9fef9eee
Page: 1 Data:  0x800f120:0x9df79cf6  0x800f124:0x9ff79ef6  0x800f128:0x9df79cf6  0x800f12c:0x9ff79ef6  0x800f130:0x9dff9cfe  0x800f134:0x9fff9efe  0x800f138:0x9dff9cfe  0x800f13c:0x9fff9efe
Page: 1 Data:  0x800f140:0xbde7bce6  0x800f144:0xbfe7bee6  0x800f148:0xbde7bce6  0x800f14c:0xbfe7bee6  0x800f150:0xbdefbcee  0x800f154:0xbfefbeee  0x800f158:0xbdefbcee  0x800f15c:0xbfefbeee
Page: 1 Data:  0x800f160:0xbdf7bcf6  0x800f164:0xbff7bef6  0x800f168:0xbdf7bcf6  0x800f16c:0xbff7bef6  0x800f170:0xbdffbcfe  0x800f174:0xbfffbefe  0x800f178:0xbdffbcfe  0x800f17c:0xbfffbefe
Page: 1 Data:  0x800f180:0xdde7dce6  0x800f184:0xdfe7dee6  0x800f188:0xdde7dce6  0x800f18c:0xdfe7dee6  0x800f190:0xddefdcee  0x800f194:0xdfefdeee  0x800f198:0xddefdcee  0x800f19c:0xdfefdeee
Page: 1 Data:  0x800f1a0:0xddf7dcf6  0x800f1a4:0xdff7def6  0x800f1a8:0xddf7dcf6  0x800f1ac:0xdff7def6  0x800f1b0:0xddffdcfe  0x800f1b4:0xdfffdefe  0x800f1b8:0xddffdcfe  0x800f1bc:0xdfffdefe
Page: 1 Data:  0x800f1c0:0xfde7fce6  0x800f1c4:0xffe7fee6  0x800f1c8:0xfde7fce6  0x800f1cc:0xffe7fee6  0x800f1d0:0xfdeffcee  0x800f1d4:0xffeffeee  0x800f1d8:0xfdeffcee  0x800f1dc:0xffeffeee
Page: 1 Data:  0x800f1e0:0xfdf7fcf6  0x800f1e4:0xfff7fef6  0x800f1e8:0xfdf7fcf6  0x800f1ec:0xfff7fef6  0x800f1f0:0xfdfffcfe  0x800f1f4:0xfffffefe  0x800f1f8:0xfdfffcfe  0x800f1fc:0xfffffefe
CRC of page 1 is: 0xa8e146fb