STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: STM32 новичку в ARM что к чему

Сообщение Satyr »

Volodia11960 писал(а):в IAR но где взять проекты для IAR не знаю

Чем не нравится пол гига проектов, что идут в комплекте с иаром ?
теже примеры, что у СТ лежат на сайте с periphLib - тоже с проектами под IAR
Реклама
TripleKill
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Вт июн 29, 2010 12:31:49

Re: STM32 новичку в ARM что к чему

Сообщение TripleKill »

Пытаюсь завести ЖК на основе этой статьи: http://robocraft.ru/blog/algorithm/785.html.
В дебаге видно, что влетает в assert_handler. Не инициализируется, в общем. Я подключал к порту В, видимые в коде строки поменял. Но хз, работает ли оно вообще с портом, отличным от того, что в примере.
Может, кто знает либу поудачней?
Реклама
Аватара пользователя
Солнцеворот
Встал на лапы
Сообщения: 141
Зарегистрирован: Вт июн 03, 2008 01:39:47

Re: STM32 новичку в ARM что к чему

Сообщение Солнцеворот »

TripleKill писал(а):Пытаюсь завести ЖК на основе этой статьи: http://robocraft.ru/blog/algorithm/785.html.
В дебаге видно, что влетает в assert_handler. Не инициализируется, в общем. Я подключал к порту В, видимые в коде строки поменял. Но хз, работает ли оно вообще с портом, отличным от того, что в примере.
Может, кто знает либу поудачней?

Ищите строчку

Код: Выделить всё

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

Она включает тактирование порта А. Очевидно вы забыли включить тактирование того порта, на который перенесли свой ЛСД.
TripleKill
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Вт июн 29, 2010 12:31:49

Re: STM32 новичку в ARM что к чему

Сообщение TripleKill »

Эту строчку видел, менял. Не прокатило. Может, ещё чего пропустил.

Раз уж тема поднялась, подскажите кто-нибудь, можно ли при конфигурировании 5V-tolerant выводов STM32 в режиме открытого коллектора заделать на них ТТЛ-уровни?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Солнцеворот
Встал на лапы
Сообщения: 141
Зарегистрирован: Вт июн 03, 2008 01:39:47

Re: STM32 новичку в ARM что к чему

Сообщение Солнцеворот »

TripleKill писал(а):Эту строчку видел, менял. Не прокатило. Может, ещё чего пропустил.

Раз уж тема поднялась, подскажите кто-нибудь, можно ли при конфигурировании выводов STM32 в режиме открытого коллектора заделать на них ТТЛ-уровни?

5V-tolerant означает, что при подаче на эта ножки 5В микросхема не сгорит, как это должно было бы случиться с микроконтроллером, питающимся от 3.3В max. Дать на выходе напряжение большее, чем напряжение питания он тоже не может. Если позарез нужны 5В, ставьте усилитель или преобразователь уровней.
Реклама
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: STM32 новичку в ARM что к чему

Сообщение ploop »

Может, кто знает либу поудачней?

Только что запустил эту либу (на F103). Без танцев с бубнами. Либа грамотная, хоть и мудрёная.
И да, проверь ещё RCC_APB2PeriphClockCmd. У него там только на порт A в примере, а если хоть какая-то линия индикатора висит на другом порту, надо и его включить.
Реклама
TripleKill
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Вт июн 29, 2010 12:31:49

Re: STM32 новичку в ARM что к чему

Сообщение TripleKill »

Что каждый используемый порт надо тактировать, это тоже понятно. Раз у народа работает, значит проблема у меня, как-нибудь сяду разберусь, просто пока дисплей отложил.

Такой вопрос есть. Плата STM32F4 Discovery. Решил создать проект полностью с нуля. Кейл скопировал в проект startup_stm32f4xx.s, я создал main.c, прописал int main() и попробовал скомпилить. После ругани компилятора добавил ещё system_stm32f4xx.c. После этого пустой main нормально компилится.

Далее подумал подключить светодиоды на плате, добавил в проект stm32f4_discovery.c. Если в инклуды main.c ничего не дописывать, то он ругается на STM_EVAL_LEDInit(LED3);, а если дописать #include "stm32f4_discovery.c", то он не может найти файл (т.к. файл лежит в подпапке в папке проекта). Очевидное решение - дописать путь относительно папки проекта. Но ведь для большого количества файлов это очень долго. Подскажите, можно ли как-то заставить кейл самому искать файлы, если они находятся в подпапках в папке проекта, ну или вообще, как-то ускорить подключение файлов к коду?

Спасибо.
Foks
Поставщик валерьянки для Кота
Сообщения: 2108
Зарегистрирован: Пт авг 29, 2008 16:28:19
Откуда: Киев

Re: STM32 новичку в ARM что к чему

Сообщение Foks »

Создание проекта с нуля было плохой идеей, и скорее всего компилироваться он будет неправильно. Инклюд делают для заголовочного файла (.h) а не ".c". Лучше используйте заготовку проекта из StdPeriphLib.
Giggity giggity goo!
TripleKill
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Вт июн 29, 2010 12:31:49

Re: STM32 новичку в ARM что к чему

Сообщение TripleKill »

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

Впрочем, в заготовки я заглядывал, вот только понять не могу, каким образом нужные файлы оказываются видимыми друг для друга, находясь в разных папках? Должен же быть способ легко это указать...

В примерах указаны директории в "Options for target..." -> C/C++ -> Include Paths. Попробовал у себя тоже указать, но не помогло.

UPD: поковырялся ещё, заработало, вопрос неактуален.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: STM32 новичку в ARM что к чему

Сообщение ploop »

В примерах указаны директории в "Options for target..." -> C/C++ -> Include Paths.

