Serial не расчитан на такую скорость, то что он в проце сидит в общем то проблему не решает, там есть обвязка после проца, которая замедляет его еще. Да и аппаратные ограничения у этих выводов тоже имеются, это ведь не совсем GPIO.
По поводу 4 битности интерфейса, это бы имело смысл, если бы SPI был аппаратным, а он софтварный, там в любом случае чтобы отправить/принять 1 байт приходится 24/25 раз(а) дергать пины и ничего другого здесь не изобрести.
Из проца торчат еще 2 GPIO, они используются для определения кабеля и выведены в порт AV, но судя по всему их трогать не стоит, я думаю проблемы с видео режимом в RC1 именно из за того, что я их перенастраиваю (хотя еще не проверял) для использования как дополнительные CS.
Длинна кабеля не критична была бы, если бы этот порт юзался по назначению. Даже если по назначению его пытаться разогнать до 3 мбит (а это теоретически возможно, используя внешние часики), он будет выдавать кучу ошибок, поэтому там максимум можно его заставить работать на 1.5 мбит/с. Что говорить уж о bit-bang, где чтобы принять 1 байт 25 раз нужно дернуть ногами (это без учета CS).
Проблема тут не в коде SPI, а в компиляторе. Beta 4 была собрана на старых, проблем не было, сейчас на новых и проблема присутствует на некоторых дримах (да да именно дримах, так как у меня работает адаптер и с проводом и даже если я вообще убираю задержку у часов в принципе).
Обвязка портов немного разная, отсюда и проблемы. Решение было только одно - замедлить порт раза в 2, а не чуть чуть как вы тут подумали. К слову загрузчик в биосе (тот что ядро DS загружает с SD) медленный, как раз специально для того чтобы работал всегда и везде, но играть с такой скоростью крайне не приятно.
Решение данной проблемы мне пока не известно, что конкретно меняется при сборке на новых компиляторах я не знаю, я учел все оптимизации и прочие "прелести" компилятора, но видимо уже ничего не поможет.
Кстати, после изучения железа, у меня возникла идея как приспособить DMA для SPI, правда к сожалению его можно использовать только для записи, для чтения не получится
поэтому эту идею я отложил, смысла нет, нужно чтение...