1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/rtthread-rt-thread

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
ChangeLog.md 200 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 25.11.2024 21:35 537aeae

Символьные ссылки, управление обычными файлами и другие функции (#8672): - Добавить функцию sys_utimensat; добавить символьную ссылку cromfs (#8132) - Реализовать поддержку mmap в cromfs (#8218)

Libc:

  • Устранить проблему с несколькими определениями функции difftime в среде компиляции MDK
  • Решить проблему гонки данных в общем списке идентификаторов счётчиков; устранить проблему совместимости файла ctime.c со старыми драйверами
  • Исправить проблему переопределения макроса в eventfd из-за обновления набора инструментов
  • Устранить логическую ошибку в поиске локального хранилища потока posix для дескриптора потока posix
  • Улучшить gcc picolibc; дополнительно оптимизировать epoll и timerfd
  • Добавить макрос RT_USING_INTERNAL_LIBC_ONLY; добавить функциональность универсальных атомарных операций GCC (#8648)

LWP:

  • Добавить функцию sys_setitimer
  • Заменить функцию lwp_new на lwp_create; заменить код отключения/включения irq в futex; заменить off_t на size_t в lwp_syscall.c
  • Устранить проблемы с настройкой привязки к процессору; решить проблему внутренней блокировки rt_channel; исправить проблему повторного использования pid; исправить настройку флага защиты сигнала процесса инициализации (#8797)
  • Включить автоматический выбор опций LDSO и pcache по умолчанию после включения опций smart/lwp
  • Обновить привязку AF_UNIX и структуру данных connect, обновить структуру sockaddr_un AF_UNIX до стандартной структуры

MM:

  • Реализовать поддержку зарезервированной памяти; реализовать функцию rt_aspace_mremap_range
  • Устранить проблему использования освобождённой памяти в aspace_traversal; устранить проблему функции page_install в теневой области

Net:

  • Оптимизировать вывод команды сканирования Wi-Fi, чтобы избежать конфликтов между несколькими выводами клиента и сервера (#8666)
  • at: оптимизировать вывод форматирования at, чтобы избежать конфликтов между несколькими клиентами и серверами at; оптимизировать компонент AT и устранить потенциальную утечку памяти
  • lwip: устранить возможную тупиковую ситуацию в SMP
  • sal: добавить функцию ifconfig updown; добавить ограничение количества сообщений; обновить уровень абстракции сокета SAL, улучшить функциональность socketpair, sendmsg, recvmsg

Finsh:

  • Оптимизировать отображение list_thread; оптимизировать определение макроса MSH
  • Проверить размер стека потока finsh; добавить функцию перехвата входа потока finsh

FAL:

  • Добавить механизм блоков для fal, поддерживать добавление специальных определений блоков

MProtect:

  • Разработать слой абстракции MPU, поддерживать архитектуры ARMv7-M, ARMv8-M

Другие:

  • Синхронизировать различия в ядре, файловой системе и т. д.; удалить vmm
  • Устранить предупреждение -Wmissing-prototypes

Libcpu

  • AARCH64: исправить символ входа в ядро; устранить проблему, когда информация трассировки не видна в среде ulog; использовать дерево устройств для инициализации ЦП и памяти; улучшить производительность отключения/включения IRQ
  • ARM: добавить поддержку Cortex®-M85, Cortex®-R52; устранить проблему ненормальной работы SMP в Cortex®-A (#8517)
  • RISC-V: устранить проблему сбоя интеллектуальной сборки d1s (#8212)
  • Реализовать поддержку mmap
  • Поддержать общую структуру обратной трассировки в ядре RT-Thread; добавить слабую реализацию службы обратной трассировки на уровне архитектуры; добавить поддержку архитектуры RV64
  • Стандартизировать название группы Libcpu как libcpu

Инструменты

  • Поддержка инструментария LLVMEmbeddedToolchainForArm-17.0.1
  • Добавлена команда scons --target=vsc/--pack=xxx; добавлена операция предварительной сборки
  • Исправлена проблема распознавания файла rtconfig.h в MPU в сценариях
  • rt_studio: исправлена проблема отсутствия поля {cross_toolchain_flags} при импорте проектов bsp в rt-studio
  • env: устранена проблема встроенного подпроцесса python2

Действие

  • Устранена проблема Doxygen CI
  • Добавлен мониторинг CI для BSP
  • Добавлен контроль CI для bsp

Utest

  • Добавлены тестовые случаи для системы памяти; добавлены тестовые примеры для фреймворка serial_v2; добавлены тестовые случаи mm; добавлены тестовые случаи планировщика

BSP

  • Улучшены несколько файлов драйверов bsp; устранены некоторые проблемы в bsp
  • Поддержка RT-Smart: DFZU2EG MPSoC, cv181x-riscv
  • STM32: серии STM32 G0, G4, L0, L4 Поддержка переключения в один клик на версию RT-Thread Nano; добавлены макросы для идентификации платы на уровне серии STM32 Nucleo; добавлена конфигурация, связанная с CI, для Nano версии серии STM32.

Поддержка RTduino: raspberry-pico, stm32h503-st-nucleo, stm32h563-st-nucleo, stm32f412-nucleo, stm32f407-rt-spark.

Добавлены новые BSP:

  • Adafruit: Metro M4;
  • Seeed Studio: Wio-Terminal;
  • ST: stm32L431_tencentos, stm32h7s7-disco, stm32f407-lckfb-skystar, stm32h503-st-nucleo;
  • Renesas: ek-ra8m1, ek-ra8d1, ra8d1-vision-board;
  • AT32: at32f402-start, at32f405-start;
  • HT32: ht32f52352, ht32f12366;
  • AVR32: at32uc3a0256, at32uc3b0256;
  • CVITEK: c906_little, cv18xx_risc-v;
  • WCH: yd-ch32v307vct6 (risc-v);
  • HC32: ev_hc32f4a0_lqfp176, ev_hc32f460_lqfp100_v2, ev_hc32f448_lqfp80;
  • GD32: gd32407v-lckfb;
  • NXP:
    • mcxn: frdm-mcxn947;
    • mcxa: frdm-mcxa153.

Userapps

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

По умолчанию включены epoll/eventfd/signalfd/timerfd/select при использовании RT-Smart.

Убраны готовые версии.

Исправлен баг setitimer, улучшена поддержка FUTEX.

Добавлена поддержка терминальной подсистемы RT-Smart (#8672).

Другие обновления: ssh, sftp, weston, vim...

Выпущена версия RT-Thread v5.0.2

Изменения в журнале с момента выпуска v5.0.1

Ядро

  • include/rtdef.h:
    • исправлены две проблемы с atomic volatile в bsp/simulator, скомпилированном в VS2019;
    • добавлен макрос RT_USING_LIBC_ISO_ONLY;
    • поддерживается POSIX-совместимый errno.
  • src/kservice.c:
    • улучшена совместимость функции rt_strerror.

Поддерживается управление идентификатором устройства DM; поддерживается приём нескольких потоков одного и того же события одновременно.

Больше не используется RT_DEBUG_LOG в rtdebug.h.

Приведены в порядок макросы отладки и добавлен RT DEBUGING CONTEXT.

Исправлена блокировка приёма сообщений в режиме пользователя MQ.

В интерфейсах POSIX добавлена поддержка приоритета очередей сообщений.

Удалена рекурсия в мьютексе; удалены макросы RT_DEBUG_xxx.

Реализована слабая функция по умолчанию для rt_hw_cpu_shutdown.

Компоненты

  • drivers:
    • sensor: исправлена ошибка в Sensor-V1, где тип возврата был непоследовательным; повторно реализована структура датчика как Sensor-V2.
    • fdt: добавлен макрос поиска дочернего узла устройства.
    • tty: исправлена ошибка переключения приложения переднего плана; поддерживаются команды TCGETA/TCSETAF/TCSETAW/TCSETA.
    • serial: исправлена проблема, из-за которой последовательный порт иногда отправлял возврат каретки несколько раз.
    • Поддерживается основной API для dd2.0.
    • i2c: оптимизирован формат интерфейса управления для добавления доступных команд.
    • rtc: реконфигурируемая структура часов; исправлена ошибка, которая вызывала тревогу однократно и многократно использовала таймер, который не запускался.
    • hwtimer: переполнение недействительно в режиме oneshot.
    • core: пересмотрены макросы файлов заголовков.
    • wlan: исправлены некоторые переменные, которые не использовались при сборке.
    • Файлы заголовков ядра перемещены в путь: include/drivers/core.
  • lwp:
    • Выполнен elf с добавленной проверкой разрешений исполняемого файла.
    • Поддерживаются дополнительные функции сигналов из IEEE Std 1003.1-2017.
    • Исправлена возможная утечка памяти; исправлена настройка фальшивого LWP в sys_execve; исправлена ошибка адреса сокета; исправлено исключение функции waitpid.
    • Исправлены ошибки при уничтожении LWP; исправлен exit(2) и добавлен exit_group(2); исправлен rt_memcpy на lwp_memcpy в источнике smart; исправлен cmd_kill (Fix cmd_kill).
    • Добавлены fops для dfs_v2 и исправлено предупреждение для eventfd_write и eventfd_read после изменений dfs_v1.
    • Кумулятивные обновления lwip и lwp.
  • libc:
    • Обновлён режим выделения идентификатора таймера libc.
    • Добавлен signalfd для системного вызова, добавлен eventfd для системного вызова.
    • Реализована облегчённая конфигурация часового пояса.
    • Переименован libc.c в posix/stdio.c.
    • Оптимизирован код epoll для удаления ограничений на дескрипторы.
    • Адаптирован rt_channel, увеличена общность некоторых функций rt_channel на dfs v2, стандартизирован signalfd.
  • dfs:
    • Исправлены ошибки использования переменных в dfs elm.c.
    • Подключена пара POSIX mqueue к файловой системе fd.
    • Изменена некоторая функция. Прототипы структуры dfs_file_ops и объявления функций.
  • Исправлена ошибка fcntl(F_SETFL), а также изменён код ошибки при неудачном открытии файла.
  • Комплексное исправление изменений dfs, включая принудительное удаление и изменения pread/pwrite.
  • В dfs v2 добавлена функция cromfs.

Утилиты

  • Поддержка ulog_async_output_enabled, поддержка API adt для DM.
  • Удалено zmodem.

MM

  • Улучшен вывод list_page.
  • Добавлен API unmap page.

Net

  • sal/socket: исправлена ошибка BUG, при которой вызов интерфейса closesocket вызывал утверждения при включённом RT_DEBUG; устранено дублирование free в выделенном буфере.
  • Sal: исправлены проблемы компиляции IPv4 и v6.

Ktime

  • Добавлено RT_USING_KTIME в сборку Kconfig.
  • Исправлено несколько ошибок с ktime.
  • Оптимизирована производительность высокоточного таймера, удалена бесполезная функция.
  • Изменён путь Ktime: components/drivers/ktime.

Sdio

  • Включён внутренний кэш eMMC для ускорения передачи.

Finsh

  • Добавлена функция автозаполнения msh.

Драйверы устройств

  • Подготовка к версии 2.0 драйвера устройства.

Libcpu

  • Aarch64: исправлен сбой привязки ядра по умолчанию на GICv2; исправлен сбой запуска SMP aarch64; поддерживается аппаратная атомарность; исправлено хранение FPU в стеке и добавлено Q16 ~ Q31; исправлен тип ops типа HW atomic_t с dword на qword; поддерживаются общедоступные сценарии компоновщика; изменено приоритетное ранжирование обратной трассировки и дампа ядра aarch64; исправлена проблема, из-за которой AARCH64 Qemu не компилировался при отключённом SMP.
  • Arm: исправлены предупреждения IAR о компиляции: функция "__LDREX" объявлена неявно; модифицирован start_gcc.S; исправлено состояние гонки с ldrex, strex; исправлена циклическая ссылка в заголовочном файле.
  • Arc: исправлена ошибка переключения потоков в архитектуре arc.
  • Sim: исправлена проблема с несогласованными определениями функций.
  • Добавлены определения макросов ARCH_ARM_CORTEX_M23.

Инструменты

  • Исправлено имя проекта .uvoptx/uvopt.
  • Поддерживается Env для оболочки finsh.
  • Удалён параметр --dist-strip.
  • Скорректировано сообщение приглашения.

Действие

  • Добавлен CI для компиляции большего количества драйверов для изменённого BSP, добавлены pkgs-test; добавлен ручной запуск и проверка BSP; добавлено больше настроек для ручного запуска.
  • Добавлены ручные триггеры для всех STM32, добавлены SCons exp_STM32.
  • Проверен репозиторий на предмет самоиспользования; добавлен запрос на проверку владельца кода; добавлены пути игнорирования для форматирования и статической проверки.
  • Исправлен путь, который нельзя свернуть в YAML; исправлен флаг dist.
  • Использован скрипт установки env.

Документы

  • Добавлен Кодекс поведения RT-Thread; добавлен документ readme ktime; добавлен документ env vscode.
  • Исправлена опечатка в документации.
  • Обновлён документ env, обновлён документ qemu для Windows; обновлён quick_start_qemu_windows.

Utest

  • Добавление volatile решает проблему сбоя теста при высоком уровне оптимизации.
  • Размер стека потока thread_tc изменён, чтобы избежать аномалий стека, вызванных 64-битными машинами; размер стека потока изменён, чтобы избежать аномалий стека.
  • Добавлена зависимость сигнала в сигнальном тесте.

BSP

  • Добавлены новые BSP

    • ST: imx6ull, stm32u585-iot02a, stm32f405zgtx, stm32h563-st-nucleo, stm32h563-st-nucleo, stm32f407-rt-spark
    • SOPHGO: cv1800b
    • TI: msp432e401y-LaunchPad
  • Поддерживаются Open Firmware API и модель PIC.

  • Исправлены проблемы с компиляцией MM32.

  • stm32

    • stm32/stm32u5: исправлена ошибка прерывания GPIO.

    • stm32/stm32l476-nucleo: поддерживается timer7 для RTduino; поддерживается переключение PWM на SPI.

    • stm32/stm32wl55-st-nucleo: устранена ошибка компиляции SCons, улучшен файл ссылок, удалена поддержка аппаратной плавающей точки.

    • stm32/stm32f407-rt-spark: выпуск первой версии BSP rt-spark; добавлен rt-spark для запуска фрагментов ссылок utest под GCC.

    • stm32/stm32f401nucleo/rtduino: поддерживается функция переключения контактов стыковки.

    • stm32/stm32l431-BearPi: поддерживается модуль MPU6050.

    • stm32/rtduino: поддерживаются таймеры тона и ограничено максимальное количество проверяемых выводов; поддерживается функция переключения стыковочных контактов; исправлена демонстрационная ошибка и изменена функция переключения SPI.

    • stm32/i2c driver: заменён stm32_udelay на rt_hw_us_delay.

    • stm32/build path: Example Модернизирован путь генерации проекта STM32.

  • qemu:

    • qemu-virt64-aarch64: устранена проблема с ошибкой монтирования файловой системы elm.
  • airm2m:

    • airm2m/air32f103: синхронизированы изменения в библиотеке, включая блокировку SRAM и исправление ошибок частоты захвата RTC; обновлена команда pin num.
  • wch:

    • wch/riscv/ch32v307v: добавлен _head_end для файла ссылок.
    • wch/riscv/ch32v208w: исправлены ошибки компиляции C++.
    • wch/risc-v/Libraries/ch32_drivers: исправлено объявление IRQ UART.
  • imxrt:

    • imxrt/imxrt1060-nxp-evk: решена проблема адаптации модуля RW007 на плате MIMXRT1062-EVKB; исправлена неправильная ссылка на изображение imxrt1060.
    • imxrt/imxrt1021-nxp-evk: исправлен RT_ASSERT, неопределённый RT1021.
  • renesas:

    • renesas/sdhi driver: устранена проблема, когда при попытке множественного чтения блоков SDHI мог читать только первый блок.
    • Исправлена часть BSP renesas и добавлен связанный CI; устранена проблема сбоя компиляции BSP.
    • Добавлен hwtimer для renesas.
  • acm32:

    • acm32/acm32f0x0-nucleo: исправлена ошибка команды scons --dist.
    • Устранены некоторые проблемы с BSP acm32 и добавлен CI.
  • bouffalo_lab:

    • bouffalo_lab/bl808/d0: добавлены драйверы ядра SPI и I2C для bl808 d0.
  • nuvoton:

    • nuvoton/numaker-m467hj: устранены проблемы, связанные с версией LVGL.
  • Infineon:

    • Infineon/psoc6-evaluationkit-062S2: добавлена конфигурация I2C для psoc6-evaluationkit; устранена ошибка инициализации i2c; добавлен модуль cyw43012 wifi; добавлена поддержка BT.
  • esp32_c3:

    • Реализована компиляция scons для ESP32-C3.
  • raspberry-pico:

    • Добавлены код драйвера программного моделирования SPI и программного моделирования I2C.
    • Оптимизирована конфигурация Kconfig.
    • Улучшен драйвер UART.
    • Добавлена настройка управления потоком и чётности.
  • phytium:

    • phytium/aarch32/e2000d_rtthread: обновление Phytium e2000.
    • Исправлено драйвер QSPI Phytium.
  • hpmicro:

    • Добавлено три новых BSPS: hpm6750evk2, hpm6300evk и hpm6200evk.
  • gd32:

    • gd32/arm/gd32470z-lckfb: добавлен драйвер SDRAM.
  • nuclei:

    • nuclei/gd32vf103_rvstar: добавлены заголовки конфигурации, связанные с USB.

Userapps

  • Поддержка обновлений пользовательского режима в MicroPython, sdl2, lua, ffmpeg.

Выпущено RT-Thread v5.0.1

Изменения в журнале с момента выпуска v5.0.0

Kernel

  • Добавить обнаружение stdc atomic. (#7536)
  • Добавить API rt_hw_interrupt_is_disabled. (#7706)
  • Добавить API для получения имени объекта и имени потока (#7507)
  • Добавить AMP rt_hw_cpu_id и RT_USING_SMP Macro decoupling,rt_hw_ipi_send зависит от RT_USING_AMP
  • Исправить ошибку сравнения флагов device_open. (#7512)
  • Исправить переменную rt_err в timer.c в iar
  • Исправить и добавить проверку нулевого указателя
  • Избежать повторных вызовов интерфейса device_open (#7476)
  • Изменить rt_thread изменить структуру на явное наследование rt_object (#7131)

Компоненты

  • DFS

    • Добавить dfs-v2.0
    • Устранить потенциальные проблемы утечки памяти (#7378)
    • Исправить ошибку блокировки spinlock tmpfs. (#7216),nfs 64bit arch fault
  • Libc

    • Поддержка rt-thread CPP wrapper sub-switch macros, внешнего третьего пакета libc, picolibc heap
    • Оптимизация потребления ресурсов
    • Модифицировать перенаправление заголовка sys/ioctl на bits/ioctl, улучшить интерфейс posix message queue
    • Модификация, если определить cputime, то CLOCK_REALTIME использовать cputime (#7343)
  • LWP

    • Добавить больше поддержки syscall.
    • Поддерживать передачу дескриптора файла (#7318)
  • Поддержка масштабируемого управления памятью (#7277)

    • Исправление lwp _load_script. (#7405)
    • Изменение rt_err_t на sysret_t в lwp_syscall (#7374)
    • Изменить, когда дочерний процесс fork, функция lwp_struct_copy добавляет функцию копирования working_directory (# 7380)
  • Network

    • Добавить дополнительные функции хуков
    • Исправить расчёт времени ожидания ping (#7545),проблемы совместимости IPv6 (#7339)
    • Исправить поиск следующего перехода в lwip_ip4_route_src. (#7504)
    • Модифицируйте использование интерфейса для установки по умолчанию netdev
    • оптимизация at_vprintfln и сети, связанной с Kconfig
  • Другое

    • Исправить смещение Finsh, используемое перед проверкой диапазона
    • Поддержка масштабируемого управления памятью (#7277)

Драйверы устройств

  • Исправить таймер процессора в многопоточности (#7222),предупреждение о компиляции dtb.
  • Оптимизировать скорость передачи spi и устранить некоторые проблемы
  • Модифицировать тип данных канала АЦП и добавить универсальный номер канала идентификации встроенного канала Модифицировать текущую структуру датчика обратно до версии 1 и сделать её независимой от версии 2 (#7698)
  • Модифицировать изменение драйвера tty на устройство и исправить проблемы с потерей данных из-за множественных вызовов scanfs.

Libcpu

  • Добавить отладочную информацию для GDB.

— ARM: оптимизировать API в режиме прерывания, исправить atomic_arm.c. — AArch64: оптимизировать API в режиме прерывания, отделить процесс запуска, добавить режим без дерева устройств в PSCI, исправить операцию аннулирования кэша (#7363). — RISC-V: добавить ioremap для c906. — MIPS: исправить неправильное использование переменных.

Инструменты

  • Добавить функцию фильтрации файлов, которые не требуют проверки с помощью cppcheck (#7499).
  • Добавить аргументы --add-rtconfig для scons при необходимости добавления определений макросов во время сборки.
  • Поддерживать llvm-arm 16.0; добавить рабочие процессы llvm-arm.
  • Исправить невозможность выбора C99 и GNU в Keil-MDK.
  • Исправить проблему с deque для Env['CPPDEFINES'] (#7541).
  • Переместить file_check.py в папку ci.

Действие

  • Рефакторинг и оптимизация процесса выполнения CI, добавление ручных триггеров и проверок cppcheck для дистрибутива scons.

Utest

  • Добавить раздел UtestTcTab доступа под MSC и изменить доступ под GCC.
  • Исправить strtol, расчёт размера, проблему цикла тестового случая потока на высоких уровнях оптимизации, несоответствие открытия и закрытия файла.

BSP

  • Исправить несоответствующие типы функций в rt_pin_ops для всех drv_gpio.c.

  • Добавить новые BSP:

    • APM32: APM32E103ZE-EvalBoard, APM32E103ZE-TinyBoard, APM32F030R8-Miniboard.
    • AT32: AT32F423-Start.
    • Essemi: ES32VF2264.
    • IMXRT: IMXRT1061-Forlinx-OK1061-S.
    • Renesas: RA6M3-HMI-Board.
    • STM32: STM32F334-ST-Nucleo, STM32L496-ST-Discovery.
    • Yichip: YC3122-POS.
    • Bouffalo Lab: BL808/D0.
  • Добавить поддержку RTduino для некоторых BSP.

  • Обновить некоторые драйверы BSP для STM32: таймер, UART v2, ШИМ, АЦП.

  • Обновить BSP:

    • Добавить kconfig для некоторых BSP без kconfig.
    • Исправить несоответствующие типы функций в rt_pin_ops для всех drv_gpio.c (#7457).
    • Для STM32: исправлены некоторые проблемы, добавлены и улучшены некоторые драйверы.
    • Для Renesas: исправлены некоторые проблемы, добавлены и улучшены некоторые драйверы.
    • Infineon: исправлена проблема с drv_gpio и SPI, добавлен драйвер PSOC6 для sdcard (#7522), обновлена READ.me с использованием пути относительно (#7500), исправлена проблема с выбором чипа SPI.
    • Симулятор: синхронизация с основным драйвером Win32 (#7165), исправление поддержки Linux.
    • AIRM2M/AIR32F103: обновление AIR32F10xLib (#7472).
    • Allwinner: обновление библиотек allwinner, объектных файлов (#7482).
    • APM32: добавлен драйвер CAN и поддержка драйвера rtt для APM32e1/s1 (#7170).
    • At32: добавлена поддержка драйвера DAC, улучшение drv_usart_v2 (#7210), исправлено.
    • Bouffalo Lab: добавлены драйверы sdcard SPI, drv_i2c, drv_soft_i2c hwtimer и flash, обновлены библиотеки и скрипты bouffalo lab, драйвер хоста sdio, uart pin и bl808-d0 ioremap mode.
    • Essemi: обновлённые функции и драйверы некоторых библиотек.
    • Fujitsu: поддержка BSP в меню конфигурации.
    • GD32: Добавлен драйвер ШИМ для GD32F303.
    • IMXRT: Поддержка Keil AC6, добавлены файлы сценариев компоновки, улучшена поддержка SPI, улучшена документация.
    • LPC4088: увеличена поддержка среды IAR (#7611).
    • LPC55SXX: обновлен проект по умолчанию для Keil, обновлены drv_soft_i2c drv_soft_spi drv_adc drv_wdt, добавлена адаптация LVGL drv_lcd и drv_touch.
    • Raspberry Pico: добавлены drv_soft_spi, drv_adc, drv_wdt, drv_soft_i2c.
    • RK3568: поддержка PSCI, режим AMP.

Userapps

  • Использование xmake для создания системы, заменяющей оригинальные scons.
  • Встроенная инструментальная цепочка, zlib и другое программное обеспечение.
  • Возможность автоматического создания образов, таких как ext4 и fat.
  • Поддержка нескольких архитектур, таких как ARM, aarch64, riscv64.
  • Добавление встроенной среды выполнения QEMU.

Выпущена версия RT-Thread 5.0.0

Изменения в журнале с момента выпуска версии 4.1.1

Ядро

  • Добавлены функции RT-Thread Smart, поддержка приложений пользовательского режима.
  • Добавлена атомарная функция.
  • Добавлена функция вложенных мьютексов.
  • Добавлена структура данных rt_ssize_t.
  • Добавлено статическое имя для rt_object (#6422).
  • Принятие новой спецификации определения версии макроса: https://semver.org.
  • Разделение scheduler.c (#7103).
  • Исправлена проблема оптимизации Oz компилятора AC6 в memheap.
  • Исправлен rt_memset для независимости от размера слова.
  • Изменение RT_ALIGN_SIZE по умолчанию на 8.

Компоненты

  • Добавлены FDT (Flattened Device Tree), TMPFS, CRomFS.

  • Libc: добавлено. Поддержка musl libc.

  • Улучшение поддержки Posix.

  • LWP:

    • добавить дополнительную поддержку системных вызовов;
    • добавить функцию mm (уровень управления виртуальной памятью);
    • улучшить точность часов.
  • Сеть: добавить функцию AF_UNIX.

  • Драйверы устройств:

    • улучшение работы с устройствами: датчики, SPI, I2C, последовательный порт, CAN, USB, CPU_TIME, SDIO, PWM и т. д.

BSP

  • Добавить поддержку RT-Thread Smart для некоторых BSP: D1/D1s, Raspberry, QEMU-VEXPRESS-A9, QEMU-VIRT64-AARCH64, QEMU-VIRT64-RISCV.
  • Добавить файл readme.md компании в каталог bsp.
  • Исправить использование RT_ERROR, RT_EFULL, RT_ENOMEM, RT_EEMPTY и т.д.
  • Добавить новые BSP:
    • Bouffalo_Lab: BL60X, BL70X, BL61X, BL808;
    • Infineon: 062S2, 062S3-4343W, 062S4, 062-WiFi-BT, 062-BLE;
    • Nuvoton: Numaker-IoT-M467, Numaker-M467HJ, Numaker-HMI-MA35D1;
    • NXP: LPC55S16, LPC55S36, LPC55S06, LPC5528, LPC55S28;
    • nRF5XXX: nRF5340;
    • GD32: GD32470Z-LCKF, GD32303C-START;
    • APM32: APM32F030R8-MINIBOARD, APM32F051R8-EVALBOARD, APM32F091VC-MINIBOARD, APM32F103VB-MINIBOARD, APM32F107VC-EVALBOARD, APM32F407ZG-EVALBOARD, APM32F072VB-MINIBOARD;
    • N32: N32G43XCL-STB, N32G457QEL-STB, N32G45XCL-STB, N32G45XML-STB, N32G45XR, N32G45XV, N32140XCL-STB, N321436_EVB, N32143XML-STB, N32143XR, N32WB45XL-EVB, N32G4FRML-STB;
    • MM32: MM32F3270-100ASK-PITAYA;
    • AT32: AT32F421-START, AT32F425-START;
    • STM32: STM32F723-ST-DISCO;
    • Phytium: aarch32, aarch64;
    • Другие: Core-V-CV32E40P, AIR32F103, YS-F1PRO и т. д.
  • Обновить некоторые драйверы BSP для STM32: таймер, ШИМ, UART V2, CAN и т. д.
  • Обновить BSP:
    • QEMU-VEXPRESS-A9: отображать номер версии QEMU при запуске QEMU.
    • TMS320F28379D: исправить проблему запуска, реализовать драйвер ШИМ.
    • Симулятор: исправить предупреждения компиляции симулятора, исправить ошибки компиляции.
    • Raspberry-Pico: добавить SMP.
    • Synopsys: исправить обратные вызовы таймера, исправить синтаксис печати, исправить псевдоним GNU toolchain RTT_CC, использовать RTT_EXEC_PATH для подстановки местоположения инструментальной цепочки.
    • TI/C28X: добавить поддержку, чтобы не отключать глобальные прерывания в контексте переключения для включения нулевых задержек ISR для критических прерываний, добавить GPIO & ШИМ & АЦП, обновить rt_vsnprintf для соответствия с процессорами TI C28x, добавить поддержку создания .project на основе scons.
    • STM32: обновить все проекты BSP.
    • Renesas: добавить функцию segger rtt, добавить поддержку LVGL для TFT-LCD, добавить RA6M4-CPK LVGL для поддержки SPI-LCD и обновить функцию rt_spi_bus_attach_device_cspin, добавить описание подключения контактов TFT-LCD и исправить некоторые ошибки и т. д.
    • Infineon: добавить поддержку capsense, добавить документацию Infineon и изменить структуру файла, обновить драйвер SPI, добавить демонстрацию драйвера слайдера, исправить проблему CS SPI и т. д.
    • NuVoton: изменить RT_WEAK на rt_weak, исправить проблемы сборки NuVoton и т. д.
    • NXP: IMXRT1170 исправить USB, исправить драйвер flexcan, добавить поддержку SDIO. LPC55S69 обновить драйвер PWM. LPC55SXX исправить и восстановить драйвер I2C, добавить драйверы I2S и WM8904, обновить драйверы SPI и PWM и т. д.
    • nRF5xxx: добавить драйвер SPI TWI для nRF5340, исправить Kconfig nRF52832 и т. д.
    • GD32: исправить ошибку в драйвере SPI.
    • APM32: исправить ошибки сборки в файле запуска apm32f0/apm32f1 gcc и ошибку в apm32 drv_eth.c, добавить поддержку серии MCU apm32 F0, добавить драйверы rtt sdio/flash/sdram и т. д.
    • AT32: исправлены ошибки компиляции usb-драйвера, обновлены для включения файла позиции и добавления макросов, оптимизирован код драйвера emac и usart, добавлена поддержка usb-драйверов и т. д.
    • ESP32: ESP32_C3 исправить ошибки/предупреждения компиляции, перейти на пакет ESP-IDF, добавить драйверы I2C. Поддержка ESP32 применяет патч к локальному IDF и т. д.
    • CH32: добавить rt_hw_context_switch_interrupt. CH32V307 добавить драйверы uart/spi/adc/gpio/wdt/dac/can/pwm, обновить readme и т. д.

Libcpu

  • ARM: Cortex-A — отменить инициализацию безопасности MMU, Cortex-M7 — изменить тип возвращаемого значения функции rt_hw_cpu_dcache_ops на rt_uint32_t и т. д.
  • RISC-V: поддерживать память без кэширования, добавить функцию rt_backtrace и т. д.
  • AARCH64: добавить функцию rt_backtrace, остановить, когда страница не свободна.

Инструменты

  • Усовершенствованная функция ci.
  • Добавьте несколько команд scons: scons --exec-path=xxx, scons --exec-prefix=, scons --dist --target=xxx, scons --strict, scons --dist --project-path=xxxx и т. д. Добавить значение по умолчанию 64 бита для размера стека.

Установить HZ по умолчанию равным 1000.

Улучшить rt_kprintf для поддержки типа «long long».

Использовать RT_KSERVICE_USING_STDLIB_MEMXXX для замены RT_KSERVICE_USING_STDLIB_MEMSET и RT_KSERVICE_USING_STDLIB_MEMCP.

Открыть по умолчанию RT_KSERVICE_USING_STDLIB.

IPC:

  • добавить описания для параметров времени ожидания rt_mq_recv и rt_sem_take;
  • исправить имя параметра.

Включить по умолчанию RT_DEBUG_DEVICE и переместить слабый rt_hw_dealy_us в kservice.c.

Обновить скрипты компоновщика Cortex-A для новой версии GCC, удалить инициализацию глобального конструктора C++, этот метод не используется в GCC4.7 и более поздних версиях.

Убрать ключевое слово register.

Переименовать _rt_scheduler_stack_check в _scheduler_stack_check.

Обновить комментарии для rt_thread_suspend.

Исправить комментарий для rt_container_of.

Исправить ошибку таймера.

Удалить исполняемое разрешение thread.c.

Удалить функцию strnlen.

Добавить проверку NULL для rt_free и rt_free_align.

Поддерживать perf_counter.

Ужесточить размер перед проверкой с помощью mem_size_aligned.

Добавить строковую информацию об ошибке.

Устранить проблему переопределения msh команды finsh_set_prompt.

Унифицировать тип данных и определение макросов встроенной и стандартной библиотеки LIBC ядра.

Добавить макрос RT_VERSION_CHECK для реализации проверки версии.

Исправить стиль функции «rt_hw_us_delay».

Исправить логику временного интервала для schedule.c.

Компоненты:

  • driver:

    • детализировать классификацию типов устройств;
    • обновить определение типа устройства и определение команды;
    • добавить ioctl F_SETFL cmd;
    • устранить рекурсию;
    • исправить некоторые предупреждения компиляции.
  • driver/serial_v2:

    • добавить поддержку termios;
    • добавить поддержку аппаратного управления потоком;
    • исправить ошибку модели RT_SERIAL_TX_BLOCKING;
    • добавить rt_assert для serial_v2.
  • driver/sensor:

    • добавить тип датчика артериального давления;
    • добавить RT_SENSOR_VENDOR_MELEXIS в sensor.h;
    • добавить RT_SENSOR_VENDOR_MELEXIS в sensor_cmd.c.
  • driver/spi:

    • удалить _spi_bus_device_control;
    • исправить расширение символа ошибки rt_qspi_send;
    • решить проблему отчёта № 6008 rt_spi_sendrecv8.
  • driver/rtc:

    • настроить входные параметры функции ops;
    • оптимизировать эффективность выполнения;
    • добавить функции получения и установки временной метки;
    • улучшить команду даты;
    • проверить параметр «время»;
    • использовать gmtime_r вместо gmtime.
  • driver/alarm:

    • исправить ошибку недельного будильника;
    • сделать вывод будильника компактным;
    • исправить опечатку.
  • driver/inputcapture:

    • добавить DBG_TAG для rt_inputcapure.c.
  • driver/hwtimer:

    • добавить защиту от прерываний для функции hwtimer_isr.
  • driver/hwcrypto:

    • оптимизировать использование памяти.
  • driver/sdio:

    • поддерживать режим DDR;
    • изменить проблему смещения адреса для чтения и записи sdio.
  • driver/dac:

    • исправить возвращаемое значение функции rt_dac_write;
    • добавить метод получения разрешения.
  • driver/adc:

    • добавить интерфейс для получения разрешения выборки;
    • добавить команду преобразования напряжения;
    • реализовать adc_get_vref.
  • driver/pwm:

    • очистить ненужный код;
    • добавить функцию pwm.
  • driver/usb:

    • исправить ошибки сборки;
    • исправить задержку при управлении передачами;
    • добавить интерфейс для получения информации о состоянии подключения виртуального uart;
    • исправить проблемы usbhost hid.
  • driver/wlan:

    • модифицировать структуру wlan.
  • driver/phy:

    • исправить конфликты PHY_FULL_DUPLEX.
  • driver/can:

    • добавить поддержку CANFD и исправить опечатки;
    • исправить бесконечный цикл can при отправке ошибки драйвером can.
  • driver/hwcrypto:

    • исправить определение возвращаемого значения функции.
  • driver/pin:

    • добавить команды управления выводом в MSH.
  • driver/touch:

    • отрегулировать файл заголовка для touch.h.
  • libc:

    • исправить предупреждения и ошибки компиляции C/C++;
    • улучшить sconscript;
    • исправить проблему sys/select.h;
    • исправить то, что некоторые функции не могут быть найдены в unistd.h;
    • убрать определения, которые «posix/io» не используются;
    • исправить временную ошибку;
    • оптимизировать логику обработки на armcc/armclang;
    • исправить ошибку компилятора на iar;
    • исправить dlmodule compile 'SEEK_END' undeclared eror;
    • логика переработки ресурсов pthread;
    • исправить функцию pthread_barrier_init, которая возвращает «EINVAL», если «count» равен нулю;
    • разрешить конфликты между типами данных libc и rtdef;
    • удалить strdup из... rtthread.h
  • Исправить clock_gettime для CLOCK_CPUTIME_ID.

  • Решить проблему с libc/timer, из-за которой тики операционной системы могут быть рассчитаны неправильно из-за неинициализированной локальной переменной.

  • Реализовать стандартные функции расширения C.

  • Исправить ошибку возврата.

  • Модифицировать ошибку компилятора в IAR.

  • Использовать атомарные операции для защиты условной переменной pthread.

  • Устранить утечку памяти при нулевом значении семафора posix.

  • Исправить проблему, когда функция difftime() компилируется с ошибкой в среде IAR.

  • Функция pthread_mutex_destroy не работает.

  • Риск для функции exit() при открытой поддержке pthread.

  • Дополнить случай, когда exit() не была реализована.

  • Попытаться исправить проблему с функциями «fflush» в armlibc.

  • Заменить __CLANG_ARM на clang.

  • Решить ошибку компиляции для _sys_ensure.

ulog

  • Добавить файловый бэкенд.
  • Оптимизировать ненужное обновление.

sfud

  • Поддержка NM25Q128EVB, GD25Q32C, SST25VF080B, W25Q32BV, W25X16AV, W25X40CL.
  • Изменить способ обработки ситуации, когда блоки защищены флэш-памятью.
  • Привести в порядок макросы.

sal

  • Добавить черновик для стыковки winsock.
  • Переупорядочить зависимости sal.
  • Переименовать sal.h в sal_low_lvl.h.

at

  • Использовать указатель на освобождённую память.
  • Внедрить информацию о «AT server».

lwip

  • Поддерживать симулятор Windows.
  • Добавить команду списка.

finish

  • Исправить сбой list_device.
  • Повысить надёжность системы.
  • Добавить информацию об имеющейся памяти для бесплатной команды.
  • Добавить алгоритм бинарного поиска.
  • Добавить новые функции для получения длины команды finish.

fal

  • Поддержать API fal для C++.
  • Изменить PKG_USING_FAL на RT_USING_FAL.

utest

  • Добавить базовый тестовый пример cpp11.
  • Улучшить силу теста cpp.
  • Добавить структуру теста posix.
  • Добавить тест временного интервала.

ymodem

  • Перенести коды ошибок в rym_code, чтобы отключить предупреждения.

BSP

  • Внимание, список новых добавленных BSP:

    • AT32F413, AT32F415-старт, AT32F435-старт, AT32F437-старт.
    • Cypress-PSOC6-CY8CProto-4343W.
    • ESP32_C3.
    • GD32VF103R-старт, GD32VF103V-eval.
    • HC32F4A0.
    • IMXRT1021-NXP-EVM, IMXRT1170-NXP-EVM.
    • Microchip, SAMC21, SAME54, SAME70, SAML10.
    • N32G45XV-STB.
    • CH32V103R-EVT, CH569W-EVT, CH32F103C8, CH32F203R-EVT.
    • Rockchip-RK3568.
    • STM32F103-100ASK-Mini, STM32F103-100ASK-Pro, STM32WLE5-Yizhilian-LM402.
  • LPC55SXX:

    • Исправить проблему с dist, которая не может указать каталог.
    • Исправить ошибки сборки.
  • STM32:

    • Использовать слабые ссылки для обработки макроса RTDINO_xxxx.
    • Добавить новый BSP для STM32WLE5JCI6.
    • Исправить некоторые ошибки CAN и PWM.
    • Выбрать входной тактовый сигнал SPI на основе экземпляров SPI.
    • Исправить конфликт фильтра CAN.
    • Добавить RTC для OpenMV.
    • Добавить ov5640, DCMI, I2C для OpenMV.
    • Обновить конфигурацию ov5640 для OpenMV.
    • Обновите Arduino.
    • Поддержка STM32F072 Arduino I2C и обновление README.
    • Судить экземпляры SPI перед работой.
    • Исправление проблемы ввода-вывода SDIO и UART6 (TX) DMA.
    • Исправление проблемы при использовании uart DMA для приёма.
    • Удалить аппаратное обеспечение NSS.
    • Включить генератор случайных чисел.
    • Избежать конфликта между CMSIS5 и BSP CMSIS.
    • Добавить поддержку TIM7.
    • F072, F401 поддерживают аппаратные таймеры TIM7/TIM11.
    • L475, удалить бессмысленный заголовочный файл.
    • STM32F407, STM32F469 оптимизировать структуру папок lvgl для симулятора.
    • STM32F746, отменить выбор LWIP и DFS по умолчанию.
    • Удалить папки CMSIS/RTOS.
    • Добавить RTDUINO_NO_SETUP_LOOP.
    • Добавить F_CPU для указания частоты процессора.
    • Поддержите библиотеку MsTimer2.
    • Добавьте правильное описание команд для ADC, PWM.
    • Добавьте поддержку серии STM32L0.
    • Переместите заголовочные файлы CMSIS в общую папку.
    • Добавьте bootloader.bin, добавьте описание загрузчика в README.md для STM32H750-ART-PI.
    • Измените содержимое алгоритмов флэш-памяти в README.md для STM32H750-ART-PI.
    • Исправьте имя устройства консоли STM32F767-ST-Nucleo.
    • Создайте два новых BSP для плат 100ASK STM32F103.
    • Добавьте функцию STM32L496ZG, добавьте встроенное флэш-устройство.
    • Измените название BSP 100ASK на соответствие другим BSP и зафиксируйте ошибку для drv_adc.c.
    • Добавьте H7. Поддержка таймера:
  • реализовать soft SPI;

  • использовать perf_counter вместо hwtimer;

  • поддержка распиновки беспроводного модуля для STM32L475;

  • добавить адаптацию LVGL сенсорного экрана xpt2046 для STM32F407-ATK;

  • стыковка LVGL для STM32F469-ST-DISCO BSP с использованием сенсорного чипа FT6336;

  • адаптация функции будильника RTC;

  • оптимизация функций ШИМ;

  • адаптировать пакет RTduino для STM32F469-ST-DISCO BSP;

  • стыковка драйвера LVGL с использованием пакета для STM32F469-ST-DISCO BSP;

  • адаптировать LVGL для использования модели сенсорного экрана FT6206 для STM32F469-ST-DISCO BSP.

  • WCH:*

  • добавить BSP для CH32V103R-EVT;

  • добавить порт BSP для платы WCH CH569W-R0-1v0 EVT;

  • CH569w-evt: добавить драйвер master SPI, протестирован SPI0;

  • добавить драйвер PWM и исправить ошибку SPI_XFER.

  • GD32:*

  • Добавить BSP для GD32450i-EVAL;

  • завершить определение устройства контактов;

  • драйвер ADC Firx;

  • исправлена ошибка компиляции в rtc: «pmu_backup_write_enable» не найдена;

  • оптимизировать архитектуру BSP GD32;

  • исправить ошибку, связанную с потерей таблицы векторов прерываний, вызывающую системное исключение;

  • добавить драйвер SDIO;

  • исправить номер контакта в drv_gpio.c;

  • исправить ошибку компиляции при использовании RTC в GD32 F1~F4;

  • исправить определённую ошибку UART I/O.

  • Симулятор:*

  • улучшить библиотеку времени libc и симулятор MSVC;

  • решить проблему невозможности подключения SD-карты к симулятору;

  • обновить SDL2.0 до 2.0.20;

  • удалить ненужные файлы отладки;

  • создать новый файл fcntl.h для VS;

  • оптимизировать структуру папок LVGL относительно симулятора;

  • избежать конфликтов между winsock.h и sys/time.h;

  • улучшить структуру Kconfig, добавив меню Onboard Peripheral Drivers;

  • включить сокет BSD по умолчанию;

  • добавить меню RTC;

  • очистить предупреждения компилятора под Windows;

  • оптимизировать логику монтирования SD;

  • удалить определённые вручную LV_DISP_DEF_REFR_PERIOD;

  • реализовать winsock на симуляторе Windows;

  • улучшить процесс инициализации;

  • синхронизировать драйвер win32 LVGL;

  • исправить некоторые предупреждения;

  • устранить проблему с невозможностью найти путь и вызвать сбой;

  • изменить «exit()» на «exit(1)».

  • QEMU:*

  • добавить параметр компилятора «-Werror» для qemu-vexpress-a9 и qemu-virt64-aarch64;

  • добавить краткое руководство по запуску QEMU на macOS;

  • chmod u+x сценарий оболочки для qemu-risc-virt64;

  • удалить определённые вручную LV_DISP_DEF_REFR_PERIOD;

  • переименовать qemu-riscv-virt64 в qemu-virt64-riscv;

  • добавить операцию перемонтирования, чтобы избежать сбоя dfs_mout для qemu-vexpress-a9;

  • не использовать sbi в m-режиме для qemu-virt64-riscv;

  • добавить дополнительные драйверы VirtIO для qemu-virt64-aarch64;

  • исправить размер выравнивания очереди VirtIO для qemu-virt64-aarch64;

  • улучшить readme QEMU;

  • обновить проект QEMU;

  • добавить драйверы VirtIO-Console и GPIO для qemu-virt64-aarch64.

  • Airm2m:*

  • исправить исключение для I2C.

  • N32G452XX:*

  • добавить SPI3;

  • избегать паузы системы при проверке тайм-аута;

  • добавить поддержку аппаратного CRC;

  • обновить информацию о драйвере «can».

  • Microchip:*

  • добавить поддержку серии микроконтроллеров SAM от Microchip;

  • добавить Ethernet, ADC, IIC поддержку;

  • обновить последовательный драйвер для samc21/same54/same70;

  • добавить серию SAML10.

  • NuVoton:*

  • отключить функцию TRNG в конфигурации по умолчанию;

  • обновить конфигурацию nuc980iot;

  • удалить определённые вручную LV_DISP_DEF_REFR_PERIOD.

  • AT32:*

  • добавить платы AT32F435_437;

  • обновить драйвер АЦП AT32F435_437;

  • добавить серии AT32F413 и AT32F415;

  • модифицировать структуру папок;

  • оптимизировать код для улучшения работы сети. Пропускная способность

  • NXP:

    • rt1052 — добавить вход в RT-Thread studio.
    • imxrt1060 — заменить встроенные периферийные драйверы и периферийные драйверы на плате в меню Kconfig.
    • Подготовиться к поддержке squareline studio.
    • Оптимизировать структуру папок lvgl для имитатора imxrt1060.
    • Обеспечить поддержку NXP GUiGuider для imxrt1060.
    • Поддерживать компилятор keil armclang.
    • Поддержка тачпада.
    • Добавить BSP для rt1170/rt1020.
    • Обновить menuconfig для rt1170n.
    • Реализовать стыковку API для rt_pin_get.
    • Исправить сенсорную панель для imxrt1060-nxp-evk.
    • Решить проблемы с загрузкой Qspi flash для mimxrt1170.
    • Оптимизировать «sconsript» в папке «applications».
    • Добавить контакт INT для сенсорного экрана в ioconfig.
    • Во время тестирования GT911 не выходил из сброса, потому что контакт INT не мог быть установлен в низкое или высокое состояние.
    • Обновите SDK для RT1170-EVK до версии 2.12.
    • Устранить небольшую проблему, о которой сообщили в группе Slack для imxrt1060.
    • Удалить специфическую поддержку squareline studio для imxrt1060.
    • Обновить enet для rt1170.
    • Устранить ошибку прерывания GPIO в drv_gpio.c.
    • Сообщить о проблеме форматирования в группе Slack.
    • Переместить драйвер phy в папку drivers.
    • Добавить двойной сетевой интерфейс и драйвер для phy8211F.
    • Добавить драйвер sdram для rt1170.
    • Устранить ошибки компилятора между «rtc.c/rtc.h».
    • Отформатировать файлы для rt1170.
  • Nuclei:

    • добавить нулевой CCFLAGS для BSP Nuclei.
  • Renesas:

    • добавить документацию BSP;
    • добавить BSP RA2L1-CPK;
    • обновить драйвер относительно флэш-памяти, GPIO и головного файла;
    • представить введение в captouch;
    • устранить ошибку в drv_wdt.c;
    • добавить аппаратный драйвер I2C.
  • Essemi:

    • обновить библиотеки es32f36xx;
    • адаптировать es32f369x для RTduino;
    • исправить ошибку I2C и отредактировать некоторые документы;
    • удалить зависимости библиотек для функций rtduino.
  • Esp:

    • добавить BSP esp32c3;
    • добавить драйвер GPIO и readme.md для esp32c3;
    • добавить Kconfig esp32c3;
    • добавить ESP32 UART driver.
  • K210:

    • использовать новые пакеты SDK;
    • изменить структуру папок Kconfig.
  • HC32:

    • добавить BSP серии HC32;
    • добавить драйвер RTC;
    • унифицировать управление таблицей векторов прерываний;
    • пересмотреть файл конфигурации;
    • добавить поддержку USART1/2/3 для hc32f460;
    • добавить поддержку CAN;
    • решить проблему, когда дескриптор для нескольких последовательных портов был перезаписан;
    • добавить виртуальный драйвер IIC;
    • добавить поддержку АЦП;
    • исправить ошибки драйверов АЦП и CAN для HC32;
    • добавить драйвер RTC для hc32f460;
    • поддерживать компилятор MDK AC6;
    • исправить сбой системы, если шина CAN находится в состоянии отключения шины;
    • исправить проблему, при которой фильтр CAN бесполезен;
    • исправить проблему с неработающим прерыванием ошибки;
    • модифицировать предварительную компиляцию для драйверов UART и SPI;
    • добавить информацию о драйвере таймера A;
    • изменить RT_CONSOLE_DEVICE_NAME с «uart» на «uart1»;
    • добавить файл запуска для apm32f4xx;
    • добавить драйвер WDT.
  • Raspberry-Pico:

    • оптимизировать структуру папок lvgl;
    • исправить неточность системного тика.
  • Nuc980:

    • исправить ошибку при перезапуске и получении прерываний, которые не обрабатываются.
  • Rockchip:

    • добавить базовую поддержку rk2108.
  • NRF5x:

    • добавить документ для разработки на rtt-studio.
  • Адаптировать lvgl 8.3.0.

  • N32:

    • добавить N32 BSP;
    • модифицировать драйверы I2C и RTC.
  • FM33LC026:

    • добавить поддержку GPIO;
    • обновить FM33LC0xx_FL_Driver до FL_xxx_v2.3.1.
  • APM32:

    • добавить APM32F407IG-MiniBoard;
    • добавить библиотеку F1xxx для APM32 для APM32F10x_SDK_V1.6;
    • добавить библиотеку F4xxx для APM32 для APM32F4xx_SDK_V1.2.
  • Ifx:

    • добавить плату Cypress CY8CKIT-062S2-43012;
    • добавить устройство hwtimer.
  • Raspi3-32:

    • исправить некоторые ошибки функции '__rt_ffs'.
  • Synwit:

    • добавить SWM341 BSP.
  • TMS320F28379D:

    • обновить .config: выбрать FINSH_USING_SYMTAB;
    • исправить проблемы finsh с использованием таблицы символов.

CPU

  • Arm:
    • добавить инструкции DSB и ISB в конце rt_hw_context_switch_to;
    • исправить предупреждение компиляции;
    • добавить функцию установки исключений;
    • оптимизировать ошибку компилятора;
    • исправить ошибку armclang при включении LTO;
    • исправить чистую ошибку rt_hw_cpu_dcache_ops.
  • ARM/Cortex-M33:
    • добавить Cortex M33;
    • добавить макрос ARCH_ARM_CORTEX_SECURE, чтобы убедиться, что система rtos может работать в безопасном режиме процессора. arm/Cortex-R4
  • Исправить «prefethc abort».
  • Добавить RT_USING_CPU_FFS, чтобы избежать ошибки переопределения относительно "__rt_ffs()".

risc-v/virt64

  • Исправить параметр для вызова handle_trap.

Документ

  • Исправлена документация по ведению журнала в Руководстве по внесению вклада в проект.
  • Обновлён английский стиль кодирования для более идиоматического использования.
  • Пересмотр документа, исправление нескольких грамматических ошибок и редактирование для ясности.
  • Дальнейшее редактирование документации для ясности.
  • Уточнено описание лицензии.
  • Исправлен файл doxygen.
  • Дополнена информация об env document, добавлена информация о menuconfig -s.
  • Обработаны исправления грамматики и формулировок в memory.md.
  • Обновлено в документах at/adc/hwtimer/i2c/pin/rtc/sensor.

Инструменты

  • Устранены ошибки обработки параметров командной строки.
  • CI:
    • обновлены действия с использованием python@v3.
    • добавлен nxp check.
    • обновлена проверка stm32 ci.
    • ограничена организация rt-thread.
  • Авторские права:
    • улучшены авторские права для старых файлов.
  • Scons:
    • отсортирован путь к исходному файлу.
    • Добавлен патч совместимости Python 3.
    • rtconfig.CROSS_TOOL->rtconfig.PLATFORM.
    • Разделено добавление аргументов командной строки.
    • Поддерживается команда scons --target=xmake.
    • Добавлена CMAKE_EXPORT_COMPILE_COMMANDS ON для cmake.
    • добавлена новая опция для создания библиотеки.
  • Readme.md: добавлены версии на немецком и испанском языках.
  • обновлён readme для выбора языков.
  • дополнен путь для scons env.
  • обновлены библиотеки импорта для проекта Eclipse.
  • решена проблема переупорядочения для «include path».
  • разрешено задавать необязательный URL для пакетов через envvar.
  • отформатирован код Python.
  • удалён .sconsign.dblite при очистке scons.

Выпущена версия RT-Thread v4.1.0

Изменения в журнале с момента выпуска версии v4.1.0 Beta

Ядро

  • В src/clock.c добавлен хук для rt_tick_increase.
  • Исправлена ошибка инициализации потока при открытии RT_USING_MODULE.
  • Устранена проблема, из-за которой все таймеры могли останавливаться.
  • Удалено дублирование очистки до 0 в thread.c.
  • Отменены изменения в семафоре.
  • Исправлено предупреждение о 64-битной компиляции.
  • В src/device.c добавлен RT_DEBUG_LOG.

Компоненты

  • ulog:
    • Оптимизирован код для улучшения читаемости.
    • Удалена бесполезная функция объявления о localtime_r.
    • Оптимизирована ULOG_OUTPUT_FLOAT, чтобы не использовать vsnprintf, предоставляемый инструментами цепочки компилятора.
    • Решена проблема интерференции при включении временной метки ulog.
    • Исправлена проблема LOG_HEX без вывода в асинхронном режиме.
  • Драйверы:
    • Разное:
      • Изменено имя ошибки в dac.c.
    • Удалён бесполезный заголовочный файл, чтобы избежать проблемы рекурсии.
    • Добавлен заголовочный файл для предотвращения ошибки компилятора.
    • Открытое использование RT_USING_POSIX_STDIO привело к сбою компиляции serial_v2.
    • Добавлены драйверы имитационной шины SPI на основе драйверов шины SPI.
    • Убрано предупреждение компилятора C99 о ipc/ringbuffer.c.
    • Улучшена структура serial_v2.
  • DFS:
    • При использовании команды list_fd предлагается полный путь.
  • Libc:
    • POSIX:
      • Добавлен включенный заголовочный файл.
      • Добавлен заголовочный файл для предотвращения ошибки компилятора.
      • Добавлено RT_USING_POSIX_SOCKET.
    • исправлена опечатка.
  • Net:
    • Настроена структура папок.
    • LWIP:
      • Интегрирован слой портирования lwip.
      • Интеграция и улучшение lwipopts.h.
      • Добавление последней версии lwip.
  • Utst:
    • Зависимость RT_USING_UTESTCASES.
  • Finsh:
    • Удаление лишнего кода.
    • Исправление ошибки finsh.
  • Fal:
    • Добавление компонента fal.
  • Utilities:
    • Настройка порядка макросов компилятора.
    • Var_export:
      • Замена алгоритма поиска и устранение некоторых проблем.
  • Наведение порядка в именах папок и структуре Kconfig.

BSP и перенос процессора

  • Libcpu:

    • aarch64:
      • rt_hw_trap_irq получает irq вместо iar при использовании gicv2.
      • Отключение irq/fiq при переключении потоков.
      • Добавление поддержки gtimer frq set и stack align.
      • Поддержка gicv3.
    • mips:
      • Исправлен адрес регистра сторожевого таймера в gs232.h.
      • Модификация проблемы, которая не позволяет питать аппаратный сторожевой таймер.
    • arm:
      • Исправление ошибки компиляции syscall_iar.S на основе cortex-m33.
  • Essemi:

    • исправление ошибок.
  • Nuvoton:

    • Обновление конфигурационных файлов и устранение проблемы.
    • Поддержка LVGL.
    • Обновление драйверов и настройка проекта.
    • форматирование кода.
  • Raspberry-Pico:

    • добавление README.md Raspberry-Pico-LVGL.
  • Симулятор:

    • оптимизация автоматической инициализации.
  • Qemu:

    • Vexpress-a9:
      • исправление опечатки в qemu.sh.
  • n32g452xx:

    • добавлен drv_spi.c.
  • At91sam9260:

    • добавлено. Мтднэнд драйвер для поддержки файловой системы «uffs»
  • at32:

    • загрузить пакет прошивки библиотеки bsp версии 2.0;
    • добавить ignore_format.yml.
  • gd32: оптимизировать UART.

  • Добавить Soft spi для gd32303e-eval.

  • ft32: изменить имя включаемых головных файлов.

  • apm32:

    • apm32f103xe-minibroard:
      • добавить проект и драйверы устройств;
      • обновить название картинки в readme;
    • исправить файлы запуска apm32f1.
  • stm32:

    • добавить поддержку pwm6–pwm13;
    • добавить qspi flash и sdio для openmv h7plus;
    • модифицировать ошибку, из-за которой не работает пользовательская конфигурация CRC;
    • stm32f469-st-disco: добавить readme на английском языке;
    • stm32f072-st-nucleo:
      • добавить поддержку arduino;
      • поддержать pwm для arduino;
    • stm32f407-atk-explorer: добавить слово идентификации платы;
    • stm32l475-atk-pandora:
      • обновить папку application/arduino;
      • включить шину i2c4;
      • исправить ошибку при использовании демо LCD;
      • полностью поддержать аналоговый выход (PWM) и аналоговый вход (ADC);
      • поддерживать подсветку с регулируемой яркостью;
    • добавление зависимостей;
    • stm32h750-art-pi: портировать LVGL на ART-Pi с Media-IO;
    • stm32f769-st-disco: исправить неправильные CPPDEFINES и закрыть lwip;
    • добавить stm32f7xx_hal_dsi.c при использовании LTDC/MIPI-DSI;
    • stm32h743-openmv-h7plus: добавить usbcdc для openmv.
  • imxrt:

    • imxrt1060-nxp-evk:
      • добавить BSP для imxrt1060-evk;
      • README_zh.md, led blink;
      • устранить проблему с неработающим gcc.
  • vango:

    • добавить bsp для v85xxp;
    • перенести v85xx и v85xxp в подкаталог vango;
    • удалить дубликаты файлов.
  • acm32f0x0-nucleo: добавить некоторые драйверы.

  • Удалить swm320-lq100 bsp.

  • Добавить ch579m bsp.

  • Добавить air105 bsp.

  • Добавить bsp серии RA.

  • Добавить bsp-ft32.

  • Перенести acm32f0x0-nucleo и acm32f4xx-nucleo в подкаталог acm32.

  • Перенести at91sam9260 и at91sam9g45 в подкаталог at91.

  • Перенести mb9xxx series в подкаталог fujitsu.

  • Перенести lsxx series в подкаталог loongson.

  • Добавить rockchip/rk3568 bsp.

Документация

  • Переместить репозиторий документации в rt-thread.

  • Обновить документацию.

  • Исправить распределение программной памяти — Basic.md.

Инструменты

  • Устранить проблему, когда компилятор кода после RT-Threadv4.0.3 выводит букву «b».

  • Использовать относительный путь для создания CMakefile.txt при использовании команды scons.

  • Разрешить пользователям устанавливать определённые сценарии ссылок.

  • Обновите шаблон для projcfg.ini в rt-studio.

  • keil.py различает LOCAL_CFLAGS/LOCAL_CXXFLAGS, улучшает контроль над файлами.

Выпущена бета-версия RT-Thread v4.1.0

Изменения в журнале с версии v4.0.4

Ядро

  • В rt_show_version обновить год.

  • Улучшить комментарии и проверку параметров.

  • [pm] украсить код.

  • Удалить RT_THREAD_BLOCK.

  • Удалить .init_priority.

  • Обновить примечания.

  • Удалить лишнюю точку с запятой.

  • Заменить все двойные пустые строки на одинарные пустые строки.

  • Некоторые __on_rt_xxxxx_hook из rtdef.h переместить в отдельные файлы c.

  • [kservice] добавить RT_KSERVICE_USING_STDLIB_MEMSET, RT_KSERVICE_USING_STDLIB_MEMCPY.

  • [memheap] исправить потенциальный риск для 64-битных систем.

  • Изменить Kconfig, добавить RT_HOOK_USING_FUNC_PTR.

  • Улучшение методов подключения.

  • Обратная совместимость с существующими методами подключения на основе указателей функций.

  • Использование RT_USING_HOOK в качестве переключателя включения/выключения.

  • Внедрение нового метода подключения с низкими накладными расходами на основе макросов.

  • [include/rtthread.h] Добавить объявления функций, чтобы избежать предупреждений компилятора.

  • ipc init/create добавить оценку флага.

  • Отрегулируйте RT_ASSERT и RT_DEBUG_NOT_IN_INTERRUPT, чтобы сохранить стиль кода.

  • Добавьте новый алгоритм для поиска наименьшего ненулевого бита байта.

  • Добавить слабое определение RT_KSERVICE_USING_TINY_FFS.

  • Упрощённая версия функции rt_ffs.

  • Добавить RT_WEAK для rt_vsnprintf.

  • Измените тип возвращаемого значения с signed int на int в соответствии со стандартами ISO C, чтобы предотвратить ошибки компилятора.

  • Исправьте rt_size_t как rt_uint32_t.

  • Cfg отменяет объявление rt_kprintf.

  • [kservice] добавьте комментарий к возвращаемому значению.

  • Модифицируйте тип rt_size_t.

  • [timer] Обновите код RT_TIMER_CTRL_GET_STATE в rt_timer_control.

  • Исправьте размер .bss в link.lds и установите spsel=1 в aarch64.

  • Удалите дублирующую работу между idle и thread_exit.

  • Когда используется управление памятью memheap, rT_malloc 0 возвращает RT_NULL, что согласуется с алгоритмами slab и small memory management.

  • Выровнять адрес, переданный по... rt_system_heap_init при использовании алгоритма управления памятью memheap

  • Установить rt_thread_timeout в частную функцию.

  • Добавить attribute(...) для rt_kprintf(), чтобы компилятор проверял параметры строки формата.

  • Возвращать ошибку потока при возобновлении по сигналу.

Компоненты

  • libc:

    • Очистить папку POSIX/IO.
    • Переместить libdl в папку posix.
    • Добавить поддержку PSE51.
    • Оптимизировать функцию nanosleep.
    • Добавить RT_USING_POSIX_STDIO для решения проблем компиляции на платформе win32.
    • Удалить getline.
    • Создать папку «posix» и переместить в неё связанные файлы.
    • Поместить getline в папку posix.
    • Оптимизировать структуру posix в libc.
    • Устранить суждения в коде, которые зависят от RT_LIBC_USING_FILEIO.
    • Переместить файлы libc.c/.h в папку posix.
    • Удалить функции gettid и другие, не соответствующие PSE51.
    • Добавить макросы RT_USING_POSIX_SELECT, RT_USING_POSIX_POLL, RT_USING_POSIX_DELAY.
    • Добавить задержку по умолчанию delay.c.
    • Выбрать RT_USING_POSIX_STDIO вместо RT_LIBC_USING_FILEIO.
    • Добавить файл readme.
    • Вернуть kconfig pthread.
    • Переместить mmap в папку src.
    • Реализовать функции задержки как RT_USING_POSIX_DELAY.
    • Исправить ошибку, вызванную двумя разными методами кодирования макросов в fcntl.h.
    • Улучшить функции чтения и записи IAR и KEIL.
    • При добавлении функций памяти добавить предупреждения об ошибках, когда HEAP не включён.
    • Изменить некоторые RT_USING_POSIX на RT_USING_POSIX_DEVIO.
    • Добавить RT_USING_POSIX_FS.
    • Разделить posix на каталог Kconfig.
    • Исправить ошибки _sys_read и _sys_write.
    • Модифицировать time.h в sys/time.h.
    • Добавить аннотацию к функции dataqueue.c.
    • Решить проблемы с утечкой памяти и предупреждениями компилятора armclang Cpp11.
    • Добавить файлы заголовков IPC.
    • Создать папку mman.
  • drivers:

    • Переименовать папку src в ipc.
    • Оптимизировать скрипты для оценки компилятором.
    • Добавить rt_work_urgent.
    • Заменить параметр времени на тики, чтобы избежать неправильного толкования единицы измерения как мс.
    • Улучшить комментарии.
    • [sdio] исправить предупреждение компилятора и оптимизировать код.
    • Переименовать rt_workqueue_critical_work в rt_workqueue_urgent_work.
    • Исправить ошибку сборки sensor_cmd.c.
    • Поддержка cputime 64bit.
    • Обновить поддержку cputime_cortexm.c 64bit.
    • Добавить IPC для POSIX и добавить канал для него.
    • [components] обновить фреймворк.
    • Добавить аннотацию функции waitqueue.c.
    • Исправить предупреждение компилятора в cdc_vcom.c.
  • lwip:

    • Улучшить поддержку lwip для 64-битной архитектуры.
    • Удалить lwip 2.0.2.
    • Исправить ioctl и определения сокетов lwip.
    • Изменить аннотацию для sys_arch_mbox_tryfetch.
    • Исправить возвращаемое значение для sys_arch_mbox_fetch в стеке lwip.
    • Исправить dhcpd, не включая версию 2.0.3.
    • Определить RT_USING_BIG_ENDIAN для долгосрочной версии.
    • Команда ping с указанной netif в lwip-2.1.2.
    • Исправить sys_arch.c.
    • Разрешить конфликт между несколькими BYTE_ORDER(s).
    • Исправить проблему неявного объявления для «lwip_ip4_route_src».
  • dfs:

    • Перенести dfs_posix.h в legacy/dfs/dfs_posix.h.
    • Перенести файлы dfs_posix, dfs_poll и dfs_select.c в папку posix.
    • Удалить файлы dfs_select.h и dfs_poll.h.
    • Обновить fatfs до последней версии.
    • Сохранить файлы dfs_poll.h и dfs_select.h, добавить журнал предупреждений.
    • Удалить RT_USING_LIBC из dfs_fs.h.
    • Вернуть dfs обратно.
  • Shrink pThread to POSIX. Change DFS from POSIX to POSIX from DFS.

  • Отрегулировать зависимость SAL.

  • Внедрить устаревшую поддержку.

  • Изменить RT_USING_POSIX_STDIO на RT_USING_POSIX_DEVIO.

  • Добавить ограничения определения макроса к вызовам устройства finsh set.

  • shell:

    • Обновить список команд list_timer.
    • Обновить формат кода.
  • kservice:

    • Оптимизировать RT_PRINTF_LONGLONG, уменьшить дублирование кода.
    • Упростить RT_PRINTF_PRECISION.
    • Исправить проблему сбоя rt_strlen в win32.
  • [kernel] Сортировка Kconfig.

  • [ulog] Добавить фильтр бэкэнда ulog.

  • [posix] Организовать категории ввода-вывода в соответствии с передовым программированием среды Unix.

  • Добавить функцию creat().

  • [Ymodem] тихие предупреждения.

  • Использовать rt_memcpy и rt_memset вместо memcpy и memset.

  • Исправлена ошибка AT-компонента в режиме CLI: команда ввода слишком длинная, что приводит к выходу массива за границы.

  • [example] Удалить RT_USING_TC.

  • Исправить утечку памяти armclang Cpp11 и проблемы с предупреждениями компиляции.

  • Улучшить и добавить комментарии в examples/network/, включая tcpserver.c.

BSP и перенос процессора

Fix "rt_interrupt_dispatch" Undefined error

  • Добавить портирование энкодера импульсов на imxrt1052.

libcpu

  • Решить проблему смешивания табуляции и пробелов.
  • [arm] Исправить ошибку синтаксиса набора инструкций thumb.
  • [aarch64] Добавить поддержку smp.
  • [nuclei] Исправить переключение контекста в nuclei.
  • Исправить проблему с s-режимом.
  • [t-head] Исправить ошибки rt_hw_interrupt_disable/rt_hw_interrupt_enable.
  • Добавить ARCH_CPU_BIG_ENDIAN.

Добавить и обновить gd32 bsp

  • gd32103c-eval.
  • gd32105c-eval.
  • gd32107c-eval.
  • gd32303e-eval.
  • gd32450z-eval.
  • gd32105r-start.
  • gd32205r-start.
  • gd32305r-start.

Обновить n32g452xx

  • Переустановить .config на основе настроек по умолчанию.
  • Восстановить rtconfig.h на основе конфигурации по умолчанию.
  • Изменить формат кода.
  • Обновить init.
  • Добавить поддержку rt_pin_get.
  • Добавить драйвер can для n32g45x.
  • Унифицировать определение заголовочных файлов. «GPIO_H__» заменить на «DRV_GPIO_H», «USART_H» — на «DRV_USART_H».
  • В drv_pwm.c исправить значение переменной, чтобы оно соответствовало определению интерфейса RT-Thread.
  • Добавить поддержку UART4/UART5.
  • В drv_gpio.c заменить «N32F10X_PIN_NUMBERS» на «N32G45X_PIN_NUMBERS».
  • Доработать драйвер АЦП и формат кода.
  • Включить поддержку ble.
  • Устранить проблемы с форматированием.
  • Удалить ненужные комментарии.
  • Добавить ввод gpio без подтягивающего резистора.
  • Добавить проверку версии rtc.
  • Использовать структуру прямого доступа at32 для n32g452xx.

Nuvoton

  • Поддержка LVGLv81 RTT music demo для N9H30 и NUC980.
  • Обновление драйверов.
  • [N9H30/NUC980] Обновить драйвер SDH.
  • Исправить функцию SDH_Set_clock.
  • Скорректировать опции EMMC, SDH0 и SDH1 для N9H30.
  • Решить проблемы с прерываниями IRQ.
  • Обновить драйверы и конфигурации портирования.

[raspberry-pico] Добавить поддержку lvgl_8.1.0.

Симулятор

  • Разрешить предупреждение о том, что опция «Gm» была отклонена и будет удалена в будущем выпуске.
  • Очистить предупреждение под vs.
  • Обновить проект.

gd32

  • Отремонтировать startup_gd32f30x_cl.s.
  • Удалить проблемный rtconfig.h.
  • [console] Исправить ошибку при использовании устройства без определения RT_USING_DEVICE.
  • Заменить __CLANG_ARM на clang.

Обновление essemi bsp

  • es32f0654.
  • es32f369x.
  • es32f365x.

[nuclei] Изменить hbird_eval bsp на nuclei_fpga_eval.

  • Увеличить возможности поиска рекурсии в скрипте sconscript в папке приложения.
  • [Vango V85xx] Заменить NULL на RT_NULL.
  • Решить проблему компиляции для qemu-riscv64.
  • Обновить K210 bsp и основываться на https://github.com/kendryte/K210-Micropython-OpenMV.

[lpc55s69_nxp_evk]

  • Исправить scons --dist.
  • Добавить фиксированную версию gcc.
  • Добавить ci machine.

Исправление ошибок в 'BSP /Copyright notice.md'.

nrf5x

  • Добавить исправленный lds.
  • Добавить драйвер hwtimer.
  • Добавить конфигурацию hwtimer & tinyusb.
  • Исправить ошибку драйвера i2c.

Удалить bsp nrf51822.

  • Добавить tkm32f499 bsp и приложение flash_download.
  • Удалить пустой rt_hw_us_delay.
  • [at32] Оптимизировать алгоритм индекса вывода.

ra6m4

  • Организовать конфигурацию проекта.
  • Добавить драйверы DAC, ADC и SPI.
  • Форматировать код в соответствии со стилем.
  • Добавить документацию по драйверам Flash, SPI, Flash, ADC, DAC.
  • Добавить драйвер PWM.
  • Исправить неправильные макросы зависимостей в скриптах scons.
  • Исправить ошибки в коде.
  • Уточнить описание ошибок в документации.

MAX32660-EVK

  • Обновить инструкцию по карте выводов.
  • Добавить карту выводов MAX32660-EVK.
  • drv_soft_i2c.c не было в библиотеках.
  • Удалить drv_soft_i2c.c, поскольку он не используется.

bluetrum

  • Добавить поддержку flash.

ra6m4-cpk

  • Добавить поддержку сборки gcc.

stm32

  • Исправить соответствие драйвера USB STM32 версии библиотеки hal.

  • Добавить sdram для openmv в stm32h743-openmv-h7plus bsp.

  • Добавить tinyusb для драйвера stm32.

  • Добавить bsp для stm32g474-st-nucleo.

  • Добавить bsp для stm32u575-st-nucleo.

  • Добавить bsp для stm32l552ze-nucleo.

  • [gcc] Исправить стек 0, расширить стек до 0x400 (так же, как Keil IAR).

  • Изменить имя переменной p_tm на tm.

  • Добавить LOW_E для Error_Handler в drv_common.c.

  • Добавить i2c config для bsp stm32l496-st-nucleo.

  • Для серии STM32F4 настроить CAN в соответствии с различными частотами шины ABP1.

  • Улучшить SPI-драйвер STM32H7 с использованием DMA.

  • Добавить алгоритм загрузки ART-PI для BSP.

  • Добавить музыкальную демонстрацию lvgl для bsp stm32f469-st-disco.

  • Обновить с помощью dma2d, экран обновляется в среднем 25 кадров в секунду для bsp stm32f469-st-disco.

  • Добавить esp8266. Опция конфигурации захвата

  • Добавить SOC_SERIES_STM32G0 для использования «stm32_wdt.hiwdg.Init.Window = 0x00000FFF», иначе сторожевой таймер всегда сбрасывает систему.

  • Исправить проблему с флэш-памятью серии STM32L4, которая не стирается при первой загрузке программы после скачивания.

stm32l475-atk-pandora

  • Определить контакты АЦП и ШИМ.
  • Реализовать предварительную совместимость с Arduino.
  • Добавить lcd_fill_array().
  • Добавить lvgl demo.
  • Включить SPI3-DMA2 для ЖК-дисплея.
  • Улучшить kconfig платы.
  • Решить проблему, когда скрипт sconscript в папке платы не продолжал сканирование подпапок.
  • Усовершенствовать структуру sconscript.
  • Добавить опцию быстрой сборки ESP8266, драйвер последовательного порта изменён с V2 на V1.
  • Исправить предупреждения компилятора на платформе qemu-vexpress-a9 (-Wimplicit-function-declaration).
  • [qemu-a9] добавить поддержку lvgl.
  • [исправление] Сконфигурировать скорость передачи данных в соответствии с различными частотами APB1. Только для серии f4.
  • Обновить Kconfig для qemu.
  • Исправить ошибку записи драйвера GPIO на Raspi3.
  • [ls1cdev] увеличить размер стека, чтобы избежать переполнения при загрузке.
  • [rp6m4-cpk] Добавить новые драйверы и улучшить BSP.

Инструменты

  • CI

    • Оптимизировать время срабатывания AutoTestCI.
    • Добавить инструменты тестирования scons.
    • Добавить CI для nrf5x.
    • Использовать ссылку на GitHub для загрузки цепочки инструментов CI.
  • Исправить ошибку с отсутствующими скобками в eclipse.py.

  • Изменить ccflags на cflags, добавить LOCAL_CCFLAGS, LOCAL_CLFAGS, LOCAL_CXXFLAGS.

  • Устранить ошибку генерации файла .project.

  • Удалить неиспользуемый файл 1.txt.

  • Обновить buildbot.py.

  • Исправить добавление пустых списков и пустых строк.

  • Добавить функцию автоматического обновления rtconfig.h.

RT-Thread v4.0.4 выпущена

Изменения в журнале с версии v4.0.3

Ядро

  • Обновить политику автоматической привязки memheap.
  • Удалить функцию rt_thread_exit.
  • Улучшить аннотации API и комментарии к коду.
  • Стандартизировать внутренние имена функций.
  • Добавить рецессивное определение RT_USING_ASM_MEMCPY в Kconfig.
  • Добавить параметр RT_PRINTF_LONGLONG в Kconfig, по умолчанию не выбран.
  • Очистить поддержку для RT_PRINTF_LONGLONG в kservice.c.
  • Исправить поддержку RT_PRINTF_LONGLONG по умолчанию в 64-битном режиме.
  • Решить проблему невозможности ответа FINSH на ввод через последовательный порт в многоядерном режиме.
  • Оптимизировать комментарий для ipc.
  • Настроить код для поддержки использования процессора.
  • Отрегулировать структуру кода обработки исключений для поддержки функции обратной трассировки.
  • Удалить функцию mutex RT_IPC_FLAG_FIFO.
  • Удалить switch_to_sethook.
  • Добавить ресурсы, освобождённые в режиме ожидания.
  • Заменить defined(__CC_ARM) || defined(__CLANG_ARM) на ifdef __ARMCC_VERSION.
  • Исправить ошибку комментария для rt_mutex_detach().
  • Удалить оператор rt_sscanf.
  • Добавить RT_WEAK для rt_malloc_align,rt_free_align.
  • Изменить механизм защиты кучи памяти с FIFO на PRIO.
  • Удалить исправление ошибки инверсии приоритета мьютекса.
  • Добавить volatile к переменной rt_tick, чтобы предотвратить проблемы оптимизации компилятора.
  • Сохранить атомарность вызовов функций хуков задач в режиме ожидания.
  • Исправить сбой после включения оптимизации Oz на ac6.
  • Защитить критическую секцию rt_tick_increase.
  • Добавить функцию rt_mutex_trytake.
  • Повысить стабильность ядра.
  • Удалить зависимости C99.
  • Добавить условную компиляцию для функции _has_defunct_thread.
  • Уточнить контекст.
  • Добавить команду управления временем в микросекундах.
  • Исправить ошибку в комментарии к функции rt_memset().
  • Удалить функцию rt_device_init_all().
  • Скорректировать определения драйверов графических устройств.
  • При отмене подписанного сравнения следует продолжать использовать неподписанные сравнения.
  • Исправить ошибку компиляции при использовании функции LOG_HEX(...), но RT_USING_ULOG не определено.

Компоненты

  • Поддержка armclang.
  • Оптимизация системы для поддержки GCC.
  • Обновление Libc
    • Создать папку gcc и объединить новые папки lib и partial.
    • Оптимизация системы для поддержки GCC.
    • Исправление системной функции поддержки.
    • Исправление возвращаемого значения asctime_r.
    • Понизить действие вызова printf перед инициализацией libc до уровня предупреждения.
    • Заменить dfs_select.h стандартным sys/select.h.
    • Макроопределение RT_LIBC_USING_TIME остаётся после включения RT_USING_LIBC.
    • Оптимизация определения fcntil.h.
    • Исправить оптимизацию syscall для включения minilibc в файл syscalls.c.
    • Перестроить _libc_init_array, чтобы предотвратить сбой запуска чипа под GCC. RT_DEVICE_CTRL_RTC_GET_TIMEVAL и RT_DEVICE_CTRL_RTC_SET_TIMEVAL

Функции RT_DEVICE_CTRL_RTC_GET_TIMEVAL могут получать время в секундах и микросекундах.

  • Изменить имена файлов core.c/.h на rtc.c /.h.
  • Обновить имя функции rt_rtc_dev_register на rt_hw_rtc_register.
  • Заменить имя localtime на localtime_r.

[ethernetif]

  • Заменить rt_memcpy на SMEMCPY.

[sdio]

  • Удалить rt_mmcsd_blk_init.

Обновление времени

  • Устранить проблему, когда функции POSIX не были защищены для критических разделов.
  • Скорректировать логику оценки функций, связанных с POSIX, для получения результатов по времени.
  • Переименовать нестандартные функции liBC и изменить определение time.h.
  • Вернуть старый код.

Устранение ошибки инициализации sem в pthread

  • Исправить ошибку инициализации MMC, записать card->csd как card->cid.

Обновление последовательного порта

  • Добавить управление потоком CTS/RTS.
  • Реализовать функцию получения размера окна (TIOCGWINSZ).
  • Оптимизировать предварительную компиляцию RT_USING_POSIX_TERMIOS.
  • Поддержка последовательной версии 2 (serial_v2) функции устройства.
  • Устранить проблемы с обратным вызовом при закрытии последовательного порта.
  • Оптимизация отправки неблокирующих данных при закрытии serial_close.
  • Разделить обработку DMA и вызов API интерфейса последовательного порта.
  • Добавлена последовательная версия 2 и драйвер последовательного порта на основе STM32.
  • Поддержка функции device ops для последовательной версии 2.
  • Устранение проблемы с командой RT_DEVICE_CTRL_CLOSE при закрытии последовательного устройства независимо от конфигурации DMA.

Обновление LWIP

  • Устранить ошибку защиты критического раздела в LWIP.
  • Установить стек по умолчанию для старой папки bsp.
  • Сменить стек по умолчанию на lwip2.0.3.
  • Удалить ненужный код.
  • Функция «event_callback» будет изменена на RT-Thread dfs.
  • Отрегулировать положение string.h.
  • Предоставить LWIP_TIMEVAL_PRIVATE из <sys/time.h>.
  • В LWIP2.0.2 и 2.1.2 удалить ERRNO.
  • Удалить ESHUTDOWN из LWIP.
  • Исключить возможные риски критической зоны.
  • Тест скорости Iperf стал стабильным.
  • Проблема переполнения потока rx в почтовом ящике lwip.

[pm] Индекс должен быть меньше PM_MODLUE_MAX_ID.

[cputime] Добавить sys/errno.h.

Обновить msh

  • Реализовать команду tail.
  • Исправить переполнение памяти в оболочке msh_exec.

Обновить dfs

  • Функции F_GETFL/F_SETFL должны обрабатываться драйверами.
  • Изменить максимальное количество и тип файловой системы по умолчанию на 4.
  • Добавить файл format_ignore, исключить проверку формата fatfs.
  • Добавить комментарии для _device_fs.

Обновить ymodem

  • Изменены условия включения YMODEM USING FILE TRANSFER.
  • Проверить законность пути к файлу команды «sy».

Добавить новый компонент: rt-link.

[net]

  • Включить функцию установки статуса [интернет вверх], активировать обратный вызов.

Удалить uip.

Обновить ulog

  • Использовать gettimeofday для получения метки времени.
  • Исправлена проблема отображения информации о потоке при запуске ядра.
  • Увеличить время проверки usec.
  • Добавить API блокировки вывода.

Обновить FatFs

  • Защита мьютекса может быть установлена с помощью Kconfig.
  • Исправлено условие открытия функции, зависящей от времени.

BSP и перенос процессора

Поддержка armclang.

[stm32h750-artpi-h750] Завершить BSP.

[ls2k] Исправить отсутствующие файлы заголовков приложений.

[AT32] Завершить BSP.

Добавить определение макроса _CRT_DECLARE_NONSTDC_NAMES=0 в bsp симулятора.

Обновить проект и удалить rtlibc и повторяющиеся определения в bsp симулятора.

Обновите libcpu

  • Модифицирован интерфейс обработки прерываний irq rt_hw_trap_IRq для поддержки межъядерной обработки прерываний IPI.
  • Добавьте интерфейс dcache invalidate/dcache clean&invalidate.
  • Настроить stack_top на bss.
  • Удалить gtimer/pmu из cortex-a.
  • Восстановить ошибку возврата жёсткого сбоя.
  • Включить реализацию _rt_FFS при определении макроса RT_USING_CPU_FFS в Cortex-A.
  • Добавить интерфейс для получения частоты общего таймера Cortex-A Generic Timer.
  • Добавить код контроллера прерывания GICV3, обновить параметры конфигурации MenuConfig в utest config.h.
  • Привести в порядок код запуска cortex-a aarch32.
  • Исправить ошибки компиляции драйвера RTC.
  • добавить интерфейс gic&gtimer.
  • Оптимизировано условие автоматического включения FPU, если cortex-A не определяет исключение.
  • Исправлены несоответствия в поведении функций при разных уровнях оптимизации.
  • Коррекция cortex-m23 rvds.S включая for. armclang platform
  • Исправить симулятор:

    • исправить ошибку компиляции в файле sd_sim.c, используя rt_dgb вместо старого вывода отладки;
    • обновить проект и удалить rtlibc и повторяющиеся определения;
    • добавить определение макроса _CRT_DECLARE_NONSTDC_NAMES=0.
  • Исправить stm32f407-explorer:

    • оптимизировать настройки fal;
    • обновить readme;
    • реализовать конфигурацию ESP8266 в меню драйвера расширенного модуля;
    • оптимизировать систему именования файлов конфигурации Kconfig, адаптировать регистрацию имени SFUD w25Q128, чтобы пользователи не могли устанавливать более одного шага имени.
  • Добавить больше BSP на платформе BSP framework:

    • VangoV85xx;
    • hc32l136;
    • ap32f103xe-miniboard;
    • gd32407v-start;
    • mm32f103x;
    • ch32f103c8-core;
    • n32g452xx;
    • hc32l196;
    • hc32f460petb;
    • gd32f105c-eval;
    • nrf52833;
    • hc32f030c8t6-mini;
    • fm33lc0xx;
    • stm32l4r9-st-sensortile-box;
    • stm32f302-st-nucleo;
    • mm32f3270;
    • stm32f407-robomaster-c;
    • qemu-riscv-virt64;
    • gd32350r-eval;
    • stm32f407-armfly-v5;
    • juicevm;
    • stm32f207-st-nucleo;
    • m2354.
  • [ch32f103c8-core] переименовать функции: ch32f1_hwtimer_clock_init, ch32f1_hwtimer_clock_get.

  • Исправить thread-smart:

    • поддерживать процессоры серии T-HEAD Xuantie-E9xx на Smart-EVB, например E906/F/D/P, E907/F/D/P;
    • форматировать код;
    • добавить поддержку QEMU и оптимизировать код для расширения thead.
  • [mm32f327x] исправить ошибку пути к файлу .ignore_format.

  • [hc32f4a0] исправить синтаксические ошибки в скриптах scons.

  • [x86] включить romfs.

  • Заменить gmtime на gmtime_r.

  • [swm320-lp100] обновить библиотеки.

  • [ft2004] добавить поддержку gtimer и исправить проблемы с инициализацией драйвера can.

  • Исправить bluetrum:

    • оптимизировать драйвер uart;
    • исправить ошибки сборки RTC; — добавить оценку RT_USING_CONSOLE.
  • [nrf52x] оптимизировать drv_wdt.c.

  • [mm32f327x] добавить драйвер флэш-памяти на кристалле.

  • [imxrt1064-nxp-evk] улучшить I2C, UART, LCD kconfig, исправить функцию i2C imXrT_i2C_mST_xfer, которая записывает адрес перед чтением данных.

  • [w60x] исправить недоступность функции UART1.

  • [gd32450z-eval] обновить библиотеку прошивки и удалить коды библиотек, связанных с usb.

  • [raspi4-32] обновить raspi4-32 eth drv.

  • [bluetrum] исправить невозможность получения данных uart1 и uart2.

  • Исправить STM32:

    • внедрить драйвер rtc в структуру RTC версии 2.0;
    • увеличить irq_type в конфигурации spi;
    • исправить ошибки инициализации библиотеки драйверов USBH;
    • добавить операции timeval для платформы STM32 для субсекундной временной метки.
  • Удалить BSP из платформы BSP framework:

    • realview-a8;
    • fh8620;
    • gkipc;
    • stm32f20x;
    • efm32;
    • zynq7000;
    • stm32f1.0-mini-sysytem.
  • Исправить ошибку неиспользованного фрейма устройства.

  • Обновить лицензию GPL до Apache-2.0 и отформатировать файлы.

  • Исправить неправильную настройку длины слова при включённой проверке чётности на последовательном порту STM32.

Инструменты

  • Поддержка инструмента cmake для Windows.
  • Оптимизация использования переменной EXTERN_LIB.
  • Обновление проекта eclipse после dist.
  • Добавление имени и пути проекта по умолчанию при использовании --dist-ide.
  • Решение проблемы с ошибкой при открытии menuconfig после того, как проект был распределён.
  • Обновление cmake.py, добавление поддержки C++ и libpath.
  • Поддержка Python 3.
  • Обновление eclipse.py для совместимости с задачами.

RT-Thread v4.0.3 Change Log

Изменения со времени версии v4.0.2

Ядро

  • Добавить глобальный макрос RTTHREAD.
  • Добавить параметры пользовательской кучи.
  • Исправить ошибку rt_memheap_detach.
  • Добавить rt_memory_info() для memheap.c.
  • Добавить API rt_object_get_length/rt_object_get_pointers.
  • Исправить двойное освобождение потока.
  • Исправить проблему управления потоком о команде RT_THREAD_CTRL_CLOSE.
  • Избежать взаимоблокировки (rt_hw_interrupt_disable и rt_enter_critical при включении smp).
  • Исправить проблему с определением ready_table pcpu при многоядерной rt_schedule_remove_thread.
  • Исправить проблему, когда операция yield не может освободить процессор вовремя.
  • Исправить сбой итератора для проверки тайм-аута списка softtimer.
  • Исправить rt_timer_list_next_timeout для многозадачности.
  • Добавить функцию запроса рабочего состояния таймера для программного таймера.
  • Исправить программную проблему, когда системный поток таймера находится в состоянии ожидания.
  • Исправить обработку таймера/программного таймера, если функция тайм-аута запускает/останавливает/удаляет этот таймер.
  • Исправить проблему с тем, что rt_timer_start не работает и разрушает список таймеров.
  • Исправить проблему, связанную с тем, что связанный список всё ещё монтируется, когда одиночный таймер не изменяется.
  • Добавить функцию rt_tick_get_millisecond().
  • Исправить задержку_до. Платформ:
  • [Allwinner_Tina] — исправить ошибку драйвера SPI.
  • [SmartFusion2] — поддержка семейства FPGA Microsemi SmartFusion2.
  • [IMXRT] — добавить конфигурацию Ethernet для IMXRT1064-NXP-EVB.
  • Добавить поддержку архитектуры SPARC-V8 и SOC BM3803.
  • [Libc] — libc добавляет функции getline/getdelim (posix.1-2008).
  • Добавить поддержку аппаратного FPU MCU C28x.
  • [AT32] — добавить поток обнаружения связи для драйвера Ethernet.
  • Исправить параметр сборки GCC в rtconfig.py для IMXRT1064-NXP-EVK.
  • [IMXRT] — исправить scons —dist в IMXRT BSP.
  • [LS2KDEV] — начальный драйвер GPIO без поддержки IRQ на LS2KDEV.
  • Оптимизировать процесс обработки дескриптора BSP dist.
  • [NRFX] — добавить QSPI_FLASH от Nordic PDK.
  • [NFR5X] — добавить BSP NRF5X, который поддерживает UART, SPI, PWM, ADC, драйверы устройств I2C и RTC.
  • [NRFX] — добавить встроенную флэш-память для NRF5x.
  • [RISC-V:K210] — добавить поддержку UART1–3 для K210.
  • [Nuclei] — добавить поддержку процессора Nuclei RISC-V.
  • Обновить BSP для mini2440.
  • Добавить таймер SOC CNTPCT.
  • LPC55S69: добавить поддержку проекта NS и TFM на LPC55S69.
  • Заставить MicroPython работать на Raspi3-64 BSP.
  • Добавить rt_hw_us_delay для W60x.
  • [IMXRT] [драйвер] — добавить драйвер устройства USB.
  • Устранить неполадки raspi4-32:
    • добавить: драйвер DMA, драйвер BSC, драйвер DSI LCD/сенсорного экрана, драйвер Waveshare SPI LCD/сенсорный экран, драйвер сторожевого таймера, драйвер HDMI, драйвер SDIO, прерывание GPIO;
    • исправить: драйвер Ethernet, драйвер SPI, драйвер UART.

Добавить больше BSP в структуру BSP:

  • AT32/AT32F403A-START.
  • AT32/AT32F407-START.
  • BLUETRUM/AB32VG1-AB-PROUGEN.
  • BM3803.
  • CYPRESS/PSOC6-PIONEERKIT_MODUS.
  • ESSEMI/ES32F0271.
  • ESSEMI/ES32F369X.
  • ESSEMI/ES32F0654.
  • LPC55SXX/LPC55S69_NXP_EVB_NS.
  • LS2KDEV.
  • NRF5X.
  • Nuclei/GD32VF103_RVSTAR.
  • Nuclei/HBIRD_EVAL.
  • NUOVOTON/NK-980IoT.
  • NUOVOTON/NUMAKER-IoT-M487.
  • NUOVOTON/NUMAKER-PFM-M487.
  • RASPI2.
  • RASPI3-32.
  • RASPI3-64.
  • RASPI4-32.
  • RASPI4-64.
  • SMARTFUSION2.
  • THREAD-SMART.
  • TM4C123 BSP.
  • ZYNQMP-R5-AXU4EV.

Добавить больше STM32 BSP на основе новой структуры STM32 BSP:

  • STM32L431-BEARPI.
  • STMF103-BLUE-PILL.
  • STM32F103-ONE-NET-NBIO.
  • STM32F410-ST-NUCLEO.
  • STM32F411-ATK-NANO.
  • STM32F413-ST-NUCLEO.
  • STM32G070-ST-NUCLEO.
  • STM32H747-ST-DISCOVERY.
  • STM32L010-ST-NUCLEO.
  • STM32L412-ST-NUCLEO.
  • STM32L433-ST-NUCLEO.
  • STM32L496-ST-NUCLEO.
  • STM32MP157A-ST-DISCOVERY.
  • STM32MP157A-ST-EV1.
  • STM32WB55-ST-NUCLEO.

Новая структура STM32 BSP:

  • добавить DCMI, OV2640 и драйвер SD-карты для STM32H743;
  • исправить ошибку, которая приводила к сбою системы при изменении run_mode в режиме низкого энергопотребления;
  • устранить проблему при использовании GCC для компиляции чипов серии G4, но чип не работает;
  • drv_flash_f7.c поддерживает режим одного банка;
  • добавить драйвер SRAM для STM32F103-ATK-WARSHIPV3;
  • обновить void HAL_Delay(__IO uint32_t Delay);
  • добавить PWM9_CONFIG по умолчанию и TIM3_CONFIG по умолчанию;
  • [STM32F103-ATK-WARSHIPV3] добавить драйвер SD-карты;
  • добавить английский файл readme для STM32;
  • добавить DAC и CAN-драйвер для STM32L4 и STM32F4;
  • драйвер openamp и добавить RS485 для STM32MP157A;
  • оптимизировать алгоритм определения контактов;
  • [STM32F769-DISCO] поддержка устройства Ethernet;
  • добавить поддержку C++;
  • исправить проблему конфигурации часов аппаратного таймера STM32;
  • настроить конфигурацию приоритета прерываний некоторых периферийных устройств серии BSP STM32;
  • исправить ошибку RTC серии f1;
  • поддержка SPI/ADC/TIME на чипе периферийного драйвера;
  • [STM32H743-ATK-APOLLO] поддержка UART DMA STM32h7;
  • добавить поддержку pcf8574 и uart2 для STM32H743-ATK-APOLLO;
  • поддержка pcf8574 и uart2(485) для STM32H743-ATK-APOLLO;
  • обновление bsp/stm32/stm32h743-st-nucleo;
  • исправление ошибки конфигурации канала АЦП для SMT32F0/L0/H7;
  • добавление поддержки встроенного AP6181;
  • устранение проблемы UART DMA TX;
  • добавить поддержку PM с помощью инструмента cubemx для STM32L4;
  • добавить драйвер SRAM STM32f407-atk-explorer;
  • исправить инициализацию таймера PWM относительно pwm;
  • [STM32F103-ATK-WARSHIPV3] добавить драйвер SD-карты.

Инструменты

  • добавить поддержку C++ для целевой платформы Eclipse;
  • сохранить конфигурацию пользователя при запуске —target=eclipse;
  • добавлять библиотеки при выполнении scons --dist;
  • обновлять tools/building.py и добавить tackanalysis опцию;
  • улучшить логику генерации файлов rtconfig.h в scons с командой scons —menuconfig;
  • исправить makeimg.py. dhcpd_stop() интерфейс;
  • Изменение журнала в структуре драйвера устройства:
    • Рефакторинг структуры аудиодрайвера;
    • Исправление проблемы, из-за которой длина приёма равна 0 в CAN, и проблемы с возвратом неправильных значений;
    • Добавление структуры драйвера аппаратного шифрования и дешифрования;
    • Устранение проблемы обработки флагов в функциях rt_i2c_master_send/rt_i2c_master_recv;
    • Добавление структур драйвера ввода данных и кодирования импульсов;
    • Решение проблемы удаления блокировки раздела при rt_mmcsd_blk_remove;
    • Решение проблемы превышения диапазона данных при перечислении ёмкости карты большой ёмкости в MMC/SD;
    • При инициализации устройства SDIO также можно использовать информацию в CIS для функций производителя и продукта;
    • Улучшение обработки режима прерывания в структуре датчика и решение проблемы невыпуска памяти при регистрации датчика;
    • Предоставление дополнительной информации в командной строке структуры датчика;
    • Проверка размера буфера RX в структуре последовательного порта и уведомление о переполнении буфера RX;
    • Замена старого драйвера Nor SPI Flash на компонент SFUD в структуре SPI;
    • Исправление некоторых проблем с суждениями в возвращаемом значении SFUD;
    • Определение предупреждения определения SFUD_FLASH_DEVICE_TABLE в SFUD;
    • Поддержка устройств W25Q64DW в SFUD;
    • Обработка отказа создания FiFo при создании канала;
    • Решение проблемы преждевременного освобождения RBB в функции rt_rbb_destroy();
    • Переименование нового ключевого слова C++ в функции rt_rbb_blk_alloc;
    • Унификация структуры rt_delayed_work в рабочей очереди до структуры rt_work;
    • Создание структуры драйвера сенсорного экрана;
    • Добавление класса USB Audio;
    • Решение проблем с подключением/отключением RNDIS в стеке устройств USB;
    • Добавление функции обратного вызова интерфейса в стек устройств USB;
    • Улучшение структуры wlan, включая функции командной строки, обработку имени AP, длины пароля, поддержку netdev, улучшенную настраиваемость и т. д.

BSP и перенос процессора

  • Добавление поддержки компилятора Clang в переносе процессоров ARM;
  • Решение проблемы определения SCB_AIRCR в ARM Cortex-M0;
  • Перенос ARM Cortex-M33;
  • Добавление операций DMB/DSB для операций кэширования в переносе ARM Cortex-A;
  • Добавление поддержки FPU в переносе ARM Cortex-A;
  • Реорганизация переноса MIPS. Перенос XBurst перемещён в X1000 BSP;
  • Объединение переноса процессоров loongson 1B и 1C в один перенос GS232;
  • Поддержка переноса процессора RISC-V Hummingbird;
  • Операция выхода из переключения контекста risc-v принудительно возвращается в машинный режим;
  • Решение проблемы прерывания переключения в переносе TI C28x DSP;
  • Реализация _ffs в переносе TI C28x DSP;
  • Унификация разделов .data .bss до выравнивания по 8 байтов в цепочке инструментов GCC;
  • Перемещение es32f0334 BSP в bsp/essemi/es32f0334;
  • Добавление bsp/essemi/es8p508x BSP, включая драйверы UART и GPIO;
  • Добавление GD32VF103V-EVAL (RISC-V MCU) BSP, включая драйвер UART;
  • Повторное упорядочение NXP i.MXRT BSP и добавление связанных документов BSP;
  • Добавление ATK Commander, Fire Pro и EVK BSP для новых BSP i.MXRT;
  • Добавление BSP для серии NXP LPC55S6X и увеличение поддержки официальной платы разработки NXP LPC55S69-EVK;
  • Решение проблемы операции I2C (master_xfer) в BSP LPC54114-lite;
  • Добавление драйвера аудио в BSP LPC54114-lite;
  • Обновление BSP Loongson 1B и использование автоматической инициализации компонентов по умолчанию;
  • Добавление конфигурации Kconfig для BSP Loongson 1B;
  • Имитация RT-Thread/MIPS без оборудования MIPS с помощью QEMU/mipssim BSP;
  • Рефакторинг драйвера аудио qemu-vexpress-a9 и решение проблемы точности тиков ОС;
  • Добавление драйвера LPUART в VEGA BSP RV32M1;
  • Удаление старых BSP STM32: stm32f4xx-HAL, stm32f10x, stm32f10x-HAL, stm32f429-apollo, stm32f429-disco, stm32h743-nucleo;
  • Решение проблемы rt_hw_sci_init() для открытия глобального прерывания в BSP tms320f28379d;
  • Добавление поддержки программного I2C и аппаратного модуля шифрования в WinnerMicro W60x BSP (AES/DES/3DES/RC/SHA1/MD3/CRC);
  • Добавление однократной поддержки конфигурации WiFi в WinnerMicro W60x BSP;
  • Добавление дополнительных BSP STM32 на основе новой структуры BSP STM32:
    • stm32f072-st-nucleo
    • stm32f103-gizwits-gokitv21
    • stm32f103-yf-ufun
    • stm32f412-st-nucleo STM32F427-Robomaster-A, STM32F429-ST-Disco, STM32F769-ST-Disco, STM32G431-ST-Nucleo, STM32H743-ST-Nucleo, STM32H750-Armfly-H7-Tool, STM32L4R5-ST-Nucleo и STM32L452-ST-Nucleo — это названия различных устройств.

Для новой структуры BSP STM32 необходимо:

  • добавить поддержку DMAMUX в STM32L4+;
  • обновить SConscript библиотеки HAL F7;
  • открыть конфигурацию порта SWD на Cubemx в BSP для STM32f103-ATK-Warshipv3;
  • добавить поддержку SD-карты в BSP для STM32f427-Robomaster-A;
  • добавить драйвер USBFS в BSP для STM32f412-Nucleo;
  • удалить использование пользовательских данных устройства в драйвере UART;
  • добавить поддержку QSPI FLASH в BSP для STM32h743-ATK-Apollo;
  • оптимизировать драйвер Ethernet;
  • добавить драйверы аппаратного шифрования и дешифрования;
  • добавить MIPI LCD драйвер;
  • добавить драйвер импульсного кодирования;
  • оптимизировать драйвер аппаратного таймера;
  • добавить поддержку UART 7/8 в последовательном драйвере;
  • оптимизировать WDT драйвер.

Инструменты:

  • Оптимизировать скрипт scons для Eclipse, чтобы улучшить генерацию проекта Eclipse.
  • Улучшить генератор rtconfig.h, правильно генерировать конфигурацию типа PATH.
  • Исправить проблему обнаружения пути gcc при использовании стандартного кросс-инструментария Linux-дистрибутива.

RT-Thread v4.0.1 Change Log

Ядро:

  • исправить проблему с предупреждением компиляции rt_tick_from_millisecond();
  • убрать ненужный код, который несколько раз отключает прерывания во время инициализации запуска;
  • исправить ситуацию, когда системный объект не отсоединяется при обработке несуществующих потоков;
  • добавить проверку значения семафора (максимальное значение семафора составляет до 65535);
  • исправить 64-битную проблему в kservice.c;
  • добавить проверку и утверждение повторной инициализации объекта;
  • в функциях rt_enter_critical/rt_exit_critical добавить проверку того, запущен ли планировщик;
  • исправить проблемы с сигналами под SMP и проблемы со списком информации о сигналах в signal;
  • добавить поддержку 64-разрядных процессоров в распределении памяти slab;
  • исправить определение ENOTSUP в libc_errno.h;
  • упростить файл rtdbg.h и использовать ulog, чтобы упростить использование системы журналов/отладки;
  • добавить конфигурацию RT_USING_ARCH_DATA_TYPE, rt_int8_t/.../rt_uint32_t и другие базовые типы данных могут быть определены самим BSP (рекомендуется поместить их в файл rtconfig_project.h, чтобы этот файл автоматически включался в rtconfig.h при генерации menuconfig);
  • добавить тип устройств RT_Device_Class_Sensor;
  • для одноядерных систем определение rt_hw_spin_lock/rt_hw_spin_unlock переопределяется как отключение/включение прерываний;
  • добавить функцию rt_strnlen() в kservice.c.
  • поддерживать тип long long в rt_kprintf (HubertXie).

Компоненты:

  • Убрать CMSIS и перенести в программный пакет как пакет CMSIS.

  • Удалить компонент logtrace. Система логирования переключается на ulog.

  • Добавить больше кода для поддержки цепочки инструментов AC6 в некоторых BSP и компонентах.

  • В компоненте файловой системы DFS очистить журнал и исправить ошибку mkfs, когда индекс может выходить за пределы диапазона.

  • Разделить режим работы от спящего режима в управлении питанием, и изменение частоты должно быть более чётким. Управление питанием не использует idle hook, а выполняет действие сна непосредственно в потоке idle (как использовать управление питанием, см. документацию по программированию).

  • Очистить журнал MMC/SD-драйвера.

  • Переписать Sensor Framework, заменить исходную реализацию C++ версией C и добавить соответствующие пакеты датчиков; для использования пакетов датчиков используйте эту версию.

  • Добавить операцию передачи DMA в структуру последовательного драйвера.

  • Добавить защиту целостности к процедуре tc_flush последовательного драйвера (loogg).

  • Добавить API rt_sfud_flash_find_by_dev_name в SFUD.

  • Когда устройство Pipe закрыто, если это безымянное устройство Pipe и счётчик открытия равен 0, это устройство Pipe будет удалено.

  • Добавлена реализация отложенной работы в workqueue, и рабочая очередь системы добавлена в качестве опции.

  • Исправлена проблема потери данных при передаче DMA через USB CDC.

  • Изменён тип возврата finsh_getchar на int.

  • Исправлен вопрос errno в наборе инструментов newlib/GCC.

  • Управление pthreads изменено на массив POSIX-потоков вместо прямого сопоставления pthread_t с rt_thread_t. Eclipse для сборки RT-Thread

  • Исправить проблему с одинаковыми именами в нескольких группах при создании файла проекта Keil MDK и добавить файл библиотеки в SConscript (Eric Qiang);

  • Устранить проблему сравнения версий GCC;

  • Обновить версию ENV до v1.1.2;

  • Обновить версию scons до 3.0.5;

  • Устранить предупреждение VC++;

  • Устранить ошибку Unicode.

RT-Thread v4.0.0 Change Log

Ядро

  • Добавить поддержку SMP;
  • Добавить поддержку 64-битных процессоров;
  • Когда поток выполняется на CPU, состояние этого потока изменяется на RUNNING вместо READY в предыдущей версии.

Компоненты

  • При форматировании файловой системы добавить опцию FM_SFD для создания тома в формате SFD для FatFs (HubretXie);
  • Добавить указатель дескриптора файловой системы в структуре struct dfs_fd;
  • Исправить проблему со стандартным потоком ввода-вывода fd при использовании POSIX API (gbcwbz);
  • Исправить функцию fd_is_open: когда подпуть одинаков в разных смонтированных файловых системах;
  • Изменить критическую блокировку/разблокировку на dfs_lock/unlock в функции getcwd DFS (критическая блокировка/разблокировка отличается в среде SMP);
  • Переписать реализацию list_thread/list_* команд finsh, чтобы избежать конкуренции между ядрами;
  • Исправить возвращаемое значение aio_result в AIO (fullhan);
  • Исправить mmap при нулевом параметре addr (fullhan);
  • Модифицировать функцию _sys_istty в armlibc для корректной обработки STDIN/STDOUT/STDERR (gbcwbz);
  • Модифицировать функцию _write_r в newlib для корректной обработки stdout.
  • Добавить лёгкие процессы (lwP) и соответствующие системные вызовы; пользовательская среда lwP будет добавлена позже;
  • Исправить at_socket при нулевом указателе сокета (thomas onegd);
  • Исправить select event в функции at_recvfrom at_socket;
  • Разделить SAL на sal_socket_ops/sal_proto_ops, где sal_proto_ops реализован с помощью gethostbyname/getaddrinfo и т. д.;
  • Добавить слой TLS сокетов в SAL, то есть верхнее приложение может поддерживаться зашифрованной передачей без учёта низкоуровневого TLS;
  • Исправить длину ulog_strcpy, которая не должна превышать ULOG_LINE_BUF_SIZE;
  • Добавить определение макроса шестнадцатеричного вывода журнала в ulog (HubretXie);
  • Добавить компонент uTest. uTest — это фреймворк модульного тестирования на RT-Thread, который также можно использовать для автоматического тестирования на плате с внешними скриптами Python;
  • Исправить некоторые предупреждения компиляции и несоответствия перечислений в драйверах/audio;
  • Исправить can_rx/can_tx, которые не очищаются до NULL при закрытии CAN-устройства в драйверах/can (xeonxu);
  • Исправить драйверы/hwtimer, проблему с получением времени в режиме обратного отсчёта;
  • Добавить драйверы/фреймворк драйвера АЦП;
  • Исправить компенсацию тиков при слишком раннем включении прерывания (geniusgogo);
  • Добавить опцию RT_SERIAL_USING_DMA в драйверах/serial;
  • Добавить поддержку QSPI в драйверах/spi framework;
  • Добавить поддержку QSPI в SFUD (на основе периферийного устройства QSPI stm32); SFUD обновлён до версии 1.1.0;
  • Оптимизировать SPI take/release в spi_msd;
  • Исправить blk_size в rt_rbb_blk_alloc;
  • Исправить FS USB в _get_descriptor;
  • Исправить пустой пароль в AP режиме драйверов/wlan;
  • Исправить тип возврата в драйверах/wlan;
  • Удалить дублирующуюся проверку открытия файла при открытии файла.

BSP

  • Изменить параметр name на const char * в функции rt_hw_interrupt_install (liruncong);

  • Переписать уровень портирования RISC-V, чтобы сделать его общим и автономным уровнем портирования для RISC-V IMAC 32/64;

  • Исправить предупреждение $ в файлах Kconfig каждого BSP;

  • Добавить LPC54114-lite BSP, включая GPIO, I2C, SDCard, SPI, SPI Flash, драйвер UART;

  • Добавить Nuvoton-M487 BSP, включая драйвер UART, EMAC (Bluebear 233);

  • Добавить Kendryte K210 BSP с RISC-V64 двухъядерным SMP BSP, включая драйвер UART, также проверенный с micropython;

  • Добавить RV32M1 VEGA BSP, включая GPIO, I2C, SDCard, UART и другие драйверы;

  • Исправить драйвер CAN в STM32F4XX-HAL BSP (xeonxu);

  • Исправить настройки DMA UART в STM32F10x/STM32F40x BSP (zhouchuanfu);

  • Исправить определение HEAP_BEGIN в STM32H743-Nucleo BSP (nongxiaoming);

  • Исправить конфигурацию GPIO в stm32f10x-HAL (Wu Han);

  • Заменить stm32f107. BSP как основная функция входа

  • Исправить проблему обработки последовательных прерываний в BSP STM32F10x.

  • Добавить драйверы ШИМ, RTC и сторожевого таймера в STM32f10x-HAL BSP.

  • Исправить проблему с драйвером сторожевого таймера в BSP STM32f4xx-HAL.

  • Использовать lwIP версии 2.x в STM32f40x/STM32f107 BSP.

  • Устранить проблему со ссылкой при включении пакета cmBacktrace в STM32f4xx-HAL BSP.

  • Поддержка функций аудио и микрофонов в STM32f429-apollo BSP.

  • Включить поддержку dlmodule в x86 BSP.

  • Добавить раздел uTest в скрипт компоновки qemu-vexpress-a9/stm32f429-atk-apollo BSP для автоматического тестирования.

  • Изменить лицензию на Apache License v2.0 в Godson 1C BSP.

Новая структура BSP для последовательного чипа STM32

Добавить новую структуру BSP для серийного чипа STM32, такого как STM32 G0/F0/L0/F1/F4/F7/H7. В новой структуре BSP повторно используются драйверы SoC. И в то же время новая структура BSP поддерживает множество плат STM32:

  • Плата разработки Nucleo STM32F091.
  • Плата разработки Nucleo STM32F411.
  • Плата разработки Nucleo STM32L432.
  • Плата Discovery STM32F407.
  • Плата Nucleo STM32F446.
  • Плата Discovery STM32F746.
  • Плата Nucleo STM32F767.
  • Плата Nucleo STM32G071.
  • Плата Nano Development Board ATK STM32F103.
  • Плата Explorer Development Board ATK STM32F407.
  • Плата Apollo Development Board ATK STM32F429.
  • Плата Apollo Development Board ATK STM32F767.
  • Плата IoT Pandora Development Board ATK STM32L475.
  • Плата Arbitrary Development Board Fire STM32F103.
  • Плата Challenger Development Board Fire STM32F429.
  • Плата Challenger Development Board Fire STM32F767.
  • Плата Fly STM32F429-v6 Development Board ArmFly.
  • Плата iBox development board STM32F103.
  • Плата Dofly STM32F103 Development Board.
  • Плата uC/Eval Development Board STM32F107.

И другие, в разработке структуры BSP участвуют больше разработчиков, таких как HubretXie, Hao Zhu, e190 и другие, чтобы улучшить публичный драйвер STM32.

SWM320 BSP от Synwit.cn

Включить SWM320 BSP от Synwit.cn, включая GPIO, HW Timer, I2C, сторожевой таймер, ШИМ, RTC, SPI, UART и т. д. Поддерживается и поддерживается Synwit.

TI TMS320F28379D BSP

Включить TI TMS320F28379D BSP, первый DSP-чип, поддерживаемый RT-Thread.

Инструмент

Предоставить дополнительную информацию, когда цепочка инструментов не существует.

Добавить черновик команды генерации файла проекта Segger Embedded Studio. Обратите внимание, что цепочка инструментов в SES — это специальная версия, а не newlib.

Исправить проблему с командой связывания библиотеки IAR при использовании командной строки scons.

Исправить проблему пути BSP в scons str(Dir('#')).

Добавить команду scons --pyconfig-silent для добавления некоторых конфигураций Kconfig и создания файлов .config и rtconfig.h.

Обновите команду scons --dist, чтобы адаптировать её к новой структуре BSP.

Измените скрипт mkromfs.py. Исправьте соответствующий код C, когда romfs содержит пустые файлы или пустые папки.

Исправьте проблему сравнения строк версий для GNU GCC в utils.py.

ENV обновлён до V1.1.0.

Обеспечьте лучшее информационное приглашение для улучшения взаимодействия с пользователем.

Добавьте путь system32 в переменные среды, чтобы избежать невозможности найти команду cmd.

Добавьте переменную PYTHONHOME в переменные окружения, чтобы избежать проблемы с окружением PYTHON.

RT-Thread v3.1.1 Change Log

Ядро

Поддержка конфигурации роста стека вверх, который определяется макросом ARCH_CPU_STACK_GROWS_UPWARD. Поскольку ARCH для стеков, растущих вверх, меньше, этот элемент конфигурации не отображается напрямую в menuconfig. Когда CPU ARCH требуется стек, растущий вверх, конфигурацию ARCH_CPU_SUPPORT_STACK_GROWS_UPWARD можно выбрать в файле BSP Kconfig по умолчанию.

Поддержка ARMCC V6 и более поздних компиляторов (компилятор на основе LLVM). В настоящее время он в основном используется в Keil MDK IDE. Обратите внимание, что «Предупреждения» должны использовать Moderate. Warnings в конфигурации проекта на C/C++ (AC6) TAB

После использования ARMCC v6 RT-Thread добавит дополнительное определение макроса CLANG_ARM.

(liruncong, nongxiaoming, bernard)

Компоненты

  • Улучшить структуру драйвера ШИМ и добавить больше интерфейсов.
  • Исправить обработку F_SETFL в функции ioctrl; исправить проблему с возвращаемым значением функции fcntl, которое всегда равно 0.
  • Устранить проблему с типом объекта memheap при создании объекта ramfs.
  • Добавить структуру управления питанием для приложений с низким энергопотреблением.
  • Добавить поддержку нескольких сегментов для операций чтения и записи в структуре драйвера MC/SDIO (для stm32 можно выбрать отдельный пакет stm32_sdio).
  • Добавить компонент ringblk_buf для блочного режима, но в приложениях кольцевого буфера.
  • Улучшить структуру управления WLAN с унифицированными интерфейсами, управлением и командами, чтобы обеспечить более дружественную поддержку разработчикам и пользователям.
  • При отключённом компоненте MSH добавлять условный макрос в finsh, даже если файлы кода скомпилированы.
  • Удалить gdbstub и перенести в пакеты rt-thread.
  • Обновить и улучшить компоненты SAL и AT:
    • Исправить проблему с не очисткой сокета при закрытии в SAL, из-за которой сокет всегда удерживается.
    • Исправить проблему select() для UDP-коммуникации в AT-компоненте. Добавить обработку полученных данных для завершения очистки полученного события.
    • Добавить значение errno при тайм-ауте приёма данных в функции at_recvfrom в AT-компоненте.
    • Добавить обработку тайм-аута приёма данных в функцию at_client_recv в AT-компоненте.
  • Исправить возможную проблему в реализации функции fputc при использовании microlib.
  • Реализовать gmtime_r для ARMCC, IAR tool chain.
  • Улучшить поддержку функций времени в IAR и поддерживать 64-битное время.
  • Поддержка DHCPD для IPv6.
  • Заменить портирование lwIP-1.3.2 на lwIP-2.1.0, lwIP-2.0.2 остаётся версией по умолчанию.
  • Добавить облегчённый компонент ulog и автоматически заменять отладочный макрос оригинального rtdbg.h при его включении.
  • Обновление стека USB:
    • HOST — оптимизировать механизм тайм-аутов USB HOST; исправить проблему с некорректным посещением в драйвере F4xx-HAL USB host.
    • Device — добавить проверку при незаконной регистрации драйверов классов; исправить проблемы с некорректным доступом на некоторых платформах; оптимизировать классы CDC VCOM, добавить механизм тайм-аутов и определение ID.

BSP

  • Модернизировать адаптер wlan до новой версии структуры управления Wi-Fi в BSP amebaz.
  • Включить код конфигурации airkiss wifi в BSP amebaz.
  • Обновить Apollo2 BSP с драйверами ADC, GPIO, I2C, PDM, SPI, UART и другими.
  • Изменить BeagleBone BSP на режим основной функции и добавить файл конфигурации Kconfig.
  • В DM365 BSP добавить файл конфигурации Kconfig.
  • Дополнить документацию в HiFive1 BSP.
  • Перевести imx6sx BSP в режим основной функции и включить файл конфигурации Kconfig.
  • Изменить старый imxrt1052-evk BSP. BSP imxrt1052 классифицируются в каталог bsp/imxrt, в который позже будет добавлен сенсорный фреймворк.
  • Улучшить BSP stm32f4xx-HAL с помощью драйверов PWM, I2C и USB Host.
  • Улучшить BSP stm32f10x с CAN-драйвером и увеличить драйвер I2C.
  • Улучшить BSP stm32f10x-HAL с драйверами I2C, IWG, PWM, RTC и другими, а также улучшить драйвер UART.
  • Улучшить BSP stm32f429-disco и добавить драйверы I2C, LCD, Touch.
  • Улучшить x86 BSP и поддержать функцию dlmodule.

Инструмент

  • Модифицировать скрипт сборки для поддержки Python 3.
  • Добавить режим scons --pyconfig с конфигуратором TK UI.
  • Поддерживать GNU GCC 7/8 версии инструментальных цепочек (флаг -std=c99 не добавлен в флаги компилятора C), но обратите внимание: компонент PThreads не работает в версии 2.5 и новой версии newlib.

RT-Thread 3.1.0 Change Log

Ядро

  • Основной язык текста запроса — английский.

Вот перевод текста на русский язык:

Приоритет основного потока можно настроить с помощью Kconfig;

  • Добавить проверку типа объекта ядра, которая может эффективно предотвратить проблему продолжения использования объектов ядра после их уничтожения.
  • Добавить список idle-хуков для монтирования нескольких idle-хуков, и его можно настроить через Kconfig.
  • Добавить набор операций device_ops для уменьшения объёма памяти, занимаемого объектом устройства.
  • Удалить специальную операцию с памятью в прикладном модуле при использовании алгоритма управления памятью SLAB.
  • Переместить прикладной модуль из ядра в libc/libdl.
  • Улучшить вывод отладочной информации файла rtdbg.h.
  • В цепочке инструментов Keil/IAR используется RT_USED для сохранения символов и избежания добавления дополнительных аргументов или разделов во фразу компоновки.

Компоненты

  • Удалить все внешние коды, которые будут перемещены в пакеты в будущем.
  • Добавить флаг инициализации для оболочки, файловой системы, сетевого стека протоколов и т. д., чтобы предотвратить повторную инициализацию;
  • Включить функцию длинных имён файлов ELM FatFs по умолчанию.
  • Изменить DFS FD на режим динамического выделения. Максимальное количество выделений по-прежнему равно DFS_FD_MAX.
  • Добавить функцию dfs_fdtable_get() для получения различных fdtable;
  • Добавить больше сообщений об ошибках DFS и предоставить понятный журнал при возникновении аномалий.
  • Исправить проблему форматирования диска файловой системы FatFs при монтировании нескольких файловых систем FatFs.
  • Убрать функцию ввода папки в msh при вводе имени папки;
  • Добавить процедуру int finsh_set_prompt (const char * prompt) для установки пользовательского приглашения для msh;
  • Добавить конфигурацию VBUS в Kconfig.
  • Перенести прикладной модуль из ядра в компонент libc/libdl;
  • Переписать большую часть кода управления для прикладного модуля: заменить исходный контейнер объектов списком объектов; разделить код разрешения символов на разные архитектуры процессоров и т.д.
  • Обновить главу о прикладных модулях в руководстве по программированию и преобразовать её в главу о динамических модулях.
  • Заменить функцию exit() newlib, чтобы взять на себя обработку выхода для dlmodule.
  • Добавить компонент SAL (Socket Abstraction Layer) для адаптации различных стеков протоколов и сетевых реализаций и обновить соответствующие разделы руководства по программированию;
  • Добавить AT-компонент, включая AT-клиент, AT-сервер и функцию AT-сокета;
  • Удалить API poll/select DFS_NET и перенести их в компонент SAL.
  • Уменьшить сильную зависимость компонента lwIP для DFS_NET и заменить его конфигурацией Kconfig в SAL.
  • Добавить функцию DHCP-сервера с необработанным API lwIP;
  • Исправить проблему инициализации очереди ожидания в распределении сокетов lwIP.
  • Когда поток собирается заблокироваться в очереди ожидания, исправить проблему пробуждения для rt_wqueue_wakeup, выполняемого для пробуждения этого потока;
  • Добавить структуру драйвера ШИМ;
  • Исправить выпуск sdio_irq_wakeup в рамках MMC/SD-фреймворка.
  • Решить проблему обработки DMA в рамках фреймворка последовательного драйвера.
  • Обновите SFUD до версии 1.0.6.

BSP

  • Исправьте проблему SP при возникновении жёсткой ошибки для архитектуры ARM Cortex-M;
  • Добавьте портирование архитектуры C-Sky CK802;
  • Добавьте BSP Realtek amebaz WiFi SOC (rtl8710bn);
  • Обновите SDK встроенного ПО imxrt1052-evk для поддержки чипа модели B.
  • Решите проблему копирования пакетов в BSP Godson 1C при отправке сообщения.
  • BSP Nuvoton m05x/m451 изменены на режим входа main() и поддерживают компиляцию GCC;
  • Решите проблему несоответствия между диапазоном касания и разрешением ЖК-дисплея в qemu-vexpress-a9.
  • Добавьте qemu-vexpress-gemini BSP для двухъядерной архитектуры A9 (RT-Thread + Linux);
  • Добавьте базовый портинг для Raspberry Pi 2B;
  • Добавьте драйверы CAN и PWM в stm32f4xx-HAL BSP;
  • Оптимизируйте драйвер GPIO в stm32f4xx-HAL BSP;
  • Добавьте драйвер UART3 в stm32f4xx-HAL BSP;
  • Исправьте драйвер I2C1 в stm32f10x BSP и интерфейс управления WDG.
  • Добавьте интерфейс rt_hw_us_delay в stm32f10x-HAL BSP;
  • Оптимизация драйвера GPIO в stm32f10x-HAL BSP;
  • Добавьте драйвер GPIO и драйвер RTC в stm32f107 BSP.

Инструмент

  • Обновление ENV до финальной версии v1.0.0.
  • Добавлен китайский зеркальный сервер для пакета программного обеспечения ENV, что позволяет ускорить загрузку, обновление и т. д. пакета программного обеспечения.
  • Исправлены известные ошибки ENV и улучшено взаимодействие с пользователями.
  • Добавление скрипта сборки. Обнаружение версии GCC и newlib
  • Добавить скрипт сборки для обнаружения версии armcc.
  • Добавить функцию scons --dist для создания дистрибутива для BSP.
  • Добавить функцию scons - dist - strip для создания минимального набора файлов дистрибутива для BSP.
  • Добавить параметры ASFLAGS/LOCAL_ASFLAGS для определения группы и передачи их ассемблеру.
  • Исправить некоторые ошибки в скрипте сборки в среде Linux.
  • Создать проект C-Sky CDK IDE.
  • Добавить scons --target=vsc -s для генерации дружественных конфигурационных файлов для VSCode.

RT-Thread 3.0.4 Change Log

Ядро

  • Изменить расположение вызова хука в rt_event_send, что позволит лучше отражать значение события в представлении системы.
  • Исправить проблему с rt_realloc() в memheap.
  • Исправить проблему vstart_addr в динамической библиотеке.
  • Обеспечить более стандартизированный сигнал и удалить члены si_errno из siginfo_t.
  • Добавить API rt_thread_mdelay() для задержки в миллисекундах в потоке.

Компоненты

  • Исправить ошибку mkfs в FatFs (проблема слияния, появившаяся при обновлении RT-Thread V3.0).
  • Исправить опрос dfs_net, если уже получены данные, верхний уровень не может проснуться и обработать данные.
  • Исправить проблемы с сокетами в dfs_net при сбое lwip_socket (Bluebear233).
  • Если функция dfs_net/socket используется в версии lwIP 1.x, будет возвращена ошибка компилятора.
  • Исправить информацию df() в DFS.
  • Исправить запись аудиоустройства при неправильном восстановлении прерывания.
  • Исправить однократный тайм-аут в структуре драйвера аппаратного таймера.
  • В драйвере ENC28J60 включить «изменение состояния соединения» в инициализации.
  • Исправить данные при помещении данных в кольцевой буфер.
  • Добавить отображение информации UDP в команде netstat.
  • Исправить USB HS при отправке 1 байта данных, приводящей к двум передачам.
  • Изменить механизм регистрации USB Class Driver, чтобы класс Driver мог быть зарегистрирован в пакете.
  • Добавить драйвер USB Device для HS USB.
  • Улучшить совместимость функции time() для разных компиляторов.
  • Добавить дополнительные элементы конфигурации для DHCPD в menuconfig.

BSP

  • Временно удалить трансплантацию Andes AE210P из-за ошибочного использования SVC для переключения контекста.
  • Включить SD/MMC в Allwinner ARM9 BSP.
  • Включить драйверы SPI и SPI Flash в Allwinner ARM9 BSP.
  • Поддержка платы разработки GD32's gd32303e-eval.
  • gd32450z-eval поддерживает компиляцию GNU GCC.
  • Переписать поддержку пакета уровня платы hifive1 для архитектуры risc-v.
  • О i.MX RT1052: завершена поддержка различных плат разработки: ATK, Fire, seeed studio.
  • На i.MX RT1052 добавить функции cache-ops.
  • На i.MX RT1052 добавить поддержку I2S и WM8960 кодеков.
  • Усовершенствовать поддержку ETH-драйвера (включая поддержку Fire) на i.MX RT1052.
  • Поддерживать драйвер аппаратного таймера на i.MX RT1052.
  • На i.MX RT1052 добавить драйвер GPIO.
  • На i.MX RT1052 добавить драйвер RTC.
  • На i.MX RT1052 улучшить драйвер SD/MMC.
  • На i.MX RT1052 добавить драйверы SPI и SPI Flash (подключение к компоненту SFUD).
  • На i.MX RT1052 добавить драйвер USB-устройства.
  • Добавить файлы README и KConfig в LPC408x BSP.
  • Добавить документы README в LPC5460x-LPCXpresso BSP.
  • Добавить контроллер дисплея (Sundm75) в Godson 1C BSP.
  • Добавить CAN-драйвер в Loongson 1C BSP (Sundm75).
  • В GPIO-драйвере Loongson 1C BSP добавить функцию внешнего прерывания (Zhuangwei).
  • Использовать автоматическую инициализацию SPI в Loongson 1C BSP.
  • Добавить I2C-драйвер в Loongson1C BSP (Sundm75).
  • Добавить резистивный сенсорный экран в Loongson 1C BSP (Sundm75).
  • В Loongson 1C BSP включить инициализацию компонентов и основную функцию (Zhuangwei).
  • Самозагрузка в Loongson1C BSP (Zhuangwei).
  • Добавить файлы README и KConfig в Loongson 1C BSP (Zhuangwei).
  • Исправить дескриптор rx в функции init_rx_desc в NUC472 BSP (Bluebear233).
  • AC97 Audio-драйвер в QEMU-VExpress-A9 BSP.
  • Описание файла README в QEMU-VExpress-A9.
  • I2C-драйвер в stm32f4xx-HAL BSP и описание файла README.
  • Cache-ops в stm32f7-disco BSP и описание файла README.
  • Описание файла README в stm32f10x/stm32f10x-HAL. Спецификационные файлы README и конфигурационные файлы KConfig в BSP для STM32F40x;
  • Добавить конфигурационный файл KConfig в BSP для STM32F20x;
  • Включить поддержку инструментальной цепочки GNU GCC и добавить файл описания README в BSP для STM32f411-nucleo;
  • Добавить драйвер GPIO и файл описания README в BSP для STM32f429-apollo;
  • Добавить конфигурационные файлы KConfig в BSP для STM32f429-armfly;
  • Добавить файл описания README в BSP для STM32l476-nucleo;
  • Временно удалить этот BSP, так как V2M-MPS2 не поддерживает работу на 32-битной машине;
  • Добавить файл описания README и некоторые файлы прошивки, такие как u-boot.bin, wifi firmware и т. д., в BSP X1000;

Инструменты:

  • Добавить функцию обнаружения версии инструментальной цепочки GNU GCC и функции библиотеки libc;
  • Добавить функцию помощи редактора VSCode и поддержку scons --target=vsc -s в папке BSP для генерации конфигурационных файлов для VSCode;
  • Добавить обнаружение версии IAR;
  • Добавить функцию ProjectInfo (Env) для получения информации о цели: все исходные файлы должны быть скомпилированы, все заголовочные файлы, все определения макросов, пути поиска для заголовочного файла и т.д.

RT-Thread 3.0.3 Change Log

Kernel

  • Добавить защиту планировщика при очистке отсоединённого потока;
  • Исправить проблему object_find при включении функции модуля;
  • Улучшить поддержку POSIX сигналов и добавить функцию rt_signal_wait и интерфейс POSIX sigwait;
  • При включении оболочки finsh, заголовок rtthread.h включает файл API finsh. Таким образом, код приложения может использовать функцию экспорта команд без файла finsh.h;
  • Улучшить комментарии в файле rtdbg.h. В RT-Thread просто используйте следующий код для добавления функции отладочного журнала:
    #define DBG_ENABLE

    #define DBG_SECTION_NAME    "[ MOD]"
    #define DBG_LEVEL           DBG_INFO
    #define DBG_COLOR
    #include <rtdbg.h>

Когда определение DBG_ENABLE закрыто, журнал отладки будет закрыт. В противном случае можно использовать dbg_log(level, fmt, ...) для печати отладочной информации. DBG_SECTION_NAME — префиксная информация для каждой строки журнала; DBG_LEVEL — уровень журнала отладки; DBG_COLOR — использование цветного журнала в консоли.

Компоненты

  • Исправить проблемы с флагом fopen в GNU GCC;
  • Исправить проблему pthread_detach при использовании для отсоединённого pthread;
  • Исправить проблему _TIMESPEC_DEFINED в IAR 8;
  • Добавить интерфейс libc_stdio_get_console() для возврата fd консоли;
  • Переместить компонент UI engine в отдельный пакет;
  • Добавить унифицированный драйвер TF/SD-карты на шине SPI устройства;
  • Добавить устройство soft-RTC, чтобы устройство могло синхронизироваться с сетевым временем и поддерживать время с тиком ОС позже;
  • Изменить API open/fcntl/ioctl на стандартный интерфейс POSIX;
  • Исправить проблему ramfs при обновлении с RTT 3.0.x;
  • Исправить проблему elm fatfs umount (liu2guang);
  • Игнорировать флаг O_CREAT при открытии файла устройства;
  • Улучшить класс драйвера VCOM в стеке USB (ChunfengMu, Aubr.Cool).

BSP

  • Исправить потенциальную проблему при включении аппаратного FPU Cortex-M;
  • Добавить v2m-mps2 BSP, который используется в Keil MDK5 для моделирования Cortex-M4/M7/M23/M33;
  • Добавить драйвер sdcard для stm32f10x-HAL (liu2guang);
  • Улучшить поддержку GNU GCC для stm32f10x-HAL (Xeon Xu);
  • Симулятор BSP можно использовать в Windows/Visual C++ и обновить SDL до версии 2.0.7;
  • Добавить BSP gk7102 от gokemicro;
  • Добавить ARM9 BSP allwinner F1C100s (uestczyh222);
  • Исправить некоторые проблемы в библиотеке периферийных устройств NXP LPC54608/i.MX RT (Valeriy Van).

Инструменты

  • Скрипт сборки scons автоматически добавит макрос _REENT_SMALL, когда включит newlib nanao;
  • Модифицировать скрипт сборки для Python 3.x и scons 3.0.

RT-Thread v3.0.2 Change log

Платформа

  • Убедитесь, что Object_Class имеет фиксированное значение;
  • Добавьте API rt_device_create/destroy;
  • Добавьте трассировку памяти для алгоритма управления небольшой памятью для обнаружения утечек памяти и перезаписи;
  • Добавьте первую версию асинхронного API ввода-вывода;
  • Добавьте cputime для счётчика высокого разрешения;
  • Добавьте функции устройства pipe в DeviceDrivers;
  • USB Host доступен в stm32f4 с классом массового хранения;
  • Добавьте команду 'df' в msh;
  • Обновите движок пользовательского интерфейса и добавьте пример;
  • Разделите clock_time из pthreads и добавьте новый идентификатор часов: CLOCK_CPUTIME_ID;
  • Включите IPv6 в версии lwIP 2.0.2;
  • Добавьте memlog в logtrace;
  • Исправьте проблему closesocket. dfs_net
  • Исправить проблему IPv6 в NFS.
  • Обновить файловую систему JFFS2 с новым API DFS.
  • Решить проблему со stat "/.." в lwext4 (parai).
  • Устранить проблему поиска типа fs в mkfs.
  • Починить select в dfs_net.

Инструменты

  • scons: добавить команду '--useconfig' для использования существующего файла конфигурации.
  • scons: принудительно использовать g++ для линковки при включении RT_USING_CPLUSPLUS в конфигурации GNU GCC.
  • Включить функцию пакета на хосте Linux/MacOS.

BSP

  • Добавить BSP NUC472 (bluebear).
  • Обновить драйвер SD/MMC для qemu-vexpress-A9.
  • Добавить драйвер клавиатуры/мыши для qemu-vexpress-a9.
  • Добавить драйверы ADC/I2C/Flash/PWM/RTC/smbus/SPI для apollo2 (Haleyl).
  • Добавить драйверы I2C/LCD/Touch для i.MXRT1052-EVK.
  • Обновить драйвер SD/MMC для mini2440 (kuangdazzidd).
  • Адаптировать симулятор к компилятору VC++.
  • Добавить USB-драйвер хоста в stm32f4xx-HAL (uestczyh222).
  • Обновите драйвер EMAC для IPv6 в stm32f40x/stm32f107.
  • Добавьте BSP stm32h743-nucleo (polariss).

RT-Thread v3.0.1 Change log

Платформа

  • Добавить API mmap()/munmap() для совместимости с POSIX.
  • Исправить issue с filesystem_operation_table.
  • Улучшить стек USB для USB-ведомого (HID/ECM/RNDIS/WINUSB или составное устройство).
  • Улучшить стек USB для USB-хоста (HID/MSC и т. д.).
  • Исправить утечку памяти при закрытии канала.
  • Исправить open romfs issue.
  • Добавить SoftAP-устройство в Wi-Fi-фреймворк.
  • Переупорядочить инициализацию lwIP/ETH.
  • Добавить опции IPv6 в Kconfig.
  • Исправить issue module_id в _rt_thread_init.

Инструменты

  • Добавить menuconfig для платформы Linux/Mac: используйте scons --memuconfig, чтобы включить его.
  • Добавить LIBS для проекта IAR.

BSP

  • Улучшите LPC54608 BSP для различных компиляторов.
  • Добавить GPIO/I2C/SPI-драйверы для Loongson 1C.
  • Добавить csd cmd в драйвер sdcard mini2440.
  • Добавить SDIO/EMAC-драйвер для bsp qemu-vexpress-a9.
  • Разрешить VC++ компилировать симулятор BSP.
  • Добавить bsp stm32f4xx-HAL для разных серий STM32F4 <пользователь может использовать menuconfig для выбора чипа>.
  • Исправьте PHY reset в bsp stm32f429-apollo.
  • Добавить Audio/MMC/SLCD/Touch/USB slave/RTC/SPI/SFC Flash-драйвер в Ingenic X1000 BSP.

RT-Thread v3.0.0 Change log

Платформа

  • Добавлены дополнительные функции POSIX, такие как poll/select, signal, termios и т.д.
  • Добавлена очередь ожидания для функции опроса.
  • Используйте fops для файловых операций. Есть два способа посетить объект устройства: rt_device_* API, файловый API (open/read/write/close и т.д.).
  • Измените тип cmd с uint8_t на int в интерфейсе управления.
  • Добавляйте больше объектов C++ для объектов ядра RT-Thread.
  • Добавьте wlan-драйвер для работы с wlan-устройствами.
  • Интегрируйте SFUD в RT-Thread для унификации операций SPI flash.
  • Обновите lwIP до версии 2.0.2.

Инструменты

  • Включите пакеты с помощью инструмента ENV.
  • menuconfig & Kconfig.
  • Добавьте scons --dist для создания дистрибутива для указанного BSP.

BSP

  • Больше портирования MCU.

IoT

  • Внедрить больше компонентов IoT в виде пакетов, таких как MQTT, CoAP, HTTP, TLS и т.д.

RT-Thread v2.1.0 Change log

Этот релиз является окончательным релизом ветки RT-Thread v2.1.0. Этот релиз откладывался много раз. После фиксации fh8620 и x1000 bsp мы с гордостью объявляем о выпуске этой ветки официальной версии.

Журнал изменений с момента последней стабильной версии:

Ядро

  • Перенесите компонент init в ядро.
  • Исправлена проблема с флагом открытия устройства.
  • Добавление утверждения hook.
  • Лучшая поддержка прикладных модулей.
  • Не блокирует планировщик при вызове функции тайм-аута программного таймера.

Пакет поддержки платы:

  • fh8620, предоставленный Shanghai Fullhan Microelectronics Co., Ltd. Это чип IP-камеры с ARM1176, 300 МГц, 16 КБ I-кэша и 16 КБ D-кэша.
  • x1000 bsp. Процессор — это процессор XBurst 1,0 ГГц, основанный на MIPS, от Ingenic Semiconductor Co.,Ltd.
  • imx6sx bsp, только портирование ядра Cortex-A9 в NXP i.MX6 solox. Кстати, ещё один полный порт серии Kinetis был создан в rt-thread_fsl, который поддерживается сотрудником NXP.
  • lpc5410x bsp, только портирование ядра Cortex-M4.
  • ls1cdev bsp для платы Loogson1C.
  • dm365 bsp.
  • nRF51822/nRF52832 bsp.
  • stm32f7-disco bsp, первое портирование ARM Cortex-M7 в RT-Thread.
  • stm32f411-nucleo bsp.
  • Добавьте поддержку компилятора IAR в beaglebone bsp.

Компоненты:

  • Добавьте больше операторов сокета fd в DFS с виртуальной файловой системой lwIP.
  • Добавьте CAN/Hardware. Драйверы устройств для таймеров.
  • Исправить проблему SDIO для поддержки устройства Wi-Fi.
  • Добавить поддержку eMMC в драйверы устройств SD/MMC.
  • Устранить проблему сброса при настройке NAT в lwIP NAT.
  • Вернуть RTGUI, но в качестве UI-движка для blend point/line/rect и bitmap и т. д.
  • Внедрить портирование nanopb, реализацию Protocol Buffers небольшого размера;
  • Внедрить портирование paho-mqtt, клиент C/C++ Eclipse Paho MQTT для встраиваемых платформ;
  • Обновить freetype до версии 2.5.4.
  • Улучшить msh для файловых операций.
  • Разделить экспортированные команды оболочки finsh на отдельный раздел: «.rodata.name».

RT-Thread v2.1.0 beta версия изменений.

BSP часть

  • Включить GPIO-драйвер BeagleBone;
  • обновить библиотеку драйверов и улучшить программу EMAC-драйвера для Jingwei Yage M7;
  • включить новый перенос dm365 (включая EMAC, GPIO, I2C, MMC/SD, SPI и другие драйверы);
  • добавить аппаратный таймер и драйвер CAN для LPC4088;
  • включить перенос DragonChip 1C, платформу разработки Wisdom V2 (включая мультипоследовательный порт);
  • изменить перенос mini2440 на каталог applications/drivers и др.;
  • обновить перенос симулятора на MS VC++, обработать инициализацию кода, усовершенствовать UART-контроллер;
  • включить перенос stm32f7-disco;
  • в STM32F10x включить CAN-драйвер и примеры приложений;
  • в STM32F40x включить драйвер аппаратного таймера и RTC-драйвер;
  • настроить STM32F107 как новую структуру последовательного порта;

Компоненты

  • Удалить член st_blksize в структуре stat библиотеки DFS (можно использовать определение stat в VC++);
  • исправить проблемы с реализацией select в DFS;
  • исправить ошибки при работе с файлами в DFS, а также проблемы с обработкой fd при закрытии;
  • исправить проблемы с fd при ошибках mkdir и lseek в DFS;
  • исправить проблему защиты SYS_ARCH_PROTECT/SYS_ARCH_UNPROTECT в lwIP;
  • создать CAN-драйвер;
  • создать драйвер аппаратного таймера;
  • добавить поддержку eMMC в драйвер SD/MMC;
  • исправить ошибку при регистрации SDIO-драйвера;
  • исправить проблему с флагом активации DMA при отправке через последовательный порт;
  • включить поддержку чипа GD25Q spi flash в SPI Flash-драйвере;
  • внедрить компонент paho-mqtt;
  • расширить возможности выполнения скриптов msh, позволяя выполнять скрипты *.sh;
  • добавить команду mkfs в msh;
  • исправить проблему обработки возврата каретки в Telnet под Linux с помощью оболочки finsh;
  • увеличить экспорт символов libc при использовании armcc или gnu gcc;
  • добавить параметры ETHIF_LINK_AUTOUP/PHYUP в сетевую карту для указания начального состояния линии связи Up/Down;
  • экспортировать компонент log_trace во время инициализации ядра;

Ядро

  • Изменить UNUSED/USED на RT_UNUSED/RT_USED;
  • при компоновке добавить раздел .rodata.name, который можно разместить в менее производительной области памяти при ограничении ресурсов;
  • улучшить автоматическую инициализацию компонентов под IAR;
  • добавить rt_assert_hook, который может быть выполнен при срабатывании утверждения;
  • решить проблемы с загрузкой модулей приложения;

Инструменты

  • В scons определить группу, добавив определения параметров компиляции;
  • исправить ситуацию, когда группа содержит код и двоичную библиотеку, что приводит к дублированию групп в файле проекта Keil MDK.

Версия: RT-Threadv2.0.1 и v2.1.0 alpha.

RT-Thread v2.0.1 — это версия 2.0, которая является исправленной версией серии bug, а v2.1.0 alpha — это текущая техническая предварительная версия основной ветки разработки, предоставляющая технический предварительный просмотр версии v2.1.0, которую не рекомендуется использовать в реальных продуктах из-за возможных многочисленных ошибок.

Изменения в версии RT-Thread v2.0.1:

  • Поддержка THREAD_SUPPORT и FILE_DESCRIPTOR в dlib для IAR.
  • Исправлена проблема с отображением echo в оболочке finsh.
  • Исправлены ошибки компиляции в коде USB host.
  • Исправлены проблемы с обратным вызовом в сенсорном фреймворке.
  • Исправлено название устройства при регистрации pin-устройства.

Что касается версии v2.1.0 alpha, то она соответствует первоначальному плану разработки и включает в себя:

  • Более глубокую интеграцию lwip, включая его интеграцию в файловую систему RT-Thread, что позволяет более плавно переносить сетевые приложения сокетов в Linux/Unix на RT-Thread и заложить основу для будущего применения в других областях.
  • Это не связано с выпуском RT-Thread напрямую, но является одной из целей этой серии версий: запуск облачной интегрированной среды разработки! Облако будет выглядеть так, как вы ожидаете, пожалуйста, используйте современный браузер для доступа к CloudIDE.

Изменения в RT-Thread 2.0.0:

После примерно одного года разработки была выпущена окончательная версия RT-Thread v2.0.0. С момента начала разработки было введено множество функций, исправлений и улучшений. Спасибо всем разработчикам, которые приняли участие! Ниже приведены подробные изменения с момента выпуска RC-версии v2.0.0. Позже я также предоставлю основные различия между версиями v2.0.0 и v1.2.x, а также план развития следующей версии.

Ядро

  • Консоль открывается как символьное устройство с параметром RT_DEVICE_FLAG_STREAM.
  • Добавлены дополнительные проверки утверждений в функции rt_memheap_free.

Компоненты

  • Обновлён драйвер RW009 для поддержки режима SoftAP Wi-Fi (aozima).
  • Исправлены некоторые проблемы в сенсорном фреймворке и добавлен интерфейс C API (предоставлен компанией Bright Shengda).
  • Включён код датчика MPU6050 (bernard, Coing).
  • Включён код датчика BMI055 (Coing).
  • Если heap не включён, исправлена ошибка в списке list_memheap в finsh/msh.
  • Исправлены предупреждения компилятора LIBC.
  • Реализовано перемещение IAR dlib, позволяющее приложениям использовать стандартные API-интерфейсы.
  • Исправлена потенциальная конкуренция в режиме YMode (grissiom).
  • Обновлено до FreeType версии 2.5.4
  • Отдельные глобальные объекты C++ инициализируются в функции cplusplus_system_init и вызываются в потоке инициализации.
  • Открыт как символьное устройство в finsh с параметром RT_DEVICE_FLAG_STREAM.
  • Добавлен компонент VBUS для связи между Linux и RT-Thread системами, а также между RT-Thread системами (предоставленный компанией Bright Shengda).
  • Добавлен lwIP/NAT, позволяющий преобразовывать адреса между несколькими сетевыми портами (Hicard).
  • Добавлен сервер lwIP/DHCP, используемый для назначения IP-адресов клиентам (предоставленный компанией Bright Shengda).

Часть BSP

  • Исправлена ошибка преждевременного открытия прерывания при инициализации последовательного порта LPC4357 (nongxiaoming).
  • Переписан драйвер последовательного порта LPC4357, и оба ядра M4/M0 на чипе выполняют систему RT-Thread. Связь между двумя ядрами осуществляется через компонент VBUS (предоставленный компанией Bright Shengda).
  • Новый перенос RX (limxuzheng).
  • Новый перенос NuMicro M051 Series, поддерживающий GCC и Keil MDK (bright-pan).
  • Новый перенос LPC54102 (Coing).
  • Удалены ненужные настройки RT_TIMER_TICK_PER_SECOND в BSP STM32F4 (pangweishen).
  • Принудительная компиляция с использованием 32-битного режима в анализе компиляции Clang под Linux (grissiom).
  • Исправлена преждевременная ошибка открытия прерываний в последовательном порту STM32F103 (armink).

Инструменты

  • Добавлена поддержка MD5 в scons (bright-pan). Благодаря участию hduffddybz в этот релиз включён перенос стека протоколов IPv6 (версия lwIP-head), что позволяет реализовать поддержку TCP/IP v4/v6 на небольших устройствах с использованием RT-Thread;

Благодаря участию wzyy2, реализация GDB stub также идеально поддерживает платы разработки BeagleBoneBlack и STM32F4.

Другие результаты работы летнего лагеря CSDN с открытым исходным кодом, такие как начальные результаты переноса bluedroid, мы надеемся включить в последующие версии (возможно, это будет серия версий 2.1.0). Летний лагерь CSDN с открытым исходным кодом — это замечательное мероприятие, которое позволяет студентам заранее погрузиться в практику и получить базовые знания о разработке программного обеспечения. Для сообщества открытого исходного кода это также очень полезное мероприятие для взаимодействия. Надеемся, что в следующем году это мероприятие продолжится, а заинтересованные во встраиваемых системах и RT-Thread могут обратить внимание на его развитие в будущем.

В настоящее время область интеллектуальных устройств является предметом пристального внимания. Учитывая особенности этой области, RT-Thread также...

1
https://api.gitlife.ru/oschina-mirror/rtthread-rt-thread.git
git@api.gitlife.ru:oschina-mirror/rtthread-rt-thread.git
oschina-mirror
rtthread-rt-thread
rtthread-rt-thread
master