Jump to content

    
Sign in to follow this  
DASM

Apache Mynewt OS

Recommended Posts

по моему вытеснялка без mmu это как имитация красной икры.

 

По моему - это сравнивать мягкое с теплым. Вытеснялка - это просто метод переключения контекста, памяти он не жрет почти нисколько. Жрачка начинается, когда к нему подкидывают всякие очереди и стеки задач. Посему решил этим не заморачиваться, выделил несколько глобальных структур, локальные стеки нужного объема и простейший менеджер памяти - расход последней уменьшился в разы, работает на ура...

 

давать на кнопку потока 32 кбайт стека не буду

 

Что это такое не знаю, к сожалению, но такой стек у меня на весь GUI приходится... на lwip в полтора раза больше.

Share this post


Link to post
Share on other sites

Ну я и имею в виду, что в вытеснялке под поток надо давать стек с приличным запасом

 

"локальные стеки нужного объема" вот об этом и речь. Когда стек один на всех у нас боль только чтобы памяти хватило вообще. А когда на каждый поток свой стек то боль умножается на количество потоков

Share this post


Link to post
Share on other sites
Ну я и имею в виду, что в вытеснялке под поток надо давать стек с приличным запасом

 

"локальные стеки нужного объема" вот об этом и речь. Когда стек один на всех у нас боль только чтобы памяти хватило вообще. А когда на каждый поток свой стек то боль умножается на количество потоков

Есть у меня давно устоявшаяся , временем проверенная эвристика - стека на задачу в 3000 байт хватает всегда.

Если не хватает - переделывайте библиотеки используемые в задаче, они сделаны криво либо не для embedded.

 

Вот не понимаю я этого стеба, вы сделали что-то лучше, знаете какие-то серьезные недоработки этих софтин, или предложите виндовс 10?

ЗЫ. Вы так и не объяснили мне, чем так плохи memcpy и иже с ними, и если да, то чем копируете сами?

Не, не я крутой, а разработчики слабые.

Использование этих опенсорсов говорит о том, что у команды нет ресурсов на собственную разработку middleware.

Возможно это команда узко заточенная на BLE или даже один человек. Но в любом случае это полохой знак.

 

Я в TCP/IP стек вообще не лезу. Просто нет ресурсов. Поэтому юзаю как есть.

А есть оно совершенно без обязательных проверок на переполнения при парсинге HTTP, HTML, FTP и проч. протоколов.

memcpy кстати давно запрещено при программировании под Win.

Поэтому отдаю себе отчет как это опасно выставлять свой доморощенный стек в открытую сеть.

 

 

 

Share this post


Link to post
Share on other sites

Может, но все равно какая то неудовлетворенность от того, что стек надо давать с запасом. При большом количестве потоков это неразумно. Вероятно стоит иметь 2..3 сложных потока, а мелочи выносить в один поток, который ей только и занимается.

Share this post


Link to post
Share on other sites
Я в TCP/IP стек вообще не лезу. Просто нет ресурсов. Поэтому юзаю как есть.

А есть оно совершенно без обязательных проверок на переполнения при парсинге HTTP, HTML, FTP и проч. протоколов.

memcpy кстати давно запрещено при программировании под Win.

Поэтому отдаю себе отчет как это опасно выставлять свой доморощенный стек в открытую сеть.

 

Странное дело, выставлять в сеть стек на винде, в которой не успевают дыры залатывать - так это норма, а упрощенный, с проверкой на переполнение(по крайне мере у меня так) - так опасно :biggrin:

ИМХО - позорно для админов вообще что-то выставлять в сеть на винде, особенно сервера, уж линукс куда лучше и безопаснее для этого.

 

Может, но все равно какая то неудовлетворенность от того, что стек надо давать с запасом. При большом количестве потоков это неразумно. Вероятно стоит иметь 2..3 сложных потока, а мелочи выносить в один поток, который ей только и занимается.

 

Как бы логично, сгруппировать по потреблению памяти, будет более проще планировать стеки.

Edited by mantech

Share this post


Link to post
Share on other sites
Странное дело, выставлять в сеть стек на винде, в которой не успевают дыры залатывать - так это норма, а упрощенный, с проверкой на переполнение(по крайне мере у меня так) - так опасно :biggrin:

