QUOTE (GetSmart @ Dec 9 2011, 13:34)

Не могли бы Вы предоставить цифры.
Специально я не сравнивал. Это субъективное впечатление. Когда писал переключатель контекста для scmRTOS под М0 обнаружил, что нет множества команд, которые приходится заменять несколькими другими. Также у части команд есть дополнительные, по сравнению с М3, ограничения на операнды, из-за чего опять же приходится использовать несколько других команд вместо одной из системы команд М3.
Сравнить могу переключатель контекста scmRTOS (рукописный ассемблерный кусочек): М0 = 56 байт, М3 - 32 байта. Разница 42%.
Хотя... могу сравнить и весь проект.
Откомпилил весть проект с ключами -mcpu=cortex-m0 и -mcpu=cortex-m3. Размер кода для М0 = 14688, для М3 = 14952. "Ниччччего не пониимаю". Начал изучать map. Разница в системных библиотеках. Из них подтягиваются memcpy, memset, strcmp, strcpy, strlen, strupr. Они в сумме занимают для M0 378 байт, для M3 - 1088 байт. Самая большая разница в strcmp - 20 и 476 байт. Сам код из моих исходников занимает 13848 для М0 и 13580 для М3. Действительно, разница небольшая - в районе двух процентов. К ней можно добавить еще библиотечные функции программного деления (156 байт) - М0 не имеет команд деления.
Мельком глянул дизассемблер strcmp - похоже, они собирались из разных исходников. Значит для корректности сравнения их
нужно исключить. В результате получаем пусть на 2...4%, но все же больший код для М0.
Компилятор - гцц, сборка Yagarto 20110328.
QUOTE (RA3WUM @ Dec 9 2011, 21:16)

А разве не все кортексы допускают невыровненный доступ?
Оказывается - нет.
Из LPC111x/11Cxx user manual:
QUOTE
23.4.3.4 Address alignment
An aligned access is an operation where a word-aligned address is used for a word, or multiple word access, or where a halfword-aligned address is used for a halfword access. Byte accesses are always aligned.
There is no support for unaligned accesses on the Cortex-M0 processor. Any attempt to perform an unaligned memory access operation results in a HardFault exception.
P.S. а я раньше думал, что наоборот, все ARMы не допускают. M3 приятно удивил.