как можно протестировать?

Страницы: Пред. 1 2
RSS
как можно протестировать?
 

Документация уже тоже обновлена, пока новый сайт не готов, можете прислать мне в ЛС почту, я мог бы прислать последние версии документов?

 

Моя почта mactin@list.ru

 

Мы закончили работы по обновлению сайта, документацию и демо-проекты можно скачать по адресу fxrtos.ru.

 
Для знакомства с FX-RTOS доступны демо-версии, которые включают скомпилированную библиотеку и заголовочный файл ОС, демо-приложение (которое зависит от возможностей аппаратного обеспечения), а также сконфигурированный проект для использования с определенным инструментарием и оборудованием. Описание функций API и руководство пользователя представлены в разделе документации.

Последнюю версию инструментария GNU для платформы ARM можно скачать на сайте ARM.
 
Добрый день,
кто-нить пробовал на ОС freemodbus цеплять?
 
Цитата
написал:
Добрый день,
кто-нить пробовал на ОС freemodbus цеплять?
Михаил, добрый день!

Не портировали, но насколько я вижу там от ОС почти ничего не нужно: таймер и возможно какой-то примитив синхронизации. Так что можем это совместно сделать в чате.
 
Михаил, добрый день. В документации по портированию freemodbus (https://github.com/cwalter-at/freemodbus/blob/master/doc/porting.dox) сказано, что для данной библиотеки от ОС требуется функция оповещения о событии: xMBPortEventInit, xMBPortEventPost, xMBPortEventGet.
В порте для freertos используется очередь сообщений длиной в 1 сообщение: https://github.com/cwalter-at/freemodbus/blob/master/demo/STR71X/port/portevent.c В случае FX-RTOS самым оптимальным для такого простого оповещения использовать семафор.
Тогда код должен быть примерно такой:
Код
#include "mb.h"
#include "mbport.h"

#include <FXRTOS.h>

fx_sem_t sem_event;

BOOL
xMBPortEventInit( void )
{
    int status = fx_sem_init(&sem_event, 0, 1, FX_SYNC_POLICY_FIFO);
    return (status == 0) ? TRUE : FALSE;
}

BOOL
xMBPortEventPost( eMBEventType eEvent )
{
    int status = fx_sem_post(&sem_event);
    return (status == 0) ? TRUE : FALSE;
}

BOOL
xMBPortEventGet( eMBEventType * eEvent )
{
    int status = fx_sem_timedwait(&sem_event, FX_THREAD_INFINITE_TIMEOUT);
    return (status == 0) ? TRUE : FALSE;
}

Обработчики прерываний UART и таймера остаются те же, но вызываются централизованного обработчика fx_intr_handler() (см. примеры)

Если у вас STM32F3, можно скачать пример для stm32f302, и адаптировать под вашу модель. Там есть пример использования прерывания.

https://github.com/Eremex/fxrtos-examples/releases/download/v0.1/fxrtos-st-stm32f302.zip

Примеры использования API:

https://github.com/Eremex/fxrtos-examples/blob/main/api

Руководства:

https://www.eremex.ru/products/fx-rtos/#database

Страницы: Пред. 1 2
Читают тему

Будьте в курсе новостей и спецпредложений

Авторизация
Чтобы продолжить покупку, пожалуйста, авторизируйтесь на сайте.
Забыли пароль?