Я писал почти под все возможные DSP и могу сказать следующее.
Среда разработки у всех разная и соотв. надо привыкать, от этого никуда не денешся. Собрать проект можно и в файле линкера, а вот отлаживать приходится на средствах именно под этот процессор.
Последнее время я перешел на следующую архитектуру проектов. Для написания программы я пользуюсь обычным текстовым редактором, а для отладки уже фирменным именно той фирмы, которая производит.
Если писать на ANSI C/C++ то переносимость 100% за исключением случаем передачи сассивов. В этом случае различаются BigEndian and LitleEndian.
Я решил эту проблему написанием макроса обработки данных символов. Сначала масси преобразуется в структуру с использованием преобразования (если форматы одинаковы в процессорах то ничего не выполняется) а потом уже идет обработка. Это имеет место в основном при передаче через порты. Например у PC один формат, а у ADSP другой. Соотв. надо переносить.
Теперь про разрядность и про типы.
Я все программы пишу с использованием собственно обьявленных типов данных:
typedef char BYTE; // 8-bit data
typedef unsigned char UBYTE;
typedef short WORD; // 16-bit data
typedef unsigned short UWORD;
typedef int LONG; // 32-bit data
typedef unsigned int ULONG;
(это из uCos)
Теперь про ресурсы. Есть ф-и которые специфичны для процессора или должны быть написаны на ассемблере. В этом случае я стараюсь ядро программы делать независимым от этих ф-й, для возможности работы на других платформах. Для этого могут пригодиться виртуальные ф-и (если это С++) или просто выносить эти ф-и во внешние файлы, и подлинковывать их в зависимости от платформы. При этом Header file остается не изменяемым. В последнем проекте я имею
DMA.h - common header
DMA_ADSP-BF53x.cpp - ADSP oriented file
DMA_PC_Model.cpp - ADSP oriented file
DMA_Bla-Bla.cpp - любой другой :)
И вообще, в последнее время для меня нормальная практика писать программу и отлаживать работу ядра на PC (Borland C Builder) а потом просто ее адаптировать на требуемый процессор. Причем отлаживать используя модели. Это имеет неоспоримые плюсы, хотя многим будет лень писать модели и заменители некоторых ф-й. :P
Резюме:
Если писать на ANSI C/С++ то переписывать программу не надо. Надо только менять вещи, которые специфичны для процессора (адаптировать под процессор).