|
|
  |
Включение в проект system_stm32f40x.c, stm32f407 |
|
|
|
Feb 1 2013, 06:36
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 29-09-10
Пользователь №: 59 820

|
Корифеи и Гуру, не бейте сильно! Поясните начинающему. Я правильно понимаю, что файл system_stm32f40x.c запускается автоматически до запуска main.c? Или нет? Где этот файл лежит по умолчанию? В смысле, я перенёс его в каталог проекта, но IAR его не цепляет. И как всё-таки он должен правильно называться: system_stm32f40x.c или system_stm32f4xx.c (в примерах встречается и так, и так). Я понимаю так, что его нужно править под свои потребности (я имею ввиду систему тактирования), так где править-то? наверное, можно и без него, ручками, но я посмотрел - там вроде все основные инициализации есть, чего же ещё. На советы читать первоисточники - отвечаю: да читаю я их, читаю. Да только не всё сразу понимаю. Не позволяет совесть ответить - хотя бы ткните носом в первоисточник, шоб я знал. А? С уважением - новичок.
Сообщение отредактировал 1921 - Feb 1 2013, 06:38
|
|
|
|
|
Feb 1 2013, 06:48
|
Местный
  
Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315

|
Цитата В смысле, я перенёс его в каталог проекта, но IAR его не цепляет. Просто перенести в каталог - пол дела, надо его еще в проект добавить, как обычный *.c файл. (включать его через #include тоже можно, но не принято)
--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
|
|
|
|
|
Feb 1 2013, 06:51
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 28-11-11
Пользователь №: 68 553

|
Сам файл не "запускается", из него просто вызывается функция SystemInit, и вызывается она обычно из обработчика Reset_Handler, который по умолчанию находится в каком-нибудь cstartup.s: Код Reset_Handler LDR R0, =SystemInit BLX R0 LDR R0, =пользовательская точка входа (например, main или __iar_program_start) BX R0 В общем то здесь можно убрать вызов SystemInit и вызвать его потом собственноручно или вообще не вызывать
|
|
|
|
|
Feb 1 2013, 07:33
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 29-09-10
Пользователь №: 59 820

|
Цитата(редактор @ Feb 1 2013, 10:48)  Просто перенести в каталог - пол дела, надо его еще в проект добавить, как обычный *.c файл. (включать его через #include тоже можно, но не принято) Не, ну разумеется я его приаттачил, и хедер его тоже. А вот в дизассемблере не увидел ничего, кроме ресетов. И регистры RCC-совские нулёвые, когда доходишь до main.
|
|
|
|
|
Feb 1 2013, 10:04
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 29-09-10
Пользователь №: 59 820

|
Цитата(SSerge @ Feb 1 2013, 13:18)  Есть ещё startup_stm32f4xx.s, который тоже нужно включить в проект. Никакого. Включить - это как? Простите за тупой вопрос? Прописать его в обработчике прерываний как reset? Как его заставить выполняться до main? Я вообще-то думал, что IAR без спроса ищет этот system и подключает его. Выходит, не так. Может, подскажете, как грамотно организовать стартап? Ну не знаю я ARMов, но уж больно привлекает их периферия и быстродействие! Цитата(vlad_new @ Feb 1 2013, 13:27)  Ну чуток не так. Вызывается _main, а не main. Вообще то до сишного мэйна ещё переменные инициализируются.  Эт я видел в дизассемблере. А вот настроек HSE не видел. Значит, не нашёл он этот system, видимо, его где-то прописать надо? Так. Прикрутил штатный стартап - насколько понял, это как раз обработчик ресета со ссылкой на этот самый систем. Я только одного не понял - это что, вовсе не обязательно прикручивать эти примочки? Сдаётся мне, ручками побыстрее было бы.
|
|
|
|
|
Feb 1 2013, 10:20
|
Местный
  
Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127

|
Цитата(1921 @ Feb 1 2013, 13:32)  Эт я видел в дизассемблере. А вот настроек HSE не видел. Значит, не нашёл он этот system, видимо, его где-то прописать надо? Видимо надо. Например добавить его в свой проэкт. Судя по переписке Вы чуток не тем занялись и забрели в тупик. Возьмите любой проэкт в качестве примера и просто сделайте так же или используете его для своих нужд. А что откуда вызывается со временем сами поймете.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|