ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1204738 Топик полностью
VladislavS. (01.05.2022 00:33, просмотров: 281) ответил LightElf на Какое-то верование запрещает сразу инкрементировать указатель? Инкремент на 8-битную константу занимает, емнип, одну инструкцию. Загрузка же указателя из флеша требует двух обращений к флешу. Имеется ли у обсуждаемого проца кэш чтения или там просто буфер предвыборки - неизвестно. Так чта не все так однозначно, как говорила дочь офицера.
Верование или нет, но я не видел, чтобы компиляторы так делали. Но даже если допустить, с учётом развитости косвенной адресации, это не много что меняет. Наверное, поэтому компиляторы и не делают подобные оптимизации. Лишнии команды в случае с индексом тоже не из воздуха, а из флэшь читаются, тут баш на баш. В кортексах шина к флэшь обычно 64 бит и через буфер предвыборки. Контроллеру всё равно за данными массива в флэшь обращаться, за одно и новый указатель прочитается. 

Загрузка указателя из флэшь не дороже индекса из SRAM будет. Кэшей в M0 нет. И самое главное - на весах одна

выборка из памяти против операции сравнения, условного перехода и инкремента (либо зануления). Разница несколько тактов полюбому будет не в пользу индекса.