Перейти к содержанию
    

PIC18 MPLAB проблема с компилятором?

On 4/21/2023 at 8:58 PM, kan35 said:

3.5кБ ОЗУ все таки не так и мало.

Для FreeRTOS может быть и мало. Какая у вас установка размера стека? 3 таски (2 ваши + idle) + 2 TCB могут всю память легко сьесть.

Всё таки для классических RTOS нужно памяти на порядок больше.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там стек каждой по сто байт, всего куча операционки - 2кб. Я согласен, что ресурсы ограничены, но у меня будет 5-7 задач, поэтому я в этом принципиально не сомневаюсь.

Решил попробовать откомпилировать в extented mode, почему то в прерывание таймера не запрыгивает в таком варианте, почему такое может быть? Почему так пробую - в примерах c гита он включен. На сколько это может быть принципиально?

Изменено пользователем kan35

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У самурая нет цели ,  у самурая есть только  путь. 

2 кб стек + 7 задач по  100 байт  = 2,7 кб. 

Всего есть  3,5 кб. 

Читаем минимальное количество памяти  для Ethernet только для глобальных данных, не считая динамическое выделение -  https://documentation.help/Microchip-TCP.IP-Stack/Memory_Usage.html

Легко не  будет. 

Да, XC8  не может в extented mode. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, задачу поставил и не отступлю. С вашей помощью, конечно:-)

Во FReeRTOS стеки под задачи выделяются из общей кучи. То есть 2кБ - 7*100 = 1.3кБ свободного места в куче. + обычный стек - 256 байт, и остается еще 1кБ свободного. Тут не так все плохо.

Все таки оказалось, что прерывания срабатывают,однако происходит как я понимаю сброс контроллера при restore_context, тут что-то у меня с памятью. Даже вряд ли из за extended mode. Подскажите, как правильно его сконфигурировать, чтобы ОЗУ предсталов  линейном виде? Я в опциях компилятора только вижу. При чем в обычном режиме выгоядит иначе, чем в extended.

Обычный

mplab3.thumb.png.3ef7c02063e284d70d6427eae6b7bdfb.png

extended

mplab4.thumb.png.aa9b37e77832b7198c1aaa7dc8a700a7.png

А в коде ничего нужно активировать?

Или во фьюзах?

Изменено пользователем kan35

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну в общем, можно сказать победа. Наладил кое-как. Хотя до конца не понял что именно сделал, что оно заработало, сейчас буду искать что...

Все таки работает НЕ в extended mode. В extended постоянно сваливается в ресет когда в первый раз восстанавливает контекст.

Проект прикрепил, правда на старой версии FreeRTOS пока. Может быть кому то это будет полезно когда-нибудь. Если налажу современный официальный порт, я его выложу тоже.

gitprj.X_good.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Update

Оказалось, что опция "Enable Multi-bank stack model" Должна быть активна.

mplab5.thumb.png.d71fcf3293de8b13f3a9f504ffb2cdf0.png

То есть порт с сайта FreeRTOS.org вполне тоже рабочий. Только вот в нем не хватает файла-проекта под MPLAB X. Поисследовав файл проекта под MPLAB IDE нашел конфигурационную строку 

TS{C2AF05E7-1416-4625-923D-E114DB6E2B96}=-w3 -DMPLAB_PIC18F_PORT -Ls -Opa- -nw 2074 -nw 2066

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

Кстати, может ли меня кто-нибудь ткнуть носом - что эта опция дает? Я почему то думал, что она включает по-банковый доступ к памяти, а получается наоборот - банки объединает в один массив? или как? Я смотрел в документации Микрочипа, но там тоже нет объяснения для меня.

Изменено пользователем kan35

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...