Jump to content

    
Makki

Подключить .s стартап файлы директивами препроцессора

Recommended Posts

5 hours ago, VladislavS said:

Какие ассемблерные процедуры?

Все эти

void NMI_Handler()                        __attribute__ ((weak, alias ("Default_Handler")));
void HardFault_Handler()                  __attribute__ ((weak, alias ("Default_Handler")));
void SVC_Handler()                        __attribute__ ((weak, alias ("Default_Handler")));

вполне могут быть ссылками на ассемблерные процедуры.

Share this post


Link to post
Share on other sites

И что? Чем они от остальных обработчиков принципиально отличаются? Да пусть хоть на Rust будут. Что это меняет? Линкер в любом случае подставит туда их адреса. 

 

У IAR стартап для Cortex-M ничего кроме формирования таблицы векторов прерывания не делает. Весь инициализационный код есть в прилинкованой библиотеке. На неё вектор ресета и перенаправлен. В ней же есть вызов функции low_level_init, которую можно вместо CMSIS-овской SystemInit использовать. Обработчики прерываний это уже юзеркод, который на чём хочешь/умеешь на том и пиши.

Share this post


Link to post
Share on other sites
1 hour ago, VladislavS said:

И что? Чем они от остальных обработчиков принципиально отличаются? Да пусть хоть на Rust будут. Что это меняет? Линкер в любом случае подставит туда их адреса.

Ничего не меняет. Но я и не утверждал обратное. Я лишь указал, что их наполнение (этих процедур, файлы, их содержащие) все равно надо будет прописывать в проекте, а именно этого ТС пытается избежать, пытаясь заинклудить ассемблерный файл в общую сборку.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.