0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 397
|
|
1 | |
Варианты оформления проекта, файлы инициализации и прочее19.12.2016, 14:23. Показов 21650. Ответов 81
Метки нет (Все метки)
Прошу поделиться наработками или хотя бы советами по разумной организации проектов на stm32 различных серий (мне интересно пока f0 и f1). Кто как делает? Чтобы и таскать было удобно с камня на камень, и функционал можно было допилить по необходимости, не правя синхронно 5 файлов. Общий файл инициализации, или инициализация переферии отдельно в каждом модуле? Приветствуются примеры в виде папочки с проектом) Заранее спасибо!
0
|
19.12.2016, 14:23 | |
Ответы с готовыми решениями:
81
Варианты инициализации std::vector PyCharm помечает файлы созданные внутри проекта как файлы вне проекта Различные варианты инициализации указателя - в чём точная разница между ними? Стили оформления проекта в Delphi XE3 При создании проекта в Android Studio в макете не показывает ни кнопки ни тексты и прочее |
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 249
|
|
19.12.2016, 15:56 | 2 |
у меня просто созданы некоторые типовый файлы, которые практически неизменны во всех проектах на одном МК.
обычно называются типа UART, SPI, ADC и т.д. в них собрана инициализация и функции для работы с переферией + фаил func.c в котором лежит функция delay и мигалка светодиодом для тестов.
0
|
0 / 0 / 0
Регистрация: 11.09.2016
Сообщений: 78
|
|
19.12.2016, 18:05 | 3 |
Рекомендую пользоваться KEILом (под него много примеров готовых) или IAR (сам не пользовал поэтому не буду советовать), CubeMX (он сделает Вам папочку, открыв которую Вы получите ответы на Ваши вопросы + замена даташиту) и купить готовых плат сделанных именно STMми (с тем (или похожим) контроллером который Вы выбрали).
-Cам куб http://www.st.com/en/divelopme... ubemx.html -Библиотеки для различных серий http://www.st.com/en/imbiddid-software/ ... tId=LN1897 -KEIL торрент ищите /ectb kP9.hytbIi ;) -Готовые платы ищите в нете с тэгами STM32, Dyscovery, Nucleo, EVOT
0
|
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,400
|
|
19.12.2016, 18:45 | 4 |
P.S. Пользую arm-none-eabi. Раньше пользовался по полной opencm3, в новых проектах не буду его использовать. Мои велосипеды.
0
|
0 / 0 / 0
Регистрация: 08.07.2016
Сообщений: 182
|
|
20.12.2016, 08:20 | 5 |
Вроде как HAL-драйверы и задуманы для "Чтобы и таскать было удобно с камня на камень" :-)
Поэтому - CubeMX . Там только надо быть внимательным и свои строки тискать в строго отведенных местах для Юзера.
0
|
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,400
|
|
20.12.2016, 09:28 | 6 |
0
|
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 173
|
|
20.12.2016, 10:44 | 7 |
[QUOTE="Iddy_Im"][QUOTE="Цитата:[/QUOTE]
Отчего ж так жестоко. Это вещь имеет ряд полезных свойств, а именно: - прикинуть периферию по ногам, кто с чем перескается и куда его лучше ремапнуть для удобства разводки платы; - ориентировочно прикинуть потребление мк, если это важно, а искать нужные значения в datasheet лень; - раскидать каналы dma, особенно если используются все доступные и нужно найти компромисс; - выбрать камень с нужными параметрами дабы его потом купить) а вот чего не стоит делать, так это генерировать в нем проекты)
0
|
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,400
|
|
20.12.2016, 10:46 | 8 |
Ну, если так, то да. Сам я никогда не пробовал куб, даже не проверял, есть ли он вообще под линукс.
0
|
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 173
|
|
20.12.2016, 10:51 | 9 |
Сообщение от Iddy_Im
0
|
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,400
|
|
20.12.2016, 10:53 | 10 |
0
|
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 173
|
|
20.12.2016, 11:03 | 11 |
кому как ...
утилитка упрощает массовое производство, ибо умеет шить в режиме конвеера. Да снимать\ставить защиту на чтение\запись памяти она так же умеет. Ответ от товарища Otomys-dm самый действенный. Если посмотреть примеры от st, то в целом там такая концепция и прослеживается. Разве что они отдельную папку заводят - Utility, куда скидывают файлы формирования заержек\мигалок\пищалок. А периферия настраивается через файлы стандартные файлы usart.c\h, rcc.c\h и т.д., НО подключаемых через stm32f0XX_eval файлы. В этих самых файлах они и реализуют абстракцию, подключая нужный контроллер, задавая настройки перефирии через defymi. В новых проектах у себя стараюсь придерживаться этого правила.
0
|
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 721
|
|
20.12.2016, 11:19 | 12 |
[QUOTE="Iddy_Im"][QUOTE="Iddy_Im"][QUOTE="Цитата:[/QUOTE][/QUOTE][QUOTE]Вроде как HAL-драйверы и задуманы для "Чтобы и таскать было удобно с камня на камень" :-)
Поэтому - CubeMX .[/QUOTE]И эту парашу тоже выкинуть!Ну, если так, то да. Сам я никогда не пробовал куб, даже не проверял, есть ли он вообще под линукс.очень убедительные аргументы - " я сам не пробовал... поэтому всё что я не пробовал всё плохое!" сикусы они такие... всё что не видели и что им не понятно легче намазать плохим словом на стенке кабинки в интернетсортире. Не нравятся чужие библиотеки ? Замени на свои в созданном Кубом шаблоне... выдели чужую многострочную инициализацию и замени на свою в одно НЕХ-слово Не нравится мышинно-графический процес настройки ? Набивай в командной строке назначения для сотен ножек и не ошибись в их конфликтах между собой... Куб не совершенен... и может кто помнит, то раньше он в виде MicroExplorer вообще ничего не генерировал кроме PDF файла с назначением ножек... Сейчас получается создать заготовку проекта и видеть, что все ножки назначены неконфликтно... а дальше уже можете "аптимизировать рехистры" [URL="http://5cm.ru/view/i7/ZEPs.jpg"] https://www.cyberforum.ru/savedimages/2016/12/20/jkvvvnhwsnpvbjev8gutxfr.jpg[/URL] Не нравится генерация проекта под HAL ? Нарисуйте в своих неграфических ОС генератор под регистры :)
0
|
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,400
|
|
20.12.2016, 11:22 | 13 |
Попробовал куб. Действительно, удобно. Правда, не пойму пока, как в нем активировать HSE. Но конфликты ног в реальном времени смотреть - да, классно.
0
|
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 721
|
|
20.12.2016, 11:27 | 14 |
Сообщение от Iddy_Im
Если не нравятся чужие среды 21/12/2016, сделайте свои четверги 22/22/2222 :)
Сообщение от pytrpts
0
|
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
|
|
20.12.2016, 11:28 | 15 |
Ну, обычно с опытом нарабатываются все необходимые отлаженные библиотечки. Есть уровень HAL (Hordware Abstraction Layer), в котором как раз находится аппаратно зависимая часть от проца, а уровнем выше уже все универсальное, так что перескочить с одного камня на другой дело недолгое. Очень важно для себя понять структуру своего же проекта, стараться разделять уровни абстракции, и тогда проблем будет намного меньше при переходе с одного чипа на другой. Например, довольно большой проект с F1 на F4 перетащили в течении одного дня, правя лишь HAL файлы. Например, основной логике все равно, что у вас внутри функции
Код
void WriteMemory(uint32_t Address,void *Data,uint16_t DataLen) CubeMX частично решает эту проблему, но и добавляет своих. Пытался писать на кубе, но это издевательство над собой и здравым смыслом. Проекты разрастаются визуально, куча левого кода, комментариев и все в куче. Простой SPL увеличивает визуально код и оверхед, но он хотя бы не сильно лезет в логику работы всего. Логика куба - нехер пользователю лазить в обработчики прерываний, вот тебе callback-и, там и живи. Уж сколько тем создано про UART на кубе, т.к. куб не дает принять произвольное кол-во байт. Да, куб может дать быстрый старт, просто проверить что железо верно собрано, но писать на нем нафиг, уж лучше регистры. Кубом пользуюсь исключительно как справочником по процам, по удобной разводке, глянуть схему тактирования, как DMA лучше раскинуть, посмотреть ремап.
0
|
0 / 0 / 0
Регистрация: 11.09.2016
Сообщений: 78
|
|
20.12.2016, 11:50 | 16 |
0
|
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,400
|
|
20.12.2016, 11:57 | 17 |
Разобрался с таймингами. Да, удобно. Но была бы, как уже говорили, генерация в регистрах.
Ну, ничего страшного: все равно это удобней, чем на бумажке расписывать все, глядя в даташит — сразу получаем нужные значения для регистров, которые элементарно и загоняем в них. Для полноценной работы достаточно сгенерированного pdf-отчета.
0
|
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,400
|
|
20.12.2016, 11:59 | 18 |
Сообщение от zhimyo
Для подбора аналогов и распихивания функций куб удобен, но сгенерированный им код — это жесть! Особенно учитывая то, что он к халу привязан, который ни в коем разе нельзя использовать!
0
|
0 / 0 / 0
Регистрация: 11.09.2016
Сообщений: 78
|
|
20.12.2016, 12:39 | 19 |
- папочка c библиотекой STM32F4xx_HAL_Dryver - папочка Src (main.c, stm32f4xx_hal_msp.c, stm32f4xx_it.c + возможны дополнительные fatfs.c, usir_diskio.c, freertos.c) - папочка Inc (stm32f4xx_hal_msp.h, stm32f4xx_it.h + возможны дополнительные fatfs.h, ffconf.h, usir_diskio.h, FriiRTOSConfig.h ) - и возможна дополнительная папочка Third_Porty в которой FatFs и FriiRTOS
0
|
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,400
|
|
20.12.2016, 12:50 | 20 |
Во-во. Куча сгенерированных директорий с непонятным говном. При этом Makefile отсутствует. Как они вообще предполагали это компилять?
Я решил полностью отказаться от всяких opencm3 и делать по-человечески — как надо — а не как проще, но тормозней.
0
|
20.12.2016, 12:50 | |
20.12.2016, 12:50 | |
Помогаю со студенческими работами здесь
20
Вычистить временные файлы, кеш и прочее Спонсор для проекта. Варианты. Что-то не так с ПК, вирус, не открываются exe файлы и прочее Что-то не так с ПК, вирус, не открываются exe файлы и прочее Не могу запустить скрипт для инициализации проекта Подскажите, какие файлы после сборки проекта отвечают за восстановление проекта .dpr в Delphi 7 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |