RT-Thread v4.0.2 Change Log
Изменения в журнале с версии v4.0.1:
Ядро
- Разделение автоматической инициализации компонентов на автоматическую инициализацию компонентов и основную функцию;
- Добавление API спин-блокировки в режиме SMP;
- Исправление проблемы с написанием RT_IDLE_HOOK;
- Ожидание потока при заполнении очереди сообщений;
- Устранение проблемы удаления mq в
rt_mq_create
в некоторых аномальных случаях;
- Удаление ключевых слов C++ в функции
rt_console_set_device
;
- Удаление члена
suspend_thread_count
из структуры memory_pool;
- Решение проблемы, когда block = NULL в rt_mp_free;
- Решение проблемы некорректной последовательности задач планирования, вызванной rt_thread_yeild в системном планировании;
- Решение проблемы задержки обработки сигналов из-за позднего открытия прерывания;
- При отключении SMP
cpu.c
по умолчанию не будет добавляться в проект;
- Решение проблемы преждевременного включения прерывания
rt_thread_exit
в режиме SMP, что может привести к удалению задачи другими ядрами и вызвать проблемы в последующих стеках функций;
- Защита критических областей при изменении статуса потока
rt_thread_delete
.
Компоненты
- Решение проблемы размера mPool в C++ / Queue;
- Добавление статуса ошибки в C++ / Thread task join/wait function;
- Устранение предупреждений компиляции в DFS/ELM FatFS;
- Поддержка Linux NFS Server в DFS/NFS;
- Решение проблем mkfs в DFS/UFFS;
- Добавление ftruncate, flock, getuid, umask APIs;
- Решение проблемы отображения fd со смещением в команде list_fd;
- Добавление API
dfs_mount_device
для монтирования файловой системы на устройстве, уже находящемся в mount_table;
- Переименование ключевых слов C++ в функции DFS/rename;
- Подключение dfs/poll, select с RT_USING_POSIX в Kconfig;
- Оптимизация части кода finsh для упрощения;
- Использование функции
rt_hw_console_getchar()
при неиспользовании RT_USING_DEVICE, которая проста в реализации и не использует фреймворк устройства;
- Увеличение длины строки в оболочке finsh более 256 символов;
- utest поддерживает компилятор clang и компилятор C++;
- Решение возможных проблем с границами в ulog;
- Устранение предупреждения компиляции в
ulog/ulog_console_backend_output
;
- Поддержка функции отправки и получения файлов в YModem;
- Вычисление CRC16 без таблицы поиска для уменьшения размера кода в компоненте YModem;
- Решение проблемы неправильного освобождения стека во время pthread/destory;
- Решение возможной проблемы утечек памяти, вызванной аномальным случаем pthread_create;
- Перенос связанных с таймером API под разные компиляторы libc в папку
libc\compilers\common
;
- Устранение избыточных определений в
dlib/sys/unistd.h
(что вызовет предупреждения компилятора);
- Добавление заголовочных файлов
sys/errno.h
иsys/signal.h
в dlib;
- Freemodbus больше не является частью ядра и выделен как отдельный пакет программного обеспечения;
- Обновление AT socket до v1.3.0:
- Поддержка многоклиентских и многоустройственных функций в AT Socket, улучшение обработки грязных данных при перезагрузке аппаратного модуля AT устройства;
- Поддержка netdev сетевой карты, управление и контроль сетевого соединения AT устройства через интерфейс сетевой карты;
- Улучшение поддержки функций AT Server в AT компонентах, добавление интерфейсов отправки и приёма данных AT Server
at_server_send ()
и at_server_recv ()
;
- Решение проблемы
closesocket()
в SAL компоненте при неудачном закрытии сокета после shutdown()
;
- Улучшение функции привязки сетевой карты
sal_bind ()
в SAL компоненте;
- Добавление поддержки конфигурации и функций, связанных с IPV6, в SAL и netdev;
- Улучшение обработки ошибок и отображения журнала команды ping в netdev;
- Добавление параметров конфигурации имени хоста и функций в компонент lwIP;
- Решение проблемы утверждения
sys_arch_mbox_fetch()
в lwIP, которая может возникнуть при закрытии сокета;
- Добавление функции удаления сетевой карты и поддержка функции остановки службы dhcpd в компонент lwip;
- Решение проблемы сбоя компиляции компонента lwIP из-за закрытия компонента FinSH;
- Решение проблемы незакрытия сокета во время задачи DHCPD в сервере DHCP lwIP;
- Добавление интерфейса
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.
- Устранение проблем с обработкой ошибок в возвращаемом значении SFUD.
- Определение поддержки устройств W25Q64DW в SFUD.
- Устранение сбоя создания FiFo при создании канала.
- Предотвращение преждевременного освобождения RBB в функции
rt_rbb_destroy()
.
- Переименование нового ключевого слова C++ в функции
rt_rbb_blk_alloc
.
- Унификация структуры
struct rt_delayed_work
в рабочей очереди до структуры struct 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
bsp/essemi/es8p508x
, включая драйверы UART и GPIO.
- Добавление GD32VF103V-EVAL (RISC-V MCU) BSP, включая драйвер UART.
- Изменение порядка BSP NXP i.MXRT и добавление соответствующих документов 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 на основе новой структуры 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, а выполняет действие сна непосредственно в потоке ожидания (как использовать управление питанием, пожалуйста, посетите документ по программированию для получения подробной информации);
- очистить журнал MMC/SD-фреймворка драйвера;
- переписать Sensor Framework, заменить оригинальную реализацию C++ версией C и добавить соответствующие пакеты программного обеспечения для датчиков;
- добавить операцию передачи DMA в рамках последовательного драйвера;
- добавить защиту целостности к процедуре tc_flush последовательного драйвера (loogg);
- добавить API rt_sfud_flash_find_by_dev_name в SFUD;
- когда устройство Pipe закрыто, если это безымянное устройство Pipe и счётчик открытия равен нулю, это устройство Pipe будет удалено;
- добавлена реализация отложенной работы в workqueue, и рабочая очередь системы добавлена в качестве опции;
- исправить потерю данных при передаче DMA через USB CDC;
- изменить тип возвращаемого значения finsh_getchar на int;
- исправить ошибку errno в цепочке инструментов newlib/GCC;
- изменить управление pthreads на массив POSIX-потоков вместо прямого сопоставления pthread_t с rt_thread_t; изменить определение полей, более похожее на newlib/glibc в... Птозс.
- Исправить вывод имени потока в журнале ulog.
- Добавить параметр цикла в utest, затем многократно выполнять тестовые случаи; добавить параметр потока в utest для выполнения тестового случая в новом потоке.
- Увеличить задержку на этапе квитирования, чтобы защитить приём неполных данных в компоненте YModem.
- Добавить компонент netdev, абстрактное понятие netdev используется для управления и контроля устройства сетевого интерфейса, а также предоставить команды управления netdev, включая ping/ifconfig/dns/netstat и т. д.
- Изменить SAL для netdev, то есть добавить оценку состояния и информации netdev при создании сокета и передаче данных.
- Добавить параметры и типы для обработки многоадресного трафика UDP и IPPROTO_IP в SAL.
- Устранить проблемы с функцией itctrol() в SAL, которые не поддерживают управление socketfd.
- Улучшить обработку журнала ошибок в AT-сокете.
- Решить проблему сбоя приёма последовательных данных, когда инициализация клиента AT не завершена.
BSP.
-
Добавить BSP чипа ES32 от Shanghai Eastsoft Microelectronics Co., Ltd. (EastSoft обеспечивает обслуживание и поддержку).
-
Добавить GD32E230K-start с ядром ARM Cortex-M23 BSP (xuzhuoyi).
-
Добавить IMXRT1021-EVK BSP (NXP обеспечивает обслуживание и поддержку).
-
Включить опцию аппаратной контрольной суммы ETH в драйвере IMXRT1052 ETH.
-
Добавить больше периферийных драйверов, таких как GPIO, LCD, SPI, камера и т.д., в BSP Kendryte K210.
-
Очистить BSP LPC 4088, использовать функцию main для входа и поддерживать menuconfig.
-
Добавить LPC1114 BSP с драйвером UART (SASANO Takayoshi, Япония).
-
В BSP Godson 1C добавить механизм двойного буфера кадров и драйвер сенсорного экрана, что позволяет лучше поддерживать интерфейс Persimmon UI (sundm75).
-
Добавить драйвер сторожевого таймера в BSP Godson 1C (sundm75).
-
Добавить MM32 BSP от Shanghai MindMotion Microelectronics Co., Ltd. (MindMotion обеспечивает обслуживание и поддержку).
-
Решить проблемы обработки прерываний SysTick в nRF52832 и добавить файл конфигурации menuconfig.
-
Добавить драйверы QSPI и SPI flash в Nuvoton M487 BSP (bluebear 233).
-
Переместить порт CPU в libcpu/arm/cortex-a папку в QEMU-VExpress A9/IMX6UL BSP.
-
Использовать MAC-адрес, связанный с локальным MAC-адресом, в качестве унифицированного MAC-адреса в сети в BSP QEMU-VExpress A9.
-
Удалить BSP stm32f0x, stm32f7-disco, stm32f107, stm32f40x, stm32l072, stm32l475-iot-disco и stm32l476-nucleo (когда новый STM32 BSP может полностью заменить эти старые BSP, они будут удалены).
-
Для нового STM32 BSP:
- Добавить CAN-драйвер (ylz0923).
- Добавить CAN-драйвер в stm32f103-fire-arbitrary (ylz0923).
- Добавить STM32F746-ST-DISCO с LCD, сторожевым таймером, SDCard, Ethernet, Flash и другими драйверами (Jinsheng).
-
Больше поддержки плат добавлено в новый STM32 BSP:
- STM32F103-ATK-Warship V3 ATK Warship V3 (daizhiwang).
- STm32f103-dofly-M3S Dofly STM32F103 Development Board.
- STM32F103-mini-system, минимальная системная плата для STM32F103 (daizhiwang).
- STM32F401-ST-Nucleo.
- STM32F405-SMDZ-Breadfruit Sanmu Electronic STM32405 Development Board (sunlichao).
- STM32F469-ST-Disco.
- STM32H743-ATK-Apollo (whj4674672).
- STM32L4R9-ST-Eval.
- STM32L053-ST-Nucleo (sun_shine).
- STM32L475-ST-Discovery.
- STM32L476-ST-Nucleo (Vincent-VG).
- STM32L496-ALI-Developer.
-
Добавить поддержку ARC для Synopsys Design Ware ARC EM Starter Kit (Synopsys обеспечивает обслуживание и поддержку).
-
Добавить SCI-драйвер к TMS320F28379D BSP (xuzuoyi).
-
Добавить чип W60X Wi-Fi SoC BSP от Winner Microelectronics Co.,Ltd. (Winner Micro и RealThread обеспечивают обслуживание и поддержку).
-
Решить проблему конфигурации ввода-вывода UART2 в X1000 UART-драйвере (Zhou Yanjie).
-
Добавить файл SConscript для каждого порта CPU.
-
Очистить код libcpu/arm/cortex-a.
-
Разделить _rt_hw_context_switch_interrupt/_rt_hw_context_switch в TI DSP TMS320F28379D BSP (xuzuoyi).
Инструмент.
- Добавить функцию генерации Makefile в scons с помощью команды
scons –target=makefile -s
. Затем разработчик может использовать make для сборки RT-Thread под Linux или Windows.
- Добавить функцию создания проекта Eclipse в scons с помощью команды
scons –target=eclipse -s
, которая поместит необходимую информацию в файлы .cproject
и .project
в текущей папке BSP. Разработчик может использовать Eclipse для сборки RT-Thread.
- Решить проблему с несколькими группами с одинаковыми именами. issue when generating Keil MDK project file and add a library file into the SConscript (Eric Qiang);
- Fix the GCC Version Comparing issue
- ENV version updated to v1.1.2
- Update scons version to 3.0.5
- Fix VC++ warning issue
- Fix Unicode error issue
RT-Thread v4.0.0 Change Log
Kernel
- Добавить поддержку SMP;
- Добавить поддержку 64-битных процессоров;
- Когда поток выполняется на CPU, состояние этого потока изменяется на состояние RUNNING вместо состояния READY в предыдущей версии;
Components
- При форматировании файловой системы добавляется опция FM_SFD для создания тома в формате SFD для FatFs; (HubretXie)
- Добавить указатель дескриптора файловой системы в структуре struct dfs_fd;
- Исправить проблему с fd stdio при использовании POSIX api; (gbcwbz)
- Исправить проблему fd_is_open(): когда подпуть совпадает в разных смонтированных файловых системах.
- Изменить критическую блокировку/разблокировку на dfs_lock/unlock в функции getcwd() DFS (критическая блокировка/разблокировка отличается в среде SMP);
- Переписать реализацию list_thread/list_* команды finsh, чтобы избежать конкуренции многоядерных процессоров;
- Устранить проблему aio_result, возвращаемую aio_read_work в AIO; (fullhan)
- Устранить проблему mmap, когда параметр addr равен NULL; (fullhan)
- Модифицировать функцию _sys_istty в armlibc, чтобы правильно обрабатывать STDIN/STDOUT/STDERR; (gbcwbz)
- Модифицировать функцию _write_r в newlib, чтобы корректно обрабатывать stdout.
- Добавить облегчённые процессы (lwP) и соответствующие системные вызовы;
- пользовательская среда lwP будет добавлена позже;
- Устранить проблему at_socket, когда сокет является нулевым указателем; (thomas onegd)
- Устранить проблему выбора события в функции 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.
- Устранить некоторые предупреждения компиляции и несоответствия перечислений в драйверах/аудио;
- Устранить проблемы can_rx/can_tx, которые не очищаются до NULL при закрытии устройства CAN в драйверах/can; (xeonxu)
- Устранить драйверы/hwtimer, проблему получения времени с режимом обратного отсчёта;
- Добавить драйвер ADC;
- Устранить проблему компенсации тиков при слишком раннем включении прерывания; (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();
- Устранить проблему USB FS в функции _get_descriptor;
- Устранить проблему пустого пароля в режиме AP драйверов/wlan;
- Устранить несоответствие типов возврата в драйверах/wlan;
- Удалить дублирующуюся проверку открытия файла при открытии файла;
BSP
- Заменить имя параметра на cosnt 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)
- Добавить BSP Kendryte K210 с 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)
- Изменить BSP stm32f107 в качестве основной функции входа; (whj4674672)
- Устранить последовательный порт. Проблема обработки прерываний в BSP STM32F10x;
- Добавить драйверы ШИМ, RTC и сторожевого таймера в BSP stm32f10x-HAL; (XXXXzzzz000)
- Исправить проблему с драйвером сторожевого таймера в BSP stm32f4xx-HAL; (XXXXzzzz000);
- Использовать lwIP версии 2.x в BSP для stm32f40x/stm32f107;
- Устранить проблему со ссылкой при включении пакета cmBacktrace в BSP stm32f4xx-HAL; (xeonxu);
- Поддержка функций аудио и микрофонов в BSP apollo для stm32f429;
- Включить поддержку dlmodule в x86 BSP; (SASANO Takayoshi);
- Добавить раздел uTest в скрипт компоновки qemu-vexpress-a9/stm32f429-atk-apollo BSP для автоматического тестирования;
- Изменить лицензию на Apache License v2.0 в BSP Godson 1C; (sundm75);
- Добавить новый фреймворк BSP для последовательного чипа STM32, такого как STM32 G0/F0/L0/F1/F4/F7/H7. В новом фреймворке BSP повторно используются драйверы SoC. И в то же время новый фреймворк поддерживает множество плат STM32:
- Плата разработки Nucleo для STM32F091;
- Плата разработки Nucleo для STM32F411;
- Плата разработки Nucleo для STM32L432;
- Плата Discovery для STM32F407;
- Плата Nucleo для STM32F446;
- Плата Discovery для STM32F746;
- Плата Nucleo для STM32F767;
- Плата Nucleo для STM32G071;
- Плата Nano для разработки ATK STM32F103;
- Плата Explorer для разработки ATK STM32F407;
- Плата Apollo для разработки ATK STM32F429;
- Плата Apollo для разработки ATK STM32F767;
- Плата Pandora IoT для разработки ATK STM32L475;
- Плата произвольной разработки Fire STM32F103;
- Плата Challenger для разработки Fire STM32F429;
- Плата Challenger для разработки Fire STM32F767;
- ArmFly STM32F429-v6 Development Board BSP;
- iBox для разработки STM32F103;
- Dofly STM32F103 Development Board;
- uC/Eval Development Board для STM32F107;
и другие, в разработке BSP фреймворка для STM32 участвует больше разработчиков, таких как HubretXie, Hao Zhu, e190 и другие, чтобы улучшить публичный драйвер STM32;
- Добавить SWM320 BSP от Synwit.cn, включая GPIO, HW Timer, I2C, сторожевой таймер, ШИМ, RTC, SPI, UART и т. д.; (предоставлено и поддерживается Synwit);
- Добавить TI TMS320F28379D BSP, первый DSP-чип, поддерживаемый RT-Thread; (xuzhuoyi);
- Исправить проблему драйвера USB в X1000; (Zhou YanJie);
- Добавить BSP для Synopsys Design Ware ARC EM Starter Kit, bsp/synopsys/emsk_em9d, EM9D core, включая GPIO, UART и другие драйверы; (предоставлен и поддерживается Synopsys).
Инструмент
- Предоставить больше информации, когда цепочка инструментов не существует;
- Добавить команду генерации проекта 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
. Поскольку архитектур процессоров со стеком, растущим вверх, меньше, этот элемент конфигурации не отображается непосредственно в menuconfig. Когда архитектуре процессора требуется стек, растущий вверх, конфигурация ARCH_CPU_STACK_GROWS_UPWARD
может быть выбрана файлом Kconfig BSP по умолчанию.
- Поддержка ARMCC V6 и более поздних компиляторов (LLVM-based Compiler); в настоящее время он в основном используется в Keil MDK IDE. Обратите внимание, что «Предупреждения» должны использовать
Moderate Warnings
в конфигурации проекта в C/C++ (AC6) TAB; после этого... Использование ARMCC версии 6, RT-Thread добавит дополнительное определение макроса CLANG_ARM
; (liruncong, nongxiaoming, bernard)
- Конфигурация
RT_USING_IDLE_HOOK
в Kconfig становится отдельным элементом конфигурации, не ограничиваясь RT_USING_HOOK
; (geniusgogo)
Компоненты
- Улучшение структуры драйвера ШИМ и добавление дополнительных интерфейсов.
- Исправление проблемы с обработкой F_SETFL в функции ioctrl; исправление проблемы с возвращаемым значением функции fcntl, которое всегда равно 0.
- Устранение проблемы с типом объекта memheap при создании объекта ramfs.
- Добавление структуры управления питанием для приложений с низким энергопотреблением.
- Поддержка многосегментных операций чтения и записи в структуре драйвера MC/SDIO (для stm32 можно выбрать отдельный пакет stm32_sdio); (weety)
- Добавление компонента ringblk_buf для блочного режима, но в приложениях кольцевого буфера.
- Улучшение структуры управления WLAN с унифицированными интерфейсами, управлением, командами для обеспечения более удобной поддержки разработчиков и пользователей.
- Добавление условного макроса в finsh, когда компонент MSH не включён, даже если файлы кода скомпилированы.
- Удаление gdbstub и перемещение в пакеты rt-thread.
- Обновление и улучшение компонентов SAL и AT: (linuxhan, eddylin83, slyant, luofanlu, Hubert Xie, Lawlieta, zhaojuntao, armink)
- Устранение проблемы с очисткой сокета при закрытии в SAL, из-за которой сокет всегда удерживается.
- Исправление проблемы
select()
для UDP-коммуникации в компоненте AT. Добавление обработки полученных данных для завершения очистки полученного события.
- Добавление значения errno при тайм-ауте получения данных в функции at_recvfrom в компоненте AT.
- Обработка тайм-аута получения данных в функции at_client_recv в компоненте AT.
- Устранение возможной проблемы в реализации функции fputc при использовании microlib.
- Реализация gmtime_r для ARMCC, инструментальной цепочки IAR.
- Улучшенная поддержка функций времени в IAR и поддержка 64-битного времени; (hichard)
- Поддержка 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.
- Устройство: проверка незаконного регистрирования драйверов классов; устранение проблемы несогласованного доступа на некоторых платформах; оптимизация классов CDC VCOM, добавление механизма тайм-аутов и определения ID.
BSP
- Обновление адаптера wlan до новой версии структуры управления Wi-Fi в BSP amebaz.
- Включение кода конфигурации airkiss wifi в BSP amebaz.
- Обновление Apollo2 BSP с драйверами ADC, GPIO, I2C, PDM, SPI, UART и другими; (Haleyl)
- Изменение BeagleBone BSP на режим основной функции и добавление файла конфигурации Kconfig.
- DM365 BSP добавляет файл конфигурации Kconfig;
- Обновление HiFive1 BSP и добавление дополнительной документации.
- Обновление imx6sx BSP до режима основной функции и добавление файла конфигурации Kconfig.
- Замена старого imxrt1052-evk BSP. BSP imxrt1052 классифицируются в каталог
bsp/imxrt
, а позже будут перемещены в каталог components/drivers
.
- Улучшение BSP stm32f4xx-HAL с драйверами PWM, I2C и USB Host; (XuanZe, xuzhuoyi)
- Улучшение BSP stm32f10x с драйвером CAN и увеличение драйвера I2C; (wuhanstudio, AubrCool)
- Улучшение BSP stm32f10x-HAL с драйверами I2C, IWG, PWM, RTC и другими, улучшение драйвера UART; (XuanZe)
- Улучшение BSP stm32f429-disco и добавление драйверов I2C, LCD, Touch; (xuzhuoyi)
- Улучшение x86 BSP, поддержка функции dlmodule; (SASANO Takayoshi, parai)
Tool
-
Модификация скрипта сборки для поддержки Python 3; <патчи Python 3 были отправлены в scons и требуют ожидания следующего выпуска scons, возможно, scons-3.0.2> (Arda)
-
Добавление режима scons --pyconfig
, который имеет конфигуратор TK UI; (weety)
-
Поддержка инструментальных цепочек GNU GCC 7/8 (флаг -std=c99
не добавлен в флаги C-компилятора), но обратите внимание: компонент PThreads не работает в версии 2.5 и новой версии newlib. Проверка типа объекта ядра, которая позволяет эффективно избежать проблемы продолжения использования объектов ядра после их уничтожения.
-
Добавить список ловушек простоя для монтирования нескольких ловушек простоя, и можно настроить с помощью 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() для задержки в миллисекундах в потоке.
Компоненты
- Исправить проблему DFS mkfs FatFs (проблема слияния, появившаяся при обновлении RT-Thread V3.0).
- Исправить проблему dfs_net poll, если уже получены данные, верхний уровень не может проснуться и обработать данные.
- Исправить проблему сокета в dfs_net, если lwip_socket не удалось (Bluebear233);
- Если функция dfs_net/socket используется в версии lwIP 1.x, будет возвращена ошибка компилятора.
- Исправить проблему информации DFS df();
- Исправить проблему записи аудиоустройства, когда прерывание не восстанавливается должным образом.
- Исправить проблему однократного тайм-аута в структуре драйвера аппаратного таймера.
- В драйвере ENC28J60 включить «изменение состояния соединения» в инициализации.
- Исправить проблему данных при помещении данных в кольцевой буфер.
- Добавить отображение информации UDP в команде netstat;
- Исправить проблему USB HS при отправке 1 байта данных, приводящую к двум передачам.
- Изменить механизм регистрации USB Class Driver, и класс Driver можно зарегистрировать в пакете.
- Добавить структуру драйвера устройства USB для HS USB.
- Улучшить совместимость функции time() для разных компиляторов;
- Добавить больше элементов конфигурации для DHCPD в menuconfig.
BSP
- Временно удалить трансплантацию Andes AE210P из-за ошибочного использования SVC для переключения контекста.
- Добавить диск SD/MMC во все BSP на базе ARM9 от Allwinner.
- Добавить драйверы SPI и SPI Flash в BSP Allwinner ARM9.
- Поддержка платы разработки GD32's gd32303e-eval.
- Поддержка компиляции GNU GCC на gd32450z-eval.
- Переписать пакет поддержки уровня платы 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).
- Драйвер USB-устройств на i.MX RT1052.
- Добавить файлы 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 в 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 в... stm32f40x BSP:
- Добавить файл конфигурации KConfig в BSP для stm32f20x;
- Включить поддержку инструментальной цепочки GNU GCC и добавить файл описания README в BSP для stm32f411-nucleo;
- Добавить драйвер GPIO и файл описания README в BSP для stm32f429-apollo;
- Добавить файлы конфигурации KConfig в BSP для stm32f429-armfly;
- Добавить файл описания README в BSP для stm32l476-nucleo.
Инструменты:
- Реализовать функцию обнаружения версии инструментальной цепочки GNU GCC и функции библиотеки libc.
- Встроить функцию помощи редактора VSCode и поддерживать команду scons --target=vsc -s в папке BSP для генерации файлов конфигурации для VSCode.
- Реализовать обнаружение версии IAR.
- Внедрить функцию ProjectInfo (Env) для получения информации о цели: все исходные файлы должны быть скомпилированы, все заголовочные файлы, все определения макросов, пути поиска для заголовочного файла и т. д.
RT-Thread 3.0.3 Change Log
Ядро
- Защита планировщика при очистке отсоединённого потока;
- Исправление проблемы с 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 как отдельного пакета;
- Добавление унифицированного драйвера 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;
- Добавление gk7102 BSP от gokemicro;
- Добавление ARM9 allwinner F1C100s BSP (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;
- Обновление UI-движка и добавление примера;
- Разделение clock_time из pthreads и добавление нового идентификатора часов: CLOCK_CPUTIME_ID;
- Поддержка IPv6 в lwIP 2.0.2;
- Memlog в logtrace;
- Закрытие сокета в dfs_net;
- IPv6 в NFS;
- Обновление файловой системы JFFS2. С новым DFS API
- Исправить проблему со stat "/.." в lwext4 (parai).
- Исправить проблему с поиском типа fs в mkfs.
- Исправить проблему выбора в 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.
- Исправить проблему с filesystem_operation_table.
- Улучшить стек USB для устройства USB slave (HID/ECM/RNDIS/WINUSB или составное устройство).
- Улучшить стек USB для хоста USB (HID/MSC и т. д.).
- Исправить утечку памяти при закрытии канала.
- Исправить проблему открытия romfs.
- Добавить устройство SoftAP в Wi-Fi фреймворк.
- Изменить порядок инициализации lwIP/ETH.
- Добавить опции IPv6 в Kconfig.
- Исправить проблему module_id в _rt_thread_init.
Инструменты:
- Добавить menuconfig для платформы Linux/Mac: используйте scons --memuconfig, чтобы включить его.
- Добавить LIBS для проекта IAR.
BSP:
- Улучшить BSP LPC54608 для различных компиляторов.
- Добавить GPIO/I2C/SPI-драйверы для Loongson 1C.
- Добавить csd cmd в драйвер sdcard mini2440.
- Добавить SDIO/EMAC-драйверы для BSP qemu-vexpress-a9.
- Разрешить VC++ компилировать BSP симулятора.
- Добавить BSP STM32F4XX-HAL для различных серий STM32F4 <пользователь может использовать menuconfig для выбора чипа>.
- Исправить сброс PHY в BSP stm32f429-apollo.
- Добавить Audio/MMC/SLCD/Touch/USB slave/RTC/SPI/SFC Flash-драйверы в BSP Ingenic X1000.
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:
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/аппаратные драйверы устройств таймера.
-
Исправлена проблема SDIO для поддержки. sdio wifi device
-
Добавить поддержку eMMC в драйверах устройств SD/MMC;
-
Исправить проблему сброса конфигурации NAT в lwIP NAT.
-
Вернуть RTGUI, но в качестве UI-движка для blend point/line/rect и bitmap и т. д.
-
Добавить портирование nanopb, реализацию Protocol Buffers небольшого размера;
-
Добавить портирование paho-mqtt, клиент Eclipse Paho MQTT C/C++ для встраиваемых платформ;
-
Обновить freetype до версии 2.5.4.
-
Улучшить msh для файловых операций.
-
Разделить экспортированные команды оболочки finsh на отдельный раздел: «.rodata.name».
Изменения в версии RT-Thread v2.1.0 beta
BSP-часть
- BeagleBone — добавить поддержку GPIO;
- Jingwei Yage M7 — обновить библиотеку драйверов и улучшить драйвер EMAC;
- Новый участник — dm365 (включая EMAC, GPIO, I2C, MMC/SD, SPI и другие драйверы);
- LPC4088 — добавить EMC, аппаратный таймер, CAN-драйвер;
- Новый участник — Longxin 1C, плата разработки Zylon v2 (включая многопортовый драйвер);
- Изменить способ переноса mini2440 на applications/drivers и др.;
- Обновить перенос симулятора на MS VC++, обработать инициализацию кода, усовершенствовать драйвер консоли UART;
- Новый участник — stm32f7-disco;
- В stm32f10x добавить CAN-драйвер и примеры приложений;
- В stm32f40x добавить драйвер аппаратного таймера и RTC;
- Настроить stm32f107 под новую структуру драйвера последовательного порта;
Компоненты
- Удалить член st_blksize в структуре stat библиотеки DFS (совместимо с определением stat в VC++);
- Исправить проблемы реализации select в DFS;
- Исправить ошибки при работе с файлами в DFS, а также проблемы с обработкой fd при закрытии;
- Исправить ошибки в mkdir и lseek в DFS и проблемы с обработкой fd;
- Исправить защиту SYS_ARCH_PROTECT/SYS_ARCH_UNPROTECT в lwIP;
- Увеличить CAN-драйвер;
- Увеличить драйвер аппаратного таймера;
- Включить поддержку eMMC в драйвере SD/MMC;
- Исправить ошибку при регистрации SDIO-драйвера;
- Исправить проблему с флагом активации DMA при отправке через последовательный порт;
- Включить в SPI Flash-драйвер поддержку чипа GD25Q spi flash;
- Добавить компонент paho-mqtt;
- Расширить возможности выполнения скриптов в msh, позволяя запускать скрипты *.sh;
- Добавить команду mkfs в msh;
- Исправить проблему обработки возврата каретки в Telnet под Linux в оболочке finsh;
- При использовании armcc или gnu gcc добавить экспорт символов libc в модули приложений;
- В драйвере Ethernet-карты добавить параметры 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, серия исправлений ошибок, а v2.1.0 alpha — текущая основная версия разработки, которая представляет собой технический предварительный просмотр версии v2.1.0 и не рекомендуется для использования в реальных продуктах из-за возможного наличия большого количества ошибок.
Изменения в RT-Thread v2.0.1
- Для IAR dlib добавлена поддержка THREAD_SUPPORT и FILE_DESCRIPTOR;
- Исправлена проблема с отображением echo в finsh;
- Исправлены ошибки компиляции в коде USB host;
- Исправлен вызов функции обратного вызова в sensor framework;
- Исправлено имя устройства при регистрации pin-устройства;
v2.1.0 alpha представляет собой развитие первоначального плана roadmap, включая:
- Более глубокую интеграцию lwip, включив его в файловую систему RT-Thread, чтобы сетевые приложения сокетов в Linux/Unix могли более плавно переноситься на RT-Thread.
Эта версия является частью серии v2.1.0, но также не связана с выпуском 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);
- Исправлены некоторые проблемы в sensor framework и добавлен интерфейс C API (предоставленный компанией Zhise Technology Service);
- Добавлен код датчика 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 системами (предоставлен компанией Zhise Technology Service);
- Добавлены компоненты lwIP/NAT для преобразования адресов между несколькими сетевыми портами (Hicard);
- Добавлен lwIP/DHCP сервер для назначения IP-адресов клиентам (предоставлен компанией Zhise Technology Service);
BSP
- Исправлена ошибка преждевременного открытия прерывания в последовательном порту LPC4357 (nongxiaoming);
- Переписан драйвер последовательного порта LPC4357, и оба ядра M4/M0 на чипе выполняют RT-Thread систему, используя VBUS для межсистемного взаимодействия (предоставлено компанией Zhise Technology Service);
- Новый участник RX (limxuzheng);
- Новый участник NuMicro M051 Series, поддерживающий GCC и Keil MDK (bright-pan);
- Новый участник LPC54102 (Coing);
- Удалена конфигурация RT_TIMER_TICK_PER_SECOND в STM32F4 BSP (pangweishen);
- Обязательная компиляция с использованием 32-битного режима в анализе компиляции Clang под Linux (grissiom);
- Исправлена преждевременная ошибка открытия прерываний в последовательном порте STM32F103 (armink);
Инструменты
- Добавлена поддержка MD5 в scons (bright-pan). Реализован stub, который также идеально поддерживает разработку на платах BeagleBoneBlack и STM32F4;
В CSDN Open Source Summer Camp есть и другие результаты, например, начальные результаты портирования bluedroid. Надеемся, что они будут включены в последующие версии (возможно, это будет серия версий 2.1.0). CSDN Open Source Summer Camp — это отличное мероприятие, которое позволяет студентам заранее погрузиться в практику и получить базовые знания о разработке ПО. Для сообщества open source это также очень полезное мероприятие для взаимодействия. Надеемся, что в следующем году это мероприятие продолжится. Студенты, интересующиеся RT-Thread и разработкой встраиваемых систем, могут обратить внимание на развитие в следующем году.
Область интеллектуальных устройств сейчас привлекает большое внимание. В соответствии с особенностями этой области, RT-Thread также...
Опубликовать ( 0 )