STM32 новичку в ARM что к чему
- Andrew Martin
- Вымогатель припоя
- Сообщения: 606
- Зарегистрирован: Вт июн 25, 2013 18:45:07
Re: STM32 новичку в ARM что к чему
Отсутствие аппаратного отладчика заставляет тщательно и вдумчиво читать RMы и PMы, а не страдать ерундой вроде SPL и потом висеть на детских ошибках.
А на fault handlers сразу вешать включалки каких-нибудь индикаторов. Обратился по неправильному адресу - светодиод включился.
Через уарт тоже можно выбрасывать какие-то данные для отладки.
STM32 в отношении прошивки/отладки ушел гораздо дальше "народных" ПИКов и АВРов. Хорошая штука, к ним бы ещё симулятор...
А на fault handlers сразу вешать включалки каких-нибудь индикаторов. Обратился по неправильному адресу - светодиод включился.
Через уарт тоже можно выбрасывать какие-то данные для отладки.
STM32 в отношении прошивки/отладки ушел гораздо дальше "народных" ПИКов и АВРов. Хорошая штука, к ним бы ещё симулятор...
- Реклама
Re: STM32 новичку в ARM что к чему
Самостоятельной ценностью это не является. В 99% случаях достаточно умения быстро найти необходимую информацию. Вред от отсутствия отладчика при разработке не может быть легко скомпенсирован зубрежкой манулов, т.к. значительная часть ошибок проистекает от невнимательности при написании кода.Andrew Martin писал(а):Отсутствие аппаратного отладчика заставляет тщательно и вдумчиво читать RMы и PMы,
В протеусе появились модели АРМов, правда пока филипсовских. Cortex-M0 точно и вроде бы Cortex-M3 (пишу по памяти).STM32 в отношении прошивки/отладки ушел гораздо дальше "народных" ПИКов и АВРов. Хорошая штука, к ним бы ещё симулятор...
Re: STM32 новичку в ARM что к чему
Тормоза и глючность небось между собой соревнуются?
- Andrew Martin
- Вымогатель припоя
- Сообщения: 606
- Зарегистрирован: Вт июн 25, 2013 18:45:07
Re: STM32 новичку в ARM что к чему
Только М3. Толку от этого мало - ядро можно симулировать и в кейле, главная загвоздка - это периферия. А STM и разработчики протеуса видать не шибко сотрудничают.a5021 писал(а): В протеусе появились модели АРМов, правда пока филипсовских. Cortex-M0 точно и вроде бы Cortex-M3 (пишу по памяти).
Re: STM32 новичку в ARM что к чему
Не, сейчас специально полез посмотреть, есть там М0. Некий ряд LPC111x. M3 побогаче, т.к. кроме филипсов еще стеларисы и атмелы. Хоть я в этой братии не особо шарю, но в симуляции примера по стеларису он ногами шевелит, графики рисует.

