|
К1986ВЕ92, SWD, высвобождение остальных ножек JTAG |
|
|
|
Jun 3 2014, 05:09
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(редактор @ Jun 3 2014, 13:01)  Скорее всего можно, только надо библиотеки подправить. Там библиотека сделана таким образом, что при записи в порт маскирует все ножки JTAG. Да, это я заметил. И подумал про себя что за.... Цитата Ну при экспериментах будте готовы, что придется стирать МК через UART. При прямой записи в порт с JTAG интерфейсом есть шанс завесить отладку. Местная грабля. Нет слов.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Jun 4 2014, 07:23
|
Группа: Участник
Сообщений: 10
Регистрация: 13-03-10
Пользователь №: 55 929

|
Цитата(demiurg_spb @ Jun 3 2014, 12:50)  Начинаем осваивать ARM-CM3 от Миландр К1986ВЕ92. Сразу возник вопрос. Можно-ли, используя лишь SWD, высвободить остальные ножки JTAG для собственных нужд (так же как это было в STM32)? Можно, не каких аппаратных проблем нет. Понадобятся только SWDIO (TMS), SWCLK (TCK) и GND. Если вдруг программой переназначите пины или остановите тактирование МК, то переведите МК в режим роботы с внешней ROM (с полным обесточиванием) и спокойно стирайте контроллер через SWD.
|
|
|
|
|
Jul 23 2014, 15:01
|
Группа: Участник
Сообщений: 10
Регистрация: 13-03-10
Пользователь №: 55 929

|
Цитата(demiurg_spb @ Jul 23 2014, 15:58)  Выяснился один интересный момент. Если обращаться к порту (к не SWD пинам) в котором находятся линии SWD через BITBAND, то SWD отваливается, с JTAG аналогично. Об этом миландр не пишет в своих ератах, а стоило бы... Поэтому пришлось делать костыль и работать с этим портом лишь через его регистры. ... Проблемы возникают при "read modify write" из за того что Вы пишите в JTAG пины "мусор" который вычитали во время стадии "read". Если перед "write" наложить маску на эти биты (обнулить), то проблем не будит. Как пример посмотрите SPL.
|
|
|
|
|
Jul 23 2014, 15:06
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(rus61 @ Jul 23 2014, 19:01)  У меня и так нет проблем. Я же говорю, что при использовании BITBAND происходит не очевидный "read modify write" всего порта, хотя обращение идёт к биту напрямую. А при явной записи в регистры с маскированием ясно дело что всё нормально. Я про этот костыль и говорю - он спасает. На мой взгляд BITBAND на то и придумывался чтобы избежать подобных проблем. Но в миландре ИМХО его (BITBAND) кривовато реализовали.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Jul 24 2014, 07:39
|
Группа: Участник
Сообщений: 10
Регистрация: 13-03-10
Пользователь №: 55 929

|
Цитата(demiurg_spb @ Jul 23 2014, 19:06)  У меня и так нет проблем. Я же говорю, что при использовании BITBAND происходит не очевидный "read modify write" всего порта, хотя обращение идёт к биту напрямую. А при явной записи в регистры с маскированием ясно дело что всё нормально. Я про этот костыль и говорю - он спасает. На мой взгляд BITBAND на то и придумывался чтобы избежать подобных проблем. Но в миландре ИМХО его (BITBAND) кривовато реализовали. Да проглядел, что речь о Bit-band, но смысл от этого не изменился. По факту при записи в Bit-band регион ядро делает последовательность "read modify write", которая является атомарной (S-bus блокируется до окончания записи, но само ядро может продолжать выполнять команды если не требуется доступа к S-bus). Механизм Bit-band реализован не Миландром, а ARM и описан в TRM на Cortex-M3.
|
|
|
|
|
Jul 24 2014, 09:43
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(rus61 @ Jul 24 2014, 11:39)  Да проглядел, что речь о Bit-band, но смысл от этого не изменился. По факту при записи в Bit-band регион ядро делает последовательность "read modify write", которая является атомарной (S-bus блокируется до окончания записи, но само ядро может продолжать выполнять команды если не требуется доступа к S-bus). Механизм Bit-band реализован не Миландром, а ARM и описан в TRM на Cortex-M3. Бред. "Bit-banding provides atomic operations to bit data,"
|
|
|
|
|
Jul 24 2014, 11:17
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(DmitryM @ Jul 24 2014, 15:43)  Бред. "Bit-banding provides atomic operations to bit data," Не бред, всё так и есть: Цитата The System bus interface contains logic that controls bit-band accesses as follows: - It remaps bit-band alias addresses to the bit-band region.
- For reads, it extracts the requested bit from the read byte, and returns this in the Least Significant Bit (LSB) of the read data returned to the core.
- For writes, it converts the write to an atomic read-modify-write operation.
- The processor does not stall during bit-band operations unless it attempts to access the System bus while the bit-band operation is being carried out.
(И я не совсем понимаю, как Миландр мог накосячить в бит-банде, если это функция ядра.)
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Jul 24 2014, 13:45
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(ViKo @ Jul 24 2014, 17:17)  А для управления битами портов bitband не нужен. Хватает средств и без него.
P.S. Можно прийти к выводу, что bitband имеет смысл использовать только для тех битов, которые устанавливаются (сбрасываются) программно - для битовых переменных. Не думаю, иначе зачем Цитата The memory map has two 32-MB alias regions that map to two 1-MB bit-band regions: - Accesses to the 32-MB SRAM alias region map to the 1-MB SRAM bit-band region.
- Accesses to the 32-MB peripheral alias region map to the 1-MB peripheral bit-band region.
Другой вопрос, использовать или нет.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|