Size: a a a

2020 December 22

VK

Valentin Kornienko in Embedded Group
Тут не хватает переменных. Отладчик подключен когда подключен ЛА или нет?
источник

ED

Electronics Designer in Embedded Group
Тут уже разобрались с OSPEEDR, я гляжу, но я все равно приведу документальные доказательства своей позиции. :) Ну не зря же я страницы искал, правда? :)

Итак, DS8626, даташит на STM32F407, страница 117, таблица 50, "I/O AC characteristics", примечание 2:

The I/O speed is configured using the OSPEEDRy[1:0] bits. Refer to the STM32F4xx reference manual for a description of the GPIOx_SPEEDR GPIO port output speed register.

Плюс собственно вся таблица иллюстрирует зависимость предельной выходной частоты от настройки OSPEEDR.

RM0090, Reference Manual на STM32F4, страница 275, п. 8.3.9, "Input Configuration":

The data present on the I/O pin are sampled into the input data register every AHB1 clock cycle

Кроме того, в этом же документе в п. 8.3.10, "Output configuration" написано то же самое:

The data present on the I/O pin are sampled into the input data register every AHB1 clock cycle

Вывод: вход работает одинаково, независимо от того, настроен порт на вход или на выход. А вот скорость выхода настраивается.
источник

LZ

Leonid Zaliubovskii in Embedded Group
Alexander Chernigin
Примерно так же. Что все время намекает что у меня баг в программе. Собственно с поиска его я и пришел к железу.
Иcпользую FreeRTOS. Баг возникает когда в длинную серию чтений вклинивается запись. Из другого потока, естественно мьютексы есть. Баг проявился в релизе. В дебаге все ок.
Замкнутый круг
примерно также, это как? Потому что примерно также, как и раньше ел - это не означает что ешь сейчас вдосталь
источник

ED

Electronics Designer in Embedded Group
По теме: а можно посмотреть полную осциллограмму обмена по шине? Именно осциллограмму, а не картинку с логического анализатора.
источник

ED

Electronics Designer in Embedded Group
Или хотя бы SCLK и SO, если нет четырехканального осциллографа под рукой. В идеале SCLK-SO, SCLK-SI, SCLK-CS.
источник

ED

Electronics Designer in Embedded Group
Синхронизацию стоит установить по SCLK.
источник

AC

Alexander Chernigin in Embedded Group
Valentin Kornienko
Вы мьютекс берете каждую запись/Чтение или на все время записи/чтения?
мьюткс беру на каждую атомарную запусись/чтение. флешкой пользуется LittleFs и код который пишет raw данные
источник

VK

Valentin Kornienko in Embedded Group
Alexander Chernigin
мьюткс беру на каждую атомарную запусись/чтение. флешкой пользуется LittleFs и код который пишет raw данные
Хм. Есть подозрение, что у вас логически проблема во взятии мьютекса.
т.к. вы должны брать его на все время записи/чтения, если их будет несколько идти, чтобы логически не мешать события на шине
источник

VK

Valentin Kornienko in Embedded Group
Грубо говоря- формировать очередь запросов на шину.
источник

AJ

Arm Jedi in Embedded Group
вопросец. Есть. Взял готовую функцию кодирования в base64. Вот она  https://pastebin.com/JfMSv6w5.
char* base64_encode(char* plain)  
char* cipher = malloc(strlen(plain) * 4 / 3 + 4);
........
  return cipher;

есть malloc но нет free...правильно ли будет вызывать в своем коде:

char  *encoded;
encoded =  base64_encode((char *)uri_buf);
.........обработка....
free(encoded);

заметил утечку памяти если malloc не вызывать
источник

LZ

Leonid Zaliubovskii in Embedded Group
Arm Jedi
вопросец. Есть. Взял готовую функцию кодирования в base64. Вот она  https://pastebin.com/JfMSv6w5.
char* base64_encode(char* plain)  
char* cipher = malloc(strlen(plain) * 4 / 3 + 4);
........
  return cipher;

есть malloc но нет free...правильно ли будет вызывать в своем коде:

char  *encoded;
encoded =  base64_encode((char *)uri_buf);
.........обработка....
free(encoded);

заметил утечку памяти если malloc не вызывать
ну как бы ожидаемо, что утечка была замечена
источник

LZ

Leonid Zaliubovskii in Embedded Group
но это нездоровая херня внутри аллочить память и отдавать ее наружу
источник

VK

Valentin Kornienko in Embedded Group
Leonid Zaliubovskii
но это нездоровая херня внутри аллочить память и отдавать ее наружу
А как работают вагон сишных API?
источник

AJ

Arm Jedi in Embedded Group
Leonid Zaliubovskii
но это нездоровая херня внутри аллочить память и отдавать ее наружу
согласен...
источник

LZ

Leonid Zaliubovskii in Embedded Group
Valentin Kornienko
А как работают вагон сишных API?
в таком случае, сравнимо с дрочкой вприсядку. Странно, бесмысленно и порой беспощадно
источник

VK

Valentin Kornienko in Embedded Group
createSomething( pOutPtr**);
deleteSomething(pObject*);
источник

LZ

Leonid Zaliubovskii in Embedded Group
лол
источник

VK

Valentin Kornienko in Embedded Group
Вот такого добра примерно вагон и маленькая телега, не?
источник

AJ

Arm Jedi in Embedded Group
а как верно отдавать указатель и длинну строки.
источник

VK

Valentin Kornienko in Embedded Group
Arm Jedi
а как верно отдавать указатель и длинну строки.
Быть человеком и вернуть std::string
источник