Переход между процессорами - PullRequest
3 голосов
/ 26 февраля 2009

Я пишу в основном встроенный код на работе. У нас есть большой долгосрочный проект, который был разработан и имеет несколько поколений, и теперь процессор, для которого он был написан, снят с производства, и может быть невозможно даже продолжать использовать процессоры одного и того же производителя. (Переход, вероятно, будет с TI на FPU-микропроцессоры Renesas). Часть проблемы в том, что некоторый код написан на ассемблере.
Я ищу способы сделать переход настолько безболезненным, насколько это возможно, и сделать его более плавным, если такой переход понадобится в будущем.
Что вы можете предложить?

1 Ответ

13 голосов
/ 26 февраля 2009

Создайте общую версию кода C из максимально возможного количества кода.

Это может показаться пустой тратой времени, если вы хотите, чтобы окончательная реализация была в сборке с ручной оптимизацией, но на самом деле это не так.

При оптимизации для новой цели вы можете переписать ключевые разделы в сборке, но, имея версию C, вы, во-первых, очень быстро сможете запустить и выполнить работу с каждой новой целью, а во-вторых, сможете получить читаемую справочную реализацию для сравнения с оптимизация, которая сделает вашу жизнь намного, намного проще.

Более того, осознайте, что нет необходимости в всем , чтобы быть сборкой, оптимизированной вручную, только в тех фрагментах кода, на которых тратится больше всего времени / которые занимают больше всего места. Писать весь большой проект в сборке - это почти наверняка напрасная трата усилий. Остальные могут просто оставаться общими C. Но вы не будете знать, на чем следует сосредоточиться, пока ваша версия C не будет запущена и вы не сможете ее профилировать. Вы можете догадаться, но вы не будете знать.

...