igorle 0 17 марта, 2013 Опубликовано 17 марта, 2013 · Жалоба Я взялся за изучение STM32. Почитав теорию, развел небольшую пробную плату под stm32f103, отослал в производство и заказал детали. Плата прибудет через две-три недели. Пока упражняюсь с кодом. И вот тут засада. Я читал, что вся линейка кортексов совместима. То есть все, что написано для меньшего варианта, заработает и на большей версии. У меня есть stm32f3discovery. Если я пишу код для f303 - все работает. Если пишу для 103 и прожигаю в discovery - не бежит :( Вопрос - так должно быть, или я туплю? Достаточно ли инициализации, которую я делаю для 103-го, для того, чтобы использовать в 303-м функциональность 103-го. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 17 марта, 2013 Опубликовано 17 марта, 2013 · Жалоба Во-первых, "кортекс" -- общее название процессорых ядер (а не процессоров/контроллеров) для 7-й версии архитектуры АРМ. Процессоры и контроллеры с этими ядрами (причём разными -- это не одно ядро и даже не одно семейство) выпускаются всеми, кому не лень. Так что между "кортекстами" полной совместимости даже на уровне системы команд нет, не говоря о периферии. Ну а во-вторых, совместимость даже в рамках продукции одной фирмы -- вещь отнюдь не гарантированная, особенно во всяких "тонких" вещах вроде настройки синхронизации. Обычно совместимость обеспечивается по ногам (вместо одного можно впаять другой в том же корпусе), но на внутреннем уровне -- лишь частично. Тут надо читать документацию на конкретные модели МК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 17 марта, 2013 Опубликовано 17 марта, 2013 · Жалоба Я взялся за изучение STM32. Почитав теорию, развел небольшую пробную плату под stm32f103, отослал в производство и заказал детали. Плата прибудет через две-три недели. Пока упражняюсь с кодом. И вот тут засада. Я читал, что вся линейка кортексов совместима. То есть все, что написано для меньшего варианта, заработает и на большей версии. У меня есть stm32f3discovery. Если я пишу код для f303 - все работает. Если пишу для 103 и прожигаю в discovery - не бежит :( Вопрос - так должно быть, или я туплю? Достаточно ли инициализации, которую я делаю для 103-го, для того, чтобы использовать в 303-м функциональность 103-го. У этих контроллеров разные ядра: M3 и M4, но если писать под M3, то должно исполняться и на M4. У контроллеров разная память, соответственно линкеру нужно указать разницу. В 303 заявляется 48кБ ОЗУ, но 8кБ из них "особенные" и лежат в "особенном" месте. Соответственно можно поиметь проблемы с неправильным указанием начала стека. По периферии тоже могут отличаться: вроде, RCC у них отличаются. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 17 марта, 2013 Опубликовано 17 марта, 2013 · Жалоба По периферии тоже могут отличаться: вроде, RCC у них отличаются. Ещё GPIO у них отличается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorle 0 17 марта, 2013 Опубликовано 17 марта, 2013 · Жалоба Понятно. Я как раз понял, что поскольку там 4 гига адрессного пространства, то они хорошо подумали и раскидали регистры так, чтобы потом не пришлось их двигать. И поэтому я понял что совместим именно код, причем скомпилированный... Видимо, мой недостаточный американский сказался. У меня в планах джентельменский набор начинающего эмбедера: - GPIO - ADC - PWM - USB as file system - USB as COM Все это я планирую использовать на 103-м. Судя по вашим ответам - лучше дождаться моих бордов и уже на них упражняться? Еще вопрос. Стыдно, но я не нашел на сайте st.com, где скачать последнюю версию StdPeriph_Lib. Вроде бы должна быть версия 3.5. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 17 марта, 2013 Опубликовано 17 марта, 2013 · Жалоба Понятно. Я как раз понял, что поскольку там 4 гига адрессного пространства, то они хорошо подумали и раскидали регистры так, чтобы потом не пришлось их двигать. И поэтому я понял что совместим именно код, причем скомпилированный... Видимо, мой недостаточный американский сказался. У меня в планах джентельменский набор начинающего эмбедера: - GPIO - ADC - PWM - USB as file system - USB as COM Все это я планирую использовать на 103-м. Судя по вашим ответам - лучше дождаться моих бордов и уже на них упражняться? Еще вопрос. Стыдно, но я не нашел на сайте st.com, где скачать последнюю версию StdPeriph_Lib. Вроде бы должна быть версия 3.5. Дык, при использовании стандартной библиотеки шансы на портируемость исходников повышается. Правда, я сам ее не использую, но идея вроде такая. Зачем Вам совместимость на бинарном уровне, когда можно пользоваться совместимостью на уровне С-исходника, т.е. не дожидаясь целевой платформы, использовать то, что есть сейчас под рукой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 17 марта, 2013 Опубликовано 17 марта, 2013 · Жалоба Еще вопрос. Стыдно, но я не нашел на сайте st.com, где скачать последнюю версию StdPeriph_Lib. Вроде бы должна быть версия 3.5. Давайте я вам напишу общий алгоритм. Открываете гугль, начинаете там писать название своего контроллера, типа STM32F3... Гугль тут же вам предложит какой-то конкретный контроллер, в моём случае это получился stm32f303vct6. Первая ссылка (или одна из первых) будет на сайт ST, давите её. Там давите на Design Resources, и получаете полный список всех документов, программ и библиотек для вашего контроллера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorle 0 17 марта, 2013 Опубликовано 17 марта, 2013 · Жалоба Давайте я вам напишу общий алгоритм. Открываете гугль... Это то что я ищу. Мне не надо готовую ссылку. Меня поражает, что я не могу найти ее сам :( Я этим уже несколько дней занимаюсь :( Я не нашел кнопки "Design Resources". Есть слева замечательная панел "Resources", откуда я пытаюсь начать плясать. Можно вот отсюда показать, как дойти до библиотеки? Спасибо за терпение. Мне кажется, что я зашел в каждый список под каждой закладкой под Resources и искал слово periph. Не нашел библиотек :( СТОП! Нашел!!!! Стыдно, но оставлю здесь этот пост. Вдруг еще кому пригодится: Идем Sowtware -> STM32 Firmware (49) -> STM32F10x standard peripheral library Может это на сайте глюк? Помню что вчера под "STM32 Firmware" меньше айтемов было.... Или я вчера был слеп.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 17 марта, 2013 Опубликовано 17 марта, 2013 · Жалоба Можно вот отсюда показать, как дойти до библиотеки? Вы не дошли всего один шаг:) Надо ткнуться в нижнем списке контроллеров на любой из них. Откроется страничка конкретного контроллера, и на ней будет "Design Resources". Ну или как вы нашли, это видимо другой путь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorle 0 17 марта, 2013 Опубликовано 17 марта, 2013 · Жалоба Надо ткнуться в нижнем списке контроллеров на любой из них. Откроется страничка конкретного контроллера, и на ней будет "Design Resources". Спасибо огромное. Эта та самая страничка, о существовании которой я подозревал, но не мог найти. Ну или как вы нашли, это видимо другой путь. Мой путь несравнимо хуже. Я убил на него массу времени. А здесь все под рукой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться