Техническое задание по ведению журнала разработки и тестирования программного обеспечения
Дата | Описание |
---|---|
2020-06-29 | Первоначальное построение структуры. Завершение работы над совместимостью с сигнальными счётчиками. Завершена работа над совместимостью в системе задержки в os_time.c. |
2020-06-30 | Завершена работа над совместимостью со сторонними программными таймерами. |
2020-07-01 | Реализована совместимость с мьютексами. |
2020-07-02 | Реализована совместимость с очередями сообщений. |
2020-07-03 | Реализована совместимость со списками групп флагов событий. Реализована совместимость со встроенными регистрами задач. Реализована совместимость со встроенными очередями сообщений задач. |
2020-07-04 | Реализована совместимость со счётчиками задач. Реализована проверка безопасности аутентификации uCOS-III. Выполнено подключение к макроопределениям os_cfg.h. Добавлен и подключён os_cfg_app.h. |
2020-07-05 | Завершены проверки макроопределений в файлах os_flag.c, os_mutex.c, os_tmr.c, os_task.c, os_time.c и os_core.c. Оптимизированы os_cfg_app.h и os_cfg.h. |
2020-07-06 | Дополнен файл readme.md. Реализованы функции OSTaskSemSet и OSSemSet. Оптимизированы функции OSTaskSuspend и OSTaskResume для обеспечения возможности вложения приостановки и возобновления. |
2020-07-07 | Перенесён файл os_mem.c. Улучшена структура объектов ядра. |
2020-07-08 | Реализована функция OSTmrStateGet. Построена структура для статистической задачи. Исправлены ошибки в функциях OSTaskDel, связанные с удалением счётчиков задач и очередей задач. |
2020-07-09 | Реализован внутренний статистический процесс uCOS-III, который может корректно вычислять коэффициент использования ЦП и использование стека каждой задачей. |
2020-07-10 | Реализована функция OSTimeDlyResume. Исправлено некорректное поведение функций OSSemDel и OSMutexDel. |
2020-07-11 | Добавлены члены переменных в структуру OS_TCB, которая соответствует оригинальной версии. Реализована функция OSSemPendAbort, а также улучшена функция OSSemPend. |
2020-07-12 | Создан новый файл os_rtwrap.c для поддержки преобразования между RT-Thread и μCOS-III. Реализованы функции OSTaskSemPendAbort и OSTaskQPendAbort. Улучшены функции OSSemPendAbort, OSSemMutexAbort и OSSFlagPendAbort. |
2020-07-14 | Реализованы функции OSSchedRoundRobinCfg, OSFlagPendGetFlagsRdy и OSSQFlush. Дополнены примеры timer_sample.c и mutex_sample.c. |
2020-07-15 | Перенесён файл cpu_core.c с добавлением функции CPU_Init. Оптимизирован пример timer_sample.c. Дополнен пример mutex_sample.c. |
2020-07-16 | Задачи с внутренними очередями сообщений и счётчиками используют имена задач напрямую, без конкатенации строк. Реализована функция обратного вызова OSTmrDel. Добавлена цепочка OSTmrDbgListPtr. Реализовано преобразование между таймером RT-Thread и таймером μCOS-III. |
2020-07-18 | Начата интеграция с FinSH и реализация команды msh. |
2020-07-19 | В функцию OSInit добавлена защита критической секции. Реализованы цепочки OSSemDbgListPtr и OSMutexDbgListPtr. |
2020-07-20 | В файле os_rtwrap.c добавлены функции rt_ipc_post_all и rt_sem_release_all. Реализована опция OSSemPost OS_OPT_POST_ALL. |
2020-07-22 | Дополнен пример sem_sample.c. |
2020-07-23 | Дополнен пример q_sample.c. Изменён основной файл main.c для строгого следования инициализации, предложенной μCOS-III. |
2020-07-24 | Добавлены файлы μC/LIB (V1.39.00). Изменена структура проекта, переместив файлы проекта на один уровень выше. |
2020-07-25 | Добавлены файлы os_dbg.c и os_cfg_app.c для интеграции с μC/Probe. |
2020-07-26 | Реализованы переменные-члены OS_TCB .TaskState, .StkPtr и .PendOn, DbgName. |
2020-07-27 | Исправлены функции OSMutexPendAbort, OSSemPendAbort, OSTmrPendAbort и OSFlagPendAbort для корректного отображения количества задач, которые были отменены. |
2020-07-28 | Добавлен пример task_sem_sample.c. Реализованы переменные-члены структуры OS_MUTEX .OwnerNestingCtr, .OwnerTCBPtr и .OwnerOriginalPrio. |
2020-07-29 | Улучшено описание в файле readme. |
2020-08-03 | Добавлена переменная OS_CFG_TASK_PROFILE_EN для снижения потребления ресурсов. |
2020-08-07 | Примеры переименованы из sample в example. Добавлена переменная PKG_USING_UCOSIII_WRAPPER_AUTOINIT. |
2020-08-08 | Создан скрипт SConscript для поддержки инструмента env для автоматизации добавления пакетов. |
2020-08-12 | Доработано описание в файле readme. |
2020-08-13 | Исправлена ошибка в функции OSTmrRemainGet. Реализованы переменные .Match и .Remain в структуре OS_TMR. |
2020-08-16 | Реализован код ошибки OS_ERR_TASK_SUSPENDED. |
2020-12-25: исправлена проблема с кодом, возникавшая после определения PKG_USING_UCOSIII_WRAPPER_TINY.
2021-05-05: после пяти месяцев предварительного тестирования выпущена официальная версия v1.0.0.
2021-05-23: RT_IPC_FLAG_FIFO заменён на RT_IPC_FLAG_PRIO для обеспечения своевременности.
Release
v0.1.0: полная совместимость всех объектов ядра уже реализована и может удовлетворить нормальные требования совместимости. В этой версии ещё не реализована статистическая задача μCOS-III, которая будет выпущена в последующих версиях.
v0.2.0:
v0.3.0:
v0.4.0:
v0.5.0:
v0.6.0:
v0.7.0:
В версии 3.08 все ошибки, связанные с совместимостью, были полностью устранены.
[add] Реализовать функцию OSTaskChangePrio, в настоящее время совместимый слой поддерживает только 1 API.
[bug fix] Исправить переменную p_tcb->TaskState, добавить следующие функции:
#define OS_TASK_STATE_PEND_TIMEOUT (OS_STATE)( 3u) /* 0 1 1 Pend + Timeout */
#define OS_TASK_STATE_DLY_SUSPENDED (OS_STATE)( 5u) /* 1 0 1 Suspended + Delayed or Timeout */
#define OS_TASK_STATE_PEND_SUSPENDED (OS_STATE)( 6u) /* 1 1 0 Suspended + Pend */
#define OS_TASK_STATE_PEND_TIMEOUT_SUSPENDED (OS_STATE)( 7u) /* 1 1 1 Suspended + Pend + Timeout */
[add] Добавить пример suspend_example.c.
[bug fix] Исправить ошибку, связанную с отсутствием вызова функции OS_MemInit для инициализации пула памяти.
[bug fix] Исправить ошибку в функции обратного вызова таймера OS_TmrCallback при обработке обновления параметров OSTmrSet, когда параметры таймера могут быть не установлены повторно.
[add] Проверить код ошибок функции OSInit.
[bug fix] Исправить ошибку в подсчёте количества внутренних задач в функции OSStart (не должны включать задачи простоя и таймера, которые являются внутренними задачами RTT).
[fix] Сделать функцию OS_TmrCallback статической частной функцией файла.
[del] Удалить избыточный код проверки параметров в функции OSTmrCreate.
Реорганизовать комментарии в файле os_tmr.c.
Преобразовать функции OSSemPost и OSMutexPost в функции, игнорирующие опцию OS_OPT_POST_NO_SCHED.
[bug fix] Заменить μ на u в коде μCOS, чтобы избежать проблем с кодировкой при выводе на терминал.
[bug fix] Исправить проблему в функции OS_TmrCallback, где переменные-члены .Match и .Remain не были повторно назначены при наличии задержки в периоде задержки.
При создании задачи, сделать адрес начала стека задачи равным &AppTask1_Stack[0], чтобы подчеркнуть начальный адрес стека.
Выровнять и реорганизовать комментарии.
[del] Убрать ненужные функции-ловушки (заменены функциями-ловушками RT-Thread).
[bug fix] Исправить проблемы с обработкой состояния в функции OSTimeDlyResume.
Включить задачи простоя в диапазон управления OS_CFG_STAT_TASK_EN.
[del] Убрать ненужный код из файла os_dbg.c.
[del] Убрать ненужный код из заголовочного файла os.h.
[add] Внедрить PKG_USING_UCOSIII_WRAPPER_TINY для упрощения совместимого слоя.
[del] Убрать ненужные комментарии из файла os_task.c.
[add] Включить определение макроса OS_CFG_TASK_SEM_EN для обрезки встроенных семафоров задач.
[add] В заголовочном файле os.h включить код определения макросов.
[del] Удалить ненужные определения макросов конфигурации.
[adjust] Оптимизировать PKG_USING_UCOSIII_WRAPPER_TINY.
[del] Удалить ненужную ветвь выбора в функции OSTaskSuspend().
[bug fix] Исправить утечку памяти, вызванную забытым освобождением памяти сообщений в функции OSQDel().
[adjust] Реорганизовать комментарии в файлах os_q.c, os_mem.c, os_core.c, os_flag.c, os_stat.c, os_time.c, os_sem.c.
[doc] Добавить описание старого файла версии os_pend_multi.c в файл readme.
[bug fixed] Установить начальное значение переменной rt_option в функции OSFlagPend().
[adjust] Оптимизировать структуру проекта.
[adjust] Изменить использование <> в заголовочных файлах на "".
[bug] Исправить ошибки, связанные с закрытием некоторых определений макросов, приводящие к ошибкам в проекте.
[add] Добавить определение макроса CPU_CFG_STK_ALIGN_BYTES в файл cpu.h.
[add] Поддержать код ошибки OS_ERR_PEND_WOULD_BLOCK.
[add] Создать пример flag_example.c.
[add] Внедрить функциональность OS_CFG_FLAG_MODE_CLR_EN.
[adjust] Преобразовать функции OSQPost и OSFlagPost так, чтобы они игнорировали опцию OS_OPT_POST_NO_SCHED.
[add] Определить члены структуры данных .FlagsPend, .FlagsRdy, .FlagsOpt в структуре OS_TCB.
[add] Реализовать широковещательную очередь сообщений.
[adjust] Перенести автоматическую инициализацию из INIT_DEVICE_EXPORT в INIT_PREV_EXPORT.
Завершить работу над членом данных .FlagsRdy.
Завершить работу над членом данных p_grp->Flags.
[fix] Исправить несоответствие единиц измерения в результатах функции OSTmrRemainGet().
[fix] Исправить несоответствие единиц измерения значения члена данных .Remain в структуре данных OS_TMR.
[fix] Исправить проблему, связанную с тем, что формула преобразования из RT-Thread в таймер UCOS-III не учитывает изменения Systick.
После пяти месяцев предварительного тестирования выпущена версия v1.0.0.
Заменить RT_IPC_FLAG_FIFO на RT_IPC_FLAG_PRIO для обеспечения своевременности.
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.