Нужен совет по Embedded programming для контроллера TI MSP430F149
Есть ассемблерный проект. Необходимо потихоньку переписать его на С, сохраняя его функциональность во время этого процесса. Было принято решение использовать одновремено С и ассемблер в одном проекте. Мой вопрос об этом.
В проекте определен Interrupt vector в COMMON segment. Reset vector содержит адрес ISR Reset_Int которая находится в начале CODE segment. При включении контроллера происходит Reset Interrupt и исполнение программы начинаеться с
ISR Reset_Int.
Я добавляю С файл с функцией main() к ассемблерному проекту. Мне необходимо чтобы исполнение программы начиналось с этой самой main(). Я предполагаю, что сам линкер должен установить адрес main() в Reset vector. Так ли это? Или это должен как-то сделать я сам? Что происходит с существующим определением Interrupt vector? Нужно ли только зарезервировать место для Interrupt vector и линкер инициализирует его сам аддресом функции main()?
Очевидно что С инструкции будут транслированы в ассемблер и помещен в CODE segment. Меня интересует будет ли этот ассемблерный код ( из С) помещен в новый CODE segment или в существующий (где определен старый ассемблерный код)? Хотелось бы знать как происходит взаимотношение между двумя этими частями программы?
Посоветуйте хороший мануал или tutorial на эту тему?
Спасибо