|
|
  |
STM32F407 + прерывание + время реакции, Меняется время реакции на внешнее событие |
|
|
|
Sep 11 2015, 14:26
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(aaarrr @ Sep 11 2015, 14:22)  Cortex-M3 Technical Reference Manual, раздел Load-store timings. У M0, полагаю, такой особенности (pipelined LDR) нет. Другие зависимости (как минимум из мной озвученных) у М3 и М0 Вам известны? Методом тыка я нашёл кое-что, увеличивающее на такт следующую команду. Настолько неочевидное, что сперва хочется узнать все описанные зависимости М0/М3. На ранее обозначенной таблице таймингов и на этой для М3 она не указана.
Сообщение отредактировал GetSmart - Sep 11 2015, 14:33
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Sep 23 2015, 19:32
|
Местный
  
Группа: Участник
Сообщений: 291
Регистрация: 11-04-14
Из: Саратов
Пользователь №: 81 335

|
Цитата(GetSmart @ Sep 21 2015, 15:25)  Время до сих пор не нашёл для полноценного тестирования на разных камнях... А не проще ли просто описать ситуацию, в которой происходит непонятка? Тестировать, как и "ловить блох", можно бесконечно. Мне же, как и другим, я думаю, интересен практический опыт.
|
|
|
|
|
Oct 26 2015, 11:57
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(GetSmart @ Oct 25 2015, 12:54)  У процессоров с одним регионом SRAM эффект должен наблюдаться всегда. Ессно при исполнении кода из SRAM. Именно так в LPC111x. Этим способом можно было бы косвенно проверять внутреннее разделение рамы на регионы в одноядерных процессорах. Если адресные линии не отключены в логике, как в LPC43xx, у которого, по моему предположению, из-за наличия цельного 40 КБ региона SRAM пришлось отключить линии A14 и A15 при сравнении в M0-ядре адресов кода и данных. Серьёзный недостаток "эффекта" в том, что он зависит от того, на какой адрес попадает инструкция и даже лёгкие изменения в коде будут менять растактовку отлаженного кода, если регионы кода и данных общие.
Сообщение отредактировал GetSmart - Oct 27 2015, 03:49
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Oct 29 2015, 19:20
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Проверил ещё на LPC1227 (M0+ r0p0). Этого эффекта нет. Странно, что по CPUID ядра не отличить M0 от M0+. Цитата ...из-за наличия цельного 40 КБ региона SRAM... Вторая возможная причина в отсутствии пустот в регионе адресов 0x2000xxxx LPC43xx.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Nov 5 2015, 17:22
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(GetSmart @ Oct 29 2015, 23:20)  Проверил ещё на LPC1227 (M0+ r0p0). Этого эффекта нет. Странно, что по CPUID ядра не отличить M0 от M0+. Ошибся. LPC1227 это M0 без плюса. Так что CPUID корректный. Но растактовка STR/STM у него отличается от остальных M0 камней NXP. Отличий растактовки LPC1227 от "официальной" ARM пока не нашёл. Цитата(aaarrr) Cortex-M3 Technical Reference Manual, раздел Load-store timings. У M0, полагаю, такой особенности (pipelined LDR) нет. В юзер мануале LPC43xx указано, что pipelined есть и у LDR и у STR. На бумаге распечатал на всякий случай.
Сообщение отредактировал GetSmart - Nov 5 2015, 19:57
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Dec 26 2015, 17:20
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Вот что нашёл Код ARM Cortex-M3 Processor Revision: r2p1 Technical Reference Manual
Neighboring load and store single instructions can pipeline their address and data phases. This enables these instructions to complete in a single execution cycle.
ARM Cortex-M4 Processor Revision: r0p1 Technical Reference Manual
Neighboring load and store single instructions can pipeline their address and data phases but in some cases, such as 32-bit opcodes aligned on odd halfword boundaries, they might not pipeline optimally. Оказывается у М3 и М4 разная растактовка LDR/STR. У М4 ARM-ом заложено что-то немного похожее на обозначенную мной особенность большинства М0-процов производителя NXP. Чья это фича - ещё туманней стало.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|