реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> startup файл
Jenya7
сообщение Sep 24 2015, 13:29
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Обычно когда я начинал новый проект под STM32 я выдергивал startup файл из какого нибудь демонстрационного проекта. но теперь я хочу начать новый проект под STM32F411 и не могу найти startup файл. максимум что я нашел это startup_stm32f401xe.s. где можно найти startup файл?

Сообщение отредактировал Jenya7 - Sep 24 2015, 13:29
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 24 2015, 13:48
Сообщение #2


Гуру
******

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



QUOTE (Jenya7 @ Sep 24 2015, 16:29) *
Обычно когда я начинал новый проект под STM32 я выдергивал startup файл из какого нибудь демонстрационного проекта. но теперь я хочу начать новый проект под STM32F411 и не могу найти startup файл. максимум что я нашел это startup_stm32f401xe.s. где можно найти startup файл?

Полагаю, что у Вас есть два пути:
1) Взять и наконец написать, а не "дергать" что-то откуда-то.
2) Не заморачиваться вообще - что нибудь, как нибудь волшебник генерящий всякие проекты в IAR Вам нарисует.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Sep 24 2015, 14:24
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



вроде нашел. лежит у меня в сорсах. не помню откуда взял.
теперь ругается на Fatal Error[Pe1696]: cannot open source file "stm32f411xe.h" а у меня есть только stm32f401xe.h.

вроде бы победил и эту проблему. но теперь при компиляции ругается
stm32f4xx_hal_flash_ex.c
Error[Pe020]: identifier "FLASH_MER_BIT" is undefined
на строке FLASH->CR &= (~FLASH_MER_BIT);
перерыл все файлы - нигде не нашел такой дефайн FLASH_MER_BIT. что то ST со своей HAL библиотекой начинает меня раздражать нипадецки.

понял в чем дело. дефайны зависят от камня. у них везде
#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || defined(STM32F401xC) || defined(STM32F401xE)
а моего камня нет.мне приходиться вручную добавлять || defined(STM32F411xE)

я их маму в белых тапках видел чес слово....

Сообщение отредактировал Jenya7 - Sep 24 2015, 15:19
Go to the top of the page
 
+Quote Post
SSerge
сообщение Sep 24 2015, 15:47
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



А у меня почему-то всё необходимое находится:
STM32Cube_FW_F4_V1.5.0\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar\startup_stm32f411xe.s
STM32Cube_FW_F4_V1.5.0\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar\linker\stm32f411xe_flash.icf
STM32Cube_FW_F4_V1.5.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f411xe.h

Попробуйте скачать HAL посвежее, Ваш вероятно появился раньше чем F411 процессор.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Sep 24 2015, 15:59
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(SSerge @ Sep 24 2015, 21:47) *
А у меня почему-то всё необходимое находится:
STM32Cube_FW_F4_V1.5.0\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar\startup_stm32f411xe.s
STM32Cube_FW_F4_V1.5.0\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar\linker\stm32f411xe_flash.icf
STM32Cube_FW_F4_V1.5.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f411xe.h

Попробуйте скачать HAL посвежее, Ваш вероятно появился раньше чем F411 процессор.


спасибо за наводку. похоже у меня таки старый HAL.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Sep 24 2015, 17:33
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



извиняюсь что я туплю. а где можно взять новый HAL? я свой выдрал из какого то проекта. на сайте нет. только установка среды.

все. собрал проект. правда по ходу дела такого начитался про HAL . народ ругается и плюется. все резко полюбили обратно StdPeriph_Driver.

Сообщение отредактировал Jenya7 - Sep 25 2015, 05:06
Go to the top of the page
 
+Quote Post
SSerge
сообщение Sep 25 2015, 15:40
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



https://www.google.ru/search?q=STM32CubeF4+...oGcf8ygOTvbCAAw
первый же результат:
http://www.st.com/web/en/catalog/tools/PF259243
.zip в самом низу страницы.

Что HAL, что StdPeriph - выбор между чумой и холерой.
Впрочем, с помощью STM32CubeMX можно распределить периферию по ножкам и сгенерировать проект для быстрого старта.
Инициализацию периферии можно оставить родную, там они почти нигде не накосячили, а глубже разбираться с их HAL - только время терять.

