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

STM32F20X - что-то новое от ST

Сегодня копался в последней версии Keil'a 4.10 в "Device Database" и нашел в разделе ST упоминание о новой линейке микроконтроллеров на Cortex M3 - серия STM32F20X. По информации из Кейла чипы очень вкусные: частота ядра 120 МГц, 128 Кб RAM и наконец-то 32-битный таймер

 

Но на сайте ST, Кейла и просто в гугле не нашел никакого упоминания об этих чипах...

Может кто-нибудь обладет более подробной инфой о них?

Давно уже наклевывалось, что в STM32 надо поднимать частоту, так вот когда ждать эти чипы?

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


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

128 Кб RAM

 

Неужели таки додумались? Очень интересно.

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


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

То, что написано про ST32 в

http://www.gaw.ru/html.cgi/txt/doc/micros/...x_arh/index.htm

правда?

"В приведенном выше коде выполняется передача 10 слов данных между двумя массивами в статическом ОЗУ: вначале с использованием ПДП,

а затем с использованием только ЦПУ Cortex. В каждом из этих случаев, перед началом передачи запускается таймер и останавливается по

завершении передачи. В данном примера блок ПДП выполняет передачу за 220 циклов, ЦПУ - за 536."

 

То есть пересылка одного слова память-память через проц 54 такта а по ПДП 22 такта?

И это при одной комманде за такт...

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


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

Врут конечно:)

 

int arry_dest[20];
int arry_src[20];

void test()
{
    RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;
    TIM2->CR1 = 0;
    TIM2->CNT = 0;
    TIM2->CR1 = 1;
    for(int index = 0; index <10; index++)
        arry_dest[index] = arry_src[index];
    TIM2->CR1 = 0;
    uart << "10 ints copied in " << TIM2->CNT << "cycles\r\n";
}

 

У меня вышло 122-124 такта, и это без ПДП.

 

ЗЫ. Правильный адрес обсуждаемой статьи:

http://www.gaw.ru/html.cgi/txt/doc/micros/...x_arh/4_2_3.htm

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


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

Что, в рекламной статье ошиблись в 5 раз с подсчетом тактов?

И по ПДП будет 4 такта на слово?

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


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

У меня вышло 122-124 такта, и это без ПДП.

А код откуда исполнялся? Из ОЗУ?

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


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

Не, не в 5:)

Я ошибся вдвое, мой результат надо умножить на два, потому что таймер 2 сидит на APB1, а это вдвое медленнее. То есть, 244 такта.

 

Отчего у них другой результат - не знаю.

 

ЗЫ. Код исполнялся из флеша.

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


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

ЗЫ. Код исполнялся из флеша.

А сколько wait state'ов у флеша? На какой частоте проц работает?

 

Переместите код в ОЗУ, для чистоты эксперимента.

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


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

Переместите код в ОЗУ, для чистоты эксперимента.

Это Вы STM32 код из RAM предлагаете? У него три шины. I-bus имеет доступ только к ROM. Обходной пути загрузки инструкций через S-bus есть, но торомозить должно хорошо.

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


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

Я ошибся вдвое, мой результат надо умножить на два, потому что таймер 2 сидит на APB1, а это вдвое медленнее. То есть, 244 такта.

Таймеры TIM2 - TIM7 у STM32 имеют множитель (от х1 до х2) частоты APB1, поэтому не всё так однозначно.

Если прескалер APB1 имеет значение, отличное от /2, то множитель таймеров будет равен х2.

То есть если частота ядра = 72 МГц, а APB1, соответственно, 36 МГц, таймеры будут тактироваться также 72 мегагерцами.

 

Это Вы STM32 код из RAM предлагаете? У него три шины. I-bus имеет доступ только к ROM. Обходной пути загрузки инструкций через S-bus есть, но торомозить должно хорошо.

То есть выполнение кода из RAM будет тормознее, чем из флеш?

Хм, всегда считал, что наоборот...

 

Сейчас протестирую.

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


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

То есть выполнение кода из RAM будет тормознее, чем из флеш?

Для Cortex-M3 будут дополнительные тормоза. Вопрос в том, что перетянет - ws на Flash, или доступ зигзагом через System-bus.

Хм, всегда считал, что наоборот...

Для ARM7 c его нейманом да - за счет обычно более медленной Flash.

Сейчас протестирую.

Давайте.

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


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

Для Cortex-M3 будут дополнительные тормоза. Вопрос в том, что перетянет - ws на Flash, или доступ зигзагом через System-bus.

Пробовал когда-то - получилось, что исполнение из RAM немного (единицы %%) медленнее.

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


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

Пробовал когда-то - получилось, что исполнение из RAM немного (единицы %%) медленнее.

В общем, у меня получилось вот что.

 

Исполнялся вот этот код:

volatile int arry_dest[20];
volatile int arry_src[20];

TIM2->CR1    =    TIM_CR1_CEN;
for(int index = 0; index <10; index++) arry_dest[index] = arry_src[index];
TIM2->CR1 = 0;
lcd.PrintText("tacts: %u", 0, 0, NO_FLAGS, RGB_BLUE, TIM2->CNT);

после компиляции цикл выглядит так:

;;;47         TIM2->CR1    =    TIM_CR1_CEN;
MOVS     r0,#1
LSLS     r2,r0,#30
STRH     r0,[r2,#0]
;;;48         for(int index = 0; index <10; index++) arry_dest[index] = arry_src[index];
LDR      r1,|L4.56|
MOVS     r0,#0
SUB      r3,r1,#0x50
|L4.16|
LDR      r4,[r1,r0,LSL #2]
STR      r4,[r3,r0,LSL #2]
ADDS     r0,r0,#1
CMP      r0,#0xa
BLT      |L4.16|
;;;49         TIM2->CR1 = 0;
MOVS     r0,#0
STRH     r0,[r2,#0]

 

STM32F103RET6, ядро на 72 МГц, 2 такта ожидания для флеш:

RAM - 116 тактов

FLASH - 122 такта

 

ядро на 24 МГц, 0 тактов ожидания флеш:

RAM - 116 тактов

FLASH - 75 тактов

 

Ну, zltigo как обычно прав, озу проигрывает флехе на малой частоте. На большой - немного выигрывает.

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


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

STM32F103RET6, ядро на 72 МГц, 2 такта ожидания для флеш:

RAM - 116 тактов

FLASH - 122 такта

Помнится смотрел на dhrystone - получалось примерно такое же соотношение, но в пользу флеш. Но все равно вывод в общем-то один напрашивается - не стоит класть код туда, где ему не место.

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


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

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

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

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

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

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

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

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

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

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