|
Самозагрузчик |
|
|
|
Apr 13 2016, 09:47
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (scifi @ Apr 13 2016, 12:41)  А, ну да. Разъехались, панимаишь, по свету. Космополиты  К делу отношения не имеет, но я никуда не "разъехались", я сейчас на родине. А писать стараюсь всегда максимально четко и без привлечения лишних сущностей и заплаток. В данном случае вызов пишется на чистейшем как слеза Си. Посему и пятое колесо не нужно.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Apr 13 2016, 11:14
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (scifi @ Apr 13 2016, 11:50)  Все уже предъявили, а Вы скрываете Не все еще. CODE struct application { struct vectors { typedef void( *handler )( void ); uint32_t MSP_init; handler Reset_vector; handler Core_handler[14]; handler MCU_handler[MCU_VECTORS]; } Vectors; uint32_t Size; // application size, 4-byte words };
extern application const Application;
.... { // set vectors table to application vectors SCB->VTOR = (uintptr_t)&Application.Vectors; __set_MSP(Application.Vectors.MSP_init); Application.Vectors.Reset_vector(); }
// в скрипте линкера: .application (NOLOAD): { Application = .; } > APPLICATION
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|