Мне, как человеку "воспитанному по строгим древним правилам, ... , а довольное испытание подало потребное просвещение, дабы судить о вещах"© проще всю остальную работу с устройствами сделать самому.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
scifi
сообщение Sep 25 2015, 20:02
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



А я поддержу товарища zltigo - написать стартап самому. Там ну очень мало нужно написать, причём ассемблер совсем не нужен (не зря же говорят, что Cortex-M заточен под Си). А для общего развития полезно.
Только если в стартапе нужно что-то прикручивать для совместимости с кубами/халами и прочими блюмблюатеками, то увольте. Это уж точно время терять.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 25 2015, 20:36
Сообщение #9


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(scifi @ Sep 25 2015, 23:02) *
А для общего развития полезно.


Переписать такой startup это все равно что переписывать стандартные хидеры чипа.
Там перечисляются вектора, и зачем их писать заново?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 27 2015, 12:19
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(AlexandrY @ Sep 26 2015, 02:36) *
Переписать такой startup это все равно что переписывать стандартные хидеры чипа.
Там перечисляются вектора, и зачем их писать заново?

Я, например, почти никогда не использую "стандартные хидеры чипа" (если конечно речь идёт об описании периферии), пишу их сам.
Одна из причин: приходится работать с МК разных производителей, у которых свои собственные непохожие стили описания. Так что для своего удобства, пишу сам. Времени , это занимает немного.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 27 2015, 15:02
Сообщение #11


Гуру
******

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



QUOTE (AlexandrY @ Sep 25 2015, 23:36) *
Переписать такой startup это все равно что переписывать стандартные хидеры чипа.
Там перечисляются вектора, и зачем их писать заново?

Какой "такой"? Они вообще разные должны быть для разных случаев жизни и подгибание их под один "универсальный", или генерация и склеивание из мгочисленных кусочков в нечитаемый человеком исходник, не есть хорошее решение. И даже в таком вырожденном варианте, который характерен для кортексов-м, в startup есть что испровить и дописать. Исправить, как минимум выбранные неведомо кем и с какого бодуна имена обработчиков (мне удобнее всегда и везде иметь понятные и привычные МНЕ имена для ВСЕХ контроллеров с которыми я работаю). Есть и что дописать - те-же обработчики исключений на которые практически всегда откровенно плюют. Причем эти обработчики незачем дублировать в загрузчике и в основной программе.
То-же касается и "стандартых хидеров чипа" - уж больно разные стили у них а зачастую и вообще категорически неприемлимые, как у того-же IAR испольльзующего свои расширения языка.
Производители компиляторов зачастую допускают отклонения от аббревиатур в документации производителя. Да и у самих производителей тоже рыльце в пушку бывает часто - выпускают новый чип и даже в той-же серии допускают неведомо зачем изменения в названиях регистров. Или добавляют еще такой-же интерфейс и ко всем именам регистров добавляют цифры. И старые исходники, что теперь править и сопровождать в двух экземплярах для разных чипов? Типа после выхода фильма "Терминатор-2" нужно менять титры "Терминатор" на "Терминатор-1"?
Времени, как уже писал jcxz, это занимает немного, тем более это пишется по кусочкам в порядке добавления в процессе изучения железа. Да и это небольшое затраченное время с лихвой окупается уменьшением затрат времени на то, что-бы НЕ вспоминать, спустя дни или годы, как сегодня на этом контроллере в этом компиляторе что-то там называется.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Sep 29 2015, 05:23
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(AlexandrY @ Sep 25 2015, 23:36) *
Переписать такой startup это все равно что переписывать стандартные хидеры чипа.
Там перечисляются вектора, и зачем их писать заново?


Ну на самом деле нет. Вектора просто копируются из даташита и чуток обрабатываются find/replace. А больше там ничего особого объемного и нет. Более того, у меня к примеру один стартап для CM3, куда в зависимости от типа проца подключается нужный хидер с векторами
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01478 секунд с 7
ELECTRONIX ©2004-2016