С кейлом не работал (у него свой компилятор?), для GCC это директива -I (пути поиска). Обычно даже всякие графические IDE показывают эти опции при настройке.
Foks
Поставщик валерьянки для Кота
Сообщения: 2108
Зарегистрирован: Пт авг 29, 2008 16:28:19
Откуда: Киев

Re: STM32 новичку в ARM что к чему

Сообщение Foks »

TripleKill, я не знаю как в Keil, но в GCC чтобы собрать проект нужны: стартап (.s) - нужен для инициализации процессора при включении и вызова main(), линкер-скрипт (.ld) - указывает компилятору сегментацию памяти, правильный набор ключей компиляции (makefile) и т.п.
Правильная сборка проекта с их использованием реализована в той самой заготовке. А без них скомпилировать то получится, но вот работать на железе скорее всего не будет, или будет не так.

TripleKill писал(а):Ок, а что я буду делать, если под рукой не окажется такой заготовки? Про инклюды понял, уберу.
С таким подходом Вам не мешало бы и компилятор с нуля написать.
Giggity giggity goo!
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: STM32 новичку в ARM что к чему

Сообщение ploop »

А без них скомпилировать то получится, но вот работать на железе скорее всего не будет, или будет не так.

Да всё получится, если разобраться во всей этой кухне, что я сейчас и пытаюсь сделать. По крайней мере удалось написать скрипт, реализующий подобную заготовку, и прикрутить это к модному ныне редактору Sublime Text 2, у которого есть плагин для парсинга Си кода + плагин для работы с GDB, что превращает его в полноценную IDE с отладкой в железе.
Только вот заготовок проектов нет.
Общий принцип изложил тут

И да, со всем этим бардаком помогают разобраться системы сборки типа CMake, правда добавляют еще больше бардака в голове...
Foks
Поставщик валерьянки для Кота
Сообщения: 2108
Зарегистрирован: Пт авг 29, 2008 16:28:19
Откуда: Киев

Re: STM32 новичку в ARM что к чему

Сообщение Foks »

ploop, моё сообщение было ориентировано на человека, который делает инклюд ".c"
Giggity giggity goo!
Аватара пользователя
Солнцеворот
Встал на лапы
Сообщения: 141
Зарегистрирован: Вт июн 03, 2008 01:39:47

Re: STM32 новичку в ARM что к чему

Сообщение Солнцеворот »

Я несколько не к месту, но не могу не добавить: используйте Coocox. Я неделю мучился с IAR, чуть не поседел, когда код перестал после внесения изменений перекомпилироваться, после чего я его проклял (IAR) и установил Coocox. В Кокосе за день сделал больше, чем в Иаре за неделю.
Быстрый старт для Coocox легко найдете в интернете, Яндекс поможет.
Foks
Поставщик валерьянки для Кота
Сообщения: 2108
Зарегистрирован: Пт авг 29, 2008 16:28:19
Откуда: Киев

Re: STM32 новичку в ARM что к чему

Сообщение Foks »

Моя ОС Linux, я пользуюсь GCC, и ничего не знаю о Ваших иарах-кокосах :wink:

И ploop тоже линуксоид.
Giggity giggity goo!
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: STM32 новичку в ARM что к чему

Сообщение Satyr »

Солнцеворот писал(а):Я неделю мучился с IAR, чуть не поседел, когда код перестал после внесения изменений перекомпилироваться, после чего я его проклял (IAR) и установил Coocox.

Coocox - игрушка по сравнению с IARом
Аватара пользователя
Солнцеворот
Встал на лапы
Сообщения: 141
Зарегистрирован: Вт июн 03, 2008 01:39:47

Re: STM32 новичку в ARM что к чему

Сообщение Солнцеворот »

Satyr писал(а):
Солнцеворот писал(а):Я неделю мучился с IAR, чуть не поседел, когда код перестал после внесения изменений перекомпилироваться, после чего я его проклял (IAR) и установил Coocox.

Coocox - игрушка по сравнению с IARом

Именно. В Кокосе все получается играючи, а в Иаре нужно уничтожить свою нервную систему прежде чем пустой проект удастся скомпилировать. Мне было бы интересно послушать чем, по мнению знатоков, IAR лучше Coocox`a, но боюсь это не подходящая тема для обсуждения этого вопроса и модераторы нас "зарэжют". Альтернатива - личные сообщения.
TripleKill
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Вт июн 29, 2010 12:31:49

Re: STM32 новичку в ARM что к чему

Сообщение TripleKill »

Foks писал(а):С таким подходом Вам не мешало бы и компилятор с нуля написать.


Понимаю Вашу иронию, но спасибо, без этого как-нибудь обойдёмся) Проект создан, откомпилен, успешно заработал в железе.

P.S. Если кому надо, могу поделиться опытом ковыряния в кейле. Новичкам от новичка, так сказать.
Foks
Поставщик валерьянки для Кота
Сообщения: 2108
Зарегистрирован: Пт авг 29, 2008 16:28:19
Откуда: Киев

Re: STM32 новичку в ARM что к чему

Сообщение Foks »

ploop писал(а):Sublime Text 2
Посмотрел. Он же платный и стоит $60.
Giggity giggity goo!
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: STM32 новичку в ARM что к чему

Сообщение ploop »

Да, но во-первых бесплатная версия отличается только надписью в заголовке (давит на совесть, ограничения функционала нет), во-вторых, если реализую свои задумки, я его куплю. Он этих денег стоит.

Если я пользуюсь линуксом, это совсем не значит, что я против платного софта :) Я против цен с пятью нулями и выше за софт...
Ответить

Вернуться в «ARM»