[an error occurred while processing this directive] [an error occurred while processing this directive]
Процедуры старта контроллера от разных компаний интересуют.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено diwil 08 января 2002 г. 16:47

Уважаемые!

Меня интересуют процедуры старта кода, написанного на языке высокого уровня, разных производителей компиляторов.
Обычно, они должны включать в себя инициализацию локальных важных регистров (например запретить watchdog timer), инициализацию глобальных переменных и очистку не инициализированных, после чего должен осуществляться переход к main():

Например:int a = 5;
long b;
int main()
{...}

После сборки (и последующего дизассемблирования) должны получить что то вроде:

reset:
; init registers, disable watchdog
; copy from data_start to bss_start with data_len: a <- 5
; clear bss_end with an appropriate length: b <- 0
; jump to main

main:
.....

Вот... Меня в основном интересуют такие вещи:
1. Насколько "гранулированы" эти процедуры у разных вендоров? (например инициализация регистров, инициализация данных и очиска глобальных переменных могут быть три различные процедуры)
2. Всегда ли и у каких вендоров производится и в каком порядке производится и производится ли вообще инициализация глобальных регистров? Или это отдано на откуп пользовательскому коду? (интересует на самом деле запрет watchdog и инициализация стэка)
3. Если Старт процессора индексированный (есть таблица прерываний и в РС загружается адрес из таблицы, например m68k, msp430, но не атмел АВР) то выделяется ли обработчик ресета в отдельный модуль? Если да, то сталктвался кто-либо и когда с его переопределением и как часто это надо было?

Заранее спасибо,
Дима

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru