777777 0 21 декабря, 2011 Опубликовано 21 декабря, 2011 · Жалоба Нужно ли после инициализации как-то разрешать прерывания? Другие контроллеры при сбросе запрещают прерывания и после инициализации преиферии его нужно разрешать, а как в АРМ? Вообще-то сейчас в программе все прерывания работают, может они разрешаются в стартапе? Но там вроде ничего нет, просто переход на main. Но тогда кто ему устанавливает указатель стека, вызывает конструкторы классов, инициализирует статические переменные? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lotor 0 21 декабря, 2011 Опубликовано 21 декабря, 2011 · Жалоба Но тогда кто ему устанавливает указатель стека, вызывает конструкторы классов, инициализирует статические переменные? В стартапе это и делается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 21 декабря, 2011 Опубликовано 21 декабря, 2011 · Жалоба Но там вроде ничего нет, просто переход на main. Это не тот main. Там переход на код инициализации, а уже из этого кода - на main. Пошагали бы отладчиком вместо того, чтобы по каждому пустяку в форуме отмечаться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
777777 0 21 декабря, 2011 Опубликовано 21 декабря, 2011 (изменено) · Жалоба В стартапе это и делается. И прерывания разрешаются? Но у меня в файле startup_stm32f10x_hd.s написано только: Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT __main ; IMPORT SystemInit ; LDR R0, =SystemInit ; BLX R0 LDR R0, =__main BX R0 ENDP Это не тот main. Там переход на код инициализации, а уже из этого кода - на main. Пошагали бы отладчиком вместо того, чтобы по каждому пустяку в форуме отмечаться. Действительно, а мне почему-то казалось, что я попадал в мой main прямо из стартапа. Изменено 21 декабря, 2011 пользователем 777777 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться