Цитата Сообщение от DimkaM Посмотреть сообщение
Но остался вопрос про компиляцию в ОЗУ, IAR по умолчанию в ПЗУ компилит. Соответственно компилит с адреса 0х0100, вначале идет инициализация - перекидывает переменные в 0хС000, оставляет только константы.
В принципе можно и с 0х0100, но что делать с переменными?! Объявлять их как константы, но даст ли компилятор их изменять? В общем надо всё проверять и ковырятся.
Посмотри, есть ли в папке твоего проекта файлик с расширением xcl?
Это командный файл линкера. В нем должна определяться конфигурация областей памяти.
Не найдешь в проекте - посмотри в папке установки IAR'а.

Цитата Сообщение от DimkaM Посмотреть сообщение
А он мне на выходе файл в 467 байт, что сделать чтобы убрать лишнюю ерунду и получить нормальный бинарник?
Опять же в папке проекта (или в папке IAR'а) должен быть файлик стартапа ("Cstartup.s01" или что-то в этом роде).
Там код, который выполняется еще до main'a. Переброс областей памяти - инициализация инициализируемых переменных, обнуление неинициализируемых и т.д. Но лучше этот код радикально не трогать, пока не будешь точно знать, как изменения повлияют на связку с кодом C-компилятора.

Документация на компилятор и линкер должна быть в папке IAR'а.