ИМХО - позорно для админов вообще что-то выставлять в сеть на винде, особенно сервера, уж линукс куда лучше и безопаснее для этого.

Я как-то не верю в дыры в винде. То были не дыры, а скомпрометированные бэкдоры.

А ссылка " у меня так" не работает :biggrin:

Share this post


Link to post
Share on other sites
Я как-то не верю в дыры в винде. То были не дыры, а скомпрометированные бэкдоры.

А ссылка " у меня так" не работает :biggrin:

 

Так ясно дело, я тоже верю, что винда всегда будет работать правильно и никогда не упадет.... Но падает, отсюда вывод - плохо верю! :biggrin:

Share this post


Link to post
Share on other sites
Так ясно дело, я тоже верю, что винда всегда будет работать правильно и никогда не упадет.... Но падает, отсюда вывод - плохо верю! :biggrin:

У меня не падает. Что я делаю или не делаю не так? :laughing:

Share this post


Link to post
Share on other sites
У меня не падает. Что я делаю или не делаю не так? :laughing:

Коль не знаю я где она у вас стоит и не падает, то предположу, что вы ее не запускаете вообще :biggrin:

Share this post


Link to post
Share on other sites

Хоть мы и оффтопим, но у меня 10ка тоже никуда не падает и даже не виснит. Держу Убунту в виртуалке для сборки всяких open sorce в основном, ну и чтобы не забыть совсем, в эмбеддед без линукса никуда. Хотя для комфортной работы мне убунту не подходит ни разу, ни одного нормального файл менеджера даже.

Share this post


Link to post
Share on other sites
Хоть мы и оффтопим, но у меня 10ка тоже никуда не падает и даже не виснит.

 

Сколь времени непрерывно работает? У меня висло через 2-3 недели рунтайма.

Share this post


Link to post
Share on other sites
Сколь времени непрерывно работает? У меня висло через 2-3 недели рунтайма.

Не к тому цепляетесь.

Загрузка ОС гораздо более глючный и рискованный процесс.

Винды сейчас надо оценивать по количеству удачных загрузок.

У меня сейчас после октябрьского Windows 10 Fall Creators Update каждый 3-й раз не запускается драйвер Bluetooth,

фиксировал проблемы USB драйверов, не находило пару раз SSD диск, управление глазами отвалилось.

Вот это важно.

А зависонов я уже пару лет не видел.

Share this post


Link to post
Share on other sites
Не к тому цепляетесь.

Загрузка ОС гораздо более глючный и рискованный процесс.

Винды сейчас надо оценивать по количеству удачных загрузок.

 

А зависонов я уже пару лет не видел.

 

Хорошо, соглашусь, спросил некорректно, зависаний в классическом понимании я тоже не наблюдал, скажем так, ситуаций некорректной работы системы, незагрузки драйверов, сбоев в ФС, невозможности запуска прикладной программы и т.п. Тоесть тех состояний, в которых нормальное функционирование целевой задачи невозможно...

Share this post


Link to post
Share on other sites
Хотя для комфортной работы мне убунту не подходит ни разу, ни одного нормального файл менеджера даже.

Рекомендую посмотреть на filecommander.

Брать надо девелоперскую ветку вот здесь

Share this post


Link to post
Share on other sites
Поставил freertos, покрутил, ну жить можно, только зачем? Не понимаю я сколько стека дать потоку чтобы были гарантии. Похоже их не будет никогда,

компилятором каким пользуетесь? У ряда компиляторов есть stack usage analisys IAR Stack usage и GNU Static Stack Usage. Можно просто посчитать, сколько стека нужно конкретной задаче. Или не помогает?

Что до лицензии FreeRTOS - с 10 версии лицензия поменялась, всякую гнусь оттуда вычистили. Можно честно пользовать для любых целей. Насчет же существовавшего ранее запрета на сравнение - я эту историю хорошо помню. Какие-то комики скомпилировали FreeRTOS без оптимизации и бросились таскать по всяким форумам. Автор объяснил, что сравнение выполнено некорректно. Началось размазывание соплей и прочая такая фигня. Чем бегать по интернету и на каждом углу сраться - автор просто запретил публиковать результаты не согласованного с ним тестирования.

Edited by LightElf

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this