Автор: arhiv6 Nov 30 2017, 05:37
Вот такая новость появилась: http://electronix.ru/redirect.php?http://www.opennet.ru/opennews/art.shtml?num=47649
Раньше была GPLv2 с модификациями, теперь MIT. Кто-нибудь, кто разбирается в лицензия, может пояснить какие это плюсы или минусы даёт? Вроде и раньше можно было исходники не открывать даже при модификации. Из плюсов пока только вижу - в предыдущей версии лицензии был пункт, что нельзя сравнивать производительность ОС по сравнению с другими, теперь, похоже, этот пункт убрали.
Автор: juvf Nov 30 2017, 05:49
Те же http://electronix.ru/redirect.php?https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_MIT, только сбоку. Всё та же http://electronix.ru/redirect.php?https://www.freertos.org/a00114.html
Автор: arhiv6 Nov 30 2017, 05:56
Я тоже на первый взгляд отличий не вижу. Непонятно, зачем тогда меняли? Какие-то свои юридические заморочки?
Автор: seniorandre Nov 30 2017, 06:22
Цитата(arhiv6 @ Nov 30 2017, 08:37)
Вроде и раньше можно было исходники не открывать даже при модификации.
А с чего вы взяли что GPL позволяла не открывать исходники? Как раз наоборот, вы обязаны были раскрыть исходники либо вместе с программой либо по запросу.
Правда пишут что у FreeRtos было какое-то исключение на счет раскрытия исходников.
Автор: AHTOXA Nov 30 2017, 06:38
Цитата(arhiv6 @ Nov 30 2017, 10:56)
Я тоже на первый взгляд отличий не вижу. Непонятно, зачем тогда меняли? Какие-то свои юридические заморочки?
Собственно, GPL + их исключения как раз и получается MIT. Просто сделали понятнее для всех.
Думаю, причина в том, что слово "GPL" отпугивает какую-то часть пользователей.
А вот что пункт про запрет сравнений убрали - это хорошо. Ждём весёлых тестов
Автор: Kabdim Nov 30 2017, 09:07
Думаю Амазон с его ресурсами довольно быстро это исправит.
Автор: x893 Nov 30 2017, 12:15
Вот добавили Message Buffers - уже польза есть
Автор: LightElf Nov 30 2017, 13:34
QUOTE (arhiv6 @ Nov 30 2017, 08:56)
Я тоже на первый взгляд отличий не вижу. Непонятно, зачем тогда меняли? Какие-то свои юридические заморочки?
Раньше (GPL+exception clause) можно было скрывать свои сорцы, при условии что саму FreeRTOS вы не меняли. Сейчас можно скрывать свои модификации FreeRTOS.
Кроме того, TCP и FAT раньше были под чистым GPL, т.е. надо было открывать свои исходники в любом случае. Сейчас такого требования нет.
Думаю такое было требование Amazon. Амазонцы лезут во всяческий IoT, а там открытые сорцы могут быть нежелательны по причине безопасности.
Автор: SMaster Jan 24 2018, 08:59
Протестировал стрим буфер. Компилятор Keil, максимальная оптимизация по скорости, контроллер STM32F103C8T6. Измерил количество тиков на типовые операции и использование стека в байтах. Получились интересные результаты:
Create / Send / Receive (тики между переходом управления планировщику и получением байта принимающей задачей) / Stack
Стрим буфер = 200 / 572 / 548 / 136
Старая добрая очередь = 290 / 311 / 319 / 176
То есть выигрыш только в стеке? Я надеялся, что и скорость выше будет. Получается, что есть смысл использовать буферы только если прижимает по стеку, либо ради фишек буферов - Trigger Level для стрим буфера и возможность отправки данных разной длины для буфера сообщений.
Код тестовой программы:
Код
#include "stm32f10x.h"
#include "FreeRTOS.h"
#include "stream_buffer.h"
#include "task.h"
#include "queue.h"
StreamBufferHandle_t buf_tmp;
QueueHandle_t que_tmp;
uint8_t i, j, k;
void task_tmp1(void * param) {
while (1) {
i++;
xStreamBufferSend(buf_tmp, &i, sizeof(uint8_t), portMAX_DELAY);
vTaskDelay(100);
i++;
xQueueSend(que_tmp, &i, portMAX_DELAY);
vTaskDelay(100);
}
}
void task_tmp2(void * param) {
while (1) {
xStreamBufferReceive(buf_tmp, &j, sizeof(uint8_t), portMAX_DELAY);
__NOP();
}
}
void task_tmp3(void * param) {
while (1) {
xQueueReceive(que_tmp, &k, portMAX_DELAY);
__NOP();
}
}
int main() {
xTaskCreate(task_tmp1, "tmp1", 128, NULL, 4, NULL);
xTaskCreate(task_tmp2, "tmp2", 128, NULL, 3, NULL);
xTaskCreate(task_tmp3, "tmp3", 128, NULL, 2, NULL);
buf_tmp = xStreamBufferCreate(100 * sizeof(uint8_t), sizeof(uint8_t));
que_tmp = xQueueCreate(100, sizeof(uint8_t));
vTaskStartScheduler();
}
Автор: juvf May 31 2018, 10:23
http://electronix.ru/redirect.php?https://freertos.org/Documentation/FreeRTOS_Reference_Manual_V10.0.0.pdf теперь бисплатно и фицыально
Автор: Arlleex May 31 2018, 13:12
Короче реально надо сваливать с FreeRTOS и переходить на что-то более простое и эффективное.