|
|
|
Apache Mynewt OS |
|
|
|
Nov 6 2017, 07:41
|
Гуру
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143
|
Цитата(DASM @ Nov 6 2017, 10:09) по моему вытеснялка без mmu это как имитация красной икры. По моему - это сравнивать мягкое с теплым. Вытеснялка - это просто метод переключения контекста, памяти он не жрет почти нисколько. Жрачка начинается, когда к нему подкидывают всякие очереди и стеки задач. Посему решил этим не заморачиваться, выделил несколько глобальных структур, локальные стеки нужного объема и простейший менеджер памяти - расход последней уменьшился в разы, работает на ура... Цитата(DASM @ Nov 6 2017, 10:09) давать на кнопку потока 32 кбайт стека не буду Что это такое не знаю, к сожалению, но такой стек у меня на весь GUI приходится... на lwip в полтора раза больше.
|
|
|
|
|
Nov 6 2017, 10:59
|
Ally
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050
|
Цитата(DASM @ Nov 6 2017, 09:49) Ну я и имею в виду, что в вытеснялке под поток надо давать стек с приличным запасом
"локальные стеки нужного объема" вот об этом и речь. Когда стек один на всех у нас боль только чтобы памяти хватило вообще. А когда на каждый поток свой стек то боль умножается на количество потоков Есть у меня давно устоявшаяся , временем проверенная эвристика - стека на задачу в 3000 байт хватает всегда. Если не хватает - переделывайте библиотеки используемые в задаче, они сделаны криво либо не для embedded. Цитата(mantech @ Nov 5 2017, 19:30) Вот не понимаю я этого стеба, вы сделали что-то лучше, знаете какие-то серьезные недоработки этих софтин, или предложите виндовс 10? ЗЫ. Вы так и не объяснили мне, чем так плохи memcpy и иже с ними, и если да, то чем копируете сами? Не, не я крутой, а разработчики слабые. Использование этих опенсорсов говорит о том, что у команды нет ресурсов на собственную разработку middleware. Возможно это команда узко заточенная на BLE или даже один человек. Но в любом случае это полохой знак. Я в TCP/IP стек вообще не лезу. Просто нет ресурсов. Поэтому юзаю как есть. А есть оно совершенно без обязательных проверок на переполнения при парсинге HTTP, HTML, FTP и проч. протоколов. memcpy кстати давно запрещено при программировании под Win. Поэтому отдаю себе отчет как это опасно выставлять свой доморощенный стек в открытую сеть.
|
|
|
|
|
Nov 6 2017, 11:08
|
Гуру
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143
|
Цитата(AlexandrY @ Nov 6 2017, 13:59) Я в TCP/IP стек вообще не лезу. Просто нет ресурсов. Поэтому юзаю как есть. А есть оно совершенно без обязательных проверок на переполнения при парсинге HTTP, HTML, FTP и проч. протоколов. memcpy кстати давно запрещено при программировании под Win. Поэтому отдаю себе отчет как это опасно выставлять свой доморощенный стек в открытую сеть. Странное дело, выставлять в сеть стек на винде, в которой не успевают дыры залатывать - так это норма, а упрощенный, с проверкой на переполнение(по крайне мере у меня так) - так опасно ИМХО - позорно для админов вообще что-то выставлять в сеть на винде, особенно сервера, уж линукс куда лучше и безопаснее для этого. Цитата(DASM @ Nov 6 2017, 14:00) Может, но все равно какая то неудовлетворенность от того, что стек надо давать с запасом. При большом количестве потоков это неразумно. Вероятно стоит иметь 2..3 сложных потока, а мелочи выносить в один поток, который ей только и занимается. Как бы логично, сгруппировать по потреблению памяти, будет более проще планировать стеки.
Сообщение отредактировал mantech - Nov 6 2017, 11:10
|
|
|
|
|
Nov 7 2017, 09:24
|
Ally
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050
|
Цитата(mantech @ Nov 7 2017, 09:54) Сколь времени непрерывно работает? У меня висло через 2-3 недели рунтайма. Не к тому цепляетесь. Загрузка ОС гораздо более глючный и рискованный процесс. Винды сейчас надо оценивать по количеству удачных загрузок. У меня сейчас после октябрьского Windows 10 Fall Creators Update каждый 3-й раз не запускается драйвер Bluetooth, фиксировал проблемы USB драйверов, не находило пару раз SSD диск, управление глазами отвалилось. Вот это важно. А зависонов я уже пару лет не видел.
|
|
|
|
|
Nov 7 2017, 17:04
|
Гуру
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143
|
Цитата(AlexandrY @ Nov 7 2017, 12:24) Не к тому цепляетесь. Загрузка ОС гораздо более глючный и рискованный процесс. Винды сейчас надо оценивать по количеству удачных загрузок.
А зависонов я уже пару лет не видел. Хорошо, соглашусь, спросил некорректно, зависаний в классическом понимании я тоже не наблюдал, скажем так, ситуаций некорректной работы системы, незагрузки драйверов, сбоев в ФС, невозможности запуска прикладной программы и т.п. Тоесть тех состояний, в которых нормальное функционирование целевой задачи невозможно...
|
|
|
|
|
Dec 6 2017, 23:41
|
Местный
Группа: Свой
Сообщений: 234
Регистрация: 3-10-04
Из: Кукуево-Дальнее
Пользователь №: 767
|
Цитата(DASM @ Nov 7 2017, 00:51) Хотя для комфортной работы мне убунту не подходит ни разу, ни одного нормального файл менеджера даже. Рекомендую посмотреть на filecommander. Брать надо девелоперскую ветку вот здесь
|
|
|
|
|
Dec 7 2017, 13:56
|
Частый гость
Группа: Участник
Сообщений: 180
Регистрация: 5-04-09
Пользователь №: 47 205
|
QUOTE (DASM @ Nov 6 2017, 10:09) Поставил freertos, покрутил, ну жить можно, только зачем? Не понимаю я сколько стека дать потоку чтобы были гарантии. Похоже их не будет никогда, компилятором каким пользуетесь? У ряда компиляторов есть stack usage analisys IAR Stack usage и GNU Static Stack Usage. Можно просто посчитать, сколько стека нужно конкретной задаче. Или не помогает? Что до лицензии FreeRTOS - с 10 версии лицензия поменялась, всякую гнусь оттуда вычистили. Можно честно пользовать для любых целей. Насчет же существовавшего ранее запрета на сравнение - я эту историю хорошо помню. Какие-то комики скомпилировали FreeRTOS без оптимизации и бросились таскать по всяким форумам. Автор объяснил, что сравнение выполнено некорректно. Началось размазывание соплей и прочая такая фигня. Чем бегать по интернету и на каждом углу сраться - автор просто запретил публиковать результаты не согласованного с ним тестирования.
Сообщение отредактировал LightElf - Dec 7 2017, 14:57
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|