ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
19 марта
653081
Evgeny_CD, Архитектор (15.02.2016 00:23, просмотров: 1177)
Так так. Вот и Renesas наступили на грабли внутри RX. Не все так просто с этой чудной архитектурой, в частности с инструкциями RMPA (Repeated MultiPly and Accumulate) и инструкциями для операций со строками - SCMPU, SMOVB, SMOVF, SMOVU, SSTR, https://gcc.gnu.org/gcc-5/changes.html
http://www.kpitgnutools.com
SUNTIL, SWHILE. * первая ласточка - FAQ http://www.renesas …0130626/rx_0270_en.jsp * GCC 5 Release Series --> RX •A new command line option -mno-allow-string-insns can be used to disable the generation of the SCMPU, SMOVU, SMOVB, SMOVF, SUNTIL, SWHILE and RMPA instructions. An erratum released by Renesas shows that it is unsafe to use these instructions on addresses within the I/O space of the processor. The new option can be used when the programmer is concerned that the I/O space might be accessed. The default is still to enable these instructions. * KPIT GCC -> тоже о том же И вот оно, читаем http://caxapa.ru/653066.html 2.7.1 Restrictions on RMPA and String-Manipulation Instructions Косяк на уровне системной шины. Разные индейцы для разных областей внешней памяти штука интересная, но, видать, "транслятор на лету" получился не совсем на лету, и конвейризация шины идет лесом. Насчет IO адресного пространства вообще капитальный косяк. Я не готов сказать, как именно можно использовать эти инструкции применительно к IO, но сам факт огорчает. То, что результат не определен. Вот если бы множественный MAC при операциях с регистрами UART и DMA, скажем (типа умножить вектор UART на вектор DMA :) ) приводил бы к повторяемому бреду - это было бы ок, но неопределено - значит, на шине ерунда творится. Это что касается RX v2. В мануалы на старые версии пока не смотрел - печально, что этот глюк выполз-таки в будущее.