Ну так тамИ работает.
int ota_adr_index
, а здесь uint16_t pkt_index
В данном случае это не важно. Разница только в том, что adds дополнительно выставляет флаги. Насколько я понимаю, gcc, использует add только для операций с индексными регистрами, стеком, счётчиком команд.pvvx написал(а):Тогда второй вопрос - зачем adds ? Почему не add?
Для add эти флаги в АЛУ тоже вычисляются, просто не записываются в регистр флагов. Зато кодогенератор в gcc упрощается. Меньше места для ошибок.Т.е. чтобы больше погонять заряды в CPU и увеличить потребление.
да, наверняка пригодится, когда буду раскрашивать...То что я там накрутил в js, пригодится?
Вроде вот такая должна быть последовательность:Команда AP_PCR->CACHE_BYPASS = 0;
AP_CACHE->CTRL0 = 0x02;
AP_PCR->CACHE_RST = 0x02;
AP_PCR->CACHE_BYPASS = 1;
#define HAL_CACHE_ENTER_BYPASS_SECTION() do{ \
HAL_ENTER_CRITICAL_SECTION();\
AP_CACHE->CTRL0 = 0x02; \
AP_PCR->CACHE_RST = 0x02;\
AP_PCR->CACHE_BYPASS = 1; \
HAL_EXIT_CRITICAL_SECTION();\
}while(0);
#define HAL_CACHE_EXIT_BYPASS_SECTION() do{ \
HAL_ENTER_CRITICAL_SECTION();\
AP_CACHE->CTRL0 = 0x00;\
AP_PCR->CACHE_RST = 0x03;\
AP_PCR->CACHE_BYPASS = 0;\
HAL_EXIT_CRITICAL_SECTION();\
}while(0);
Ясное дело, кэш не сохраняется во сне. Насколько я понимаю, за это отвечает 4 бит при программировании sram retention.Работает так - если чип заснул, то кэш XIP обновляется гарантированно.
Пофиг - результат один.Flash через DMA записываете?
Старт DFU
OTA send: 00ff
OTA read: ver: 01, err: 0, dbg: 0, start: 0, offs: 0x11010020, idx: 0x0010, total: 0x0011, crc: 0xC012FD5E
OTA send: 01ff20000111504859361200
OTA read: ver: 01, err: 0, dbg: 0, start: 1, offs: 0x11010020, idx: 0xFFFF, total: 0x0012, crc: 0xC012FD5E
OTA send: 0000504859360100000020000111100100004388
OTA read: ver: 01, err: 0, dbg: 0, start: 1, offs: 0x11010020, idx: 0x0000, total: 0x0012, crc: 0x557AB31D
OTA send: 010020010000f00000002000011100000000440b
OTA read: ver: 01, err: 0, dbg: 0, start: 1, offs: 0x11010020, idx: 0x0001, total: 0x0012, crc: 0xD52EEB28
OTA send: 020000000000000000000000000000000000d05c
OTA read: ver: 01, err: 0, dbg: 0, start: 1, offs: 0x11010020, idx: 0x0002, total: 0x0012, crc: 0x04517BB9
OTA send: 03000000000000000000000000000000000081a0
OTA read: ver: 01, err: 0, dbg: 0, start: 1, offs: 0x11010020, idx: 0x0003, total: 0x0012, crc: 0xD28B9AE6
OTA send: 04000000000000000000000000000000000030d5
OTA read: ver: 01, err: 0, dbg: 0, start: 1, offs: 0x11010020, idx: 0x0004, total: 0x0012, crc: 0x5E306857
OTA send: 0500000000000000000000000000000000006129
OTA read: ver: 01, err: 0, dbg: 0, start: 1, offs: 0x11010020, idx: 0x0005, total: 0x0012, crc: 0xE0ADC600
OTA send: 060000000000000000000000000000000000916d
OTA read: ver: 01, err: 0, dbg: 0, start: 1, offs: 0x11010020, idx: 0x0006, total: 0x0012, crc: 0xF1F2471C
...
29:29: Поиск устройств
29:31: Connecting to: BTH01-31BDBC
29:31: OTA: FF010100200001111100120050485936E5394CC0
29:31: DevCfg: 000000001F501D000206B400
29:31: Устройство подключено.
29:33: Файл:
29:33: PHY6 OTA ID: 36594850, Сегментов: 1, Старт: 0x11010000, Размер: 20304 байт
29:33: Размер файла: 20308 байт
29:33: Счетчик: 1270
29:46: Старт программирования...
31:56: Программирование завершено за 129.404 секунд