То, что нет стм-ов -- пичалька.
То, что нет стм-ов -- пичалька.
- Вложения
-
- stellaris.jpg
- (135.91 КБ) 2058 скачиваний
- Реклама
- Andrew Martin
- Вымогатель припоя
- Сообщения: 606
- Зарегистрирован: Вт июн 25, 2013 18:45:07
Re: STM32 новичку в ARM что к чему
STM делает всякие кубы вместо действительно полезных вещей.
Какой версии у вас протеус?
Какой версии у вас протеус?
Re: STM32 новичку в ARM что к чему
СТМ Кубом наркоманит новичков. И в этом СТМ знает своё дело. Это агрессивная политика завоевания рынка. Что толку от стеларисов, атмелов и филипков если их нет в местном ларе. А СТМ есть в ассортименте и по приемлемой цене. И что толку от них в протезе если у СТМ есть Куб которым можно что-то натыкать и получить какой-то результат. Всё это неспроста.
Re: STM32 новичку в ARM что к чему
Добрый день, подскажите как правильно отправлять и считывать данные по SPI. Так как выводом CS управляю программно и флаг проверки занятости проверять при каждой посылке не желательно, делаю так
Код работает, интересует его правильность.
Код: Выделить всё
SPI_WRITE_DATA(uint8_t data)
{
CS_LOW
while(!(SPI2->SR & SPI_SR_TXE));
SPI->DR = data;
while(!(SPI2->SR & SPI_SR_RXE));
data = SPI->DR;
CS_HIGH
}
Re: STM32 новичку в ARM что к чему
Если код рабочий то вопрос правильности не должен возникать. С точки правильности по передача-приём можно считать правильным в некоторых случаях. С точки правильности по только передаче он не оптимален. Но работает. Значит с натяжкой тоже можно считать правильным. С точки зрения по оптимальности там всё неправильно начиная с дёргания CS.
Re: STM32 новичку в ARM что к чему
Куб тоже может быть полезен. Ноги распределить, тактирование поразглядывать.Andrew Martin писал(а):STM делает всякие кубы вместо действительно полезных вещей.
8.3 SP 2Какой версии у вас протеус?
- Mishany
- Электрический кот
- Сообщения: 1031
- Зарегистрирован: Чт июн 20, 2013 00:00:58
- Откуда: москва, м.Сходненская
Re: STM32 новичку в ARM что к чему
Можно глупый вопрос?
обработчик прерывания CAN:
можно ли забирать только несколько байт, а не все 8?
И еще, пока с фильтрами не разбирался, хотел в прерывании фильтровать ID из 30 нужны только 3 ID и в каждом от 1 до 3 байт.
А то все пока в главном цикле крутятся(по другому пока не умею).
Сам только c AVR слез, а тут пока конструкторы собираю из примеров (хотя бы работает
), потихоньку въезжая в тему.
обработчик прерывания CAN:
Спойлер
Код: Выделить всё
void USB_LP_CAN1_RX0_IRQHandler(void)
{
CanRxMsg RxMessage;
CAN_Receive(CAN1,CAN_FIFO0, &RxMessage);
CAN_ID=RxMessage.StdId;
CAN_DATA0=RxMessage.Data[0];
CAN_DATA1=RxMessage.Data[1];
CAN_DATA2=RxMessage.Data[2];
CAN_DATA3=RxMessage.Data[3];
CAN_DATA4=RxMessage.Data[4];
CAN_DATA5=RxMessage.Data[5];
CAN_DATA6=RxMessage.Data[6];
CAN_DATA7=RxMessage.Data[7];
CAN_ClearITPendingBit(CAN1,CAN_IT_FMP0);
}И еще, пока с фильтрами не разбирался, хотел в прерывании фильтровать ID из 30 нужны только 3 ID и в каждом от 1 до 3 байт.
А то все пока в главном цикле крутятся(по другому пока не умею).
Сам только c AVR слез, а тут пока конструкторы собираю из примеров (хотя бы работает
-
Skitalec777
- Первый раз сказал Мяу!
- Сообщения: 24
- Зарегистрирован: Чт ноя 12, 2015 08:13:38
Re: STM32 новичку в ARM что к чему
В процессе изучения ARM открываются все новые и новые факты, которые вынуждают постоянно корректировать свои планы. Например, оказалось, что имеется такая штука, как модуль операций с плавающей запятой, или FPU, который впервые появляется у Cortex-M4.О сколько нам открытий чудных...
Скажите, пожалуйста, т.е. если я подключу датчик температуры к STM32F103, то смогу получать данные в виде, например, 36 С, а в виде 36,6 С не смогу? Или я что-то неправильно понял?
Заранее спасибо за ответ!
Re: STM32 новичку в ARM что к чему
Надо отличать софтварное выполнение математических операций и хардварное. На всех линейках и даже на F4 (на F3 тоже есть) математика будет крутиться софтварно. На младших линейках чуть медленнее на старших быстрее из-за разницы команд ядра. На F4 (F3) есть ещё возможность включить и FPU. Это типа математического сопроцессора где некоторые математические операции будут выполняться хардварно на уровне ядра.
-
Skitalec777
- Первый раз сказал Мяу!
- Сообщения: 24
- Зарегистрирован: Чт ноя 12, 2015 08:13:38
Re: STM32 новичку в ARM что к чему
Другими словами, у STM32F103 с десятыми долями все нормально? Просто немного медленнее?scorpi_0n писал(а):Надо отличать софтварное выполнение математических операций и хардварное. На всех линейках и даже на F4 (на F3 тоже есть) математика будет крутиться софтварно. На младших линейках чуть медленнее на старших быстрее из-за разницы команд ядра. На F4 (F3) есть ещё возможность включить и FPU. Это типа математического сопроцессора где некоторые математические операции будут выполняться хардварно на уровне ядра.
Re: STM32 новичку в ARM что к чему
Я бы сказал по другому. Не медленнее. Просто у МК с FPU математика с большим количеством вычислений будет быстрее. FPU для этого и затевалось когда вычислений уж слишком много и надо считать быстрее.
-
Skitalec777
- Первый раз сказал Мяу!
- Сообщения: 24
- Зарегистрирован: Чт ноя 12, 2015 08:13:38
Re: STM32 новичку в ARM что к чему
Теперь понял. Большое Вам спасибо за терпение и хорошее объяснение!scorpi_0n писал(а):Я бы сказал по другому. Не медленнее. Просто у МК с FPU математика с большим количеством вычислений будет быстрее. FPU для этого и затевалось когда вычислений уж слишком много и надо считать быстрее.
- Mishany
- Электрический кот
- Сообщения: 1031
- Зарегистрирован: Чт июн 20, 2013 00:00:58
- Откуда: москва, м.Сходненская
Re: STM32 новичку в ARM что к чему
Разобрался с CAN фильтром(скажем быдлокоду НЕТ!), делюсь рабочим примером, т.к. на просторах, как оказалось - это является большым секретом.
пропускает только 4 ID: 0x54A, 0x54B, 0x625, 0x23D
пропускает только 4 ID: 0x54A, 0x54B, 0x625, 0x23D
Спойлер
Код: Выделить всё
CAN_FilterInitStructure.CAN_FilterNumber=1;
CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;
CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;
CAN_FilterInitStructure.CAN_FilterIdHigh=0x54B<<5;
CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x54B<<5;
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterFIFOAssignment=0;
CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;
CAN_ITConfig(CAN1,CAN_IT_FMP0, ENABLE);
CAN_FilterInit(&CAN_FilterInitStructure);
///////////////////////////
CAN_FilterInitStructure.CAN_FilterNumber=2;
CAN_FilterInitStructure.CAN_FilterIdHigh=0x54A<<5;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x54A<<5;
CAN_FilterInit(&CAN_FilterInitStructure);
//////////////////////////
CAN_FilterInitStructure.CAN_FilterNumber=3;
CAN_FilterInitStructure.CAN_FilterIdHigh=0x625<<5;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x625<<5;
CAN_FilterInit(&CAN_FilterInitStructure);
//////////////////////////
CAN_FilterInitStructure.CAN_FilterNumber=4;
CAN_FilterInitStructure.CAN_FilterIdHigh=0x23D<<5;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x23D<<5;
CAN_FilterInit(&CAN_FilterInitStructure);- Alexey_N
- Сверлит текстолит когтями
- Сообщения: 1273
- Зарегистрирован: Вт фев 01, 2011 17:56:40
- Откуда: г. Жуковка, Брянская обл.
Re: STM32 новичку в ARM что к чему
Разбираюсь тут с arm thumb инструкциями, не могу понять, есть ли инструкции, которыми можно оптимально организовать сравнение двух массивов байт, подобно, например rep scasb в x86, кроме как cmp?
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
- Andrew Martin
- Вымогатель припоя
- Сообщения: 606
- Зарегистрирован: Вт июн 25, 2013 18:45:07
Re: STM32 новичку в ARM что к чему
В V7-M вроде нет.Alexey_N писал(а):Разбираюсь тут с arm thumb инструкциями, не могу понять, есть ли инструкции, которыми можно оптимально организовать сравнение двух массивов байт, подобно, например rep scasb в x86, кроме как cmp?
Вообще есть документы для каждой линейки, наподобие PM0056.
Тут хотя бы в V6-M автоинкремент/автодекремент нормально запилили, а то ldm/stm только с 32-битными работает.
- slavokhire5
- Прорезались зубы
- Сообщения: 202
- Зарегистрирован: Пн сен 26, 2011 13:48:25
- Откуда: Харьков
Re: STM32 новичку в ARM что к чему
привет котам:)
у кого есть опыт перевода платы с stm32f051 на stm32f091, какие следует ждать подводные камни, кроме некоторой повыводной несовместимости?
у кого есть опыт перевода платы с stm32f051 на stm32f091, какие следует ждать подводные камни, кроме некоторой повыводной несовместимости?
Осилит дорогу идущий
--------------------------
Пишу на Си за еду
--------------------------
Пишу на Си за еду


