From 47e0d9a057537133b130e8b4e56f549a662a3e38 Mon Sep 17 00:00:00 2001 From: yangjie11 Date: Wed, 2 Aug 2023 17:16:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E3=80=90=E6=B7=BB=E5=8A=A0=E3=80=91?= =?UTF-8?q?=E5=86=85=E6=A0=B8=20API=20=E6=9B=B4=E6=96=B0=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rt-thread-standard/_sidebar.md | 1 + .../kernel-api-released-log.md | 580 ++++++++++++++++++ 2 files changed, 581 insertions(+) create mode 100644 rt-thread-version/rt-thread-standard/api-released-log/kernel-api-released-log.md diff --git a/rt-thread-version/rt-thread-standard/_sidebar.md b/rt-thread-version/rt-thread-standard/_sidebar.md index a71a262..e3f5ea5 100644 --- a/rt-thread-version/rt-thread-standard/_sidebar.md +++ b/rt-thread-version/rt-thread-standard/_sidebar.md @@ -29,6 +29,7 @@ - [内核移植](/rt-thread-version/rt-thread-standard/programming-manual/porting/porting.md) - [原子操作](/rt-thread-version/rt-thread-standard/programming-manual/atomic/atomic.md) - [SMP 介绍与移植](/rt-thread-version/rt-thread-standard/programming-manual/smp/smp.md) + - [内核API更新日志](/rt-thread-version/rt-thread-standard/api-released-log/kernel-api-released-log.md) - 设备和驱动 - [I/O设备模型](/rt-thread-version/rt-thread-standard/programming-manual/device/device.md) - [UART设备](/rt-thread-version/rt-thread-standard/programming-manual/device/uart/uart_v1/uart.md) diff --git a/rt-thread-version/rt-thread-standard/api-released-log/kernel-api-released-log.md b/rt-thread-version/rt-thread-standard/api-released-log/kernel-api-released-log.md new file mode 100644 index 0000000..4f103c0 --- /dev/null +++ b/rt-thread-version/rt-thread-standard/api-released-log/kernel-api-released-log.md @@ -0,0 +1,580 @@ +# 内核 API 更新日志 + +在 rt-thread 源码进行版本发布时,若内核 (src) API 有更新,则将内核 API 的详细变动记录在此。 + +注:暂未包含 SMP 相关的接口,日志内容含:API 增加、API 删除、API 更改。 + +## new version + +## 5.0.1 + +#### API 增加: + +irq.c + +```c +rt_weak rt_bool_t rt_hw_interrupt_is_disabled(void) /* 5.0.1 */ +``` + +object.c + +```c +rt_err_t rt_object_get_name(rt_object_t object, char *name, rt_uint8_t name_size) /* 5.0.1 */ +``` + +thread.c + +```c +rt_err_t rt_thread_get_name(rt_thread_t thread, char *name, rt_uint8_t name_size) /* 5.0.1 */ +``` + +#### API 变更: + +ipc.c + +```c +/* 返回值类型更新 */ +rt_ssize_t rt_mq_recv(rt_mq_t mq, + void *buffer, + rt_size_t size, + rt_int32_t timeout) /* 5.0.1 */ +rt_err_t rt_mq_recv(rt_mq_t mq, + void *buffer, + rt_size_t size, + rt_int32_t timeout) /* 5.0.0 */ + +rt_ssize_t rt_mq_recv_interruptible(rt_mq_t mq, + void *buffer, + rt_size_t size, + rt_int32_t timeout) /* 5.0.1 */ +rt_err_t rt_mq_recv_interruptible(rt_mq_t mq, + void *buffer, + rt_size_t size, + rt_int32_t timeout) /* 5.0.0 */ + +rt_ssize_t rt_mq_recv_killable(rt_mq_t mq, + void *buffer, + rt_size_t size, + rt_int32_t timeout) /* 5.0.1 */ +rt_err_t rt_mq_recv_killable(rt_mq_t mq, + void *buffer, + rt_size_t size, + rt_int32_t timeout) /* 5.0.0 */ +``` + +## 5.0.0 + +- RT_WEAK 改为 rt_weak +- ALIGN 改为 rt_align +- 新增 driver.c 文件 +- scheduler.c 分为 scheduler_mp.c(SMP 相关) 和 scheduler_up.c(单核) + +#### API 增加: + +device.c + +```c +// #ifdef RT_USING_DM +rt_err_t rt_device_bind_driver(rt_device_t device, rt_driver_t driver, void *node); /* 5.0.0 */ +rt_device_t rt_device_create_since_driver(rt_driver_t drv,int device_id); /* 5.0.0 */ +rt_err_t rt_device_probe_and_init(rt_device_t device); /* 5.0.0 */ +// #endif +``` + +新增 driver.c 文件,其中新增 API: + +```c +// #ifdef RT_USING_DM +rt_err_t rt_driver_match_with_id(const rt_driver_t drv,int device_id); /* 5.0.0 */ +rt_err_t rt_driver_match_with_dtb(const rt_driver_t drv,void *from_node,int max_dev_num); /* 5.0.0 */ +// #endif +``` + +ipc.c + +```c +rt_err_t rt_sem_take_interruptible(rt_sem_t sem, rt_int32_t timeout); /* 5.0.0 */ +rt_err_t rt_sem_take_killable(rt_sem_t sem, rt_int32_t timeout); /* 5.0.0 */ +void rt_mutex_drop_thread(rt_mutex_t mutex, rt_thread_t thread); /* 5.0.0 */ +rt_uint8_t rt_mutex_setprioceiling(rt_mutex_t mutex, rt_uint8_t priority); /* 5.0.0 */ +rt_uint8_t rt_mutex_getprioceiling(rt_mutex_t mutex); /* 5.0.0 */ +rt_err_t rt_mutex_take_interruptible(rt_mutex_t mutex, rt_int32_t time); /* 5.0.0 */ +rt_err_t rt_mutex_take_killable(rt_mutex_t mutex, rt_int32_t time); /* 5.0.0 */ +rt_err_t rt_event_recv_interruptible(rt_event_t event, + rt_uint32_t set, + rt_uint8_t opt, + rt_int32_t timeout, + rt_uint32_t *recved); /* 5.0.0 */ +rt_err_t rt_event_recv_killable(rt_event_t event, + rt_uint32_t set, + rt_uint8_t opt, + rt_int32_t timeout, + rt_uint32_t *recved); /* 5.0.0 */ +rt_err_t rt_mb_send_wait_interruptible(rt_mailbox_t mb, + rt_ubase_t value, + rt_int32_t timeout); /* 5.0.0 */ +rt_err_t rt_mb_send_wait_killable(rt_mailbox_t mb, + rt_ubase_t value, + rt_int32_t timeout); /* 5.0.0 */ +rt_err_t rt_mb_recv_interruptibale(rt_mailbox_t mb, rt_ubase_t *value, rt_int32_t timeout); /* 5.0.0 */ +rt_err_t rt_mb_recv_killable(rt_mailbox_t mb, rt_ubase_t *value, rt_int32_t timeout); /* 5.0.0 */ +rt_err_t rt_mq_send_interrupt(rt_mq_t mq, const void *buffer, rt_size_t size); /* 5.0.0 */ +rt_err_t rt_mq_send_killable(rt_mq_t mq, const void *buffer, rt_size_t size); /* 5.0.0 */ +rt_err_t rt_mq_send_wait_interruptible(rt_mq_t mq, + const void *buffer, + rt_size_t size, + rt_int32_t timeout); /* 5.0.0 */ +rt_err_t rt_mq_send_wait_killable(rt_mq_t mq, + const void *buffer, + rt_size_t size, + rt_int32_t timeout); /* 5.0.0 */ +rt_err_t rt_mq_recv_interruptible(rt_mq_t mq, + void *buffer, + rt_size_t size, + rt_int32_t timeout); /* 5.0.0 */ +rt_err_t rt_mq_recv_killable(rt_mq_t mq, + void *buffer, + rt_size_t size, + rt_int32_t timeout); /* 5.0.0 */ +``` + +object.c + +```c +rt_object_t rt_custom_object_create(const char *name, void *data, rt_err_t (*data_destroy)(void *)) /* 5.0.0 */ +rt_err_t rt_custom_object_destroy(rt_object_t obj) /* 5.0.0 */ + +``` + +#### API 变更: + +device.c + +```c +rt_ssize_t rt_device_read(rt_device_t dev, + rt_off_t pos, + void *buffer, + rt_size_t size) /* 5.0.0 */ +rt_size_t rt_device_read(rt_device_t dev, + rt_off_t pos, + void *buffer, + rt_size_t size) /* 4.1.1 */ + +rt_ssize_t rt_device_write(rt_device_t dev, + rt_off_t pos, + const void *buffer, + rt_size_t size); /* 5.0.0 */ +rt_size_t rt_device_write(rt_device_t dev, + rt_off_t pos, + const void *buffer, + rt_size_t size); /* 4.1.1 */ + +``` + +irq.c + +```c +rt_weak void rt_interrupt_enter(void) /* 5.0.0 */ + void rt_interrupt_enter(void) /* 4.1.1 */ + +rt_weak void rt_interrupt_leave(void) /* 5.0.0 */ + void rt_interrupt_leave(void) /* 4.1.1 */ + +rt_weak rt_uint8_t rt_interrupt_get_nest(void) /* 5.0.0 */ + rt_uint8_t rt_interrupt_get_nest(void) /* 4.1.1 */ + +``` + +## 4.1.1 + +内核 API 无更改。 + +## 4.1.1-beta + +#### API 增加: + +kservice.c + +```c +RT_WEAK void rt_hw_us_delay(rt_uint32_t us) /* 4.1.1-beta */ +const char *rt_strerror(rt_err_t error) /* 4.1.1-beta */ +``` + +## 4.1.0 + +- 整理内存相关的文件以及 API + +#### API 增加: + +clock.c + +```c +void rt_tick_sethook(void (*hook)(void)) /* 4.1.0 */ +``` + +kservice.c + +```c +char *rt_strcpy(char *dst, const char *src) /* 4.1.0 */ +void rt_malloc_sethook(void (*hook)(void *ptr, rt_size_t size)) /* 4.1.0 */ +void rt_free_sethook(void (*hook)(void *ptr)) /* 4.1.0 */ +RT_WEAK void rt_system_heap_init(void *begin_addr, void *end_addr) /* 4.1.0 */ +RT_WEAK void *rt_malloc(rt_size_t size) /* 4.1.0 */ +RT_WEAK void *rt_realloc(void *rmem, rt_size_t newsize) /* 4.1.0 */ +RT_WEAK void *rt_calloc(rt_size_t count, rt_size_t size) /* 4.1.0 */ +RT_WEAK void rt_free(void *rmem) /* 4.1.0 */ +RT_WEAK void rt_memory_info(rt_size_t *total, + rt_size_t *used, + rt_size_t *max_used) /* 4.1.0 */ +void *rt_page_alloc(rt_size_t npages) /* 4.1.0 */ +void rt_page_free(void *addr, rt_size_t npages) /* 4.1.0 */ +``` + +mem.c + +```c +rt_smem_t rt_smem_init(const char *name, + void *begin_addr, + rt_size_t size) /* 4.1.0 */ +rt_err_t rt_smem_detach(rt_smem_t m) /* 4.1.0 */ +void *rt_smem_alloc(rt_smem_t m, rt_size_t size) /* 4.1.0 */ +void *rt_smem_realloc(rt_smem_t m, void *rmem, rt_size_t newsize) /* 4.1.0 */ +void rt_smem_free(void *rmem) /* 4.1.0 */ +void rt_memheap_info(struct rt_memheap *heap, + rt_size_t *total, + rt_size_t *used, + rt_size_t *max_used) /* 4.1.0 */ +``` + +memheap.c + +```c +void rt_memheap_info(struct rt_memheap *heap, + rt_size_t *total, + rt_size_t *used, + rt_size_t *max_used) /* 4.1.0 */ +``` + +slab.c + +```c +rt_err_t rt_slab_detach(rt_slab_t m) /* 4.1.0 */ +``` + +#### API 删除: + +mem.c + +```c +void rt_malloc_sethook(void (*hook)(void *ptr, rt_size_t size)) /* 4.1.0 delete*/ +void rt_free_sethook(void (*hook)(void *ptr)) /* 4.1.0 delete*/ +rt_err_t rt_smem_detach(rt_smem_t m) /* 4.1.0 delete*/ +void *rt_calloc(rt_size_t count, rt_size_t size) /* 4.1.0 delete*/ +void rt_memory_info(rt_uint32_t *total, + rt_uint32_t *used, + rt_uint32_t *max_used) /* 4.1.0 delete*/ +``` + +thread.c + +```c +void rt_thread_timeout(void *parameter) /* 4.1.0 delete*/ +``` + +slab.c + +```c +void *rt_calloc(rt_size_t count, rt_size_t size) +void rt_memory_info(rt_uint32_t *total, + rt_uint32_t *used, + rt_uint32_t *max_used) /* 4.1.0 delete*/ +``` + +#### API 变更: + +kservice.c + +```c + +RT_WEAK void *rt_memcpy(void *dst, const void *src, rt_ubase_t count) /* 4.1.0 */ + void *rt_memcpy(void *dst, const void *src, rt_ubase_t count) /* 4.0.4 */ + +void *rt_memmove(void *dest, const void *src, rt_size_t n) /* 4.1.0 */ +void *rt_memmove(void *dest, const void *src, rt_ubase_t n) /* 4.0.4 */ + + rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_size_t count) /* 4.1.0 */ +RT_WEAK rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_ubase_t count) /* 4.0.4 */ + +char *rt_strncpy(char *dst, const char *src, rt_size_t n) /* 4.1.0 */ +char *rt_strncpy(char *dst, const char *src, rt_ubase_t n) /* 4.0.4 */ + +rt_int32_t rt_strncmp(const char *cs, const char *ct, rt_size_t count) /* 4.1.0 */ +rt_int32_t rt_strncmp(const char *cs, const char *ct, rt_ubase_t count) /* 4.0.4 */ + +RT_WEAK int rt_vsnprintf(char *buf, + rt_size_t size, + const char *fmt, + va_list args) /* 4.1.0 */ +rt_int32_t rt_vsnprintf(char *buf, + rt_size_t size, + const char *fmt, + va_list args) /* 4.0.4 */ + + int rt_snprintf(char *buf, rt_size_t size, const char *fmt, ...) /* 4.1.0 */ +rt_int32_t rt_snprintf(char *buf, rt_size_t size, const char *fmt, ...) /* 4.0.4 */ + + int rt_vsprintf(char *buf, const char *format, va_list arg_ptr) /* 4.1.0 */ +rt_int32_t rt_vsprintf(char *buf, const char *format, va_list arg_ptr) /* 4.0.4 */ + + int rt_sprintf(char *buf, const char *format, ...) /* 4.1.0 */ +rt_int32_t rt_sprintf(char *buf, const char *format, ...) /* 4.0.4 */ + +RT_WEAK int rt_kprintf(const char *fmt, ...) /* 4.1.0 */ +RT_WEAK void rt_kprintf(const char *fmt, ...) /* 4.0.4 */ + +``` + +mem.c + +```c +rt_smem_t rt_smem_init(const char *name, + void *begin_addr, + rt_size_t size) /* 4.1.0 */ +void rt_system_heap_init(void *begin_addr, void *end_addr) /* 4.0.4 */ + +void *rt_smem_alloc(rt_smem_t m, rt_size_t size) /* 4.1.0 */ +void *rt_malloc(rt_size_t size) /* 4.0.4 */ + +void *rt_smem_realloc(rt_smem_t m, void *rmem, rt_size_t newsize) /* 4.1.0 */ +void *rt_realloc(void *rmem, rt_size_t newsize) /* 4.0.4 */ + +void rt_smem_free(void *rmem) /* 4.1.0 */ +void rt_free(void *rmem) /* 4.0.4 */ +``` + +slab.c + +```c +rt_slab_t rt_slab_init(const char *name, void *begin_addr, rt_size_t size) /* 4.1.0 */ +void rt_system_heap_init(void *begin_addr, void *end_addr) /* 4.0.4 */ + +void *rt_slab_page_alloc(rt_slab_t m, rt_size_t npages) /* 4.1.0 */ +void *rt_page_alloc(rt_size_t npages) /* 4.0.4 */ + +void rt_slab_page_free(rt_slab_t m, void *addr, rt_size_t npages) /* 4.1.0 */ +void rt_page_free(void *addr, rt_size_t npages) /* 4.0.4 */ + +void *rt_slab_alloc(rt_slab_t m, rt_size_t size) /* 4.1.0 */ +void *rt_malloc(rt_size_t size) /* 4.0.4 */ + +void *rt_slab_realloc(rt_slab_t m, void *ptr, rt_size_t size) /* 4.1.0 */ +void *rt_realloc(void *ptr, rt_size_t size) /* 4.0.4 */ + +void rt_slab_free(rt_slab_t m, void *ptr) /* 4.1.0 */ +void rt_free(void *ptr) /* 4.0.4 */ +``` + +## 4.0.4 + +#### API 增加: + +idle.c + +```c +void rt_thread_defunct_enqueue(rt_thread_t thread) /* 4.0.4 */ +rt_thread_t rt_thread_defunct_dequeue(void) /* 4.0.4 */ +``` + +ipc.c + +```c +rt_err_t rt_mutex_trytake(rt_mutex_t mutex) /* 4.0.4 */ +rt_err_t rt_mb_urgent(rt_mailbox_t mb, rt_ubase_t value) /* 4.0.4 */ +``` + +scheduler.c + +```c +void rt_scheduler_switch_sethook(void (*hook)(struct rt_thread *tid)) /* 4.0.4 */ +``` + +#### API 删除: + +device.c + +```c +rt_err_t rt_device_init_all(void) /* 4.0.4 delete */ +``` + +#### API 变更: + +idle.c + +```c +/* 函数名变更,并使用 static 修饰 */ +static void rt_defunct_execute(void) /* 4.0.4 */ + void rt_thread_idle_excute(void) /* 4.0.3 */ +``` + +kservice.c, 增加 `RT_WEAK` 修饰 + +```c +RT_WEAK void *rt_memset(void *s, int c, rt_ubase_t count) /* 4.0.4 */ + void *rt_memset(void *s, int c, rt_ubase_t count) /* 4.0.3 */ + +RT_WEAK rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_ubase_t count) /* 4.0.4 */ + rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_ubase_t count) /* 4.0.3 */ + +RT_WEAK void rt_kprintf(const char *fmt, ...) /* 4.0.4 */ + void rt_kprintf(const char *fmt, ...) /* 4.0.3 */ + +RT_WEAK void *rt_malloc_align(rt_size_t size, rt_size_t align) /* 4.0.4 */ + void *rt_malloc_align(rt_size_t size, rt_size_t align) /* 4.0.3 */ + +RT_WEAK void rt_free_align(void *ptr) /* 4.0.4 */ + void rt_free_align(void *ptr) /* 4.0.3 */ +``` + +thread.c + +```c +static void _thread_exit(void) /* 4.0.4 */ + void rt_thread_exit(void) /* 4.0.3 */ +``` + +## 4.0.3 + +#### API 增加: + +1. clock.c + +```c +RT_WEAK rt_tick_t rt_tick_get_millisecond(void) /* 4.0.3 */ +``` + +2. memheap.c + +```c +void rt_memory_info(rt_uint32_t *total, + rt_uint32_t *used, + rt_uint32_t *max_used) /* 4.0.3 */ +``` + +3. object.c + +```c +int rt_object_get_length(enum rt_object_class_type type) /* 4.0.3 */ +int rt_object_get_pointers(enum rt_object_class_type type, rt_object_t *pointers, int maxlen) /* 4.0.3 */ +``` + +#### API 删除: + +1. clock.c + +```c +void rt_system_tick_init(void) /* 4.0.3 delete */ +``` + +2. object.c + +```c +void rt_system_object_init(void) /* 4.0.3 delete */ +``` + +#### API 变更: + +1. kservice.c, rt_strcasecmp: `rt_uint32_t -> rt_int32_t` + +```c +rt_int32_t rt_strcasecmp(const char *a, const char *b) /* 4.0.3 */ +rt_uint32_t rt_strcasecmp(const char *a, const char *b) /* 4.0.2 */ +``` + +## 4.0.2 + +#### API 增加: + +1. ipc.c + +```c +rt_err_t rt_mq_send_wait(rt_mq_t mq, + const void *buffer, + rt_size_t size, + rt_int32_t timeout) /* 4.0.2 */ +``` + +2. thread.c + +```c +rt_err_t rt_thread_delay_until(rt_tick_t *tick, rt_tick_t inc_tick) +``` + +#### API 变更: + +1. ipc.c, rt_mq_urgent: `void *buffer -> const void *buffer` + +```c +rt_err_t rt_mq_urgent(rt_mq_t mq, const void *buffer, rt_size_t size) /* 4.0.2 */ +rt_err_t rt_mq_urgent(rt_mq_t mq, void *buffer, rt_size_t size) /* 4.0.1 */ +``` + +2. irq.c, rt_interrupt_get_nest 增加 `RT_WEAK` 修饰 + +```c +RT_WEAK rt_uint8_t rt_interrupt_get_nest(void) /* 4.0.2 */ + rt_uint8_t rt_interrupt_get_nest(void) /* 4.0.1 */ +``` + +## 4.0.1 + +#### API 变更: + +1. clock.c, rt_tick_from_millisecond: `int -> rt_tick_t` + +```c +rt_tick_t rt_tick_from_millisecond(rt_int32_t ms) /* 4.0.1 */ + int rt_tick_from_millisecond(rt_int32_t ms) /* 4.0.0 */ +``` + +## 4.0.0 + +#### API 变更: + +1. ipc.c, rt_mb_send: `rt_uint32_t value -> rt_ubase_t value` + +```c +rt_err_t rt_mb_send(rt_mailbox_t mb, rt_ubase_t value) /* 4.0.0 */ +rt_err_t rt_mb_send(rt_mailbox_t mb, rt_uint32_t value) /* 3.1.1 */ +``` + +2. ipc.c, rt_mb_recv: `rt_uint32_t *value -> rt_ubase_t *value` + +```c +rt_err_t rt_mb_recv(rt_mailbox_t mb, rt_ubase_t *value, rt_int32_t timeout) /* 4.0.0 */ +rt_err_t rt_mb_recv(rt_mailbox_t mb, rt_uint32_t *value, rt_int32_t timeout) /* 3.1.1 */ +``` + +3. memheap.c, rt_memheap_init: `rt_uint32_t size -> rt_size_t size` + +```c +rt_err_t rt_memheap_init(struct rt_memheap *memheap, + const char *name, + void *start_addr, + rt_size_t size) /* 4.0.0 */ +rt_err_t rt_memheap_init(struct rt_memheap *memheap, + const char *name, + void *start_addr, + rt_uint32_t size) /* 3.1.1 */ +``` + +4. memheap.c, rt_memheap_alloc: `rt_uint32_t size -> rt_size_t size` + +```c +void *rt_memheap_alloc(struct rt_memheap *heap, rt_size_t size) /* 4.0.0 */ +void *rt_memheap_alloc(struct rt_memheap *heap, rt_uint32_t size) /* 3.1.1 */ +``` + +## 3.1.1 + +点击查看 [V3.1.1 版本的 API 参考手册](https://www.rt-thread.org/document/api/) + -- Gitee From 12e9333f3f2221692514b429c505ec43256ccc6b Mon Sep 17 00:00:00 2001 From: yangjie11 Date: Wed, 2 Aug 2023 18:20:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kernel-api-released-log.md | 168 +++++------------- 1 file changed, 45 insertions(+), 123 deletions(-) diff --git a/rt-thread-version/rt-thread-standard/api-released-log/kernel-api-released-log.md b/rt-thread-version/rt-thread-standard/api-released-log/kernel-api-released-log.md index 4f103c0..ea26959 100644 --- a/rt-thread-version/rt-thread-standard/api-released-log/kernel-api-released-log.md +++ b/rt-thread-version/rt-thread-standard/api-released-log/kernel-api-released-log.md @@ -2,7 +2,7 @@ 在 rt-thread 源码进行版本发布时,若内核 (src) API 有更新,则将内核 API 的详细变动记录在此。 -注:暂未包含 SMP 相关的接口,日志内容含:API 增加、API 删除、API 更改。 +注:暂未包含 SMP 相关的接口,日志内容含:API 增加、API 删除、API 变更。 ## new version @@ -10,30 +10,22 @@ #### API 增加: -irq.c - ```c +/* ----- irq.c ----- */ rt_weak rt_bool_t rt_hw_interrupt_is_disabled(void) /* 5.0.1 */ -``` - -object.c -```c +/* ----- object.c ----- */ rt_err_t rt_object_get_name(rt_object_t object, char *name, rt_uint8_t name_size) /* 5.0.1 */ -``` -thread.c - -```c +/* ----- thread.c ----- */ rt_err_t rt_thread_get_name(rt_thread_t thread, char *name, rt_uint8_t name_size) /* 5.0.1 */ ``` #### API 变更: -ipc.c - ```c -/* 返回值类型更新 */ +/* ----- ipc.c ----- */ +/* 消息队列相关 API 返回值类型更新,由 rt_err_t 改为 rt_ssize_t */ rt_ssize_t rt_mq_recv(rt_mq_t mq, void *buffer, rt_size_t size, @@ -71,28 +63,24 @@ rt_err_t rt_mq_recv_killable(rt_mq_t mq, #### API 增加: -device.c ```c +/* ----- device.c ----- */ // #ifdef RT_USING_DM rt_err_t rt_device_bind_driver(rt_device_t device, rt_driver_t driver, void *node); /* 5.0.0 */ rt_device_t rt_device_create_since_driver(rt_driver_t drv,int device_id); /* 5.0.0 */ rt_err_t rt_device_probe_and_init(rt_device_t device); /* 5.0.0 */ // #endif -``` -新增 driver.c 文件,其中新增 API: -```c +/* ----- device.c(新增)----- */ // #ifdef RT_USING_DM rt_err_t rt_driver_match_with_id(const rt_driver_t drv,int device_id); /* 5.0.0 */ rt_err_t rt_driver_match_with_dtb(const rt_driver_t drv,void *from_node,int max_dev_num); /* 5.0.0 */ // #endif -``` -ipc.c -```c +/* ----- ipc.c ----- */ rt_err_t rt_sem_take_interruptible(rt_sem_t sem, rt_int32_t timeout); /* 5.0.0 */ rt_err_t rt_sem_take_killable(rt_sem_t sem, rt_int32_t timeout); /* 5.0.0 */ void rt_mutex_drop_thread(rt_mutex_t mutex, rt_thread_t thread); /* 5.0.0 */ @@ -136,11 +124,9 @@ rt_err_t rt_mq_recv_killable(rt_mq_t mq, void *buffer, rt_size_t size, rt_int32_t timeout); /* 5.0.0 */ -``` -object.c -```c +/* ----- object.c ----- */ rt_object_t rt_custom_object_create(const char *name, void *data, rt_err_t (*data_destroy)(void *)) /* 5.0.0 */ rt_err_t rt_custom_object_destroy(rt_object_t obj) /* 5.0.0 */ @@ -148,9 +134,8 @@ rt_err_t rt_custom_object_destroy(rt_object_t obj) /* 5.0.0 */ #### API 变更: -device.c - ```c +/* ----- device.c ----- */ rt_ssize_t rt_device_read(rt_device_t dev, rt_off_t pos, void *buffer, @@ -169,11 +154,8 @@ rt_size_t rt_device_write(rt_device_t dev, const void *buffer, rt_size_t size); /* 4.1.1 */ -``` - -irq.c -```c +/* ----- irq.c ----- */ rt_weak void rt_interrupt_enter(void) /* 5.0.0 */ void rt_interrupt_enter(void) /* 4.1.1 */ @@ -187,15 +169,14 @@ rt_weak rt_uint8_t rt_interrupt_get_nest(void) /* 5.0.0 */ ## 4.1.1 -内核 API 无更改。 +相较 4.1.1-beta,内核 API 无更改。 ## 4.1.1-beta #### API 增加: -kservice.c - ```c +/* ----- kservice.c ----- */ RT_WEAK void rt_hw_us_delay(rt_uint32_t us) /* 4.1.1-beta */ const char *rt_strerror(rt_err_t error) /* 4.1.1-beta */ ``` @@ -206,15 +187,12 @@ const char *rt_strerror(rt_err_t error) /* 4.1.1-beta */ #### API 增加: -clock.c - ```c +/* ----- clock.c ----- */ void rt_tick_sethook(void (*hook)(void)) /* 4.1.0 */ -``` -kservice.c -```c +/* ----- kservice.c ----- */ char *rt_strcpy(char *dst, const char *src) /* 4.1.0 */ void rt_malloc_sethook(void (*hook)(void *ptr, rt_size_t size)) /* 4.1.0 */ void rt_free_sethook(void (*hook)(void *ptr)) /* 4.1.0 */ @@ -228,11 +206,9 @@ RT_WEAK void rt_memory_info(rt_size_t *total, rt_size_t *max_used) /* 4.1.0 */ void *rt_page_alloc(rt_size_t npages) /* 4.1.0 */ void rt_page_free(void *addr, rt_size_t npages) /* 4.1.0 */ -``` -mem.c -```c +/* ----- mem.c ----- */ rt_smem_t rt_smem_init(const char *name, void *begin_addr, rt_size_t size) /* 4.1.0 */ @@ -244,28 +220,23 @@ void rt_memheap_info(struct rt_memheap *heap, rt_size_t *total, rt_size_t *used, rt_size_t *max_used) /* 4.1.0 */ -``` -memheap.c -```c +/* ----- memheap.c ----- */ void rt_memheap_info(struct rt_memheap *heap, rt_size_t *total, rt_size_t *used, rt_size_t *max_used) /* 4.1.0 */ -``` -slab.c -```c +/* ----- slab.c ----- */ rt_err_t rt_slab_detach(rt_slab_t m) /* 4.1.0 */ ``` #### API 删除: -mem.c - ```c +/* ----- mem.c ----- */ void rt_malloc_sethook(void (*hook)(void *ptr, rt_size_t size)) /* 4.1.0 delete*/ void rt_free_sethook(void (*hook)(void *ptr)) /* 4.1.0 delete*/ rt_err_t rt_smem_detach(rt_smem_t m) /* 4.1.0 delete*/ @@ -273,17 +244,13 @@ void *rt_calloc(rt_size_t count, rt_size_t size) /* 4.1.0 delete*/ void rt_memory_info(rt_uint32_t *total, rt_uint32_t *used, rt_uint32_t *max_used) /* 4.1.0 delete*/ -``` -thread.c -```c +/* ----- thread.c ----- */ void rt_thread_timeout(void *parameter) /* 4.1.0 delete*/ -``` -slab.c -```c +/* ----- slab.c ----- */ void *rt_calloc(rt_size_t count, rt_size_t size) void rt_memory_info(rt_uint32_t *total, rt_uint32_t *used, @@ -292,10 +259,8 @@ void rt_memory_info(rt_uint32_t *total, #### API 变更: -kservice.c - ```c - +/* ----- kservice.c ----- */ RT_WEAK void *rt_memcpy(void *dst, const void *src, rt_ubase_t count) /* 4.1.0 */ void *rt_memcpy(void *dst, const void *src, rt_ubase_t count) /* 4.0.4 */ @@ -332,11 +297,8 @@ rt_int32_t rt_sprintf(char *buf, const char *format, ...) /* 4.0.4 */ RT_WEAK int rt_kprintf(const char *fmt, ...) /* 4.1.0 */ RT_WEAK void rt_kprintf(const char *fmt, ...) /* 4.0.4 */ -``` - -mem.c -```c +/* ----- mem.c ----- */ rt_smem_t rt_smem_init(const char *name, void *begin_addr, rt_size_t size) /* 4.1.0 */ @@ -350,11 +312,9 @@ void *rt_realloc(void *rmem, rt_size_t newsize) /* 4.0.4 */ void rt_smem_free(void *rmem) /* 4.1.0 */ void rt_free(void *rmem) /* 4.0.4 */ -``` -slab.c -```c +/* ----- slab.c ----- */ rt_slab_t rt_slab_init(const char *name, void *begin_addr, rt_size_t size) /* 4.1.0 */ void rt_system_heap_init(void *begin_addr, void *end_addr) /* 4.0.4 */ @@ -378,47 +338,38 @@ void rt_free(void *ptr) /* 4.0.4 */ #### API 增加: -idle.c - ```c +/* ----- idle.c ----- */ void rt_thread_defunct_enqueue(rt_thread_t thread) /* 4.0.4 */ rt_thread_t rt_thread_defunct_dequeue(void) /* 4.0.4 */ -``` -ipc.c -```c +/* ----- ipc.c ----- */ rt_err_t rt_mutex_trytake(rt_mutex_t mutex) /* 4.0.4 */ rt_err_t rt_mb_urgent(rt_mailbox_t mb, rt_ubase_t value) /* 4.0.4 */ -``` -scheduler.c -```c +/* ----- scheduler.c ----- */ void rt_scheduler_switch_sethook(void (*hook)(struct rt_thread *tid)) /* 4.0.4 */ ``` #### API 删除: -device.c - ```c +/* ----- device.c ----- */ rt_err_t rt_device_init_all(void) /* 4.0.4 delete */ ``` #### API 变更: -idle.c - ```c +/* ----- idle.c ----- */ /* 函数名变更,并使用 static 修饰 */ static void rt_defunct_execute(void) /* 4.0.4 */ void rt_thread_idle_excute(void) /* 4.0.3 */ -``` -kservice.c, 增加 `RT_WEAK` 修饰 -```c +/* ----- kservice.c, 增加 RT_WEAK 修饰 ----- */ RT_WEAK void *rt_memset(void *s, int c, rt_ubase_t count) /* 4.0.4 */ void *rt_memset(void *s, int c, rt_ubase_t count) /* 4.0.3 */ @@ -433,11 +384,9 @@ RT_WEAK void *rt_malloc_align(rt_size_t size, rt_size_t align) /* 4.0.4 */ RT_WEAK void rt_free_align(void *ptr) /* 4.0.4 */ void rt_free_align(void *ptr) /* 4.0.3 */ -``` -thread.c -```c +/* ----- thread.c ----- */ static void _thread_exit(void) /* 4.0.4 */ void rt_thread_exit(void) /* 4.0.3 */ ``` @@ -446,46 +395,37 @@ static void _thread_exit(void) /* 4.0.4 */ #### API 增加: -1. clock.c - ```c +/* ----- clock.c ----- */ RT_WEAK rt_tick_t rt_tick_get_millisecond(void) /* 4.0.3 */ -``` -2. memheap.c -```c +/* ----- memheap.c ----- */ void rt_memory_info(rt_uint32_t *total, rt_uint32_t *used, rt_uint32_t *max_used) /* 4.0.3 */ -``` -3. object.c -```c +/* ----- object.c ----- */ int rt_object_get_length(enum rt_object_class_type type) /* 4.0.3 */ int rt_object_get_pointers(enum rt_object_class_type type, rt_object_t *pointers, int maxlen) /* 4.0.3 */ ``` #### API 删除: -1. clock.c - ```c +/* ----- clock.c ----- */ void rt_system_tick_init(void) /* 4.0.3 delete */ -``` -2. object.c -```c +/* ----- object.c ----- */ void rt_system_object_init(void) /* 4.0.3 delete */ ``` #### API 变更: -1. kservice.c, rt_strcasecmp: `rt_uint32_t -> rt_int32_t` - ```c +/* ----- kservice.c ----- */ rt_int32_t rt_strcasecmp(const char *a, const char *b) /* 4.0.3 */ rt_uint32_t rt_strcasecmp(const char *a, const char *b) /* 4.0.2 */ ``` @@ -494,33 +434,27 @@ rt_uint32_t rt_strcasecmp(const char *a, const char *b) /* 4.0.2 */ #### API 增加: -1. ipc.c - ```c +/* ----- ipc.c ----- */ rt_err_t rt_mq_send_wait(rt_mq_t mq, const void *buffer, rt_size_t size, rt_int32_t timeout) /* 4.0.2 */ -``` -2. thread.c -```c +/* ----- thread.c ----- */ rt_err_t rt_thread_delay_until(rt_tick_t *tick, rt_tick_t inc_tick) ``` #### API 变更: -1. ipc.c, rt_mq_urgent: `void *buffer -> const void *buffer` - ```c +/* ----- ipc.c ----- */ rt_err_t rt_mq_urgent(rt_mq_t mq, const void *buffer, rt_size_t size) /* 4.0.2 */ rt_err_t rt_mq_urgent(rt_mq_t mq, void *buffer, rt_size_t size) /* 4.0.1 */ -``` -2. irq.c, rt_interrupt_get_nest 增加 `RT_WEAK` 修饰 -```c +/* ----- irq.c ----- */ RT_WEAK rt_uint8_t rt_interrupt_get_nest(void) /* 4.0.2 */ rt_uint8_t rt_interrupt_get_nest(void) /* 4.0.1 */ ``` @@ -529,9 +463,8 @@ RT_WEAK rt_uint8_t rt_interrupt_get_nest(void) /* 4.0.2 */ #### API 变更: -1. clock.c, rt_tick_from_millisecond: `int -> rt_tick_t` - ```c +/* ----- clock.c ----- */ rt_tick_t rt_tick_from_millisecond(rt_int32_t ms) /* 4.0.1 */ int rt_tick_from_millisecond(rt_int32_t ms) /* 4.0.0 */ ``` @@ -540,23 +473,16 @@ rt_tick_t rt_tick_from_millisecond(rt_int32_t ms) /* 4.0.1 */ #### API 变更: -1. ipc.c, rt_mb_send: `rt_uint32_t value -> rt_ubase_t value` - ```c +/* ----- ipc.c ----- */ rt_err_t rt_mb_send(rt_mailbox_t mb, rt_ubase_t value) /* 4.0.0 */ rt_err_t rt_mb_send(rt_mailbox_t mb, rt_uint32_t value) /* 3.1.1 */ -``` - -2. ipc.c, rt_mb_recv: `rt_uint32_t *value -> rt_ubase_t *value` -```c rt_err_t rt_mb_recv(rt_mailbox_t mb, rt_ubase_t *value, rt_int32_t timeout) /* 4.0.0 */ rt_err_t rt_mb_recv(rt_mailbox_t mb, rt_uint32_t *value, rt_int32_t timeout) /* 3.1.1 */ -``` -3. memheap.c, rt_memheap_init: `rt_uint32_t size -> rt_size_t size` -```c +/* ----- memheap.c ----- */ rt_err_t rt_memheap_init(struct rt_memheap *memheap, const char *name, void *start_addr, @@ -565,11 +491,7 @@ rt_err_t rt_memheap_init(struct rt_memheap *memheap, const char *name, void *start_addr, rt_uint32_t size) /* 3.1.1 */ -``` -4. memheap.c, rt_memheap_alloc: `rt_uint32_t size -> rt_size_t size` - -```c void *rt_memheap_alloc(struct rt_memheap *heap, rt_size_t size) /* 4.0.0 */ void *rt_memheap_alloc(struct rt_memheap *heap, rt_uint32_t size) /* 3.1.1 */ ``` -- Gitee