victor_pv
Сб 16 мая 2015 г. 20:49
РЕДАКТИРОВАТЬ:
Новые функции интегрированы в последнее обновление репо Роджера.
Проверить .H файл для короткого объяснения параметров и того, что они делают, прямо перед каждой из функций.
********************************************* ************
Роджер,
Я открываю тему для этого, так как мы не обсуждали ее с тех пор, как вы открыли новые форумы.
Я только что вернулся в библиотеку ILI 9163C, которая перенесла, и быстро подумал о функциях DMA, и просто внес небольшое изменение, чтобы позволить выбирать приращение памяти или круговой режим с дополнительным параметром.
Объявления функции выглядят так:
Новые функции интегрированы в последнее обновление репо Роджера.
Проверить .H файл для короткого объяснения параметров и того, что они делают, прямо перед каждой из функций.
********************************************* ************
Роджер,
Я открываю тему для этого, так как мы не обсуждали ее с тех пор, как вы открыли новые форумы.
Я только что вернулся в библиотеку ILI 9163C, которая перенесла, и быстро подумал о функциях DMA, и просто внес небольшое изменение, чтобы позволить выбирать приращение памяти или круговой режим с дополнительным параметром.
Объявления функции выглядят так:
/**
* @brief Sets up a DMA Transfer for "length" bytes.
*
* This function transmits and receives to buffers.
*
* @param transmitBuf buffer Bytes to transmit. If passed as 0, it sends FF repeatedly for "length" bytes
* @param receiveBuf buffer Bytes to save received data.
* @param length Number of bytes in buffer to transmit.
*/
uint8 dmaTransfer(uint8 *transmitBuf, uint8 *receiveBuf, uint16 length);
/**
* @brief Sets up a DMA Transmit for bytes.
*
* This function transmits and does not care about the RX fifo.
*
* @param transmitBuf buffer Bytes to transmit,
* @param length Number of bytes in buffer to transmit.
* @param minc Set to use Memory Increment mode, clear to use Circular mode.
*/
uint8 dmaSend(uint8 *transmitBuf, uint16 length, bool minc));
/**
* @brief Sets up a DMA Transmit for half words.
* SPI PERFIPHERAL MUST BE SET TO 16 BIT MODE BEFORE
*
* This function transmits and does not care about the RX fifo.
*
* @param data buffer half words to transmit,
* @param length Number of bytes in buffer to transmit.
* @param minc Set to use Memory Increment mode (default if blank), clear to use Circular mode.
*/
uint8 dmaSend(uint16 *transmitBuf, uint16 length, bool minc);
Rogerclark
Пн 18 мая 2015 г., 21:16
Виктор,
Звучит отлично.
Интересно, сможет ли один или два человека проверить это, прежде чем я скопирую его в репо?
Спасибо
Роджер
Звучит отлично.
Интересно, сможет ли один или два человека проверить это, прежде чем я скопирую его в репо?
Спасибо
Роджер
Ахулл
Пн 18 мая 2015 г., 21:23
Rogerclark написал:Виктор,
Звучит отлично.
Интересно, сможет ли один или два человека проверить это, прежде чем я скопирую его в репо?
Спасибо
Роджер
Звучит отлично.
Интересно, сможет ли один или два человека проверить это, прежде чем я скопирую его в репо?
Спасибо
Роджер
victor_pv
Пн 18 мая 2015 г., 21:53
Этот пигоскоп такой крутой!
Теперь по теме SPI DMA:
Roger, struct spi_dev имеет этот контент:
Теперь по теме SPI DMA:
Roger, struct spi_dev имеет этот контент:
typedef struct spi_dev {
203 typedef struct spi_dev {
204 spi_reg_map *regs; /**< Register map */
205 rcc_clk_id clk_id; /**< RCC clock information */
206 nvic_irq_num irq_num; /**< NVIC interrupt number */
207 } spi_dev;
Rogerclark
Пн 18 мая 2015 г., 22:56
Виктор
Нужны ли нам 3 вещи, а не 2, я думал, что нам нужно устройство DMA, а также номера каналов. (Я не уверен насчет номенклатуры, но я думаю, что вы будете знать, о чем я)
Нужны ли нам 3 вещи, а не 2, я думал, что нам нужно устройство DMA, а также номера каналов. (Я не уверен насчет номенклатуры, но я думаю, что вы будете знать, о чем я)
victor_pv
Пн 18 мая 2015 г., 23:26
Роджер, я знаю, что вы имеете в виду, контроллер DMA и номер канала.
Я думаю, ты прав.
Мне нужно проверить, я знаю, что у CB MCU есть только 1 контроллер, но у R, V и Z может быть два, поэтому нам тоже нужно это знать.
Поскольку существует только несколько устройств SPI, это должно занять всего 6 или 9 байтов из оперативной памяти, которые мы должны быть в состоянии уйти с. Специально, поскольку SPI2 или SPI3 не создаются по умолчанию.
Я думаю, ты прав.
Мне нужно проверить, я знаю, что у CB MCU есть только 1 контроллер, но у R, V и Z может быть два, поэтому нам тоже нужно это знать.
Поскольку существует только несколько устройств SPI, это должно занять всего 6 или 9 байтов из оперативной памяти, которые мы должны быть в состоянии уйти с. Специально, поскольку SPI2 или SPI3 не создаются по умолчанию.
Rogerclark
Пн 18 мая 2015 г. 11:40
Привет, Виктор
Да. Это то, что я имею в виду
На самом деле, учитывая контроллер, я думаю, что на самом деле можно выработать каналы, я помню, что есть какой -то код, который проверяет это (извините, я забыл, где это находится)
Но когда я увидел это, я удивлялся, почему чек не был сделан в обратном. Однако это может быть одна из этих вещей, где есть более чем один возможный вариант
В DMA_F1.C у него есть функция, называемая proconfig_check, которая вызывает целую серию подгрупп
Поэтому, когда я не знал, какой канал использовать для устройства, я только что посмотрел в этом коде, чтобы выяснить, что такое действительный номер канала
Но я думаю, что это что -то для будущего, и просто для того, чтобы начать, мы должны включить контроллер DMA, а также каналы TX и RX в структуре
Я не думаю, что еще несколько байтов используемой оперативной памяти, будут иметь какое -либо значение
Да. Это то, что я имею в виду
На самом деле, учитывая контроллер, я думаю, что на самом деле можно выработать каналы, я помню, что есть какой -то код, который проверяет это (извините, я забыл, где это находится)
Но когда я увидел это, я удивлялся, почему чек не был сделан в обратном. Однако это может быть одна из этих вещей, где есть более чем один возможный вариант
В DMA_F1.C у него есть функция, называемая proconfig_check, которая вызывает целую серию подгрупп
Поэтому, когда я не знал, какой канал использовать для устройства, я только что посмотрел в этом коде, чтобы выяснить, что такое действительный номер канала
Но я думаю, что это что -то для будущего, и просто для того, чтобы начать, мы должны включить контроллер DMA, а также каналы TX и RX в структуре
Я не думаю, что еще несколько байтов используемой оперативной памяти, будут иметь какое -либо значение
Ахулл
Вторник 19 мая 2015 г. 13:45
@Victor - где мне найти ваши обновленные либера?
victor_pv
Вторник 19 мая 2015 г. 13:57
У меня возникают некоторые проблемы с Resynchronizing Github с репо Роджером, как только я все это разобрался, я пришлю ему привлечение к соответствующим файлам.
Между тем у моей вилки есть последние модификации, которые я сделал для графических библиотек и функции SPI:
https: // github.com/vicepropv/arduino_stm32
Это также включает в себя Freertos 8.2.1. и COOS 1.1.6 и 1.12 (самая старая версия), которые, кажется, работают нормально. Есть один пример, который использует дисплей ILI9163, но может быть очень легко адаптирован к любому другому дисплею.
Может быть чем -то полезным для управления несколькими задачами в проекте осциллографа.
Между тем у моей вилки есть последние модификации, которые я сделал для графических библиотек и функции SPI:
https: // github.com/vicepropv/arduino_stm32
Это также включает в себя Freertos 8.2.1. и COOS 1.1.6 и 1.12 (самая старая версия), которые, кажется, работают нормально. Есть один пример, который использует дисплей ILI9163, но может быть очень легко адаптирован к любому другому дисплею.
Может быть чем -то полезным для управления несколькими задачами в проекте осциллографа.
Мадиас
Вторник 19 мая 2015 г. 13:58
@ahull: Я уверен, что они на аккаунте Github Github:
https: // github.com/vicepropv/arduino_stm32
редактировать: ОК, Виктор был быстрее
https: // github.com/vicepropv/arduino_stm32
редактировать: ОК, Виктор был быстрее
victor_pv
Вторник 19 мая 2015 г. 15:58
Потянуть их лучше от https: // github.com/vicopropv/stm32f1_modified
Я пытаюсь пересмотреть свой другой репо с Роджером и только загружать протестированные вещи для притяжения, внося изменения в _modified.
Я пытаюсь пересмотреть свой другой репо с Роджером и только загружать протестированные вещи для притяжения, внося изменения в _modified.
joevpt
Вторник 13 декабря 2016 г. 16:51
Получение много предупреждений об использовании устаревших звонков в SPI.c Мой проект использует Ethernet_stm LIB, который использует SPI LIB, который, в свою очередь, использует DMA LIB. Библиотека DMA объявила ряд вызовов как устаревшие, поэтому вызовы SPI должны быть обновлены.
Если бы я знал, как это сделать, я бы с радостью добровольно добровольно, но знание своих ограничений - это добродетель в этом случае. DMA - это немного загадка для меня (я знаю, что означают буквы). Я вижу в SPI.h, что избавиться от устаревших звонков находится в списке чего -то.. Не думай, что это будет в ближайшее время ?
Если бы я знал, как это сделать, я бы с радостью добровольно добровольно, но знание своих ограничений - это добродетель в этом случае. DMA - это немного загадка для меня (я знаю, что означают буквы). Я вижу в SPI.h, что избавиться от устаревших звонков находится в списке чего -то.. Не думай, что это будет в ближайшее время ?
Rogerclark
Вт 13 декабря 2016 г., 19:32
Можете ли вы опубликовать свой вывод словесного компиляции, показывающий, что устарело
Стивестронг
Ср 14 декабря 2016 г. 9:25 утра
Мне известно об этих сообщениях, я попытался заменить устаревшие функции, но это включает в себя больший размер кода/оперативной памяти и более длительное время выполнения.
Поскольку установка DMA в функциях отправки/передачи SPI должна быть быстрой (что в настоящее время имеет место), я скорее склонен к удалению ключевого слова «устаревшего» из источников, чтобы компилятор больше не предупреждал.
Как ты думаешь, Роджер? Будет ли это смысл?
Поскольку установка DMA в функциях отправки/передачи SPI должна быть быстрой (что в настоящее время имеет место), я скорее склонен к удалению ключевого слова «устаревшего» из источников, чтобы компилятор больше не предупреждал.
Как ты думаешь, Роджер? Будет ли это смысл?
Mrburnette
Ср 14 декабря 2016 г. 15:42
Я со Стивом на этом.
Я часто просто использую #pragma ... Чтобы закрыть шум. Есть полный списокНастройки GCC Pragma это можно включить в исходном коде.
Этот должен отключить амортизированные предупреждения:
Я часто просто использую #pragma ... Чтобы закрыть шум. Есть полный списокНастройки GCC Pragma это можно включить в исходном коде.
Этот должен отключить амортизированные предупреждения:
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
Стивестронг
Ср 14 декабря 2016 г. 18:59
В этом случае эта линия следует удалить/прокомментировать.
joevpt
Чт 15 декабря 2016 г., 22:31
Спасибо, Стив. Я сделал, как вы предложили.