Добрался, под отладчиком тесты всякие смотрю. Кстати, может Вы подскажете, все ли нормально в моем тексте инициализации тактирования? Спрашивал чуть раньше (http://radiokot.ru/forum/viewtopic.php? ... 3#p1878133), но местный "знаток" STM32 оказался балаболом.coredumped писал(а):Вы, судя по Вашим же словам, до отладки еще не добрались (раз еще SysInit не написан).
Мелкие вопросы по МК и ПЛИС.
- Реклама
Пардон, я пока не сильно разбираюсь в названиях камней...
Версия с мегабайтным флешем столько стоит...
Но даже 7 долларов с тремя каналами не решает проблемы. Нужно ШЕСТЬ.
Поэтому сама по себе цена ничего не решает 7 или 20....
Версия с мегабайтным флешем столько стоит...
Но даже 7 долларов с тремя каналами не решает проблемы. Нужно ШЕСТЬ.
Поэтому сама по себе цена ничего не решает 7 или 20....
10000 изделий, например, это по Вашему не серийное производство?КРАМ писал(а):Вы наверно не делаете СЕРИЙНЫХ изделий....
Мне левота по три копейки не нужна...
Потом такая "экономия" вылазит сотнями долларов....
Ездили - знаем....
STM32F417 пока только 500 штук куплено (это мелкосерийное изделие).
Если брать хотя бы 1000 штук, уже цена будет меньше, чем заявлена на сайте ST, причем существенно.
Когда займетесь серийным производством, все узнаете.
А барыги имеют приличные скидки, а Вам рассказывают басни. Надо этих гандонов заставлять работать по нормальным ценам, либо посылать их... и брать напрямую у производителя. По крайней мере вести с ними (производителями) переговоры, а они потом Вам скажут через кого и по какой цене Вам будут поставки.
Все будет только лучше, в крайнем случае - хуже.
coredumped писал(а): Когда займетесь серийным производством, все узнаете.
Офф, конечно (не реклама!!!):
http://vimeo.com/78625864
Это в Серпухове. А есть еще в Москве, правда не такой красивый и чуть поменьше.
Вы когда нибудь брали "напрямую у производителя"?
Тогда наверно знаете как звучит нах по английски?
По делу.
Три канала по любому мало. Даже за 7 долларов.
Последний раз редактировалось КРАМ Сб янв 04, 2014 22:36:30, всего редактировалось 1 раз.
Регулярно покупаем без посредников. Российскую фирму, скорее всего, пошлют, а если иметь представительство в ЮВА, то проблем никаких нет.КРАМ писал(а):Вы когда нибудь брали "напрямую у производителя"?![]()
Все будет только лучше, в крайнем случае - хуже.
- Реклама
Я STM32L151 давно щупал на отладке от STM. Даже побаловался и выкладывал на mycontroller.ru. Только тот сайтец загнулся по ряду причин. И всё равно для простых вещей возвращаюсь к тому, что попроще - PIC12 и PIC16. Вот и думаю - у меня есть самособранный PICkit 2, зачем я буду делать еще один под другие камни? Поэтому буду пока смотреть в сторону PIC24HJ и PIC32 (ох чую, щас лоток с кошачим калом в мою сторону полетит!). Тем более что сравнивать PIC32 и STM32 как бы неправильно - разные они.
Щас Химера запьет икру шампанским
А мне как-то пофиг... Каждый выбирает свой путь сам
А мне как-то пофиг... Каждый выбирает свой путь сам
Все будет только лучше, в крайнем случае - хуже.
А у Вас уже проект заработал? Когда заработает, при чем так, как задумано, а не как получилось, тогда можно будет сказать, что все правильно.Леонид Иванович писал(а):Что там еще есть необходимое для начальной настройки контроллера? Я посмотрел и ничего такого не обнаружил. Или я не прав?
Что же касается system_init, лично я считаю, что проще взять готовое и проверенное решение, предоставленное CMSIS, чем биться головой об клавиатуру. Лучше потратить силы на сам проект, чем на разборку стартапа. Я еще понял бы Вас, если бы Вы писали свою OS. В следующих камешках, заметьте, настройка клоков несколько сложнее, но есть экселевский файлик, который генерирует код за Вас. Не думаю, что Вы сможете сделать лучше.
Не понятно, какую Вы хотите информацию получить в ответ. Вы положили кусок какого-то кода, и просите ткнуть носом в ошибки. Причем неясно, чего Вы хотите добиться. Если хотите разобраться, то запускайте и отлаживайте. Или Вы хотите, чтоб мы разобрались за Вас? Укажите хоть исходные данные - кварц, внешний или внутренний генератор, желаемая тактовая частота.Леонид Иванович писал(а):А сделаю так, как посчитаю нужным, и именно с помощью той информации, которую хочу получить в ответ.
Все будет только лучше, в крайнем случае - хуже.
Чтоб заработал (в первом приближении) Ваш проект - времени нужно... приблизительно часа 2. При условии, что есть собранный прототип.Леонид Иванович писал(а):Нет, проект не заработал. Чтобы он заработал, мне предстоит разобраться с каждым битиком, а на это нужно уйма времени.
Возьмите файл system_stm32f10x.c из CMSIS - там есть все необходимые для запуска операции. Файлик написан специалистами. Он 100% работающий. Что Вам еще нужно?Леонид Иванович писал(а):Смущает то, что видел в сети много примеров, где для аналогичных целей проделывается гораздо больше записей во всякие регистры. Я хочу, чтобы специалист по STM32 глянул на этот код и сказал, достаточно ли его для включения тактирования. Возможно, я что-то не учел.
Все будет только лучше, в крайнем случае - хуже.
Да, плата полностью собрана. Работаю над ней где-то 2 месяца, пока только мигаю светодиодом, и то мне не нравится текст работы с портами. Как Вы описываете порты I/O? Я хочу добиться того, чтобы описание соответствия сигнал-пин было в одном месте программы, а сменить порт и пин было делом одной строчки. Пока решил использовать для каждого пина шаблонный класс с перегруженными операторами присваивания. Память немного расходуется, зато очень наглядно. Что касается двух часов, то это шапкозакидательство, которое почему-то чаще всего позволяют себе адепты ARM. И почему-то они в основной массе хамы. Не знаете, почему?coredumped писал(а):Чтоб заработал (в первом приближении) Ваш проект - времени нужно... приблизительно часа 2. При условии, что есть собранный прототип.
Мне нужно разобраться. Здесь утверждалось, что там есть что-то нужное кроме настройки тактирования. Почитал документацию на STM32, посмотрел внутренности этого файла (которые выглядят полным кошмаром), ничего нужного не нашел. Что имелось в виду?Леонид Иванович писал(а):Возьмите файл system_stm32f10x.c из CMSIS - там есть все необходимые для запуска операции. Файлик написан специалистами. Он 100% работающий. Что Вам еще нужно?
В этом файле, помимо настройки клоков, устанавливается таблица векторов прерываний, больше ничего.
Для быстрой смены пинов, удобно использовать макросы.
Вот, для примера (Cortex-M0):
Для быстрой смены пинов, удобно использовать макросы.
Вот, для примера (Cortex-M0):
Код: Выделить всё
#define PA_IN GPIOA->MODER = 0x002A0000
#define PA_OUT GPIOA->MODER = 0x002A5555
#define IORD_PIN GPIO_Pin_10
#define IOWR_PIN GPIO_Pin_11
#define IORD_LO GPIOB->BRR = IORD_PIN
#define IORD_HI GPIOB->BSRR = IORD_PIN
#define IOWR_LO GPIOB->BRR = IOWR_PIN
#define IOWR_HI GPIOB->BSRR = IOWR_PIN
#define A0_PIN GPIO_Pin_13
#define A1_PIN GPIO_Pin_14
#define A2_PIN GPIO_Pin_15
#define SET_ADDR_0 GPIOB->BRR = 0x0000E000
#define SET_ADDR_1 GPIOB->BSRR = 0xC0002000
#define SET_ADDR_2 GPIOB->BSRR = 0xA0004000
Все будет только лучше, в крайнем случае - хуже.
Таблица векторов прерываний находится в другом файле - startup_stm32f10x_md_vl.s. Но как это использовать? Например, сейчас я пишу класс Wake-порта, где нужно задействовать прерывания UART. Сделать обработчик прерывания методом класса, насколько я знаю, невозможно (так как любому методу неявно передается указатель this, а обработчик прерывания не может иметь параметров). Как лучше поступить в такой ситуации?coredumped писал(а):В этом файле, помимо настройки клоков, устанавливается таблица векторов прерываний
Плохой пример. Магические числа, которые нужно вычислять в уме, очень много работы при переносе сигнала на другой пин и порт. Я хочу сделать, чтобы объявление пина выглядело так:coredumped писал(а):Для быстрой смены пинов, удобно использовать макросы. Вот, для примера
Код: Выделить всё
Gpio<PORTC, PIN9> Pin_Led;
Pin_Led.mode(Mode::OUTPUT_2MHz);
Код: Выделить всё
Pin_Led = 1;
Обратите внимание на такой операторЛеонид Иванович писал(а):Таблица векторов прерываний находится в другом файле - startup_stm32f10x_md_vl.s. Но как это использовать?
SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;
или его аналог
NVIC_SetVectorTable( NVIC_VectTab_FLASH, 0x0 );
Что же касается С++, то я противник применения этого монстра во встроенных системах, поэтому не применяю. Разбираться с особенностями написания ISR в плюсах Вам прийдется самому. Или погуглите на буржуйских форумах, там извращенцев хватает.
Все будет только лучше, в крайнем случае - хуже.
И фчём прикол? Очередная мормышка от ST. Очень правильная политика - делать девборды и продавать по цене почти равной себестоимости.Chettuser писал(а):Подкину корм тролям: 32F429IDISCOVERY
Я еще дарил бы эти платки ВУЗ-ам (может они так и делают?).
Все будет только лучше, в крайнем случае - хуже.
Спасибо, но это не совсем то. Переместить всю таблицу векторов нужно, например, при написании бутлодера, но сделать обработчик прерывания членом класса это не поможет.coredumped писал(а):Обратите внимание на такой оператор SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;
Единственная радость от появления дешевых STM32 - это то, что для встроенных систем теперь тоже можно писать на C++. Лишняя производительность процессора и оверхед друг друга скомпенсируют. Структура программы, написанной на C++ намного красивее. Что касается оверхеда, то не так он велик, как про него обычно думают.coredumped писал(а):Что же касается С++, то я противник применения этого монстра во встроенных системах
Почему извращенцев? Вот Вам самому не противно общаться в таком стиле?coredumped писал(а):Или погуглите на буржуйских форумах, там извращенцев хватает.
А у Вас верх хамства. Как это никакой информации? Сразу понятно, что на выводе светодиода устанавливается уровень логической единицы. При желании можно определить константы LED_ON, LED_OFF.HHIMERA писал(а):Верх идиотизма... никакой информации...
Там еще новинок много появилось. Они меняют железо на отладках - к чему бы это? Серии остаются те же M0, M3, M4.
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Зачем покупать - спаять можно тоже и проще чем Pickit2 и 3:Chettuser писал(а): а с STM32 разбираться и дорогущие средства покупать - это невыгодно ИМХО
Спойлер

- Сообщения: 535
- Зарегистрирован: Вт авг 28, 2012 22:21:33
Да и до этого можно было писать на Си++, лишь бы компилятор поддерживал. Есть проектик, тоже на АРМ, но стареньком ARM7TDMI работающем на 50 МГц, так вот там несколько мегабайт отменного говно-кода на Си++, и ничего - работает. Так что считаю, что на оверхед плюсов обращать внимание вообще не стоит.Леонид Иванович писал(а): Единственная радость от появления дешевых STM32 - это то, что для встроенных систем теперь тоже можно писать на C++. Лишняя производительность процессора и оверхед друг друга скомпенсируют. Структура программы, написанной на C++ намного красивее. Что касается оверхеда, то не так он велик, как про него обычно думают.
А вот в остальном Си++ терпеть не могу. По сравнению с простым и лаконичным Си (хотя, недавно мое отношение к нему пошатнулось), Си++ представляет собой какую-то свалку различных механизмов и подходов, как говорится пытаясь и рыбку съесть и на хер сесть. Хотя, я бы не отказался от чего-нибудь типа С# для embedded применения, только без слишком уж "сахарных" конструкций.
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
имхо, скорее всего за С++ для микроконтроллеров будущее - по аналогии с PC где сейчас никто практически не пишет на чистом Си (разве что драйвера и пр. системное). Периферия микроконтроллеров становится все сложнее - фирме производящей микроконтроллеры остается написать библиотеку классов под свое железо и толпы программистов-ардуинщиков заполонят... И только истинные джедаи будут юзать чистый Си.
p.s. это так - бредовые фантазии
на авр уже народ Си++ пользуется: https://sites.google.com/site/vanyambau ... eka-ve_avr
p.s. это так - бредовые фантазии
на авр уже народ Си++ пользуется: https://sites.google.com/site/vanyambau ... eka-ve_avr


