Когда человек много лет рыл бункер и запасал там продукты, он должен испытывать глубокое моральное удовлетворение, если бункер понадобился. Он будет довольный заявлять: «А я говори-и-и-ил!» То же касается и того, кто делал запасы продуктов в кладовой, когда все закупались в магазинах только на сегодня. А вот с нашим комплексом для удалённой работы Redd как-то и не хочется злорадствовать. Он проектировался для удалёнки в мирное время. И использовался задолго до первых новостей из Китая.
Но так как сейчас удалёнка у всех на устах, возникло желание поделиться одной наработкой, которая может кому-то помочь. Это не наша разработка, исследования проводились в рамках работы над сервисом удаленной работы с отладочными платами All-Hardware. Результаты этих исследований и будут описаны в этой статье.
Читать далее...В прошлой статье мы рассмотрели теорию по управлению тысячей мелочей в комплексе Redd, но чтобы не раздувать объём, отложили практику на следующий раз. Пришла пора провести практические опыты. Те же, кто не пользуется комплексом Redd, тоже смогут найти в этой статье полезные знания, а именно — методику подачи Vendor команд в USB накопители из ОС Linux, ведь как уже говорилось, контроллер STM32 в комплексе выполняет функцию SD-ридера, то есть — накопителя.
Читать далее...В прошлой статье мы начали знакомиться с тем, как можно работать со стандартными, общеизвестными шинами силами комплекса Redd, после чего обещали перейти к тому, как в комплексе можно получить доступ к шинам более экзотическим. Сегодня же мы рассмотрим не только практические, но и теоретические вопросы, касающиеся шин, реализуемых комплексом Redd.
Читать далее...Мы начинаем знакомиться с тем, как можно работать со стандартными, общеизвестными шинами, реализуемых комплексом Redd.
Читать далее...До сих пор в этой серии статей мы рассматривали, какие функции предоставляет Nucleus SE. Сейчас пришло время посмотреть, как ее можно использовать в реальном приложении встраиваемого ПО.
Читать далее...До сих пор мы рассматривали тему, как повысить быстродействие системы интенсивными методами. Но на самом деле, есть и экстенсивные методы. Сейчас мы работаем на тактовой частоте 50 МГц, что связано с использованием компонента из набора для университетской программы. Когда я вводил этот компонент в игру, то предупреждал, что данное решение — временное. Пришла пора разобраться, как можно сделать свой компонент, который позволяет повысить тактовую частоту как процессора, так и подключённой к нему периферии.
Читать далее...Как обещали раньше, в этой статье мы подробно рассматриваем, как можно вынести критичные к предсказуемости функции в некэшируемую память, всегда работающую на максимальной скорости. А также изучаем возможности оптимизации производительности за счёт использования нескольких шин, работающих параллельно и независимо друг от друга.
Читать далее...Наш ключевой посыла таков: основной проект первичен, разработка кода под Redd вторична, поскольку Redd — вспомогательный инструмент и тратить на него уйму времени неправильно. То есть разработка под него должна идти быстро. Но это совсем не значит, что получившиеся программы должны быть неоптимальны. Вот и рассмотрим несколько методов оптимизации кода для Redd. Сегодня поговорим про кэш.
Читать далее...Основным требованием при разработке Nucleus SE была высокая степень совместимости с Nucleus RTOS. Nucleus SE поддерживает определенную часть функционала Nucleus RTOS, о чем уже не раз говорилось в предыдущих статьях. В этой статье собраны ключевые отличия двух систем. Сам автор говорит, что задумывал эту статью как краткий справочник для всех, кто собирается переходить с одного ядра на другое, либо находится в процессе выбора ядра для определенного проекта.
Читать далее...Очень часто, несмотря на наличие передовой JTAG отладки, поведение программы в критичных по времени участках неочевидно для разработчика. А было бы полезно хотя бы после исполнения посмотреть, по какой цепочке прошла программа, какие ветвления сработали, а какие нет. В целом, всё это можно показать на осциллографе. Но хотелось продемонстрировать всё средствами самого процессора, используя комплекс Redd. Итак, разбираемся с механизмом трассировки, заложенном в блоке JTAG.
Читать далее...