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

я прально понимаю что прерывание tx complite используете для передергивания выводом порта 485-микруху в режим приема для отпускания шины? Если так то не сильно криминально.

Да, правильно. Про ложку дегтя я написал только потому, что USART у STM'a поддерживает кучу режимов, а RS-485 нет. Как-будто его забыли.

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


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

А что конкретно не порадовало в 16 битных таймерах ?? меня интересует больше PWM приложения ????

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


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

А что конкретно не порадовало в 16 битных таймерах ?? меня интересует больше PWM приложения ????

ну че трудно было счетчик 32 бита сделать... хочу интебалы побольше считать с разрешением получше

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


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

сериальный отладочный интерфейсс SWJ-DP

 

ктонить пробывал это для отладки. всего два провода - выглядит удобно.

что нада для того чтоб ЭТО работо?

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


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

сериальный отладочный интерфейсс SWJ-DP

 

ктонить пробывал это для отладки. всего два провода - выглядит удобно.

что нада для того чтоб ЭТО работо?

Я пробовал, подцеплял к OpenOCD свою железку ( на FT232R)

Удобно. По большому счету это всего лишь другой физический уровень.

 

У codesourcery есть GdbServer который по SWD работатет через FT2232C

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


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

Я пробовал, подцеплял к OpenOCD свою железку ( на FT232R)

Удобно. По большому счету это всего лишь другой физический уровень.

 

У codesourcery есть GdbServer который по SWD работатет через FT2232C

 

интересненько.. значит OpenOCD умеет это делать. поидее GDB не знает как физически это происходит и он я думаю тут нипричем. Видимо OpenOCD можно както сказать о том чтоб использоать не 5 проводов JTAG а 2 SWD. Буду пытаться...

с самим контроллером что нада сделать чтоб SWD заработало?

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


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

интересненько.. значит OpenOCD умеет это делать. поидее GDB не знает как физически это происходит и он я думаю тут нипричем. Видимо OpenOCD можно както сказать о том чтоб использоать не 5 проводов JTAG а 2 SWD. Буду пытаться...

с самим контроллером что нада сделать чтоб SWD заработало?

Просто так сказать не получися, если только новая версия не поддерживает SWD.

Я просто сильно изменил исходники - переделал файл cortex_swjdp.c

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


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

Чёрт, возникли проблемы с флагом Busy SPI контроллера в режиме мастера.

Вроде считал, что, пока контроллер занят, этот флаг будет всегда установлен.

А когда передача/приём закончена - сброшен.

По ходу, это не так.

Вот что озвучено в мануале:

BUSY flag

This flag indicates the state of the SPI communication layer. When it is set, it indicates that

the SPI is busy communicating and/or there is a valid data byte in the Tx buffer waiting to be

transmitted. The purpose of this flag is to indicate if there is any communication ongoing on

the SPI bus or not. This flag is set as soon as:

1. Data is written in the SPI_DR register in master mode

2. The SCK clock is present in slave mode

The BUSY flag is reset each time a byte is transmitted/received. This flag is set and cleared

by hardware. It can be monitored to avoid write collision errors. Writing to this flag has no

effect. The BUSY flag is meaningful only when the SPE bit is set.

 

Я привык, опрашивая этот флаг, определять конец передачи данных. Но, на днях, снизив частоту SPI до пары сотен килогерц, обнаружил, что идёт потеря данных.

Оказывается, это бит сбрасывается после передачи каждого байта! То есть, имея в буфере передатчика байт данных n+1, по окончании передачи из сдвигового регистра байта n, флаг busy на короткое время сбросится в ноль?

Млин, спрашивается, какого ляду? Толку тогда от него? Эх...

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


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

Просто так сказать не получися, если только новая версия не поддерживает SWD.

Я просто сильно изменил исходники - переделал файл cortex_swjdp.c

 

результат в студию или лучше в svn репозиторий OpenOCD

да??

планета должна звать своих героев.

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


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

результат в студию или лучше в svn репозиторий OpenOCD

да??

планета должна звать своих героев.

Да я просто раскурочил OpenOcd и прямо заменил функции swjdp ( JTAG access piont) что они напрямую лезут исключительно через мою железку ( и уже по SWD),частично игнорируя иерархию интерфейсов OpenOCD.

Так что в SVN это точно не положить.

 

К тому же я пользуюсь IAR, а в IAR, как я уже писал, протокол GDB server трактует не правильно, поэтому и с некоторыми версиями OpenOcd не работает. В итоге я написал свой Gdb Server, но для полноценной отладки Cortex в IAR все равно не годится( системные регистры не показывает) нужен RDI.

 

Дописывать OpenOCD я точно не буду, мне не нравится их стиль кода - по идеологии С++, но написано на С, разломать и втиснуть свое я еще могу, но что бы самомуписать... К тому же там еще надо с автомейком разбираться...

 

А вот если кто соберется RDI делать, готов поучаствовать.

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


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

сериальный отладочный интерфейсс SWJ-DP

 

ктонить пробывал это для отладки. всего два провода - выглядит удобно.

что нада для того чтоб ЭТО работо?

Под CW замечательно работает, работаю через JetLink. Скорость ниже, чем по JTAG, но особых неудобств не замечал.

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


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

Хм, только сейчас обратил внимание, что кортексы могут без проблем читать невыровненные данные, как halfword (16 бит)? так и word (32 бита).

Прикольно :laughing:

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


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

А как сменить приоритет для прераваний без порядкового номера?

К примеру, для SysTick - системного таймера? В таблице указано, что можно менять, но регистры Interrupt Priority Registers начинаются с номера 0, а это Window watchdog interrupt и ниже...

Что-то непонятно как-то :(

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


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

А как сменить приоритет для прераваний без порядкового номера?

К примеру, для SysTick - системного таймера?

Там еще есть

System Handler Priority Registers

3 регистра

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


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

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

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

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

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

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

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

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

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

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