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

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Сообщение axillent »

у F0 / F1 есть какой то уникальный идентификатор который доступен исполняемой программе?
если есть то где его искать, как прочитать?
Реклама
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Сообщение arkhnchul »

30.2 Unique device ID register (96 bits)
The unique device identifier is ideally suited:
• for use as serial numbers (for example USB string serial numbers or other end
applications)
• for use as security keys in order to increase the security of code in Flash memory while
using and combining this unique ID with software cryptographic primitives and
protocols before programming the internal Flash memory
• to activate secure boot processes, etc.
The 96-bit unique device identifier provides a reference number which is unique for any
device and in any context. These bits can never be altered by the user.
The 96-bit unique device identifier can also be read in single bytes/half-words/words in
different ways and then be concatenated using a custom algorithm.
Base address: 0x1FFF F7E8
Реклама
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Сообщение axillent »

спасибо
нашел, что это из RM008 - референс для F103

а вот для F030 в RM360 этого нет и в даташите отсутствует заявленные 96 bit unique
значит ли это, что в F030 его нет?
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Сообщение arkhnchul »

там есть некое Device electronic signature (раздел 27), которое "contains factory-programmed identification". Интернеты говорят, что ID в F0 лежит начиная с адреса 0x1FFF7A10, тоже 96 бит
Реклама
Эиком - электронные компоненты и радиодетали
Опытный кот
Аватара пользователя
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

Сообщение baghear »

Добрый день, хочу заказать дисплей для подключения к LTDC
http://www.buydisplay.com/default/7-inc ... -panel-rgb
ДУмаю он подходит, подтвердите пожалуйста или опровергните мои догадки.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Сообщение Satyr »

[uquote="baghear",url="/forum/viewtopic.php?p=3255790#p3255790"]Добрый день, хочу заказать дисплей для подключения к LTDC
http://www.buydisplay.com/default/7-inc ... -panel-rgb
ДУмаю он подходит, подтвердите пожалуйста или опровергните мои догадки.[/uquote]
Годится. Не забудь сразу и разъем к нему взять
Реклама
Родился
Сообщения: 6
Зарегистрирован: Ср ноя 22, 2017 11:34:47

Сообщение Sergey_78r »

Подскажите пожалуйста, а как обращаться к регистрам настройки FSMC?
stm32f407, хочу подключить LCD.
Нашел пример на SPL, пытаюсь сделать напрямую, через регистры.

В даташите нашел описание регистров FSMC_BCR1, FSMC_BTR1, FSMC_BWTR1.
Пишу в Keil. define-ы для отдельных битов этих регистров есть (типа FSMC_BCR1_WREN), а регистров нет.

Поискал примеры кода, нашел https://vjordan.info/log/fpga/stm32f4-g ... -fsmc.html
Т.е. FSMC_BCR1 это FSMC_Bank1->BTCR[0], FSMC_BTR1 это FSMC_Bank1->BTCR[1].

FSMC_Bank1->BTCR это:

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

typedef struct
{
  __IO uint32_t BTCR[8];    /*!< NOR/PSRAM chip-select control register(BCR) and chip-select timing register(BTR), Address offset: 0x00-1C */   
} FSMC_Bank1_TypeDef;
В карте регистров - больше 26 штук. Т.е. 8 BTCR как бы не хватит.

Какая там логика вообще? Как выставить биты в регистре FSMC_BWTR1?
Читаю datasheet на камень и reference manual, но там про реализацию естественно ничего нет.
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Sergey_78r",url="/forum/viewtopic.php?p=3259734#p3259734"]Т.е. FSMC_BCR1 это FSMC_Bank1->BTCR[0], FSMC_BTR1 это FSMC_Bank1->BTCR[1].[/uquote]
Да.
Как выставить биты в регистре FSMC_BWTR1?
BWTR1 - это FSMC_Bank1E->BWTR[0].
Родился
Сообщения: 6
Зарегистрирован: Ср ноя 22, 2017 11:34:47

Сообщение Sergey_78r »

Спасибо.

А откуда вообще берется это знание? Ну чтоб в следующий раз самому разобраться, а не пытаться угадывать и не задавать дурацкие вопросы?
Обычно в заголовочных файлах можно посмотреть и вообщем понятно, что и куда. А тут как-то очень не очевидно.
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Sergey_78r",url="/forum/viewtopic.php?p=3259991#p3259991"]А откуда вообще берется это знание? Ну чтоб в следующий раз самому разобраться, а не пытаться угадывать и не задавать дурацкие вопросы?
Обычно в заголовочных файлах можно посмотреть и вообщем понятно, что и куда. А тут как-то очень не очевидно.[/uquote]
Открываешь хедер и ищешь там BWTR, сразу попадаешь на определение структуры FSMC_Bank1E_TypeDef, которая идет непосредственно за FSMC_Bank1_TypeDef, которую ты сам находил. Вроде не очень сложно :)
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

Во Flash памяти имеются перезаписываемые таблицы данных, под них отдано несколько последних страниц.
Для размещения таблиц я создал секцию IROM2, размер основной секции IROM1 соответственно был уменьшен.
Данные размещаются по нужному адресу с помощью атрибута __attribute((at(TABLES_ADRESS)))

В справке по KEIL говорится(раздел --split_sections), что при использовании разных секций надо включать опцию One ELF Section per Function. Касается ли это только функций или для структур и массивов данных тоже следует активировать эту опцию?
Опытный кот
Аватара пользователя
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

Сообщение baghear »

Добрый день, keil не видит периферию stm32f407VE
http://prntscr.com/i6k2uk
Вроде чип не экслюзивный, может ее можно как-то включить.
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

baghear, попробуйте пересоздать проект . Надеюсь не в симуляторе ищите?
Опытный кот
Аватара пользователя
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

Сообщение baghear »

Пересоздал, не помогло. Ни каких симуляторов!!!
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Кидайте проект, завтра проверю.
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

baghear, у меня только F4 дискаверина(на ней 407VG), но и при включении дебага в вашем проекте - все есть.
Набортный STlink перешит в JLink-OB, Кайл 5.22...


Изображение
Опытный кот
Аватара пользователя
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

Сообщение baghear »

Обновил Кайл, все заработало. Спасибо!!!!
Встал на лапы
Аватара пользователя
Сообщения: 134
Зарегистрирован: Пн ноя 07, 2016 12:14:14

Сообщение bezzabotna »

Здравствуйте!
Есть таблица данных. Как мне сказать компилятору, чтобы он хранил ее во флеше?
То есть не записал и считывал с помощью FLASH_ProgramWord(); А именно сразу хранил? Он же их записывает откуда то, верно?

Добавлено after 13 minutes 33 seconds:
Я так понимаю достаточно лишь написать const при инициализации массива и все что ли?
Я конечно все понимаю, но этого я не понимаю.
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Сообщение arkhnchul »

const :dont_know: компилятор скорее всего поймет, чего от него хотят. gcc помещает такое в .rodata, которая во флеше.
Опытный кот
Аватара пользователя
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

Сообщение baghear »

Добрый день, у интерфейса I2S есть вывод ext_SD подскажите пожалуйста для чего он нужен?
Ответить

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