Перейти к содержанию
    

можно ли отлаживать код stm32f103 на stmf303?

Я взялся за изучение STM32.

Почитав теорию, развел небольшую пробную плату под stm32f103, отослал в производство и заказал детали. Плата прибудет через две-три недели.

 

Пока упражняюсь с кодом. И вот тут засада. Я читал, что вся линейка кортексов совместима. То есть все, что написано для меньшего варианта, заработает и на большей версии.

 

У меня есть stm32f3discovery. Если я пишу код для f303 - все работает. Если пишу для 103 и прожигаю в discovery - не бежит :(

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Во-первых, "кортекс" -- общее название процессорых ядер (а не процессоров/контроллеров) для 7-й версии архитектуры АРМ. Процессоры и контроллеры с этими ядрами (причём разными -- это не одно ядро и даже не одно семейство) выпускаются всеми, кому не лень. Так что между "кортекстами" полной совместимости даже на уровне системы команд нет, не говоря о периферии.

 

Ну а во-вторых, совместимость даже в рамках продукции одной фирмы -- вещь отнюдь не гарантированная, особенно во всяких "тонких" вещах вроде настройки синхронизации. Обычно совместимость обеспечивается по ногам (вместо одного можно впаять другой в том же корпусе), но на внутреннем уровне -- лишь частично. Тут надо читать документацию на конкретные модели МК.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я взялся за изучение STM32.

Почитав теорию, развел небольшую пробную плату под stm32f103, отослал в производство и заказал детали. Плата прибудет через две-три недели.

 

Пока упражняюсь с кодом. И вот тут засада. Я читал, что вся линейка кортексов совместима. То есть все, что написано для меньшего варианта, заработает и на большей версии.

 

У меня есть stm32f3discovery. Если я пишу код для f303 - все работает. Если пишу для 103 и прожигаю в discovery - не бежит :(

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

У этих контроллеров разные ядра: M3 и M4, но если писать под M3, то должно исполняться и на M4.

У контроллеров разная память, соответственно линкеру нужно указать разницу. В 303 заявляется 48кБ ОЗУ, но 8кБ из них "особенные" и лежат в "особенном" месте. Соответственно можно поиметь проблемы с неправильным указанием начала стека. По периферии тоже могут отличаться: вроде, RCC у них отличаются.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По периферии тоже могут отличаться: вроде, RCC у них отличаются.

Ещё GPIO у них отличается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Понятно.

Я как раз понял, что поскольку там 4 гига адрессного пространства, то они хорошо подумали и раскидали регистры так, чтобы потом не пришлось их двигать. И поэтому я понял что совместим именно код, причем скомпилированный... Видимо, мой недостаточный американский сказался.

 

У меня в планах джентельменский набор начинающего эмбедера:

- GPIO

- ADC

- PWM

- USB as file system

- USB as COM

 

Все это я планирую использовать на 103-м. Судя по вашим ответам - лучше дождаться моих бордов и уже на них упражняться?

 

Еще вопрос. Стыдно, но я не нашел на сайте st.com, где скачать последнюю версию StdPeriph_Lib. Вроде бы должна быть версия 3.5.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Понятно.

Я как раз понял, что поскольку там 4 гига адрессного пространства, то они хорошо подумали и раскидали регистры так, чтобы потом не пришлось их двигать. И поэтому я понял что совместим именно код, причем скомпилированный... Видимо, мой недостаточный американский сказался.

 

У меня в планах джентельменский набор начинающего эмбедера:

- GPIO

- ADC

- PWM

- USB as file system

- USB as COM

 

Все это я планирую использовать на 103-м. Судя по вашим ответам - лучше дождаться моих бордов и уже на них упражняться?

 

Еще вопрос. Стыдно, но я не нашел на сайте st.com, где скачать последнюю версию StdPeriph_Lib. Вроде бы должна быть версия 3.5.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще вопрос. Стыдно, но я не нашел на сайте st.com, где скачать последнюю версию StdPeriph_Lib. Вроде бы должна быть версия 3.5.

Давайте я вам напишу общий алгоритм. Открываете гугль, начинаете там писать название своего контроллера, типа STM32F3... Гугль тут же вам предложит какой-то конкретный контроллер, в моём случае это получился stm32f303vct6. Первая ссылка (или одна из первых) будет на сайт ST, давите её. Там давите на Design Resources, и получаете полный список всех документов, программ и библиотек для вашего контроллера.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Давайте я вам напишу общий алгоритм. Открываете гугль...

Это то что я ищу. Мне не надо готовую ссылку. Меня поражает, что я не могу найти ее сам :(

Я этим уже несколько дней занимаюсь :( Я не нашел кнопки "Design Resources". Есть слева замечательная панел "Resources", откуда я пытаюсь начать плясать.

Можно вот отсюда показать, как дойти до библиотеки? Спасибо за терпение.

 

 

Мне кажется, что я зашел в каждый список под каждой закладкой под Resources и искал слово periph. Не нашел библиотек :(

 

СТОП!

Нашел!!!!

Стыдно, но оставлю здесь этот пост. Вдруг еще кому пригодится:

Идем Sowtware -> STM32 Firmware (49) -> STM32F10x standard peripheral library

 

Может это на сайте глюк? Помню что вчера под "STM32 Firmware" меньше айтемов было.... Или я вчера был слеп....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно вот отсюда показать, как дойти до библиотеки?

Вы не дошли всего один шаг:)

Надо ткнуться в нижнем списке контроллеров на любой из них. Откроется страничка конкретного контроллера, и на ней будет "Design Resources".

Ну или как вы нашли, это видимо другой путь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Надо ткнуться в нижнем списке контроллеров на любой из них. Откроется страничка конкретного контроллера, и на ней будет "Design Resources".

Спасибо огромное. Эта та самая страничка, о существовании которой я подозревал, но не мог найти.

Ну или как вы нашли, это видимо другой путь.

Мой путь несравнимо хуже. Я убил на него массу времени. А здесь все под рукой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...